@smartbit4all/ng-client 4.2.114 → 4.2.115

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 (161) hide show
  1. package/esm2022/lib/smart-client/smart-component-api-client.mjs +34 -2
  2. package/esm2022/lib/smart-component-layout/api/api/api.mjs +1 -1
  3. package/esm2022/lib/smart-component-layout/api/api/default.service.mjs +1 -1
  4. package/esm2022/lib/smart-component-layout/api/api.module.mjs +1 -1
  5. package/esm2022/lib/smart-component-layout/api/configuration.mjs +1 -1
  6. package/esm2022/lib/smart-component-layout/api/encoder.mjs +1 -1
  7. package/esm2022/lib/smart-component-layout/api/index.mjs +1 -1
  8. package/esm2022/lib/smart-component-layout/api/model/componentType.mjs +1 -1
  9. package/esm2022/lib/smart-component-layout/api/model/layoutDirection.mjs +1 -1
  10. package/esm2022/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.mjs +1 -1
  11. package/esm2022/lib/smart-component-layout/api/param.mjs +1 -1
  12. package/esm2022/lib/smart-component-layout/api/variables.mjs +1 -1
  13. package/esm2022/lib/smart-form/api/api/api.mjs +1 -1
  14. package/esm2022/lib/smart-form/api/api/default.service.mjs +1 -1
  15. package/esm2022/lib/smart-form/api/api.module.mjs +1 -1
  16. package/esm2022/lib/smart-form/api/configuration.mjs +1 -1
  17. package/esm2022/lib/smart-form/api/encoder.mjs +1 -1
  18. package/esm2022/lib/smart-form/api/index.mjs +1 -1
  19. package/esm2022/lib/smart-form/api/model/fileUploaderProperties.mjs +2 -0
  20. package/esm2022/lib/smart-form/api/model/imageProperties.mjs +1 -1
  21. package/esm2022/lib/smart-form/api/model/models.mjs +2 -1
  22. package/esm2022/lib/smart-form/api/model/propertyMapping.mjs +1 -1
  23. package/esm2022/lib/smart-form/api/model/selectionDefinition.mjs +1 -1
  24. package/esm2022/lib/smart-form/api/model/smartFormInputMode.mjs +1 -1
  25. package/esm2022/lib/smart-form/api/model/smartFormWidgetDirection.mjs +1 -1
  26. package/esm2022/lib/smart-form/api/model/smartFormWidgetType.mjs +1 -1
  27. package/esm2022/lib/smart-form/api/model/smartLayoutDefinition.mjs +1 -1
  28. package/esm2022/lib/smart-form/api/model/smartMatrixModel.mjs +1 -1
  29. package/esm2022/lib/smart-form/api/model/smartWidgetDefinition.mjs +1 -1
  30. package/esm2022/lib/smart-form/api/model/smartWidgetHint.mjs +1 -1
  31. package/esm2022/lib/smart-form/api/model/sortDefinition.mjs +1 -1
  32. package/esm2022/lib/smart-form/api/model/textFieldProperties.mjs +1 -1
  33. package/esm2022/lib/smart-form/api/model/valueChangeMode.mjs +1 -1
  34. package/esm2022/lib/smart-form/api/param.mjs +1 -1
  35. package/esm2022/lib/smart-form/api/variables.mjs +1 -1
  36. package/esm2022/lib/smart-form/services/smartform.layout-definition.service.mjs +2 -5
  37. package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +126 -29
  38. package/esm2022/lib/smart-form/smartform.form-model.mjs +1 -1
  39. package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +18 -13
  40. package/esm2022/lib/smart-map/api/api/api.mjs +1 -1
  41. package/esm2022/lib/smart-map/api/api/geoMap.service.mjs +1 -1
  42. package/esm2022/lib/smart-map/api/api.module.mjs +1 -1
  43. package/esm2022/lib/smart-map/api/configuration.mjs +1 -1
  44. package/esm2022/lib/smart-map/api/encoder.mjs +1 -1
  45. package/esm2022/lib/smart-map/api/index.mjs +1 -1
  46. package/esm2022/lib/smart-map/api/model/gPSPosition.mjs +1 -1
  47. package/esm2022/lib/smart-map/api/model/gPSRoute.mjs +1 -1
  48. package/esm2022/lib/smart-map/api/model/geoMapChange.mjs +1 -1
  49. package/esm2022/lib/smart-map/api/model/geoMapDataLoadingMode.mjs +1 -1
  50. package/esm2022/lib/smart-map/api/model/geoMapDataSourceDescriptor.mjs +1 -1
  51. package/esm2022/lib/smart-map/api/model/geoMapDataSourceType.mjs +1 -1
  52. package/esm2022/lib/smart-map/api/model/geoMapEditingSession.mjs +1 -1
  53. package/esm2022/lib/smart-map/api/model/geoMapInteraction.mjs +1 -1
  54. package/esm2022/lib/smart-map/api/model/geoMapItem.mjs +1 -1
  55. package/esm2022/lib/smart-map/api/model/geoMapItemKind.mjs +1 -1
  56. package/esm2022/lib/smart-map/api/model/geoMapLayer.mjs +1 -1
  57. package/esm2022/lib/smart-map/api/model/geoMapLayerChange.mjs +1 -1
  58. package/esm2022/lib/smart-map/api/model/geoMapLayerDescriptor.mjs +1 -1
  59. package/esm2022/lib/smart-map/api/model/geoMapModel.mjs +1 -1
  60. package/esm2022/lib/smart-map/api/model/geoMapOperationMode.mjs +1 -1
  61. package/esm2022/lib/smart-map/api/model/geoMapSelectionMode.mjs +1 -1
  62. package/esm2022/lib/smart-map/api/model/geoMapServerModel.mjs +1 -1
  63. package/esm2022/lib/smart-map/api/model/geoMapTextType.mjs +1 -1
  64. package/esm2022/lib/smart-map/api/model/geoMapViewState.mjs +1 -1
  65. package/esm2022/lib/smart-map/api/model/geoMapViewport.mjs +1 -1
  66. package/esm2022/lib/smart-map/api/model/models.mjs +1 -1
  67. package/esm2022/lib/smart-map/api/param.mjs +1 -1
  68. package/esm2022/lib/smart-map/api/variables.mjs +1 -1
  69. package/esm2022/lib/view-context/api/api/api.mjs +1 -1
  70. package/esm2022/lib/view-context/api/api/view.service.mjs +1 -1
  71. package/esm2022/lib/view-context/api/api.module.mjs +1 -1
  72. package/esm2022/lib/view-context/api/configuration.mjs +1 -1
  73. package/esm2022/lib/view-context/api/encoder.mjs +1 -1
  74. package/esm2022/lib/view-context/api/index.mjs +1 -1
  75. package/esm2022/lib/view-context/api/model/backgroundProcessInfo.mjs +1 -1
  76. package/esm2022/lib/view-context/api/model/badgeDescriptor.mjs +1 -1
  77. package/esm2022/lib/view-context/api/model/clipboardData.mjs +1 -1
  78. package/esm2022/lib/view-context/api/model/closeResult.mjs +1 -1
  79. package/esm2022/lib/view-context/api/model/componentConstraint.mjs +1 -1
  80. package/esm2022/lib/view-context/api/model/componentModel.mjs +1 -1
  81. package/esm2022/lib/view-context/api/model/componentModelChange.mjs +1 -1
  82. package/esm2022/lib/view-context/api/model/dataChange.mjs +1 -1
  83. package/esm2022/lib/view-context/api/model/dataChangeEvent.mjs +1 -1
  84. package/esm2022/lib/view-context/api/model/dataChangeKind.mjs +1 -1
  85. package/esm2022/lib/view-context/api/model/deviceInfo.mjs +1 -1
  86. package/esm2022/lib/view-context/api/model/downloadedFile.mjs +1 -1
  87. package/esm2022/lib/view-context/api/model/iconPosition.mjs +1 -1
  88. package/esm2022/lib/view-context/api/model/imageResource.mjs +1 -1
  89. package/esm2022/lib/view-context/api/model/link.mjs +1 -1
  90. package/esm2022/lib/view-context/api/model/messageData.mjs +1 -1
  91. package/esm2022/lib/view-context/api/model/messageOption.mjs +1 -1
  92. package/esm2022/lib/view-context/api/model/messageOptionType.mjs +1 -1
  93. package/esm2022/lib/view-context/api/model/messageResult.mjs +1 -1
  94. package/esm2022/lib/view-context/api/model/messageTextType.mjs +1 -1
  95. package/esm2022/lib/view-context/api/model/messageType.mjs +1 -1
  96. package/esm2022/lib/view-context/api/model/models.mjs +1 -1
  97. package/esm2022/lib/view-context/api/model/multiComboBoxElement.mjs +1 -1
  98. package/esm2022/lib/view-context/api/model/multiComboBoxModel.mjs +1 -1
  99. package/esm2022/lib/view-context/api/model/namedValidator.mjs +1 -1
  100. package/esm2022/lib/view-context/api/model/openPendingData.mjs +1 -1
  101. package/esm2022/lib/view-context/api/model/serverRequestExecutionStat.mjs +1 -1
  102. package/esm2022/lib/view-context/api/model/serverRequestTrack.mjs +1 -1
  103. package/esm2022/lib/view-context/api/model/serverRequestType.mjs +1 -1
  104. package/esm2022/lib/view-context/api/model/smartLinkData.mjs +1 -1
  105. package/esm2022/lib/view-context/api/model/smartLinkMigrationStatus.mjs +1 -1
  106. package/esm2022/lib/view-context/api/model/statisticRecord.mjs +1 -1
  107. package/esm2022/lib/view-context/api/model/style.mjs +1 -1
  108. package/esm2022/lib/view-context/api/model/uiAction.mjs +1 -1
  109. package/esm2022/lib/view-context/api/model/uiActionButtonDescriptor.mjs +1 -1
  110. package/esm2022/lib/view-context/api/model/uiActionButtonType.mjs +1 -1
  111. package/esm2022/lib/view-context/api/model/uiActionConstraint.mjs +1 -1
  112. package/esm2022/lib/view-context/api/model/uiActionDescriptor.mjs +1 -1
  113. package/esm2022/lib/view-context/api/model/uiActionDialogDescriptor.mjs +1 -1
  114. package/esm2022/lib/view-context/api/model/uiActionFeedbackType.mjs +1 -1
  115. package/esm2022/lib/view-context/api/model/uiActionInputType.mjs +1 -1
  116. package/esm2022/lib/view-context/api/model/uiActionRequest.mjs +1 -1
  117. package/esm2022/lib/view-context/api/model/uiActionTooltip.mjs +1 -1
  118. package/esm2022/lib/view-context/api/model/uiActionUploadDescriptor.mjs +1 -1
  119. package/esm2022/lib/view-context/api/model/uploadWidgetType.mjs +1 -1
  120. package/esm2022/lib/view-context/api/model/uploadedFile.mjs +1 -1
  121. package/esm2022/lib/view-context/api/model/valueSet.mjs +1 -1
  122. package/esm2022/lib/view-context/api/model/view.mjs +1 -1
  123. package/esm2022/lib/view-context/api/model/viewApiError.mjs +1 -1
  124. package/esm2022/lib/view-context/api/model/viewConstraint.mjs +1 -1
  125. package/esm2022/lib/view-context/api/model/viewContext.mjs +1 -1
  126. package/esm2022/lib/view-context/api/model/viewContextChange.mjs +1 -1
  127. package/esm2022/lib/view-context/api/model/viewContextData.mjs +1 -1
  128. package/esm2022/lib/view-context/api/model/viewContextUpdate.mjs +1 -1
  129. package/esm2022/lib/view-context/api/model/viewData.mjs +1 -1
  130. package/esm2022/lib/view-context/api/model/viewEventHandler.mjs +1 -1
  131. package/esm2022/lib/view-context/api/model/viewPlaceholder.mjs +1 -1
  132. package/esm2022/lib/view-context/api/model/viewState.mjs +1 -1
  133. package/esm2022/lib/view-context/api/model/viewStateUpdate.mjs +1 -1
  134. package/esm2022/lib/view-context/api/model/viewType.mjs +1 -1
  135. package/esm2022/lib/view-context/api/param.mjs +1 -1
  136. package/esm2022/lib/view-context/api/variables.mjs +1 -1
  137. package/esm2022/lib/view-context/projects.mjs +4 -3
  138. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component.mjs +198 -0
  139. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.mjs +118 -0
  140. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component.mjs +186 -0
  141. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +15 -104
  142. package/esm2022/lib/view-context/smart-view-context.module.mjs +18 -13
  143. package/fesm2022/smartbit4all-ng-client.mjs +1177 -1023
  144. package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
  145. package/lib/smart-client/smart-component-api-client.d.ts +2 -0
  146. package/lib/smart-form/api/model/fileUploaderProperties.d.ts +17 -0
  147. package/lib/smart-form/api/model/models.d.ts +1 -0
  148. package/lib/smart-form/smartfileuploader/smartfileuploader.component.d.ts +15 -2
  149. package/lib/smart-form/smartform.form-model.d.ts +2 -2
  150. package/lib/smart-form/widgets/smartformwidget/smartformwidget.component.d.ts +10 -2
  151. package/lib/view-context/projects.d.ts +3 -2
  152. package/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.d.ts +38 -0
  153. package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.d.ts +2 -19
  154. package/lib/view-context/smart-view-context.module.d.ts +50 -49
  155. package/package.json +1 -1
  156. package/smartbit4all-ng-client-4.2.115.tgz +0 -0
  157. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/photo-capture-widget/photo-capture-widget.component.mjs +0 -198
  158. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/voice-record-widget/voice-record-widget.component.mjs +0 -186
  159. package/smartbit4all-ng-client-4.2.114.tgz +0 -0
  160. /package/lib/view-context/smart-ui-action/{dialogs/ui-action-file-upload-dialog → components/upload-widget}/photo-capture-widget/photo-capture-widget.component.d.ts +0 -0
  161. /package/lib/view-context/smart-ui-action/{dialogs/ui-action-file-upload-dialog → components/upload-widget}/voice-record-widget/voice-record-widget.component.d.ts +0 -0
@@ -1,11 +1,13 @@
1
1
  import { Component, Input, ViewChild } from '@angular/core';
2
- import { LargeFileSnackBarComponent } from './large-file-snack-bar/large-file-snack-bar.component';
2
+ import { IconPosition, UiActionButtonType, } from '../../view-context/api/model/models';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/material/snack-bar";
5
5
  import * as i2 from "@angular/common";
6
6
  import * as i3 from "@angular/material/button";
7
7
  import * as i4 from "@angular/material/icon";
8
- import * as i5 from "@angular/material/form-field";
8
+ import * as i5 from "../../smart-icon/smart-icon/smart-icon.component";
9
+ import * as i6 from "@angular/material/form-field";
10
+ import * as i7 from "../../view-context/smart-ui-action/ui-action-button/ui-action-button.component";
9
11
  export class SmartfileuploaderComponent {
10
12
  constructor(_snackBar) {
11
13
  this._snackBar = _snackBar;
@@ -14,51 +16,146 @@ export class SmartfileuploaderComponent {
14
16
  this.maxSizeMb = 25;
15
17
  this.useIconButton = true;
16
18
  this.isMultiple = true;
19
+ this.isDragOver = false;
20
+ this.errors = [];
17
21
  }
18
22
  ngOnInit() {
19
- if (!this.i18n || this.i18n === undefined) {
20
- this.i18n = {
21
- addFile: 'dokumentum hozzáadása',
22
- browseOrDrag: 'tallózás vagy behúzás',
23
- maxSize: 'max. 25 MB',
24
- formats: 'PDF, docx, xls formátum',
25
- upload: 'Feltöltés',
26
- };
23
+ const defaultI18n = {
24
+ addFile: 'dokumentum hozzáadása',
25
+ browseOrDrag: 'tallózás vagy behúzás',
26
+ maxSize: `max. ${this.maxSizeMb} MB`,
27
+ formats: 'PDF, docx, xls formátum',
28
+ upload: 'Feltöltés',
29
+ };
30
+ this.i18n = { ...defaultI18n, ...this.i18n };
31
+ }
32
+ processFiles(fileList) {
33
+ this.errors = [];
34
+ var validFiles = [];
35
+ fileList.forEach((file) => {
36
+ let hasError = false;
37
+ if (this.fileFormats?.length) {
38
+ const ext = file.name.split('.').pop()?.toLowerCase();
39
+ const isAllowed = ext && this.fileFormats.some((f) => f.replace('.', '').toLowerCase() === ext);
40
+ if (!isAllowed) {
41
+ this.errors.push(`"${file.name}" - nem támogatott formátum`);
42
+ hasError = true;
43
+ }
44
+ }
45
+ if (file.size > this.maxSizeMb * 1000000) {
46
+ this.errors.push(`"${file.name}" - túl nagy fájl (max ${this.maxSizeMb} MB)`);
47
+ hasError = true;
48
+ }
49
+ if (!hasError) {
50
+ validFiles.push(file);
51
+ }
52
+ });
53
+ if (this.isMultiple) {
54
+ this.files = [...this.files, ...validFiles];
55
+ }
56
+ else if (validFiles.length) {
57
+ this.files = [validFiles[0]];
27
58
  }
28
59
  }
29
60
  getFile(event) {
30
61
  if (event.target.files && event.target.files.length) {
31
- let fileList = [...event.target.files];
32
- fileList.forEach((file) => {
33
- if (file.size > this.maxSizeMb * 1000000) {
34
- this._snackBar.openFromComponent(LargeFileSnackBarComponent, {
35
- duration: 5 * 1000,
36
- });
37
- }
38
- else {
39
- if (this.isMultiple) {
40
- this.files = [...this.files, file];
41
- }
42
- else {
43
- this.files = [file];
44
- }
45
- }
46
- });
62
+ var fileList = Array.from(event.target.files);
63
+ this.processFiles(fileList);
47
64
  this.fileInput.nativeElement.value = '';
48
65
  }
49
66
  }
67
+ onDrop(event) {
68
+ event.preventDefault();
69
+ this.isDragOver = false;
70
+ if (!event.dataTransfer?.files)
71
+ return;
72
+ const fileList = Array.from(event.dataTransfer.files);
73
+ this.processFiles(fileList);
74
+ }
75
+ onDragOver(event) {
76
+ event.preventDefault();
77
+ this.isDragOver = true;
78
+ }
79
+ onDragLeave(event) {
80
+ event.preventDefault();
81
+ const related = event.relatedTarget;
82
+ let stopDrag = false;
83
+ if (!related) {
84
+ stopDrag = true;
85
+ }
86
+ else {
87
+ const parentDrop = related.closest('.container');
88
+ if (related !== event.currentTarget && !parentDrop) {
89
+ stopDrag = true;
90
+ }
91
+ }
92
+ if (stopDrag) {
93
+ this.isDragOver = false;
94
+ }
95
+ }
50
96
  remove(index) {
51
97
  this.files.splice(index, 1);
52
98
  }
53
99
  uploadFile() {
54
100
  this.uploadCallback(this.files);
55
101
  }
102
+ formatSize(bytes) {
103
+ if (bytes === 0)
104
+ return '0 B';
105
+ const k = 1024;
106
+ const sizes = ['B', 'KB', 'MB', 'GB', 'TB'];
107
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
108
+ const value = parseFloat((bytes / Math.pow(k, i)).toFixed(1));
109
+ return `${value} ${sizes[i]}`;
110
+ }
111
+ filePreviewUrl(file) {
112
+ if (file.type.startsWith('image/')) {
113
+ return URL.createObjectURL(file);
114
+ }
115
+ return null;
116
+ }
117
+ downloadFile(file) {
118
+ const url = URL.createObjectURL(file);
119
+ const a = document.createElement('a');
120
+ a.href = url;
121
+ a.download = file.name;
122
+ a.click();
123
+ URL.revokeObjectURL(url);
124
+ }
125
+ get uploadButton() {
126
+ return {
127
+ title: this.i18n.upload ?? '',
128
+ color: 'primary',
129
+ type: UiActionButtonType.RAISED,
130
+ icon: 'upload',
131
+ iconPosition: IconPosition.PRE,
132
+ };
133
+ }
134
+ get downloadButton() {
135
+ return {
136
+ title: '',
137
+ color: 'primary',
138
+ type: UiActionButtonType.ICON,
139
+ icon: 'download',
140
+ iconPosition: IconPosition.PRE,
141
+ };
142
+ }
143
+ get removeButton() {
144
+ return {
145
+ title: '',
146
+ color: 'primary',
147
+ type: UiActionButtonType.ICON,
148
+ icon: 'close',
149
+ iconColor: 'red',
150
+ iconPosition: IconPosition.PRE,
151
+ };
152
+ }
56
153
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartfileuploaderComponent, deps: [{ token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartfileuploaderComponent, selector: "smartfileuploader", inputs: { uploadCallback: "uploadCallback", fileFormats: "fileFormats", maxSizeMb: "maxSizeMb", i18n: "i18n", useIconButton: "useIconButton", isMultiple: "isMultiple" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"fileContainer\">\r\n <div class=\"fileInnerContainer\">\r\n <input\r\n #fileInput\r\n id=\"addFile\"\r\n placeholder=\"fileInput\"\r\n type=\"file\"\r\n (change)=\"getFile($event)\"\r\n class=\"file\"\r\n accept=\"{{ fileFormats?.join(', ') }}\"\r\n [size]=\"maxSizeMb\"\r\n [multiple]=\"isMultiple\"\r\n />\r\n <div class=\"fileUploadContentContainer\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"addFileButton\">\r\n <mat-icon color=\"primary\" class=\"addCircle\">add_circle</mat-icon>\r\n </mat-label>\r\n <button *ngIf=\"!useIconButton\" mat-raised-button color=\"primary\" class=\"addFileButton\">\r\n {{ i18n!.addFile }}\r\n </button>\r\n <mat-label *ngIf=\"useIconButton\" class=\"label primary\"> {{ i18n!.addFile }} </mat-label>\r\n <mat-label class=\"label secondary\"> {{ i18n!.browseOrDrag }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.maxSize }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.formats }} </mat-label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"files.length\" class=\"uploadedFilesContainer\">\r\n <div *ngFor=\"let file of files; let i = index\" class=\"uploadedFile\">\r\n <mat-label class=\"fileNameLabel\"> {{ file.name }} </mat-label>\r\n <button mat-icon-button (click)=\"remove(i)\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n <button class=\"uploadButton\" mat-raised-button color=\"primary\" (click)=\"uploadFile()\">\r\n {{ i18n!.upload ?? 'Felt\u00F6lt\u00E9s' }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".container{width:calc(100% - 2em);height:max-content;margin:1em;border-radius:5px;border:2px dashed var(--light-gray-60)}.fileContainer,.uploadedFilesContainer{background-color:var(--primary-lighter-color)}.fileInnerContainer{min-height:250px}.uploadedFilesContainer{border-top:1px solid var(--light-gray-60);display:flex;flex-direction:column}.fileContainer{position:relative;height:250px}.uploadedFile{padding:1em;display:flex;flex-direction:row;color:var(--primary-color)}.fileNameLabel{flex:1;margin-top:auto;margin-bottom:auto}.label{font-size:small}.subLabel{font-size:smaller}.file{position:absolute;left:0;top:0;opacity:0;width:100%;height:100%;z-index:120;cursor:pointer}.addFileButton{z-index:150;cursor:pointer}.addCircle{font-size:50px;width:50px;height:50px;margin:0 auto}.fileUploadContentContainer{position:absolute;top:50%;left:0;transform:translateY(-50%);width:100%;display:flex;flex-direction:column;text-align:center}.fileUploadContentContainer .secondary{margin-bottom:1em}.inputLabel{flex:1}.uploadButton{margin-left:auto;margin-right:auto;margin-bottom:.5em}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }] }); }
154
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartfileuploaderComponent, selector: "smartfileuploader", inputs: { uploadCallback: "uploadCallback", fileFormats: "fileFormats", maxSizeMb: "maxSizeMb", i18n: "i18n", useIconButton: "useIconButton", isMultiple: "isMultiple" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"container\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [class.dragover]=\"isDragOver\"\r\n>\r\n <div class=\"fileContainer\" (click)=\"fileInput.click()\">\r\n <input\r\n #fileInput\r\n id=\"addFile\"\r\n placeholder=\"fileInput\"\r\n type=\"file\"\r\n (change)=\"getFile($event)\"\r\n class=\"file\"\r\n accept=\"{{ fileFormats?.join(', ') }}\"\r\n [size]=\"maxSizeMb\"\r\n [multiple]=\"isMultiple\"\r\n style=\"display: none\"\r\n />\r\n <div class=\"fileUploadContentContainer\">\r\n <div class=\"icon\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"addFileButton\">\r\n <mat-icon color=\"primary\" class=\"addCircle\">add_circle</mat-icon>\r\n </mat-label>\r\n <button *ngIf=\"!useIconButton\" mat-raised-button color=\"primary\" class=\"addFileButton\">\r\n {{ i18n!.addFile }}\r\n </button>\r\n </div>\r\n <div class=\"labels\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"label primary title\">\r\n {{ i18n!.addFile }}\r\n </mat-label>\r\n <mat-label class=\"label secondary\"> {{ i18n!.browseOrDrag }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.maxSize }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.formats }} </mat-label>\r\n </div>\r\n <div class=\"uploadButton\" *ngIf=\"files.length\">\r\n <ui-action-button (actionClick)=\"uploadFile()\" [descriptor]=\"uploadButton\">\r\n </ui-action-button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"errors.length\" class=\"errorMessage\">\r\n <smart-icon [icon]=\"'error'\" [color]=\"'warn'\"></smart-icon>\r\n <div class=\"errors\">\r\n <span *ngFor=\"let error of errors\">{{ error }}</span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"files.length\" class=\"uploadedFilesContainer\">\r\n <div *ngFor=\"let file of files; let i = index\" class=\"uploadedFile\">\r\n <ng-container *ngIf=\"filePreviewUrl(file); else fileIcon\">\r\n <img [src]=\"filePreviewUrl(file)\" [alt]=\"file.name\" width=\"50\" height=\"50\" />\r\n </ng-container>\r\n <ng-template #fileIcon>\r\n <smart-icon [icon]=\"'insert_drive_file'\"></smart-icon>\r\n </ng-template>\r\n\r\n <div class=\"fileData\">\r\n <div class=\"fileDataContainer\">\r\n <span class=\"fileName\">{{ file.name }}</span>\r\n <span class=\"fileSize\">{{ formatSize(file.size) }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"fileActions\">\r\n <ui-action-button (actionClick)=\"downloadFile(file)\" [descriptor]=\"downloadButton\">\r\n </ui-action-button>\r\n\r\n <ui-action-button class=\"removeIcon\" (actionClick)=\"remove(i)\" [descriptor]=\"removeButton\">\r\n </ui-action-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem}.container{display:flex;flex-direction:column;border:2px dashed var(--border-color);border-radius:var(--def-border-radius)}.fileContainer{cursor:pointer;padding:1rem;display:flex;flex-direction:column}.fileContainer:hover,.dragover{background-color:rgb(from var(--border-color) r g b / .1)}.fileUploadContentContainer{display:flex;flex-direction:row;gap:1rem}.icon mat-icon{font-size:3rem;width:unset;height:unset}.icon{align-content:center}.labels{flex:1;display:flex;flex-direction:column;justify-content:center;width:fit-content}.uploadButton{align-content:center}.primary{color:var(--primary-color)}.secondary{color:var(--gray)}.label{margin:unset}.subLabel{font-size:smaller}.title{padding-bottom:.3rem}.errorMessage,.uploadedFilesContainer{border-top:2px solid var(--border-color)}.errorMessage{display:flex;flex-direction:row;align-items:center;color:var(--warninig-color);padding:.5rem 1rem;gap:1rem}.errorMessage ::ng-deep mat-icon{color:var(--warninig-color)}.errors{display:flex;flex-direction:column}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;border-bottom:1px solid #e0e0e0;gap:1rem}.uploadedFile:last-child{border-bottom:none}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.fileActions{display:flex;flex-direction:row;justify-content:flex-end}.fileActions ::ng-deep button{border:unset}.fileActions ::ng-deep button:hover{border:unset}.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "addedCssClass"], outputs: ["actionClick", "actionDoubleClick"] }] }); }
58
155
  }
59
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartfileuploaderComponent, decorators: [{
60
157
  type: Component,
61
- args: [{ selector: 'smartfileuploader', template: "<div class=\"container\">\r\n <div class=\"fileContainer\">\r\n <div class=\"fileInnerContainer\">\r\n <input\r\n #fileInput\r\n id=\"addFile\"\r\n placeholder=\"fileInput\"\r\n type=\"file\"\r\n (change)=\"getFile($event)\"\r\n class=\"file\"\r\n accept=\"{{ fileFormats?.join(', ') }}\"\r\n [size]=\"maxSizeMb\"\r\n [multiple]=\"isMultiple\"\r\n />\r\n <div class=\"fileUploadContentContainer\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"addFileButton\">\r\n <mat-icon color=\"primary\" class=\"addCircle\">add_circle</mat-icon>\r\n </mat-label>\r\n <button *ngIf=\"!useIconButton\" mat-raised-button color=\"primary\" class=\"addFileButton\">\r\n {{ i18n!.addFile }}\r\n </button>\r\n <mat-label *ngIf=\"useIconButton\" class=\"label primary\"> {{ i18n!.addFile }} </mat-label>\r\n <mat-label class=\"label secondary\"> {{ i18n!.browseOrDrag }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.maxSize }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.formats }} </mat-label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"files.length\" class=\"uploadedFilesContainer\">\r\n <div *ngFor=\"let file of files; let i = index\" class=\"uploadedFile\">\r\n <mat-label class=\"fileNameLabel\"> {{ file.name }} </mat-label>\r\n <button mat-icon-button (click)=\"remove(i)\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n <button class=\"uploadButton\" mat-raised-button color=\"primary\" (click)=\"uploadFile()\">\r\n {{ i18n!.upload ?? 'Felt\u00F6lt\u00E9s' }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".container{width:calc(100% - 2em);height:max-content;margin:1em;border-radius:5px;border:2px dashed var(--light-gray-60)}.fileContainer,.uploadedFilesContainer{background-color:var(--primary-lighter-color)}.fileInnerContainer{min-height:250px}.uploadedFilesContainer{border-top:1px solid var(--light-gray-60);display:flex;flex-direction:column}.fileContainer{position:relative;height:250px}.uploadedFile{padding:1em;display:flex;flex-direction:row;color:var(--primary-color)}.fileNameLabel{flex:1;margin-top:auto;margin-bottom:auto}.label{font-size:small}.subLabel{font-size:smaller}.file{position:absolute;left:0;top:0;opacity:0;width:100%;height:100%;z-index:120;cursor:pointer}.addFileButton{z-index:150;cursor:pointer}.addCircle{font-size:50px;width:50px;height:50px;margin:0 auto}.fileUploadContentContainer{position:absolute;top:50%;left:0;transform:translateY(-50%);width:100%;display:flex;flex-direction:column;text-align:center}.fileUploadContentContainer .secondary{margin-bottom:1em}.inputLabel{flex:1}.uploadButton{margin-left:auto;margin-right:auto;margin-bottom:.5em}\n"] }]
158
+ args: [{ selector: 'smartfileuploader', template: "<div\r\n class=\"container\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [class.dragover]=\"isDragOver\"\r\n>\r\n <div class=\"fileContainer\" (click)=\"fileInput.click()\">\r\n <input\r\n #fileInput\r\n id=\"addFile\"\r\n placeholder=\"fileInput\"\r\n type=\"file\"\r\n (change)=\"getFile($event)\"\r\n class=\"file\"\r\n accept=\"{{ fileFormats?.join(', ') }}\"\r\n [size]=\"maxSizeMb\"\r\n [multiple]=\"isMultiple\"\r\n style=\"display: none\"\r\n />\r\n <div class=\"fileUploadContentContainer\">\r\n <div class=\"icon\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"addFileButton\">\r\n <mat-icon color=\"primary\" class=\"addCircle\">add_circle</mat-icon>\r\n </mat-label>\r\n <button *ngIf=\"!useIconButton\" mat-raised-button color=\"primary\" class=\"addFileButton\">\r\n {{ i18n!.addFile }}\r\n </button>\r\n </div>\r\n <div class=\"labels\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"label primary title\">\r\n {{ i18n!.addFile }}\r\n </mat-label>\r\n <mat-label class=\"label secondary\"> {{ i18n!.browseOrDrag }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.maxSize }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.formats }} </mat-label>\r\n </div>\r\n <div class=\"uploadButton\" *ngIf=\"files.length\">\r\n <ui-action-button (actionClick)=\"uploadFile()\" [descriptor]=\"uploadButton\">\r\n </ui-action-button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"errors.length\" class=\"errorMessage\">\r\n <smart-icon [icon]=\"'error'\" [color]=\"'warn'\"></smart-icon>\r\n <div class=\"errors\">\r\n <span *ngFor=\"let error of errors\">{{ error }}</span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"files.length\" class=\"uploadedFilesContainer\">\r\n <div *ngFor=\"let file of files; let i = index\" class=\"uploadedFile\">\r\n <ng-container *ngIf=\"filePreviewUrl(file); else fileIcon\">\r\n <img [src]=\"filePreviewUrl(file)\" [alt]=\"file.name\" width=\"50\" height=\"50\" />\r\n </ng-container>\r\n <ng-template #fileIcon>\r\n <smart-icon [icon]=\"'insert_drive_file'\"></smart-icon>\r\n </ng-template>\r\n\r\n <div class=\"fileData\">\r\n <div class=\"fileDataContainer\">\r\n <span class=\"fileName\">{{ file.name }}</span>\r\n <span class=\"fileSize\">{{ formatSize(file.size) }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"fileActions\">\r\n <ui-action-button (actionClick)=\"downloadFile(file)\" [descriptor]=\"downloadButton\">\r\n </ui-action-button>\r\n\r\n <ui-action-button class=\"removeIcon\" (actionClick)=\"remove(i)\" [descriptor]=\"removeButton\">\r\n </ui-action-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem}.container{display:flex;flex-direction:column;border:2px dashed var(--border-color);border-radius:var(--def-border-radius)}.fileContainer{cursor:pointer;padding:1rem;display:flex;flex-direction:column}.fileContainer:hover,.dragover{background-color:rgb(from var(--border-color) r g b / .1)}.fileUploadContentContainer{display:flex;flex-direction:row;gap:1rem}.icon mat-icon{font-size:3rem;width:unset;height:unset}.icon{align-content:center}.labels{flex:1;display:flex;flex-direction:column;justify-content:center;width:fit-content}.uploadButton{align-content:center}.primary{color:var(--primary-color)}.secondary{color:var(--gray)}.label{margin:unset}.subLabel{font-size:smaller}.title{padding-bottom:.3rem}.errorMessage,.uploadedFilesContainer{border-top:2px solid var(--border-color)}.errorMessage{display:flex;flex-direction:row;align-items:center;color:var(--warninig-color);padding:.5rem 1rem;gap:1rem}.errorMessage ::ng-deep mat-icon{color:var(--warninig-color)}.errors{display:flex;flex-direction:column}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;border-bottom:1px solid #e0e0e0;gap:1rem}.uploadedFile:last-child{border-bottom:none}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.fileActions{display:flex;flex-direction:row;justify-content:flex-end}.fileActions ::ng-deep button{border:unset}.fileActions ::ng-deep button:hover{border:unset}.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}\n"] }]
62
159
  }], ctorParameters: () => [{ type: i1.MatSnackBar }], propDecorators: { fileInput: [{
63
160
  type: ViewChild,
64
161
  args: ['fileInput']
@@ -75,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
75
172
  }], isMultiple: [{
76
173
  type: Input
77
174
  }] } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxldXBsb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS9zbWFydGZpbGV1cGxvYWRlci9zbWFydGZpbGV1cGxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NtYXJ0ZmlsZXVwbG9hZGVyL3NtYXJ0ZmlsZXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7OztBQVFuRyxNQUFNLE9BQU8sMEJBQTBCO0lBV3JDLFlBQW9CLFNBQXNCO1FBQXRCLGNBQVMsR0FBVCxTQUFTLENBQWE7UUFSMUMsVUFBSyxHQUFVLEVBQUUsQ0FBQztRQUVULGdCQUFXLEdBQWMsRUFBRSxDQUFDO1FBQzVCLGNBQVMsR0FBWSxFQUFFLENBQUM7UUFFeEIsa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFDOUIsZUFBVSxHQUFhLElBQUksQ0FBQztJQUVRLENBQUM7SUFFOUMsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLElBQUksR0FBRztnQkFDVixPQUFPLEVBQUUsdUJBQXVCO2dCQUNoQyxZQUFZLEVBQUUsdUJBQXVCO2dCQUNyQyxPQUFPLEVBQUUsWUFBWTtnQkFDckIsT0FBTyxFQUFFLHlCQUF5QjtnQkFDbEMsTUFBTSxFQUFFLFdBQVc7YUFDcEIsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVU7UUFDaEIsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwRCxJQUFJLFFBQVEsR0FBVyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUU7Z0JBQzlCLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBVSxHQUFHLE9BQU8sRUFBRSxDQUFDO29CQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLDBCQUEwQixFQUFFO3dCQUMzRCxRQUFRLEVBQUUsQ0FBQyxHQUFHLElBQUk7cUJBQ25CLENBQUMsQ0FBQztnQkFDTCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7d0JBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3JDLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3RCLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7K0dBbkRVLDBCQUEwQjttR0FBMUIsMEJBQTBCLDJVQ1Z2QyxpdURBd0NBOzs0RkQ5QmEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLG1CQUFtQjtnRkFLTCxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBR2IsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuaW1wb3J0IHsgTGFyZ2VGaWxlU25hY2tCYXJDb21wb25lbnQgfSBmcm9tICcuL2xhcmdlLWZpbGUtc25hY2stYmFyL2xhcmdlLWZpbGUtc25hY2stYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNtYXJ0RmlsZVVwbG9hZGVySTE4biB9IGZyb20gJy4vc21hcnRmaWxldXBsb2FkZXIubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzbWFydGZpbGV1cGxvYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0ZmlsZXVwbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zbWFydGZpbGV1cGxvYWRlci5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydGZpbGV1cGxvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgZmlsZXM6IGFueVtdID0gW107XHJcbiAgQElucHV0KCkgdXBsb2FkQ2FsbGJhY2shOiAoZmlsZXM6IGFueVtdKSA9PiB2b2lkO1xyXG4gIEBJbnB1dCgpIGZpbGVGb3JtYXRzPzogc3RyaW5nW10gPSBbXTtcclxuICBASW5wdXQoKSBtYXhTaXplTWI/OiBudW1iZXIgPSAyNTtcclxuICBASW5wdXQoKSBpMThuPzogU21hcnRGaWxlVXBsb2FkZXJJMThuO1xyXG4gIEBJbnB1dCgpIHVzZUljb25CdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGlzTXVsdGlwbGU/OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc25hY2tCYXI6IE1hdFNuYWNrQmFyKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pMThuIHx8IHRoaXMuaTE4biA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuaTE4biA9IHtcclxuICAgICAgICBhZGRGaWxlOiAnZG9rdW1lbnR1bSBob3p6w6FhZMOhc2EnLFxyXG4gICAgICAgIGJyb3dzZU9yRHJhZzogJ3RhbGzDs3rDoXMgdmFneSBiZWjDunrDoXMnLFxyXG4gICAgICAgIG1heFNpemU6ICdtYXguIDI1IE1CJyxcclxuICAgICAgICBmb3JtYXRzOiAnUERGLCBkb2N4LCB4bHMgZm9ybcOhdHVtJyxcclxuICAgICAgICB1cGxvYWQ6ICdGZWx0w7ZsdMOpcycsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRGaWxlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuZmlsZXMgJiYgZXZlbnQudGFyZ2V0LmZpbGVzLmxlbmd0aCkge1xyXG4gICAgICBsZXQgZmlsZUxpc3Q6IEZpbGVbXSA9IFsuLi5ldmVudC50YXJnZXQuZmlsZXNdO1xyXG4gICAgICBmaWxlTGlzdC5mb3JFYWNoKChmaWxlOiBGaWxlKSA9PiB7XHJcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IHRoaXMubWF4U2l6ZU1iISAqIDEwMDAwMDApIHtcclxuICAgICAgICAgIHRoaXMuX3NuYWNrQmFyLm9wZW5Gcm9tQ29tcG9uZW50KExhcmdlRmlsZVNuYWNrQmFyQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIGR1cmF0aW9uOiA1ICogMTAwMCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5pc011bHRpcGxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZXMgPSBbLi4udGhpcy5maWxlcywgZmlsZV07XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVzID0gW2ZpbGVdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZShpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRGaWxlKCk6IHZvaWQge1xyXG4gICAgdGhpcy51cGxvYWRDYWxsYmFjayh0aGlzLmZpbGVzKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJmaWxlQ29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsZUlubmVyQ29udGFpbmVyXCI+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgICNmaWxlSW5wdXRcclxuICAgICAgICBpZD1cImFkZEZpbGVcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiZmlsZUlucHV0XCJcclxuICAgICAgICB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJnZXRGaWxlKCRldmVudClcIlxyXG4gICAgICAgIGNsYXNzPVwiZmlsZVwiXHJcbiAgICAgICAgYWNjZXB0PVwie3sgZmlsZUZvcm1hdHM/LmpvaW4oJywgJykgfX1cIlxyXG4gICAgICAgIFtzaXplXT1cIm1heFNpemVNYlwiXHJcbiAgICAgICAgW211bHRpcGxlXT1cImlzTXVsdGlwbGVcIlxyXG4gICAgICAvPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsZVVwbG9hZENvbnRlbnRDb250YWluZXJcIj5cclxuICAgICAgICA8bWF0LWxhYmVsICpuZ0lmPVwidXNlSWNvbkJ1dHRvblwiIGNsYXNzPVwiYWRkRmlsZUJ1dHRvblwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiYWRkQ2lyY2xlXCI+YWRkX2NpcmNsZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiF1c2VJY29uQnV0dG9uXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJhZGRGaWxlQnV0dG9uXCI+XHJcbiAgICAgICAgICB7eyBpMThuIS5hZGRGaWxlIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cInVzZUljb25CdXR0b25cIiBjbGFzcz1cImxhYmVsIHByaW1hcnlcIj4ge3sgaTE4biEuYWRkRmlsZSB9fSA8L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwibGFiZWwgc2Vjb25kYXJ5XCI+IHt7IGkxOG4hLmJyb3dzZU9yRHJhZyB9fSA8L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwic3ViTGFiZWwgcHJpbWFyeVwiPiB7eyBpMThuIS5tYXhTaXplIH19IDwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJzdWJMYWJlbCBwcmltYXJ5XCI+IHt7IGkxOG4hLmZvcm1hdHMgfX0gPC9tYXQtbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cImZpbGVzLmxlbmd0aFwiIGNsYXNzPVwidXBsb2FkZWRGaWxlc0NvbnRhaW5lclwiPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwidXBsb2FkZWRGaWxlXCI+XHJcbiAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJmaWxlTmFtZUxhYmVsXCI+IHt7IGZpbGUubmFtZSB9fSA8L21hdC1sYWJlbD5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlbW92ZShpKVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidXBsb2FkQnV0dG9uXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInVwbG9hZEZpbGUoKVwiPlxyXG4gICAgICB7eyBpMThuIS51cGxvYWQgPz8gJ0ZlbHTDtmx0w6lzJyB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxldXBsb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS9zbWFydGZpbGV1cGxvYWRlci9zbWFydGZpbGV1cGxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NtYXJ0ZmlsZXVwbG9hZGVyL3NtYXJ0ZmlsZXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoRixPQUFPLEVBQ0wsWUFBWSxFQUNaLGtCQUFrQixHQUVuQixNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7QUFPN0MsTUFBTSxPQUFPLDBCQUEwQjtJQWNyQyxZQUFvQixTQUFzQjtRQUF0QixjQUFTLEdBQVQsU0FBUyxDQUFhO1FBWDFDLFVBQUssR0FBVyxFQUFFLENBQUM7UUFFVixnQkFBVyxHQUFjLEVBQUUsQ0FBQztRQUM1QixjQUFTLEdBQVksRUFBRSxDQUFDO1FBRXhCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBQzlCLGVBQVUsR0FBYSxJQUFJLENBQUM7UUFFckMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixXQUFNLEdBQWEsRUFBRSxDQUFDO0lBRXVCLENBQUM7SUFFOUMsUUFBUTtRQUNOLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsWUFBWSxFQUFFLHVCQUF1QjtZQUNyQyxPQUFPLEVBQUUsUUFBUSxJQUFJLENBQUMsU0FBUyxLQUFLO1lBQ3BDLE9BQU8sRUFBRSx5QkFBeUI7WUFDbEMsTUFBTSxFQUFFLFdBQVc7U0FDcEIsQ0FBQztRQUVGLElBQUks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QUksRUFBRSxRQUFRO1lBQ2QsWUFBWSxFQUFFLFlBQVksQ0FBQyxHQUFHO1NBQy9CLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU87WUFDTCxLQUFLLEVBQUUsRUFBRTtZQUNULEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxJQUFJO1lBQzdCLElBQUksRUFBRSxVQUFVO1lBQ2hCLFlBQVksRUFBRSxZQUFZLENBQUMsR0FBRztTQUMvQixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU87WUFDTCxLQUFLLEVBQUUsRUFBRTtZQUNULEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxJQUFJO1lBQzdCLElBQUksRUFBRSxPQUFPO1lBQ2IsU0FBUyxFQUFFLEtBQUs7WUFDaEIsWUFBWSxFQUFFLFlBQVksQ0FBQyxHQUFHO1NBQy9CLENBQUM7SUFDSixDQUFDOytHQXZLVSwwQkFBMEI7bUdBQTFCLDBCQUEwQiwyVUNkdkMsODhGQTZFQTs7NEZEL0RhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSxtQkFBbUI7Z0ZBS0wsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUdiLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IFNtYXJ0RmlsZVVwbG9hZGVySTE4biB9IGZyb20gJy4vc21hcnRmaWxldXBsb2FkZXIubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIEljb25Qb3NpdGlvbixcclxuICBVaUFjdGlvbkJ1dHRvblR5cGUsXHJcbiAgVWlBY3Rpb25EZXNjcmlwdG9yLFxyXG59IGZyb20gJy4uLy4uL3ZpZXctY29udGV4dC9hcGkvbW9kZWwvbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc21hcnRmaWxldXBsb2FkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydGZpbGV1cGxvYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnRmaWxldXBsb2FkZXIuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRmaWxldXBsb2FkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gIGZpbGVzOiBGaWxlW10gPSBbXTtcclxuICBASW5wdXQoKSB1cGxvYWRDYWxsYmFjayE6IChmaWxlczogRmlsZVtdKSA9PiB2b2lkO1xyXG4gIEBJbnB1dCgpIGZpbGVGb3JtYXRzPzogc3RyaW5nW10gPSBbXTtcclxuICBASW5wdXQoKSBtYXhTaXplTWI/OiBudW1iZXIgPSAyNTtcclxuICBASW5wdXQoKSBpMThuPzogU21hcnRGaWxlVXBsb2FkZXJJMThuO1xyXG4gIEBJbnB1dCgpIHVzZUljb25CdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGlzTXVsdGlwbGU/OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgaXNEcmFnT3ZlciA9IGZhbHNlO1xyXG4gIGVycm9yczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc25hY2tCYXI6IE1hdFNuYWNrQmFyKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRlZmF1bHRJMThuID0ge1xyXG4gICAgICBhZGRGaWxlOiAnZG9rdW1lbnR1bSBob3p6w6FhZMOhc2EnLFxyXG4gICAgICBicm93c2VPckRyYWc6ICd0YWxsw7N6w6FzIHZhZ3kgYmVow7p6w6FzJyxcclxuICAgICAgbWF4U2l6ZTogYG1heC4gJHt0aGlzLm1heFNpemVNYn0gTUJgLFxyXG4gICAgICBmb3JtYXRzOiAnUERGLCBkb2N4LCB4bHMgZm9ybcOhdHVtJyxcclxuICAgICAgdXBsb2FkOiAnRmVsdMO2bHTDqXMnLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmkxOG4gPSB7IC4uLmRlZmF1bHRJMThuLCAuLi50aGlzLmkxOG4gfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJvY2Vzc0ZpbGVzKGZpbGVMaXN0OiBGaWxlW10pOiB2b2lkIHtcclxuICAgIHRoaXMuZXJyb3JzID0gW107XHJcbiAgICB2YXIgdmFsaWRGaWxlczogRmlsZVtdID0gW107XHJcblxyXG4gICAgZmlsZUxpc3QuZm9yRWFjaCgoZmlsZTogRmlsZSkgPT4ge1xyXG4gICAgICBsZXQgaGFzRXJyb3IgPSBmYWxzZTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmZpbGVGb3JtYXRzPy5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCBleHQgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtcclxuICAgICAgICBjb25zdCBpc0FsbG93ZWQgPVxyXG4gICAgICAgICAgZXh0ICYmIHRoaXMuZmlsZUZvcm1hdHMuc29tZSgoZikgPT4gZi5yZXBsYWNlKCcuJywgJycpLnRvTG93ZXJDYXNlKCkgPT09IGV4dCk7XHJcblxyXG4gICAgICAgIGlmICghaXNBbGxvd2VkKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9ycy5wdXNoKGBcIiR7ZmlsZS5uYW1lfVwiIC0gbmVtIHTDoW1vZ2F0b3R0IGZvcm3DoXR1bWApO1xyXG4gICAgICAgICAgaGFzRXJyb3IgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGZpbGUuc2l6ZSA+IHRoaXMubWF4U2l6ZU1iISAqIDFfMDAwXzAwMCkge1xyXG4gICAgICAgIHRoaXMuZXJyb3JzLnB1c2goYFwiJHtmaWxlLm5hbWV9XCIgLSB0w7psIG5hZ3kgZsOhamwgKG1heCAke3RoaXMubWF4U2l6ZU1ifSBNQilgKTtcclxuICAgICAgICBoYXNFcnJvciA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghaGFzRXJyb3IpIHtcclxuICAgICAgICB2YWxpZEZpbGVzLnB1c2goZmlsZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLmlzTXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5maWxlcyA9IFsuLi50aGlzLmZpbGVzLCAuLi52YWxpZEZpbGVzXTtcclxuICAgIH0gZWxzZSBpZiAodmFsaWRGaWxlcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5maWxlcyA9IFt2YWxpZEZpbGVzWzBdXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEZpbGUoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5maWxlcyAmJiBldmVudC50YXJnZXQuZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgIHZhciBmaWxlTGlzdCA9IEFycmF5LmZyb20oZXZlbnQudGFyZ2V0LmZpbGVzKSBhcyBGaWxlW107XHJcbiAgICAgIHRoaXMucHJvY2Vzc0ZpbGVzKGZpbGVMaXN0KTtcclxuICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLmlzRHJhZ092ZXIgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoIWV2ZW50LmRhdGFUcmFuc2Zlcj8uZmlsZXMpIHJldHVybjtcclxuICAgIGNvbnN0IGZpbGVMaXN0ID0gQXJyYXkuZnJvbShldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpO1xyXG4gICAgdGhpcy5wcm9jZXNzRmlsZXMoZmlsZUxpc3QpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5pc0RyYWdPdmVyID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgY29uc3QgcmVsYXRlZCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xyXG4gICAgbGV0IHN0b3BEcmFnID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKCFyZWxhdGVkKSB7XHJcbiAgICAgIHN0b3BEcmFnID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHBhcmVudERyb3AgPSByZWxhdGVkLmNsb3Nlc3QoJy5jb250YWluZXInKTtcclxuICAgICAgaWYgKHJlbGF0ZWQgIT09IGV2ZW50LmN1cnJlbnRUYXJnZXQgJiYgIXBhcmVudERyb3ApIHtcclxuICAgICAgICBzdG9wRHJhZyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RvcERyYWcpIHtcclxuICAgICAgdGhpcy5pc0RyYWdPdmVyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkRmlsZSgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBsb2FkQ2FsbGJhY2sodGhpcy5maWxlcyk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXRTaXplKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKGJ5dGVzID09PSAwKSByZXR1cm4gJzAgQic7XHJcbiAgICBjb25zdCBrID0gMTAyNDtcclxuICAgIGNvbnN0IHNpemVzID0gWydCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJ107XHJcbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHBhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoMSkpO1xyXG4gICAgcmV0dXJuIGAke3ZhbHVlfSAke3NpemVzW2ldfWA7XHJcbiAgfVxyXG5cclxuICBmaWxlUHJldmlld1VybChmaWxlOiBGaWxlKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBpZiAoZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpKSB7XHJcbiAgICAgIHJldHVybiBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZEZpbGUoZmlsZTogRmlsZSk6IHZvaWQge1xyXG4gICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcclxuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBhLmhyZWYgPSB1cmw7XHJcbiAgICBhLmRvd25sb2FkID0gZmlsZS5uYW1lO1xyXG4gICAgYS5jbGljaygpO1xyXG4gICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVwbG9hZEJ1dHRvbigpOiBVaUFjdGlvbkRlc2NyaXB0b3Ige1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGl0bGU6IHRoaXMuaTE4biEudXBsb2FkID8/ICcnLFxyXG4gICAgICBjb2xvcjogJ3ByaW1hcnknLFxyXG4gICAgICB0eXBlOiBVaUFjdGlvbkJ1dHRvblR5cGUuUkFJU0VELFxyXG4gICAgICBpY29uOiAndXBsb2FkJyxcclxuICAgICAgaWNvblBvc2l0aW9uOiBJY29uUG9zaXRpb24uUFJFLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldCBkb3dubG9hZEJ1dHRvbigpOiBVaUFjdGlvbkRlc2NyaXB0b3Ige1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICBjb2xvcjogJ3ByaW1hcnknLFxyXG4gICAgICB0eXBlOiBVaUFjdGlvbkJ1dHRvblR5cGUuSUNPTixcclxuICAgICAgaWNvbjogJ2Rvd25sb2FkJyxcclxuICAgICAgaWNvblBvc2l0aW9uOiBJY29uUG9zaXRpb24uUFJFLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldCByZW1vdmVCdXR0b24oKTogVWlBY3Rpb25EZXNjcmlwdG9yIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHRpdGxlOiAnJyxcclxuICAgICAgY29sb3I6ICdwcmltYXJ5JyxcclxuICAgICAgdHlwZTogVWlBY3Rpb25CdXR0b25UeXBlLklDT04sXHJcbiAgICAgIGljb246ICdjbG9zZScsXHJcbiAgICAgIGljb25Db2xvcjogJ3JlZCcsXHJcbiAgICAgIGljb25Qb3NpdGlvbjogSWNvblBvc2l0aW9uLlBSRSxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImNvbnRhaW5lclwiXHJcbiAgKGRyYWdvdmVyKT1cIm9uRHJhZ092ZXIoJGV2ZW50KVwiXHJcbiAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCJcclxuICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXHJcbiAgW2NsYXNzLmRyYWdvdmVyXT1cImlzRHJhZ092ZXJcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImZpbGVDb250YWluZXJcIiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICAjZmlsZUlucHV0XHJcbiAgICAgIGlkPVwiYWRkRmlsZVwiXHJcbiAgICAgIHBsYWNlaG9sZGVyPVwiZmlsZUlucHV0XCJcclxuICAgICAgdHlwZT1cImZpbGVcIlxyXG4gICAgICAoY2hhbmdlKT1cImdldEZpbGUoJGV2ZW50KVwiXHJcbiAgICAgIGNsYXNzPVwiZmlsZVwiXHJcbiAgICAgIGFjY2VwdD1cInt7IGZpbGVGb3JtYXRzPy5qb2luKCcsICcpIH19XCJcclxuICAgICAgW3NpemVdPVwibWF4U2l6ZU1iXCJcclxuICAgICAgW211bHRpcGxlXT1cImlzTXVsdGlwbGVcIlxyXG4gICAgICBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIlxyXG4gICAgLz5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWxlVXBsb2FkQ29udGVudENvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJ1c2VJY29uQnV0dG9uXCIgY2xhc3M9XCJhZGRGaWxlQnV0dG9uXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJhZGRDaXJjbGVcIj5hZGRfY2lyY2xlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L21hdC1sYWJlbD5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIXVzZUljb25CdXR0b25cIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImFkZEZpbGVCdXR0b25cIj5cclxuICAgICAgICAgIHt7IGkxOG4hLmFkZEZpbGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbHNcIj5cclxuICAgICAgICA8bWF0LWxhYmVsICpuZ0lmPVwidXNlSWNvbkJ1dHRvblwiIGNsYXNzPVwibGFiZWwgcHJpbWFyeSB0aXRsZVwiPlxyXG4gICAgICAgICAge3sgaTE4biEuYWRkRmlsZSB9fVxyXG4gICAgICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJsYWJlbCBzZWNvbmRhcnlcIj4ge3sgaTE4biEuYnJvd3NlT3JEcmFnIH19IDwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJzdWJMYWJlbCBwcmltYXJ5XCI+IHt7IGkxOG4hLm1heFNpemUgfX0gPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cInN1YkxhYmVsIHByaW1hcnlcIj4ge3sgaTE4biEuZm9ybWF0cyB9fSA8L21hdC1sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWRCdXR0b25cIiAqbmdJZj1cImZpbGVzLmxlbmd0aFwiPlxyXG4gICAgICAgIDx1aS1hY3Rpb24tYnV0dG9uIChhY3Rpb25DbGljayk9XCJ1cGxvYWRGaWxlKClcIiBbZGVzY3JpcHRvcl09XCJ1cGxvYWRCdXR0b25cIj5cclxuICAgICAgICA8L3VpLWFjdGlvbi1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJlcnJvcnMubGVuZ3RoXCIgY2xhc3M9XCJlcnJvck1lc3NhZ2VcIj5cclxuICAgIDxzbWFydC1pY29uIFtpY29uXT1cIidlcnJvcidcIiBbY29sb3JdPVwiJ3dhcm4nXCI+PC9zbWFydC1pY29uPlxyXG4gICAgPGRpdiBjbGFzcz1cImVycm9yc1wiPlxyXG4gICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZXJyb3JzXCI+e3sgZXJyb3IgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cImZpbGVzLmxlbmd0aFwiIGNsYXNzPVwidXBsb2FkZWRGaWxlc0NvbnRhaW5lclwiPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwidXBsb2FkZWRGaWxlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWxlUHJldmlld1VybChmaWxlKTsgZWxzZSBmaWxlSWNvblwiPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJmaWxlUHJldmlld1VybChmaWxlKVwiIFthbHRdPVwiZmlsZS5uYW1lXCIgd2lkdGg9XCI1MFwiIGhlaWdodD1cIjUwXCIgLz5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZmlsZUljb24+XHJcbiAgICAgICAgPHNtYXJ0LWljb24gW2ljb25dPVwiJ2luc2VydF9kcml2ZV9maWxlJ1wiPjwvc21hcnQtaWNvbj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlRGF0YVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlRGF0YUNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlTmFtZVwiPnt7IGZpbGUubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZVNpemVcIj57eyBmb3JtYXRTaXplKGZpbGUuc2l6ZSkgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpbGVBY3Rpb25zXCI+XHJcbiAgICAgICAgPHVpLWFjdGlvbi1idXR0b24gKGFjdGlvbkNsaWNrKT1cImRvd25sb2FkRmlsZShmaWxlKVwiIFtkZXNjcmlwdG9yXT1cImRvd25sb2FkQnV0dG9uXCI+XHJcbiAgICAgICAgPC91aS1hY3Rpb24tYnV0dG9uPlxyXG5cclxuICAgICAgICA8dWktYWN0aW9uLWJ1dHRvbiBjbGFzcz1cInJlbW92ZUljb25cIiAoYWN0aW9uQ2xpY2spPVwicmVtb3ZlKGkpXCIgW2Rlc2NyaXB0b3JdPVwicmVtb3ZlQnV0dG9uXCI+XHJcbiAgICAgICAgPC91aS1hY3Rpb24tYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLmZvcm0tbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NtYXJ0Zm9ybS5mb3JtLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWlsbE1vZHVsZXMgfSBmcm9tICduZ3gtcXVpbGwnO1xyXG5pbXBvcnQge1xyXG4gIEltYWdlUHJvcGVydGllcyxcclxuICBTZWxlY3Rpb25EZWZpbml0aW9uLFxyXG4gIFNtYXJ0Rm9ybUlucHV0TW9kZSxcclxuICBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24sXHJcbiAgU21hcnRGb3JtV2lkZ2V0VHlwZSxcclxuICBTbWFydFdpZGdldEhpbnQsXHJcbiAgU29ydERlZmluaXRpb24sXHJcbiAgVGV4dEZpZWxkUHJvcGVydGllcyxcclxuICBWYWx1ZUNoYW5nZU1vZGUsXHJcbn0gZnJvbSAnLi9hcGknO1xyXG5pbXBvcnQge1xyXG4gIFNtYXJ0Rm9ybVRleHRGaWVsZEJ1dHRvbixcclxuICBTbWFydEZvcm1XaWRnZXRXaWR0aCxcclxuICBTbWFydEluZGljYXRvcixcclxuICBTbWFydFZhbGlkYXRvcixcclxuICBUb2dnbGVMYWJlbFBvc2l0aW9uLFxyXG59IGZyb20gJy4vc21hcnRmb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgSW1hZ2VSZXNvdXJjZSwgU3R5bGUgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvYXBpJztcclxuXHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgU21hcnRGb3JtV2lkZ2V0PFQ+ID1cclxuICB8IFNtYXJ0VGV4dEZpZWxkPFQ+XHJcbiAgfCBTbWFydFRleHRGaWVsZE51bWJlcjxUPlxyXG4gIHwgU21hcnRUZXh0RmllbGRDaGlwczxUPlxyXG4gIHwgU21hcnRUZXh0RmllbGRMb29rdXA8VD5cclxuICB8IFNtYXJ0VGV4dEJveDxUPlxyXG4gIHwgU21hcnRTZWxlY3Q8VD5cclxuICB8IFNtYXJ0U2VsZWN0TXVsdGlwbGU8VD5cclxuICB8IFNtYXJ0Q2hlY2tCb3g8VD5cclxuICB8IFNtYXJ0Q2hlY2tCb3gyPFQ+XHJcbiAgfCBTbWFydFJhZGlvQnV0dG9uPFQ+XHJcbiAgfCBTbWFydERhdGVQaWNrZXI8VD5cclxuICB8IFNtYXJ0RGF0ZVRpbWVQaWNrZXI8VD5cclxuICB8IFNtYXJ0Q29udGFpbmVyPFQ+XHJcbiAgfCBTbWFydExhYmVsXHJcbiAgfCBTbWFydFRpbWU8VD5cclxuICB8IFNtYXJ0VG9nZ2xlPFQ+XHJcbiAgfCBTbWFydEluZGljYXRvckl0ZW1cclxuICB8IFNtYXJ0RmlsZVVwbG9hZGVyXHJcbiAgfCBTbWFydEltYWdlXHJcbiAgfCBTbWFydERpdmlkZXJcclxuICB8IFNtYXJ0QnV0dG9uXHJcbiAgfCBTbWFydEZvcm1JbmxpbmVDb21wb25lbnRcclxuICB8IFNtYXJ0UmljaFRleHRcclxuICB8IFNtYXJ0U29ydGFibGU8VD5cclxuICB8IFNtYXJ0TWF0cml4XHJcbiAgfCBTbWFydFlvdXR1YmVQbGF5ZXJcclxuICB8IFNtYXJ0TW9udGhQaWNrZXJcclxuICB8IFNtYXJ0U3ZnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRleHRGaWVsZDxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHByZWZpeD86IHN0cmluZztcclxuICBzdWZmaXg/OiBzdHJpbmc7XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc1Bhc3N3b3JkPzogYm9vbGVhbjtcclxuICB0ZXh0RmllbGRCdXR0b24/OiBTbWFydEZvcm1UZXh0RmllbGRCdXR0b247XHJcbiAgY2Fwc0xvY2tXYXJuaW5nPzogc3RyaW5nO1xyXG4gIGNhcHNMb2NrV2FybmluZ0ljb24/OiBzdHJpbmc7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBtYXNrPzogc3RyaW5nO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgaWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIGljb25Qb3NpdGlvbj86ICdQUkUnIHwgJ1BPU1QnO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsdWVMaXN0PzogU21hcnRJdGVtPFQ+W107XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uRGVmaW5pdGlvbjtcclxuICBmaWx0ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBtYXhMZW5ndGg/OiBudW1iZXI7XHJcbiAgc2hvd0NoYXJhY3RlckxpbWl0U3VmZml4PzogYm9vbGVhbjtcclxuICB0b29sYmFySWQ/OiBzdHJpbmc7XHJcbiAgaW5wdXRNb2RlPzogU21hcnRGb3JtSW5wdXRNb2RlO1xyXG4gIHRleHRGaWVsZFByb3BlcnRpZXM/OiBUZXh0RmllbGRQcm9wZXJ0aWVzO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGV4dEZpZWxkTnVtYmVyPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTERfTlVNQkVSO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHByZWZpeD86IHN0cmluZztcclxuICBzdWZmaXg/OiBzdHJpbmc7XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICB0ZXh0RmllbGRCdXR0b24/OiBTbWFydEZvcm1UZXh0RmllbGRCdXR0b247XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBtaW5WYWx1ZXM/OiBudW1iZXI7XHJcbiAgbWF4VmFsdWVzPzogbnVtYmVyO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgaWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRleHRGaWVsZENoaXBzPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTERfQ0hJUFM7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBvcmlnaW5hbFBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsdWVMaXN0OiBTbWFydEl0ZW08VD5bXTtcclxuICBtaW5WYWx1ZXM/OiBudW1iZXI7XHJcbiAgbWF4VmFsdWVzPzogbnVtYmVyO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRleHRGaWVsZExvb2t1cDxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEX0xPT0tVUDtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG9yaWdpbmFsUGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcclxuICBtaW5WYWx1ZXM/OiBudW1iZXI7XHJcbiAgbWF4VmFsdWVzPzogbnVtYmVyO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbiAgdG9vbGJhcklkPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUZXh0Qm94PFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfQk9YO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gIHNob3dDaGFyYWN0ZXJMaW1pdFN1ZmZpeD86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFNlbGVjdDxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1Q7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIHZhbHVlPzogVDtcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbHVlTGlzdDogU21hcnRJdGVtczxUPltdO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBjb21wYXJlV2l0aD86IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRTZWxlY3RNdWx0aXBsZTxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1RfTVVMVElQTEU7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbHVlTGlzdDogU21hcnRJdGVtczxUPltdO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBjb21wYXJlV2l0aD86IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRDaGVja0JveDxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5DSEVDS19CT1g7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbHVlTGlzdDogU21hcnRJdGVtPFQ+W107XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uRGVmaW5pdGlvbjtcclxuICBkaXJlY3Rpb24/OiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb247XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Q2hlY2tCb3gyPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNIRUNLX0JPWF8yO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcclxuICB2YWx1ZUxpc3Q6IFNtYXJ0SXRlbTxUPltdO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XHJcbiAgZGlyZWN0aW9uPzogU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFJhZGlvQnV0dG9uPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlJBRElPX0JVVFRPTjtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsdWVMaXN0OiBTbWFydEl0ZW08VD5bXTtcclxuICBzZWxlY3Rpb24/OiBTZWxlY3Rpb25EZWZpbml0aW9uO1xyXG4gIGRpcmVjdGlvbj86IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbjtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnREYXRlUGlja2VyPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkRBVEVfUElDS0VSO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcclxuICBkYXRlRm9ybWF0SGludD86IHN0cmluZztcclxuICBtaW5EYXRlPzogRGF0ZTtcclxuICBtYXhEYXRlPzogRGF0ZTtcclxuICBmaWx0ZXI/OiAoZDogRGF0ZSB8IG51bGwpID0+IGJvb2xlYW47XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0RGF0ZVRpbWVQaWNrZXI8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuREFURV9USU1FX1BJQ0tFUjtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgZGF0ZUZvcm1hdEhpbnQ/OiBzdHJpbmc7XHJcbiAgZmlsdGVyPzogKGQ6IERhdGUgfCBudWxsKSA9PiBib29sZWFuO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydENvbnRhaW5lcjxUPiB7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNPTlRBSU5FUjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIHZhbHVlTGlzdDogU21hcnRGb3JtV2lkZ2V0PFQ+W107XHJcbiAgZGlyZWN0aW9uPzogU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydExhYmVsIHtcclxuICBrZXk/OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTEFCRUw7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgd2lkZ2V0RGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBtYXJrQXNSZXF1aXJlZD86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRpbWU8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVElNRTtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgdmFsdWU/OiBUO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VG9nZ2xlPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRPR0dMRTtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgdmFsdWU/OiBUO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB0b2dnbGVMYWJlbFBvc2l0aW9uPzogVG9nZ2xlTGFiZWxQb3NpdGlvbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEluZGljYXRvckl0ZW0ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSU5ESUNBVE9SO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpbmRpY2F0b3I6IFNtYXJ0SW5kaWNhdG9yO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBTbWFydEl0ZW1zPFQ+ID0gU21hcnRJdGVtPFQ+IHwgU21hcnRJdGVtR3JvdXA8VD47XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0SXRlbTxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICB2YWx1ZT86IFQ7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBpY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgaW1hZ2VVcmw/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEl0ZW1Hcm91cDxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNX0dST1VQO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICB2YWx1ZUxpc3Q6IFNtYXJ0SXRlbTxUPltdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0RmlsZVVwbG9hZGVyIHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkZJTEVfVVBMT0FERVI7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICB1cGxvYWRDYWxsYmFjazogKGtleTogc3RyaW5nLCBmaWxlczogYW55W10pID0+IHZvaWQ7XHJcbiAgZmlsZUZvcm1hdHM/OiBzdHJpbmdbXTtcclxuICBtYXhTaXplTWI/OiBudW1iZXI7XHJcbiAgaTE4bj86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEltYWdlIHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklNQUdFO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgdmFsdWU/OiBJbWFnZVJlc291cmNlO1xyXG4gIGltYWdlQ3NzPzogc3RyaW5nO1xyXG4gIGltYWdlUHJvcGVydGllcz86IEltYWdlUHJvcGVydGllcztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydERpdmlkZXIge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuRElWSURFUjtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0QnV0dG9uIHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkJVVFRPTjtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIHVpQWN0aW9uPzogYW55O1xyXG4gIHVpQWN0aW9uRGVzY3JpcHRvcjogYW55O1xyXG4gIGNhbGxiYWNrOiAoKHVpQWN0aW9uOiBhbnkpID0+IHZvaWQpIHwgKChrZXk6IHN0cmluZykgPT4gdm9pZCk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEZvcm1JbmxpbmVDb21wb25lbnQge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ09NUE9ORU5UO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgY29tcG9uZW50OiBhbnk7XHJcbiAgaW5wdXQ6IE1hcDxzdHJpbmcsIGFueT47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRSaWNoVGV4dCB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5SSUNIX1RFWFQ7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBvcmlnaW5hbFBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIHF1aWxsTW9kdWxlczogUXVpbGxNb2R1bGVzO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBtYXhMZW5ndGg/OiBudW1iZXI7XHJcbiAgc2hvd0NoYXJhY3RlckxpbWl0U3VmZml4PzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFNvcnRhYmxlPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNPUlRBQkxFO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICB2YWx1ZUxpc3Q/OiBTbWFydEl0ZW08VD5bXTtcclxuICBpc011bHRpcGxlPzogYm9vbGVhbjtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgc29ydERlZmluaXRpb246IFNvcnREZWZpbml0aW9uO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0TWF0cml4IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLk1BVFJJWDtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZT86IGFueTtcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgaXNNdWx0aXBsZT86IGJvb2xlYW47XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBidXR0b24/OiBTbWFydE1hdHJpeEJ1dHRvbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydE1hdHJpeEJ1dHRvbiB7XHJcbiAgaWNvbkNvZGU/OiBzdHJpbmc7XHJcbiAgY2FsbGJhY2s6ICh3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+LCByb3c6IGFueSkgPT4gYW55O1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0WW91dHViZVBsYXllciB7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLllPVVRVQkVfUExBWUVSO1xyXG4gIGxpbms/OiBzdHJpbmc7XHJcbiAgdmlkZW9JZD86IHN0cmluZztcclxuICBoZWlnaHQ/OiBudW1iZXI7XHJcbiAgd2lkdGg/OiBudW1iZXI7XHJcbiAgc3RhcnRTZWNvbmRzPzogbnVtYmVyIHwgMDtcclxuICBlbmRTZWNvbmRzPzogbnVtYmVyO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBsYWJlbD86IHN0cmluZztcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRNb250aFBpY2tlciB7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTU9OVEhfUElDS0VSO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFN2ZyB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TVkc7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICB2YWx1ZT86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLmZvcm0tbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NtYXJ0Zm9ybS5mb3JtLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWlsbE1vZHVsZXMgfSBmcm9tICduZ3gtcXVpbGwnO1xyXG5pbXBvcnQge1xyXG4gIEZpbGVVcGxvYWRlclByb3BlcnRpZXMsXHJcbiAgSW1hZ2VQcm9wZXJ0aWVzLFxyXG4gIFNlbGVjdGlvbkRlZmluaXRpb24sXHJcbiAgU21hcnRGb3JtSW5wdXRNb2RlLFxyXG4gIFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbixcclxuICBTbWFydEZvcm1XaWRnZXRUeXBlLFxyXG4gIFNtYXJ0V2lkZ2V0SGludCxcclxuICBTb3J0RGVmaW5pdGlvbixcclxuICBUZXh0RmllbGRQcm9wZXJ0aWVzLFxyXG4gIFZhbHVlQ2hhbmdlTW9kZSxcclxufSBmcm9tICcuL2FwaSc7XHJcbmltcG9ydCB7XHJcbiAgU21hcnRGb3JtVGV4dEZpZWxkQnV0dG9uLFxyXG4gIFNtYXJ0Rm9ybVdpZGdldFdpZHRoLFxyXG4gIFNtYXJ0SW5kaWNhdG9yLFxyXG4gIFNtYXJ0VmFsaWRhdG9yLFxyXG4gIFRvZ2dsZUxhYmVsUG9zaXRpb24sXHJcbn0gZnJvbSAnLi9zbWFydGZvcm0ubW9kZWwnO1xyXG5pbXBvcnQgeyBJbWFnZVJlc291cmNlLCBTdHlsZSB9IGZyb20gJy4uL3ZpZXctY29udGV4dC9hcGknO1xyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBTbWFydEZvcm1XaWRnZXQ8VD4gPVxyXG4gIHwgU21hcnRUZXh0RmllbGQ8VD5cclxuICB8IFNtYXJ0VGV4dEZpZWxkTnVtYmVyPFQ+XHJcbiAgfCBTbWFydFRleHRGaWVsZENoaXBzPFQ+XHJcbiAgfCBTbWFydFRleHRGaWVsZExvb2t1cDxUPlxyXG4gIHwgU21hcnRUZXh0Qm94PFQ+XHJcbiAgfCBTbWFydFNlbGVjdDxUPlxyXG4gIHwgU21hcnRTZWxlY3RNdWx0aXBsZTxUPlxyXG4gIHwgU21hcnRDaGVja0JveDxUPlxyXG4gIHwgU21hcnRDaGVja0JveDI8VD5cclxuICB8IFNtYXJ0UmFkaW9CdXR0b248VD5cclxuICB8IFNtYXJ0RGF0ZVBpY2tlcjxUPlxyXG4gIHwgU21hcnREYXRlVGltZVBpY2tlcjxUPlxyXG4gIHwgU21hcnRDb250YWluZXI8VD5cclxuICB8IFNtYXJ0TGFiZWxcclxuICB8IFNtYXJ0VGltZTxUPlxyXG4gIHwgU21hcnRUb2dnbGU8VD5cclxuICB8IFNtYXJ0SW5kaWNhdG9ySXRlbVxyXG4gIHwgU21hcnRGaWxlVXBsb2FkZXJcclxuICB8IFNtYXJ0SW1hZ2VcclxuICB8IFNtYXJ0RGl2aWRlclxyXG4gIHwgU21hcnRCdXR0b25cclxuICB8IFNtYXJ0Rm9ybUlubGluZUNvbXBvbmVudFxyXG4gIHwgU21hcnRSaWNoVGV4dFxyXG4gIHwgU21hcnRTb3J0YWJsZTxUPlxyXG4gIHwgU21hcnRNYXRyaXhcclxuICB8IFNtYXJ0WW91dHViZVBsYXllclxyXG4gIHwgU21hcnRNb250aFBpY2tlclxyXG4gIHwgU21hcnRTdmc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGV4dEZpZWxkPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTEQ7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBvcmlnaW5hbFBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXIgfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgcHJlZml4Pzogc3RyaW5nO1xyXG4gIHN1ZmZpeD86IHN0cmluZztcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzUGFzc3dvcmQ/OiBib29sZWFuO1xyXG4gIHRleHRGaWVsZEJ1dHRvbj86IFNtYXJ0Rm9ybVRleHRGaWVsZEJ1dHRvbjtcclxuICBjYXBzTG9ja1dhcm5pbmc/OiBzdHJpbmc7XHJcbiAgY2Fwc0xvY2tXYXJuaW5nSWNvbj86IHN0cmluZztcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIG1hc2s/OiBzdHJpbmc7XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBpY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgaWNvblBvc2l0aW9uPzogJ1BSRScgfCAnUE9TVCc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcclxuICB2YWx1ZUxpc3Q/OiBTbWFydEl0ZW08VD5bXTtcclxuICBzZWxlY3Rpb24/OiBTZWxlY3Rpb25EZWZpbml0aW9uO1xyXG4gIGZpbHRlckVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG4gIG1heExlbmd0aD86IG51bWJlcjtcclxuICBzaG93Q2hhcmFjdGVyTGltaXRTdWZmaXg/OiBib29sZWFuO1xyXG4gIHRvb2xiYXJJZD86IHN0cmluZztcclxuICBpbnB1dE1vZGU/OiBTbWFydEZvcm1JbnB1dE1vZGU7XHJcbiAgdGV4dEZpZWxkUHJvcGVydGllcz86IFRleHRGaWVsZFByb3BlcnRpZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUZXh0RmllbGROdW1iZXI8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRF9OVU1CRVI7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBvcmlnaW5hbFBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXIgfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgcHJlZml4Pzogc3RyaW5nO1xyXG4gIHN1ZmZpeD86IHN0cmluZztcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIHRleHRGaWVsZEJ1dHRvbj86IFNtYXJ0Rm9ybVRleHRGaWVsZEJ1dHRvbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIG1pblZhbHVlcz86IG51bWJlcjtcclxuICBtYXhWYWx1ZXM/OiBudW1iZXI7XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBpY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGV4dEZpZWxkQ2hpcHM8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRF9DSElQUztcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG9yaWdpbmFsUGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcclxuICB2YWx1ZUxpc3Q6IFNtYXJ0SXRlbTxUPltdO1xyXG4gIG1pblZhbHVlcz86IG51bWJlcjtcclxuICBtYXhWYWx1ZXM/OiBudW1iZXI7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGV4dEZpZWxkTG9va3VwPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTERfTE9PS1VQO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIG1pblZhbHVlcz86IG51bWJlcjtcclxuICBtYXhWYWx1ZXM/OiBudW1iZXI7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICB0b29sYmFySWQ/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRleHRCb3g8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9CT1g7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBvcmlnaW5hbFBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBtYXhMZW5ndGg/OiBudW1iZXI7XHJcbiAgc2hvd0NoYXJhY3RlckxpbWl0U3VmZml4PzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0U2VsZWN0PFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVDtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBUO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsdWVMaXN0OiBTbWFydEl0ZW1zPFQ+W107XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uRGVmaW5pdGlvbjtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG4gIGNvbXBhcmVXaXRoPzogKG8xOiBhbnksIG8yOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFNlbGVjdE11bHRpcGxlPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVF9NVUxUSVBMRTtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsdWVMaXN0OiBTbWFydEl0ZW1zPFQ+W107XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uRGVmaW5pdGlvbjtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG4gIGNvbXBhcmVXaXRoPzogKG8xOiBhbnksIG8yOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydENoZWNrQm94PFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNIRUNLX0JPWDtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsdWVMaXN0OiBTbWFydEl0ZW08VD5bXTtcclxuICBzZWxlY3Rpb24/OiBTZWxlY3Rpb25EZWZpbml0aW9uO1xyXG4gIGRpcmVjdGlvbj86IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbjtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRDaGVja0JveDI8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ0hFQ0tfQk9YXzI7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbHVlTGlzdDogU21hcnRJdGVtPFQ+W107XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uRGVmaW5pdGlvbjtcclxuICBkaXJlY3Rpb24/OiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb247XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0UmFkaW9CdXR0b248VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuUkFESU9fQlVUVE9OO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcclxuICB2YWx1ZUxpc3Q6IFNtYXJ0SXRlbTxUPltdO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XHJcbiAgZGlyZWN0aW9uPzogU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydERhdGVQaWNrZXI8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuREFURV9QSUNLRVI7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIGRhdGVGb3JtYXRIaW50Pzogc3RyaW5nO1xyXG4gIG1pbkRhdGU/OiBEYXRlO1xyXG4gIG1heERhdGU/OiBEYXRlO1xyXG4gIGZpbHRlcj86IChkOiBEYXRlIHwgbnVsbCkgPT4gYm9vbGVhbjtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnREYXRlVGltZVBpY2tlcjxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5EQVRFX1RJTUVfUElDS0VSO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcclxuICBkYXRlRm9ybWF0SGludD86IHN0cmluZztcclxuICBmaWx0ZXI/OiAoZDogRGF0ZSB8IG51bGwpID0+IGJvb2xlYW47XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Q29udGFpbmVyPFQ+IHtcclxuICBrZXk/OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ09OVEFJTkVSO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgdmFsdWVMaXN0OiBTbWFydEZvcm1XaWRnZXQ8VD5bXTtcclxuICBkaXJlY3Rpb24/OiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb247XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0TGFiZWwge1xyXG4gIGtleT86IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5MQUJFTDtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICB3aWRnZXREZXNjcmlwdGlvbj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIG1hcmtBc1JlcXVpcmVkPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGltZTxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5USU1FO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUb2dnbGU8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVE9HR0xFO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHRvZ2dsZUxhYmVsUG9zaXRpb24/OiBUb2dnbGVMYWJlbFBvc2l0aW9uO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0SW5kaWNhdG9ySXRlbSB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JTkRJQ0FUT1I7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGluZGljYXRvcjogU21hcnRJbmRpY2F0b3I7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIFNtYXJ0SXRlbXM8VD4gPSBTbWFydEl0ZW08VD4gfCBTbWFydEl0ZW1Hcm91cDxUPjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRJdGVtPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU07XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHZhbHVlPzogVDtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGljb25Db2xvcj86IHN0cmluZztcclxuICBpbWFnZVVybD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0SXRlbUdyb3VwPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU1fR1JPVVA7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIHZhbHVlTGlzdDogU21hcnRJdGVtPFQ+W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRGaWxlVXBsb2FkZXIge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuRklMRV9VUExPQURFUjtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGZpbGVGb3JtYXRzPzogc3RyaW5nW107XHJcbiAgbWF4U2l6ZU1iPzogbnVtYmVyO1xyXG4gIGkxOG4/OiBhbnk7XHJcbiAgZmlsZVVwbG9hZGVyUHJvcGVydGllcz86IEZpbGVVcGxvYWRlclByb3BlcnRpZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRJbWFnZSB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JTUFHRTtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIHZhbHVlPzogSW1hZ2VSZXNvdXJjZTtcclxuICBpbWFnZUNzcz86IHN0cmluZztcclxuICBpbWFnZVByb3BlcnRpZXM/OiBJbWFnZVByb3BlcnRpZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnREaXZpZGVyIHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkRJVklERVI7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICB2YWx1ZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEJ1dHRvbiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5CVVRUT047XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICB2YWx1ZT86IHN0cmluZztcclxuICB1aUFjdGlvbj86IGFueTtcclxuICB1aUFjdGlvbkRlc2NyaXB0b3I6IGFueTtcclxuICBjYWxsYmFjazogKCh1aUFjdGlvbjogYW55KSA9PiB2b2lkKSB8ICgoa2V5OiBzdHJpbmcpID0+IHZvaWQpO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRGb3JtSW5saW5lQ29tcG9uZW50IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNPTVBPTkVOVDtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGNvbXBvbmVudDogYW55O1xyXG4gIGlucHV0OiBNYXA8c3RyaW5nLCBhbnk+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0UmljaFRleHQge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuUklDSF9URVhUO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBxdWlsbE1vZHVsZXM6IFF1aWxsTW9kdWxlcztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gIHNob3dDaGFyYWN0ZXJMaW1pdFN1ZmZpeD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRTb3J0YWJsZTxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TT1JUQUJMRTtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZT86IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgdmFsdWVMaXN0PzogU21hcnRJdGVtPFQ+W107XHJcbiAgaXNNdWx0aXBsZT86IGJvb2xlYW47XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIHNvcnREZWZpbml0aW9uOiBTb3J0RGVmaW5pdGlvbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydE1hdHJpeCB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5NQVRSSVg7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBhbnk7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGlzTXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbiAgYnV0dG9uPzogU21hcnRNYXRyaXhCdXR0b247XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRNYXRyaXhCdXR0b24ge1xyXG4gIGljb25Db2RlPzogc3RyaW5nO1xyXG4gIGNhbGxiYWNrOiAod2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55Piwgcm93OiBhbnkpID0+IGFueTtcclxuICBjb2xvcj86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFlvdXR1YmVQbGF5ZXIge1xyXG4gIGtleT86IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5ZT1VUVUJFX1BMQVlFUjtcclxuICBsaW5rPzogc3RyaW5nO1xyXG4gIHZpZGVvSWQ/OiBzdHJpbmc7XHJcbiAgaGVpZ2h0PzogbnVtYmVyO1xyXG4gIHdpZHRoPzogbnVtYmVyO1xyXG4gIHN0YXJ0U2Vjb25kcz86IG51bWJlciB8IDA7XHJcbiAgZW5kU2Vjb25kcz86IG51bWJlcjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0TW9udGhQaWNrZXIge1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLk1PTlRIX1BJQ0tFUjtcclxuICB2YWx1ZT86IHN0cmluZztcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRTdmcge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU1ZHO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxufVxyXG4iXX0=