vcomply-workflow-engine 2.6.28 → 2.6.30

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 (103) hide show
  1. package/bundles/vcomply-workflow-engine.umd.js +575 -902
  2. package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
  3. package/esm2015/lib/add-multiple-responsibility/add-multiple-responsibility.component.js +32 -70
  4. package/esm2015/lib/add-multiple-risk/add-multiple-risk.component.js +1 -1
  5. package/esm2015/lib/confirmation-alert/confirmation-alert.component.js +4 -4
  6. package/esm2015/lib/confirmation-alert/confirmation-alert.component.ngfactory.js +4 -11
  7. package/esm2015/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.js +1 -1
  8. package/esm2015/lib/interfaces/confirmation-alert.js +1 -1
  9. package/esm2015/lib/log-an-issue/log-an-issue.component.js +12 -16
  10. package/esm2015/lib/log-an-issue/log-an-issue.component.ngfactory.js +50 -49
  11. package/esm2015/lib/log-an-issue/log-an-issue.component.ngsummary.json +1 -1
  12. package/esm2015/lib/sharedComponents/assessment-editor/services/editor.service.js +1 -1
  13. package/esm2015/lib/sharedComponents/assessment-editor/services/validator.service.js +4 -6
  14. package/esm2015/lib/sharedComponents/assessment-editor/services/validator.service.ngsummary.json +1 -1
  15. package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.js +3 -4
  16. package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.ngfactory.js +17 -18
  17. package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.js +3 -8
  18. package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.ngfactory.js +3 -4
  19. package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.ngsummary.json +1 -1
  20. package/esm2015/lib/sharedComponents/format-and-evidence/format-and-evidence.component.js +1 -1
  21. package/esm2015/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.js +3 -2
  22. package/esm2015/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.ngfactory.js +15 -14
  23. package/esm2015/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.ngsummary.json +1 -1
  24. package/esm2015/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.js +3 -2
  25. package/esm2015/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.ngfactory.js +15 -14
  26. package/esm2015/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.ngsummary.json +1 -1
  27. package/esm2015/lib/sharedComponents/frequency/frequency-container/frequency-container.component.js +10 -2
  28. package/esm2015/lib/sharedComponents/frequency/frequency-container/frequency-container.component.ngfactory.js +9 -9
  29. package/esm2015/lib/sharedComponents/frequency/frequency-container/frequency-container.component.ngsummary.json +1 -1
  30. package/esm2015/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.js +3 -2
  31. package/esm2015/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.ngfactory.js +12 -11
  32. package/esm2015/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.ngsummary.json +1 -1
  33. package/esm2015/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.js +3 -2
  34. package/esm2015/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.ngfactory.js +15 -14
  35. package/esm2015/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.ngsummary.json +1 -1
  36. package/esm2015/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.js +3 -2
  37. package/esm2015/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.ngfactory.js +17 -16
  38. package/esm2015/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.ngsummary.json +1 -1
  39. package/esm2015/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.js +3 -2
  40. package/esm2015/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.ngfactory.js +15 -14
  41. package/esm2015/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.ngsummary.json +1 -1
  42. package/esm2015/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.js +3 -2
  43. package/esm2015/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.ngfactory.js +15 -14
  44. package/esm2015/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.ngsummary.json +1 -1
  45. package/esm2015/lib/sharedComponents/program-listing/program-list-model.js +1 -1
  46. package/esm2015/lib/sharedComponents/program-listing/program-listing.component.js +45 -303
  47. package/esm2015/lib/sharedComponents/program-listing/program-listing.component.ngfactory.js +74 -90
  48. package/esm2015/lib/sharedComponents/program-listing/program-listing.component.ngsummary.json +1 -1
  49. package/esm2015/lib/sharedComponents/risk-classification/risk-classification.component.js +1 -1
  50. package/esm2015/lib/sharedComponents/system-task-selector/system-task-selector.component.js +54 -0
  51. package/esm2015/lib/sharedComponents/system-task-selector/system-task-selector.component.ngfactory.js +75 -0
  52. package/esm2015/lib/sharedComponents/system-task-selector/system-task-selector.component.ngsummary.json +1 -0
  53. package/esm2015/lib/sharedComponents/tab-selector/tab-selector.component.js +41 -0
  54. package/esm2015/lib/sharedComponents/tab-selector/tab-selector.component.ngfactory.js +23 -0
  55. package/esm2015/lib/sharedComponents/tab-selector/tab-selector.component.ngsummary.json +1 -0
  56. package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.js +1 -1
  57. package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.js +1 -1
  58. package/esm2015/lib/workflow-assessment/workflow-assessment.component.js +1 -1
  59. package/esm2015/lib/workflow-compliance/workflow-compliance.component.js +132 -231
  60. package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngfactory.js +264 -264
  61. package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngsummary.json +1 -1
  62. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +3 -14
  63. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.js +14 -17
  64. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngsummary.json +1 -1
  65. package/esm2015/lib/workflow-engine.module.js +6 -2
  66. package/esm2015/lib/workflow-engine.module.ngfactory.js +1 -1
  67. package/esm2015/lib/workflow-policy/workflow-policy.component.js +1 -1
  68. package/esm2015/lib/workflow-program/create-program-ui/file-pill/file-pill.component.js +1 -1
  69. package/esm2015/lib/workflow-program/create-program-ui/form-field/form-field.component.js +1 -1
  70. package/esm2015/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.js +1 -1
  71. package/esm2015/lib/workflow-program/workflow-program.component.js +1 -1
  72. package/esm2015/lib/workflow-risk/workflow-risk.component.js +1 -1
  73. package/esm2015/lib/workflow-services/responsibility.service.js +10 -14
  74. package/esm2015/lib/workflow-services/responsibility.service.ngsummary.json +1 -1
  75. package/esm2015/lib/workflow-survey-form/workflow-survey-form.component.js +1 -1
  76. package/esm2015/vcomply-workflow-engine.js +190 -188
  77. package/esm2015/vcomply-workflow-engine.ngsummary.json +1 -1
  78. package/fesm2015/vcomply-workflow-engine.js +378 -691
  79. package/fesm2015/vcomply-workflow-engine.js.map +1 -1
  80. package/lib/interfaces/confirmation-alert.d.ts +0 -1
  81. package/lib/log-an-issue/log-an-issue.component.d.ts +3 -3
  82. package/lib/sharedComponents/assessment-editor/services/validator.service.d.ts +0 -1
  83. package/lib/sharedComponents/floating-bar/floating-bar.component.d.ts +0 -2
  84. package/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.d.ts +1 -0
  85. package/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.d.ts +1 -0
  86. package/lib/sharedComponents/frequency/frequency-container/frequency-container.component.d.ts +1 -0
  87. package/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.d.ts +1 -0
  88. package/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.d.ts +1 -0
  89. package/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.d.ts +1 -0
  90. package/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.d.ts +1 -0
  91. package/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.d.ts +1 -0
  92. package/lib/sharedComponents/program-listing/program-list-model.d.ts +0 -2
  93. package/lib/sharedComponents/program-listing/program-listing.component.d.ts +1 -62
  94. package/lib/sharedComponents/system-task-selector/system-task-selector.component.d.ts +19 -0
  95. package/lib/sharedComponents/system-task-selector/system-task-selector.component.ngfactory.d.ts +1 -0
  96. package/lib/sharedComponents/tab-selector/tab-selector.component.d.ts +17 -0
  97. package/lib/sharedComponents/tab-selector/tab-selector.component.ngfactory.d.ts +1 -0
  98. package/lib/workflow-compliance/workflow-compliance.component.d.ts +13 -108
  99. package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +0 -1
  100. package/lib/workflow-services/responsibility.service.d.ts +2 -2
  101. package/package.json +1 -1
  102. package/vcomply-workflow-engine.d.ts +189 -187
  103. package/vcomply-workflow-engine.metadata.json +1 -1
@@ -195,73 +195,38 @@ export class AddMultipleResponsibilityComponent {
195
195
  }
196
196
  const responsibilityData = this.data.filter((dataElement) => dataElement.length > 0);
197
197
  responsibilityData.forEach((report) => {
198
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20;
199
- let validDate;
198
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
199
+ const validDate = this.compareWithCurrentDate(report[5], report[6]);
200
200
  const validFields = this.checkValidity(report);
201
201
  const validUser = this.returnIds(report[2], 'entrusted_to') ? true : false;
202
- let obj;
203
- if (this.responsibilityBulkUpload.header[3] !== 'Select a Program') {
204
- validDate = this.compareWithCurrentDate(report[4], report[5]);
205
- obj = {
206
- responsibilityName: (_a = report[0]) !== null && _a !== void 0 ? _a : '',
207
- assignor: (_b = report[1]) !== null && _b !== void 0 ? _b : '',
208
- assignee: (_c = report[2]) !== null && _c !== void 0 ? _c : '',
209
- responsibilityCategory: null,
210
- frequency: (_d = report[3]) !== null && _d !== void 0 ? _d : '',
211
- day: (_e = report[4]) !== null && _e !== void 0 ? _e : '',
212
- month: (_f = report[5]) !== null && _f !== void 0 ? _f : '',
213
- responsibilityWindow: (_g = report[6]) !== null && _g !== void 0 ? _g : '',
214
- failedAfter: (_h = report[7]) !== null && _h !== void 0 ? _h : '',
215
- reportClass: (_j = report[8]) !== null && _j !== void 0 ? _j : '',
216
- responsibilityCenter: (_k = report[9]) !== null && _k !== void 0 ? _k : '',
217
- reviewer: (_l = report[10]) !== null && _l !== void 0 ? _l : '',
218
- reviewToBeCompletedWithin: (_m = report[11]) !== null && _m !== void 0 ? _m : '',
219
- reviewWillBeFailedAfter: (_o = report[12]) !== null && _o !== void 0 ? _o : '',
220
- formatForResponsibility: (_p = report[13]) !== null && _p !== void 0 ? _p : '',
221
- notes: (_r = (_q = report[14]) === null || _q === void 0 ? void 0 : _q.toString()) !== null && _r !== void 0 ? _r : '',
222
- documentEvidenceRequired: (_s = report[15]) !== null && _s !== void 0 ? _s : '',
223
- alwaysNotify: (_t = report[16]) !== null && _t !== void 0 ? _t : '',
224
- notifyOnFailure: (_u = report[17]) !== null && _u !== void 0 ? _u : '',
225
- keyResponsibility: (_v = report[18]) !== null && _v !== void 0 ? _v : '',
226
- objective: (_x = (_w = report[19]) === null || _w === void 0 ? void 0 : _w.toString()) !== null && _x !== void 0 ? _x : '',
227
- isValidDueDate: validDate,
228
- isPastDate: this.isPastDate(report[4], report[5]),
229
- checkValidity: validFields,
230
- isValid: (validDate) && (validFields) && (validUser),
231
- isValidUser: (validUser)
232
- };
233
- }
234
- else {
235
- validDate = this.compareWithCurrentDate(report[5], report[6]);
236
- obj = {
237
- responsibilityName: (_y = report[0]) !== null && _y !== void 0 ? _y : '',
238
- assignor: (_z = report[1]) !== null && _z !== void 0 ? _z : '',
239
- assignee: (_0 = report[2]) !== null && _0 !== void 0 ? _0 : '',
240
- responsibilityCategory: (_1 = report[3]) !== null && _1 !== void 0 ? _1 : '',
241
- frequency: (_2 = report[4]) !== null && _2 !== void 0 ? _2 : '',
242
- day: (_3 = report[5]) !== null && _3 !== void 0 ? _3 : '',
243
- month: (_4 = report[6]) !== null && _4 !== void 0 ? _4 : '',
244
- responsibilityWindow: (_5 = report[7]) !== null && _5 !== void 0 ? _5 : '',
245
- failedAfter: (_6 = report[8]) !== null && _6 !== void 0 ? _6 : '',
246
- reportClass: (_7 = report[9]) !== null && _7 !== void 0 ? _7 : '',
247
- responsibilityCenter: (_8 = report[10]) !== null && _8 !== void 0 ? _8 : '',
248
- reviewer: (_9 = report[11]) !== null && _9 !== void 0 ? _9 : '',
249
- reviewToBeCompletedWithin: (_10 = report[12]) !== null && _10 !== void 0 ? _10 : '',
250
- reviewWillBeFailedAfter: (_11 = report[13]) !== null && _11 !== void 0 ? _11 : '',
251
- formatForResponsibility: (_12 = report[14]) !== null && _12 !== void 0 ? _12 : '',
252
- notes: (_14 = (_13 = report[15]) === null || _13 === void 0 ? void 0 : _13.toString()) !== null && _14 !== void 0 ? _14 : '',
253
- documentEvidenceRequired: (_15 = report[16]) !== null && _15 !== void 0 ? _15 : '',
254
- alwaysNotify: (_16 = report[17]) !== null && _16 !== void 0 ? _16 : '',
255
- notifyOnFailure: (_17 = report[18]) !== null && _17 !== void 0 ? _17 : '',
256
- keyResponsibility: (_18 = report[19]) !== null && _18 !== void 0 ? _18 : '',
257
- objective: (_20 = (_19 = report[20]) === null || _19 === void 0 ? void 0 : _19.toString()) !== null && _20 !== void 0 ? _20 : '',
258
- isValidDueDate: validDate,
259
- isPastDate: this.isPastDate(report[5], report[6]),
260
- checkValidity: validFields,
261
- isValid: (validDate) && (validFields) && (validUser),
262
- isValidUser: (validUser)
263
- };
264
- }
202
+ const obj = {
203
+ responsibilityName: (_a = report[0]) !== null && _a !== void 0 ? _a : '',
204
+ assignor: (_b = report[1]) !== null && _b !== void 0 ? _b : '',
205
+ assignee: (_c = report[2]) !== null && _c !== void 0 ? _c : '',
206
+ responsibilityCategory: (_d = report[3]) !== null && _d !== void 0 ? _d : '',
207
+ frequency: (_e = report[4]) !== null && _e !== void 0 ? _e : '',
208
+ day: (_f = report[5]) !== null && _f !== void 0 ? _f : '',
209
+ month: (_g = report[6]) !== null && _g !== void 0 ? _g : '',
210
+ responsibilityWindow: (_h = report[7]) !== null && _h !== void 0 ? _h : '',
211
+ failedAfter: (_j = report[8]) !== null && _j !== void 0 ? _j : '',
212
+ reportClass: (_k = report[9]) !== null && _k !== void 0 ? _k : '',
213
+ responsibilityCenter: (_l = report[10]) !== null && _l !== void 0 ? _l : '',
214
+ reviewer: (_m = report[11]) !== null && _m !== void 0 ? _m : '',
215
+ reviewToBeCompletedWithin: (_o = report[12]) !== null && _o !== void 0 ? _o : '',
216
+ reviewWillBeFailedAfter: (_p = report[13]) !== null && _p !== void 0 ? _p : '',
217
+ formatForResponsibility: (_q = report[14]) !== null && _q !== void 0 ? _q : '',
218
+ notes: (_r = report[15]) !== null && _r !== void 0 ? _r : '',
219
+ documentEvidenceRequired: (_s = report[16]) !== null && _s !== void 0 ? _s : '',
220
+ alwaysNotify: (_t = report[17]) !== null && _t !== void 0 ? _t : '',
221
+ notifyOnFailure: (_u = report[18]) !== null && _u !== void 0 ? _u : '',
222
+ keyResponsibility: (_v = report[19]) !== null && _v !== void 0 ? _v : '',
223
+ objective: (_w = report[20]) !== null && _w !== void 0 ? _w : '',
224
+ isValidDueDate: validDate,
225
+ isPastDate: this.isPastDate(report[5], report[6]),
226
+ checkValidity: validFields,
227
+ isValid: (validDate) && (validFields) && (validUser),
228
+ isValidUser: (validUser)
229
+ };
265
230
  this.responsibilityBulkUpload.reports.push(obj);
266
231
  });
267
232
  // console.log(this.responsibilityBulkUpload.reports)
@@ -429,9 +394,6 @@ export class AddMultipleResponsibilityComponent {
429
394
  this.responsibilityBulkUpload.reports.forEach((report) => {
430
395
  var _a, _b, _c, _d, _e, _f, _g;
431
396
  if (report.isValid) {
432
- if (report.responsibilityCategory === null) {
433
- report.responsibilityCategory = '';
434
- }
435
397
  const rcDetails = this.returnIds(report.responsibilityCenter, 'rc_id');
436
398
  const reviewerDetails = this.returnIds(report.reviewer, 'reviewer');
437
399
  const assignorDetails = (report.assignor) ? this.returnIds(report.assignor, 'assignor') : '';
@@ -719,7 +681,7 @@ AddMultipleResponsibilityComponent.decorators = [
719
681
  { type: Component, args: [{
720
682
  selector: 'app-add-multiple-responsibility',
721
683
  template: "<div class=\"add-multiple-risk\" [attr.id]=\"'scrollReference'\" >\r\n <!-- main container starts here -->\r\n <div class=\"add-multiple-risk-body\">\r\n <div class=\"add-multiple-risk-container\">\r\n <div class=\"image\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/spreadsheet-multiple-category.svg\" alt=\"\" />\r\n </div>\r\n <h4>You can entrust multiple responsibilities in just two easy steps:</h4>\r\n <ul class=\"list\">\r\n <li>Download the template and fill in the details.</li>\r\n <li>Upload the .xlsx file and you\u2019re good to go!</li>\r\n </ul>\r\n\r\n <button class=\"download\" *ngIf=\"downloadStatus === 'NOT_DOWNLOADING'\"\r\n (click)=\"downloadTemplate()\" type=\"button\"><i class=\"icons\">&#xe91b;</i> Download Template</button>\r\n <div class=\"bulk-btn-progress\" *ngIf=\"downloadStatus === 'DOWNLOADING'\">\r\n Download in Progress\r\n <app-line-loader [loaderHeight]=\"'2'\"></app-line-loader>\r\n </div>\r\n <ng-container *ngIf=\"downloadStatus === 'DOWNLOADED'\">\r\n <div class=\"bulk-btn-progress\"><i class=\"icons\">&#xe91c;</i>Download Complete</div>\r\n <div class=\"bulk-btn-again\">\r\n Is the file not downloaded?\r\n <button (click)=\"downloadTemplate()\">Retry Download</button>\r\n </div>\r\n </ng-container>\r\n <p class=\"error-message\" *ngIf=\"isWrongFile || isWrongFormat|| isFileEmpty\"\r\n >{{errorMessage}}</p> \r\n </div>\r\n </div>\r\n</div>\r\n<app-bulk-responsibility-view *ngIf=\"showExcel\"\r\n[responsibilityBulkUpload]=\"responsibilityBulkUpload\"\r\n[fileName]=\"fileName\"\r\n[loader]=\"loader\"\r\n[defaultOwner]=\"defaultOwner\"\r\n(submitResponsibilityBulkUpload)=\"submitResponsibilityBulkUpload()\"\r\n(cancel)=\"reset()\"></app-bulk-responsibility-view>\r\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n\r\n<input type=\"file\" [(ngModel)]=\"fileValue\" id=\"fileInput\" class=\"hidden-input\" accept=\".xlsx\" (change)=\"uploadedFile($event)\" multiple />\r\n<app-smiley-dialog-inline *ngIf=\"showSmiley\" [message]=\"smileyMessage\" [actionButtons]=\"actionButtons\" (action)=\"action($event)\" (closeSmiley)=\"closeSmiley($event)\"></app-smiley-dialog-inline>\r\n",
722
- styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::ng-deep .add-multiple-risk{background:#fff;position:relative;z-index:1}@media only screen and (min-width:1920px){::ng-deep .add-multiple-risk{height:calc(100vh - 200px);display:flex;align-items:center}}::ng-deep .add-multiple-risk-body{padding:0;display:block}::ng-deep .add-multiple-risk-container{display:block;text-align:center}::ng-deep .add-multiple-risk-container .image{width:300px;margin:0 auto 24px}::ng-deep .add-multiple-risk-container h4{font-size:20px;line-height:30px;margin:0 0 20px;font-weight:500}::ng-deep .add-multiple-risk-container ul.list{padding:0;margin:0 0 40px;display:block;counter-reset:my-awesome-counter}::ng-deep .add-multiple-risk-container ul.list li{text-align:left;color:#747576;font-size:15px;line-height:38px;font-weight:400;list-style:none;counter-increment:my-awesome-counter;background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:0 12px}::ng-deep .add-multiple-risk-container ul.list li:before{content:counter(my-awesome-counter) \". \"}::ng-deep .add-multiple-risk-container ul.list li+li{margin-top:4px}::ng-deep .add-multiple-risk-container button.download{background:#fff;height:36px;border-radius:2px;cursor:pointer;border:1px solid #1e5dd3;color:#1e5dd3;text-transform:uppercase;padding:0 30px;font-weight:500;font-size:11px}::ng-deep .add-multiple-risk-container .bulk-btn-progress{background:#f8f8f8;height:36px;border-radius:2px;cursor:pointer;border:1px solid #f8f8f8;color:#747576;text-transform:uppercase;padding:0 30px;font-weight:500;font-size:11px;position:relative;display:inline-block;line-height:34px}::ng-deep .add-multiple-risk-container .bulk-btn-progress i{color:#34aa44;font-size:14px;float:left;position:relative;margin:0 10px 0 0;font-weight:400}::ng-deep .add-multiple-risk-container .bulk-btn-progress span.progress{height:3px;position:absolute;bottom:0;left:0;width:100%;background:#1e5dd3}::ng-deep .add-multiple-risk-container .bulk-btn-again{color:#161b2f;font-size:11px;margin-top:10px}::ng-deep .add-multiple-risk-container .bulk-btn-again button{background:transparent;border:none;padding:0;font-size:11px;color:#1e5dd3;font-weight:500;text-decoration:underline;cursor:pointer;text-transform:uppercase;display:inline-block}.hidden-input{opacity:0}", "@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-left-color:#707070;border-bottom:1px solid #707070;border-right:1px solid #707070;border-top-color:#707070;content:\"\";display:inline-block;right:15px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:116px}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 24px;display:flex;align-items:center}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px;margin-right:20px}::ng-deep .vx-form-group .tab-group .upload-file .browse{display:flex;align-items:center;justify-content:center;width:calc(100% - 100px);text-align:center}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;top:0;margin:0;padding:0;right:0;bottom:0;left:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:12px \u200B24px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#fff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:11px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;width:100%;margin-top:4px;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:16px;font-weight:400;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group .input,::ng-deep .vx-form-group input[type=text]{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group .input::-moz-placeholder,::ng-deep .vx-form-group input[type=text]::-moz-placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group .input:-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group .input::placeholder,::ng-deep .vx-form-group input[type=text]::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group .input:hover,::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group input[type=text]:hover{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .input.error,::ng-deep .vx-form-group input[type=text].error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group .input.error:focus,::ng-deep .vx-form-group input[type=text].error:focus{box-shadow:0 0 5px rgba(211,30,30,.27)}::ng-deep .vx-form-group .input:disabled,::ng-deep .vx-form-group input[type=text]:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::ng-deep .vx-form-group .input:disabled:hover,::ng-deep .vx-form-group input[type=text]:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group .input span.text,::ng-deep .vx-form-group input[type=text] span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group .input .input-group,::ng-deep .vx-form-group input[type=text] .input-group{display:flex;align-items:center}::ng-deep .vx-form-group .input .input-group.counter,::ng-deep .vx-form-group input[type=text] .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group .input .input-group.counter button,::ng-deep .vx-form-group input[type=text] .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group .input .input-group.counter input,::ng-deep .vx-form-group input[type=text] .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}::ng-deep .vx-form-group .input+.file-list,::ng-deep .vx-form-group input[type=text]+.file-list{margin-top:8px}::ng-deep .vx-form-group .input::-moz-placeholder,::ng-deep .vx-form-group input[type=text]::-moz-placeholder{font-size:13px}::ng-deep .vx-form-group .input::placeholder,::ng-deep .vx-form-group input[type=text]::placeholder{font-size:13px}::ng-deep .vx-form-group .input:-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .input::-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{width:100%;position:relative;z-index:1;margin:0 4px 0 0}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#fff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:300px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:1px solid #f1f1f1;border-radius:2px;background:#fff;outline:none;cursor:pointer;display:block;height:24px;padding:0 5px 0 4px;font-size:11px;font-weight:500;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#fff;box-shadow:0 0 5px #1e5dd3;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group marx-editor{margin-top:8px;display:block}::ng-deep .vx-form-group marx-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group marx-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group marx-editor .editor-container:focus-within{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:hover{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:#fff;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::-moz-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:16px;position:absolute;left:12px;top:0;color:#bcbcbc;font-size:16px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:208px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:30px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#fff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 0 #34aa44;-webkit-animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;-webkit-animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;-webkit-animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;top:2px;right:0;bottom:0;left:2px;background:#fff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group input{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@-webkit-keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes strokeCheck{to{stroke-dashoffset:0}}@-webkit-keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}.action-list{width:220px}.action-list ul{padding:0;margin:0;-webkit-animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.action-list ul.action-item{display:block}.action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.action-list ul.action-item li button i{font-size:17px;margin-right:10px;color:#1c5bd1}.action-list ul.action-item li button:hover{background:#f3f3f3}.action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.action-list ul.action-item li .avatar-card.within-con{display:block}.action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#4681ef;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.action-list ul.action-item li .avatar-card .avatar img{width:100%}.action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;-moz-text-align-last:left;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#1c5bd1;cursor:pointer;margin-right:5px}.action-list ul.action-item li .avatar-card.no-image{display:block}.action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.action-list ul.action-item li .chip-item i{margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}.action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.action-list ul.action-item li .chip-item span.id{font-size:9px}.action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.action-list ul.action-item li:first-child{-webkit-animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(2){-webkit-animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(3){-webkit-animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(4){-webkit-animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(5){-webkit-animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(6){-webkit-animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(7){-webkit-animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(8){-webkit-animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(9){-webkit-animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(10){-webkit-animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@-webkit-keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@-webkit-keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@-webkit-keyframes rotate{to{transform:rotate(1turn)}}@keyframes rotate{to{transform:rotate(1turn)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#fff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;top:0;right:0;bottom:0;left:0}dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}dp-date-picker input:focus{outline:none}dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;-webkit-animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}dp-date-picker .dp-popup dp-day-calendar,dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}dp-date-picker .dp-popup dp-day-calendar button,dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays{display:flex;justify-content:space-around}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected{background:#1e5dd3}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}dp-date-picker .dp-open+div{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@-webkit-keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;position:relative;margin-right:5px;border:1px solid #747576;border-top:none;margin-top:5px;background:#fff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576,#747576 1%,#747576 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0 0;background:#fff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39,#f31c39 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.css,::ng-deep span.file.less,::ng-deep span.file.scss,::ng-deep span.file.xls,::ng-deep span.file.xlsx{border-color:#34aa44}::ng-deep span.file.css:before,::ng-deep span.file.less:before,::ng-deep span.file.scss:before,::ng-deep span.file.xls:before,::ng-deep span.file.xlsx:before{background:linear-gradient(45deg,#34aa44,#34aa44 1%,#34aa44 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.css:after,::ng-deep span.file.less:after,::ng-deep span.file.scss:after,::ng-deep span.file.xls:after,::ng-deep span.file.xlsx:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.css .format,::ng-deep span.file.less .format,::ng-deep span.file.scss .format,::ng-deep span.file.xls .format,::ng-deep span.file.xlsx .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3,#1e5dd3 1%,#1e5dd3 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpeg,::ng-deep span.file.jpg,::ng-deep span.file.png,::ng-deep span.file.ppt{border-color:#f6882f}::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.jpg:before,::ng-deep span.file.png:before,::ng-deep span.file.ppt:before{background:linear-gradient(45deg,#f6882f,#f6882f 1%,#f6882f 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.jpg:after,::ng-deep span.file.png:after,::ng-deep span.file.ppt:after{border-color:#f6882f}::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.jpg .format,::ng-deep span.file.png .format,::ng-deep span.file.ppt .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7,#7aa6f7 1%,#7aa6f7 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:rgba(0,0,0,.05)!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:14px solid #f1f1f1;border-bottom:12px solid transparent;border-top:12px solid transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:14px solid #f1f1f1;border-bottom:12px solid transparent;border-top:12px solid transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:calc(224px / 2 - 20px)!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}"]
684
+ styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::ng-deep .add-multiple-risk{background:#fff;position:relative;z-index:1}@media only screen and (min-width:1920px){::ng-deep .add-multiple-risk{height:calc(100vh - 200px);display:flex;align-items:center}}::ng-deep .add-multiple-risk-body{padding:0;display:block}::ng-deep .add-multiple-risk-container{display:block;text-align:center}::ng-deep .add-multiple-risk-container .image{width:300px;margin:0 auto 24px}::ng-deep .add-multiple-risk-container h4{font-size:20px;line-height:30px;margin:0 0 20px;font-weight:500}::ng-deep .add-multiple-risk-container ul.list{padding:0;margin:0 0 40px;display:block;counter-reset:my-awesome-counter}::ng-deep .add-multiple-risk-container ul.list li{text-align:left;color:#747576;font-size:15px;line-height:38px;font-weight:400;list-style:none;counter-increment:my-awesome-counter;background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:0 12px}::ng-deep .add-multiple-risk-container ul.list li:before{content:counter(my-awesome-counter) \". \"}::ng-deep .add-multiple-risk-container ul.list li+li{margin-top:4px}::ng-deep .add-multiple-risk-container button.download{background:#fff;height:36px;border-radius:2px;cursor:pointer;border:1px solid #1e5dd3;color:#1e5dd3;text-transform:uppercase;padding:0 30px;font-weight:500;font-size:11px}::ng-deep .add-multiple-risk-container .bulk-btn-progress{background:#f8f8f8;height:36px;border-radius:2px;cursor:pointer;border:1px solid #f8f8f8;color:#747576;text-transform:uppercase;padding:0 30px;font-weight:500;font-size:11px;position:relative;display:inline-block;line-height:34px}::ng-deep .add-multiple-risk-container .bulk-btn-progress i{color:#34aa44;font-size:14px;float:left;position:relative;margin:0 10px 0 0;font-weight:400}::ng-deep .add-multiple-risk-container .bulk-btn-progress span.progress{height:3px;position:absolute;bottom:0;left:0;width:100%;background:#1e5dd3}::ng-deep .add-multiple-risk-container .bulk-btn-again{color:#161b2f;font-size:11px;margin-top:10px}::ng-deep .add-multiple-risk-container .bulk-btn-again button{background:transparent;border:none;padding:0;font-size:11px;color:#1e5dd3;font-weight:500;text-decoration:underline;cursor:pointer;text-transform:uppercase;display:inline-block}.hidden-input{opacity:0}", "@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-left-color:#707070;border-bottom:1px solid #707070;border-right:1px solid #707070;border-top-color:#707070;content:\"\";display:inline-block;right:15px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:116px}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 24px;display:flex;align-items:center}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px;margin-right:20px}::ng-deep .vx-form-group .tab-group .upload-file .browse{display:flex;align-items:center;justify-content:center;width:calc(100% - 100px);text-align:center}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;top:0;margin:0;padding:0;right:0;bottom:0;left:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:12px \u200B24px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#fff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:11px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;width:100%;margin-top:4px;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:16px;font-weight:400;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group .input,::ng-deep .vx-form-group input[type=text]{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group .input::-moz-placeholder,::ng-deep .vx-form-group input[type=text]::-moz-placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group .input:-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group .input::placeholder,::ng-deep .vx-form-group input[type=text]::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group .input:hover,::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group input[type=text]:hover{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .input.error,::ng-deep .vx-form-group input[type=text].error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group .input.error:focus,::ng-deep .vx-form-group input[type=text].error:focus{box-shadow:0 0 5px rgba(211,30,30,.27)}::ng-deep .vx-form-group .input:disabled,::ng-deep .vx-form-group input[type=text]:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::ng-deep .vx-form-group .input:disabled:hover,::ng-deep .vx-form-group input[type=text]:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group .input span.text,::ng-deep .vx-form-group input[type=text] span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group .input .input-group,::ng-deep .vx-form-group input[type=text] .input-group{display:flex;align-items:center}::ng-deep .vx-form-group .input .input-group.counter,::ng-deep .vx-form-group input[type=text] .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group .input .input-group.counter button,::ng-deep .vx-form-group input[type=text] .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group .input .input-group.counter input,::ng-deep .vx-form-group input[type=text] .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}::ng-deep .vx-form-group .input+.file-list,::ng-deep .vx-form-group input[type=text]+.file-list{margin-top:8px}::ng-deep .vx-form-group .input::-moz-placeholder,::ng-deep .vx-form-group input[type=text]::-moz-placeholder{font-size:13px}::ng-deep .vx-form-group .input::placeholder,::ng-deep .vx-form-group input[type=text]::placeholder{font-size:13px}::ng-deep .vx-form-group .input:-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .input::-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{width:100%;position:relative;z-index:1;margin:0 4px 0 0}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#fff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:300px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:1px solid #f1f1f1;border-radius:2px;background:#fff;outline:none;cursor:pointer;display:block;height:24px;padding:0 5px 0 4px;font-size:11px;font-weight:500;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#fff;box-shadow:0 0 5px #1e5dd3;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group marx-editor{margin-top:8px;display:block}::ng-deep .vx-form-group marx-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group marx-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group marx-editor .editor-container:focus-within{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:hover{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:#fff;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::-moz-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:16px;position:absolute;left:12px;top:0;color:#bcbcbc;font-size:16px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:208px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:30px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#fff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 0 #34aa44;-webkit-animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;-webkit-animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;-webkit-animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;top:2px;right:0;bottom:0;left:2px;background:#fff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group input{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@-webkit-keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes strokeCheck{to{stroke-dashoffset:0}}@-webkit-keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}.action-list{width:220px}.action-list ul{padding:0;margin:0;-webkit-animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.action-list ul.action-item{display:block}.action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.action-list ul.action-item li button i{font-size:17px;margin-right:10px;color:#1c5bd1}.action-list ul.action-item li button:hover{background:#f3f3f3}.action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.action-list ul.action-item li .avatar-card.within-con{display:block}.action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#4681ef;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.action-list ul.action-item li .avatar-card .avatar img{width:100%}.action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;-moz-text-align-last:left;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#1c5bd1;cursor:pointer;margin-right:5px}.action-list ul.action-item li .avatar-card.no-image{display:block}.action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.action-list ul.action-item li .chip-item i{margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}.action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.action-list ul.action-item li .chip-item span.id{font-size:9px}.action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.action-list ul.action-item li:first-child{-webkit-animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(2){-webkit-animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(3){-webkit-animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(4){-webkit-animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(5){-webkit-animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(6){-webkit-animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(7){-webkit-animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(8){-webkit-animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(9){-webkit-animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(10){-webkit-animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@-webkit-keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@-webkit-keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@-webkit-keyframes rotate{to{transform:rotate(1turn)}}@keyframes rotate{to{transform:rotate(1turn)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#fff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;top:0;right:0;bottom:0;left:0}dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}dp-date-picker input:focus{outline:none}dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;-webkit-animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}dp-date-picker .dp-popup dp-day-calendar,dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}dp-date-picker .dp-popup dp-day-calendar button,dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays{display:flex;justify-content:space-around}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected{background:#1e5dd3}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}dp-date-picker .dp-open+div{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@-webkit-keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;position:relative;margin-right:5px;border:1px solid #747576;border-top:none;margin-top:5px;background:#fff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576,#747576 1%,#747576 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0 0;background:#fff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39,#f31c39 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.css,::ng-deep span.file.less,::ng-deep span.file.scss,::ng-deep span.file.xls,::ng-deep span.file.xlsx{border-color:#34aa44}::ng-deep span.file.css:before,::ng-deep span.file.less:before,::ng-deep span.file.scss:before,::ng-deep span.file.xls:before,::ng-deep span.file.xlsx:before{background:linear-gradient(45deg,#34aa44,#34aa44 1%,#34aa44 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.css:after,::ng-deep span.file.less:after,::ng-deep span.file.scss:after,::ng-deep span.file.xls:after,::ng-deep span.file.xlsx:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.css .format,::ng-deep span.file.less .format,::ng-deep span.file.scss .format,::ng-deep span.file.xls .format,::ng-deep span.file.xlsx .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3,#1e5dd3 1%,#1e5dd3 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpeg,::ng-deep span.file.jpg,::ng-deep span.file.png,::ng-deep span.file.ppt{border-color:#f6882f}::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.jpg:before,::ng-deep span.file.png:before,::ng-deep span.file.ppt:before{background:linear-gradient(45deg,#f6882f,#f6882f 1%,#f6882f 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.jpg:after,::ng-deep span.file.png:after,::ng-deep span.file.ppt:after{border-color:#f6882f}::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.jpg .format,::ng-deep span.file.png .format,::ng-deep span.file.ppt .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7,#7aa6f7 1%,#7aa6f7 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:rgba(0,0,0,.05)!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:14px solid #f1f1f1;border-bottom:12px solid transparent;border-top:12px solid transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:14px solid #f1f1f1;border-bottom:12px solid transparent;border-top:12px solid transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:calc(224px / 2 - 20px)!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}"]
723
685
  },] }
724
686
  ];
725
687
  AddMultipleResponsibilityComponent.ctorParameters = () => [
@@ -735,4 +697,4 @@ AddMultipleResponsibilityComponent.propDecorators = {
735
697
  closeWorkflow: [{ type: Output }],
736
698
  disconnectRefresh: [{ type: Output }]
737
699
  };
738
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL2FkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eS9hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQVMsTUFBTSxFQUFFLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQVNwRixNQUFNLE9BQU8sa0NBQWtDO0lBa0Q3QyxZQUNVLFdBQTJCLEVBQzNCLHFCQUE0QyxFQUM1QyxXQUF3QixFQUN4QixnQkFBc0MsRUFDdEMsUUFBeUI7UUFKekIsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFzQjtRQUN0QyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQXREekIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCwwQkFBcUIsR0FBRyxDQUFDLENBQUM7UUFFMUIsNkJBQXdCLEdBQVE7WUFDOUIsTUFBTSxFQUFFLEVBQUU7WUFDVixPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUE7UUFFRCxpQkFBWSxHQUFRO1lBRWxCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLE1BQU0sRUFBRSxFQUFFO1lBQ1YsYUFBYSxFQUFFLEVBQUU7WUFDakIsYUFBYSxFQUFFLEVBQUU7WUFDakIsUUFBUSxFQUFFLEVBQUU7U0FDYixDQUFBO1FBQ0QsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFHdEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV2QixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFDbkIsaUJBQVksR0FBRyxxQkFBcUIsQ0FBQTtRQUNwQyxtQkFBYyxHQUFXLGlCQUFpQixDQUFDO1FBQzNDLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLGlCQUFZLEdBQUcsRUFBRSxDQUFBO1FBQ2pCLGtCQUFhLEdBQUcsbUdBQW1HLENBQUM7UUFDcEgsa0JBQWEsR0FBRztZQUNkLEVBQUUsVUFBVSxFQUFFLCtCQUErQixFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRTtZQUNsRixFQUFFLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFO1NBQ3pJLENBQUM7UUFDRixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsRUFBRSxDQUFDO0lBV25CLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7SUFFbEMsQ0FBQztJQUNELFFBQVE7UUFDTiwyREFBMkQ7UUFDM0QsV0FBVztRQUNYLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzNELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDO1FBQzNELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDdkQsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQixFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDL0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQTtRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUI7UUFDZixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxHQUFHLENBQUMseUJBQXlCLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDckIscUJBQXFCO1FBQ3JCLElBQUk7WUFFRixJQUFJLENBQUMsd0JBQXdCLEdBQUc7Z0JBQzlCLE1BQU0sRUFBRSxFQUFFO2dCQUNWLE9BQU8sRUFBRSxFQUFFO2FBQ1osQ0FBQTtZQUVELElBQUksQ0FBQyxZQUFZLEdBQUc7Z0JBQ2xCLFlBQVksRUFBRSxFQUFFO2dCQUNoQixNQUFNLEVBQUUsRUFBRTtnQkFDVixhQUFhLEVBQUUsRUFBRTtnQkFDakIsYUFBYSxFQUFFLEVBQUU7Z0JBQ2pCLFFBQVEsRUFBRSxFQUFFO2FBRWIsQ0FBQTtZQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUM3RCxJQUFJLFNBQVMsRUFBRTtnQkFDYixTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUNuRTtZQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUMsTUFBTSxNQUFNLEdBQWlCLEtBQUssQ0FBQyxNQUFzQixDQUFDO1lBQzFELGtDQUFrQztZQUNsQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBQzVFLE1BQU0sTUFBTSxHQUFlLElBQUksVUFBVSxFQUFFLENBQUM7WUFDNUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFO2dCQUN6QixNQUFNLElBQUksR0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDckMsTUFBTSxFQUFFLEdBQWtCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQzlELE1BQU0sTUFBTSxHQUFXLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLE1BQU0sT0FBTyxHQUFXLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sRUFBRSxHQUFtQixFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3QyxNQUFNLFFBQVEsR0FBbUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFcEQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUU7b0JBQ3ZDLE1BQU0sRUFBRSxDQUFDO2lCQUNWLENBQVEsQ0FBQztnQkFFVixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQVEsQ0FBQztnQkFDdkUsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQWdCLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzVFLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLEVBQUU7b0JBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsa0dBQWtHLEdBQUcsUUFBUSxDQUFDO29CQUNsSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztvQkFDeEIsT0FBTztpQkFDUjtnQkFFRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQWdCLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEgsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO2dCQUUvRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvQixJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssNEJBQTRCLEVBQUU7b0JBQzVFLElBQUksQ0FBQyxZQUFZLEdBQUcsa0dBQWtHLEdBQUcsUUFBUSxDQUFDO29CQUNsSSxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztvQkFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7b0JBRTFCLE9BQU87aUJBQ1I7Z0JBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUU1QyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUN0RCxJQUFJLENBQUMsWUFBWSxHQUFHLGtHQUFrRyxHQUFHLFFBQVEsQ0FBQztvQkFDbEksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7b0JBQ3hCLE9BQU87aUJBQ1I7Z0JBQ0QsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO29CQUMzQixJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUUsR0FBRyxFQUFFO3dCQUNqQyxNQUFNLFFBQVEsR0FBRzs0QkFDZixJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQzs0QkFDaEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7eUJBQ3hCLENBQUE7d0JBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3FCQUMvQztvQkFDRCxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUUsR0FBRyxFQUFFO3dCQUNqQyxNQUFNLEVBQUUsR0FBRzs0QkFDVCxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQzs0QkFDaEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7NEJBQ2xCLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQzt5QkFDbkMsQ0FBQTt3QkFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQ25DO29CQUNELElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBRSxHQUFHLEVBQUU7d0JBQ25DLE1BQU0sUUFBUSxHQUFHOzRCQUNmLFlBQVksRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDOzRCQUN6QixJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQ2hDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDOzRCQUNsRCxXQUFXLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQzs0QkFDeEIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7eUJBQzFCLENBQUE7d0JBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3FCQUNoRDtvQkFDRCxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUUsR0FBRyxFQUFFO3dCQUNuQyxNQUFNLFFBQVEsR0FBRzs0QkFDZixZQUFZLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQzs0QkFDekIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUNoQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQzs0QkFDbEQsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7eUJBQ3ZCLENBQUE7d0JBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3FCQUNoRDtnQkFFSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RDLElBQUksT0FBTyxFQUFFO29CQUNYLElBQUksQ0FBQyxZQUFZLEdBQUcsd0ZBQXdGLENBQUM7b0JBQzdHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO29CQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztvQkFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7b0JBQzNCLE9BQU87aUJBRVI7cUJBQU07b0JBRUwsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO29CQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztvQkFDM0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2lCQUVuQjtnQkFDRCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBZ0IsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDMUYsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7O29CQUN6QyxJQUFJLFNBQVMsQ0FBQztvQkFDZCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMvQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7b0JBQzFFLElBQUksR0FBUSxDQUFDO29CQUNiLElBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBRyxrQkFBa0IsRUFBQzt3QkFDOUQsU0FBUyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQzlELEdBQUcsR0FBRTs0QkFDSCxrQkFBa0IsRUFBRSxNQUFBLE1BQU0sQ0FBQyxDQUFDLENBQUMsbUNBQUksRUFBRTs0QkFDbkMsUUFBUSxFQUFFLE1BQUEsTUFBTSxDQUFDLENBQUMsQ0FBQyxtQ0FBSSxFQUFFOzRCQUN6QixRQUFRLEVBQUUsTUFBQSxNQUFNLENBQUMsQ0FBQyxDQUFDLG1DQUFJLEVBQUU7NEJBQ3pCLHNCQUFzQixFQUFFLElBQUk7NEJBQzVCLFNBQVMsRUFBRSxNQUFBLE1BQU0sQ0FBQyxDQUFDLENBQUMsbUNBQUksRUFBRTs0QkFDMUIsR0FBRyxFQUFFLE1BQUEsTUFBTSxDQUFDLENBQUMsQ0FBQyxtQ0FBSSxFQUFFOzRCQUNwQixLQUFLLEVBQUUsTUFBQSxNQUFNLENBQUMsQ0FBQyxDQUFDLG1DQUFJLEVBQUU7NEJBQ3RCLG9CQUFvQixFQUFFLE1BQUEsTUFBTSxDQUFDLENBQUMsQ0FBQyxtQ0FBSSxFQUFFOzRCQUNyQyxXQUFXLEVBQUUsTUFBQSxNQUFNLENBQUMsQ0FBQyxDQUFDLG1DQUFJLEVBQUU7NEJBQzVCLFdBQVcsRUFBRSxNQUFBLE1BQU0sQ0FBQyxDQUFDLENBQUMsbUNBQUksRUFBRTs0QkFDNUIsb0JBQW9CLEVBQUUsTUFBQSxNQUFNLENBQUMsQ0FBQyxDQUFDLG1DQUFJLEVBQUU7NEJBQ3JDLFFBQVEsRUFBRSxNQUFBLE1BQU0sQ0FBQyxFQUFFLENBQUMsbUNBQUksRUFBRTs0QkFDMUIseUJBQXlCLEVBQUUsTUFBQSxNQUFNLENBQUMsRUFBRSxDQUFDLG1DQUFJLEVBQUU7NEJBQzNDLHVCQUF1QixFQUFFLE1BQUEsTUFBTSxDQUFDLEVBQUUsQ0FBQyxtQ0FBSSxFQUFFOzRCQUN6Qyx1QkFBdUIsRUFBRSxNQUFBLE1BQU0sQ0FBQyxFQUFFLENBQUMsbUNBQUksRUFBRTs0QkFDekMsS0FBSyxFQUFFLE1BQUEsTUFBQSxNQUFNLENBQUMsRUFBRSxDQUFDLDBDQUFFLFFBQVEsRUFBRSxtQ0FBSSxFQUFFOzRCQUNuQyx3QkFBd0IsRUFBRSxNQUFBLE1BQU0sQ0FBQyxFQUFFLENBQUMsbUNBQUksRUFBRTs0QkFDMUMsWUFBWSxFQUFFLE1BQUEsTUFBTSxDQUFDLEVBQUUsQ0FBQyxtQ0FBSSxFQUFFOzRCQUM5QixlQUFlLEVBQUUsTUFBQSxNQUFNLENBQUMsRUFBRSxDQUFDLG1DQUFJLEVBQUU7NEJBQ2pDLGlCQUFpQixFQUFFLE1BQUEsTUFBTSxDQUFDLEVBQUUsQ0FBQyxtQ0FBSSxFQUFFOzRCQUNuQyxTQUFTLEVBQUUsTUFBQSxNQUFBLE1BQU0sQ0FBQyxFQUFFLENBQUMsMENBQUUsUUFBUSxFQUFFLG1DQUFJLEVBQUU7NEJBRXZDLGNBQWMsRUFBRSxTQUFTOzRCQUN6QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUNqRCxhQUFhLEVBQUUsV0FBVzs0QkFDMUIsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzs0QkFDcEQsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDO3lCQUN6QixDQUFDO3FCQUNIO3lCQUNJO3dCQUNILFNBQVMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUM5RCxHQUFHLEdBQUU7NEJBQ0wsa0JBQWtCLEVBQUUsTUFBQSxNQUFNLENBQUMsQ0FBQyxDQUFDLG1DQUFJLEVBQUU7NEJBQ25DLFFBQVEsRUFBRSxNQUFBLE1BQU0sQ0FBQyxDQUFDLENBQUMsbUNBQUksRUFBRTs0QkFDekIsUUFBUSxFQUFFLE1BQUEsTUFBTSxDQUFDLENBQUMsQ0FBQyxtQ0FBSSxFQUFFOzRCQUN6QixzQkFBc0IsRUFBRSxNQUFBLE1BQU0sQ0FBQyxDQUFDLENBQUMsbUNBQUksRUFBRTs0QkFDdkMsU0FBUyxFQUFFLE1BQUEsTUFBTSxDQUFDLENBQUMsQ0FBQyxtQ0FBSSxFQUFFOzRCQUMxQixHQUFHLEVBQUUsTUFBQSxNQUFNLENBQUMsQ0FBQyxDQUFDLG1DQUFJLEVBQUU7NEJBQ3BCLEtBQUssRUFBRSxNQUFBLE1BQU0sQ0FBQyxDQUFDLENBQUMsbUNBQUksRUFBRTs0QkFDdEIsb0JBQW9CLEVBQUUsTUFBQSxNQUFNLENBQUMsQ0FBQyxDQUFDLG1DQUFJLEVBQUU7NEJBQ3JDLFdBQVcsRUFBRSxNQUFBLE1BQU0sQ0FBQyxDQUFDLENBQUMsbUNBQUksRUFBRTs0QkFDNUIsV0FBVyxFQUFFLE1BQUEsTUFBTSxDQUFDLENBQUMsQ0FBQyxtQ0FBSSxFQUFFOzRCQUM1QixvQkFBb0IsRUFBRSxNQUFBLE1BQU0sQ0FBQyxFQUFFLENBQUMsbUNBQUksRUFBRTs0QkFDdEMsUUFBUSxFQUFFLE1BQUEsTUFBTSxDQUFDLEVBQUUsQ0FBQyxtQ0FBSSxFQUFFOzRCQUMxQix5QkFBeUIsRUFBRSxPQUFBLE1BQU0sQ0FBQyxFQUFFLENBQUMscUNBQUksRUFBRTs0QkFDM0MsdUJBQXVCLEVBQUUsT0FBQSxNQUFNLENBQUMsRUFBRSxDQUFDLHFDQUFJLEVBQUU7NEJBQ3pDLHVCQUF1QixFQUFFLE9BQUEsTUFBTSxDQUFDLEVBQUUsQ0FBQyxxQ0FBSSxFQUFFOzRCQUN6QyxLQUFLLEVBQUUsT0FBQSxPQUFBLE1BQU0sQ0FBQyxFQUFFLENBQUMsNENBQUUsUUFBUSxFQUFFLHFDQUFJLEVBQUU7NEJBQ25DLHdCQUF3QixFQUFFLE9BQUEsTUFBTSxDQUFDLEVBQUUsQ0FBQyxxQ0FBSSxFQUFFOzRCQUMxQyxZQUFZLEVBQUUsT0FBQSxNQUFNLENBQUMsRUFBRSxDQUFDLHFDQUFJLEVBQUU7NEJBQzlCLGVBQWUsRUFBRSxPQUFBLE1BQU0sQ0FBQyxFQUFFLENBQUMscUNBQUksRUFBRTs0QkFDakMsaUJBQWlCLEVBQUUsT0FBQSxNQUFNLENBQUMsRUFBRSxDQUFDLHFDQUFJLEVBQUU7NEJBQ25DLFNBQVMsRUFBRSxPQUFBLE9BQUEsTUFBTSxDQUFDLEVBQUUsQ0FBQyw0Q0FBRSxRQUFRLEVBQUUscUNBQUksRUFBRTs0QkFFdkMsY0FBYyxFQUFFLFNBQVM7NEJBQ3pCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQ2pELGFBQWEsRUFBRSxXQUFXOzRCQUMxQixPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDOzRCQUNwRCxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUM7eUJBQ3pCLENBQUM7cUJBQUM7b0JBQ0gsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xELENBQUMsQ0FBQyxDQUFDO2dCQUNILHFEQUFxRDtnQkFDckQsOEJBQThCO2dCQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztnQkFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2dCQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsdUNBQXVDO1lBQ3ZDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbEI7SUFDSCxDQUFDO0lBQ0QsY0FBYztRQUNaLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBZ0IsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN4QixPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELHFCQUFxQjtJQUVyQixhQUFhLENBQUMsTUFBVztRQUN2QixNQUFNLEVBQUUsR0FBRyxjQUFjLENBQUM7UUFDMUIsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDYixJQUFJLFdBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5RCxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDaEQ7UUFFRDs7Ozs7Ozs7Ozs7V0FXRztRQUNILElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzRixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUYsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2VBQ3ZFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDakMsT0FBTyxLQUFLLENBQUM7U0FDZDthQUFNO1lBQUUsT0FBTyxJQUFJLENBQUE7U0FBRTtJQUN4QixDQUFDO0lBQ0Qsc0JBQXNCLENBQUMsR0FBUSxFQUFFLEtBQVU7O1FBQ3pDLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsTUFBTSxVQUFVLEdBQUc7WUFDakIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDMUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDMUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDMUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDMUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDMUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDMUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDMUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDMUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDMUIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDM0IsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDM0IsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7U0FDNUIsQ0FBQztRQUVGLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQztTQUNiO2FBQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQzFCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7YUFBTTtZQUNMLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFdEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3hKLElBQUksU0FBUyxJQUFJLGNBQWMsRUFBRTtnQkFDL0IsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUVELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFFaEIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ04sTUFBTSxVQUFVLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUU5QixVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxNQUFBLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQUssS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQ0FBRSxLQUFLLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwSSxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNoQyx1REFBdUQ7WUFDdkQsNkZBQTZGO1lBQzdGLFdBQVc7WUFDWCxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsRUFBRTtnQkFFL0csT0FBTyxLQUFLLENBQUM7YUFDZDtpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQzthQUNiO1NBRUY7SUFDSCxDQUFDO0lBQ0QsVUFBVSxDQUFDLEdBQVEsRUFBRSxLQUFVOztRQUM3QixNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRS9CLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQzFCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQzFCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQzFCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQzFCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQzFCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQzFCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQzFCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQzFCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQzFCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQzNCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQzNCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1NBQzVCLENBQUM7UUFFRixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDbkIsT0FBTyxLQUFLLENBQUM7U0FDZDthQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUMxQixPQUFPLEtBQUssQ0FBQztTQUNkO2FBQU07WUFDTCx1REFBdUQ7WUFDdkQsTUFBTSxVQUFVLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM5QixVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxNQUFBLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQUssS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQ0FBRSxLQUFLLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwSSxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNoQyxJQUFJLFdBQVcsR0FBRyxVQUFVLEVBQUU7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsT0FBTyxLQUFLLENBQUM7YUFDZDtTQUNGO0lBRUgsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sWUFBWSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFELE1BQU0sUUFBUSxHQUFHLDRCQUE0QixZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBRTFHLElBQUksQ0FBQyxXQUFXLENBQUMsOEJBQThCLEVBQUUsQ0FBQyxTQUFTLENBQ3pELENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDWixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN6RDtZQUNELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDYixVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDL0YsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ1Y7UUFFSCxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUM7UUFDckMsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsOEJBQThCO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLE1BQU0sT0FBTyxHQUFRLEVBQUUsQ0FBQztRQUN4QixNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxRCxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0MsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTs7WUFDNUQsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO2dCQUNsQixJQUFHLE1BQU0sQ0FBQyxzQkFBc0IsS0FBSyxJQUFJLEVBQUM7b0JBQ3hDLE1BQU0sQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7aUJBQ3BDO2dCQUNELE1BQU0sU0FBUyxHQUFRLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUM1RSxNQUFNLGVBQWUsR0FBUSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ3pFLE1BQU0sZUFBZSxHQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbEcsTUFBTSxTQUFTLEdBQVEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNqRSxNQUFNLGdCQUFnQixHQUFRLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDbEYsTUFBTSxXQUFXLEdBQUcsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUVsRCxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFBO2dCQUN4SixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0csTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxFQUFFLHVCQUF1QixDQUFDLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7Z0JBRS9KLElBQUksWUFBWSxDQUFDO2dCQUNqQixJQUFJLGVBQWUsQ0FBQTtnQkFDbkIsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxNQUFNLENBQUMsb0JBQW9CLEtBQUssRUFBRSxFQUFFO29CQUN0QyxZQUFZLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDO2lCQUM1QztxQkFBTSxJQUFJLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTtvQkFDckQsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUMvRCxZQUFZLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUM1QztnQkFDRCxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUssRUFBRSxFQUFFO29CQUM3QixlQUFlLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztpQkFDdEM7cUJBQU0sSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUU7b0JBQ3JELE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDL0QsZUFBZSxHQUFHLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUNsRDtnQkFDRCxNQUFNLEdBQUcsR0FBRztvQkFDVixNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRO29CQUNsQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGNBQWM7b0JBQ3BDLFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtvQkFDdkUsV0FBVyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDMUosWUFBWSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzdMLFVBQVUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNqRCxXQUFXLEVBQUUsTUFBQSxNQUFNLENBQUMsa0JBQWtCLG1DQUFJLEVBQUU7b0JBQzVDLFlBQVksRUFBRSxNQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQ0FBSSxFQUFFO29CQUNsRCxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQztvQkFDaEUsYUFBYSxFQUFFLE1BQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsbUNBQUksRUFBRTtvQkFDcEUsYUFBYSxFQUFFLFlBQVk7b0JBQzNCLHVCQUF1QixFQUFFLEVBQUU7b0JBQzNCLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxhQUFhLENBQUM7b0JBQ3pFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3hDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3JDLFdBQVcsRUFBRSxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQzdDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQ25ELEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQ3RDLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRTtvQkFDTCxpQkFBaUIsRUFBRSxjQUFjO29CQUNqQyxlQUFlLEVBQUUsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzdDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxTQUFTO29CQUN2QyxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLFdBQVc7b0JBQ2hFLFVBQVUsRUFBRSxNQUFBLE1BQU0sQ0FBQyxXQUFXLG1DQUFJLEVBQUU7b0JBQ3BDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN6SCxPQUFPLEVBQUUsQ0FBQztvQkFDVixPQUFPLEVBQUUsTUFBQSxNQUFNLENBQUMsS0FBSyxtQ0FBSSxFQUFFO29CQUMzQixPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUN6QyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNqRCxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDOUQsYUFBYSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2pFLGFBQWEsRUFBRSxFQUFFO29CQUNqQixvQkFBb0IsRUFBRSxDQUFDLGFBQWEsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZO29CQUNoRSxZQUFZLEVBQUUsZUFBZTtvQkFDN0IsZ0JBQWdCLEVBQUUsRUFBRTtvQkFDcEIsa0JBQWtCLEVBQUUsQ0FBQyxNQUFNLENBQUMsd0JBQXdCLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdkUsU0FBUyxFQUFFLENBQUM7b0JBQ1osZ0JBQWdCLEVBQUUsQ0FBQztvQkFDbkIsa0JBQWtCLEVBQUUsQ0FBQztvQkFDckIsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDLGlCQUFpQixLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7b0JBQ2xFLGNBQWMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1RCxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1RCxZQUFZLEVBQUUsQ0FBRSxlQUFlLElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBRSxDQUFBLENBQUMsQ0FBQzt3QkFDL0QsTUFBTSxFQUFFOzRCQUNOLFNBQVMsRUFBRSxDQUFDO29DQUNWLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7b0NBQzNELGVBQWUsRUFBRSxDQUFDO2lDQUNuQixDQUFDOzRCQUNGLElBQUksRUFBRSxZQUFZO3lCQUNuQjtxQkFDRixDQUFBLENBQUMsQ0FBQSxFQUFFO29CQUVKLGNBQWMsRUFBRSxNQUFNLENBQUMseUJBQXlCLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyx5QkFBeUI7b0JBQzlGLGVBQWUsRUFBRSxNQUFNLENBQUMsdUJBQXVCLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyx1QkFBdUI7b0JBQzNGLGNBQWMsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQzVELHVCQUF1QixFQUFFLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUM3RixtQkFBbUIsRUFBRSxNQUFBLE1BQU0sQ0FBQyxLQUFLLG1DQUFJLEVBQUU7b0JBQ3ZDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxDQUFDLHdCQUF3QixLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzFFLFNBQVMsRUFBRSxNQUFBLE1BQU0sQ0FBQyxTQUFTLG1DQUFJLEVBQUU7b0JBQ2pDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxZQUFZO29CQUNuQyxRQUFRLEVBQUUsS0FBSztvQkFDZixXQUFXLEVBQUUsSUFBSTtpQkFFbEIsQ0FBQTtnQkFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBRW5CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMscUJBQXFCLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDL0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsQ0FBQztRQUVoQyxDQUFDLEVBQ0MsR0FBRyxDQUFDLEVBQUU7WUFDSixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGtHQUFrRyxDQUFDLENBQUM7UUFDekgsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBR0QsU0FBUyxDQUFDLElBQVMsRUFBRSxHQUFXO1FBQzlCLFFBQVEsR0FBRyxFQUFFO1lBQ1gsS0FBSyxPQUFPO2dCQUNWLElBQUksS0FBSyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDakQsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUU7b0JBQ25ELElBQUksVUFBVSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUU7d0JBQzNCLElBQUksSUFBSSxDQUFDO3dCQUNULElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7NEJBQ3hDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTt5QkFDOUM7NkJBQU07NEJBQ0wsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7eUJBQ3hCO3dCQUNELEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO3FCQUMzRTtnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLEtBQUssQ0FBQTtnQkFDWixNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLElBQUksV0FBVyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDekQsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBb0IsRUFBRSxFQUFFO29CQUMvRCxJQUFJLGVBQWUsQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFO3dCQUN4QyxXQUFXLEdBQUc7NEJBQ1osSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJOzRCQUMxQixVQUFVLEVBQUUsZUFBZSxDQUFDLFlBQVk7NEJBQ3hDLEtBQUssRUFBRSxlQUFlLENBQUMsS0FBSzt5QkFDN0IsQ0FBQTtxQkFDRjtnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLFdBQVcsQ0FBQztnQkFFbkIsTUFBTTtZQUNSLEtBQUssVUFBVTtnQkFDYixJQUFJLFdBQVcsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGVBQW9CLEVBQUUsRUFBRTtvQkFDL0QsSUFBSSxlQUFlLENBQUMsWUFBWSxJQUFJLElBQUksRUFBRTt3QkFDeEMsV0FBVyxHQUFHOzRCQUNaLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSTs0QkFDMUIsS0FBSyxFQUFFLGVBQWUsQ0FBQyxLQUFLOzRCQUM1QixRQUFRLEVBQUUsZUFBZSxDQUFDLFNBQVM7eUJBQ3BDLENBQUE7cUJBQ0Y7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxXQUFXLENBQUM7Z0JBRW5CLE1BQU07WUFDUixLQUFLLElBQUk7Z0JBQ1AsSUFBSSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFBO2dCQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFjLEVBQUUsRUFBRTtvQkFDekQsSUFBSSxTQUFTLENBQUMsWUFBWSxJQUFJLElBQUksRUFBRTt3QkFDbEMsS0FBSyxHQUFHOzRCQUNOLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTs0QkFDcEIsVUFBVSxFQUFFLFNBQVMsQ0FBQyxXQUFXOzRCQUNqQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUs7eUJBQ3ZCLENBQUE7cUJBQ0Y7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxLQUFLLENBQUM7Z0JBQ2IsTUFBTTtZQUNSLEtBQUssV0FBVztnQkFDZCxJQUFJLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO29CQUMxRCxJQUFJLFVBQVUsQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFO3dCQUNuQyxNQUFNLEdBQUc7NEJBQ1AsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJOzRCQUNyQixVQUFVLEVBQUUsVUFBVSxDQUFDLFdBQVc7NEJBQ2xDLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSzt5QkFDeEIsQ0FBQTtxQkFDRjtnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLE1BQU0sQ0FBQztnQkFDZCxNQUFNO1lBRVIsS0FBSyxjQUFjO2dCQUNqQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUE7Z0JBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBYyxFQUFFLEVBQUU7b0JBQ3pELElBQUksU0FBUyxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUU7d0JBRWxDLEtBQUssR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDO3FCQUMvQjtnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLEtBQUssQ0FBQTtnQkFDWixNQUFNO1lBQ1IsS0FBSyxhQUFhO2dCQUNoQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUE7Z0JBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7b0JBQ3ZELElBQUksUUFBUSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUU7d0JBQ3pCLEtBQUssR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO3FCQUM5QjtnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLEtBQUssQ0FBQztnQkFDYixNQUFNO1lBRVIsS0FBSyxZQUFZO2dCQUVmLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRTtvQkFDakIsT0FBTyxDQUFDLENBQUE7aUJBQ1Q7cUJBQU0sSUFBSSxJQUFJLElBQUksWUFBWSxFQUFFO29CQUMvQixPQUFPLENBQUMsQ0FBQTtpQkFDVDtxQkFBTSxJQUFJLElBQUksSUFBSSxhQUFhLEVBQUU7b0JBQ2hDLE9BQU8sQ0FBQyxDQUFBO2lCQUNUO3FCQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sRUFBRTtvQkFDekIsT0FBTyxDQUFDLENBQUE7aUJBQ1Q7cUJBQU07b0JBQ0wsT0FBTyxDQUFDLENBQUE7aUJBQ1Q7Z0JBQ0QsTUFBTTtTQUNUO0lBRUgsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsd0JBQXdCLEdBQUc7WUFDOUIsTUFBTSxFQUFFLEVBQUU7WUFDVixPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUE7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHO1lBQ2xCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLE1BQU0sRUFBRSxFQUFFO1lBQ1YsYUFBYSxFQUFFLEVBQUU7WUFDakIsYUFBYSxFQUFFLEVBQUU7WUFDakIsUUFBUSxFQUFFLEVBQUU7U0FFYixDQUFBO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFMUIsQ0FBQztJQUNELE1BQU0sQ0FBQyxLQUFhO1FBQ2xCLFFBQVEsS0FBSyxFQUFFO1lBQ2IsS0FBSyxTQUFTO2dCQUNaLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDYixNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUM1QixNQUFNO1NBQ1Q7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVU7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxHQUFXLENBQUM7UUFDaEIsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsWUFBWSxHQUFHLDJEQUEyRCxDQUFDO1NBQzVFO2FBQU07WUFDTCxZQUFZLEdBQUcsb0NBQW9DLENBQUM7U0FDckQ7UUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNoRCxHQUFHLEdBQUcsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLGdCQUFnQixHQUFHLFlBQVksQ0FBQztTQUMxRTthQUFNO1lBQ0wsR0FBRyxHQUFHLFVBQVUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxnQkFBZ0IsR0FBRyxZQUFZLENBQUM7U0FDM0U7UUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDN0IsQ0FBQztJQUVELDRCQUE0QjtJQUM1QixVQUFVO1FBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BDLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLHFCQUFxQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNyRSxJQUFJLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxRQUFRLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzdCO1lBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFdEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ1AsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxrR0FBa0csQ0FBQyxDQUFDO1FBRXpILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBM3ZCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlDQUFpQztnQkFDM0MsMjlFQUEyRDs7YUFFNUQ7OztZQVhRLGNBQWM7WUFHZCxxQkFBcUI7WUFGckIsV0FBVztZQUNYLG9CQUFvQjtZQUhwQixlQUFlOzs7NEJBY3JCLE1BQU07NkJBQ04sTUFBTTs0QkFDTixNQUFNO2dDQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBZGRSaXNrU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2FkZC1yaXNrLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEZyZXF1ZW5jeUJ1bGtTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvZnJlcXVlbmN5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZXNwb25zaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy9yZXNwb25zaWJpbGl0eS5zZXJ2aWNlJztcclxuXHJcbnR5cGUgQU9BID0gYW55W11bXTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWFkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LmNvbXBvbmVudC5sZXNzJywgJy4uL2Zvcm1zLmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZE11bHRpcGxlUmVzcG9uc2liaWxpdHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBPdXRwdXQoKSBwaWNrZXJDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwb3B1bGF0ZU9wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgaXNOb3RpZmljYXRpb25QZW5kaW5nID0gMDtcclxuXHJcbiAgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkOiBhbnkgPSB7XHJcbiAgICBoZWFkZXI6IFtdLFxyXG4gICAgcmVwb3J0czogW10sXHJcbiAgfVxyXG5cclxuICB0ZW1wbGF0ZUluZm86IGFueSA9IHtcclxuXHJcbiAgICBjYXRlZ29yeUxpc3Q6IFtdLFxyXG4gICAgcmNMaXN0OiBbXSxcclxuICAgIGFzc2lnbm9yc0xpc3Q6IFtdLFxyXG4gICAgYXNzaWduZWVzTGlzdDogW10sXHJcbiAgICBtZW1iZXJJZDogJydcclxuICB9XHJcbiAgaXNMb2FkZXIgPSBmYWxzZTtcclxuICBzaG93Q2F0ZWdvcnlMaXN0ID0gZmFsc2U7XHJcbiAgdGVtcGxhdGVEb3dubG9hZGVkID0gZmFsc2U7XHJcbiAgZG93bmxvYWRJblByb2dyZXNzID0gZmFsc2U7XHJcbiAgbG9hZGVyID0gZmFsc2U7XHJcbiAgaXNGaWxlRW1wdHkgPSBmYWxzZTtcclxuICBpc1dyb25nRmlsZSA9IGZhbHNlO1xyXG4gIGlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcclxuICBmaWxlTmFtZTogYW55O1xyXG4gIGRhdGE6IGFueTtcclxuICBzaG93RXhjZWwgPSBmYWxzZTtcclxuICB1cGxvYWRlZEZpbGVzOiBhbnkgPSBbXTtcclxuICBmaWxlUmVzcG9uc2U6IGFueSA9IFtdO1xyXG4gIGZpbGVWYWx1ZTogYW55O1xyXG4gIG1lbWJlcklkID0gMDtcclxuICBvcmdhbml6YXRpb25JZCA9IDA7XHJcbiAgZXJyb3JNZXNzYWdlID0gXCIgaW52YWxpZCBmaWxlIGVycm9yXCJcclxuICBkb3dubG9hZFN0YXR1czogc3RyaW5nID0gJ05PVF9ET1dOTE9BRElORyc7XHJcbiAgZG93bmxvYWRQZXJjZW50ID0gMDtcclxuICBkZWZhdWx0T3duZXIgPSAnJ1xyXG4gIHNtaWxleU1lc3NhZ2UgPSBgWW91J3JlIEFsbCBTZXQhIFdlJ3JlIHByb2Nlc3NpbmcgeW91ciByZXF1ZXN0IGFuZCB5b3Ugd2lsbCBiZSBub3RpZmllZCB2aWEgZW1haWwgdXBvbiBjb21wbGV0aW9uLmA7XHJcbiAgYWN0aW9uQnV0dG9ucyA9IFtcclxuICAgIHsgYnV0dG9uVGV4dDogJ0VudHJ1c3QgTW9yZSBSZXNwb25zaWJpbGl0aWVzJywgY2xhc3M6ICd3aGl0ZS1idG4nLCBpZDogJ2FkZE1vcmUnIH0sXHJcbiAgICB7IGJ1dHRvblRleHQ6ICh0aGlzLmlzTm90aWZpY2F0aW9uUGVuZGluZykgPyAnVmlldyBSZXNwb25zaWJpbGl0aWVzIEluIFF1ZXVlJyA6ICdWaWV3IFJlc3BvbnNpYmlsaXRpZXMnLCBjbGFzczogJ2JsdWUtYnRuJywgaWQ6ICd2aWV3JyB9LFxyXG4gIF07XHJcbiAgc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gIG1lbWJlcl9vYmpfaWQgPSAnJztcclxuICByaXNrQ2xhc3NFbmFibGVkOiBhbnk7XHJcbiAgdXNlckluZm8gITogYW55O1xyXG4gIHJlc3BvbnNpYmlsaXR5RGF0YSAhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJpc2tTZXJ2aWNlOiBBZGRSaXNrU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVzcG9uc2liaWxpdHlTZXJ2aWNlOiBSZXNwb25zaWJpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgZnJlcXVlbmN5U2VydmljZTogRnJlcXVlbmN5QnVsa1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBTbmFja0JhclNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuXHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gY29uc3QgdGVzdCA9IHRoaXMuY29tcGFyZVdpdGhDdXJyZW50RGF0ZSgxLCBcIkp1bHknMjFcIikgO1xyXG4gICAgLy8gZGVidWdnZXJcclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuXHJcbiAgICB0aGlzLm9yZ2FuaXphdGlvbklkID0gdGhpcy5hdXRoU2VydmljZS5nZXRPcmdhbml6YXRpb25JZCgpO1xyXG4gICAgdGhpcy5tZW1iZXJJZCA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0TWVtYmVySWQoKTtcclxuICAgIHRoaXMubWVtYmVyX29ial9pZCA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0VXNlckRldGFpbHMoKS5faWQ7XHJcbiAgICB0aGlzLnVzZXJJbmZvID0gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyRGV0YWlscygpLnVzZXI7XHJcbiAgICB0aGlzLmRlZmF1bHRPd25lciA9ICh0aGlzLnVzZXJJbmZvKSA/IHRoaXMudXNlckluZm8ubmFtZSArICcgKCcgKyB0aGlzLnVzZXJJbmZvLmVtYWlsICsgJyknIDogJyc7XHJcbiAgICB0aGlzLmdldFVzZXJEZXRhaWxzKCk7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbkRldGFpbHMoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMucmlza0NsYXNzRW5hYmxlZCA9IHJlcy5lbmFibGVfcmlza2NsYXNzXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRyaWdnZXJCcm93c2VGaWxlKCkge1xyXG4gICAgY29uc3QgZ2V0RmlsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWxlSW5wdXQnKTtcclxuICAgIGlmIChnZXRGaWxlKSB7XHJcbiAgICAgIGdldEZpbGUuY2xpY2soKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0VXNlckRldGFpbHMoKSB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXJJbmZvKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmlzTm90aWZpY2F0aW9uUGVuZGluZyA9IHJlcy5ub3RpZmljYXRpb25fcGVuZGluZ19mbGFnO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHVwbG9hZGVkRmlsZShldmVudDogYW55KSB7XHJcbiAgICAvLyB0aGlzLnRlc3RhcnJheT1bXTtcclxuICAgIHRyeSB7XHJcblxyXG4gICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZCA9IHtcclxuICAgICAgICBoZWFkZXI6IFtdLFxyXG4gICAgICAgIHJlcG9ydHM6IFtdLFxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnRlbXBsYXRlSW5mbyA9IHtcclxuICAgICAgICBjYXRlZ29yeUxpc3Q6IFtdLFxyXG4gICAgICAgIHJjTGlzdDogW10sXHJcbiAgICAgICAgYXNzaWdub3JzTGlzdDogW10sXHJcbiAgICAgICAgYXNzaWduZWVzTGlzdDogW10sXHJcbiAgICAgICAgbWVtYmVySWQ6ICcnXHJcblxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IFtdO1xyXG4gICAgICBjb25zdCByZWZlcmVuY2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc2Nyb2xsUmVmZXJlbmNlJyk7XHJcbiAgICAgIGlmIChyZWZlcmVuY2UpIHtcclxuICAgICAgICByZWZlcmVuY2Uuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnY2VudGVyJyB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlzRmlsZUVtcHR5ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNXcm9uZ0ZpbGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZmlsZU5hbWUgPSBldmVudC50YXJnZXQuZmlsZXNbMF0ubmFtZTtcclxuICAgICAgdGhpcy51cGxvYWRlZEZpbGVzLnB1c2goZXZlbnQudGFyZ2V0LmZpbGVzKTtcclxuICAgICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSBldmVudC50YXJnZXQgYXMgRGF0YVRyYW5zZmVyO1xyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGN1cmx5XHJcbiAgICAgIGlmICh0YXJnZXQuZmlsZXMubGVuZ3RoICE9PSAxKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1c2UgbXVsdGlwbGUgZmlsZXMnKTtcclxuICAgICAgY29uc3QgcmVhZGVyOiBGaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnJlYWQoYnN0ciwgeyB0eXBlOiAnYmluYXJ5JyB9KTtcclxuICAgICAgICBjb25zdCB3c25hbWU6IHN0cmluZyA9IHdiLlNoZWV0TmFtZXNbMF07XHJcbiAgICAgICAgY29uc3Qgd3NuYW1lMTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1sxXTtcclxuICAgICAgICBjb25zdCB3czogWExTWC5Xb3JrU2hlZXQgPSB3Yi5TaGVldHNbd3NuYW1lXTtcclxuICAgICAgICBjb25zdCB0ZW1wRGF0YTogWExTWC5Xb3JrU2hlZXQgPSB3Yi5TaGVldHNbd3NuYW1lMV07XHJcblxyXG4gICAgICAgIHRoaXMuZGF0YSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbih3cywge1xyXG4gICAgICAgICAgaGVhZGVyOiAxLFxyXG4gICAgICAgIH0pIGFzIEFPQTtcclxuXHJcbiAgICAgICAgY29uc3QgdERhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24odGVtcERhdGEsIHsgaGVhZGVyOiAxIH0pIGFzIEFPQTtcclxuICAgICAgICBjb25zdCB0ZW1wTGlzdCA9IHREYXRhLmZpbHRlcigoZGF0YUVsZW1lbnQ6IGFueSkgPT4gZGF0YUVsZW1lbnQubGVuZ3RoID4gMCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsZU5hbWUuc3Vic3RyKC01KSAhPT0gJy54bHN4Jykge1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnVGhlIGluY29ycmVjdCBmaWxlIGhhcyBiZWVuIHVwbG9hZGVkLiBQbGVhc2UgdXBsb2FkIHRoZSB0ZW1wbGF0ZSB3aGljaCB5b3UgZG93bmxvYWRlZCBmcm9tIGhlcmUuJyArICcgUkVUUlknO1xyXG4gICAgICAgICAgdGhpcy5pc1dyb25nRmlsZSA9IHRydWU7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZC5oZWFkZXIgPSBjbG9uZURlZXAodGhpcy5kYXRhWzBdLmZpbHRlcigoZGF0YUVsZW1lbnQ6IGFueSkgPT4gZGF0YUVsZW1lbnQubGVuZ3RoID4gMCkpO1xyXG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkLmhlYWRlci5zcGxpY2UodGhpcy5yZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQuaGVhZGVyLmxlbmd0aCAtIDEsIDEpXHJcblxyXG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YS5zbGljZSgyKTtcclxuICAgICAgICBpZiAodGhpcy5yZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQuaGVhZGVyWzBdICE9PSAnRW50ZXIgUmVzcG9uc2liaWxpdHkgTmFtZSonKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdUaGUgaW5jb3JyZWN0IGZpbGUgaGFzIGJlZW4gdXBsb2FkZWQuIFBsZWFzZSB1cGxvYWQgdGhlIHRlbXBsYXRlIHdoaWNoIHlvdSBkb3dubG9hZGVkIGZyb20gaGVyZS4nICsgJyBSRVRSWSc7XHJcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8ubWVtYmVySWQgPSB0ZW1wTGlzdFswXVsyNV1cclxuXHJcbiAgICAgICAgaWYgKCh0aGlzLm1lbWJlcl9vYmpfaWQgIT0gdGhpcy50ZW1wbGF0ZUluZm8ubWVtYmVySWQpKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdUaGUgaW5jb3JyZWN0IGZpbGUgaGFzIGJlZW4gdXBsb2FkZWQuIFBsZWFzZSB1cGxvYWQgdGhlIHRlbXBsYXRlIHdoaWNoIHlvdSBkb3dubG9hZGVkIGZyb20gaGVyZS4nICsgJyBSRVRSWSc7XHJcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGaWxlID0gdHJ1ZTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGVtcExpc3QuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnRbMl0gJiYgZWxlbWVudFsyXSE9JyAnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0ge1xyXG4gICAgICAgICAgICAgIG5hbWU6IGVsZW1lbnRbMl0sXHJcbiAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6IGVsZW1lbnRbM11cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlSW5mby5jYXRlZ29yeUxpc3QucHVzaChjYXRlZ29yeSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZWxlbWVudFs5XSAmJiBlbGVtZW50WzldIT0nICcpIHtcclxuICAgICAgICAgICAgY29uc3QgcmMgPSB7XHJcbiAgICAgICAgICAgICAgbmFtZTogZWxlbWVudFs5XSxcclxuICAgICAgICAgICAgICByY19pZDogZWxlbWVudFsxMF0sXHJcbiAgICAgICAgICAgICAgcGFyZW50SWRzOiBKU09OLnBhcnNlKGVsZW1lbnRbMTNdKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLnJjTGlzdC5wdXNoKHJjKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChlbGVtZW50WzExXSAmJiBlbGVtZW50WzExXSE9JyAnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFzc2lnbmVlID0ge1xyXG4gICAgICAgICAgICAgIG5hbWVBbmRFbWFpbDogZWxlbWVudFsxMV0sXHJcbiAgICAgICAgICAgICAgbmFtZTogZWxlbWVudFsxMV0uc3BsaXQoJyAoJylbMF0sXHJcbiAgICAgICAgICAgICAgZW1haWw6IGVsZW1lbnRbMTFdLnNwbGl0KCcgKCcpWzFdLnJlcGxhY2UoJyknLCAnJyksXHJcbiAgICAgICAgICAgICAgZW1wbG95ZWVfaWQ6IGVsZW1lbnRbMTJdLFxyXG4gICAgICAgICAgICAgIG15X21lbWJlcl9pZDogZWxlbWVudFsxNl1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlSW5mby5hc3NpZ25lZXNMaXN0LnB1c2goYXNzaWduZWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnRbMTRdICYmIGVsZW1lbnRbMTRdIT0nICcpIHtcclxuICAgICAgICAgICAgY29uc3QgYXNzaWdub3IgPSB7XHJcbiAgICAgICAgICAgICAgbmFtZUFuZEVtYWlsOiBlbGVtZW50WzE0XSxcclxuICAgICAgICAgICAgICBuYW1lOiBlbGVtZW50WzE0XS5zcGxpdCgnICgnKVswXSxcclxuICAgICAgICAgICAgICBlbWFpbDogZWxlbWVudFsxNF0uc3BsaXQoJyAoJylbMV0ucmVwbGFjZSgnKScsICcnKSxcclxuICAgICAgICAgICAgICBtZW1iZXJfaWQ6IGVsZW1lbnRbMTVdLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLmFzc2lnbm9yc0xpc3QucHVzaChhc3NpZ25vcik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IGlzRW1wdHkgPSB0aGlzLmNoZWNrRW1wdHlGaWxlKCk7XHJcbiAgICAgICAgaWYgKGlzRW1wdHkpIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIGEgYmxhbmsgdGVtcGxhdGUuIFBsZWFzZSBhZGQgZGV0YWlscyBmb3IgYWxsIG1hbmRhdG9yeSBmaWVsZHMuIFJFVFJZJztcclxuICAgICAgICAgIHRoaXMuaXNGaWxlRW1wdHkgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5pc1dyb25nRmlsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gZmFsc2U7XHJcbiAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgICAgdGhpcy5pc0ZpbGVFbXB0eSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc1dyb25nRmlsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmZpbGVVcGxvYWQoKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNpYmlsaXR5RGF0YSA9IHRoaXMuZGF0YS5maWx0ZXIoKGRhdGFFbGVtZW50OiBhbnkpID0+IGRhdGFFbGVtZW50Lmxlbmd0aCA+IDApO1xyXG4gICAgICAgIHJlc3BvbnNpYmlsaXR5RGF0YS5mb3JFYWNoKChyZXBvcnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbGlkRGF0ZTtcclxuICAgICAgICAgIGNvbnN0IHZhbGlkRmllbGRzID0gdGhpcy5jaGVja1ZhbGlkaXR5KHJlcG9ydCk7XHJcbiAgICAgICAgICBjb25zdCB2YWxpZFVzZXIgPSB0aGlzLnJldHVybklkcyhyZXBvcnRbMl0sICdlbnRydXN0ZWRfdG8nKSA/IHRydWUgOiBmYWxzZVxyXG4gICAgICAgICAgbGV0IG9iajogYW55O1xyXG4gICAgICAgICAgaWYodGhpcy5yZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQuaGVhZGVyWzNdIT09J1NlbGVjdCBhIFByb2dyYW0nKXtcclxuICAgICAgICAgICAgdmFsaWREYXRlID0gdGhpcy5jb21wYXJlV2l0aEN1cnJlbnREYXRlKHJlcG9ydFs0XSwgcmVwb3J0WzVdKTtcclxuICAgICAgICAgICAgb2JqPSB7XHJcbiAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHlOYW1lOiByZXBvcnRbMF0gPz8gJycsXHJcbiAgICAgICAgICAgICAgYXNzaWdub3I6IHJlcG9ydFsxXSA/PyAnJyxcclxuICAgICAgICAgICAgICBhc3NpZ25lZTogcmVwb3J0WzJdID8/ICcnLFxyXG4gICAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnk6IG51bGwsXHJcbiAgICAgICAgICAgICAgZnJlcXVlbmN5OiByZXBvcnRbM10gPz8gJycsXHJcbiAgICAgICAgICAgICAgZGF5OiByZXBvcnRbNF0gPz8gJycsXHJcbiAgICAgICAgICAgICAgbW9udGg6IHJlcG9ydFs1XSA/PyAnJyxcclxuICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eVdpbmRvdzogcmVwb3J0WzZdID8/ICcnLFxyXG4gICAgICAgICAgICAgIGZhaWxlZEFmdGVyOiByZXBvcnRbN10gPz8gJycsXHJcbiAgICAgICAgICAgICAgcmVwb3J0Q2xhc3M6IHJlcG9ydFs4XSA/PyAnJyxcclxuICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlcjogcmVwb3J0WzldID8/ICcnLFxyXG4gICAgICAgICAgICAgIHJldmlld2VyOiByZXBvcnRbMTBdID8/ICcnLFxyXG4gICAgICAgICAgICAgIHJldmlld1RvQmVDb21wbGV0ZWRXaXRoaW46IHJlcG9ydFsxMV0gPz8gJycsXHJcbiAgICAgICAgICAgICAgcmV2aWV3V2lsbEJlRmFpbGVkQWZ0ZXI6IHJlcG9ydFsxMl0gPz8gJycsXHJcbiAgICAgICAgICAgICAgZm9ybWF0Rm9yUmVzcG9uc2liaWxpdHk6IHJlcG9ydFsxM10gPz8gJycsXHJcbiAgICAgICAgICAgICAgbm90ZXM6IHJlcG9ydFsxNF0/LnRvU3RyaW5nKCkgPz8gJycsXHJcbiAgICAgICAgICAgICAgZG9jdW1lbnRFdmlkZW5jZVJlcXVpcmVkOiByZXBvcnRbMTVdID8/ICcnLFxyXG4gICAgICAgICAgICAgIGFsd2F5c05vdGlmeTogcmVwb3J0WzE2XSA/PyAnJyxcclxuICAgICAgICAgICAgICBub3RpZnlPbkZhaWx1cmU6IHJlcG9ydFsxN10gPz8gJycsXHJcbiAgICAgICAgICAgICAga2V5UmVzcG9uc2liaWxpdHk6IHJlcG9ydFsxOF0gPz8gJycsXHJcbiAgICAgICAgICAgICAgb2JqZWN0aXZlOiByZXBvcnRbMTldPy50b1N0cmluZygpID8/ICcnLFxyXG5cclxuICAgICAgICAgICAgICBpc1ZhbGlkRHVlRGF0ZTogdmFsaWREYXRlLFxyXG4gICAgICAgICAgICAgIGlzUGFzdERhdGU6IHRoaXMuaXNQYXN0RGF0ZShyZXBvcnRbNF0sIHJlcG9ydFs1XSksXHJcbiAgICAgICAgICAgICAgY2hlY2tWYWxpZGl0eTogdmFsaWRGaWVsZHMsXHJcbiAgICAgICAgICAgICAgaXNWYWxpZDogKHZhbGlkRGF0ZSkgJiYgKHZhbGlkRmllbGRzKSAmJiAodmFsaWRVc2VyKSxcclxuICAgICAgICAgICAgICBpc1ZhbGlkVXNlcjogKHZhbGlkVXNlcilcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB2YWxpZERhdGUgPSB0aGlzLmNvbXBhcmVXaXRoQ3VycmVudERhdGUocmVwb3J0WzVdLCByZXBvcnRbNl0pO1xyXG4gICAgICAgICAgICBvYmo9IHtcclxuICAgICAgICAgICAgcmVzcG9uc2liaWxpdHlOYW1lOiByZXBvcnRbMF0gPz8gJycsXHJcbiAgICAgICAgICAgIGFzc2lnbm9yOiByZXBvcnRbMV0gPz8gJycsXHJcbiAgICAgICAgICAgIGFzc2lnbmVlOiByZXBvcnRbMl0gPz8gJycsXHJcbiAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnk6IHJlcG9ydFszXSA/PyAnJyxcclxuICAgICAgICAgICAgZnJlcXVlbmN5OiByZXBvcnRbNF0gPz8gJycsXHJcbiAgICAgICAgICAgIGRheTogcmVwb3J0WzVdID8/ICcnLFxyXG4gICAgICAgICAgICBtb250aDogcmVwb3J0WzZdID8/ICcnLFxyXG4gICAgICAgICAgICByZXNwb25zaWJpbGl0eVdpbmRvdzogcmVwb3J0WzddID8/ICcnLFxyXG4gICAgICAgICAgICBmYWlsZWRBZnRlcjogcmVwb3J0WzhdID8/ICcnLFxyXG4gICAgICAgICAgICByZXBvcnRDbGFzczogcmVwb3J0WzldID8/ICcnLFxyXG4gICAgICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlcjogcmVwb3J0WzEwXSA/PyAnJyxcclxuICAgICAgICAgICAgcmV2aWV3ZXI6IHJlcG9ydFsxMV0gPz8gJycsXHJcbiAgICAgICAgICAgIHJldmlld1RvQmVDb21wbGV0ZWRXaXRoaW46IHJlcG9ydFsxMl0gPz8gJycsXHJcbiAgICAgICAgICAgIHJldmlld1dpbGxCZUZhaWxlZEFmdGVyOiByZXBvcnRbMTNdID8/ICcnLFxyXG4gICAgICAgICAgICBmb3JtYXRGb3JSZXNwb25zaWJpbGl0eTogcmVwb3J0WzE0XSA/PyAnJyxcclxuICAgICAgICAgICAgbm90ZXM6IHJlcG9ydFsxNV0/LnRvU3RyaW5nKCkgPz8gJycsXHJcbiAgICAgICAgICAgIGRvY3VtZW50RXZpZGVuY2VSZXF1aXJlZDogcmVwb3J0WzE2XSA/PyAnJyxcclxuICAgICAgICAgICAgYWx3YXlzTm90aWZ5OiByZXBvcnRbMTddID8/ICcnLFxyXG4gICAgICAgICAgICBub3RpZnlPbkZhaWx1cmU6IHJlcG9ydFsxOF0gPz8gJycsXHJcbiAgICAgICAgICAgIGtleVJlc3BvbnNpYmlsaXR5OiByZXBvcnRbMTldID8/ICcnLFxyXG4gICAgICAgICAgICBvYmplY3RpdmU6IHJlcG9ydFsyMF0/LnRvU3RyaW5nKCkgPz8gJycsXHJcblxyXG4gICAgICAgICAgICBpc1ZhbGlkRHVlRGF0ZTogdmFsaWREYXRlLFxyXG4gICAgICAgICAgICBpc1Bhc3REYXRlOiB0aGlzLmlzUGFzdERhdGUocmVwb3J0WzVdLCByZXBvcnRbNl0pLFxyXG4gICAgICAgICAgICBjaGVja1ZhbGlkaXR5OiB2YWxpZEZpZWxkcyxcclxuICAgICAgICAgICAgaXNWYWxpZDogKHZhbGlkRGF0ZSkgJiYgKHZhbGlkRmllbGRzKSAmJiAodmFsaWRVc2VyKSxcclxuICAgICAgICAgICAgaXNWYWxpZFVzZXI6ICh2YWxpZFVzZXIpXHJcbiAgICAgICAgICB9O31cclxuICAgICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkLnJlcG9ydHMucHVzaChvYmopO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMucmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkLnJlcG9ydHMpXHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy50ZXN0YXJyYXkpXHJcbiAgICAgICAgdGhpcy5pc0ZpbGVFbXB0eSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNXcm9uZ0ZpbGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3dFeGNlbCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5maWxlVmFsdWUgPSAnJztcclxuICAgICAgfTtcclxuICAgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyh0YXJnZXQuZmlsZXNbMF0pO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWNvbnNvbGVcclxuICAgICAgY29uc29sZS5lcnJvcihlKTtcclxuICAgIH1cclxuICB9XHJcbiAgY2hlY2tFbXB0eUZpbGUoKSB7XHJcbiAgICBsZXQgaXNFbXB0eSA9IGZhbHNlO1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhLmZpbHRlcigoZGF0YUVsZW1lbnQ6IGFueSkgPT4gZGF0YUVsZW1lbnQubGVuZ3RoID4gMCk7XHJcbiAgICBpZiAodGhpcy5kYXRhLmxlbmd0aCA8IDEpIHtcclxuICAgICAgaXNFbXB0eSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNFbXB0eTtcclxuICB9XHJcblxyXG4gIC8vIHRlc3RhcnJheTphbnlbXT1bXVxyXG5cclxuICBjaGVja1ZhbGlkaXR5KHJlcG9ydDogYW55KSB7XHJcbiAgICBjb25zdCByZSA9IC8mbmJzcDt8PGJyPi9nO1xyXG4gICAgaWYgKHJlcG9ydFswXSkge1xyXG4gICAgICB2YXIgdHJpbW1lZE5hbWUgPSByZXBvcnRbMF0udG9TdHJpbmcoKS5yZXBsYWNlKHJlLCAnJykudHJpbSgpO1xyXG4gICAgICB0cmltbWVkTmFtZSA9IHRyaW1tZWROYW1lLnJlcGxhY2UoLyAgKy9nLCAnICcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogIGluZGV4ICAgICAgICAgICBrZXkgZm9yXHJcbiAgICAgKlxyXG4gICAgICogIHJlcG9ydFsxXSAgICAgICBPbiBCZWhhbGYgb2YgdXNlclxyXG4gICAgICogIHJlcG9ydFsxMV0gICAgICBSZXZpZXdlclxyXG4gICAgICogIHJlcG9ydFsxN10gICAgICBBbHdheXMgTm90aWZ5XHJcbiAgICAgKiAgcmVwb3J0WzE4XSAgICAgIE5vdGlmeSBPbiBGYWlsdXJlXHJcbiAgICAgKiAgcmVwb3J0WzJdICAgICAgIEFzc2lnbmVlXHJcbiAgICAgKiAgcmVwb3J0WzRdICAgICAgIGZyZXF1ZW5jeVxyXG4gICAgICogIHRyaW1tZWROYW1lICAgICBSZXBvcnQgbmFtZVxyXG4gICAgICogIGRlZmF1bHRPd25lciAgICBEZWZhdWx0IEFzc2lnbm9yXHJcbiAgICAgKi9cclxuICAgIGlmICgoIXRyaW1tZWROYW1lKSB8fCAocmVwb3J0WzFdICYmICggKHJlcG9ydFsxXSA9PSByZXBvcnRbMTddKSB8fCAocmVwb3J0WzFdID09IHJlcG9ydFsxOF0pKSkgfHxcclxuICAgICAgKCghcmVwb3J0WzFdKSAmJiAoICh0aGlzLmRlZmF1bHRPd25lciA9PSByZXBvcnRbMTddKSB8fCAodGhpcy5kZWZhdWx0T3duZXIgPT0gcmVwb3J0WzE4XSkpKSB8fFxyXG4gICAgICAocmVwb3J0WzJdICYmICgocmVwb3J0WzJdID09IHJlcG9ydFsxMV0pIHx8IChyZXBvcnRbMl0gPT0gcmVwb3J0WzE3XSkgfHwgKHJlcG9ydFsyXSA9PSByZXBvcnRbMThdKSkpIHx8XHJcbiAgICAgICgoIXJlcG9ydFsyXSkgJiYgKCh0aGlzLmRlZmF1bHRPd25lciA9PSByZXBvcnRbMTddKSB8fCAodGhpcy5kZWZhdWx0T3duZXIgPT0gcmVwb3J0WzE4XSkpKSB8fFxyXG4gICAgICAocmVwb3J0WzExXSAmJiAoKHJlcG9ydFsxMV0gPT0gcmVwb3J0WzE3XSkgfHwgKHJlcG9ydFsxMV0gPT0gcmVwb3J0WzE4XSkpKVxyXG4gICAgICB8fCAoIXJlcG9ydFsyXSkgfHwgKCFyZXBvcnRbNF0pKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7IHJldHVybiB0cnVlIH1cclxuICB9XHJcbiAgY29tcGFyZVdpdGhDdXJyZW50RGF0ZShkYXk6IGFueSwgbW9udGg6IGFueSkge1xyXG4gICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgbW9udGhOYW1lcyA9IFtcclxuICAgICAgeyB2YWx1ZTogMSwgbW9udGg6ICdKYW4nIH0sXHJcbiAgICAgIHsgdmFsdWU6IDIsIG1vbnRoOiAnRmViJyB9LFxyXG4gICAgICB7IHZhbHVlOiAzLCBtb250aDogJ01hcicgfSxcclxuICAgICAgeyB2YWx1ZTogNCwgbW9udGg6ICdBcHInIH0sXHJcbiAgICAgIHsgdmFsdWU6IDUsIG1vbnRoOiAnTWF5JyB9LFxyXG4gICAgICB7IHZhbHVlOiA2LCBtb250aDogJ0p1bicgfSxcclxuICAgICAgeyB2YWx1ZTogNywgbW9udGg6ICdKdWwnIH0sXHJcbiAgICAgIHsgdmFsdWU6IDgsIG1vbnRoOiAnQXVnJyB9LFxyXG4gICAgICB7IHZhbHVlOiA5LCBtb250aDogJ1NlcCcgfSxcclxuICAgICAgeyB2YWx1ZTogMTAsIG1vbnRoOiAnT2N0JyB9LFxyXG4gICAgICB7IHZhbHVlOiAxMSwgbW9udGg6ICdOb3YnIH0sXHJcbiAgICAgIHsgdmFsdWU6IDEyLCBtb250aDogJ0RlYycgfSxcclxuICAgIF07XHJcblxyXG4gICAgaWYgKCEoZGF5IHx8IG1vbnRoKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSBpZiAoIShkYXkgJiYgbW9udGgpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IG1vbnRoQW5kWWVhciA9IG1vbnRoLnNwbGl0KFwiJ1wiKTtcclxuXHJcbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG1vbWVudChkYXkgKyAnLScgKyBtb250aEFuZFllYXJbMF0gKyAnLScgKyAyMCArIG1vbnRoQW5kWWVhclsxXSArICcgMDA6MDA6MDAnLCAnREQtTU1NTS1ZWVlZIEhIOm1tOnNzJykuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJyk7XHJcbiAgICAgIGlmIChzdGFydERhdGUgPT0gXCJJbnZhbGlkIGRhdGVcIikge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcblxyXG4gICAgICB9LCA1KTtcclxuICAgICAgY29uc3QgZGF0ZV92YWx1ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgICBkYXRlX3ZhbHVlLnNldE1vbnRoKHR5cGVvZiBtb250aCAhPT0gJ251bWJlcicgPyBtb250aE5hbWVzLmZpbHRlcigoeCkgPT4geC5tb250aCA9PT0gbW9udGg/LnN1YnN0cmluZygwLCAzKSlbMF0/LnZhbHVlIC0gMSA6IG1vbnRoKTtcclxuICAgICAgZGF0ZV92YWx1ZS5zZXRGdWxsWWVhcihOdW1iZXIoMjAgKyBtb250aC5zcGxpdChcIidcIilbMV0pKTtcclxuICAgICAgZGF0ZV92YWx1ZS5zZXREYXRlKE51bWJlcihkYXkpKTtcclxuICAgICAgLy8gY29uc3QgcmVwb3J0RGF0ZSA9IG5ldyBEYXRlKGRheSArIG1vbnRoLnNwbGl0KFwiJ1wiKSk7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKChjdXJyZW50RGF0ZS50b0pTT04oKS5zcGxpdCgnVCcpWzBdKStcIiYmXCIrKGRhdGVfdmFsdWUudG9KU09OKCkuc3BsaXQoJ1QnKVswXSkpXHJcbiAgICAgIC8vIGRlYnVnZ2VyXHJcbiAgICAgIGlmICgoKGN1cnJlbnREYXRlLnRvSlNPTigpLnNwbGl0KCdUJylbMF0pICE9IChkYXRlX3ZhbHVlLnRvSlNPTigpLnNwbGl0KCdUJylbMF0pKSAmJiAoY3VycmVudERhdGUgPiBkYXRlX3ZhbHVlKSkge1xyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgfVxyXG4gIGlzUGFzdERhdGUoZGF5OiBhbnksIG1vbnRoOiBhbnkpIHtcclxuICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuXHJcbiAgICBjb25zdCBtb250aE5hbWVzID0gW1xyXG4gICAgICB7IHZhbHVlOiAxLCBtb250aDogJ0phbicgfSxcclxuICAgICAgeyB2YWx1ZTogMiwgbW9udGg6ICdGZWInIH0sXHJcbiAgICAgIHsgdmFsdWU6IDMsIG1vbnRoOiAnTWFyJyB9LFxyXG4gICAgICB7IHZhbHVlOiA0LCBtb250aDogJ0FwcicgfSxcclxuICAgICAgeyB2YWx1ZTogNSwgbW9udGg6ICdNYXknIH0sXHJcbiAgICAgIHsgdmFsdWU6IDYsIG1vbnRoOiAnSnVuJyB9LFxyXG4gICAgICB7IHZhbHVlOiA3LCBtb250aDogJ0p1bCcgfSxcclxuICAgICAgeyB2YWx1ZTogOCwgbW9udGg6ICdBdWcnIH0sXHJcbiAgICAgIHsgdmFsdWU6IDksIG1vbnRoOiAnU2VwJyB9LFxyXG4gICAgICB7IHZhbHVlOiAxMCwgbW9udGg6ICdPY3QnIH0sXHJcbiAgICAgIHsgdmFsdWU6IDExLCBtb250aDogJ05vdicgfSxcclxuICAgICAgeyB2YWx1ZTogMTIsIG1vbnRoOiAnRGVjJyB9LFxyXG4gICAgXTtcclxuXHJcbiAgICBpZiAoIShkYXkgfHwgbW9udGgpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAoIShkYXkgJiYgbW9udGgpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIGNvbnN0IHJlcG9ydERhdGUgPSBuZXcgRGF0ZShkYXkgKyBtb250aC5zcGxpdChcIidcIikpO1xyXG4gICAgICBjb25zdCBkYXRlX3ZhbHVlID0gbmV3IERhdGUoKTtcclxuICAgICAgZGF0ZV92YWx1ZS5zZXRNb250aCh0eXBlb2YgbW9udGggIT09ICdudW1iZXInID8gbW9udGhOYW1lcy5maWx0ZXIoKHgpID0+IHgubW9udGggPT09IG1vbnRoPy5zdWJzdHJpbmcoMCwgMykpWzBdPy52YWx1ZSAtIDEgOiBtb250aCk7XHJcbiAgICAgIGRhdGVfdmFsdWUuc2V0RnVsbFllYXIoTnVtYmVyKDIwICsgbW9udGguc3BsaXQoXCInXCIpWzFdKSk7XHJcbiAgICAgIGRhdGVfdmFsdWUuc2V0RGF0ZShOdW1iZXIoZGF5KSk7XHJcbiAgICAgIGlmIChjdXJyZW50RGF0ZSA+IGRhdGVfdmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFRlbXBsYXRlKCkge1xyXG4gICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9ICdET1dOTE9BRElORyc7XHJcbiAgICB0aGlzLmRvd25sb2FkUGVyY2VudCA9IDA7XHJcbiAgICBjb25zdCBkb3dubG9hZERhdGUgPSBuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpLnNwbGl0KCcgJyk7XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9IGBFbnRydXN0IFJlc3BvbnNpYmlsaXRpZXMtJHtkb3dubG9hZERhdGVbMl19LSR7ZG93bmxvYWREYXRlWzFdfS0ke2Rvd25sb2FkRGF0ZVszXX0ueGxzeGA7XHJcblxyXG4gICAgdGhpcy5yaXNrU2VydmljZS5kb3dubG9hZFJlc3BvbnNpYmlsaXR5VGVtcGxhdGUoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YS5sb2FkZWQpIHtcclxuICAgICAgICAgIHRoaXMuZG93bmxvYWRQZXJjZW50ID0gMTAwICogKGRhdGEubG9hZGVkIC8gZGF0YS50b3RhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkYXRhLmJvZHkpIHtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRvd25sb2FkU3RhdHVzID0gdGhpcy5yaXNrU2VydmljZS5kb3duTG9hZEZpbGUoZGF0YS5ib2R5LCAnYXBwbGljYXRpb24veGxzeCcsIGZpbGVOYW1lKTtcclxuICAgICAgICAgIH0sIDE1MDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIHRoaXMuZG93bmxvYWRTdGF0dXMgPSAnRE9XTkxPQURFRCc7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRSZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQoKSB7XHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGZyZXF1ZW5jeVR5cGVBcnJheSA9IFsnMScsICcyJywgJzMnLCAnNCcsICc3JywgJzAnXTtcclxuICAgIGNvbnN0IGRlZmF1bHRXaW5kb3cgPSBbMCwgMiwgNywgMzAsIDcsIDE1XTtcclxuICAgIGNvbnN0IGRlZmF1bHRGYWlsZWREYXkgPSBbMSwgMiwgNSwgNSwgNSwgNV07XHJcblxyXG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQucmVwb3J0cy5mb3JFYWNoKChyZXBvcnQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVwb3J0LmlzVmFsaWQpIHtcclxuICAgICAgICBpZihyZXBvcnQucmVzcG9uc2liaWxpdHlDYXRlZ29yeSA9PT0gbnVsbCl7XHJcbiAgICAgICAgICByZXBvcnQucmVzcG9uc2liaWxpdHlDYXRlZ29yeSA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCByY0RldGFpbHM6IGFueSA9IHRoaXMucmV0dXJuSWRzKHJlcG9ydC5yZXNwb25zaWJpbGl0eUNlbnRlciwgJ3JjX2lkJyk7XHJcbiAgICAgICAgY29uc3QgcmV2aWV3ZXJEZXRhaWxzOiBhbnkgPSB0aGlzLnJldHVybklkcyhyZXBvcnQucmV2aWV3ZXIsICdyZXZpZXdlcicpO1xyXG4gICAgICAgIGNvbnN0IGFzc2lnbm9yRGV0YWlsczogYW55ID0gKHJlcG9ydC5hc3NpZ25vcikgPyB0aGlzLnJldHVybklkcyhyZXBvcnQuYXNzaWdub3IsICdhc3NpZ25vcicpIDogJyc7XHJcbiAgICAgICAgY29uc3QgY2NEZXRhaWxzOiBhbnkgPSB0aGlzLnJldHVybklkcyhyZXBvcnQuYWx3YXlzTm90aWZ5LCAnY2MnKTtcclxuICAgICAgICBjb25zdCBjY0ZhaWx1cmVEZXRhaWxzOiBhbnkgPSB0aGlzLnJldHVybklkcyhyZXBvcnQubm90aWZ5T25GYWlsdXJlLCAnY2NGYWlsdXJlJyk7XHJcbiAgICAgICAgY29uc3QgY3VycmVudERhdGUgPSBtb21lbnQoKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuXHJcbiAgICAgICAgY29uc3QgY2F0ZWdvcnlOYW1lID0gKHJlcG9ydC5yZXNwb25zaWJpbGl0eUNhdGVnb3J5LmluY2x1ZGVzKCdbV0lUSElOXScpKSA/IHJlcG9ydC5yZXNwb25zaWJpbGl0eUNhdGVnb3J5LnNwbGl0KCcgWycpWzBdIDogcmVwb3J0LnJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnlcclxuICAgICAgICBjb25zdCBmcmVxdWVuY3lWYWx1ZSA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5zaG9ydEhhbmRfZnJlcUNhbChyZXBvcnQuZnJlcXVlbmN5LCByZXBvcnQuZGF5LCByZXBvcnQubW9udGgpO1xyXG4gICAgICAgIGNvbnN0IGRhdGVBbmRNb250aCA9IHJlcG9ydC5tb250aC5zcGxpdChcIidcIik7XHJcbiAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gbW9tZW50KHJlcG9ydC5kYXkgKyAnLScgKyBkYXRlQW5kTW9udGhbMF0gKyAnLScgKyAyMCArIGRhdGVBbmRNb250aFsxXSArICcgMDA6MDA6MDAnLCAnREQtTU1NTS1ZWVlZIEhIOm1tOnNzJykuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJyk7XHJcblxyXG4gICAgICAgIGxldCBjb21wbGV0ZURheXM7XHJcbiAgICAgICAgbGV0IG5vdENvbXBsZXRlRGF5c1xyXG4gICAgICAgIGNvbnN0IGZyZXF1ZW5jeVR5cGUgPSBmcmVxdWVuY3lWYWx1ZS5zcGxpdCgnficpWzBdO1xyXG4gICAgICAgIGlmIChyZXBvcnQucmVzcG9uc2liaWxpdHlXaW5kb3cgIT09ICcnKSB7XHJcbiAgICAgICAgICBjb21wbGV0ZURheXMgPSByZXBvcnQucmVzcG9uc2liaWxpdHlXaW5kb3c7XHJcbiAgICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3lUeXBlQXJyYXkuaW5jbHVkZXMoZnJlcXVlbmN5VHlwZSkpIHtcclxuICAgICAgICAgIGNvbnN0IGluZGV4T2ZBcnJheSA9IGZyZXF1ZW5jeVR5cGVBcnJheS5pbmRleE9mKGZyZXF1ZW5jeVR5cGUpO1xyXG4gICAgICAgICAgY29tcGxldGVEYXlzID0gZGVmYXVsdFdpbmRvd1tpbmRleE9mQXJyYXldO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVwb3J0LmZhaWxlZEFmdGVyICE9PSAnJykge1xyXG4gICAgICAgICAgbm90Q29tcGxldGVEYXlzID0gcmVwb3J0LmZhaWxlZEFmdGVyO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5VHlwZUFycmF5LmluY2x1ZGVzKGZyZXF1ZW5jeVR5cGUpKSB7XHJcbiAgICAgICAgICBjb25zdCBpbmRleE9mQXJyYXkgPSBmcmVxdWVuY3lUeXBlQXJyYXkuaW5kZXhPZihmcmVxdWVuY3lUeXBlKTtcclxuICAgICAgICAgIG5vdENvbXBsZXRlRGF5cyA9IGRlZmF1bHRGYWlsZWREYXlbaW5kZXhPZkFycmF5XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgb2JqID0ge1xyXG4gICAgICAgICAgdXNlcklkOiB0aGlzLnRlbXBsYXRlSW5mby5tZW1iZXJJZCxcclxuICAgICAgICAgIG9yZ2FuaXNhdGlvbl9pZDogdGhpcy5vcmdhbml6YXRpb25JZCxcclxuICAgICAgICAgIG1lbWJlcl9pZDogKGFzc2lnbm9yRGV0YWlscykgPyBhc3NpZ25vckRldGFpbHMubWVtYmVySWQgOiB0aGlzLm1lbWJlcklkLFxyXG4gICAgICAgICAgbWVtYmVyX25hbWU6IChhc3NpZ25vckRldGFpbHMpID8gKChyZXBvcnQuYXNzaWdub3IpID8gcmVwb3J0LmFzc2lnbm9yLnNwbGl0KCcgKCcpWzBdIDogJycpIDogKCh0aGlzLmRlZmF1bHRPd25lcikgPyB0aGlzLmRlZmF1bHRPd25lci5zcGxpdCgnICgnKVswXSA6ICcnKSxcclxuICAgICAgICAgIG1lbWJlcl9lbWFpbDogKGFzc2lnbm9yRGV0YWlscykgPyAoKHJlcG9ydC5hc3NpZ25vcikgPyByZXBvcnQuYXNzaWdub3Iuc3BsaXQoJyAoJylbMV0ucmVwbGFjZSgnKScsICcnKSA6ICcnKSA6ICgodGhpcy5kZWZhdWx0T3duZXIpID8gdGhpcy5kZWZhdWx0T3duZXIuc3BsaXQoJyAoJylbMV0ucmVwbGFjZSgnKScsICcnKSA6ICcnKSxcclxuICAgICAgICAgIGNyZWF0ZWRfYnk6IChhc3NpZ25vckRldGFpbHMpID8gdGhpcy5tZW1iZXJJZCA6IDAsXHJcbiAgICAgICAgICByZXBvcnRfbmFtZTogcmVwb3J0LnJlc3BvbnNpYmlsaXR5TmFtZSA/PyAnJyxcclxuICAgICAgICAgIGVudHJ1c3RlZF90bzogcmVwb3J0LmFzc2lnbmVlLnNwbGl0KCcgKCcpWzBdID8/ICcnLFxyXG4gICAgICAgICAgZW50cnVzdGVkX3RvX2lkOiB0aGlzLnJldHVybklkcyhyZXBvcnQuYXNzaWduZWUsICdlbnRydXN0ZWRfdG8nKSxcclxuICAgICAgICAgIGVtYWlsX2FkZHJlc3M6IHJlcG9ydC5hc3NpZ25lZS5zcGxpdCgnICgnKVsxXS5yZXBsYWNlKCcpJywgJycpID8/ICcnLFxyXG4gICAgICAgICAgY2F0ZWdvcnlfbmFtZTogY2F0ZWdvcnlOYW1lLFxyXG4gICAgICAgICAgY2F0ZWdvcnlfbmFtZV93aXRoX3RyZWU6ICcnLFxyXG4gICAgICAgICAgY2F0ZWdvcnlfaWQ6IHRoaXMucmV0dXJuSWRzKHJlcG9ydC5yZXNwb25zaWJpbGl0eUNhdGVnb3J5LCAnY2F0ZWdvcnlfaWQnKSxcclxuICAgICAgICAgIHJjX25hbWU6IHJjRGV0YWlscyA/IHJjRGV0YWlscy5uYW1lIDogJycsXHJcbiAgICAgICAgICByY19pZDogcmNEZXRhaWxzID8gcmNEZXRhaWxzLnJjSWQgOiAwLFxyXG4gICAgICAgICAgZW50aXR5X3RyZWU6IChyY0RldGFpbHMgJiYgcmNEZXRhaWxzLnJjSWQgKSA/IFt7XHJcbiAgICAgICAgICAgIHBhcmVudF9yY19pZHM6IHJjRGV0YWlscyA/IHJjRGV0YWlscy5wYXJlbnRJZHMgOiBbXSxcclxuICAgICAgICAgICAgcmNfaWQ6IHJjRGV0YWlscyA/IHJjRGV0YWlscy5yY0lkIDogMFxyXG4gICAgICAgICAgfV06W10sXHJcbiAgICAgICAgICBmcmVxdWVuY3lfaGFuZGxlcjogZnJlcXVlbmN5VmFsdWUsXHJcbiAgICAgICAgICBjb21wbGlhbmNlX3R5cGU6IGZyZXF1ZW5jeVZhbHVlLnNwbGl0KCd+JylbMF0sXHJcbiAgICAgICAgICBmcmVxdWVuY3lfZGVzY3JpcHRpb246IHJlcG9ydC5mcmVxdWVuY3ksXHJcbiAgICAgICAgICBzdGFydF9kYXRlOiAocmVwb3J0LmRheSkgPyBzdGFydERhdGUgOiBjdXJyZW50RGF0ZSArICcgMDA6MDA6MDAnLFxyXG4gICAgICAgICAgcmlza19jbGFzczogcmVwb3J0LnJlcG9ydENsYXNzID8/ICcnLFxyXG4gICAgICAgICAgcmlza19jbGFzc0lkOiAocmVwb3J0LnJlcG9ydENsYXNzKSA/IHRoaXMucmV0dXJuSWRzKHJlcG9ydC5yZXBvcnRDbGFzcywgJ3Jpc2tfY2xhc3MnKSA6ICgodGhpcy5yaXNrQ2xhc3NFbmFibGVkKSA/IDEgOiAyKSxcclxuICAgICAgICAgIGRvY191dGM6IDAsXHJcbiAgICAgICAgICBjb21tZW50OiByZXBvcnQubm90ZXMgPz8gJycsXHJcbiAgICAgICAgICBjY19tYWlsOiBjY0RldGFpbHMgPyBjY0RldGFpbHMuZW1haWwgOiAnJyxcclxuICAgICAgICAgIGNjX21haWxfaWQ6IGNjRGV0YWlscyA/IGNjRGV0YWlscy5lbXBsb3llZUlkIDogJycsXHJcbiAgICAgICAgICBjY19mYWlsZWRfbWFpbDogY2NGYWlsdXJlRGV0YWlscyA/IGNjRmFpbHVyZURldGFpbHMuZW1haWwgOiAnJyxcclxuICAgICAgICAgIGNjX2ZhaWx1cmVfaWQ6IGNjRmFpbHVyZURldGFpbHMgPyBjY0ZhaWx1cmVEZXRhaWxzLmVtcGxveWVlSWQgOiAwLFxyXG4gICAgICAgICAgc2VuZF9yZW1pbmRlcjogXCJcIixcclxuICAgICAgICAgIHJlc3BvbnNpYmlsaXR5V2luZG93OiAoZnJlcXVlbmN5VHlwZSA9PT0gJzEnKSA/IDAgOiBjb21wbGV0ZURheXMsXHJcbiAgICAgICAgICBmYWlsZWRfYWZ0ZXI6IG5vdENvbXBsZXRlRGF5cyxcclxuICAgICAgICAgIGV4Y2VsX3NoZWV0X25hbWU6IFwiXCIsXHJcbiAgICAgICAgICByZXBvcnRfdXBsb2FkX2ZsYWc6IChyZXBvcnQuZG9jdW1lbnRFdmlkZW5jZVJlcXVpcmVkID09PSAnWWVzJykgPyAxIDogMCxcclxuICAgICAgICAgIHJlcG9ydF9pZDogMCxcclxuICAgICAgICAgIGlzX2Fzc2lnbmVkX2ZsYWc6IDAsXHJcbiAgICAgICAgICBwcml2YXRlX2xpYnJhcnlfaWQ6IDAsXHJcbiAgICAgICAgICBrZXljb21wbGlhbmNlOiAocmVwb3J0LmtleVJlc3BvbnNpYmlsaXR5ID09PSAnWWVzJykgPyAnWWVzJyA6ICdObycsXHJcbiAgICAgICAgICBrZXlfY29tcGxpYW5jZTogKHJlcG9ydC5rZXlSZXNwb25zaWJpbGl0eSA9PT0gJ1llcycpID8gMSA6IDAsXHJcbiAgICAgICAgICByZXZpZXdlcklkOiByZXZpZXdlckRldGFpbHMgPyByZXZpZXdlckRldGFpbHMuZW1wbG95ZWVJZCA6IDAsXHJcbiAgICAgICAgICByZXZpZXdlcl9hcnI6ICggcmV2aWV3ZXJEZXRhaWxzICYmIHJldmlld2VyRGV0YWlscy5lbXBsb3llZUlkICk/IHtcclxuICAgICAgICAgICAgbGV2ZWwxOiB7XHJcbiAgICAgICAgICAgICAgcmV2aWV3ZXJzOiBbe1xyXG4gICAgICAgICAgICAgICAgbWVtYmVyX2lkOiByZXZpZXdlckRldGFpbHMgPyByZXZpZXdlckRldGFpbHMuZW1wbG95ZWVJZCA6IDAsXHJcbiAgICAgICAgICAgICAgICByZXZpZXdlcl9hY2NlcHQ6IDBcclxuICAgICAgICAgICAgICB9XSxcclxuICAgICAgICAgICAgICB0eXBlOiBcIlNFUVVFTlRJQUxcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9Ont9XHJcbiAgICAgICAgICAsXHJcbiAgICAgICAgICByZXZpZXdlcldpbmRvdzogcmVwb3J0LnJldmlld1RvQmVDb21wbGV0ZWRXaXRoaW4gPT09ICcnID8gMiA6IHJlcG9ydC5yZXZpZXdUb0JlQ29tcGxldGVkV2l0aGluLFxyXG4gICAgICAgICAgcmV2aWV3ZXJGYWlsdXJlOiByZXBvcnQucmV2aWV3V2lsbEJlRmFpbGVkQWZ0ZXIgPT09ICcnID8gMiA6IHJlcG9ydC5yZXZpZXdXaWxsQmVGYWlsZWRBZnRlcixcclxuICAgICAgICAgIHJldmlld2VyX2VtYWlsOiByZXZpZXdlckRldGFpbHMgPyByZXZpZXdlckRldGFpbHMuZW1haWwgOiAnJyxcclxuICAgICAgICAgIGZvcm1hdEZvclJlc3BvbnNpYmlsaXR5OiByZXBvcnQuZm9ybWF0Rm9yUmVzcG9uc2liaWxpdHkgPyByZXBvcnQuZm9ybWF0Rm9yUmVzcG9uc2liaWxpdHkgOiAnJyxcclxuICAgICAgICAgIGRvY3VtZW50YXJ5RXZpZGVuY2U6IHJlcG9ydC5ub3RlcyA/PyAnJyxcclxuICAgICAgICAgIGlzZG9jdW1lbnRhcnlFdmlkZW5jZTogKHJlcG9ydC5kb2N1bWVudEV2aWRlbmNlUmVxdWlyZWQgPT09ICdZZXMnKSA/IDEgOiAwLFxyXG4gICAgICAgICAgb2JqZWN0aXZlOiByZXBvcnQub2JqZWN0aXZlID8/ICcnLFxyXG4gICAgICAgICAgZXhjZWxfc2hlZXRfaW5mbzogdGhpcy5maWxlUmVzcG9uc2UsXHJcbiAgICAgICAgICBzaG93TGlzdDogZmFsc2UsXHJcbiAgICAgICAgICBjdXN0b21fdGFnczogJ1tdJyxcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBheWxvYWQucHVzaChvYmopO1xyXG5cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVNlcnZpY2UuYWRkQnVsa1Jlc3BvbnNpYmlsaXR5KHBheWxvYWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zaG93RXhjZWwgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eURhdGEgPSByZXM7XHJcblxyXG4gICAgfSxcclxuICAgICAgZXJyID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93RXhjZWwgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNuYWNrQmFyLnNob3coJ09PUFMhIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB0aGUgcGFnZSBjb3VsZCBub3QgYmUgbG9hZGVkLiBDb3VsZCB5b3UgcGxlYXNlIHRyeSBvbmUgbW9yZSB0aW1lPycpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIHJldHVybklkcyhpdGVtOiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICBzd2l0Y2ggKGtleSkge1xyXG4gICAgICBjYXNlICdyY19pZCc6XHJcbiAgICAgICAgbGV0IHJjT2JqID0geyBuYW1lOiAnJywgcmNJZDogMCwgcGFyZW50SWRzOiBbXSB9O1xyXG4gICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLnJjTGlzdC5mb3JFYWNoKChyY19lbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyY19lbGVtZW50Lm5hbWUgPT0gaXRlbSkge1xyXG4gICAgICAgICAgICBsZXQgbmFtZTtcclxuICAgICAgICAgICAgaWYgKHJjX2VsZW1lbnQubmFtZS5pbmNsdWRlcygnW1dJVEhJTl0nKSkge1xyXG4gICAgICAgICAgICAgIG5hbWUgPSByY19lbGVtZW50Lm5hbWUuc3BsaXQoJyBbV0lUSElOXSAnKVswXVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG5hbWUgPSByY19lbGVtZW50Lm5hbWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmNPYmogPSB7IG5hbWUsIHJjSWQ6IHJjX2VsZW1lbnQucmNfaWQsIHBhcmVudElkczogcmNfZWxlbWVudC5wYXJlbnRJZHMgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmNPYmpcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAncmV2aWV3ZXInOlxyXG4gICAgICAgIGxldCByZXZpZXdlck9iaiA9IHsgbmFtZTogJycsIGVtcGxveWVlSWQ6IDAsIGVtYWlsOiAnJyB9O1xyXG4gICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLmFzc2lnbmVlc0xpc3QuZm9yRWFjaCgocmV2aWV3ZXJFbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXZpZXdlckVsZW1lbnQubmFtZUFuZEVtYWlsID09IGl0ZW0pIHtcclxuICAgICAgICAgICAgcmV2aWV3ZXJPYmogPSB7XHJcbiAgICAgICAgICAgICAgbmFtZTogcmV2aWV3ZXJFbGVtZW50Lm5hbWUsXHJcbiAgICAgICAgICAgICAgZW1wbG95ZWVJZDogcmV2aWV3ZXJFbGVtZW50Lm15X21lbWJlcl9pZCxcclxuICAgICAgICAgICAgICBlbWFpbDogcmV2aWV3ZXJFbGVtZW50LmVtYWlsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmV2aWV3ZXJPYmo7XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdhc3NpZ25vcic6XHJcbiAgICAgICAgbGV0IGFzc2lnbm9yT2JqID0geyBuYW1lOiAnJywgbWVtYmVySWQ6IDAsIGVtYWlsOiAnJyB9O1xyXG4gICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLmFzc2lnbm9yc0xpc3QuZm9yRWFjaCgoYXNzaWdub3JFbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChhc3NpZ25vckVsZW1lbnQubmFtZUFuZEVtYWlsID09IGl0ZW0pIHtcclxuICAgICAgICAgICAgYXNzaWdub3JPYmogPSB7XHJcbiAgICAgICAgICAgICAgbmFtZTogYXNzaWdub3JFbGVtZW50Lm5hbWUsXHJcbiAgICAgICAgICAgICAgZW1haWw6IGFzc2lnbm9yRWxlbWVudC5lbWFpbCxcclxuICAgICAgICAgICAgICBtZW1iZXJJZDogYXNzaWdub3JFbGVtZW50Lm1lbWJlcl9pZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGFzc2lnbm9yT2JqO1xyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY2MnOlxyXG4gICAgICAgIGxldCBjY09iaiA9IHsgbmFtZTogJycsIGVtcGxveWVlSWQ6IDAsIGVtYWlsOiAnJyB9XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8uYXNzaWduZWVzTGlzdC5mb3JFYWNoKChjY0VsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNjRWxlbWVudC5uYW1lQW5kRW1haWwgPT0gaXRlbSkge1xyXG4gICAgICAgICAgICBjY09iaiA9IHtcclxuICAgICAgICAgICAgICBuYW1lOiBjY0VsZW1lbnQubmFtZSxcclxuICAgICAgICAgICAgICBlbXBsb3llZUlkOiBjY0VsZW1lbnQuZW1wbG95ZWVfaWQsXHJcbiAgICAgICAgICAgICAgZW1haWw6IGNjRWxlbWVudC5lbWFpbFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGNjT2JqO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjY0ZhaWx1cmUnOlxyXG4gICAgICAgIGxldCBjY2ZPYmogPSB7IG5hbWU6ICcnLCBlbXBsb3llZUlkOiAwLCBlbWFpbDogJycgfTtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlSW5mby5hc3NpZ25lZXNMaXN0LmZvckVhY2goKGNjZkVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNjZkVsZW1lbnQubmFtZUFuZEVtYWlsID09IGl0ZW0pIHtcclxuICAgICAgICAgICAgY2NmT2JqID0ge1xyXG4gICAgICAgICAgICAgIG5hbWU6IGNjZkVsZW1lbnQubmFtZSxcclxuICAgICAgICAgICAgICBlbXBsb3llZUlkOiBjY2ZFbGVtZW50LmVtcGxveWVlX2lkLFxyXG4gICAgICAgICAgICAgIGVtYWlsOiBjY2ZFbGVtZW50LmVtYWlsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gY2NmT2JqO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnZW50cnVzdGVkX3RvJzpcclxuICAgICAgICBsZXQgZW1wSWQgPSAwXHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8uYXNzaWduZWVzTGlzdC5mb3JFYWNoKChlbkVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVuRWxlbWVudC5uYW1lQW5kRW1haWwgPT0gaXRlbSkge1xyXG5cclxuICAgICAgICAgICAgZW1wSWQgPSBlbkVsZW1lbnQuZW1wbG95ZWVfaWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGVtcElkXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2NhdGVnb3J5X2lkJzpcclxuICAgICAgICBsZXQgY2F0SWQgPSAwXHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8uY2F0ZWdvcnlMaXN0LmZvckVhY2goKGNhdGVnb3J5OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChjYXRlZ29yeS5uYW1lID09IGl0ZW0pIHtcclxuICAgICAgICAgICAgY2F0SWQgPSBjYXRlZ29yeS5jYXRlZ29yeV9pZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gY2F0SWQ7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdyaXNrX2NsYXNzJzpcclxuXHJcbiAgICAgICAgaWYgKGl0ZW0gPT0gJ0xvdycpIHtcclxuICAgICAgICAgIHJldHVybiAxXHJcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtID09ICdMb3ctTWVkaXVtJykge1xyXG4gICAgICAgICAgcmV0dXJuIDJcclxuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0gPT0gJ01lZGl1bS1IaWdoJykge1xyXG4gICAgICAgICAgcmV0dXJuIDNcclxuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0gPT0gJ0hpZ2gnKSB7XHJcbiAgICAgICAgICByZXR1cm4gNFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gMFxyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICByZXNldCgpIHtcclxuICAgIHRoaXMucmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkID0ge1xyXG4gICAgICBoZWFkZXI6IFtdLFxyXG4gICAgICByZXBvcnRzOiBbXSxcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRlbXBsYXRlSW5mbyA9IHtcclxuICAgICAgY2F0ZWdvcnlMaXN0OiBbXSxcclxuICAgICAgcmNMaXN0OiBbXSxcclxuICAgICAgYXNzaWdub3JzTGlzdDogW10sXHJcbiAgICAgIGFzc2lnbmVlc0xpc3Q6IFtdLFxyXG4gICAgICBtZW1iZXJJZDogJydcclxuXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0ZpbGVFbXB0eSA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1dyb25nRmlsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmZpbGVOYW1lID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5kYXRhID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zaG93RXhjZWwgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG5cclxuICB9XHJcbiAgYWN0aW9uKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHN3aXRjaCAoZXZlbnQpIHtcclxuICAgICAgY2FzZSAnYWRkTW9yZSc6XHJcbiAgICAgICAgdGhpcy5yZXNldCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd2aWV3JzpcclxuICAgICAgICB0aGlzLnZpZXdSZXNwb25zaWJpbGl0aWVzKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZVNtaWxleShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcclxuICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KHsgZXZ0OiB0aGlzLnJlc3BvbnNpYmlsaXR5RGF0YSwgY29uZmlybTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICB2aWV3UmVzcG9uc2liaWxpdGllcygpOiB2b2lkIHtcclxuICAgIGxldCB1cmw6IHN0cmluZztcclxuICAgIGxldCB1cmxTdWJzdHJpbmcgPSAnJztcclxuICAgIHRoaXMuZGlzY29ubmVjdFJlZnJlc2guZW1pdChmYWxzZSk7XHJcbiAgICBpZiAodGhpcy5pc05vdGlmaWNhdGlvblBlbmRpbmcpIHtcclxuICAgICAgdXJsU3Vic3RyaW5nID0gJ2NvbXBsaWFuY2UvbWFuYWdlLXJlc3BvbnNpYmlsaXRpZXMvcmVzcG9uc2liaWxpdGllcy1xdWV1ZSc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB1cmxTdWJzdHJpbmcgPSAnY29tcGxpYW5jZS9tYW5hZ2UtcmVzcG9uc2liaWxpdGllcyc7XHJcbiAgICB9XHJcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgdXJsID0gJ2h0dHA6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyAnL2NvbXBsaWFuY2UvIy8nICsgdXJsU3Vic3RyaW5nO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdXJsID0gJ2h0dHBzOi8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0ICsgJy9jb21wbGlhbmNlLyMvJyArIHVybFN1YnN0cmluZztcclxuICAgIH1cclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gIH1cclxuXHJcbiAgLy8gVXBsb2FkIEZpbGUgdG8gdGhlIHNlcnZlclxyXG4gIGZpbGVVcGxvYWQoKSB7XHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgY29uc3QgZmlsZSA9IHRoaXMudXBsb2FkZWRGaWxlc1swXVswXTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZCgnc291cmNlZmlsZScsIGZpbGUpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdkZXN0aW5hdGlvbicsICdidWxrdXBsb2FkL2VudHJ1c3QvJyArIHRoaXMudXNlckluZm8uZW1haWwpO1xyXG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVNlcnZpY2UuZmlsZVVwbG9hZChmb3JtRGF0YSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzPy5maWxlbmFtZSkge1xyXG4gICAgICAgIHRoaXMuZmlsZVJlc3BvbnNlLnB1c2gocmVzKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG5cclxuICAgIH0sIGVyciA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zbmFja0Jhci5zaG93KCdPT1BTISBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgdGhlIHBhZ2UgY291bGQgbm90IGJlIGxvYWRlZC4gQ291bGQgeW91IHBsZWFzZSB0cnkgb25lIG1vcmUgdGltZT8nKTtcclxuXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
700
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL2FkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eS9hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQVMsTUFBTSxFQUFFLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQVNwRixNQUFNLE9BQU8sa0NBQWtDO0lBa0Q3QyxZQUNVLFdBQTJCLEVBQzNCLHFCQUE0QyxFQUM1QyxXQUF3QixFQUN4QixnQkFBc0MsRUFDdEMsUUFBeUI7UUFKekIsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFzQjtRQUN0QyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQXREekIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxD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Z3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFkZFJpc2tTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvYWRkLXJpc2suc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRnJlcXVlbmN5QnVsa1NlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy9mcmVxdWVuY3kuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlc3BvbnNpYmlsaXR5U2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL3Jlc3BvbnNpYmlsaXR5LnNlcnZpY2UnO1xyXG5cclxudHlwZSBBT0EgPSBhbnlbXVtdO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHkuY29tcG9uZW50Lmxlc3MnLCAnLi4vZm9ybXMubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkTXVsdGlwbGVSZXNwb25zaWJpbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQE91dHB1dCgpIHBpY2tlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHBvcHVsYXRlT3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZVdvcmtmbG93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBkaXNjb25uZWN0UmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBpc05vdGlmaWNhdGlvblBlbmRpbmcgPSAwO1xyXG5cclxuICByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ6IGFueSA9IHtcclxuICAgIGhlYWRlcjogW10sXHJcbiAgICByZXBvcnRzOiBbXSxcclxuICB9XHJcblxyXG4gIHRlbXBsYXRlSW5mbzogYW55ID0ge1xyXG5cclxuICAgIGNhdGVnb3J5TGlzdDogW10sXHJcbiAgICByY0xpc3Q6IFtdLFxyXG4gICAgYXNzaWdub3JzTGlzdDogW10sXHJcbiAgICBhc3NpZ25lZXNMaXN0OiBbXSxcclxuICAgIG1lbWJlcklkOiAnJ1xyXG4gIH1cclxuICBpc0xvYWRlciA9IGZhbHNlO1xyXG4gIHNob3dDYXRlZ29yeUxpc3QgPSBmYWxzZTtcclxuICB0ZW1wbGF0ZURvd25sb2FkZWQgPSBmYWxzZTtcclxuICBkb3dubG9hZEluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICBsb2FkZXIgPSBmYWxzZTtcclxuICBpc0ZpbGVFbXB0eSA9IGZhbHNlO1xyXG4gIGlzV3JvbmdGaWxlID0gZmFsc2U7XHJcbiAgaXNXcm9uZ0Zvcm1hdCA9IGZhbHNlO1xyXG4gIGZpbGVOYW1lOiBhbnk7XHJcbiAgZGF0YTogYW55O1xyXG4gIHNob3dFeGNlbCA9IGZhbHNlO1xyXG4gIHVwbG9hZGVkRmlsZXM6IGFueSA9IFtdO1xyXG4gIGZpbGVSZXNwb25zZTogYW55ID0gW107XHJcbiAgZmlsZVZhbHVlOiBhbnk7XHJcbiAgbWVtYmVySWQgPSAwO1xyXG4gIG9yZ2FuaXphdGlvbklkID0gMDtcclxuICBlcnJvck1lc3NhZ2UgPSBcIiBpbnZhbGlkIGZpbGUgZXJyb3JcIlxyXG4gIGRvd25sb2FkU3RhdHVzOiBzdHJpbmcgPSAnTk9UX0RPV05MT0FESU5HJztcclxuICBkb3dubG9hZFBlcmNlbnQgPSAwO1xyXG4gIGRlZmF1bHRPd25lciA9ICcnXHJcbiAgc21pbGV5TWVzc2FnZSA9IGBZb3UncmUgQWxsIFNldCEgV2UncmUgcHJvY2Vzc2luZyB5b3VyIHJlcXVlc3QgYW5kIHlvdSB3aWxsIGJlIG5vdGlmaWVkIHZpYSBlbWFpbCB1cG9uIGNvbXBsZXRpb24uYDtcclxuICBhY3Rpb25CdXR0b25zID0gW1xyXG4gICAgeyBidXR0b25UZXh0OiAnRW50cnVzdCBNb3JlIFJlc3BvbnNpYmlsaXRpZXMnLCBjbGFzczogJ3doaXRlLWJ0bicsIGlkOiAnYWRkTW9yZScgfSxcclxuICAgIHsgYnV0dG9uVGV4dDogKHRoaXMuaXNOb3RpZmljYXRpb25QZW5kaW5nKSA/ICdWaWV3IFJlc3BvbnNpYmlsaXRpZXMgSW4gUXVldWUnIDogJ1ZpZXcgUmVzcG9uc2liaWxpdGllcycsIGNsYXNzOiAnYmx1ZS1idG4nLCBpZDogJ3ZpZXcnIH0sXHJcbiAgXTtcclxuICBzaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgbWVtYmVyX29ial9pZCA9ICcnO1xyXG4gIHJpc2tDbGFzc0VuYWJsZWQ6IGFueTtcclxuICB1c2VySW5mbyAhOiBhbnk7XHJcbiAgcmVzcG9uc2liaWxpdHlEYXRhICE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmlza1NlcnZpY2U6IEFkZFJpc2tTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZXNwb25zaWJpbGl0eVNlcnZpY2U6IFJlc3BvbnNpYmlsaXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lCdWxrU2VydmljZSxcclxuICAgIHByaXZhdGUgc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG5cclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBjb25zdCB0ZXN0ID0gdGhpcy5jb21wYXJlV2l0aEN1cnJlbnREYXRlKDEsIFwiSnVseScyMVwiKSA7XHJcbiAgICAvLyBkZWJ1Z2dlclxyXG4gICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZmFsc2UpO1xyXG5cclxuICAgIHRoaXMub3JnYW5pemF0aW9uSWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbklkKCk7XHJcbiAgICB0aGlzLm1lbWJlcklkID0gdGhpcy5hdXRoU2VydmljZS5nZXRNZW1iZXJJZCgpO1xyXG4gICAgdGhpcy5tZW1iZXJfb2JqX2lkID0gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyRGV0YWlscygpLl9pZDtcclxuICAgIHRoaXMudXNlckluZm8gPSB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXJEZXRhaWxzKCkudXNlcjtcclxuICAgIHRoaXMuZGVmYXVsdE93bmVyID0gKHRoaXMudXNlckluZm8pID8gdGhpcy51c2VySW5mby5uYW1lICsgJyAoJyArIHRoaXMudXNlckluZm8uZW1haWwgKyAnKScgOiAnJztcclxuICAgIHRoaXMuZ2V0VXNlckRldGFpbHMoKTtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uRGV0YWlscygpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5yaXNrQ2xhc3NFbmFibGVkID0gcmVzLmVuYWJsZV9yaXNrY2xhc3NcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlckJyb3dzZUZpbGUoKSB7XHJcbiAgICBjb25zdCBnZXRGaWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbGVJbnB1dCcpO1xyXG4gICAgaWYgKGdldEZpbGUpIHtcclxuICAgICAgZ2V0RmlsZS5jbGljaygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRVc2VyRGV0YWlscygpIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0VXNlckluZm8oKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuaXNOb3RpZmljYXRpb25QZW5kaW5nID0gcmVzLm5vdGlmaWNhdGlvbl9wZW5kaW5nX2ZsYWc7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdXBsb2FkZWRGaWxlKGV2ZW50OiBhbnkpIHtcclxuICAgIC8vIHRoaXMudGVzdGFycmF5PVtdO1xyXG4gICAgdHJ5IHtcclxuXHJcbiAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkID0ge1xyXG4gICAgICAgIGhlYWRlcjogW10sXHJcbiAgICAgICAgcmVwb3J0czogW10sXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMudGVtcGxhdGVJbmZvID0ge1xyXG4gICAgICAgIGNhdGVnb3J5TGlzdDogW10sXHJcbiAgICAgICAgcmNMaXN0OiBbXSxcclxuICAgICAgICBhc3NpZ25vcnNMaXN0OiBbXSxcclxuICAgICAgICBhc3NpZ25lZXNMaXN0OiBbXSxcclxuICAgICAgICBtZW1iZXJJZDogJydcclxuXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gW107XHJcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzY3JvbGxSZWZlcmVuY2UnKTtcclxuICAgICAgaWYgKHJlZmVyZW5jZSkge1xyXG4gICAgICAgIHJlZmVyZW5jZS5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdjZW50ZXInIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaXNGaWxlRW1wdHkgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc1dyb25nRmlsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5maWxlTmFtZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXS5uYW1lO1xyXG4gICAgICB0aGlzLnVwbG9hZGVkRmlsZXMucHVzaChldmVudC50YXJnZXQuZmlsZXMpO1xyXG4gICAgICBjb25zdCB0YXJnZXQ6IERhdGFUcmFuc2ZlciA9IGV2ZW50LnRhcmdldCBhcyBEYXRhVHJhbnNmZXI7XHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogY3VybHlcclxuICAgICAgaWYgKHRhcmdldC5maWxlcy5sZW5ndGggIT09IDEpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVzZSBtdWx0aXBsZSBmaWxlcycpO1xyXG4gICAgICBjb25zdCByZWFkZXI6IEZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJzdHI6IHN0cmluZyA9IGUudGFyZ2V0LnJlc3VsdDtcclxuICAgICAgICBjb25zdCB3YjogWExTWC5Xb3JrQm9vayA9IFhMU1gucmVhZChic3RyLCB7IHR5cGU6ICdiaW5hcnknIH0pO1xyXG4gICAgICAgIGNvbnN0IHdzbmFtZTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1swXTtcclxuICAgICAgICBjb25zdCB3c25hbWUxOiBzdHJpbmcgPSB3Yi5TaGVldE5hbWVzWzFdO1xyXG4gICAgICAgIGNvbnN0IHdzOiBYTFNYLldvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWVdO1xyXG4gICAgICAgIGNvbnN0IHRlbXBEYXRhOiBYTFNYLldvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWUxXTtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRhID0gWExTWC51dGlscy5zaGVldF90b19qc29uKHdzLCB7XHJcbiAgICAgICAgICBoZWFkZXI6IDEsXHJcbiAgICAgICAgfSkgYXMgQU9BO1xyXG5cclxuICAgICAgICBjb25zdCB0RGF0YSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbih0ZW1wRGF0YSwgeyBoZWFkZXI6IDEgfSkgYXMgQU9BO1xyXG4gICAgICAgIGNvbnN0IHRlbXBMaXN0ID0gdERhdGEuZmlsdGVyKChkYXRhRWxlbWVudDogYW55KSA9PiBkYXRhRWxlbWVudC5sZW5ndGggPiAwKTtcclxuICAgICAgICBpZiAodGhpcy5maWxlTmFtZS5zdWJzdHIoLTUpICE9PSAnLnhsc3gnKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdUaGUgaW5jb3JyZWN0IGZpbGUgaGFzIGJlZW4gdXBsb2FkZWQuIFBsZWFzZSB1cGxvYWQgdGhlIHRlbXBsYXRlIHdoaWNoIHlvdSBkb3dubG9hZGVkIGZyb20gaGVyZS4nICsgJyBSRVRSWSc7XHJcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGaWxlID0gdHJ1ZTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkLmhlYWRlciA9IGNsb25lRGVlcCh0aGlzLmRhdGFbMF0uZmlsdGVyKChkYXRhRWxlbWVudDogYW55KSA9PiBkYXRhRWxlbWVudC5sZW5ndGggPiAwKSk7XHJcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQuaGVhZGVyLnNwbGljZSh0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZC5oZWFkZXIubGVuZ3RoIC0gMSwgMSlcclxuXHJcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhLnNsaWNlKDIpO1xyXG4gICAgICAgIGlmICh0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZC5oZWFkZXJbMF0gIT09ICdFbnRlciBSZXNwb25zaWJpbGl0eSBOYW1lKicpIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1RoZSBpbmNvcnJlY3QgZmlsZSBoYXMgYmVlbiB1cGxvYWRlZC4gUGxlYXNlIHVwbG9hZCB0aGUgdGVtcGxhdGUgd2hpY2ggeW91IGRvd25sb2FkZWQgZnJvbSBoZXJlLicgKyAnIFJFVFJZJztcclxuICAgICAgICAgIHRoaXMuaXNXcm9uZ0ZpbGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRlbXBsYXRlSW5mby5tZW1iZXJJZCA9IHRlbXBMaXN0WzBdWzI1XVxyXG5cclxuICAgICAgICBpZiAoKHRoaXMubWVtYmVyX29ial9pZCAhPSB0aGlzLnRlbXBsYXRlSW5mby5tZW1iZXJJZCkpIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1RoZSBpbmNvcnJlY3QgZmlsZSBoYXMgYmVlbiB1cGxvYWRlZC4gUGxlYXNlIHVwbG9hZCB0aGUgdGVtcGxhdGUgd2hpY2ggeW91IGRvd25sb2FkZWQgZnJvbSBoZXJlLicgKyAnIFJFVFJZJztcclxuICAgICAgICAgIHRoaXMuaXNXcm9uZ0ZpbGUgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0ZW1wTGlzdC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudFsyXSAmJiBlbGVtZW50WzJdIT0nICcpIHtcclxuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSB7XHJcbiAgICAgICAgICAgICAgbmFtZTogZWxlbWVudFsyXSxcclxuICAgICAgICAgICAgICBjYXRlZ29yeV9pZDogZWxlbWVudFszXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLmNhdGVnb3J5TGlzdC5wdXNoKGNhdGVnb3J5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChlbGVtZW50WzldICYmIGVsZW1lbnRbOV0hPScgJykge1xyXG4gICAgICAgICAgICBjb25zdCByYyA9IHtcclxuICAgICAgICAgICAgICBuYW1lOiBlbGVtZW50WzldLFxyXG4gICAgICAgICAgICAgIHJjX2lkOiBlbGVtZW50WzEwXSxcclxuICAgICAgICAgICAgICBwYXJlbnRJZHM6IEpTT04ucGFyc2UoZWxlbWVudFsxM10pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8ucmNMaXN0LnB1c2gocmMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnRbMTFdICYmIGVsZW1lbnRbMTFdIT0nICcpIHtcclxuICAgICAgICAgICAgY29uc3QgYXNzaWduZWUgPSB7XHJcbiAgICAgICAgICAgICAgbmFtZUFuZEVtYWlsOiBlbGVtZW50WzExXSxcclxuICAgICAgICAgICAgICBuYW1lOiBlbGVtZW50WzExXS5zcGxpdCgnICgnKVswXSxcclxuICAgICAgICAgICAgICBlbWFpbDogZWxlbWVudFsxMV0uc3BsaXQoJyAoJylbMV0ucmVwbGFjZSgnKScsICcnKSxcclxuICAgICAgICAgICAgICBlbXBsb3llZV9pZDogZWxlbWVudFsxMl0sXHJcbiAgICAgICAgICAgICAgbXlfbWVtYmVyX2lkOiBlbGVtZW50WzE2XVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLmFzc2lnbmVlc0xpc3QucHVzaChhc3NpZ25lZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZWxlbWVudFsxNF0gJiYgZWxlbWVudFsxNF0hPScgJykge1xyXG4gICAgICAgICAgICBjb25zdCBhc3NpZ25vciA9IHtcclxuICAgICAgICAgICAgICBuYW1lQW5kRW1haWw6IGVsZW1lbnRbMTRdLFxyXG4gICAgICAgICAgICAgIG5hbWU6IGVsZW1lbnRbMTRdLnNwbGl0KCcgKCcpWzBdLFxyXG4gICAgICAgICAgICAgIGVtYWlsOiBlbGVtZW50WzE0XS5zcGxpdCgnICgnKVsxXS5yZXBsYWNlKCcpJywgJycpLFxyXG4gICAgICAgICAgICAgIG1lbWJlcl9pZDogZWxlbWVudFsxNV0sXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8uYXNzaWdub3JzTGlzdC5wdXNoKGFzc2lnbm9yKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3QgaXNFbXB0eSA9IHRoaXMuY2hlY2tFbXB0eUZpbGUoKTtcclxuICAgICAgICBpZiAoaXNFbXB0eSkge1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnWW91IGhhdmUgdXBsb2FkZWQgYSBibGFuayB0ZW1wbGF0ZS4gUGxlYXNlIGFkZCBkZXRhaWxzIGZvciBhbGwgbWFuZGF0b3J5IGZpZWxkcy4gUkVUUlknO1xyXG4gICAgICAgICAgdGhpcy5pc0ZpbGVFbXB0eSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcclxuICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgICB0aGlzLmlzRmlsZUVtcHR5ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZCgpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2liaWxpdHlEYXRhID0gdGhpcy5kYXRhLmZpbHRlcigoZGF0YUVsZW1lbnQ6IGFueSkgPT4gZGF0YUVsZW1lbnQubGVuZ3RoID4gMCk7XHJcbiAgICAgICAgcmVzcG9uc2liaWxpdHlEYXRhLmZvckVhY2goKHJlcG9ydDogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB2YWxpZERhdGUgPSB0aGlzLmNvbXBhcmVXaXRoQ3VycmVudERhdGUocmVwb3J0WzVdLCByZXBvcnRbNl0pXHJcbiAgICAgICAgICBjb25zdCB2YWxpZEZpZWxkcyA9IHRoaXMuY2hlY2tWYWxpZGl0eShyZXBvcnQpO1xyXG4gICAgICAgICAgY29uc3QgdmFsaWRVc2VyID0gdGhpcy5yZXR1cm5JZHMocmVwb3J0WzJdLCAnZW50cnVzdGVkX3RvJykgPyB0cnVlIDogZmFsc2VcclxuICAgICAgICAgIGNvbnN0IG9iajogYW55ID0ge1xyXG4gICAgICAgICAgICByZXNwb25zaWJpbGl0eU5hbWU6IHJlcG9ydFswXSA/PyAnJyxcclxuICAgICAgICAgICAgYXNzaWdub3I6IHJlcG9ydFsxXSA/PyAnJyxcclxuICAgICAgICAgICAgYXNzaWduZWU6IHJlcG9ydFsyXSA/PyAnJyxcclxuICAgICAgICAgICAgcmVzcG9uc2liaWxpdHlDYXRlZ29yeTogcmVwb3J0WzNdID8/ICcnLFxyXG4gICAgICAgICAgICBmcmVxdWVuY3k6IHJlcG9ydFs0XSA/PyAnJyxcclxuICAgICAgICAgICAgZGF5OiByZXBvcnRbNV0gPz8gJycsXHJcbiAgICAgICAgICAgIG1vbnRoOiByZXBvcnRbNl0gPz8gJycsXHJcbiAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5V2luZG93OiByZXBvcnRbN10gPz8gJycsXHJcbiAgICAgICAgICAgIGZhaWxlZEFmdGVyOiByZXBvcnRbOF0gPz8gJycsXHJcbiAgICAgICAgICAgIHJlcG9ydENsYXNzOiByZXBvcnRbOV0gPz8gJycsXHJcbiAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiByZXBvcnRbMTBdID8/ICcnLFxyXG4gICAgICAgICAgICByZXZpZXdlcjogcmVwb3J0WzExXSA/PyAnJyxcclxuICAgICAgICAgICAgcmV2aWV3VG9CZUNvbXBsZXRlZFdpdGhpbjogcmVwb3J0WzEyXSA/PyAnJyxcclxuICAgICAgICAgICAgcmV2aWV3V2lsbEJlRmFpbGVkQWZ0ZXI6IHJlcG9ydFsxM10gPz8gJycsXHJcbiAgICAgICAgICAgIGZvcm1hdEZvclJlc3BvbnNpYmlsaXR5OiByZXBvcnRbMTRdID8/ICcnLFxyXG4gICAgICAgICAgICBub3RlczogcmVwb3J0WzE1XSA/PyAnJyxcclxuICAgICAgICAgICAgZG9jdW1lbnRFdmlkZW5jZVJlcXVpcmVkOiByZXBvcnRbMTZdID8/ICcnLFxyXG4gICAgICAgICAgICBhbHdheXNOb3RpZnk6IHJlcG9ydFsxN10gPz8gJycsXHJcbiAgICAgICAgICAgIG5vdGlmeU9uRmFpbHVyZTogcmVwb3J0WzE4XSA/PyAnJyxcclxuICAgICAgICAgICAga2V5UmVzcG9uc2liaWxpdHk6IHJlcG9ydFsxOV0gPz8gJycsXHJcbiAgICAgICAgICAgIG9iamVjdGl2ZTogcmVwb3J0WzIwXSA/PyAnJyxcclxuXHJcbiAgICAgICAgICAgIGlzVmFsaWREdWVEYXRlOiB2YWxpZERhdGUsXHJcbiAgICAgICAgICAgIGlzUGFzdERhdGU6IHRoaXMuaXNQYXN0RGF0ZShyZXBvcnRbNV0sIHJlcG9ydFs2XSksXHJcbiAgICAgICAgICAgIGNoZWNrVmFsaWRpdHk6IHZhbGlkRmllbGRzLFxyXG4gICAgICAgICAgICBpc1ZhbGlkOiAodmFsaWREYXRlKSAmJiAodmFsaWRGaWVsZHMpICYmICh2YWxpZFVzZXIpLFxyXG4gICAgICAgICAgICBpc1ZhbGlkVXNlcjogKHZhbGlkVXNlcilcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZC5yZXBvcnRzLnB1c2gob2JqKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZC5yZXBvcnRzKVxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMudGVzdGFycmF5KVxyXG4gICAgICAgIHRoaXMuaXNGaWxlRW1wdHkgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzV3JvbmdGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93RXhjZWwgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZmlsZVZhbHVlID0gJyc7XHJcbiAgICAgIH07XHJcbiAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcodGFyZ2V0LmZpbGVzWzBdKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25zb2xlXHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoZWNrRW1wdHlGaWxlKCkge1xyXG4gICAgbGV0IGlzRW1wdHkgPSBmYWxzZTtcclxuICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YS5maWx0ZXIoKGRhdGFFbGVtZW50OiBhbnkpID0+IGRhdGFFbGVtZW50Lmxlbmd0aCA+IDApO1xyXG4gICAgaWYgKHRoaXMuZGF0YS5sZW5ndGggPCAxKSB7XHJcbiAgICAgIGlzRW1wdHkgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzRW1wdHk7XHJcbiAgfVxyXG5cclxuICAvLyB0ZXN0YXJyYXk6YW55W109W11cclxuXHJcbiAgY2hlY2tWYWxpZGl0eShyZXBvcnQ6IGFueSkge1xyXG4gICAgY29uc3QgcmUgPSAvJm5ic3A7fDxicj4vZztcclxuICAgIGlmIChyZXBvcnRbMF0pIHtcclxuICAgICAgdmFyIHRyaW1tZWROYW1lID0gcmVwb3J0WzBdLnRvU3RyaW5nKCkucmVwbGFjZShyZSwgJycpLnRyaW0oKTtcclxuICAgICAgdHJpbW1lZE5hbWUgPSB0cmltbWVkTmFtZS5yZXBsYWNlKC8gICsvZywgJyAnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqICBpbmRleCAgICAgICAgICAga2V5IGZvclxyXG4gICAgICpcclxuICAgICAqICByZXBvcnRbMV0gICAgICAgT24gQmVoYWxmIG9mIHVzZXJcclxuICAgICAqICByZXBvcnRbMTFdICAgICAgUmV2aWV3ZXJcclxuICAgICAqICByZXBvcnRbMTddICAgICAgQWx3YXlzIE5vdGlmeVxyXG4gICAgICogIHJlcG9ydFsxOF0gICAgICBOb3RpZnkgT24gRmFpbHVyZVxyXG4gICAgICogIHJlcG9ydFsyXSAgICAgICBBc3NpZ25lZVxyXG4gICAgICogIHJlcG9ydFs0XSAgICAgICBmcmVxdWVuY3lcclxuICAgICAqICB0cmltbWVkTmFtZSAgICAgUmVwb3J0IG5hbWVcclxuICAgICAqICBkZWZhdWx0T3duZXIgICAgRGVmYXVsdCBBc3NpZ25vclxyXG4gICAgICovXHJcbiAgICBpZiAoKCF0cmltbWVkTmFtZSkgfHwgKHJlcG9ydFsxXSAmJiAoIChyZXBvcnRbMV0gPT0gcmVwb3J0WzE3XSkgfHwgKHJlcG9ydFsxXSA9PSByZXBvcnRbMThdKSkpIHx8XHJcbiAgICAgICgoIXJlcG9ydFsxXSkgJiYgKCAodGhpcy5kZWZhdWx0T3duZXIgPT0gcmVwb3J0WzE3XSkgfHwgKHRoaXMuZGVmYXVsdE93bmVyID09IHJlcG9ydFsxOF0pKSkgfHxcclxuICAgICAgKHJlcG9ydFsyXSAmJiAoKHJlcG9ydFsyXSA9PSByZXBvcnRbMTFdKSB8fCAocmVwb3J0WzJdID09IHJlcG9ydFsxN10pIHx8IChyZXBvcnRbMl0gPT0gcmVwb3J0WzE4XSkpKSB8fFxyXG4gICAgICAoKCFyZXBvcnRbMl0pICYmICgodGhpcy5kZWZhdWx0T3duZXIgPT0gcmVwb3J0WzE3XSkgfHwgKHRoaXMuZGVmYXVsdE93bmVyID09IHJlcG9ydFsxOF0pKSkgfHxcclxuICAgICAgKHJlcG9ydFsxMV0gJiYgKChyZXBvcnRbMTFdID09IHJlcG9ydFsxN10pIHx8IChyZXBvcnRbMTFdID09IHJlcG9ydFsxOF0pKSlcclxuICAgICAgfHwgKCFyZXBvcnRbMl0pIHx8ICghcmVwb3J0WzRdKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2UgeyByZXR1cm4gdHJ1ZSB9XHJcbiAgfVxyXG4gIGNvbXBhcmVXaXRoQ3VycmVudERhdGUoZGF5OiBhbnksIG1vbnRoOiBhbnkpIHtcclxuICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnN0IG1vbnRoTmFtZXMgPSBbXHJcbiAgICAgIHsgdmFsdWU6IDEsIG1vbnRoOiAnSmFuJyB9LFxyXG4gICAgICB7IHZhbHVlOiAyLCBtb250aDogJ0ZlYicgfSxcclxuICAgICAgeyB2YWx1ZTogMywgbW9udGg6ICdNYXInIH0sXHJcbiAgICAgIHsgdmFsdWU6IDQsIG1vbnRoOiAnQXByJyB9LFxyXG4gICAgICB7IHZhbHVlOiA1LCBtb250aDogJ01heScgfSxcclxuICAgICAgeyB2YWx1ZTogNiwgbW9udGg6ICdKdW4nIH0sXHJcbiAgICAgIHsgdmFsdWU6IDcsIG1vbnRoOiAnSnVsJyB9LFxyXG4gICAgICB7IHZhbHVlOiA4LCBtb250aDogJ0F1ZycgfSxcclxuICAgICAgeyB2YWx1ZTogOSwgbW9udGg6ICdTZXAnIH0sXHJcbiAgICAgIHsgdmFsdWU6IDEwLCBtb250aDogJ09jdCcgfSxcclxuICAgICAgeyB2YWx1ZTogMTEsIG1vbnRoOiAnTm92JyB9LFxyXG4gICAgICB7IHZhbHVlOiAxMiwgbW9udGg6ICdEZWMnIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIGlmICghKGRheSB8fCBtb250aCkpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKCEoZGF5ICYmIG1vbnRoKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBtb250aEFuZFllYXIgPSBtb250aC5zcGxpdChcIidcIik7XHJcblxyXG4gICAgICBjb25zdCBzdGFydERhdGUgPSBtb21lbnQoZGF5ICsgJy0nICsgbW9udGhBbmRZZWFyWzBdICsgJy0nICsgMjAgKyBtb250aEFuZFllYXJbMV0gKyAnIDAwOjAwOjAwJywgJ0RELU1NTU0tWVlZWSBISDptbTpzcycpLmZvcm1hdCgnWVlZWS1NTS1ERCBISDptbTpzcycpO1xyXG4gICAgICBpZiAoc3RhcnREYXRlID09IFwiSW52YWxpZCBkYXRlXCIpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgfSwgNSk7XHJcbiAgICAgIGNvbnN0IGRhdGVfdmFsdWUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgICAgZGF0ZV92YWx1ZS5zZXRNb250aCh0eXBlb2YgbW9udGggIT09ICdudW1iZXInID8gbW9udGhOYW1lcy5maWx0ZXIoKHgpID0+IHgubW9udGggPT09IG1vbnRoPy5zdWJzdHJpbmcoMCwgMykpWzBdPy52YWx1ZSAtIDEgOiBtb250aCk7XHJcbiAgICAgIGRhdGVfdmFsdWUuc2V0RnVsbFllYXIoTnVtYmVyKDIwICsgbW9udGguc3BsaXQoXCInXCIpWzFdKSk7XHJcbiAgICAgIGRhdGVfdmFsdWUuc2V0RGF0ZShOdW1iZXIoZGF5KSk7XHJcbiAgICAgIC8vIGNvbnN0IHJlcG9ydERhdGUgPSBuZXcgRGF0ZShkYXkgKyBtb250aC5zcGxpdChcIidcIikpO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZygoY3VycmVudERhdGUudG9KU09OKCkuc3BsaXQoJ1QnKVswXSkrXCImJlwiKyhkYXRlX3ZhbHVlLnRvSlNPTigpLnNwbGl0KCdUJylbMF0pKVxyXG4gICAgICAvLyBkZWJ1Z2dlclxyXG4gICAgICBpZiAoKChjdXJyZW50RGF0ZS50b0pTT04oKS5zcGxpdCgnVCcpWzBdKSAhPSAoZGF0ZV92YWx1ZS50b0pTT04oKS5zcGxpdCgnVCcpWzBdKSkgJiYgKGN1cnJlbnREYXRlID4gZGF0ZV92YWx1ZSkpIHtcclxuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH1cclxuICBpc1Bhc3REYXRlKGRheTogYW55LCBtb250aDogYW55KSB7XHJcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgY29uc3QgbW9udGhOYW1lcyA9IFtcclxuICAgICAgeyB2YWx1ZTogMSwgbW9udGg6ICdKYW4nIH0sXHJcbiAgICAgIHsgdmFsdWU6IDIsIG1vbnRoOiAnRmViJyB9LFxyXG4gICAgICB7IHZhbHVlOiAzLCBtb250aDogJ01hcicgfSxcclxuICAgICAgeyB2YWx1ZTogNCwgbW9udGg6ICdBcHInIH0sXHJcbiAgICAgIHsgdmFsdWU6IDUsIG1vbnRoOiAnTWF5JyB9LFxyXG4gICAgICB7IHZhbHVlOiA2LCBtb250aDogJ0p1bicgfSxcclxuICAgICAgeyB2YWx1ZTogNywgbW9udGg6ICdKdWwnIH0sXHJcbiAgICAgIHsgdmFsdWU6IDgsIG1vbnRoOiAnQXVnJyB9LFxyXG4gICAgICB7IHZhbHVlOiA5LCBtb250aDogJ1NlcCcgfSxcclxuICAgICAgeyB2YWx1ZTogMTAsIG1vbnRoOiAnT2N0JyB9LFxyXG4gICAgICB7IHZhbHVlOiAxMSwgbW9udGg6ICdOb3YnIH0sXHJcbiAgICAgIHsgdmFsdWU6IDEyLCBtb250aDogJ0RlYycgfSxcclxuICAgIF07XHJcblxyXG4gICAgaWYgKCEoZGF5IHx8IG1vbnRoKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKCEoZGF5ICYmIG1vbnRoKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBjb25zdCByZXBvcnREYXRlID0gbmV3IERhdGUoZGF5ICsgbW9udGguc3BsaXQoXCInXCIpKTtcclxuICAgICAgY29uc3QgZGF0ZV92YWx1ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGRhdGVfdmFsdWUuc2V0TW9udGgodHlwZW9mIG1vbnRoICE9PSAnbnVtYmVyJyA/IG1vbnRoTmFtZXMuZmlsdGVyKCh4KSA9PiB4Lm1vbnRoID09PSBtb250aD8uc3Vic3RyaW5nKDAsIDMpKVswXT8udmFsdWUgLSAxIDogbW9udGgpO1xyXG4gICAgICBkYXRlX3ZhbHVlLnNldEZ1bGxZZWFyKE51bWJlcigyMCArIG1vbnRoLnNwbGl0KFwiJ1wiKVsxXSkpO1xyXG4gICAgICBkYXRlX3ZhbHVlLnNldERhdGUoTnVtYmVyKGRheSkpO1xyXG4gICAgICBpZiAoY3VycmVudERhdGUgPiBkYXRlX3ZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZG93bmxvYWRUZW1wbGF0ZSgpIHtcclxuICAgIHRoaXMuZG93bmxvYWRTdGF0dXMgPSAnRE9XTkxPQURJTkcnO1xyXG4gICAgdGhpcy5kb3dubG9hZFBlcmNlbnQgPSAwO1xyXG4gICAgY29uc3QgZG93bmxvYWREYXRlID0gbmV3IERhdGUoKS50b0RhdGVTdHJpbmcoKS5zcGxpdCgnICcpO1xyXG4gICAgY29uc3QgZmlsZU5hbWUgPSBgRW50cnVzdCBSZXNwb25zaWJpbGl0aWVzLSR7ZG93bmxvYWREYXRlWzJdfS0ke2Rvd25sb2FkRGF0ZVsxXX0tJHtkb3dubG9hZERhdGVbM119Lnhsc3hgO1xyXG5cclxuICAgIHRoaXMucmlza1NlcnZpY2UuZG93bmxvYWRSZXNwb25zaWJpbGl0eVRlbXBsYXRlKCkuc3Vic2NyaWJlKFxyXG4gICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEubG9hZGVkKSB7XHJcbiAgICAgICAgICB0aGlzLmRvd25sb2FkUGVyY2VudCA9IDEwMCAqIChkYXRhLmxvYWRlZCAvIGRhdGEudG90YWwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGF0YS5ib2R5KSB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9IHRoaXMucmlza1NlcnZpY2UuZG93bkxvYWRGaWxlKGRhdGEuYm9keSwgJ2FwcGxpY2F0aW9uL3hsc3gnLCBmaWxlTmFtZSk7XHJcbiAgICAgICAgICB9LCAxNTAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgICB0aGlzLmRvd25sb2FkU3RhdHVzID0gJ0RPV05MT0FERUQnO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0UmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkKCkge1xyXG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgY29uc3QgcGF5bG9hZDogYW55ID0gW107XHJcbiAgICBjb25zdCBmcmVxdWVuY3lUeXBlQXJyYXkgPSBbJzEnLCAnMicsICczJywgJzQnLCAnNycsICcwJ107XHJcbiAgICBjb25zdCBkZWZhdWx0V2luZG93ID0gWzAsIDIsIDcsIDMwLCA3LCAxNV07XHJcbiAgICBjb25zdCBkZWZhdWx0RmFpbGVkRGF5ID0gWzEsIDIsIDUsIDUsIDUsIDVdO1xyXG5cclxuICAgIHRoaXMucmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkLnJlcG9ydHMuZm9yRWFjaCgocmVwb3J0OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcG9ydC5pc1ZhbGlkKSB7XHJcbiAgICAgICAgY29uc3QgcmNEZXRhaWxzOiBhbnkgPSB0aGlzLnJldHVybklkcyhyZXBvcnQucmVzcG9uc2liaWxpdHlDZW50ZXIsICdyY19pZCcpO1xyXG4gICAgICAgIGNvbnN0IHJldmlld2VyRGV0YWlsczogYW55ID0gdGhpcy5yZXR1cm5JZHMocmVwb3J0LnJldmlld2VyLCAncmV2aWV3ZXInKTtcclxuICAgICAgICBjb25zdCBhc3NpZ25vckRldGFpbHM6IGFueSA9IChyZXBvcnQuYXNzaWdub3IpID8gdGhpcy5yZXR1cm5JZHMocmVwb3J0LmFzc2lnbm9yLCAnYXNzaWdub3InKSA6ICcnO1xyXG4gICAgICAgIGNvbnN0IGNjRGV0YWlsczogYW55ID0gdGhpcy5yZXR1cm5JZHMocmVwb3J0LmFsd2F5c05vdGlmeSwgJ2NjJyk7XHJcbiAgICAgICAgY29uc3QgY2NGYWlsdXJlRGV0YWlsczogYW55ID0gdGhpcy5yZXR1cm5JZHMocmVwb3J0Lm5vdGlmeU9uRmFpbHVyZSwgJ2NjRmFpbHVyZScpO1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbW9tZW50KCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNhdGVnb3J5TmFtZSA9IChyZXBvcnQucmVzcG9uc2liaWxpdHlDYXRlZ29yeS5pbmNsdWRlcygnW1dJVEhJTl0nKSkgPyByZXBvcnQucmVzcG9uc2liaWxpdHlDYXRlZ29yeS5zcGxpdCgnIFsnKVswXSA6IHJlcG9ydC5yZXNwb25zaWJpbGl0eUNhdGVnb3J5XHJcbiAgICAgICAgY29uc3QgZnJlcXVlbmN5VmFsdWUgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2Uuc2hvcnRIYW5kX2ZyZXFDYWwocmVwb3J0LmZyZXF1ZW5jeSwgcmVwb3J0LmRheSwgcmVwb3J0Lm1vbnRoKTtcclxuICAgICAgICBjb25zdCBkYXRlQW5kTW9udGggPSByZXBvcnQubW9udGguc3BsaXQoXCInXCIpO1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG1vbWVudChyZXBvcnQuZGF5ICsgJy0nICsgZGF0ZUFuZE1vbnRoWzBdICsgJy0nICsgMjAgKyBkYXRlQW5kTW9udGhbMV0gKyAnIDAwOjAwOjAwJywgJ0RELU1NTU0tWVlZWSBISDptbTpzcycpLmZvcm1hdCgnWVlZWS1NTS1ERCBISDptbTpzcycpO1xyXG5cclxuICAgICAgICBsZXQgY29tcGxldGVEYXlzO1xyXG4gICAgICAgIGxldCBub3RDb21wbGV0ZURheXNcclxuICAgICAgICBjb25zdCBmcmVxdWVuY3lUeXBlID0gZnJlcXVlbmN5VmFsdWUuc3BsaXQoJ34nKVswXTtcclxuICAgICAgICBpZiAocmVwb3J0LnJlc3BvbnNpYmlsaXR5V2luZG93ICE9PSAnJykge1xyXG4gICAgICAgICAgY29tcGxldGVEYXlzID0gcmVwb3J0LnJlc3BvbnNpYmlsaXR5V2luZG93O1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5VHlwZUFycmF5LmluY2x1ZGVzKGZyZXF1ZW5jeVR5cGUpKSB7XHJcbiAgICAgICAgICBjb25zdCBpbmRleE9mQXJyYXkgPSBmcmVxdWVuY3lUeXBlQXJyYXkuaW5kZXhPZihmcmVxdWVuY3lUeXBlKTtcclxuICAgICAgICAgIGNvbXBsZXRlRGF5cyA9IGRlZmF1bHRXaW5kb3dbaW5kZXhPZkFycmF5XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJlcG9ydC5mYWlsZWRBZnRlciAhPT0gJycpIHtcclxuICAgICAgICAgIG5vdENvbXBsZXRlRGF5cyA9IHJlcG9ydC5mYWlsZWRBZnRlcjtcclxuICAgICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeVR5cGVBcnJheS5pbmNsdWRlcyhmcmVxdWVuY3lUeXBlKSkge1xyXG4gICAgICAgICAgY29uc3QgaW5kZXhPZkFycmF5ID0gZnJlcXVlbmN5VHlwZUFycmF5LmluZGV4T2YoZnJlcXVlbmN5VHlwZSk7XHJcbiAgICAgICAgICBub3RDb21wbGV0ZURheXMgPSBkZWZhdWx0RmFpbGVkRGF5W2luZGV4T2ZBcnJheV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IG9iaiA9IHtcclxuICAgICAgICAgIHVzZXJJZDogdGhpcy50ZW1wbGF0ZUluZm8ubWVtYmVySWQsXHJcbiAgICAgICAgICBvcmdhbmlzYXRpb25faWQ6IHRoaXMub3JnYW5pemF0aW9uSWQsXHJcbiAgICAgICAgICBtZW1iZXJfaWQ6IChhc3NpZ25vckRldGFpbHMpID8gYXNzaWdub3JEZXRhaWxzLm1lbWJlcklkIDogdGhpcy5tZW1iZXJJZCxcclxuICAgICAgICAgIG1lbWJlcl9uYW1lOiAoYXNzaWdub3JEZXRhaWxzKSA/ICgocmVwb3J0LmFzc2lnbm9yKSA/IHJlcG9ydC5hc3NpZ25vci5zcGxpdCgnICgnKVswXSA6ICcnKSA6ICgodGhpcy5kZWZhdWx0T3duZXIpID8gdGhpcy5kZWZhdWx0T3duZXIuc3BsaXQoJyAoJylbMF0gOiAnJyksXHJcbiAgICAgICAgICBtZW1iZXJfZW1haWw6IChhc3NpZ25vckRldGFpbHMpID8gKChyZXBvcnQuYXNzaWdub3IpID8gcmVwb3J0LmFzc2lnbm9yLnNwbGl0KCcgKCcpWzFdLnJlcGxhY2UoJyknLCAnJykgOiAnJykgOiAoKHRoaXMuZGVmYXVsdE93bmVyKSA/IHRoaXMuZGVmYXVsdE93bmVyLnNwbGl0KCcgKCcpWzFdLnJlcGxhY2UoJyknLCAnJykgOiAnJyksXHJcbiAgICAgICAgICBjcmVhdGVkX2J5OiAoYXNzaWdub3JEZXRhaWxzKSA/IHRoaXMubWVtYmVySWQgOiAwLFxyXG4gICAgICAgICAgcmVwb3J0X25hbWU6IHJlcG9ydC5yZXNwb25zaWJpbGl0eU5hbWUgPz8gJycsXHJcbiAgICAgICAgICBlbnRydXN0ZWRfdG86IHJlcG9ydC5hc3NpZ25lZS5zcGxpdCgnICgnKVswXSA/PyAnJyxcclxuICAgICAgICAgIGVudHJ1c3RlZF90b19pZDogdGhpcy5yZXR1cm5JZHMocmVwb3J0LmFzc2lnbmVlLCAnZW50cnVzdGVkX3RvJyksXHJcbiAgICAgICAgICBlbWFpbF9hZGRyZXNzOiByZXBvcnQuYXNzaWduZWUuc3BsaXQoJyAoJylbMV0ucmVwbGFjZSgnKScsICcnKSA/PyAnJyxcclxuICAgICAgICAgIGNhdGVnb3J5X25hbWU6IGNhdGVnb3J5TmFtZSxcclxuICAgICAgICAgIGNhdGVnb3J5X25hbWVfd2l0aF90cmVlOiAnJyxcclxuICAgICAgICAgIGNhdGVnb3J5X2lkOiB0aGlzLnJldHVybklkcyhyZXBvcnQucmVzcG9uc2liaWxpdHlDYXRlZ29yeSwgJ2NhdGVnb3J5X2lkJyksXHJcbiAgICAgICAgICByY19uYW1lOiByY0RldGFpbHMgPyByY0RldGFpbHMubmFtZSA6ICcnLFxyXG4gICAgICAgICAgcmNfaWQ6IHJjRGV0YWlscyA/IHJjRGV0YWlscy5yY0lkIDogMCxcclxuICAgICAgICAgIGVudGl0eV90cmVlOiAocmNEZXRhaWxzICYmIHJjRGV0YWlscy5yY0lkICkgPyBbe1xyXG4gICAgICAgICAgICBwYXJlbnRfcmNfaWRzOiByY0RldGFpbHMgPyByY0RldGFpbHMucGFyZW50SWRzIDogW10sXHJcbiAgICAgICAgICAgIHJjX2lkOiByY0RldGFpbHMgPyByY0RldGFpbHMucmNJZCA6IDBcclxuICAgICAgICAgIH1dOltdLFxyXG4gICAgICAgICAgZnJlcXVlbmN5X2hhbmRsZXI6IGZyZXF1ZW5jeVZhbHVlLFxyXG4gICAgICAgICAgY29tcGxpYW5jZV90eXBlOiBmcmVxdWVuY3lWYWx1ZS5zcGxpdCgnficpWzBdLFxyXG4gICAgICAgICAgZnJlcXVlbmN5X2Rlc2NyaXB0aW9uOiByZXBvcnQuZnJlcXVlbmN5LFxyXG4gICAgICAgICAgc3RhcnRfZGF0ZTogKHJlcG9ydC5kYXkpID8gc3RhcnREYXRlIDogY3VycmVudERhdGUgKyAnIDAwOjAwOjAwJyxcclxuICAgICAgICAgIHJpc2tfY2xhc3M6IHJlcG9ydC5yZXBvcnRDbGFzcyA/PyAnJyxcclxuICAgICAgICAgIHJpc2tfY2xhc3NJZDogKHJlcG9ydC5yZXBvcnRDbGFzcykgPyB0aGlzLnJldHVybklkcyhyZXBvcnQucmVwb3J0Q2xhc3MsICdyaXNrX2NsYXNzJykgOiAoKHRoaXMucmlza0NsYXNzRW5hYmxlZCkgPyAxIDogMiksXHJcbiAgICAgICAgICBkb2NfdXRjOiAwLFxyXG4gICAgICAgICAgY29tbWVudDogcmVwb3J0Lm5vdGVzID8/ICcnLFxyXG4gICAgICAgICAgY2NfbWFpbDogY2NEZXRhaWxzID8gY2NEZXRhaWxzLmVtYWlsIDogJycsXHJcbiAgICAgICAgICBjY19tYWlsX2lkOiBjY0RldGFpbHMgPyBjY0RldGFpbHMuZW1wbG95ZWVJZCA6ICcnLFxyXG4gICAgICAgICAgY2NfZmFpbGVkX21haWw6IGNjRmFpbHVyZURldGFpbHMgPyBjY0ZhaWx1cmVEZXRhaWxzLmVtYWlsIDogJycsXHJcbiAgICAgICAgICBjY19mYWlsdXJlX2lkOiBjY0ZhaWx1cmVEZXRhaWxzID8gY2NGYWlsdXJlRGV0YWlscy5lbXBsb3llZUlkIDogMCxcclxuICAgICAgICAgIHNlbmRfcmVtaW5kZXI6IFwiXCIsXHJcbiAgICAgICAgICByZXNwb25zaWJpbGl0eVdpbmRvdzogKGZyZXF1ZW5jeVR5cGUgPT09ICcxJykgPyAwIDogY29tcGxldGVEYXlzLFxyXG4gICAgICAgICAgZmFpbGVkX2FmdGVyOiBub3RDb21wbGV0ZURheXMsXHJcbiAgICAgICAgICBleGNlbF9zaGVldF9uYW1lOiBcIlwiLFxyXG4gICAgICAgICAgcmVwb3J0X3VwbG9hZF9mbGFnOiAocmVwb3J0LmRvY3VtZW50RXZpZGVuY2VSZXF1aXJlZCA9PT0gJ1llcycpID8gMSA6IDAsXHJcbiAgICAgICAgICByZXBvcnRfaWQ6IDAsXHJcbiAgICAgICAgICBpc19hc3NpZ25lZF9mbGFnOiAwLFxyXG4gICAgICAgICAgcHJpdmF0ZV9saWJyYXJ5X2lkOiAwLFxyXG4gICAgICAgICAga2V5Y29tcGxpYW5jZTogKHJlcG9ydC5rZXlSZXNwb25zaWJpbGl0eSA9PT0gJ1llcycpID8gJ1llcycgOiAnTm8nLFxyXG4gICAgICAgICAga2V5X2NvbXBsaWFuY2U6IChyZXBvcnQua2V5UmVzcG9uc2liaWxpdHkgPT09ICdZZXMnKSA/IDEgOiAwLFxyXG4gICAgICAgICAgcmV2aWV3ZXJJZDogcmV2aWV3ZXJEZXRhaWxzID8gcmV2aWV3ZXJEZXRhaWxzLmVtcGxveWVlSWQgOiAwLFxyXG4gICAgICAgICAgcmV2aWV3ZXJfYXJyOiAoIHJldmlld2VyRGV0YWlscyAmJiByZXZpZXdlckRldGFpbHMuZW1wbG95ZWVJZCApPyB7XHJcbiAgICAgICAgICAgIGxldmVsMToge1xyXG4gICAgICAgICAgICAgIHJldmlld2VyczogW3tcclxuICAgICAgICAgICAgICAgIG1lbWJlcl9pZDogcmV2aWV3ZXJEZXRhaWxzID8gcmV2aWV3ZXJEZXRhaWxzLmVtcGxveWVlSWQgOiAwLFxyXG4gICAgICAgICAgICAgICAgcmV2aWV3ZXJfYWNjZXB0OiAwXHJcbiAgICAgICAgICAgICAgfV0sXHJcbiAgICAgICAgICAgICAgdHlwZTogXCJTRVFVRU5USUFMXCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfTp7fVxyXG4gICAgICAgICAgLFxyXG4gICAgICAgICAgcmV2aWV3ZXJXaW5kb3c6IHJlcG9ydC5yZXZpZXdUb0JlQ29tcGxldGVkV2l0aGluID09PSAnJyA/IDIgOiByZXBvcnQucmV2aWV3VG9CZUNvbXBsZXRlZFdpdGhpbixcclxuICAgICAgICAgIHJldmlld2VyRmFpbHVyZTogcmVwb3J0LnJldmlld1dpbGxCZUZhaWxlZEFmdGVyID09PSAnJyA/IDIgOiByZXBvcnQucmV2aWV3V2lsbEJlRmFpbGVkQWZ0ZXIsXHJcbiAgICAgICAgICByZXZpZXdlcl9lbWFpbDogcmV2aWV3ZXJEZXRhaWxzID8gcmV2aWV3ZXJEZXRhaWxzLmVtYWlsIDogJycsXHJcbiAgICAgICAgICBmb3JtYXRGb3JSZXNwb25zaWJpbGl0eTogcmVwb3J0LmZvcm1hdEZvclJlc3BvbnNpYmlsaXR5ID8gcmVwb3J0LmZvcm1hdEZvclJlc3BvbnNpYmlsaXR5IDogJycsXHJcbiAgICAgICAgICBkb2N1bWVudGFyeUV2aWRlbmNlOiByZXBvcnQubm90ZXMgPz8gJycsXHJcbiAgICAgICAgICBpc2RvY3VtZW50YXJ5RXZpZGVuY2U6IChyZXBvcnQuZG9jdW1lbnRFdmlkZW5jZVJlcXVpcmVkID09PSAnWWVzJykgPyAxIDogMCxcclxuICAgICAgICAgIG9iamVjdGl2ZTogcmVwb3J0Lm9iamVjdGl2ZSA/PyAnJyxcclxuICAgICAgICAgIGV4Y2VsX3NoZWV0X2luZm86IHRoaXMuZmlsZVJlc3BvbnNlLFxyXG4gICAgICAgICAgc2hvd0xpc3Q6IGZhbHNlLFxyXG4gICAgICAgICAgY3VzdG9tX3RhZ3M6ICdbXScsXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBwYXlsb2FkLnB1c2gob2JqKTtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlLmFkZEJ1bGtSZXNwb25zaWJpbGl0eShwYXlsb2FkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2hvd0V4Y2VsID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XHJcbiAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlEYXRhID0gcmVzO1xyXG5cclxuICAgIH0sXHJcbiAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd0V4Y2VsID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zbmFja0Jhci5zaG93KCdPT1BTISBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgdGhlIHBhZ2UgY291bGQgbm90IGJlIGxvYWRlZC4gQ291bGQgeW91IHBsZWFzZSB0cnkgb25lIG1vcmUgdGltZT8nKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG5cclxuICByZXR1cm5JZHMoaXRlbTogYW55LCBrZXk6IHN0cmluZykge1xyXG4gICAgc3dpdGNoIChrZXkpIHtcclxuICAgICAgY2FzZSAncmNfaWQnOlxyXG4gICAgICAgIGxldCByY09iaiA9IHsgbmFtZTogJycsIHJjSWQ6IDAsIHBhcmVudElkczogW10gfTtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlSW5mby5yY0xpc3QuZm9yRWFjaCgocmNfZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmNfZWxlbWVudC5uYW1lID09IGl0ZW0pIHtcclxuICAgICAgICAgICAgbGV0IG5hbWU7XHJcbiAgICAgICAgICAgIGlmIChyY19lbGVtZW50Lm5hbWUuaW5jbHVkZXMoJ1tXSVRISU5dJykpIHtcclxuICAgICAgICAgICAgICBuYW1lID0gcmNfZWxlbWVudC5uYW1lLnNwbGl0KCcgW1dJVEhJTl0gJylbMF1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBuYW1lID0gcmNfZWxlbWVudC5uYW1lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJjT2JqID0geyBuYW1lLCByY0lkOiByY19lbGVtZW50LnJjX2lkLCBwYXJlbnRJZHM6IHJjX2VsZW1lbnQucGFyZW50SWRzIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJjT2JqXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3Jldmlld2VyJzpcclxuICAgICAgICBsZXQgcmV2aWV3ZXJPYmogPSB7IG5hbWU6ICcnLCBlbXBsb3llZUlkOiAwLCBlbWFpbDogJycgfTtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlSW5mby5hc3NpZ25lZXNMaXN0LmZvckVhY2goKHJldmlld2VyRWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmV2aWV3ZXJFbGVtZW50Lm5hbWVBbmRFbWFpbCA9PSBpdGVtKSB7XHJcbiAgICAgICAgICAgIHJldmlld2VyT2JqID0ge1xyXG4gICAgICAgICAgICAgIG5hbWU6IHJldmlld2VyRWxlbWVudC5uYW1lLFxyXG4gICAgICAgICAgICAgIGVtcGxveWVlSWQ6IHJldmlld2VyRWxlbWVudC5teV9tZW1iZXJfaWQsXHJcbiAgICAgICAgICAgICAgZW1haWw6IHJldmlld2VyRWxlbWVudC5lbWFpbFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJldmlld2VyT2JqO1xyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYXNzaWdub3InOlxyXG4gICAgICAgIGxldCBhc3NpZ25vck9iaiA9IHsgbmFtZTogJycsIG1lbWJlcklkOiAwLCBlbWFpbDogJycgfTtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlSW5mby5hc3NpZ25vcnNMaXN0LmZvckVhY2goKGFzc2lnbm9yRWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoYXNzaWdub3JFbGVtZW50Lm5hbWVBbmRFbWFpbCA9PSBpdGVtKSB7XHJcbiAgICAgICAgICAgIGFzc2lnbm9yT2JqID0ge1xyXG4gICAgICAgICAgICAgIG5hbWU6IGFzc2lnbm9yRWxlbWVudC5uYW1lLFxyXG4gICAgICAgICAgICAgIGVtYWlsOiBhc3NpZ25vckVsZW1lbnQuZW1haWwsXHJcbiAgICAgICAgICAgICAgbWVtYmVySWQ6IGFzc2lnbm9yRWxlbWVudC5tZW1iZXJfaWRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBhc3NpZ25vck9iajtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2NjJzpcclxuICAgICAgICBsZXQgY2NPYmogPSB7IG5hbWU6ICcnLCBlbXBsb3llZUlkOiAwLCBlbWFpbDogJycgfVxyXG4gICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLmFzc2lnbmVlc0xpc3QuZm9yRWFjaCgoY2NFbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChjY0VsZW1lbnQubmFtZUFuZEVtYWlsID09IGl0ZW0pIHtcclxuICAgICAgICAgICAgY2NPYmogPSB7XHJcbiAgICAgICAgICAgICAgbmFtZTogY2NFbGVtZW50Lm5hbWUsXHJcbiAgICAgICAgICAgICAgZW1wbG95ZWVJZDogY2NFbGVtZW50LmVtcGxveWVlX2lkLFxyXG4gICAgICAgICAgICAgIGVtYWlsOiBjY0VsZW1lbnQuZW1haWxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBjY09iajtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY2NGYWlsdXJlJzpcclxuICAgICAgICBsZXQgY2NmT2JqID0geyBuYW1lOiAnJywgZW1wbG95ZWVJZDogMCwgZW1haWw6ICcnIH07XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8uYXNzaWduZWVzTGlzdC5mb3JFYWNoKChjY2ZFbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChjY2ZFbGVtZW50Lm5hbWVBbmRFbWFpbCA9PSBpdGVtKSB7XHJcbiAgICAgICAgICAgIGNjZk9iaiA9IHtcclxuICAgICAgICAgICAgICBuYW1lOiBjY2ZFbGVtZW50Lm5hbWUsXHJcbiAgICAgICAgICAgICAgZW1wbG95ZWVJZDogY2NmRWxlbWVudC5lbXBsb3llZV9pZCxcclxuICAgICAgICAgICAgICBlbWFpbDogY2NmRWxlbWVudC5lbWFpbFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGNjZk9iajtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ2VudHJ1c3RlZF90byc6XHJcbiAgICAgICAgbGV0IGVtcElkID0gMFxyXG4gICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLmFzc2lnbmVlc0xpc3QuZm9yRWFjaCgoZW5FbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbkVsZW1lbnQubmFtZUFuZEVtYWlsID09IGl0ZW0pIHtcclxuXHJcbiAgICAgICAgICAgIGVtcElkID0gZW5FbGVtZW50LmVtcGxveWVlX2lkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBlbXBJZFxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjYXRlZ29yeV9pZCc6XHJcbiAgICAgICAgbGV0IGNhdElkID0gMFxyXG4gICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLmNhdGVnb3J5TGlzdC5mb3JFYWNoKChjYXRlZ29yeTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoY2F0ZWdvcnkubmFtZSA9PSBpdGVtKSB7XHJcbiAgICAgICAgICAgIGNhdElkID0gY2F0ZWdvcnkuY2F0ZWdvcnlfaWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGNhdElkO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAncmlza19jbGFzcyc6XHJcblxyXG4gICAgICAgIGlmIChpdGVtID09ICdMb3cnKSB7XHJcbiAgICAgICAgICByZXR1cm4gMVxyXG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbSA9PSAnTG93LU1lZGl1bScpIHtcclxuICAgICAgICAgIHJldHVybiAyXHJcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtID09ICdNZWRpdW0tSGlnaCcpIHtcclxuICAgICAgICAgIHJldHVybiAzXHJcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtID09ICdIaWdoJykge1xyXG4gICAgICAgICAgcmV0dXJuIDRcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIDBcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZCA9IHtcclxuICAgICAgaGVhZGVyOiBbXSxcclxuICAgICAgcmVwb3J0czogW10sXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50ZW1wbGF0ZUluZm8gPSB7XHJcbiAgICAgIGNhdGVnb3J5TGlzdDogW10sXHJcbiAgICAgIHJjTGlzdDogW10sXHJcbiAgICAgIGFzc2lnbm9yc0xpc3Q6IFtdLFxyXG4gICAgICBhc3NpZ25lZXNMaXN0OiBbXSxcclxuICAgICAgbWVtYmVySWQ6ICcnXHJcblxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNGaWxlRW1wdHkgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNXcm9uZ0ZpbGUgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IGZhbHNlO1xyXG4gICAgdGhpcy5maWxlTmFtZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuZGF0YSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2hvd0V4Y2VsID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcclxuXHJcbiAgfVxyXG4gIGFjdGlvbihldmVudDogc3RyaW5nKSB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50KSB7XHJcbiAgICAgIGNhc2UgJ2FkZE1vcmUnOlxyXG4gICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndmlldyc6XHJcbiAgICAgICAgdGhpcy52aWV3UmVzcG9uc2liaWxpdGllcygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VTbWlsZXkoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dDogdGhpcy5yZXNwb25zaWJpbGl0eURhdGEsIGNvbmZpcm06IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgdmlld1Jlc3BvbnNpYmlsaXRpZXMoKTogdm9pZCB7XHJcbiAgICBsZXQgdXJsOiBzdHJpbmc7XHJcbiAgICBsZXQgdXJsU3Vic3RyaW5nID0gJyc7XHJcbiAgICB0aGlzLmRpc2Nvbm5lY3RSZWZyZXNoLmVtaXQoZmFsc2UpO1xyXG4gICAgaWYgKHRoaXMuaXNOb3RpZmljYXRpb25QZW5kaW5nKSB7XHJcbiAgICAgIHVybFN1YnN0cmluZyA9ICdjb21wbGlhbmNlL21hbmFnZS1yZXNwb25zaWJpbGl0aWVzL3Jlc3BvbnNpYmlsaXRpZXMtcXVldWUnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdXJsU3Vic3RyaW5nID0gJ2NvbXBsaWFuY2UvbWFuYWdlLXJlc3BvbnNpYmlsaXRpZXMnO1xyXG4gICAgfVxyXG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0LnN0YXJ0c1dpdGgoJ2xvY2FsaG9zdCcpKSB7XHJcbiAgICAgIHVybCA9ICdodHRwOi8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0ICsgJy9jb21wbGlhbmNlLyMvJyArIHVybFN1YnN0cmluZztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHVybCA9ICdodHRwczovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArICcvY29tcGxpYW5jZS8jLycgKyB1cmxTdWJzdHJpbmc7XHJcbiAgICB9XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcclxuICB9XHJcblxyXG4gIC8vIFVwbG9hZCBGaWxlIHRvIHRoZSBzZXJ2ZXJcclxuICBmaWxlVXBsb2FkKCkge1xyXG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGNvbnN0IGZpbGUgPSB0aGlzLnVwbG9hZGVkRmlsZXNbMF1bMF07XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3NvdXJjZWZpbGUnLCBmaWxlKTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZCgnZGVzdGluYXRpb24nLCAnYnVsa3VwbG9hZC9lbnRydXN0LycgKyB0aGlzLnVzZXJJbmZvLmVtYWlsKTtcclxuICAgIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlLmZpbGVVcGxvYWQoZm9ybURhdGEpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcz8uZmlsZW5hbWUpIHtcclxuICAgICAgICB0aGlzLmZpbGVSZXNwb25zZS5wdXNoKHJlcyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuXHJcbiAgICB9LCBlcnIgPT4ge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc25hY2tCYXIuc2hvdygnT09QUyEgU29tZXRoaW5nIHdlbnQgd3JvbmcgYW5kIHRoZSBwYWdlIGNvdWxkIG5vdCBiZSBsb2FkZWQuIENvdWxkIHlvdSBwbGVhc2UgdHJ5IG9uZSBtb3JlIHRpbWU/Jyk7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=