pcf-assessment-taker 0.1.13

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 (93) hide show
  1. package/README.md +24 -0
  2. package/assessment-taker.d.ts +5 -0
  3. package/esm2020/assessment-taker.mjs +5 -0
  4. package/esm2020/lib/assessment-taker.component.mjs +24 -0
  5. package/esm2020/lib/assessment-taker.module.mjs +44 -0
  6. package/esm2020/lib/assessment-taker.routing.module.mjs +23 -0
  7. package/esm2020/lib/assessment-taker.service.mjs +46 -0
  8. package/esm2020/lib/components/feature/feature-routing.module.mjs +29 -0
  9. package/esm2020/lib/components/feature/feature.module.mjs +57 -0
  10. package/esm2020/lib/components/feature/quest-success/quest-success/quest-success.component.mjs +26 -0
  11. package/esm2020/lib/components/feature/quest-wizard/quest-wizard.component.mjs +437 -0
  12. package/esm2020/lib/configuration.mjs +4 -0
  13. package/esm2020/lib/shared/interceptor/lib-interceptor.interceptor.mjs +26 -0
  14. package/esm2020/lib/shared/pipe/order-by.pipe.mjs +22 -0
  15. package/esm2020/lib/shared/services/assessment-id.service.mjs +21 -0
  16. package/esm2020/lib/shared/shared-components/question-type-add-dialog/question-type-add-dialog.component.mjs +97 -0
  17. package/esm2020/lib/shared/shared-components/question-type-date/question-type-date.component.mjs +42 -0
  18. package/esm2020/lib/shared/shared-components/question-type-editor/question-type-editor.component.mjs +48 -0
  19. package/esm2020/lib/shared/shared-components/question-type-long/question-type-long.component.mjs +47 -0
  20. package/esm2020/lib/shared/shared-components/question-type-multiselect/question-type-multiselect.component.mjs +55 -0
  21. package/esm2020/lib/shared/shared-components/question-type-multiselect-sub/question-type-multiselect-sub.component.mjs +58 -0
  22. package/esm2020/lib/shared/shared-components/question-type-number/question-type-number.component.mjs +43 -0
  23. package/esm2020/lib/shared/shared-components/question-type-objective/question-type-objective.component.mjs +59 -0
  24. package/esm2020/lib/shared/shared-components/question-type-objective-sub/question-type-objective-sub.component.mjs +60 -0
  25. package/esm2020/lib/shared/shared-components/question-type-rating/question-type-rating.component.mjs +49 -0
  26. package/esm2020/lib/shared/shared-components/question-type-searchable-tag/question-type-searchable-tag.component.mjs +103 -0
  27. package/esm2020/lib/shared/shared-components/question-type-short/question-type-short.component.mjs +43 -0
  28. package/esm2020/lib/shared/shared-components/question-type-upload-file/question-type-upload-file.component.mjs +48 -0
  29. package/esm2020/lib/shared/shared-components/shared-components.module.mjs +143 -0
  30. package/esm2020/pcf-assessment-taker.mjs +5 -0
  31. package/esm2020/public-api.mjs +25 -0
  32. package/fesm2015/assessment-taker.mjs +1481 -0
  33. package/fesm2015/assessment-taker.mjs.map +1 -0
  34. package/fesm2015/pcf-assessment-taker.mjs +1481 -0
  35. package/fesm2015/pcf-assessment-taker.mjs.map +1 -0
  36. package/fesm2020/assessment-taker.mjs +1468 -0
  37. package/fesm2020/assessment-taker.mjs.map +1 -0
  38. package/fesm2020/pcf-assessment-taker.mjs +1468 -0
  39. package/fesm2020/pcf-assessment-taker.mjs.map +1 -0
  40. package/lib/assessment-taker.component.d.ts +13 -0
  41. package/lib/assessment-taker.module.d.ts +11 -0
  42. package/lib/assessment-taker.routing.module.d.ts +7 -0
  43. package/lib/assessment-taker.service.d.ts +18 -0
  44. package/lib/components/feature/feature-routing.module.d.ts +7 -0
  45. package/lib/components/feature/feature.module.d.ts +15 -0
  46. package/lib/components/feature/quest-success/quest-success/quest-success.component.d.ts +12 -0
  47. package/lib/components/feature/quest-wizard/quest-wizard.component.d.ts +51 -0
  48. package/lib/configuration.d.ts +6 -0
  49. package/lib/shared/interceptor/lib-interceptor.interceptor.d.ts +11 -0
  50. package/lib/shared/pipe/order-by.pipe.d.ts +7 -0
  51. package/lib/shared/services/assessment-id.service.d.ts +9 -0
  52. package/lib/shared/shared-components/question-type-add-dialog/question-type-add-dialog.component.d.ts +35 -0
  53. package/lib/shared/shared-components/question-type-date/question-type-date.component.d.ts +12 -0
  54. package/lib/shared/shared-components/question-type-editor/question-type-editor.component.d.ts +16 -0
  55. package/lib/shared/shared-components/question-type-long/question-type-long.component.d.ts +15 -0
  56. package/lib/shared/shared-components/question-type-multiselect/question-type-multiselect.component.d.ts +15 -0
  57. package/lib/shared/shared-components/question-type-multiselect-sub/question-type-multiselect-sub.component.d.ts +15 -0
  58. package/lib/shared/shared-components/question-type-number/question-type-number.component.d.ts +13 -0
  59. package/lib/shared/shared-components/question-type-objective/question-type-objective.component.d.ts +17 -0
  60. package/lib/shared/shared-components/question-type-objective-sub/question-type-objective-sub.component.d.ts +16 -0
  61. package/lib/shared/shared-components/question-type-rating/question-type-rating.component.d.ts +14 -0
  62. package/lib/shared/shared-components/question-type-searchable-tag/question-type-searchable-tag.component.d.ts +35 -0
  63. package/lib/shared/shared-components/question-type-short/question-type-short.component.d.ts +13 -0
  64. package/lib/shared/shared-components/question-type-upload-file/question-type-upload-file.component.d.ts +14 -0
  65. package/lib/shared/shared-components/shared-components.module.d.ts +34 -0
  66. package/package.json +32 -0
  67. package/pcf-assessment-taker.d.ts +5 -0
  68. package/public-api.d.ts +20 -0
  69. package/src/lib/assets/images/assessment-placeholder-2.png +0 -0
  70. package/src/lib/assets/images/new_tooltip.jpg +0 -0
  71. package/src/lib/assets/images/tooltip.png +0 -0
  72. package/src/lib/assets/images/tooltipimg.jpg +0 -0
  73. package/src/lib/assets/theme/_theme.scss +1077 -0
  74. package/src/lib/assets/theme/font.css +36 -0
  75. package/src/lib/assets/theme/fonts/halant/Halant-Bold.ttf +0 -0
  76. package/src/lib/assets/theme/fonts/halant/Halant-Light.ttf +0 -0
  77. package/src/lib/assets/theme/fonts/halant/Halant-Medium.ttf +0 -0
  78. package/src/lib/assets/theme/fonts/halant/Halant-Regular.ttf +0 -0
  79. package/src/lib/assets/theme/fonts/halant/Halant-SemiBold.ttf +0 -0
  80. package/src/lib/assets/theme/fonts/poppins/Poppins-Bold.ttf +0 -0
  81. package/src/lib/assets/theme/fonts/poppins/Poppins-ExtraBold.ttf +0 -0
  82. package/src/lib/assets/theme/fonts/poppins/Poppins-ExtraLight.ttf +0 -0
  83. package/src/lib/assets/theme/fonts/poppins/Poppins-Light.ttf +0 -0
  84. package/src/lib/assets/theme/fonts/poppins/Poppins-Medium.ttf +0 -0
  85. package/src/lib/assets/theme/fonts/poppins/Poppins-Regular.ttf +0 -0
  86. package/src/lib/assets/theme/fonts/poppins/Poppins-SemiBold.ttf +0 -0
  87. package/src/lib/assets/theme/fonts/poppins/Poppins-Thin.ttf +0 -0
  88. package/src/lib/assets/theme/fonts/roboto/Roboto-Bold.ttf +0 -0
  89. package/src/lib/assets/theme/fonts/roboto/Roboto-Light.ttf +0 -0
  90. package/src/lib/assets/theme/fonts/roboto/Roboto-Medium.ttf +0 -0
  91. package/src/lib/assets/theme/fonts/roboto/Roboto-Regular.ttf +0 -0
  92. package/src/lib/assets/theme/fonts/roboto/Roboto-Thin.ttf +0 -0
  93. package/src/lib/assets/theme/variables.css +392 -0
@@ -0,0 +1,437 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { Validators, FormGroup, FormControl } from '@angular/forms';
3
+ import { QuestSuccessComponent } from '../quest-success/quest-success/quest-success.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../assessment-taker.service";
6
+ import * as i2 from "../../../shared/services/assessment-id.service";
7
+ import * as i3 from "@angular/forms";
8
+ import * as i4 from "@angular/material/dialog";
9
+ import * as i5 from "../../../shared/shared-components/question-type-objective/question-type-objective.component";
10
+ import * as i6 from "../../../shared/shared-components/question-type-short/question-type-short.component";
11
+ import * as i7 from "../../../shared/shared-components/question-type-long/question-type-long.component";
12
+ import * as i8 from "../../../shared/shared-components/question-type-date/question-type-date.component";
13
+ import * as i9 from "../../../shared/shared-components/question-type-number/question-type-number.component";
14
+ import * as i10 from "../../../shared/shared-components/question-type-upload-file/question-type-upload-file.component";
15
+ import * as i11 from "../../../shared/shared-components/question-type-multiselect/question-type-multiselect.component";
16
+ import * as i12 from "../../../shared/shared-components/question-type-rating/question-type-rating.component";
17
+ import * as i13 from "../../../shared/shared-components/question-type-editor/question-type-editor.component";
18
+ import * as i14 from "../../../shared/shared-components/question-type-searchable-tag/question-type-searchable-tag.component";
19
+ import * as i15 from "@angular/material/button";
20
+ import * as i16 from "@angular/common";
21
+ import * as i17 from "@angular/material/chips";
22
+ import * as i18 from "@angular/material/tooltip";
23
+ export class QuestWizardComponent {
24
+ constructor(assessmentService, assessmentIdService, fb, dialog, cdr) {
25
+ this.assessmentService = assessmentService;
26
+ this.assessmentIdService = assessmentIdService;
27
+ this.fb = fb;
28
+ this.dialog = dialog;
29
+ this.cdr = cdr;
30
+ this.childQuestionBook = [];
31
+ this.editorName = "editorName";
32
+ this.tooltipText = '';
33
+ this.submitted = false;
34
+ // assessmentId: any
35
+ this.assessmentQuestionPapersList = new Array();
36
+ this.questionIds = {};
37
+ this.startDate = new Date();
38
+ this.group = {};
39
+ this.assessmentHeaderImage = 'https://dev.platformcommons.org/forms/assets/images/domain/assessment-placeholder-2.png';
40
+ this.sectionQuestions = {};
41
+ this.requestPayload = {};
42
+ this.config = {
43
+ editable: true,
44
+ spellcheck: true,
45
+ height: '15rem',
46
+ minHeight: '5rem',
47
+ placeholder: 'Enter text here...',
48
+ translate: 'no',
49
+ defaultParagraphSeparator: 'p',
50
+ defaultFontName: 'Arial',
51
+ toolbarHiddenButtons: [
52
+ ['bold']
53
+ ],
54
+ customClasses: [
55
+ {
56
+ name: "quote",
57
+ class: "quote",
58
+ },
59
+ {
60
+ name: 'redText',
61
+ class: 'redText'
62
+ },
63
+ {
64
+ name: "titleText",
65
+ class: "titleText",
66
+ tag: "h1",
67
+ },
68
+ ]
69
+ };
70
+ this.formGroup = this.fb.group({});
71
+ }
72
+ ngOnChanges(changes) {
73
+ if (changes['assessmentId'] && !changes['assessmentId'].isFirstChange()) {
74
+ this.assessmentId = changes['assessmentId'].currentValue;
75
+ this.ngOnInit();
76
+ }
77
+ }
78
+ ngOnInit() {
79
+ // this.assessmentIdService.currentAssessmentId.subscribe(id => {
80
+ // this.assessmentId = id
81
+ // console.log(this.assessmentId)
82
+ // })
83
+ console.log(this.assessmentId);
84
+ if (this.assessmentId) {
85
+ this.getAssessmentDetails();
86
+ }
87
+ console.log(this.sectionQuestions);
88
+ // this.fb.group({
89
+ /* shortAns: ["", Validators.required],
90
+ longAns1: ["", Validators.required],
91
+ selDate: ["", Validators.required],
92
+ numberAns: ["", Validators.required],
93
+ multiSelectAns: ["", Validators.required],
94
+ multiSubAns: ["", Validators.required],
95
+ objSubAns: ["", Validators.required] */
96
+ // });
97
+ }
98
+ get f() {
99
+ return this.formGroup.controls;
100
+ }
101
+ submitTask() {
102
+ this.formGroup.markAllAsTouched();
103
+ if (this.formGroup.valid) {
104
+ console.log(this.formGroup.value);
105
+ this.requestPayload = {
106
+ "aiadefaultResponseList": [],
107
+ "assessmentInstance": {
108
+ /* assessment: this.assessmentQuestionPapersList.assessment,
109
+ asmtInstDesc: this.assessmentQuestionPapersList.aqpDesc,
110
+ asmtInstName: this.assessmentQuestionPapersList.aqpName, */
111
+ /* scheduleStatus: {
112
+ "code": "ASSESSMENT.PUBLISH",
113
+ "description": "",
114
+ "labels": [
115
+ {
116
+ "text": "Draft",
117
+ "language": {
118
+ "code": "ENG"
119
+ }
120
+ }
121
+ ],
122
+ "refClass": {
123
+ "code": "SCHEDULE_STATUS"
124
+ }
125
+ }, */ //assesmentSchema.scheduleStatus,
126
+ /* confirmationDate: new Date(),// assesmentSchema.confirmationDate,
127
+ endDate: new Date(),//assesmentSchema.endDate,
128
+ startDate: this.startDate, */
129
+ id: 145,
130
+ /* tenant: this.assessmentQuestionPapersList.tenant,
131
+ imageURL: "",//this.assessmentQuestionPapersList.imageURL,
132
+ isPublic: true,//this.assessmentQuestionPapersList.isPublic,
133
+ specificVisibility: false,//assesmentSchema.specificVisibility,
134
+ editable: false,//assesmentSchema.editable,
135
+ author: "Aashish Zenform",//assesmentSchema.author,
136
+ tenantId: this.assessmentQuestionPapersList.tenantId,
137
+ isActive: true,//assesmentSchema.isActive,
138
+ createdAt: this.assessmentQuestionPapersList.createdAt,
139
+ createdBy: this.assessmentQuestionPapersList.createdBy,
140
+ uuid: this.assessmentQuestionPapersList.uuid */
141
+ },
142
+ assessor: {
143
+ actorId: "0",
144
+ actorType: "ACTOR_TYPE.BRIDGE_USER",
145
+ id: 0,
146
+ isActive: true,
147
+ tenant: "0"
148
+ },
149
+ "id": 0,
150
+ "isActive": true,
151
+ "tenant": "0",
152
+ "assessedForEntityId": "303906",
153
+ "assessedForEntityType": "ACTOR_TYPE.BRIDGE_USER",
154
+ "assessee": {
155
+ actorId: "303906",
156
+ actorType: "ACTOR_TYPE.BRIDGE_USER",
157
+ id: 0,
158
+ isActive: true,
159
+ tenant: "0"
160
+ }
161
+ };
162
+ this.assessmentQuestionPapersList?.questionPaperSectionList.forEach((section, index) => {
163
+ section.sectionQuestionsList.sort((a, b) => a.orderNo - b.orderNo).forEach((ques, qindex) => {
164
+ var questionResponseObj = {};
165
+ const questionDetails = this.sectionQuestions[0].find(i => i.id === ques.questionId);
166
+ if (questionDetails?.questionType.code === "QUESTION_TYPE.OBJECTIVE" || questionDetails?.questionType.code === "QUESTION_TYPE.SCALE_RATING") {
167
+ const defaultOptions = questionDetails.defaultOptionsList;
168
+ questionResponseObj = { optionId: defaultOptions?.find(i => i.options.id === this.formGroup.value[ques.questionId].id)?.options };
169
+ }
170
+ else if (questionDetails?.questionType.code === "QUESTION_TYPE.MULTISELECT") {
171
+ const defaultOptions = questionDetails.defaultOptionsList;
172
+ const drobjectiveresponseList = [];
173
+ this.formGroup.value[ques.questionId]?.forEach((opt) => {
174
+ const selectedOptions = defaultOptions.find(i => i.options.id === opt.id);
175
+ drobjectiveresponseList.push({
176
+ id: 0,
177
+ defaultOption: selectedOptions
178
+ });
179
+ });
180
+ questionResponseObj = {
181
+ drobjectiveresponseList
182
+ };
183
+ }
184
+ else if (questionDetails?.questionType.code === "QUESTION_TYPE.MULTISELECT_SUBJECTIVE") {
185
+ const defaultOptions = questionDetails.defaultOptionsList;
186
+ const drobjectiveresponseList = [];
187
+ this.formGroup.value[`${ques.questionId}_objective`]?.forEach((opt) => {
188
+ const selectedOptions = defaultOptions.find(i => i.options.id === opt.id);
189
+ drobjectiveresponseList.push({
190
+ id: 0,
191
+ defaultOption: selectedOptions
192
+ });
193
+ });
194
+ questionResponseObj = {
195
+ drobjectiveresponseList,
196
+ drsubjectiveresponseList: [
197
+ {
198
+ id: 0,
199
+ responseText: this.formGroup.value[`${ques.questionId}_subjective`]
200
+ }
201
+ ]
202
+ };
203
+ }
204
+ else if (questionDetails?.questionType.code === "QUESTION_TYPE.OBJECTIVE_SUBJECTIVE") {
205
+ const defaultOptions = questionDetails.defaultOptionsList;
206
+ questionResponseObj = {
207
+ optionId: defaultOptions?.find(i => i.options.id === this.formGroup.value[`${ques.questionId}_objective`].id)?.options,
208
+ drsubjectiveresponseList: [
209
+ {
210
+ id: 0,
211
+ responseText: this.formGroup.value[`${ques.questionId}_subjective`]
212
+ }
213
+ ]
214
+ };
215
+ }
216
+ else if (questionDetails?.questionType.code === "QUESTION_TYPE.FILE_UPLOAD") {
217
+ let formData = new FormData();
218
+ /* let maxDepth=123;
219
+ const fileData = this.formGroup.value[ques.questionId];
220
+ let file: File = fileData.fileSourc;
221
+ formData.append('file', file);
222
+
223
+ this.assessmentService.uploadAssessment(formData).subscribe(response => {
224
+ console.log(response);
225
+ // if (response != '') {}
226
+ }); */
227
+ questionResponseObj = {
228
+ drsubjectiveresponseList: [
229
+ {
230
+ id: 0,
231
+ responseText: ''
232
+ }
233
+ ]
234
+ };
235
+ }
236
+ else {
237
+ questionResponseObj = {
238
+ drsubjectiveresponseList: [
239
+ {
240
+ id: 0,
241
+ responseText: this.formGroup.value[ques.questionId]
242
+ // responseText: "test"
243
+ }
244
+ ]
245
+ };
246
+ }
247
+ // if (questionDetails?.questionSubtype.code === "QUESTION_SUB_TYPE.SUBJECTIVE") {
248
+ this.requestPayload.aiadefaultResponseList.push({
249
+ ...questionResponseObj,
250
+ "id": 0,
251
+ "isActive": true,
252
+ "sectionQuestion": {
253
+ id: ques.id,
254
+ isActive: ques.isActive,
255
+ orderNo: ques.orderNo,
256
+ questionId: ques.questionId,
257
+ questionNumber: ques.questionNumber,
258
+ tenant: ques.tenant,
259
+ secQuestDesc: ques.secQuestDesc
260
+ },
261
+ "tenant": "0"
262
+ });
263
+ // }
264
+ });
265
+ });
266
+ this.assessmentService.submitAssessmentQuestionPapers(this.requestPayload).subscribe(response => {
267
+ console.log(response);
268
+ if (response != '') {
269
+ const dialogRef = this.dialog.open(QuestSuccessComponent, {
270
+ data: {
271
+ assesmentInstId: 'data'
272
+ },
273
+ disableClose: true
274
+ });
275
+ dialogRef.afterClosed().subscribe((result) => {
276
+ if (result?.event == 'close') {
277
+ window.location.reload();
278
+ }
279
+ });
280
+ }
281
+ });
282
+ console.log(this.requestPayload);
283
+ }
284
+ else {
285
+ console.log("invalid form values");
286
+ }
287
+ }
288
+ getAssessmentDetails() {
289
+ this.assessmentService.getAssessmentQuestionPapers(this.assessmentId).subscribe({
290
+ next: (data) => {
291
+ this.assessmentQuestionPapersList = data?.[0];
292
+ this.assessmentQuestionPapersList?.questionPaperSectionList.forEach((qps, index) => {
293
+ let questionIds = qps?.sectionQuestionsList.map((sectionQuestion) => sectionQuestion?.questionId);
294
+ this.questionIds[index] = questionIds;
295
+ this.getQuestions(this.assessmentId, questionIds, index);
296
+ });
297
+ }
298
+ });
299
+ console.log(this.sectionQuestions);
300
+ }
301
+ getSectionQuestionIds(section) {
302
+ return section?.sectionQuestionsList?.map((question) => question.questionId) || [];
303
+ }
304
+ showTooltip(data) {
305
+ if (data === null || data.match(/^ *$/) !== null) {
306
+ return false;
307
+ }
308
+ else {
309
+ return true;
310
+ }
311
+ }
312
+ getTooltipText(data) {
313
+ return data.replace(/<[^>]*>/g, '');
314
+ }
315
+ isQuestionPresentInBank(id) {
316
+ return this.childQuestionBook.findIndex((prev) => prev.questionId == id);
317
+ }
318
+ getchildQuesfrmBook(id) {
319
+ return this.childQuestionBook.find((child) => child.questionId == id);
320
+ }
321
+ getQuestions(assessmentId, questionIdList, index) {
322
+ this.assessmentService.getAssessmentQuestions(assessmentId, questionIdList).subscribe({
323
+ next: (questionsList) => {
324
+ let childQuesList = []; //objective type questions
325
+ this.finalQuestionList = questionsList;
326
+ this.sectionQuestions[index] = this.finalQuestionList;
327
+ console.log('Updated sectionQuestions:', this.sectionQuestions);
328
+ if (this.sectionQuestions && this.sectionQuestions[index]) {
329
+ for (var ques of this.sectionQuestions[index]) {
330
+ if (ques?.questionType.code === "QUESTION_TYPE.OBJECTIVE_SUBJECTIVE" || ques?.questionType.code === "QUESTION_TYPE.MULTISELECT_SUBJECTIVE") {
331
+ this.group[`${ques.id}_objective`] = new FormControl(null, [Validators.required]);
332
+ this.group[`${ques.id}_subjective`] = new FormControl(null, [Validators.required]);
333
+ }
334
+ else if (ques?.questionType.code === "QUESTION_TYPE.OBJECTIVE" ||
335
+ ques?.questionType.code === "QUESTION_TYPE.SUBJECTIVE_SHORT" ||
336
+ ques?.questionType.code === "QUESTION_TYPE.SUBJECTIVE_LONG" ||
337
+ ques?.questionType.code === "QUESTION_TYPE.DATE" ||
338
+ ques?.questionType.code === "QUESTION_TYPE.NUMBER" ||
339
+ ques?.questionType.code === "QUESTION_TYPE.FILE_UPLOAD" ||
340
+ ques?.questionType.code === "QUESTION_TYPE.MULTISELECT" ||
341
+ ques?.questionType.code === "QUESTION_TYPE.SCALE_RATING" ||
342
+ ques?.questionType.code === "QUESTION_TYPE.SUBJECTIVE_RICH_TEXT" ||
343
+ ques?.questionType.code === "QUESTION_TYPE.SEARCHABLE_INPUT_MDM") {
344
+ this.group[ques.id] = new FormControl(null, [Validators.required]);
345
+ }
346
+ else {
347
+ }
348
+ }
349
+ // this.group[this.editorName] = new FormControl(null, [Validators.required])
350
+ // this.group[this.formGroupName] = new FormGroup(this.group1)
351
+ }
352
+ this.formGroup = new FormGroup(this.group);
353
+ this.startDate = new Date();
354
+ //objective type questions
355
+ questionsList.forEach((item) => {
356
+ if (item.questionType.code === "QUESTION_TYPE.OBJECTIVE") {
357
+ item.defaultOptionsList.forEach((option) => {
358
+ option.childQuestionList?.forEach((id) => {
359
+ if (this.isQuestionPresentInBank(id) == -1 && !childQuesList.includes(id)) {
360
+ childQuesList.push(id);
361
+ }
362
+ });
363
+ });
364
+ }
365
+ });
366
+ if (childQuesList.length) {
367
+ this.fetchChildQues(childQuesList);
368
+ }
369
+ }
370
+ });
371
+ }
372
+ configureChild(event) {
373
+ let childList = event.list;
374
+ let root_question = event.question;
375
+ let child;
376
+ if (childList.length > 0) {
377
+ childList.forEach((id) => {
378
+ child = this.getchildQuesfrmBook(id);
379
+ //add control here
380
+ this.group[child.question.id] = new FormControl(null, [Validators.required]);
381
+ this.formGroup = new FormGroup(this.group);
382
+ });
383
+ }
384
+ this.finalQuestionList.forEach((question) => {
385
+ if (question.id === root_question.id) {
386
+ if (!this.finalQuestionList.includes(child.question)) {
387
+ this.finalQuestionList.splice(this.finalQuestionList.indexOf(question) + 1, 0, child.question);
388
+ }
389
+ }
390
+ });
391
+ this.cdr.detectChanges();
392
+ console.log('finalquestionlist' + JSON.stringify(this.finalQuestionList));
393
+ }
394
+ fetchChildQues(childQuesList) {
395
+ this.assessmentService.getChildQuestionsWithIdList(this.assessmentId, childQuesList).subscribe((response) => {
396
+ let questionList = response;
397
+ childQuesList = [];
398
+ questionList.forEach((item) => {
399
+ item['userResponse'] = '';
400
+ item['multiSelectResponse'] = '';
401
+ this.childQuestionBook.push({
402
+ question: item,
403
+ questionId: item.id,
404
+ isMandatory: true
405
+ });
406
+ if (item.questionType.code === "QUESTION_TYPE.OBJECTIVE") {
407
+ item.defaultOptionsList.forEach((option) => {
408
+ option.childQuestionList?.forEach((id) => {
409
+ if (this.isQuestionPresentInBank(id) == -1 && !childQuesList.includes(id)) {
410
+ childQuesList.push(id);
411
+ }
412
+ });
413
+ });
414
+ }
415
+ });
416
+ if (childQuesList.length) {
417
+ this.fetchChildQues(childQuesList);
418
+ }
419
+ }, (error) => {
420
+ console.error('Error fetching child questions:', error);
421
+ throw error;
422
+ });
423
+ }
424
+ scrollToSection(index) {
425
+ const section = document.getElementById(`section-${index}`);
426
+ section?.scrollIntoView({ behavior: 'smooth', block: 'start' });
427
+ }
428
+ }
429
+ QuestWizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuestWizardComponent, deps: [{ token: i1.AssessmentTakerService }, { token: i2.AssessmentIdService }, { token: i3.FormBuilder }, { token: i4.MatDialog }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
430
+ QuestWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: QuestWizardComponent, selector: "lib-quest-wizard", inputs: { assessmentId: "assessmentId" }, usesOnChanges: true, ngImport: i0, template: "<link id=\"variableThemeLink\" rel=\"stylesheet\" href=\"../../../assets/theme/variables.css\">\r\n<div class=\"questions-container\">\r\n <img src=\"assets/images/assessment-placeholder-2.png\" class=\"cover-image\" />\r\n <div *ngIf=\"assessmentQuestionPapersList\" class=\"questions-body-container\">\r\n <form class=\"form\" [formGroup]=\"formGroup\" (ngSubmit)=\"submitTask()\" novalidate>\r\n <ng-container *ngFor=\"let section of assessmentQuestionPapersList?.questionPaperSectionList; let i=index\" ><mat-chip class=\"chips-padding\" (click)=\"scrollToSection(i)\" >{{section?.qpsName[0]?.text}}</mat-chip></ng-container>\r\n <ng-container *ngFor=\"let section of assessmentQuestionPapersList?.questionPaperSectionList; let i=index\" >\r\n <div [id]=\"'section-' + i\" class=\"section-header\">\r\n <p class=\"section-header-text\">{{section?.qpsName[0]?.text}}</p>\r\n </div>\r\n <div *ngFor=\"let question of sectionQuestions[i]; let j=index\" class=\"answer-cube\">\r\n <p class=\"assessment-text-grey-nine assessment-text-semibold-18\">\r\n {{j+1}}.&nbsp;{{question.questionText[0]?.text}}\r\n <span class=\"mandatory\" *ngIf=\"question['isMandatory']\">*</span>\r\n <span class=\"tooltipspan\" *ngIf=\"showTooltip(question.questionSubText[0]?.text)\">\r\n <img src=\"assets/images/new_tooltip.jpg\" matTooltipClass=\"danger-tooltip\" matTooltipPosition=\"above\" class=\"tooltip-image\"\r\n matTooltip=\"{{question.questionSubText[0]?.text}}\" />\r\n </span>\r\n </p>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.OBJECTIVE'\">\r\n <lib-question-type-objective [optionsList]=\"question\" (viewChild)=\"configureChild($event)\"\r\n [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-objective>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SUBJECTIVE_SHORT'\">\r\n <lib-question-type-short [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-short>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SUBJECTIVE_LONG'\">\r\n <lib-question-type-long [formControlName]=\"question.id\" [fieldAttributes]=\"question\" [required]=\"true\"></lib-question-type-long>\r\n <!-- <lib-question-type-editor [formControlName]=\"question.id\" [config]=\"config\" fieldAttributes=\"question\" [required]=\"true\"></lib-question-type-editor> -->\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.DATE'\">\r\n <lib-question-type-date [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-date>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.NUMBER'\">\r\n <lib-question-type-number [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-number>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.FILE_UPLOAD'\">\r\n <lib-question-type-upload-file [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-upload-file>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.MULTISELECT'\">\r\n <lib-question-type-multiselect [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-multiselect>\r\n </div>\r\n <div class=\"answer-input\" \r\n *ngIf=\"question.questionType.code === 'QUESTION_TYPE.OBJECTIVE_SUBJECTIVE'\">\r\n <!-- <lib-question-type-objective-sub [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-objective-sub> -->\r\n <!-- <lib-question-type-objective-sub [optionsList]=\"question\" [formGroupName]=\"question.id\" [fieldAttributes]=\"question\" [required]=\"true\"></lib-question-type-objective-sub> -->\r\n <lib-question-type-objective [optionsList]=\"question\" formControlName=\"{{question.id}}_objective\" [required]=\"true\"></lib-question-type-objective>\r\n <lib-question-type-short [optionsList]=\"question\" formControlName=\"{{question.id}}_subjective\" [required]=\"true\"></lib-question-type-short>\r\n </div>\r\n <div class=\"answer-input\"\r\n *ngIf=\"question.questionType.code === 'QUESTION_TYPE.MULTISELECT_SUBJECTIVE'\">\r\n <!-- <lib-question-type-multiselect-sub [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-multiselect-sub> -->\r\n <lib-question-type-multiselect [optionsList]=\"question\" formControlName=\"{{question.id}}_objective\" [required]=\"true\"></lib-question-type-multiselect>\r\n <lib-question-type-short [optionsList]=\"question\" formControlName=\"{{question.id}}_subjective\" [required]=\"true\"></lib-question-type-short>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.SCALE_RATING'\">\r\n <lib-question-type-rating [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-rating>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SUBJECTIVE_RICH_TEXT'\">\r\n <lib-question-type-editor [formControlName]=\"question.id\" [config]=\"config\" fieldAttributes=\"question\" [required]=\"true\"></lib-question-type-editor>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SEARCHABLE_INPUT_MDM'\">\r\n <lib-question-type-searchable-tag [optionsList]=\"question\" [formControlName]=\"question.id\" fieldAttributes=\"question\" [required]=\"true\"></lib-question-type-searchable-tag>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <section>\r\n <div class=\"example-button-row\">\r\n <button mat-flat-button type=\"submit\" [disabled]=\"!formGroup.valid\">Submit</button>\r\n </div>\r\n </section>\r\n </form>\r\n </div>\r\n</div>", styles: [".questions-container{width:66.66%;margin:auto;box-shadow:0 3px 6px #00000029}.chips-padding{margin:.125rem .313rem}.cover-image{width:100%;object-fit:cover}.section-header{padding-bottom:1rem;padding-top:2rem}.section-header-text{font-size:700;font-weight:24px}.questions-body-container{padding:2rem}.answer-cube{padding-bottom:2.5rem}.section-header{font-size:32px;font-weight:600}\n", ":root{--assessment-text-color: #1e1e1e;--assessment-text-secondary-color: #2e2e2e;--assessment-white: #ffffff;--assessment-black: #000000;--assessment-grey-nintyone: #00000045;--assessment-grey-ninty: #dadce04d;--assessment-grey-eighteen: #F5F5F5;--assessment-grey-seventeen: #495057;--assessment-grey-sixteen: #707070;--assessment-grey-fifteen: #0000000D;--assessment-grey-fourteen: #FDFDFD;--assessment-grey-thirteen: #505050;--assessment-grey-twelve: #d4d4d4;--assessment-grey-eleven: #eef2f7;--assessment-grey-ten: #202124;--assessment-grey-nine: #3c4043;--assessment-grey-eight: #5f6368;--assessment-grey-seven: #80868b;--assessment-grey-six: #9aa0a6;--assessment-grey-five: #bdc9d3;--assessment-grey-four: #dadce0;--assessment-grey-three: #e8eaed;--assessment-grey-two: #f1f3f4;--assessment-grey-one: #f8f9fa;--assessment-palette-one: #725cc6;--assessment-palette-two: #5941b54d;--assessment-palette-three: #52B6E0;--assessment-palette-four: #FE795B;--assessment-palette-five: #4D89EB33;--assessment-palette-six: #19CEA1;--assessment-palette-seven: #56C2BB;--assessment-palette-eight: #D7A5D1;--assessment-palette-nine: #725cc61a;--assessment-palette-nine: #106AD21A;--assessment-palette-ten: #894FD1;--assessment-palette-eleven: #EFBD3C;--assessment-palette-twelve: #3D77EE1A;--assessment-palette-thirteen: #F1F1F1;--assessment-palette-fourteen: #725CC61A;--assessment-palette-fifteen: #3D77EE;--assessment-palette-sixteen: #725CC667;--assessment-palette-seventeen: #0000000F;--assessment-palette-eighteen: #F8F8F8;--assessment-palette-ninteen: #e2e2e2;--assessment-palette-twenty: #0000001a;--assessment-palette-twentyone: #00000029;--assessment-palette-twentythree: #9266d533;--assessment-palette-twentyfour: #cbcbcb;--assessment-palette-twentyfive: #ced4da;--assessment-palette-twentysix: #687C97;--assessment-palette-twentyseven: #FDFDFD;--assessment-palette-twentyeight: #00000002;--assessment-palette-twentynine: #7070701A;--assessment-palette-thirty: #EEAE1D;--assessment-palette-thirtyone: #bababa;--assessment-palette-thirtytwo: #0e103f;--assessment-palette-thirtythree: #0e103f;--assessment-palette-thirtyfour: #ffae2c;--assessment-palette-thirtyfive: #565264;--assessment-palette-thirtysix: #B5E0FF;--assessment-palette-thirtyseven: #F9FBFD;--assessment-palette-thirtytwo: #70707033;--assessment-palette-thirtythree: #EDF2F6;--assessment-palette-thirtyeight:#FFC400;--assessment-palette-thirtynine:#FF9102;--assessment-palette-fourty:#F6F9FE;--assessment-palette-fourtyone:#ededed;--assessment-palette-fourtytwo:#E7646F;--assessment-palette-fourtythree:#F06E1D;--assessment-palette-fourtyfour:#8A9AED;--assessment-palette-fourtyfive:#F5C571;--assessment-palette-fourtysix:#DD6012;--assessment-palette-fourtyseven:#f5c5711a;--assessment-palette-fourtyeight:#44B179;--assessment-palette-thirtyeight: #FFC400;--assessment-palette-thirtynine: #FF9102;--assessment-palette-forty: #73B6EA;--assessment-palette-fortyone: #73B6EA1a;--assessment-palette-fortytwo:#ED6F66;--assessment-palette-fortythree:#ED6F661a;--assessment-palette-fortyfour:#35B8E0;--assessment-palette-fortyfive:#FF5B5B;--assessment-palette-fortysix:#FF3B30;--assessment-palette-fortyseven:#b0c256;--assessment-palette-fortyeight:#567ec2;--assessment-palette-fortynine:#8C8CFF;--assessment-palette-fifty:#F3F3FF;--assessment-palette-fiftyone:#A1BEFF;--assessment-palette-fiftytwo:#4D89EB10;--assessment-palette-fiftythree:#dcdcdc45;--assessment-palette-fiftyfour:#FCBE35;--assessment-palette-fiftyfive:#78C89F;--assessment-palette-fiftysix:#F5A570;--assessment-palette-fiftyseven:#F47D32;--assessment-palette-fiftyeight:#FDFBFBC4;--assessment-palette-fiftynine:#EBEDEE80;--assessment-palette-sixty:#343a40;--assessment-palette-sixtyone:#e5e7e9;--assessment-palette-sixtytwo:#858383;--assessment-palette-sixtythree:#757575;--assessment-palette-sixtyfour:#C6C6C6;--assessment-palette-sixtyfive:#7476ED;--assessment-palette-sixtysix:#2A50A4;--assessment-palette-sixtyseven:#5C87E4;--assessment-palette-sixtyeight:#FFFFFF1A;--assessment-palette-sixtynine:#FFFFFFA6;--assessment-palette-seventy:#00000080;--assessment-palette-seventyone:#0A0A0A;--assessment-palette-seventytwo:#333333;--assessment-palette-seventythree:#125DFF;--assessment-palette-seventyfour:#999999;--assessment-palette-seventyfive:#147AD6;--assessment-palette-seventysix:#979797;--assessment-palette-seventyseven:#8d8d8d;--assessment-palette-seventyeight: #323A46;--assessment-palette-seventynine: #dad7d7;--assessment-palette-eighty: #E56F8C;--assessment-palette-eightyone: #E85E4A;--assessment-palette-eightytwo: #87D1AD;--assessment-palette-eightythree: #F8C73B;--assessment-palette-eightyfour: #bdc1c6;--assessment-palette-eightyfive: #00000033;--assessment-palette-eightysix: #ffffffb3;--assessment-palette-eightyseven: #7d95c9;--assessment-palette-eightyeight: #7476ed1f;--assessment-palette-eightynine: #fafbff;--assessment-palette-ninety: #64c2db;--assessment-palette-ninetyone: #7476ed33;--assessment-palette-ninetytwo: #cccccc;--assessment-palette-ninetythree: #7476ed66;--assessment-palette-ninetyfour: #52b6e01a;--assessment-palette-ninetyfive: #0056b3;--assessment-palette-ninetysix: #F1F1FD;--assessment-palette-ninetyseven: #cbc6c6;--assessment-palette-ninetyeight: #007A86;--assessment-palette-ninetynine: #7476ED0F;--assessment-palette-hundred: #7476ED80;--assessment-palette-onehundredone: #e0e0e0;--assessment-palette-onehundredtwo: #7fffd4;--assessment-palette-onehundredthree: #d3d3d3;--assessment-palette-onehundredfour: #1E2222;--assessment-palette-onehundredfive: #ffffff4d;--assessment-palette-onehundredsix: #7476ed1a;--assessment-palette-onehundredseven: #b0c4de;--assessment-palette-onehundredeight: #f7f7f7;--assessment-palette-onehundrednine: #D3E2FC;--assessment-palette-onehundredten: #FF3E58;--assessment-palette-onehundredeleven: #000000de;--assessment-palette-onehundredtwelve: #5D5D5D;--assessment-palette-onehundredthirteen: #04aa6d;--assessment-palette-onehundredfourteen: #D6DBDB;--assessment-palette-onehundredfifteen: #FEF5FF;--assessment-palette-onehundredsixteen: #11143D;--assessment-palette-onehundredseventeen: #b5b5b5;--assessment-palette-onehundredeighteen: #62B79A;--assessment-palette-onehundrednighteen:#E73A2C;--assessment-palette-onehundredtwenty:#FFCE7A;--assessment-palette-onehundredtwentyone:#0000001f;--assessment-palette-onehundredtwentytwo:#55AA7E;--assessment-palette-onehundredtwentythree:#7375ed4d;--assessment-red:#ff0000;--assessment-green: #008000;--assessment-blue:#0000ff;--assessment-dark-red: #E83628;--assessment-golden:#E9CC5A;--assessment-success: #34a853;--assessment-success-bg: #34a8531a;--assessment-success-secondary: #8bc34a;--assessment-success-secondary-bg: #8bc34a1a;--assessment-danger-two: #fff1f1;--assessment-danger: #ff5252;--assessment-danger-bg: #ff52521a;--assessment-warning: #ffa600;--assessment-warning-bg: #ffa6001a;--assessment-warm: #6b71e5;--assessment-link-text: #301f56;--assessment-warm-bg: #6b71e51a;--assessment-primary-light: #0091ff;--assessment-primary-light-bg: #0091ff1a;--assessment-secondary-bg: #f8f9fa;--assessment-placeholder-color: #e18a22;--assessment-primary-one: #4d89eb;--assessment-primary-two: #323a46;--assessment-primary-three: #00000014;--assessment-primary-four: #295EB7;--assessment-primary-five: #F2F7FF;--assessment-linear-gradient-one: transparent linear-gradient(180deg, #e2dafd 0%, #d6cbfc 100%) 0% 0% no-repeat padding-box;--assessment-linear-gradient-two: transparent linear-gradient(180deg, #F19B96 0%, #ED6F66 100%) no-repeat padding-box;--assessment-linear-gradient-three: transparent linear-gradient(180deg, #81D2F2 0%, #52B6E0 100%) 0% 0% no-repeat padding-box;--assessment-linear-gradient-four: transparent linear-gradient(180deg, #4D89EB 0%, #295EB7 100%) 0% 0% no-repeat padding-box;--assessment-box-shadow-one: 0px 3px 6px #00000008;--assessment-box-shadow-two: 0px 3px 6px #0000000f;--assessment-box-shadow-three: 0px 6px 12px #00000008;--assessment-box-shadow-four: 0px 6px 12px #0000000f;--assessment-box-shadow-five: 0px 0px 12px #0000000f;--assessment-box-shadow-six: 0px 2px 4px #0000001a;--assessment-box-shadow-seven: 0px 1px 5px #00000029;--assessment-box-shadow-eight: 0px 6px 6px #00000008;--assessment-box-shadow-nine: 0px 6px 12px #00000010;--assessment-box-shadow-ten: 0px 12px 22px #725cc614;--assessment-box-shadow-inset-one: inset 0px 0px 18px #0000001a;--assessment-border-radius-one: 4px;--assessment-border-radius-two: 8px;--assessment-border-radius-three: 10px;--assessment-border-radius-four: 12px;--assessment-border-radius-five: 16px;--assessment-border-radius-six: 20px;--assessment-border-radius-seven: 32px;--assessment-border-radius-rounded: 50%;--assessment-header-height: 5vh;--filter-purple:invert(42%) sepia(74%) saturate(692%) hue-rotate(205deg) brightness(100%) contrast(86%);--app-theme-based-color: #202124;--app-theme-based-one: #3c4043;--app-theme-based-two:#7476ED }.mat-dialog-actions{display:grid!important}.mat-dialog-title,.mat-dialog-content{text-align:center}.mat-dialog-actions button{background-color:var(--assessment-blue)!important;color:var(--assessment-danger-two)!important}::ng-deep .mat-mdc-tooltip{transform:scale(1.5)!important;position:relative!important}.danger-tooltip{background-color:var(--assessment-blue)!important;font-size:13px!important;font-weight:500;--mdc-plain-tooltip-container-color: var(--assessment-blue);--mdc-plain-tooltip-supporting-text-color: var(--assessment-danger-two) !important;--mdc-plain-tooltip-supporting-text-size: 13px;--mdc-plain-tooltip-supporting-text-weight: 500 !important;--mdc-plain-tooltip-supporting-text-tracing: .033333333em}.mat-tooltip{overflow:visible!important}.danger-tooltip:after{content:\"\";position:absolute;top:100%;left:50%;margin-left:-4px;border-width:5px;border-style:solid;border-color:var(--assessment-blue) transparent transparent transparent}.mat-radio-button.mat-accent .mat-radio-inner-circle,.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:var(--assessment-blue)!important}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:var(--assessment-blue)!important}.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.mat-checkbox-checked.mat-accent .mat-checkbox-background{background:var(--assessment-blue)!important}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:var(--assessment-blue)!important}.example-button-row .mat-flat-button{color:var(--assessment-danger-two, var(--assessment-danger-two));background-color:var(--assessment-blue)}.example-button-row{display:table-cell;max-width:600px}.example-button-row .mat-mdc-button-base{margin:8px 8px 8px 0}.tooltip-image{display:inline-block;vertical-align:middle;width:15px;height:15px}.radimatc{margin-top:20px}.example-radio-button,.example-margin{display:block!important;margin:10px}.example-full-width{width:78%}.mat-button-toggle-checked{background-color:var(--assessment-blue)!important;color:var(--assessment-danger-two)!important}.custmattog{box-shadow:none!important}.mat-button-toggle{padding:5px;white-space:nowrap;position:relative;background-color:var(--assessment-grey-four);border-radius:20px;margin:5px;color:var(--assessment-black)}.textarea-tag{font-family:assessment-Medium;font-size:14px;width:75%;border-left:none;border-right:none;border-top:none;outline:none;padding:.75rem;border-bottom:2px solid rgb(118,118,118)}.textarea-tag:focus{border-color:var(--assessment-blue)}.input-tag{font-family:assessment-Medium;font-size:14px;width:75%;border-left:none;border-right:none;border-top:none;outline:none;padding:.75rem}.input-tag:focus{border-color:var(--assessment-blue)}.divider{display:flex;justify-content:center;align-items:center;width:100%;margin-top:2rem;margin-bottom:2rem}.radio-group,.checkbox-group{display:flex;flex-direction:column;gap:1rem}.datesty{width:78%}.datesty input{width:92%}\n"], components: [{ type: i5.QuestionTypeObjectiveComponent, selector: "lib-question-type-objective", inputs: ["required", "optionsList"], outputs: ["viewChild"] }, { type: i6.QuestionTypeShortComponent, selector: "lib-question-type-short", inputs: ["optionsList", "required"] }, { type: i7.QuestionTypeLongComponent, selector: "lib-question-type-long", inputs: ["required", "optionsList", "fieldAttributes", "config"] }, { type: i8.QuestionTypeDateComponent, selector: "lib-question-type-date", inputs: ["required"] }, { type: i9.QuestionTypeNumberComponent, selector: "lib-question-type-number", inputs: ["required", "optionsList"] }, { type: i10.QuestionTypeUploadFileComponent, selector: "lib-question-type-upload-file", inputs: ["required"] }, { type: i11.QuestionTypeMultiselectComponent, selector: "lib-question-type-multiselect", inputs: ["required", "optionsList"] }, { type: i12.QuestionTypeRatingComponent, selector: "lib-question-type-rating", inputs: ["required", "optionsList"] }, { type: i13.QuestionTypeEditorComponent, selector: "lib-question-type-editor", inputs: ["required", "optionsList", "fieldAttributes", "config"] }, { type: i14.QuestionTypeSearchableTagComponent, selector: "lib-question-type-searchable-tag", inputs: ["required", "optionsList", "fieldAttributes"] }, { type: i15.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i16.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i16.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i17.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i18.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }] });
431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuestWizardComponent, decorators: [{
432
+ type: Component,
433
+ args: [{ selector: 'lib-quest-wizard', template: "<link id=\"variableThemeLink\" rel=\"stylesheet\" href=\"../../../assets/theme/variables.css\">\r\n<div class=\"questions-container\">\r\n <img src=\"assets/images/assessment-placeholder-2.png\" class=\"cover-image\" />\r\n <div *ngIf=\"assessmentQuestionPapersList\" class=\"questions-body-container\">\r\n <form class=\"form\" [formGroup]=\"formGroup\" (ngSubmit)=\"submitTask()\" novalidate>\r\n <ng-container *ngFor=\"let section of assessmentQuestionPapersList?.questionPaperSectionList; let i=index\" ><mat-chip class=\"chips-padding\" (click)=\"scrollToSection(i)\" >{{section?.qpsName[0]?.text}}</mat-chip></ng-container>\r\n <ng-container *ngFor=\"let section of assessmentQuestionPapersList?.questionPaperSectionList; let i=index\" >\r\n <div [id]=\"'section-' + i\" class=\"section-header\">\r\n <p class=\"section-header-text\">{{section?.qpsName[0]?.text}}</p>\r\n </div>\r\n <div *ngFor=\"let question of sectionQuestions[i]; let j=index\" class=\"answer-cube\">\r\n <p class=\"assessment-text-grey-nine assessment-text-semibold-18\">\r\n {{j+1}}.&nbsp;{{question.questionText[0]?.text}}\r\n <span class=\"mandatory\" *ngIf=\"question['isMandatory']\">*</span>\r\n <span class=\"tooltipspan\" *ngIf=\"showTooltip(question.questionSubText[0]?.text)\">\r\n <img src=\"assets/images/new_tooltip.jpg\" matTooltipClass=\"danger-tooltip\" matTooltipPosition=\"above\" class=\"tooltip-image\"\r\n matTooltip=\"{{question.questionSubText[0]?.text}}\" />\r\n </span>\r\n </p>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.OBJECTIVE'\">\r\n <lib-question-type-objective [optionsList]=\"question\" (viewChild)=\"configureChild($event)\"\r\n [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-objective>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SUBJECTIVE_SHORT'\">\r\n <lib-question-type-short [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-short>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SUBJECTIVE_LONG'\">\r\n <lib-question-type-long [formControlName]=\"question.id\" [fieldAttributes]=\"question\" [required]=\"true\"></lib-question-type-long>\r\n <!-- <lib-question-type-editor [formControlName]=\"question.id\" [config]=\"config\" fieldAttributes=\"question\" [required]=\"true\"></lib-question-type-editor> -->\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.DATE'\">\r\n <lib-question-type-date [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-date>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.NUMBER'\">\r\n <lib-question-type-number [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-number>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.FILE_UPLOAD'\">\r\n <lib-question-type-upload-file [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-upload-file>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.MULTISELECT'\">\r\n <lib-question-type-multiselect [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-multiselect>\r\n </div>\r\n <div class=\"answer-input\" \r\n *ngIf=\"question.questionType.code === 'QUESTION_TYPE.OBJECTIVE_SUBJECTIVE'\">\r\n <!-- <lib-question-type-objective-sub [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-objective-sub> -->\r\n <!-- <lib-question-type-objective-sub [optionsList]=\"question\" [formGroupName]=\"question.id\" [fieldAttributes]=\"question\" [required]=\"true\"></lib-question-type-objective-sub> -->\r\n <lib-question-type-objective [optionsList]=\"question\" formControlName=\"{{question.id}}_objective\" [required]=\"true\"></lib-question-type-objective>\r\n <lib-question-type-short [optionsList]=\"question\" formControlName=\"{{question.id}}_subjective\" [required]=\"true\"></lib-question-type-short>\r\n </div>\r\n <div class=\"answer-input\"\r\n *ngIf=\"question.questionType.code === 'QUESTION_TYPE.MULTISELECT_SUBJECTIVE'\">\r\n <!-- <lib-question-type-multiselect-sub [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-multiselect-sub> -->\r\n <lib-question-type-multiselect [optionsList]=\"question\" formControlName=\"{{question.id}}_objective\" [required]=\"true\"></lib-question-type-multiselect>\r\n <lib-question-type-short [optionsList]=\"question\" formControlName=\"{{question.id}}_subjective\" [required]=\"true\"></lib-question-type-short>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.SCALE_RATING'\">\r\n <lib-question-type-rating [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-rating>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SUBJECTIVE_RICH_TEXT'\">\r\n <lib-question-type-editor [formControlName]=\"question.id\" [config]=\"config\" fieldAttributes=\"question\" [required]=\"true\"></lib-question-type-editor>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SEARCHABLE_INPUT_MDM'\">\r\n <lib-question-type-searchable-tag [optionsList]=\"question\" [formControlName]=\"question.id\" fieldAttributes=\"question\" [required]=\"true\"></lib-question-type-searchable-tag>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <section>\r\n <div class=\"example-button-row\">\r\n <button mat-flat-button type=\"submit\" [disabled]=\"!formGroup.valid\">Submit</button>\r\n </div>\r\n </section>\r\n </form>\r\n </div>\r\n</div>", styles: [".questions-container{width:66.66%;margin:auto;box-shadow:0 3px 6px #00000029}.chips-padding{margin:.125rem .313rem}.cover-image{width:100%;object-fit:cover}.section-header{padding-bottom:1rem;padding-top:2rem}.section-header-text{font-size:700;font-weight:24px}.questions-body-container{padding:2rem}.answer-cube{padding-bottom:2.5rem}.section-header{font-size:32px;font-weight:600}\n", ":root{--assessment-text-color: #1e1e1e;--assessment-text-secondary-color: #2e2e2e;--assessment-white: #ffffff;--assessment-black: #000000;--assessment-grey-nintyone: #00000045;--assessment-grey-ninty: #dadce04d;--assessment-grey-eighteen: #F5F5F5;--assessment-grey-seventeen: #495057;--assessment-grey-sixteen: #707070;--assessment-grey-fifteen: #0000000D;--assessment-grey-fourteen: #FDFDFD;--assessment-grey-thirteen: #505050;--assessment-grey-twelve: #d4d4d4;--assessment-grey-eleven: #eef2f7;--assessment-grey-ten: #202124;--assessment-grey-nine: #3c4043;--assessment-grey-eight: #5f6368;--assessment-grey-seven: #80868b;--assessment-grey-six: #9aa0a6;--assessment-grey-five: #bdc9d3;--assessment-grey-four: #dadce0;--assessment-grey-three: #e8eaed;--assessment-grey-two: #f1f3f4;--assessment-grey-one: #f8f9fa;--assessment-palette-one: #725cc6;--assessment-palette-two: #5941b54d;--assessment-palette-three: #52B6E0;--assessment-palette-four: #FE795B;--assessment-palette-five: #4D89EB33;--assessment-palette-six: #19CEA1;--assessment-palette-seven: #56C2BB;--assessment-palette-eight: #D7A5D1;--assessment-palette-nine: #725cc61a;--assessment-palette-nine: #106AD21A;--assessment-palette-ten: #894FD1;--assessment-palette-eleven: #EFBD3C;--assessment-palette-twelve: #3D77EE1A;--assessment-palette-thirteen: #F1F1F1;--assessment-palette-fourteen: #725CC61A;--assessment-palette-fifteen: #3D77EE;--assessment-palette-sixteen: #725CC667;--assessment-palette-seventeen: #0000000F;--assessment-palette-eighteen: #F8F8F8;--assessment-palette-ninteen: #e2e2e2;--assessment-palette-twenty: #0000001a;--assessment-palette-twentyone: #00000029;--assessment-palette-twentythree: #9266d533;--assessment-palette-twentyfour: #cbcbcb;--assessment-palette-twentyfive: #ced4da;--assessment-palette-twentysix: #687C97;--assessment-palette-twentyseven: #FDFDFD;--assessment-palette-twentyeight: #00000002;--assessment-palette-twentynine: #7070701A;--assessment-palette-thirty: #EEAE1D;--assessment-palette-thirtyone: #bababa;--assessment-palette-thirtytwo: #0e103f;--assessment-palette-thirtythree: #0e103f;--assessment-palette-thirtyfour: #ffae2c;--assessment-palette-thirtyfive: #565264;--assessment-palette-thirtysix: #B5E0FF;--assessment-palette-thirtyseven: #F9FBFD;--assessment-palette-thirtytwo: #70707033;--assessment-palette-thirtythree: #EDF2F6;--assessment-palette-thirtyeight:#FFC400;--assessment-palette-thirtynine:#FF9102;--assessment-palette-fourty:#F6F9FE;--assessment-palette-fourtyone:#ededed;--assessment-palette-fourtytwo:#E7646F;--assessment-palette-fourtythree:#F06E1D;--assessment-palette-fourtyfour:#8A9AED;--assessment-palette-fourtyfive:#F5C571;--assessment-palette-fourtysix:#DD6012;--assessment-palette-fourtyseven:#f5c5711a;--assessment-palette-fourtyeight:#44B179;--assessment-palette-thirtyeight: #FFC400;--assessment-palette-thirtynine: #FF9102;--assessment-palette-forty: #73B6EA;--assessment-palette-fortyone: #73B6EA1a;--assessment-palette-fortytwo:#ED6F66;--assessment-palette-fortythree:#ED6F661a;--assessment-palette-fortyfour:#35B8E0;--assessment-palette-fortyfive:#FF5B5B;--assessment-palette-fortysix:#FF3B30;--assessment-palette-fortyseven:#b0c256;--assessment-palette-fortyeight:#567ec2;--assessment-palette-fortynine:#8C8CFF;--assessment-palette-fifty:#F3F3FF;--assessment-palette-fiftyone:#A1BEFF;--assessment-palette-fiftytwo:#4D89EB10;--assessment-palette-fiftythree:#dcdcdc45;--assessment-palette-fiftyfour:#FCBE35;--assessment-palette-fiftyfive:#78C89F;--assessment-palette-fiftysix:#F5A570;--assessment-palette-fiftyseven:#F47D32;--assessment-palette-fiftyeight:#FDFBFBC4;--assessment-palette-fiftynine:#EBEDEE80;--assessment-palette-sixty:#343a40;--assessment-palette-sixtyone:#e5e7e9;--assessment-palette-sixtytwo:#858383;--assessment-palette-sixtythree:#757575;--assessment-palette-sixtyfour:#C6C6C6;--assessment-palette-sixtyfive:#7476ED;--assessment-palette-sixtysix:#2A50A4;--assessment-palette-sixtyseven:#5C87E4;--assessment-palette-sixtyeight:#FFFFFF1A;--assessment-palette-sixtynine:#FFFFFFA6;--assessment-palette-seventy:#00000080;--assessment-palette-seventyone:#0A0A0A;--assessment-palette-seventytwo:#333333;--assessment-palette-seventythree:#125DFF;--assessment-palette-seventyfour:#999999;--assessment-palette-seventyfive:#147AD6;--assessment-palette-seventysix:#979797;--assessment-palette-seventyseven:#8d8d8d;--assessment-palette-seventyeight: #323A46;--assessment-palette-seventynine: #dad7d7;--assessment-palette-eighty: #E56F8C;--assessment-palette-eightyone: #E85E4A;--assessment-palette-eightytwo: #87D1AD;--assessment-palette-eightythree: #F8C73B;--assessment-palette-eightyfour: #bdc1c6;--assessment-palette-eightyfive: #00000033;--assessment-palette-eightysix: #ffffffb3;--assessment-palette-eightyseven: #7d95c9;--assessment-palette-eightyeight: #7476ed1f;--assessment-palette-eightynine: #fafbff;--assessment-palette-ninety: #64c2db;--assessment-palette-ninetyone: #7476ed33;--assessment-palette-ninetytwo: #cccccc;--assessment-palette-ninetythree: #7476ed66;--assessment-palette-ninetyfour: #52b6e01a;--assessment-palette-ninetyfive: #0056b3;--assessment-palette-ninetysix: #F1F1FD;--assessment-palette-ninetyseven: #cbc6c6;--assessment-palette-ninetyeight: #007A86;--assessment-palette-ninetynine: #7476ED0F;--assessment-palette-hundred: #7476ED80;--assessment-palette-onehundredone: #e0e0e0;--assessment-palette-onehundredtwo: #7fffd4;--assessment-palette-onehundredthree: #d3d3d3;--assessment-palette-onehundredfour: #1E2222;--assessment-palette-onehundredfive: #ffffff4d;--assessment-palette-onehundredsix: #7476ed1a;--assessment-palette-onehundredseven: #b0c4de;--assessment-palette-onehundredeight: #f7f7f7;--assessment-palette-onehundrednine: #D3E2FC;--assessment-palette-onehundredten: #FF3E58;--assessment-palette-onehundredeleven: #000000de;--assessment-palette-onehundredtwelve: #5D5D5D;--assessment-palette-onehundredthirteen: #04aa6d;--assessment-palette-onehundredfourteen: #D6DBDB;--assessment-palette-onehundredfifteen: #FEF5FF;--assessment-palette-onehundredsixteen: #11143D;--assessment-palette-onehundredseventeen: #b5b5b5;--assessment-palette-onehundredeighteen: #62B79A;--assessment-palette-onehundrednighteen:#E73A2C;--assessment-palette-onehundredtwenty:#FFCE7A;--assessment-palette-onehundredtwentyone:#0000001f;--assessment-palette-onehundredtwentytwo:#55AA7E;--assessment-palette-onehundredtwentythree:#7375ed4d;--assessment-red:#ff0000;--assessment-green: #008000;--assessment-blue:#0000ff;--assessment-dark-red: #E83628;--assessment-golden:#E9CC5A;--assessment-success: #34a853;--assessment-success-bg: #34a8531a;--assessment-success-secondary: #8bc34a;--assessment-success-secondary-bg: #8bc34a1a;--assessment-danger-two: #fff1f1;--assessment-danger: #ff5252;--assessment-danger-bg: #ff52521a;--assessment-warning: #ffa600;--assessment-warning-bg: #ffa6001a;--assessment-warm: #6b71e5;--assessment-link-text: #301f56;--assessment-warm-bg: #6b71e51a;--assessment-primary-light: #0091ff;--assessment-primary-light-bg: #0091ff1a;--assessment-secondary-bg: #f8f9fa;--assessment-placeholder-color: #e18a22;--assessment-primary-one: #4d89eb;--assessment-primary-two: #323a46;--assessment-primary-three: #00000014;--assessment-primary-four: #295EB7;--assessment-primary-five: #F2F7FF;--assessment-linear-gradient-one: transparent linear-gradient(180deg, #e2dafd 0%, #d6cbfc 100%) 0% 0% no-repeat padding-box;--assessment-linear-gradient-two: transparent linear-gradient(180deg, #F19B96 0%, #ED6F66 100%) no-repeat padding-box;--assessment-linear-gradient-three: transparent linear-gradient(180deg, #81D2F2 0%, #52B6E0 100%) 0% 0% no-repeat padding-box;--assessment-linear-gradient-four: transparent linear-gradient(180deg, #4D89EB 0%, #295EB7 100%) 0% 0% no-repeat padding-box;--assessment-box-shadow-one: 0px 3px 6px #00000008;--assessment-box-shadow-two: 0px 3px 6px #0000000f;--assessment-box-shadow-three: 0px 6px 12px #00000008;--assessment-box-shadow-four: 0px 6px 12px #0000000f;--assessment-box-shadow-five: 0px 0px 12px #0000000f;--assessment-box-shadow-six: 0px 2px 4px #0000001a;--assessment-box-shadow-seven: 0px 1px 5px #00000029;--assessment-box-shadow-eight: 0px 6px 6px #00000008;--assessment-box-shadow-nine: 0px 6px 12px #00000010;--assessment-box-shadow-ten: 0px 12px 22px #725cc614;--assessment-box-shadow-inset-one: inset 0px 0px 18px #0000001a;--assessment-border-radius-one: 4px;--assessment-border-radius-two: 8px;--assessment-border-radius-three: 10px;--assessment-border-radius-four: 12px;--assessment-border-radius-five: 16px;--assessment-border-radius-six: 20px;--assessment-border-radius-seven: 32px;--assessment-border-radius-rounded: 50%;--assessment-header-height: 5vh;--filter-purple:invert(42%) sepia(74%) saturate(692%) hue-rotate(205deg) brightness(100%) contrast(86%);--app-theme-based-color: #202124;--app-theme-based-one: #3c4043;--app-theme-based-two:#7476ED }.mat-dialog-actions{display:grid!important}.mat-dialog-title,.mat-dialog-content{text-align:center}.mat-dialog-actions button{background-color:var(--assessment-blue)!important;color:var(--assessment-danger-two)!important}::ng-deep .mat-mdc-tooltip{transform:scale(1.5)!important;position:relative!important}.danger-tooltip{background-color:var(--assessment-blue)!important;font-size:13px!important;font-weight:500;--mdc-plain-tooltip-container-color: var(--assessment-blue);--mdc-plain-tooltip-supporting-text-color: var(--assessment-danger-two) !important;--mdc-plain-tooltip-supporting-text-size: 13px;--mdc-plain-tooltip-supporting-text-weight: 500 !important;--mdc-plain-tooltip-supporting-text-tracing: .033333333em}.mat-tooltip{overflow:visible!important}.danger-tooltip:after{content:\"\";position:absolute;top:100%;left:50%;margin-left:-4px;border-width:5px;border-style:solid;border-color:var(--assessment-blue) transparent transparent transparent}.mat-radio-button.mat-accent .mat-radio-inner-circle,.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:var(--assessment-blue)!important}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:var(--assessment-blue)!important}.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.mat-checkbox-checked.mat-accent .mat-checkbox-background{background:var(--assessment-blue)!important}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:var(--assessment-blue)!important}.example-button-row .mat-flat-button{color:var(--assessment-danger-two, var(--assessment-danger-two));background-color:var(--assessment-blue)}.example-button-row{display:table-cell;max-width:600px}.example-button-row .mat-mdc-button-base{margin:8px 8px 8px 0}.tooltip-image{display:inline-block;vertical-align:middle;width:15px;height:15px}.radimatc{margin-top:20px}.example-radio-button,.example-margin{display:block!important;margin:10px}.example-full-width{width:78%}.mat-button-toggle-checked{background-color:var(--assessment-blue)!important;color:var(--assessment-danger-two)!important}.custmattog{box-shadow:none!important}.mat-button-toggle{padding:5px;white-space:nowrap;position:relative;background-color:var(--assessment-grey-four);border-radius:20px;margin:5px;color:var(--assessment-black)}.textarea-tag{font-family:assessment-Medium;font-size:14px;width:75%;border-left:none;border-right:none;border-top:none;outline:none;padding:.75rem;border-bottom:2px solid rgb(118,118,118)}.textarea-tag:focus{border-color:var(--assessment-blue)}.input-tag{font-family:assessment-Medium;font-size:14px;width:75%;border-left:none;border-right:none;border-top:none;outline:none;padding:.75rem}.input-tag:focus{border-color:var(--assessment-blue)}.divider{display:flex;justify-content:center;align-items:center;width:100%;margin-top:2rem;margin-bottom:2rem}.radio-group,.checkbox-group{display:flex;flex-direction:column;gap:1rem}.datesty{width:78%}.datesty input{width:92%}\n"] }]
434
+ }], ctorParameters: function () { return [{ type: i1.AssessmentTakerService }, { type: i2.AssessmentIdService }, { type: i3.FormBuilder }, { type: i4.MatDialog }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { assessmentId: [{
435
+ type: Input
436
+ }] } });
437
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Qtd2l6YXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fzc2Vzc21lbnQtdGFrZXIvc3JjL2xpYi9jb21wb25lbnRzL2ZlYXR1cmUvcXVlc3Qtd2l6YXJkL3F1ZXN0LXdpemFyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Nlc3NtZW50LXRha2VyL3NyYy9saWIvY29tcG9uZW50cy9mZWF0dXJlL3F1ZXN0LXdpemFyZC9xdWVzdC13aXphcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUd0RyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBZSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVL0YsTUFBTSxPQUFPLG9CQUFvQjtJQTZDL0IsWUFBb0IsaUJBQXlDLEVBQ25ELG1CQUF3QyxFQUN4QyxFQUFlLEVBQ2hCLE1BQWlCLEVBQ2hCLEdBQXNCO1FBSlosc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF3QjtRQUNuRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNoQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQS9DaEMsc0JBQWlCLEdBQVEsRUFBRSxDQUFDO1FBQzVCLGVBQVUsR0FBUSxZQUFZLENBQUM7UUFFL0IsZ0JBQVcsR0FBUyxFQUFFLENBQUM7UUFDdkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixvQkFBb0I7UUFDcEIsaUNBQTRCLEdBQVEsSUFBSSxLQUFLLEVBQUUsQ0FB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T0FBTyxDQUFDLENBQUMsRUFBVSxFQUFFLEVBQUU7NEJBQy9DLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQ0FDekUsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTs2QkFDdkI7d0JBQ0gsQ0FBQyxDQUFDLENBQUE7b0JBQ0osQ0FBQyxDQUFDLENBQUE7aUJBQ0g7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRTtnQkFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQTthQUNuQztRQUNILENBQUMsRUFDQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN4RCxNQUFNLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFhO1FBQzNCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsV0FBVyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE9BQU8sRUFBRSxjQUFjLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7O2tIQXBiVSxvQkFBb0I7c0dBQXBCLG9CQUFvQix1SENkakMsK2pPQXlFTTs0RkQzRE8sb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGtCQUFrQjtpT0FNbkIsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBc3Nlc3NtZW50VGFrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXNzZXNzbWVudC10YWtlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXNzZXNzbWVudElkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9hc3Nlc3NtZW50LWlkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JzLCBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBRdWVzdFN1Y2Nlc3NDb21wb25lbnQgfSBmcm9tICcuLi9xdWVzdC1zdWNjZXNzL3F1ZXN0LXN1Y2Nlc3MvcXVlc3Qtc3VjY2Vzcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yQ29uZmlnIH0gZnJvbSAnQGtvbGtvdi9hbmd1bGFyLWVkaXRvcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1xdWVzdC13aXphcmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdC13aXphcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0LXdpemFyZC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBRdWVzdFdpemFyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIGFzc2Vzc21lbnRJZDphbnk7XHJcbiAgY2hpbGRRdWVzdGlvbkJvb2s6IGFueSA9IFtdO1xyXG4gIGVkaXRvck5hbWU6c3RyaW5nPVwiZWRpdG9yTmFtZVwiO1xyXG4gIGFpYWRlZmF1bHRSZXNwb25zZUxpc3Q6IGFueVxyXG4gIHRvb2x0aXBUZXh0OiBzdHJpbmc9Jyc7XHJcbiAgc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgcHVibGljIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcclxuICAvLyBhc3Nlc3NtZW50SWQ6IGFueVxyXG4gIGFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3Q6IGFueSA9IG5ldyBBcnJheSgpO1xyXG4gIHF1ZXN0aW9uSWRzOiBhbnkgPSB7fTtcclxuICBzdGFydERhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIGdyb3VwOiBhbnkgPSB7fTtcclxuICBhc3Nlc3NtZW50SGVhZGVySW1hZ2UgPSAnaHR0cHM6Ly9kZXYucGxhdGZvcm1jb21tb25zLm9yZy9mb3Jtcy9hc3NldHMvaW1hZ2VzL2RvbWFpbi9hc3Nlc3NtZW50LXBsYWNlaG9sZGVyLTIucG5nJztcclxuICBzZWN0aW9uUXVlc3Rpb25zOiB7IFtrZXk6IG51bWJlcl06IGFueVtdIH0gPSB7fVxyXG4gIHJlcXVlc3RQYXlsb2FkOiBhbnkgPSB7fVxyXG4gIGZpbmFsUXVlc3Rpb25MaXN0OmFueTtcclxuICBjb25maWc6IEFuZ3VsYXJFZGl0b3JDb25maWcgPSB7XHJcbiAgICBlZGl0YWJsZTogdHJ1ZSxcclxuICAgIHNwZWxsY2hlY2s6IHRydWUsXHJcbiAgICBoZWlnaHQ6ICcxNXJlbScsXHJcbiAgICBtaW5IZWlnaHQ6ICc1cmVtJyxcclxuICAgIHBsYWNlaG9sZGVyOiAnRW50ZXIgdGV4dCBoZXJlLi4uJyxcclxuICAgIHRyYW5zbGF0ZTogJ25vJyxcclxuICAgIGRlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3I6ICdwJyxcclxuICAgIGRlZmF1bHRGb250TmFtZTogJ0FyaWFsJyxcclxuICAgIHRvb2xiYXJIaWRkZW5CdXR0b25zOiBbXHJcbiAgICAgIFsnYm9sZCddXHJcbiAgICAgIF0sXHJcbiAgICBjdXN0b21DbGFzc2VzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiBcInF1b3RlXCIsXHJcbiAgICAgICAgY2xhc3M6IFwicXVvdGVcIixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdyZWRUZXh0JyxcclxuICAgICAgICBjbGFzczogJ3JlZFRleHQnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiBcInRpdGxlVGV4dFwiLFxyXG4gICAgICAgIGNsYXNzOiBcInRpdGxlVGV4dFwiLFxyXG4gICAgICAgIHRhZzogXCJoMVwiLFxyXG4gICAgICB9LFxyXG4gICAgXVxyXG4gIH07XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFRha2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgYXNzZXNzbWVudElkU2VydmljZTogQXNzZXNzbWVudElkU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe30pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2Fzc2Vzc21lbnRJZCddICYmICFjaGFuZ2VzWydhc3Nlc3NtZW50SWQnXS5pc0ZpcnN0Q2hhbmdlKCkpIHtcclxuICAgICAgdGhpcy5hc3Nlc3NtZW50SWQgPSBjaGFuZ2VzWydhc3Nlc3NtZW50SWQnXS5jdXJyZW50VmFsdWU7XHJcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gdGhpcy5hc3Nlc3NtZW50SWRTZXJ2aWNlLmN1cnJlbnRBc3Nlc3NtZW50SWQuc3Vic2NyaWJlKGlkID0+IHtcclxuICAgIC8vICAgdGhpcy5hc3Nlc3NtZW50SWQgPSBpZFxyXG4gICAgLy8gICBjb25zb2xlLmxvZyh0aGlzLmFzc2Vzc21lbnRJZClcclxuICAgIC8vIH0pXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmFzc2Vzc21lbnRJZCk7XHJcbiAgICBpZih0aGlzLmFzc2Vzc21lbnRJZCl7XHJcbiAgICAgIHRoaXMuZ2V0QXNzZXNzbWVudERldGFpbHMoKTtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VjdGlvblF1ZXN0aW9ucylcclxuXHJcbiAgICAvLyB0aGlzLmZiLmdyb3VwKHtcclxuICAgIC8qIHNob3J0QW5zOiBbXCJcIiwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICBsb25nQW5zMTogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgc2VsRGF0ZTogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgbnVtYmVyQW5zOiBbXCJcIiwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICBtdWx0aVNlbGVjdEFuczogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgbXVsdGlTdWJBbnM6IFtcIlwiLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIG9ialN1YkFuczogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdICovXHJcbiAgICAvLyB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBnZXQgZigpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC5jb250cm9scztcclxuICB9XHJcblxyXG4gIHN1Ym1pdFRhc2soKSB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5mb3JtR3JvdXAudmFsdWUpO1xyXG4gICAgICB0aGlzLnJlcXVlc3RQYXlsb2FkID0ge1xyXG4gICAgICAgIFwiYWlhZGVmYXVsdFJlc3BvbnNlTGlzdFwiOiBbXSxcclxuICAgICAgICBcImFzc2Vzc21lbnRJbnN0YW5jZVwiOiB7XHJcbiAgICAgICAgICAvKiBhc3Nlc3NtZW50OiB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3QuYXNzZXNzbWVudCxcclxuICAgICAgICAgIGFzbXRJbnN0RGVzYzogdGhpcy5hc3Nlc3NtZW50UXVlc3Rpb25QYXBlcnNMaXN0LmFxcERlc2MsXHJcbiAgICAgICAgICBhc210SW5zdE5hbWU6IHRoaXMuYXNzZXNzbWVudFF1ZXN0aW9uUGFwZXJzTGlzdC5hcXBOYW1lLCAqL1xyXG4gICAgICAgICAgLyogc2NoZWR1bGVTdGF0dXM6IHtcclxuICAgICAgICAgICAgXCJjb2RlXCI6IFwiQVNTRVNTTUVOVC5QVUJMSVNIXCIsXHJcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcclxuICAgICAgICAgICAgXCJsYWJlbHNcIjogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIFwidGV4dFwiOiBcIkRyYWZ0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJsYW5ndWFnZVwiOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY29kZVwiOiBcIkVOR1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICBcInJlZkNsYXNzXCI6IHtcclxuICAgICAgICAgICAgICAgIFwiY29kZVwiOiBcIlNDSEVEVUxFX1NUQVRVU1wiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCAqLy8vYXNzZXNtZW50U2NoZW1hLnNjaGVkdWxlU3RhdHVzLFxyXG4gICAgICAgICAgLyogY29uZmlybWF0aW9uRGF0ZTogbmV3IERhdGUoKSwvLyBhc3Nlc21lbnRTY2hlbWEuY29uZmlybWF0aW9uRGF0ZSxcclxuICAgICAgICAgIGVuZERhdGU6IG5ldyBEYXRlKCksLy9hc3Nlc21lbnRTY2hlbWEuZW5kRGF0ZSxcclxuICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5zdGFydERhdGUsICovXHJcbiAgICAgICAgICBpZDogMTQ1LFxyXG4gICAgICAgICAgLyogdGVuYW50OiB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3QudGVuYW50LFxyXG4gICAgICAgICAgaW1hZ2VVUkw6IFwiXCIsLy90aGlzLmFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3QuaW1hZ2VVUkwsXHJcbiAgICAgICAgICBpc1B1YmxpYzogdHJ1ZSwvL3RoaXMuYXNzZXNzbWVudFF1ZXN0aW9uUGFwZXJzTGlzdC5pc1B1YmxpYyxcclxuICAgICAgICAgIHNwZWNpZmljVmlzaWJpbGl0eTogZmFsc2UsLy9hc3Nlc21lbnRTY2hlbWEuc3BlY2lmaWNWaXNpYmlsaXR5LFxyXG4gICAgICAgICAgZWRpdGFibGU6IGZhbHNlLC8vYXNzZXNtZW50U2NoZW1hLmVkaXRhYmxlLFxyXG4gICAgICAgICAgYXV0aG9yOiBcIkFhc2hpc2ggWmVuZm9ybVwiLC8vYXNzZXNtZW50U2NoZW1hLmF1dGhvcixcclxuICAgICAgICAgIHRlbmFudElkOiB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3QudGVuYW50SWQsXHJcbiAgICAgICAgICBpc0FjdGl2ZTogdHJ1ZSwvL2Fzc2VzbWVudFNjaGVtYS5pc0FjdGl2ZSxcclxuICAgICAgICAgIGNyZWF0ZWRBdDogdGhpcy5hc3Nlc3NtZW50UXVlc3Rpb25QYXBlcnNMaXN0LmNyZWF0ZWRBdCxcclxuICAgICAgICAgIGNyZWF0ZWRCeTogdGhpcy5hc3Nlc3NtZW50UXVlc3Rpb25QYXBlcnNMaXN0LmNyZWF0ZWRCeSxcclxuICAgICAgICAgIHV1aWQ6IHRoaXMuYXNzZXNzbWVudFF1ZXN0aW9uUGFwZXJzTGlzdC51dWlkICovXHJcbiAgICAgICAgfSxcclxuICAgICAgICBhc3Nlc3Nvcjoge1xyXG4gICAgICAgICAgYWN0b3JJZDogXCIwXCIsXHJcbiAgICAgICAgICBhY3RvclR5cGU6IFwiQUNUT1JfVFlQRS5CUklER0VfVVNFUlwiLFxyXG4gICAgICAgICAgaWQ6IDAsXHJcbiAgICAgICAgICBpc0FjdGl2ZTogdHJ1ZSxcclxuICAgICAgICAgIHRlbmFudDogXCIwXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIFwiaWRcIjogMCxcclxuICAgICAgICBcImlzQWN0aXZlXCI6IHRydWUsXHJcbiAgICAgICAgXCJ0ZW5hbnRcIjogXCIwXCIsXHJcbiAgICAgICAgXCJhc3Nlc3NlZEZvckVudGl0eUlkXCI6IFwiMzAzOTA2XCIsXHJcbiAgICAgICAgXCJhc3Nlc3NlZEZvckVudGl0eVR5cGVcIjogXCJBQ1RPUl9UWVBFLkJSSURHRV9VU0VSXCIsXHJcbiAgICAgICAgXCJhc3Nlc3NlZVwiOiB7XHJcbiAgICAgICAgICBhY3RvcklkOiBcIjMwMzkwNlwiLFxyXG4gICAgICAgICAgYWN0b3JUeXBlOiBcIkFDVE9SX1RZUEUuQlJJREdFX1VTRVJcIixcclxuICAgICAgICAgIGlkOiAwLFxyXG4gICAgICAgICAgaXNBY3RpdmU6IHRydWUsXHJcbiAgICAgICAgICB0ZW5hbnQ6IFwiMFwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3Q/LnF1ZXN0aW9uUGFwZXJTZWN0aW9uTGlzdC5mb3JFYWNoKChzZWN0aW9uOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICBzZWN0aW9uLnNlY3Rpb25RdWVzdGlvbnNMaXN0LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiBhLm9yZGVyTm8gLSBiLm9yZGVyTm8pLmZvckVhY2goKHF1ZXM6IGFueSwgcWluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgIHZhciBxdWVzdGlvblJlc3BvbnNlT2JqOiBhbnkgPSB7fTtcclxuICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uRGV0YWlscyA9IHRoaXMuc2VjdGlvblF1ZXN0aW9uc1swXS5maW5kKGkgPT4gaS5pZCA9PT0gcXVlcy5xdWVzdGlvbklkKTtcclxuICAgICAgICAgIGlmIChxdWVzdGlvbkRldGFpbHM/LnF1ZXN0aW9uVHlwZS5jb2RlID09PSBcIlFVRVNUSU9OX1RZUEUuT0JKRUNUSVZFXCIgfHwgcXVlc3Rpb25EZXRhaWxzPy5xdWVzdGlvblR5cGUuY29kZSA9PT0gXCJRVUVTVElPTl9UWVBFLlNDQUxFX1JBVElOR1wiKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zOiBhbnlbXSA9IHF1ZXN0aW9uRGV0YWlscy5kZWZhdWx0T3B0aW9uc0xpc3Q7XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uUmVzcG9uc2VPYmogPSB7IG9wdGlvbklkOiBkZWZhdWx0T3B0aW9ucz8uZmluZChpID0+IGkub3B0aW9ucy5pZCA9PT0gdGhpcy5mb3JtR3JvdXAudmFsdWVbcXVlcy5xdWVzdGlvbklkXS5pZCk/Lm9wdGlvbnMgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChxdWVzdGlvbkRldGFpbHM/LnF1ZXN0aW9uVHlwZS5jb2RlID09PSBcIlFVRVNUSU9OX1RZUEUuTVVMVElTRUxFQ1RcIikge1xyXG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0T3B0aW9uczogYW55W10gPSBxdWVzdGlvbkRldGFpbHMuZGVmYXVsdE9wdGlvbnNMaXN0O1xyXG4gICAgICAgICAgICBjb25zdCBkcm9iamVjdGl2ZXJlc3BvbnNlTGlzdDogYW55W10gPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAudmFsdWVbcXVlcy5xdWVzdGlvbklkXT8uZm9yRWFjaCgob3B0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnM6IGFueVtdID0gZGVmYXVsdE9wdGlvbnMuZmluZChpID0+IGkub3B0aW9ucy5pZCA9PT0gb3B0LmlkKVxyXG4gICAgICAgICAgICAgIGRyb2JqZWN0aXZlcmVzcG9uc2VMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgaWQ6IDAsXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0T3B0aW9uOiBzZWxlY3RlZE9wdGlvbnNcclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIHF1ZXN0aW9uUmVzcG9uc2VPYmogPSB7XHJcbiAgICAgICAgICAgICAgZHJvYmplY3RpdmVyZXNwb25zZUxpc3RcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChxdWVzdGlvbkRldGFpbHM/LnF1ZXN0aW9uVHlwZS5jb2RlID09PSBcIlFVRVNUSU9OX1RZUEUuTVVMVElTRUxFQ1RfU1VCSkVDVElWRVwiKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zOiBhbnlbXSA9IHF1ZXN0aW9uRGV0YWlscy5kZWZhdWx0T3B0aW9uc0xpc3Q7XHJcbiAgICAgICAgICAgIGNvbnN0IGRyb2JqZWN0aXZlcmVzcG9uc2VMaXN0OiBhbnlbXSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZVtgJHtxdWVzLnF1ZXN0aW9uSWR9X29iamVjdGl2ZWBdPy5mb3JFYWNoKChvcHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uczogYW55W10gPSBkZWZhdWx0T3B0aW9ucy5maW5kKGkgPT4gaS5vcHRpb25zLmlkID09PSBvcHQuaWQpXHJcbiAgICAgICAgICAgICAgZHJvYmplY3RpdmVyZXNwb25zZUxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBpZDogMCxcclxuICAgICAgICAgICAgICAgIGRlZmF1bHRPcHRpb246IHNlbGVjdGVkT3B0aW9uc1xyXG4gICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgcXVlc3Rpb25SZXNwb25zZU9iaiA9IHtcclxuICAgICAgICAgICAgICBkcm9iamVjdGl2ZXJlc3BvbnNlTGlzdCxcclxuICAgICAgICAgICAgICBkcnN1YmplY3RpdmVyZXNwb25zZUxpc3Q6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgaWQ6IDAsXHJcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVGV4dDogdGhpcy5mb3JtR3JvdXAudmFsdWVbYCR7cXVlcy5xdWVzdGlvbklkfV9zdWJqZWN0aXZlYF1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSBpZiAocXVlc3Rpb25EZXRhaWxzPy5xdWVzdGlvblR5cGUuY29kZSA9PT0gXCJRVUVTVElPTl9UWVBFLk9CSkVDVElWRV9TVUJKRUNUSVZFXCIpIHtcclxuICAgICAgICAgICAgY29uc3QgZGVmYXVsdE9wdGlvbnM6IGFueVtdID0gcXVlc3Rpb25EZXRhaWxzLmRlZmF1bHRPcHRpb25zTGlzdDtcclxuICAgICAgICAgICAgcXVlc3Rpb25SZXNwb25zZU9iaiA9IHtcclxuICAgICAgICAgICAgICBvcHRpb25JZDogZGVmYXVsdE9wdGlvbnM/LmZpbmQoaSA9PiBpLm9wdGlvbnMuaWQgPT09IHRoaXMuZm9ybUdyb3VwLnZhbHVlW2Ake3F1ZXMucXVlc3Rpb25JZH1fb2JqZWN0aXZlYF0uaWQpPy5vcHRpb25zLFxyXG4gICAgICAgICAgICAgIGRyc3ViamVjdGl2ZXJlc3BvbnNlTGlzdDogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBpZDogMCxcclxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUZXh0OiB0aGlzLmZvcm1Hcm91cC52YWx1ZVtgJHtxdWVzLnF1ZXN0aW9uSWR9X3N1YmplY3RpdmVgXVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIH0gIGVsc2UgaWYgKHF1ZXN0aW9uRGV0YWlscz8ucXVlc3Rpb25UeXBlLmNvZGUgPT09IFwiUVVFU1RJT05fVFlQRS5GSUxFX1VQTE9BRFwiKSB7XHJcbiAgICAgICAgICAgIGxldCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTsgXHJcbiAgICAgICAgICAgIC8qIGxldCBtYXhEZXB0aD0xMjM7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbGVEYXRhID0gdGhpcy5mb3JtR3JvdXAudmFsdWVbcXVlcy5xdWVzdGlvbklkXTtcclxuICAgICAgICAgICAgbGV0IGZpbGU6IEZpbGUgPSBmaWxlRGF0YS5maWxlU291cmM7XHJcbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpOyBcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2UudXBsb2FkQXNzZXNzbWVudChmb3JtRGF0YSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAvLyBpZiAocmVzcG9uc2UgIT0gJycpIHt9XHJcbiAgICAgICAgICAgIH0pOyAqL1xyXG4gICAgICAgICAgICBxdWVzdGlvblJlc3BvbnNlT2JqID0ge1xyXG4gICAgICAgICAgICAgIGRyc3ViamVjdGl2ZXJlc3BvbnNlTGlzdDogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBpZDogMCxcclxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUZXh0OiAnJ1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uUmVzcG9uc2VPYmogPSB7XHJcbiAgICAgICAgICAgICAgZHJzdWJqZWN0aXZlcmVzcG9uc2VMaXN0OiBbXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgIGlkOiAwLFxyXG4gICAgICAgICAgICAgICAgICByZXNwb25zZVRleHQ6IHRoaXMuZm9ybUdyb3VwLnZhbHVlW3F1ZXMucXVlc3Rpb25JZF1cclxuICAgICAgICAgICAgICAgIC8vICByZXNwb25zZVRleHQ6IFwidGVzdFwiXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpZiAocXVlc3Rpb25EZXRhaWxzPy5xdWVzdGlvblN1YnR5cGUuY29kZSA9PT0gXCJRVUVTVElPTl9TVUJfVFlQRS5TVUJKRUNUSVZFXCIpIHtcclxuICAgICAgICAgIHRoaXMucmVxdWVzdFBheWxvYWQuYWlhZGVmYXVsdFJlc3BvbnNlTGlzdC5wdXNoKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgLi4ucXVlc3Rpb25SZXNwb25zZU9iaixcclxuICAgICAgICAgICAgICBcImlkXCI6IDAsXHJcbiAgICAgICAgICAgICAgXCJpc0FjdGl2ZVwiOiB0cnVlLFxyXG4gICAgICAgICAgICAgIFwic2VjdGlvblF1ZXN0aW9uXCI6IHtcclxuICAgICAgICAgICAgICAgIGlkOiBxdWVzLmlkLFxyXG4gICAgICAgICAgICAgICAgaXNBY3RpdmU6IHF1ZXMuaXNBY3RpdmUsXHJcbiAgICAgICAgICAgICAgICBvcmRlck5vOiBxdWVzLm9yZGVyTm8sXHJcbiAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBxdWVzLnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICBxdWVzdGlvbk51bWJlcjogcXVlcy5xdWVzdGlvbk51bWJlcixcclxuICAgICAgICAgICAgICAgIHRlbmFudDogcXVlcy50ZW5hbnQsXHJcbiAgICAgICAgICAgICAgICBzZWNRdWVzdERlc2M6IHF1ZXMuc2VjUXVlc3REZXNjXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBcInRlbmFudFwiOiBcIjBcIlxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2Uuc3VibWl0QXNzZXNzbWVudFF1ZXN0aW9uUGFwZXJzKHRoaXMucmVxdWVzdFBheWxvYWQpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgICAgaWYgKHJlc3BvbnNlICE9ICcnKSB7XHJcbiAgICAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihRdWVzdFN1Y2Nlc3NDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgYXNzZXNtZW50SW5zdElkOiAnZGF0YSdcclxuICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgaWYgKHJlc3VsdD8uZXZlbnQgPT0gJ2Nsb3NlJykge1xyXG4gICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgfSk7XHJcbiAgICAgICAgIH1cclxuXHJcbiAgICAgICB9KTtcclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMucmVxdWVzdFBheWxvYWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5sb2coXCJpbnZhbGlkICBmb3JtIHZhbHVlc1wiKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0QXNzZXNzbWVudERldGFpbHMoKSB7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnRRdWVzdGlvblBhcGVycyh0aGlzLmFzc2Vzc21lbnRJZCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXNzZXNzbWVudFF1ZXN0aW9uUGFwZXJzTGlzdCA9IGRhdGE/LlswXTtcclxuICAgICAgICB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3Q/LnF1ZXN0aW9uUGFwZXJTZWN0aW9uTGlzdC5mb3JFYWNoKChxcHM6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHF1ZXN0aW9uSWRzID0gcXBzPy5zZWN0aW9uUXVlc3Rpb25zTGlzdC5tYXAoKHNlY3Rpb25RdWVzdGlvbjogYW55KSA9PiBzZWN0aW9uUXVlc3Rpb24/LnF1ZXN0aW9uSWQpO1xyXG4gICAgICAgICAgdGhpcy5xdWVzdGlvbklkc1tpbmRleF0gPSBxdWVzdGlvbklkc1xyXG4gICAgICAgICAgdGhpcy5nZXRRdWVzdGlvbnModGhpcy5hc3Nlc3NtZW50SWQsIHF1ZXN0aW9uSWRzLCBpbmRleClcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VjdGlvblF1ZXN0aW9ucylcclxuICB9XHJcblxyXG4gIGdldFNlY3Rpb25RdWVzdGlvbklkcyhzZWN0aW9uOiBhbnkpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gc2VjdGlvbj8uc2VjdGlvblF1ZXN0aW9uc0xpc3Q/Lm1hcCgocXVlc3Rpb246IGFueSkgPT4gcXVlc3Rpb24ucXVlc3Rpb25JZCkgfHwgW107XHJcbiAgfVxyXG5cclxuICBzaG93VG9vbHRpcChkYXRhOnN0cmluZyl7XHJcbiAgICBpZihkYXRhID09PSBudWxsIHx8IGRhdGEubWF0Y2goL14gKiQvKSAhPT0gbnVsbCl7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfWVsc2Uge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFRvb2x0aXBUZXh0KGRhdGE6c3RyaW5nKXtcclxuICAgIHJldHVybiBkYXRhLnJlcGxhY2UoLzxbXj5dKj4vZywgJycpO1xyXG4gIH1cclxuXHJcbiAgaXNRdWVzdGlvblByZXNlbnRJbkJhbmsoaWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hpbGRRdWVzdGlvbkJvb2suZmluZEluZGV4KChwcmV2OiBhbnkpID0+IHByZXYucXVlc3Rpb25JZCA9PSBpZClcclxuICB9XHJcblxyXG4gIGdldGNoaWxkUXVlc2ZybUJvb2soaWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hpbGRRdWVzdGlvbkJvb2suZmluZCgoY2hpbGQ6IGFueSkgPT4gY2hpbGQucXVlc3Rpb25JZCA9PSBpZClcclxuICB9XHJcblxyXG4gIGdldFF1ZXN0aW9ucyhhc3Nlc3NtZW50SWQ6IGFueSwgcXVlc3Rpb25JZExpc3Q6IGFueSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50U2VydmljZS5nZXRBc3Nlc3NtZW50UXVlc3Rpb25zKGFzc2Vzc21lbnRJZCwgcXVlc3Rpb25JZExpc3QpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChxdWVzdGlvbnNMaXN0OiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgbGV0IGNoaWxkUXVlc0xpc3Q6IG51bWJlcltdID0gW107ICAgICAgICAgICAgIC8vb2JqZWN0aXZlIHR5cGUgcXVlc3Rpb25zIFxyXG5cclxuICAgICAgICB0aGlzLmZpbmFsUXVlc3Rpb25MaXN0ID0gcXVlc3Rpb25zTGlzdDtcclxuXHJcbiAgICAgICAgdGhpcy5zZWN0aW9uUXVlc3Rpb25zW2luZGV4XSA9IHRoaXMuZmluYWxRdWVzdGlvbkxpc3Q7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ1VwZGF0ZWQgc2VjdGlvblF1ZXN0aW9uczonLCB0aGlzLnNlY3Rpb25RdWVzdGlvbnMpO1xyXG4gICAgICAgIGlmICh0aGlzLnNlY3Rpb25RdWVzdGlvbnMgJiYgdGhpcy5zZWN0aW9uUXVlc3Rpb25zW2luZGV4XSkge1xyXG4gICAgICAgICAgZm9yICh2YXIgcXVlcyBvZiB0aGlzLnNlY3Rpb25RdWVzdGlvbnNbaW5kZXhdKSB7XHJcbiAgICAgICAgICAgIGlmIChxdWVzPy5xdWVzdGlvblR5cGUuY29kZSA9PT0gXCJRVUVTVElPTl9UWVBFLk9CSkVDVElWRV9TVUJKRUNUSVZFXCIgfHwgcXVlcz8ucXVlc3Rpb25UeXBlLmNvZGUgPT09IFwiUVVFU1RJT05fVFlQRS5NVUxUSVNFTEVDVF9TVUJKRUNUSVZFXCIpIHtcclxuICAgICAgICAgICAgICB0aGlzLmdyb3VwW2Ake3F1ZXMuaWR9X29iamVjdGl2ZWBdID0gbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSlcclxuICAgICAgICAgICAgICB0aGlzLmdyb3VwW2Ake3F1ZXMuaWR9X3N1YmplY3RpdmVgXSA9IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXHJcbiAgICAgICAgICAgIH0gZWxzZSBpZihxdWVzPy5xdWVzdGlvblR5cGUuY29kZSA9PT0gXCJRVUVTVElPTl9UWVBFLk9CSkVDVElWRVwiIHx8IFxyXG4gICAgICAgICAgICAgIHF1ZXM/LnF1ZXN0aW9uVHlwZS5jb2RlID09PSBcIlFVRVNUSU9OX1RZUEUuU1VCSkVDVElWRV9TSE9SVFwiIHx8IFxyXG4gICAgICAgICAgICAgIHF1ZXM/LnF1ZXN0aW9uVHlwZS5jb2RlID09PSBcIlFVRVNUSU9OX1RZUEUuU1VCSkVDVElWRV9MT05HXCIgfHwgXHJcbiAgICAgICAgICAgICAgcXVlcz8ucXVlc3Rpb25UeXBlLmNvZGUgPT09IFwiUVVFU1RJT05fVFlQRS5EQVRFXCIgfHwgXHJcbiAgICAgICAgICAgICAgcXVlcz8ucXVlc3Rpb25UeXBlLmNvZGUgPT09IFwiUVVFU1RJT05fVFlQRS5OVU1CRVJcIiB8fCBcclxuICAgICAgICAgICAgICBxdWVzPy5xdWVzdGlvblR5cGUuY29kZSA9PT0gXCJRVUVTVElPTl9UWVBFLkZJTEVfVVBMT0FEXCIgfHwgXHJcbiAgICAgICAgICAgICAgcXVlcz8ucXVlc3Rpb25UeXBlLmNvZGUgPT09IFwiUVVFU1RJT05fVFlQRS5NVUxUSVNFTEVDVFwiIHx8IFxyXG4gICAgICAgICAgICAgIHF1ZXM/LnF1ZXN0aW9uVHlwZS5jb2RlID09PSBcIlFVRVNUSU9OX1RZUEUuU0NBTEVfUkFUSU5HXCIgfHwgXHJcbiAgICAgICAgICAgICAgcXVlcz8ucXVlc3Rpb25UeXBlLmNvZGUgPT09IFwiUVVFU1RJT05fVFlQRS5TVUJKRUNUSVZFX1JJQ0hfVEVYVFwiIHx8IFxyXG4gICAgICAgICAgICAgIHF1ZXM/LnF1ZXN0aW9uVHlwZS5jb2RlID09PSBcIlFVRVNUSU9OX1RZUEUuU0VBUkNIQUJMRV9JTlBVVF9NRE1cIil7XHJcbiAgICAgICAgICAgICAgdGhpcy5ncm91cFtxdWVzLmlkXSA9IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAvLyAgdGhpcy5ncm91cFt0aGlzLmVkaXRvck5hbWVdID0gbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSlcclxuICAgICAgICAvLyAgdGhpcy5ncm91cFt0aGlzLmZvcm1Hcm91cE5hbWVdID0gbmV3IEZvcm1Hcm91cCh0aGlzLmdyb3VwMSlcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHRoaXMuZ3JvdXApXHJcbiAgICAgICAgdGhpcy5zdGFydERhdGUgPSBuZXcgRGF0ZSgpXHJcblxyXG4gICAgICAgIC8vb2JqZWN0aXZlIHR5cGUgcXVlc3Rpb25zIFxyXG4gICAgICAgIHF1ZXN0aW9uc0xpc3QuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoaXRlbS5xdWVzdGlvblR5cGUuY29kZSA9PT0gXCJRVUVTVElPTl9UWVBFLk9CSkVDVElWRVwiKSB7XHJcbiAgICAgICAgICAgIGl0ZW0uZGVmYXVsdE9wdGlvbnNMaXN0LmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgb3B0aW9uLmNoaWxkUXVlc3Rpb25MaXN0Py5mb3JFYWNoKChpZDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1F1ZXN0aW9uUHJlc2VudEluQmFuayhpZCkgPT0gLTEgJiYgIWNoaWxkUXVlc0xpc3QuaW5jbHVkZXMoaWQpKSB7XHJcbiAgICAgICAgICAgICAgICAgIGNoaWxkUXVlc0xpc3QucHVzaChpZClcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChjaGlsZFF1ZXNMaXN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5mZXRjaENoaWxkUXVlcyhjaGlsZFF1ZXNMaXN0KTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY29uZmlndXJlQ2hpbGQoZXZlbnQ6IGFueSkge1xyXG4gICAgbGV0IGNoaWxkTGlzdCA9IGV2ZW50Lmxpc3Q7XHJcbiAgICBsZXQgcm9vdF9xdWVzdGlvbiA9IGV2ZW50LnF1ZXN0aW9uXHJcbiAgICBsZXQgY2hpbGQ6IGFueSA7XHJcbiAgICBpZihjaGlsZExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNoaWxkTGlzdC5mb3JFYWNoKChpZDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICBjaGlsZCA9IHRoaXMuZ2V0Y2hpbGRRdWVzZnJtQm9vayhpZCk7XHJcbiAgICAgICAgICAvL2FkZCBjb250cm9sIGhlcmVcclxuICAgICAgICAgIHRoaXMuZ3JvdXBbY2hpbGQucXVlc3Rpb24uaWRdID0gbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSlcclxuICAgICAgICAgIHRoaXMuZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh0aGlzLmdyb3VwKVxyXG4gICAgICAgIH0pO1xyXG4gICAgIH1cclxuICAgIHRoaXMuZmluYWxRdWVzdGlvbkxpc3QuZm9yRWFjaCgocXVlc3Rpb246IGFueSkgPT4gXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgaWYocXVlc3Rpb24uaWQgPT09IHJvb3RfcXVlc3Rpb24uaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKCF0aGlzLmZpbmFsUXVlc3Rpb25MaXN0LmluY2x1ZGVzKGNoaWxkLnF1ZXN0aW9uKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5hbFF1ZXN0aW9uTGlzdC5zcGxpY2UodGhpcy5maW5hbFF1ZXN0aW9uTGlzdC5pbmRleE9mKHF1ZXN0aW9uKSsxLCAwLCBjaGlsZC5xdWVzdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgY29uc29sZS5sb2coJ2ZpbmFscXVlc3Rpb25saXN0JytKU09OLnN0cmluZ2lmeSh0aGlzLmZpbmFsUXVlc3Rpb25MaXN0KSk7XHJcbiAgfVxyXG4gIFxyXG4gIGZldGNoQ2hpbGRRdWVzKGNoaWxkUXVlc0xpc3Q6IGFueSkge1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50U2VydmljZS5nZXRDaGlsZFF1ZXN0aW9uc1dpdGhJZExpc3QodGhpcy5hc3Nlc3NtZW50SWQsIGNoaWxkUXVlc0xpc3QpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgcXVlc3Rpb25MaXN0ID0gcmVzcG9uc2U7XHJcbiAgICAgIGNoaWxkUXVlc0xpc3QgPSBbXVxyXG4gICAgICBxdWVzdGlvbkxpc3QuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaXRlbVsndXNlclJlc3BvbnNlJ10gPSAnJztcclxuICAgICAgICBpdGVtWydtdWx0aVNlbGVjdFJlc3BvbnNlJ10gPSAnJztcclxuICAgICAgICB0aGlzLmNoaWxkUXVlc3Rpb25Cb29rLnB1c2goe1xyXG4gICAgICAgICAgcXVlc3Rpb246IGl0ZW0sXHJcbiAgICAgICAgICBxdWVzdGlvbklkOiBpdGVtLmlkLFxyXG4gICAgICAgICAgaXNNYW5kYXRvcnk6IHRydWVcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoaXRlbS5xdWVzdGlvblR5cGUuY29kZSA9PT0gXCJRVUVTVElPTl9UWVBFLk9CSkVDVElWRVwiKSB7XHJcbiAgICAgICAgICBpdGVtLmRlZmF1bHRPcHRpb25zTGlzdC5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBvcHRpb24uY2hpbGRRdWVzdGlvbkxpc3Q/LmZvckVhY2goKGlkOiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5pc1F1ZXN0aW9uUHJlc2VudEluQmFuayhpZCkgPT0gLTEgJiYgIWNoaWxkUXVlc0xpc3QuaW5jbHVkZXMoaWQpKSB7XHJcbiAgICAgICAgICAgICAgICBjaGlsZFF1ZXNMaXN0LnB1c2goaWQpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoY2hpbGRRdWVzTGlzdC5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmZldGNoQ2hpbGRRdWVzKGNoaWxkUXVlc0xpc3QpXHJcbiAgICAgIH0gXHJcbiAgICB9LFxyXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGNoaWxkIHF1ZXN0aW9uczonLCBlcnJvcik7XHJcbiAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBzY3JvbGxUb1NlY3Rpb24oaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzZWN0aW9uLSR7aW5kZXh9YCk7XHJcbiAgICBzZWN0aW9uPy5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdzdGFydCcgfSk7XHJcbiAgfVxyXG4gIFxyXG59XHJcblxyXG4iLCI8bGluayBpZD1cInZhcmlhYmxlVGhlbWVMaW5rXCIgcmVsPVwic3R5bGVzaGVldFwiIGhyZWY9XCIuLi8uLi8uLi9hc3NldHMvdGhlbWUvdmFyaWFibGVzLmNzc1wiPlxyXG48ZGl2IGNsYXNzPVwicXVlc3Rpb25zLWNvbnRhaW5lclwiPlxyXG4gICAgPGltZyBzcmM9XCJhc3NldHMvaW1hZ2VzL2Fzc2Vzc21lbnQtcGxhY2Vob2xkZXItMi5wbmdcIiBjbGFzcz1cImNvdmVyLWltYWdlXCIgLz5cclxuICAgIDxkaXYgKm5nSWY9XCJhc3Nlc3NtZW50UXVlc3Rpb25QYXBlcnNMaXN0XCIgY2xhc3M9XCJxdWVzdGlvbnMtYm9keS1jb250YWluZXJcIj5cclxuICAgICAgICA8Zm9ybSBjbGFzcz1cImZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIChuZ1N1Ym1pdCk9XCJzdWJtaXRUYXNrKClcIiBub3ZhbGlkYXRlPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3Q/LnF1ZXN0aW9uUGFwZXJTZWN0aW9uTGlzdDsgbGV0IGk9aW5kZXhcIiA+PG1hdC1jaGlwIGNsYXNzPVwiY2hpcHMtcGFkZGluZ1wiIChjbGljayk9XCJzY3JvbGxUb1NlY3Rpb24oaSlcIiA+e3tzZWN0aW9uPy5xcHNOYW1lWzBdPy50ZXh0fX08L21hdC1jaGlwPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3Q/LnF1ZXN0aW9uUGFwZXJTZWN0aW9uTGlzdDsgbGV0IGk9aW5kZXhcIiA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpZF09XCInc2VjdGlvbi0nICsgaVwiIGNsYXNzPVwic2VjdGlvbi1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInNlY3Rpb24taGVhZGVyLXRleHRcIj57e3NlY3Rpb24/LnFwc05hbWVbMF0/LnRleHR9fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2Ygc2VjdGlvblF1ZXN0aW9uc1tpXTsgbGV0IGo9aW5kZXhcIiBjbGFzcz1cImFuc3dlci1jdWJlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJhc3Nlc3NtZW50LXRleHQtZ3JleS1uaW5lIGFzc2Vzc21lbnQtdGV4dC1zZW1pYm9sZC0xOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2orMX19LiZuYnNwO3t7cXVlc3Rpb24ucXVlc3Rpb25UZXh0WzBdPy50ZXh0fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYW5kYXRvcnlcIiAqbmdJZj1cInF1ZXN0aW9uWydpc01hbmRhdG9yeSddXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwc3BhblwiICpuZ0lmPVwic2hvd1Rvb2x0aXAocXVlc3Rpb24ucXVlc3Rpb25TdWJUZXh0WzBdPy50ZXh0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaW1hZ2VzL25ld190b29sdGlwLmpwZ1wiIG1hdFRvb2x0aXBDbGFzcz1cImRhbmdlci10b29sdGlwXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBjbGFzcz1cInRvb2x0aXAtaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7e3F1ZXN0aW9uLnF1ZXN0aW9uU3ViVGV4dFswXT8udGV4dH19XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYW5zd2VyLWlucHV0XCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGUuY29kZSA9PT0gJ1FVRVNUSU9OX1RZUEUuT0JKRUNUSVZFJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXR5cGUtb2JqZWN0aXZlIFtvcHRpb25zTGlzdF09XCJxdWVzdGlvblwiICh2aWV3Q2hpbGQpPVwiY29uZmlndXJlQ2hpbGQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24uaWRcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtb2JqZWN0aXZlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbnN3ZXItaW5wdXRcIiAqbmdJZj1cInF1ZXN0aW9uPy5xdWVzdGlvblR5cGU/LmNvZGUgPT09ICdRVUVTVElPTl9UWVBFLlNVQkpFQ1RJVkVfU0hPUlQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tdHlwZS1zaG9ydCBbb3B0aW9uc0xpc3RdPVwicXVlc3Rpb25cIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLmlkXCIgW3JlcXVpcmVkXT1cInRydWVcIj48L2xpYi1xdWVzdGlvbi10eXBlLXNob3J0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbnN3ZXItaW5wdXRcIiAqbmdJZj1cInF1ZXN0aW9uPy5xdWVzdGlvblR5cGU/LmNvZGUgPT09ICdRVUVTVElPTl9UWVBFLlNVQkpFQ1RJVkVfTE9ORydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi10eXBlLWxvbmcgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5pZFwiIFtmaWVsZEF0dHJpYnV0ZXNdPVwicXVlc3Rpb25cIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtbG9uZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGliLXF1ZXN0aW9uLXR5cGUtZWRpdG9yIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24uaWRcIiBbY29uZmlnXT1cImNvbmZpZ1wiIGZpZWxkQXR0cmlidXRlcz1cInF1ZXN0aW9uXCIgW3JlcXVpcmVkXT1cInRydWVcIj48L2xpYi1xdWVzdGlvbi10eXBlLWVkaXRvcj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuc3dlci1pbnB1dFwiICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlLmNvZGUgPT09ICdRVUVTVElPTl9UWVBFLkRBVEUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tdHlwZS1kYXRlIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24uaWRcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtZGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYW5zd2VyLWlucHV0XCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGUuY29kZSA9PT0gJ1FVRVNUSU9OX1RZUEUuTlVNQkVSJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXR5cGUtbnVtYmVyIFtvcHRpb25zTGlzdF09XCJxdWVzdGlvblwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24uaWRcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtbnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbnN3ZXItaW5wdXRcIiAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZS5jb2RlID09PSAnUVVFU1RJT05fVFlQRS5GSUxFX1VQTE9BRCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi10eXBlLXVwbG9hZC1maWxlIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24uaWRcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtdXBsb2FkLWZpbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuc3dlci1pbnB1dFwiICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlLmNvZGUgPT09ICdRVUVTVElPTl9UWVBFLk1VTFRJU0VMRUNUJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXR5cGUtbXVsdGlzZWxlY3QgW29wdGlvbnNMaXN0XT1cInF1ZXN0aW9uXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5pZFwiIFtyZXF1aXJlZF09XCJ0cnVlXCI+PC9saWItcXVlc3Rpb24tdHlwZS1tdWx0aXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYW5zd2VyLWlucHV0XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlLmNvZGUgPT09ICdRVUVTVElPTl9UWVBFLk9CSkVDVElWRV9TVUJKRUNUSVZFJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxsaWItcXVlc3Rpb24tdHlwZS1vYmplY3RpdmUtc3ViIFtvcHRpb25zTGlzdF09XCJxdWVzdGlvblwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24uaWRcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtb2JqZWN0aXZlLXN1Yj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGxpYi1xdWVzdGlvbi10eXBlLW9iamVjdGl2ZS1zdWIgW29wdGlvbnNMaXN0XT1cInF1ZXN0aW9uXCIgW2Zvcm1Hcm91cE5hbWVdPVwicXVlc3Rpb24uaWRcIiBbZmllbGRBdHRyaWJ1dGVzXT1cInF1ZXN0aW9uXCIgW3JlcXVpcmVkXT1cInRydWVcIj48L2xpYi1xdWVzdGlvbi10eXBlLW9iamVjdGl2ZS1zdWI+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXR5cGUtb2JqZWN0aXZlIFtvcHRpb25zTGlzdF09XCJxdWVzdGlvblwiIGZvcm1Db250cm9sTmFtZT1cInt7cXVlc3Rpb24uaWR9fV9vYmplY3RpdmVcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtb2JqZWN0aXZlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXR5cGUtc2hvcnQgW29wdGlvbnNMaXN0XT1cInF1ZXN0aW9uXCIgZm9ybUNvbnRyb2xOYW1lPVwie3txdWVzdGlvbi5pZH19X3N1YmplY3RpdmVcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtc2hvcnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuc3dlci1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlLmNvZGUgPT09ICdRVUVTVElPTl9UWVBFLk1VTFRJU0VMRUNUX1NVQkpFQ1RJVkUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGxpYi1xdWVzdGlvbi10eXBlLW11bHRpc2VsZWN0LXN1YiBbb3B0aW9uc0xpc3RdPVwicXVlc3Rpb25cIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLmlkXCIgW3JlcXVpcmVkXT1cInRydWVcIj48L2xpYi1xdWVzdGlvbi10eXBlLW11bHRpc2VsZWN0LXN1Yj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tdHlwZS1tdWx0aXNlbGVjdCBbb3B0aW9uc0xpc3RdPVwicXVlc3Rpb25cIiBmb3JtQ29udHJvbE5hbWU9XCJ7e3F1ZXN0aW9uLmlkfX1fb2JqZWN0aXZlXCIgW3JlcXVpcmVkXT1cInRydWVcIj48L2xpYi1xdWVzdGlvbi10eXBlLW11bHRpc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXR5cGUtc2hvcnQgW29wdGlvbnNMaXN0XT1cInF1ZXN0aW9uXCIgZm9ybUNvbnRyb2xOYW1lPVwie3txdWVzdGlvbi5pZH19X3N1YmplY3RpdmVcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtc2hvcnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuc3dlci1pbnB1dFwiICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlLmNvZGUgPT09ICdRVUVTVElPTl9UWVBFLlNDQUxFX1JBVElORydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi10eXBlLXJhdGluZyBbb3B0aW9uc0xpc3RdPVwicXVlc3Rpb25cIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLmlkXCIgW3JlcXVpcmVkXT1cInRydWVcIj48L2xpYi1xdWVzdGlvbi10eXBlLXJhdGluZz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYW5zd2VyLWlucHV0XCIgKm5nSWY9XCJxdWVzdGlvbj8ucXVlc3Rpb25UeXBlPy5jb2RlID09PSAnUVVFU1RJT05fVFlQRS5TVUJKRUNUSVZFX1JJQ0hfVEVYVCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi10eXBlLWVkaXRvciBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLmlkXCIgW2NvbmZpZ109XCJjb25maWdcIiBmaWVsZEF0dHJpYnV0ZXM9XCJxdWVzdGlvblwiIFtyZXF1aXJlZF09XCJ0cnVlXCI+PC9saWItcXVlc3Rpb24tdHlwZS1lZGl0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuc3dlci1pbnB1dFwiICpuZ0lmPVwicXVlc3Rpb24/LnF1ZXN0aW9uVHlwZT8uY29kZSA9PT0gJ1FVRVNUSU9OX1RZUEUuU0VBUkNIQUJMRV9JTlBVVF9NRE0nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tdHlwZS1zZWFyY2hhYmxlLXRhZyBbb3B0aW9uc0xpc3RdPVwicXVlc3Rpb25cIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLmlkXCIgZmllbGRBdHRyaWJ1dGVzPVwicXVlc3Rpb25cIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtc2VhcmNoYWJsZS10YWc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtYnV0dG9uLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAgW2Rpc2FibGVkXT1cIiFmb3JtR3JvdXAudmFsaWRcIj5TdWJtaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==