@cqa-lib/cqa-ui 1.1.218 → 1.1.219

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 (42) hide show
  1. package/esm2020/lib/execution-screen/ai-action-step/ai-action-step.component.mjs +44 -8
  2. package/esm2020/lib/execution-screen/ai-agent-step/ai-agent-step.component.mjs +44 -8
  3. package/esm2020/lib/execution-screen/api-step/api-step.component.mjs +44 -8
  4. package/esm2020/lib/execution-screen/basic-step/basic-step.component.mjs +53 -9
  5. package/esm2020/lib/execution-screen/condition-step/condition-step.component.mjs +56 -9
  6. package/esm2020/lib/execution-screen/db-verification-step/db-verification-step.component.mjs +48 -12
  7. package/esm2020/lib/execution-screen/document-verification-step/document-verification-step.component.mjs +41 -5
  8. package/esm2020/lib/execution-screen/execution-step.models.mjs +14 -2
  9. package/esm2020/lib/execution-screen/failed-step/failed-step.component.mjs +41 -5
  10. package/esm2020/lib/execution-screen/file-download-step/file-download-step.component.mjs +42 -6
  11. package/esm2020/lib/execution-screen/live-execution-step/live-execution-step.component.mjs +42 -5
  12. package/esm2020/lib/execution-screen/loop-step/loop-step.component.mjs +65 -11
  13. package/esm2020/lib/execution-screen/main-step-collapse/main-step-collapse.component.mjs +41 -4
  14. package/esm2020/lib/execution-screen/session-changes-modal/session-changes-modal.component.mjs +83 -0
  15. package/esm2020/lib/execution-screen/step-group/step-group.component.mjs +53 -6
  16. package/esm2020/lib/execution-screen/step-renderer/step-renderer.component.mjs +297 -28
  17. package/esm2020/lib/ui-kit.module.mjs +6 -1
  18. package/esm2020/public-api.mjs +2 -1
  19. package/fesm2015/cqa-lib-cqa-ui.mjs +961 -89
  20. package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
  21. package/fesm2020/cqa-lib-cqa-ui.mjs +947 -89
  22. package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
  23. package/lib/execution-screen/ai-action-step/ai-action-step.component.d.ts +12 -2
  24. package/lib/execution-screen/ai-agent-step/ai-agent-step.component.d.ts +12 -2
  25. package/lib/execution-screen/api-step/api-step.component.d.ts +12 -2
  26. package/lib/execution-screen/basic-step/basic-step.component.d.ts +18 -2
  27. package/lib/execution-screen/condition-step/condition-step.component.d.ts +21 -2
  28. package/lib/execution-screen/db-verification-step/db-verification-step.component.d.ts +12 -2
  29. package/lib/execution-screen/document-verification-step/document-verification-step.component.d.ts +12 -2
  30. package/lib/execution-screen/execution-step.models.d.ts +14 -0
  31. package/lib/execution-screen/failed-step/failed-step.component.d.ts +11 -2
  32. package/lib/execution-screen/file-download-step/file-download-step.component.d.ts +12 -2
  33. package/lib/execution-screen/live-execution-step/live-execution-step.component.d.ts +12 -2
  34. package/lib/execution-screen/loop-step/loop-step.component.d.ts +23 -2
  35. package/lib/execution-screen/main-step-collapse/main-step-collapse.component.d.ts +18 -2
  36. package/lib/execution-screen/session-changes-modal/session-changes-modal.component.d.ts +34 -0
  37. package/lib/execution-screen/step-group/step-group.component.d.ts +23 -2
  38. package/lib/execution-screen/step-renderer/step-renderer.component.d.ts +33 -3
  39. package/lib/ui-kit.module.d.ts +72 -71
  40. package/package.json +1 -1
  41. package/public-api.d.ts +1 -0
  42. package/styles.css +1 -1
@@ -1,15 +1,26 @@
1
1
  import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { DEFAULT_ADD_STEP_MENU_OPTIONS, DEFAULT_STEP_MORE_MENU_OPTIONS } from '../execution-step.models';
2
3
  import { BaseStepComponent } from '../base-step.component';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "@angular/material/icon";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/material/tooltip";
6
+ import * as i2 from "@angular/material/menu";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "@angular/material/tooltip";
7
9
  export class DocumentVerificationStepComponent extends BaseStepComponent {
8
10
  constructor() {
9
11
  super(...arguments);
10
12
  this.isDebug = false;
11
13
  this.debugPointSet = false;
12
14
  this.debugPointChange = new EventEmitter();
15
+ this.editStep = new EventEmitter();
16
+ this.addStepOptionSelect = new EventEmitter();
17
+ this.stepMoreOptionSelect = new EventEmitter();
18
+ this.addStepMenuOptions = DEFAULT_ADD_STEP_MENU_OPTIONS;
19
+ this.stepMoreMenuOptions = DEFAULT_STEP_MORE_MENU_OPTIONS;
20
+ }
21
+ /** Show debug icon only when this step has no child steps (leaf step: always show when isDebug). */
22
+ get showDebugIcon() {
23
+ return this.isDebug === true;
13
24
  }
14
25
  ngOnInit() {
15
26
  // Build config from individual inputs
@@ -46,6 +57,21 @@ export class DocumentVerificationStepComponent extends BaseStepComponent {
46
57
  console.log('Copied to clipboard:', text);
47
58
  });
48
59
  }
60
+ onEditStep(event) {
61
+ event.preventDefault();
62
+ event.stopPropagation();
63
+ this.editStep.emit();
64
+ }
65
+ onAddStepOptionSelect(option, event) {
66
+ event.preventDefault();
67
+ event.stopPropagation();
68
+ this.addStepOptionSelect.emit(option);
69
+ }
70
+ onStepMoreOptionSelect(option, event) {
71
+ event.preventDefault();
72
+ event.stopPropagation();
73
+ this.stepMoreOptionSelect.emit(option);
74
+ }
49
75
  onJumpToTimestamp(event) {
50
76
  event.stopPropagation();
51
77
  if (this.jumpToTimestampHandler && this.step?.executedResult?.video_start_time !== undefined && this.step?.executedResult?.video_start_time !== null) {
@@ -60,10 +86,10 @@ export class DocumentVerificationStepComponent extends BaseStepComponent {
60
86
  }
61
87
  }
62
88
  DocumentVerificationStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DocumentVerificationStepComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
63
- DocumentVerificationStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: DocumentVerificationStepComponent, selector: "cqa-document-verification-step", inputs: { id: "id", stepNumber: "stepNumber", title: "title", status: "status", duration: "duration", timingBreakdown: "timingBreakdown", expanded: "expanded", documentScreenshot: "documentScreenshot", extractedFields: "extractedFields", verificationChecks: "verificationChecks", step: "step", jumpToTimestampHandler: "jumpToTimestampHandler", isDebug: "isDebug", debugPointSet: "debugPointSet" }, outputs: { debugPointChange: "debugPointChange" }, host: { classAttribute: "cqa-ui-root" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div>\n <!-- Header -->\n <div\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-p-2 cqa-cursor-pointer\"\n (click)=\"toggle()\">\n <div *ngIf=\"isDebug\" class=\"cqa-flex cqa-items-center cqa-justify-center\">\n <button type=\"button\" class=\"cqa-p-0 cqa-border-0 cqa-bg-transparent cqa-cursor-pointer cqa-rounded-full hover:cqa-opacity-80 cqa-transition-opacity focus:cqa-outline-none\" (click)=\"onDebugPointClick($event)\" [attr.aria-label]=\"debugPointSet ? 'Remove debug point' : 'Set debug point'\">\n <svg *ngIf=\"debugPointSet\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"7\" cy=\"7\" r=\"6\" fill=\"#C63535\"/>\n </svg>\n <svg *ngIf=\"!debugPointSet\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"7\" cy=\"7\" r=\"6\" stroke=\"#C63535\" stroke-width=\"1.5\" fill=\"none\"/>\n </svg>\n </button>\n </div>\n <!-- Status Icon -->\n <div *ngIf=\"config.status.toLowerCase() === 'success'\" ><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.9005 4.99999C11.1289 6.12064 10.9662 7.28571 10.4395 8.30089C9.91279 9.31608 9.054 10.12 8.00631 10.5787C6.95862 11.0373 5.78536 11.1229 4.6822 10.8212C3.57904 10.5195 2.61265 9.84869 1.94419 8.92071C1.27573 7.99272 0.945611 6.86361 1.00888 5.72169C1.07215 4.57976 1.52499 3.49404 2.29188 2.64558C3.05876 1.79712 4.09334 1.23721 5.22308 1.05922C6.35282 0.881233 7.50944 1.09592 8.50005 1.66749\" stroke=\"#22C55E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.5 5.5L6 7L11 2\" stroke=\"#22C55E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <div *ngIf=\"config.status.toLowerCase() === 'failure'\"><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7.5 4.5L4.5 7.5\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.5 4.5L7.5 7.5\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n\n <!-- Document Icon -->\n <div><svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"20\" height=\"16\" rx=\"4\" fill=\"#E6F4FF\"/><path d=\"M12 5.5C12 6.03043 11.7893 6.53914 11.4142 6.91421C11.0391 7.28929 10.5304 7.5 10 7.5C9.46957 7.5 8.96086 7.28929 8.58579 6.91421C8.21071 6.53914 8 6.03043 8 5.5C8 4.96957 8.21071 4.46086 8.58579 4.08579C8.96086 3.71071 9.46957 3.5 10 3.5C10.5304 3.5 11.0391 3.71071 11.4142 4.08579C11.7893 4.46086 12 4.96957 12 5.5ZM10 9C9.07174 9 8.1815 9.36875 7.52513 10.0251C6.86875 10.6815 6.5 11.5717 6.5 12.5H13.5C13.5 11.5717 13.1313 10.6815 12.4749 10.0251C11.8185 9.36875 10.9283 9 10 9Z\" stroke=\"#0A86E6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n\n <!-- Step Number and Title -->\n <div class=\"cqa-flex-1 cqa-flex cqa-items-center cqa-gap-3\">\n <span class=\"cqa-font-semibold cqa-text-[#334155] cqa-text-[14px] cqa-leading-[18px]\" style=\"word-break: break-word;\">\n {{ config.stepNumber }}. <span [innerHTML]=\"config.title\"></span>\n </span>\n <span class=\"cqa-px-1.5 cqa-rounded-full cqa-font-medium cqa-text-[#0A86E6] cqa-bg-[#E6F4FF] cqa-text-[10px] cqa-leading-[15px]\">\n Document Verification\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-items-center cqa-gap-1\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-1 cqa-rounded-[4px] cqa-py-0.5 cqa-px-1 cqa-bg-[#6366F11A] cqa-ml-1 cqa-cursor-pointer hover:cqa-opacity-80 cqa-transition-opacity\" \n *ngIf=\"step?.executedResult?.video_start_time\" \n [matTooltip]=\"'Jump to video time'\" \n matTooltipPosition=\"below\"\n (click)=\"onJumpToTimestamp($event)\">\n <mat-icon class=\"cqa-text-[#636363] !cqa-text-[10px] !cqa-w-[10px] !cqa-h-[10px]\">\n play_arrow\n </mat-icon>\n <span class=\"cqa-text-[8px] cqa-leading-[12px] cqa-font-normal cqa-text-[#636363]\">\n {{ formatDurationClock(step?.executedResult?.video_start_time || 0) }}\n </span>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[15px] cqa-text-[#9CA3AF]\">\n {{ formatDuration(config.duration) }}\n </span>\n <svg [class.cqa-rotate-180]=\"isExpanded\" class=\"cqa-transition-transform\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.5 5L7 8.5L10.5 5\" stroke=\"#9CA3AF\" stroke-width=\"0.833333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n </div>\n\n <!-- Expanded Content -->\n <div *ngIf=\"isExpanded\" class=\"cqa-bg-[#FFFEF9] cqa-mt-1.5 cqa-ml-9 cqa-mr-6 cqa-p-4 cqa-flex cqa-flex-col cqa-gap-1.5\" style=\"border-top: 1px solid #E4E4E4;\">\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-3\">\n <!-- Document Screenshot Card -->\n <div class=\"cqa-bg-[#FCFCFC] cqa-rounded-lg cqa-p-3 cqa-flex cqa-flex-col\" style=\"border: 1px solid #EDE9FE\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-mb-2\">\n <span class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#636363]\">Document Screenshot</span>\n <button>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 4H5C4.44772 4 4 4.44772 4 5V10C4 10.5523 4.44772 11 5 11H10C10.5523 11 11 10.5523 11 10V5C11 4.44772 10.5523 4 10 4Z\" stroke=\"#636363\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 8C1.45 8 1 7.55 1 7V2C1 1.45 1.45 1 2 1H7C7.55 1 8 1.45 8 2\" stroke=\"#636363\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n </div>\n <div class=\"cqa-border cqa-border-solid cqa-border-[#E5E5E5] cqa-rounded-[10px] cqa-bg-[#F5F5F5] cqa-aspect-video cqa-h-full cqa-flex cqa-items-center cqa-justify-center\">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25.3333 4H6.66667C5.19391 4 4 5.19391 4 6.66667V25.3333C4 26.8061 5.19391 28 6.66667 28H25.3333C26.8061 28 28 26.8061 28 25.3333V6.66667C28 5.19391 26.8061 4 25.3333 4Z\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 14.6666C13.4727 14.6666 14.6666 13.4727 14.6666 11.9999C14.6666 10.5272 13.4727 9.33325 12 9.33325C10.5272 9.33325 9.33331 10.5272 9.33331 11.9999C9.33331 13.4727 10.5272 14.6666 12 14.6666Z\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M28 19.9999L23.8853 15.8853C23.3853 15.3853 22.7071 15.1045 22 15.1045C21.2929 15.1045 20.6147 15.3853 20.1147 15.8853L8 27.9999\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n </div>\n\n <!-- Extracted Fields Card -->\n <div class=\"cqa-bg-[#FCFCFC] cqa-rounded-lg cqa-p-3 cqa-flex cqa-flex-col\" style=\"border: 1px solid #EDE9FE\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-mb-2\">\n <span class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#636363]\">Extracted Fields</span>\n <button>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 4H5C4.44772 4 4 4.44772 4 5V10C4 10.5523 4.44772 11 5 11H10C10.5523 11 11 10.5523 11 10V5C11 4.44772 10.5523 4 10 4Z\" stroke=\"#636363\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 8C1.45 8 1 7.55 1 7V2C1 1.45 1.45 1 2 1H7C7.55 1 8 1.45 8 2\" stroke=\"#636363\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n </div>\n <div class=\"cqa-flex cqa-flex-col cqa-bg-white cqa-border cqa-border-solid cqa-border-[#C6D2FF] cqa-rounded-lg\">\n <div\n *ngFor=\"let field of config.extractedFields\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-px-3 cqa-pt-1 cqa-pb-1.5 cqa-border-b cqa-border-t-0 cqa-border-l-0 cqa-border-r-0 cqa-border-solid cqa-border-[#E4E4E4] last:cqa-border-0\">\n <div class=\"cqa-flex-1\">\n <div class=\"cqa-text-[8px] cqa-leading-[12px] cqa-text-[#636363]\">{{ field.label }}</div>\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0B0B0B]\">{{ field.value }}</div>\n </div>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <span class=\"cqa-px-2 cqa-py-[2px] cqa-rounded cqa-font-medium cqa-text-[#008236] cqa-bg-[#DCFCE7] cqa-text-[10px] cqa-leading-[15px]\">\n {{ field.confidence }}%\n </span>\n <button\n (click)=\"copyToClipboard(field.value)\"\n class=\"cqa-p-1\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.6667 4.66675H5.83332C5.18899 4.66675 4.66666 5.18908 4.66666 5.83341V11.6667C4.66666 12.3111 5.18899 12.8334 5.83332 12.8334H11.6667C12.311 12.8334 12.8333 12.3111 12.8333 11.6667V5.83341C12.8333 5.18908 12.311 4.66675 11.6667 4.66675Z\" stroke=\"#636363\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.33332 9.33341C1.69166 9.33341 1.16666 8.80841 1.16666 8.16675V2.33341C1.16666 1.69175 1.69166 1.16675 2.33332 1.16675H8.16666C8.80832 1.16675 9.33332 1.69175 9.33332 2.33341\" stroke=\"#636363\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Verification Checks -->\n <div class=\"cqa-mt-1.5\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-mb-2\">\n <div><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6.00004 3.33333H4.66671C4.31309 3.33333 3.97395 3.47381 3.7239 3.72386C3.47385 3.97391 3.33337 4.31304 3.33337 4.66667V12.6667C3.33337 13.0203 3.47385 13.3594 3.7239 13.6095C3.97395 13.8595 4.31309 14 4.66671 14H11.3334C11.687 14 12.0261 13.8595 12.2762 13.6095C12.5262 13.3594 12.6667 13.0203 12.6667 12.6667V4.66667C12.6667 4.31304 12.5262 3.97391 12.2762 3.72386C12.0261 3.47381 11.687 3.33333 11.3334 3.33333H10M6.00004 3.33333C6.00004 3.68696 6.14052 4.02609 6.39057 4.27614C6.64061 4.52619 6.97975 4.66667 7.33337 4.66667H8.66671C9.02033 4.66667 9.35947 4.52619 9.60952 4.27614C9.85956 4.02609 10 3.68696 10 3.33333M6.00004 3.33333C6.00004 2.97971 6.14052 2.64057 6.39057 2.39052C6.64061 2.14048 6.97975 2 7.33337 2H8.66671C9.02033 2 9.35947 2.14048 9.60952 2.39052C9.85956 2.64057 10 2.97971 10 3.33333M6.00004 9.33333L7.33337 10.6667L10 8\" stroke=\"#615FFF\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <span class=\"cqa-text-[12px] cqa-leading-[15px] cqa-font-semibold cqa-text-[#0B0B0B]\">Verification Checks</span>\n </div>\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div\n *ngFor=\"let check of config.verificationChecks\"\n [ngClass]=\"{\n 'cqa-bg-[#F0FDF4] cqa-border-[#B9F8CF]': check.status === 'pass',\n 'cqa-bg-[#FEF2F2] cqa-border-[#FFC9C9]': check.status === 'fail'\n }\"\n class=\"cqa-border cqa-border-solid cqa-rounded-lg cqa-p-3\">\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2 cqa-mb-2\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <!-- <mat-icon\n [ngClass]=\"check.status === 'pass' ? 'cqa-text-green-600' : 'cqa-text-red-600'\"\n class=\"!cqa-w-5 !cqa-h-5 !cqa-text-[20px]\">\n {{ check.status === 'pass' ? 'check_circle' : 'cancel' }}\n </mat-icon> -->\n <div><svg width=\"16\" height=\"18\" viewBox=\"0 0 16 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13.3333 6L5.99996 13.3333L2.66663 10\" stroke=\"#00A63E\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <span class=\"cqa-text-[12px] cqa-leading-[15px] cqa-font-semibold cqa-text-[#0B0B0B]\">{{ check.description }}</span>\n </div>\n <span\n [ngClass]=\"{\n 'cqa-text-[#008236] cqa-bg-[#DCFCE7]': check.status === 'pass',\n 'cqa-text-[#C10007] cqa-bg-[#FFE2E2]': check.status === 'fail'\n }\"\n class=\"cqa-px-2 cqa-py-[2px] cqa-rounded cqa-font-medium cqa-text-[10px] cqa-leading-[15px]\">\n {{ check.status === 'pass' ? 'PASS' : 'FAIL' }}\n </span>\n </div>\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-3 cqa-pl-6\">\n <div>\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#636363] cqa-mb-1\">Expected</div>\n <input\n type=\"text\"\n [value]=\"check.expected\"\n readonly\n class=\"cqa-w-full cqa-py-1.5 cqa-px-2 !cqa-border !cqa-border-solid !cqa-border-[#E4E4E4] cqa-rounded !cqa-bg-white cqa-text-[11px] cqa-leading-[13px] cqa-text-[#0B0B0B]\"\n />\n </div>\n <div>\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#636363] cqa-mb-1\">Actual</div>\n <input\n type=\"text\"\n [value]=\"check.actual\"\n readonly\n class=\"cqa-w-full cqa-py-1.5 cqa-px-2 !cqa-border !cqa-border-solid !cqa-border-[#E4E4E4] cqa-rounded !cqa-bg-white cqa-text-[11px] cqa-leading-[13px] cqa-text-[#0B0B0B]\"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Timing Breakdown -->\n </div>\n <div *ngIf=\"config.timingBreakdown\" class=\"cqa-flex cqa-items-center cqa-justify-end cqa-gap-5 cqa-pt-1.5 cqa-px-4 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#9CA3AF]\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\" stroke=\"#9CA3AF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 3V6L8 7\" stroke=\"#9CA3AF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <span>Timing breakdown</span>\n </div>\n <span class=\"cqa-text-dialog-muted cqa-flex cqa-items-center cqa-gap-3\">\n <div>\n App <span class=\"cqa-text-gray-700\">{{ formatDuration(config.timingBreakdown.app) }}</span>\n </div>\n <div><svg width=\"1\" height=\"11\" viewBox=\"0 0 1 11\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M-3.8147e-06 10.32V-7.15256e-07H0.959996V10.32H-3.8147e-06Z\" fill=\"#E5E7EB\"/></svg></div>\n <div>\n Tool <span class=\"cqa-text-gray-700\">{{ formatDuration(config.timingBreakdown.tool) }}</span>\n </div>\n </span>\n </div>\n</div>\n", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
89
+ DocumentVerificationStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: DocumentVerificationStepComponent, selector: "cqa-document-verification-step", inputs: { id: "id", stepNumber: "stepNumber", title: "title", status: "status", duration: "duration", timingBreakdown: "timingBreakdown", expanded: "expanded", documentScreenshot: "documentScreenshot", extractedFields: "extractedFields", verificationChecks: "verificationChecks", step: "step", jumpToTimestampHandler: "jumpToTimestampHandler", isDebug: "isDebug", debugPointSet: "debugPointSet", addStepMenuOptions: "addStepMenuOptions", stepMoreMenuOptions: "stepMoreMenuOptions" }, outputs: { debugPointChange: "debugPointChange", editStep: "editStep", addStepOptionSelect: "addStepOptionSelect", stepMoreOptionSelect: "stepMoreOptionSelect" }, host: { classAttribute: "cqa-ui-root" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div>\n <!-- Header -->\n <div\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-p-2 cqa-cursor-pointer\"\n (click)=\"toggle()\">\n <div *ngIf=\"showDebugIcon\" class=\"cqa-flex cqa-items-center cqa-justify-center\">\n <button type=\"button\" class=\"cqa-p-0 cqa-border-0 cqa-bg-transparent cqa-cursor-pointer cqa-rounded-full hover:cqa-opacity-80 cqa-transition-opacity focus:cqa-outline-none\" (click)=\"onDebugPointClick($event)\" [attr.aria-label]=\"debugPointSet ? 'Remove debug point' : 'Set debug point'\">\n <svg *ngIf=\"debugPointSet\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"7\" cy=\"7\" r=\"6\" fill=\"#C63535\"/>\n </svg>\n <svg *ngIf=\"!debugPointSet\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"7\" cy=\"7\" r=\"6\" stroke=\"#C63535\" stroke-width=\"1.5\" fill=\"none\"/>\n </svg>\n </button>\n </div>\n <!-- Status Icon -->\n <div *ngIf=\"config.status.toLowerCase() === 'success'\" ><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.9005 4.99999C11.1289 6.12064 10.9662 7.28571 10.4395 8.30089C9.91279 9.31608 9.054 10.12 8.00631 10.5787C6.95862 11.0373 5.78536 11.1229 4.6822 10.8212C3.57904 10.5195 2.61265 9.84869 1.94419 8.92071C1.27573 7.99272 0.945611 6.86361 1.00888 5.72169C1.07215 4.57976 1.52499 3.49404 2.29188 2.64558C3.05876 1.79712 4.09334 1.23721 5.22308 1.05922C6.35282 0.881233 7.50944 1.09592 8.50005 1.66749\" stroke=\"#22C55E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.5 5.5L6 7L11 2\" stroke=\"#22C55E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <div *ngIf=\"config.status.toLowerCase() === 'failure'\"><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7.5 4.5L4.5 7.5\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.5 4.5L7.5 7.5\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n\n <!-- Document Icon -->\n <div><svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"20\" height=\"16\" rx=\"4\" fill=\"#E6F4FF\"/><path d=\"M12 5.5C12 6.03043 11.7893 6.53914 11.4142 6.91421C11.0391 7.28929 10.5304 7.5 10 7.5C9.46957 7.5 8.96086 7.28929 8.58579 6.91421C8.21071 6.53914 8 6.03043 8 5.5C8 4.96957 8.21071 4.46086 8.58579 4.08579C8.96086 3.71071 9.46957 3.5 10 3.5C10.5304 3.5 11.0391 3.71071 11.4142 4.08579C11.7893 4.46086 12 4.96957 12 5.5ZM10 9C9.07174 9 8.1815 9.36875 7.52513 10.0251C6.86875 10.6815 6.5 11.5717 6.5 12.5H13.5C13.5 11.5717 13.1313 10.6815 12.4749 10.0251C11.8185 9.36875 10.9283 9 10 9Z\" stroke=\"#0A86E6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n\n <!-- Step Number and Title -->\n <div class=\"cqa-flex-1 cqa-flex cqa-items-center cqa-gap-3\">\n <span class=\"cqa-font-semibold cqa-text-[#334155] cqa-text-[14px] cqa-leading-[18px]\" style=\"word-break: break-word;\">\n {{ config.stepNumber }}. <span [innerHTML]=\"config.title\"></span>\n </span>\n <span class=\"cqa-px-1.5 cqa-rounded-full cqa-font-medium cqa-text-[#0A86E6] cqa-bg-[#E6F4FF] cqa-text-[10px] cqa-leading-[15px]\">\n Document Verification\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-items-center cqa-gap-1\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-1 cqa-rounded-[4px] cqa-py-0.5 cqa-px-1 cqa-bg-[#6366F11A] cqa-ml-1 cqa-cursor-pointer hover:cqa-opacity-80 cqa-transition-opacity\" \n *ngIf=\"step?.executedResult?.video_start_time\" \n [matTooltip]=\"'Jump to video time'\" \n matTooltipPosition=\"below\"\n (click)=\"onJumpToTimestamp($event)\">\n <mat-icon class=\"cqa-text-[#636363] !cqa-text-[10px] !cqa-w-[10px] !cqa-h-[10px]\">\n play_arrow\n </mat-icon>\n <span class=\"cqa-text-[8px] cqa-leading-[12px] cqa-font-normal cqa-text-[#636363]\">\n {{ formatDurationClock(step?.executedResult?.video_start_time || 0) }}\n </span>\n </div>\n <div *ngIf=\"isDebug\" class=\"cqa-flex cqa-items-center cqa-gap-0.5 cqa-text-[#9CA3AF]\" (click)=\"$event.stopPropagation()\">\n <button type=\"button\" class=\"cqa-p-0 cqa-border-0 cqa-bg-transparent cqa-cursor-pointer hover:cqa-opacity-80 cqa-transition-opacity focus:cqa-outline-none\" aria-label=\"Edit\" (click)=\"onEditStep($event)\">\n <mat-icon class=\"!cqa-text-[14px] !cqa-w-[14px] !cqa-h-[14px]\">edit</mat-icon>\n </button>\n <button type=\"button\" class=\"cqa-p-0 cqa-border-0 cqa-bg-transparent cqa-cursor-pointer hover:cqa-opacity-80 cqa-transition-opacity focus:cqa-outline-none\" aria-label=\"Add\" [matMenuTriggerFor]=\"addStepMenu\">\n <mat-icon class=\"!cqa-text-[14px] !cqa-w-[14px] !cqa-h-[14px]\">add</mat-icon>\n </button>\n <mat-menu #addStepMenu=\"matMenu\" class=\"cqa-add-step-menu\" xPosition=\"before\" yPosition=\"below\">\n <button mat-menu-item *ngFor=\"let opt of addStepMenuOptions\" (click)=\"onAddStepOptionSelect(opt, $event)\">{{ opt.label }}</button>\n </mat-menu>\n <button type=\"button\" class=\"cqa-p-0 cqa-border-0 cqa-bg-transparent cqa-cursor-pointer hover:cqa-opacity-80 cqa-transition-opacity focus:cqa-outline-none\" aria-label=\"More options\" [matMenuTriggerFor]=\"stepMoreMenu\">\n <mat-icon class=\"!cqa-text-[14px] !cqa-w-[14px] !cqa-h-[14px]\">more_vert</mat-icon>\n </button>\n <mat-menu #stepMoreMenu=\"matMenu\" class=\"cqa-step-more-menu\" xPosition=\"before\" yPosition=\"below\">\n <button mat-menu-item *ngFor=\"let opt of stepMoreMenuOptions\" (click)=\"onStepMoreOptionSelect(opt, $event)\">{{ opt.label }}</button>\n </mat-menu>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[15px] cqa-text-[#9CA3AF]\">\n {{ formatDuration(config.duration) }}\n </span>\n <svg [class.cqa-rotate-180]=\"isExpanded\" class=\"cqa-transition-transform\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.5 5L7 8.5L10.5 5\" stroke=\"#9CA3AF\" stroke-width=\"0.833333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n </div>\n\n <!-- Expanded Content -->\n <div *ngIf=\"isExpanded\" class=\"cqa-bg-[#FFFEF9] cqa-mt-1.5 cqa-ml-9 cqa-mr-6 cqa-p-4 cqa-flex cqa-flex-col cqa-gap-1.5\" style=\"border-top: 1px solid #E4E4E4;\">\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-3\">\n <!-- Document Screenshot Card -->\n <div class=\"cqa-bg-[#FCFCFC] cqa-rounded-lg cqa-p-3 cqa-flex cqa-flex-col\" style=\"border: 1px solid #EDE9FE\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-mb-2\">\n <span class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#636363]\">Document Screenshot</span>\n <button>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 4H5C4.44772 4 4 4.44772 4 5V10C4 10.5523 4.44772 11 5 11H10C10.5523 11 11 10.5523 11 10V5C11 4.44772 10.5523 4 10 4Z\" stroke=\"#636363\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 8C1.45 8 1 7.55 1 7V2C1 1.45 1.45 1 2 1H7C7.55 1 8 1.45 8 2\" stroke=\"#636363\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n </div>\n <div class=\"cqa-border cqa-border-solid cqa-border-[#E5E5E5] cqa-rounded-[10px] cqa-bg-[#F5F5F5] cqa-aspect-video cqa-h-full cqa-flex cqa-items-center cqa-justify-center\">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25.3333 4H6.66667C5.19391 4 4 5.19391 4 6.66667V25.3333C4 26.8061 5.19391 28 6.66667 28H25.3333C26.8061 28 28 26.8061 28 25.3333V6.66667C28 5.19391 26.8061 4 25.3333 4Z\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 14.6666C13.4727 14.6666 14.6666 13.4727 14.6666 11.9999C14.6666 10.5272 13.4727 9.33325 12 9.33325C10.5272 9.33325 9.33331 10.5272 9.33331 11.9999C9.33331 13.4727 10.5272 14.6666 12 14.6666Z\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M28 19.9999L23.8853 15.8853C23.3853 15.3853 22.7071 15.1045 22 15.1045C21.2929 15.1045 20.6147 15.3853 20.1147 15.8853L8 27.9999\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n </div>\n\n <!-- Extracted Fields Card -->\n <div class=\"cqa-bg-[#FCFCFC] cqa-rounded-lg cqa-p-3 cqa-flex cqa-flex-col\" style=\"border: 1px solid #EDE9FE\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-mb-2\">\n <span class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#636363]\">Extracted Fields</span>\n <button>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 4H5C4.44772 4 4 4.44772 4 5V10C4 10.5523 4.44772 11 5 11H10C10.5523 11 11 10.5523 11 10V5C11 4.44772 10.5523 4 10 4Z\" stroke=\"#636363\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 8C1.45 8 1 7.55 1 7V2C1 1.45 1.45 1 2 1H7C7.55 1 8 1.45 8 2\" stroke=\"#636363\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n </div>\n <div class=\"cqa-flex cqa-flex-col cqa-bg-white cqa-border cqa-border-solid cqa-border-[#C6D2FF] cqa-rounded-lg\">\n <div\n *ngFor=\"let field of config.extractedFields\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-px-3 cqa-pt-1 cqa-pb-1.5 cqa-border-b cqa-border-t-0 cqa-border-l-0 cqa-border-r-0 cqa-border-solid cqa-border-[#E4E4E4] last:cqa-border-0\">\n <div class=\"cqa-flex-1\">\n <div class=\"cqa-text-[8px] cqa-leading-[12px] cqa-text-[#636363]\">{{ field.label }}</div>\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0B0B0B]\">{{ field.value }}</div>\n </div>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <span class=\"cqa-px-2 cqa-py-[2px] cqa-rounded cqa-font-medium cqa-text-[#008236] cqa-bg-[#DCFCE7] cqa-text-[10px] cqa-leading-[15px]\">\n {{ field.confidence }}%\n </span>\n <button\n (click)=\"copyToClipboard(field.value)\"\n class=\"cqa-p-1\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.6667 4.66675H5.83332C5.18899 4.66675 4.66666 5.18908 4.66666 5.83341V11.6667C4.66666 12.3111 5.18899 12.8334 5.83332 12.8334H11.6667C12.311 12.8334 12.8333 12.3111 12.8333 11.6667V5.83341C12.8333 5.18908 12.311 4.66675 11.6667 4.66675Z\" stroke=\"#636363\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.33332 9.33341C1.69166 9.33341 1.16666 8.80841 1.16666 8.16675V2.33341C1.16666 1.69175 1.69166 1.16675 2.33332 1.16675H8.16666C8.80832 1.16675 9.33332 1.69175 9.33332 2.33341\" stroke=\"#636363\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Verification Checks -->\n <div class=\"cqa-mt-1.5\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-mb-2\">\n <div><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6.00004 3.33333H4.66671C4.31309 3.33333 3.97395 3.47381 3.7239 3.72386C3.47385 3.97391 3.33337 4.31304 3.33337 4.66667V12.6667C3.33337 13.0203 3.47385 13.3594 3.7239 13.6095C3.97395 13.8595 4.31309 14 4.66671 14H11.3334C11.687 14 12.0261 13.8595 12.2762 13.6095C12.5262 13.3594 12.6667 13.0203 12.6667 12.6667V4.66667C12.6667 4.31304 12.5262 3.97391 12.2762 3.72386C12.0261 3.47381 11.687 3.33333 11.3334 3.33333H10M6.00004 3.33333C6.00004 3.68696 6.14052 4.02609 6.39057 4.27614C6.64061 4.52619 6.97975 4.66667 7.33337 4.66667H8.66671C9.02033 4.66667 9.35947 4.52619 9.60952 4.27614C9.85956 4.02609 10 3.68696 10 3.33333M6.00004 3.33333C6.00004 2.97971 6.14052 2.64057 6.39057 2.39052C6.64061 2.14048 6.97975 2 7.33337 2H8.66671C9.02033 2 9.35947 2.14048 9.60952 2.39052C9.85956 2.64057 10 2.97971 10 3.33333M6.00004 9.33333L7.33337 10.6667L10 8\" stroke=\"#615FFF\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <span class=\"cqa-text-[12px] cqa-leading-[15px] cqa-font-semibold cqa-text-[#0B0B0B]\">Verification Checks</span>\n </div>\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div\n *ngFor=\"let check of config.verificationChecks\"\n [ngClass]=\"{\n 'cqa-bg-[#F0FDF4] cqa-border-[#B9F8CF]': check.status === 'pass',\n 'cqa-bg-[#FEF2F2] cqa-border-[#FFC9C9]': check.status === 'fail'\n }\"\n class=\"cqa-border cqa-border-solid cqa-rounded-lg cqa-p-3\">\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2 cqa-mb-2\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <!-- <mat-icon\n [ngClass]=\"check.status === 'pass' ? 'cqa-text-green-600' : 'cqa-text-red-600'\"\n class=\"!cqa-w-5 !cqa-h-5 !cqa-text-[20px]\">\n {{ check.status === 'pass' ? 'check_circle' : 'cancel' }}\n </mat-icon> -->\n <div><svg width=\"16\" height=\"18\" viewBox=\"0 0 16 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13.3333 6L5.99996 13.3333L2.66663 10\" stroke=\"#00A63E\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <span class=\"cqa-text-[12px] cqa-leading-[15px] cqa-font-semibold cqa-text-[#0B0B0B]\">{{ check.description }}</span>\n </div>\n <span\n [ngClass]=\"{\n 'cqa-text-[#008236] cqa-bg-[#DCFCE7]': check.status === 'pass',\n 'cqa-text-[#C10007] cqa-bg-[#FFE2E2]': check.status === 'fail'\n }\"\n class=\"cqa-px-2 cqa-py-[2px] cqa-rounded cqa-font-medium cqa-text-[10px] cqa-leading-[15px]\">\n {{ check.status === 'pass' ? 'PASS' : 'FAIL' }}\n </span>\n </div>\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-3 cqa-pl-6\">\n <div>\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#636363] cqa-mb-1\">Expected</div>\n <input\n type=\"text\"\n [value]=\"check.expected\"\n readonly\n class=\"cqa-w-full cqa-py-1.5 cqa-px-2 !cqa-border !cqa-border-solid !cqa-border-[#E4E4E4] cqa-rounded !cqa-bg-white cqa-text-[11px] cqa-leading-[13px] cqa-text-[#0B0B0B]\"\n />\n </div>\n <div>\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#636363] cqa-mb-1\">Actual</div>\n <input\n type=\"text\"\n [value]=\"check.actual\"\n readonly\n class=\"cqa-w-full cqa-py-1.5 cqa-px-2 !cqa-border !cqa-border-solid !cqa-border-[#E4E4E4] cqa-rounded !cqa-bg-white cqa-text-[11px] cqa-leading-[13px] cqa-text-[#0B0B0B]\"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Timing Breakdown -->\n </div>\n <div *ngIf=\"config.timingBreakdown\" class=\"cqa-flex cqa-items-center cqa-justify-end cqa-gap-5 cqa-pt-1.5 cqa-px-4 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#9CA3AF]\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\" stroke=\"#9CA3AF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 3V6L8 7\" stroke=\"#9CA3AF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <span>Timing breakdown</span>\n </div>\n <span class=\"cqa-text-dialog-muted cqa-flex cqa-items-center cqa-gap-3\">\n <div>\n App <span class=\"cqa-text-gray-700\">{{ formatDuration(config.timingBreakdown.app) }}</span>\n </div>\n <div><svg width=\"1\" height=\"11\" viewBox=\"0 0 1 11\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M-3.8147e-06 10.32V-7.15256e-07H0.959996V10.32H-3.8147e-06Z\" fill=\"#E5E7EB\"/></svg></div>\n <div>\n Tool <span class=\"cqa-text-gray-700\">{{ formatDuration(config.timingBreakdown.tool) }}</span>\n </div>\n </span>\n </div>\n</div>\n", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
64
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DocumentVerificationStepComponent, decorators: [{
65
91
  type: Component,
66
- args: [{ selector: 'cqa-document-verification-step', host: { class: 'cqa-ui-root' }, template: "<div>\n <!-- Header -->\n <div\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-p-2 cqa-cursor-pointer\"\n (click)=\"toggle()\">\n <div *ngIf=\"isDebug\" class=\"cqa-flex cqa-items-center cqa-justify-center\">\n <button type=\"button\" class=\"cqa-p-0 cqa-border-0 cqa-bg-transparent cqa-cursor-pointer cqa-rounded-full hover:cqa-opacity-80 cqa-transition-opacity focus:cqa-outline-none\" (click)=\"onDebugPointClick($event)\" [attr.aria-label]=\"debugPointSet ? 'Remove debug point' : 'Set debug point'\">\n <svg *ngIf=\"debugPointSet\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"7\" cy=\"7\" r=\"6\" fill=\"#C63535\"/>\n </svg>\n <svg *ngIf=\"!debugPointSet\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"7\" cy=\"7\" r=\"6\" stroke=\"#C63535\" stroke-width=\"1.5\" fill=\"none\"/>\n </svg>\n </button>\n </div>\n <!-- Status Icon -->\n <div *ngIf=\"config.status.toLowerCase() === 'success'\" ><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.9005 4.99999C11.1289 6.12064 10.9662 7.28571 10.4395 8.30089C9.91279 9.31608 9.054 10.12 8.00631 10.5787C6.95862 11.0373 5.78536 11.1229 4.6822 10.8212C3.57904 10.5195 2.61265 9.84869 1.94419 8.92071C1.27573 7.99272 0.945611 6.86361 1.00888 5.72169C1.07215 4.57976 1.52499 3.49404 2.29188 2.64558C3.05876 1.79712 4.09334 1.23721 5.22308 1.05922C6.35282 0.881233 7.50944 1.09592 8.50005 1.66749\" stroke=\"#22C55E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.5 5.5L6 7L11 2\" stroke=\"#22C55E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <div *ngIf=\"config.status.toLowerCase() === 'failure'\"><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7.5 4.5L4.5 7.5\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.5 4.5L7.5 7.5\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n\n <!-- Document Icon -->\n <div><svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"20\" height=\"16\" rx=\"4\" fill=\"#E6F4FF\"/><path d=\"M12 5.5C12 6.03043 11.7893 6.53914 11.4142 6.91421C11.0391 7.28929 10.5304 7.5 10 7.5C9.46957 7.5 8.96086 7.28929 8.58579 6.91421C8.21071 6.53914 8 6.03043 8 5.5C8 4.96957 8.21071 4.46086 8.58579 4.08579C8.96086 3.71071 9.46957 3.5 10 3.5C10.5304 3.5 11.0391 3.71071 11.4142 4.08579C11.7893 4.46086 12 4.96957 12 5.5ZM10 9C9.07174 9 8.1815 9.36875 7.52513 10.0251C6.86875 10.6815 6.5 11.5717 6.5 12.5H13.5C13.5 11.5717 13.1313 10.6815 12.4749 10.0251C11.8185 9.36875 10.9283 9 10 9Z\" stroke=\"#0A86E6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n\n <!-- Step Number and Title -->\n <div class=\"cqa-flex-1 cqa-flex cqa-items-center cqa-gap-3\">\n <span class=\"cqa-font-semibold cqa-text-[#334155] cqa-text-[14px] cqa-leading-[18px]\" style=\"word-break: break-word;\">\n {{ config.stepNumber }}. <span [innerHTML]=\"config.title\"></span>\n </span>\n <span class=\"cqa-px-1.5 cqa-rounded-full cqa-font-medium cqa-text-[#0A86E6] cqa-bg-[#E6F4FF] cqa-text-[10px] cqa-leading-[15px]\">\n Document Verification\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-items-center cqa-gap-1\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-1 cqa-rounded-[4px] cqa-py-0.5 cqa-px-1 cqa-bg-[#6366F11A] cqa-ml-1 cqa-cursor-pointer hover:cqa-opacity-80 cqa-transition-opacity\" \n *ngIf=\"step?.executedResult?.video_start_time\" \n [matTooltip]=\"'Jump to video time'\" \n matTooltipPosition=\"below\"\n (click)=\"onJumpToTimestamp($event)\">\n <mat-icon class=\"cqa-text-[#636363] !cqa-text-[10px] !cqa-w-[10px] !cqa-h-[10px]\">\n play_arrow\n </mat-icon>\n <span class=\"cqa-text-[8px] cqa-leading-[12px] cqa-font-normal cqa-text-[#636363]\">\n {{ formatDurationClock(step?.executedResult?.video_start_time || 0) }}\n </span>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[15px] cqa-text-[#9CA3AF]\">\n {{ formatDuration(config.duration) }}\n </span>\n <svg [class.cqa-rotate-180]=\"isExpanded\" class=\"cqa-transition-transform\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.5 5L7 8.5L10.5 5\" stroke=\"#9CA3AF\" stroke-width=\"0.833333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n </div>\n\n <!-- Expanded Content -->\n <div *ngIf=\"isExpanded\" class=\"cqa-bg-[#FFFEF9] cqa-mt-1.5 cqa-ml-9 cqa-mr-6 cqa-p-4 cqa-flex cqa-flex-col cqa-gap-1.5\" style=\"border-top: 1px solid #E4E4E4;\">\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-3\">\n <!-- Document Screenshot Card -->\n <div class=\"cqa-bg-[#FCFCFC] cqa-rounded-lg cqa-p-3 cqa-flex cqa-flex-col\" style=\"border: 1px solid #EDE9FE\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-mb-2\">\n <span class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#636363]\">Document Screenshot</span>\n <button>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 4H5C4.44772 4 4 4.44772 4 5V10C4 10.5523 4.44772 11 5 11H10C10.5523 11 11 10.5523 11 10V5C11 4.44772 10.5523 4 10 4Z\" stroke=\"#636363\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 8C1.45 8 1 7.55 1 7V2C1 1.45 1.45 1 2 1H7C7.55 1 8 1.45 8 2\" stroke=\"#636363\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n </div>\n <div class=\"cqa-border cqa-border-solid cqa-border-[#E5E5E5] cqa-rounded-[10px] cqa-bg-[#F5F5F5] cqa-aspect-video cqa-h-full cqa-flex cqa-items-center cqa-justify-center\">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25.3333 4H6.66667C5.19391 4 4 5.19391 4 6.66667V25.3333C4 26.8061 5.19391 28 6.66667 28H25.3333C26.8061 28 28 26.8061 28 25.3333V6.66667C28 5.19391 26.8061 4 25.3333 4Z\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 14.6666C13.4727 14.6666 14.6666 13.4727 14.6666 11.9999C14.6666 10.5272 13.4727 9.33325 12 9.33325C10.5272 9.33325 9.33331 10.5272 9.33331 11.9999C9.33331 13.4727 10.5272 14.6666 12 14.6666Z\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M28 19.9999L23.8853 15.8853C23.3853 15.3853 22.7071 15.1045 22 15.1045C21.2929 15.1045 20.6147 15.3853 20.1147 15.8853L8 27.9999\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n </div>\n\n <!-- Extracted Fields Card -->\n <div class=\"cqa-bg-[#FCFCFC] cqa-rounded-lg cqa-p-3 cqa-flex cqa-flex-col\" style=\"border: 1px solid #EDE9FE\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-mb-2\">\n <span class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#636363]\">Extracted Fields</span>\n <button>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 4H5C4.44772 4 4 4.44772 4 5V10C4 10.5523 4.44772 11 5 11H10C10.5523 11 11 10.5523 11 10V5C11 4.44772 10.5523 4 10 4Z\" stroke=\"#636363\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 8C1.45 8 1 7.55 1 7V2C1 1.45 1.45 1 2 1H7C7.55 1 8 1.45 8 2\" stroke=\"#636363\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n </div>\n <div class=\"cqa-flex cqa-flex-col cqa-bg-white cqa-border cqa-border-solid cqa-border-[#C6D2FF] cqa-rounded-lg\">\n <div\n *ngFor=\"let field of config.extractedFields\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-px-3 cqa-pt-1 cqa-pb-1.5 cqa-border-b cqa-border-t-0 cqa-border-l-0 cqa-border-r-0 cqa-border-solid cqa-border-[#E4E4E4] last:cqa-border-0\">\n <div class=\"cqa-flex-1\">\n <div class=\"cqa-text-[8px] cqa-leading-[12px] cqa-text-[#636363]\">{{ field.label }}</div>\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0B0B0B]\">{{ field.value }}</div>\n </div>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <span class=\"cqa-px-2 cqa-py-[2px] cqa-rounded cqa-font-medium cqa-text-[#008236] cqa-bg-[#DCFCE7] cqa-text-[10px] cqa-leading-[15px]\">\n {{ field.confidence }}%\n </span>\n <button\n (click)=\"copyToClipboard(field.value)\"\n class=\"cqa-p-1\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.6667 4.66675H5.83332C5.18899 4.66675 4.66666 5.18908 4.66666 5.83341V11.6667C4.66666 12.3111 5.18899 12.8334 5.83332 12.8334H11.6667C12.311 12.8334 12.8333 12.3111 12.8333 11.6667V5.83341C12.8333 5.18908 12.311 4.66675 11.6667 4.66675Z\" stroke=\"#636363\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.33332 9.33341C1.69166 9.33341 1.16666 8.80841 1.16666 8.16675V2.33341C1.16666 1.69175 1.69166 1.16675 2.33332 1.16675H8.16666C8.80832 1.16675 9.33332 1.69175 9.33332 2.33341\" stroke=\"#636363\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Verification Checks -->\n <div class=\"cqa-mt-1.5\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-mb-2\">\n <div><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6.00004 3.33333H4.66671C4.31309 3.33333 3.97395 3.47381 3.7239 3.72386C3.47385 3.97391 3.33337 4.31304 3.33337 4.66667V12.6667C3.33337 13.0203 3.47385 13.3594 3.7239 13.6095C3.97395 13.8595 4.31309 14 4.66671 14H11.3334C11.687 14 12.0261 13.8595 12.2762 13.6095C12.5262 13.3594 12.6667 13.0203 12.6667 12.6667V4.66667C12.6667 4.31304 12.5262 3.97391 12.2762 3.72386C12.0261 3.47381 11.687 3.33333 11.3334 3.33333H10M6.00004 3.33333C6.00004 3.68696 6.14052 4.02609 6.39057 4.27614C6.64061 4.52619 6.97975 4.66667 7.33337 4.66667H8.66671C9.02033 4.66667 9.35947 4.52619 9.60952 4.27614C9.85956 4.02609 10 3.68696 10 3.33333M6.00004 3.33333C6.00004 2.97971 6.14052 2.64057 6.39057 2.39052C6.64061 2.14048 6.97975 2 7.33337 2H8.66671C9.02033 2 9.35947 2.14048 9.60952 2.39052C9.85956 2.64057 10 2.97971 10 3.33333M6.00004 9.33333L7.33337 10.6667L10 8\" stroke=\"#615FFF\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <span class=\"cqa-text-[12px] cqa-leading-[15px] cqa-font-semibold cqa-text-[#0B0B0B]\">Verification Checks</span>\n </div>\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div\n *ngFor=\"let check of config.verificationChecks\"\n [ngClass]=\"{\n 'cqa-bg-[#F0FDF4] cqa-border-[#B9F8CF]': check.status === 'pass',\n 'cqa-bg-[#FEF2F2] cqa-border-[#FFC9C9]': check.status === 'fail'\n }\"\n class=\"cqa-border cqa-border-solid cqa-rounded-lg cqa-p-3\">\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2 cqa-mb-2\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <!-- <mat-icon\n [ngClass]=\"check.status === 'pass' ? 'cqa-text-green-600' : 'cqa-text-red-600'\"\n class=\"!cqa-w-5 !cqa-h-5 !cqa-text-[20px]\">\n {{ check.status === 'pass' ? 'check_circle' : 'cancel' }}\n </mat-icon> -->\n <div><svg width=\"16\" height=\"18\" viewBox=\"0 0 16 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13.3333 6L5.99996 13.3333L2.66663 10\" stroke=\"#00A63E\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <span class=\"cqa-text-[12px] cqa-leading-[15px] cqa-font-semibold cqa-text-[#0B0B0B]\">{{ check.description }}</span>\n </div>\n <span\n [ngClass]=\"{\n 'cqa-text-[#008236] cqa-bg-[#DCFCE7]': check.status === 'pass',\n 'cqa-text-[#C10007] cqa-bg-[#FFE2E2]': check.status === 'fail'\n }\"\n class=\"cqa-px-2 cqa-py-[2px] cqa-rounded cqa-font-medium cqa-text-[10px] cqa-leading-[15px]\">\n {{ check.status === 'pass' ? 'PASS' : 'FAIL' }}\n </span>\n </div>\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-3 cqa-pl-6\">\n <div>\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#636363] cqa-mb-1\">Expected</div>\n <input\n type=\"text\"\n [value]=\"check.expected\"\n readonly\n class=\"cqa-w-full cqa-py-1.5 cqa-px-2 !cqa-border !cqa-border-solid !cqa-border-[#E4E4E4] cqa-rounded !cqa-bg-white cqa-text-[11px] cqa-leading-[13px] cqa-text-[#0B0B0B]\"\n />\n </div>\n <div>\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#636363] cqa-mb-1\">Actual</div>\n <input\n type=\"text\"\n [value]=\"check.actual\"\n readonly\n class=\"cqa-w-full cqa-py-1.5 cqa-px-2 !cqa-border !cqa-border-solid !cqa-border-[#E4E4E4] cqa-rounded !cqa-bg-white cqa-text-[11px] cqa-leading-[13px] cqa-text-[#0B0B0B]\"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Timing Breakdown -->\n </div>\n <div *ngIf=\"config.timingBreakdown\" class=\"cqa-flex cqa-items-center cqa-justify-end cqa-gap-5 cqa-pt-1.5 cqa-px-4 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#9CA3AF]\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\" stroke=\"#9CA3AF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 3V6L8 7\" stroke=\"#9CA3AF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <span>Timing breakdown</span>\n </div>\n <span class=\"cqa-text-dialog-muted cqa-flex cqa-items-center cqa-gap-3\">\n <div>\n App <span class=\"cqa-text-gray-700\">{{ formatDuration(config.timingBreakdown.app) }}</span>\n </div>\n <div><svg width=\"1\" height=\"11\" viewBox=\"0 0 1 11\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M-3.8147e-06 10.32V-7.15256e-07H0.959996V10.32H-3.8147e-06Z\" fill=\"#E5E7EB\"/></svg></div>\n <div>\n Tool <span class=\"cqa-text-gray-700\">{{ formatDuration(config.timingBreakdown.tool) }}</span>\n </div>\n </span>\n </div>\n</div>\n", styles: [] }]
92
+ args: [{ selector: 'cqa-document-verification-step', host: { class: 'cqa-ui-root' }, template: "<div>\n <!-- Header -->\n <div\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-p-2 cqa-cursor-pointer\"\n (click)=\"toggle()\">\n <div *ngIf=\"showDebugIcon\" class=\"cqa-flex cqa-items-center cqa-justify-center\">\n <button type=\"button\" class=\"cqa-p-0 cqa-border-0 cqa-bg-transparent cqa-cursor-pointer cqa-rounded-full hover:cqa-opacity-80 cqa-transition-opacity focus:cqa-outline-none\" (click)=\"onDebugPointClick($event)\" [attr.aria-label]=\"debugPointSet ? 'Remove debug point' : 'Set debug point'\">\n <svg *ngIf=\"debugPointSet\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"7\" cy=\"7\" r=\"6\" fill=\"#C63535\"/>\n </svg>\n <svg *ngIf=\"!debugPointSet\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"7\" cy=\"7\" r=\"6\" stroke=\"#C63535\" stroke-width=\"1.5\" fill=\"none\"/>\n </svg>\n </button>\n </div>\n <!-- Status Icon -->\n <div *ngIf=\"config.status.toLowerCase() === 'success'\" ><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.9005 4.99999C11.1289 6.12064 10.9662 7.28571 10.4395 8.30089C9.91279 9.31608 9.054 10.12 8.00631 10.5787C6.95862 11.0373 5.78536 11.1229 4.6822 10.8212C3.57904 10.5195 2.61265 9.84869 1.94419 8.92071C1.27573 7.99272 0.945611 6.86361 1.00888 5.72169C1.07215 4.57976 1.52499 3.49404 2.29188 2.64558C3.05876 1.79712 4.09334 1.23721 5.22308 1.05922C6.35282 0.881233 7.50944 1.09592 8.50005 1.66749\" stroke=\"#22C55E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.5 5.5L6 7L11 2\" stroke=\"#22C55E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <div *ngIf=\"config.status.toLowerCase() === 'failure'\"><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7.5 4.5L4.5 7.5\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.5 4.5L7.5 7.5\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n\n <!-- Document Icon -->\n <div><svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"20\" height=\"16\" rx=\"4\" fill=\"#E6F4FF\"/><path d=\"M12 5.5C12 6.03043 11.7893 6.53914 11.4142 6.91421C11.0391 7.28929 10.5304 7.5 10 7.5C9.46957 7.5 8.96086 7.28929 8.58579 6.91421C8.21071 6.53914 8 6.03043 8 5.5C8 4.96957 8.21071 4.46086 8.58579 4.08579C8.96086 3.71071 9.46957 3.5 10 3.5C10.5304 3.5 11.0391 3.71071 11.4142 4.08579C11.7893 4.46086 12 4.96957 12 5.5ZM10 9C9.07174 9 8.1815 9.36875 7.52513 10.0251C6.86875 10.6815 6.5 11.5717 6.5 12.5H13.5C13.5 11.5717 13.1313 10.6815 12.4749 10.0251C11.8185 9.36875 10.9283 9 10 9Z\" stroke=\"#0A86E6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n\n <!-- Step Number and Title -->\n <div class=\"cqa-flex-1 cqa-flex cqa-items-center cqa-gap-3\">\n <span class=\"cqa-font-semibold cqa-text-[#334155] cqa-text-[14px] cqa-leading-[18px]\" style=\"word-break: break-word;\">\n {{ config.stepNumber }}. <span [innerHTML]=\"config.title\"></span>\n </span>\n <span class=\"cqa-px-1.5 cqa-rounded-full cqa-font-medium cqa-text-[#0A86E6] cqa-bg-[#E6F4FF] cqa-text-[10px] cqa-leading-[15px]\">\n Document Verification\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-items-center cqa-gap-1\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-1 cqa-rounded-[4px] cqa-py-0.5 cqa-px-1 cqa-bg-[#6366F11A] cqa-ml-1 cqa-cursor-pointer hover:cqa-opacity-80 cqa-transition-opacity\" \n *ngIf=\"step?.executedResult?.video_start_time\" \n [matTooltip]=\"'Jump to video time'\" \n matTooltipPosition=\"below\"\n (click)=\"onJumpToTimestamp($event)\">\n <mat-icon class=\"cqa-text-[#636363] !cqa-text-[10px] !cqa-w-[10px] !cqa-h-[10px]\">\n play_arrow\n </mat-icon>\n <span class=\"cqa-text-[8px] cqa-leading-[12px] cqa-font-normal cqa-text-[#636363]\">\n {{ formatDurationClock(step?.executedResult?.video_start_time || 0) }}\n </span>\n </div>\n <div *ngIf=\"isDebug\" class=\"cqa-flex cqa-items-center cqa-gap-0.5 cqa-text-[#9CA3AF]\" (click)=\"$event.stopPropagation()\">\n <button type=\"button\" class=\"cqa-p-0 cqa-border-0 cqa-bg-transparent cqa-cursor-pointer hover:cqa-opacity-80 cqa-transition-opacity focus:cqa-outline-none\" aria-label=\"Edit\" (click)=\"onEditStep($event)\">\n <mat-icon class=\"!cqa-text-[14px] !cqa-w-[14px] !cqa-h-[14px]\">edit</mat-icon>\n </button>\n <button type=\"button\" class=\"cqa-p-0 cqa-border-0 cqa-bg-transparent cqa-cursor-pointer hover:cqa-opacity-80 cqa-transition-opacity focus:cqa-outline-none\" aria-label=\"Add\" [matMenuTriggerFor]=\"addStepMenu\">\n <mat-icon class=\"!cqa-text-[14px] !cqa-w-[14px] !cqa-h-[14px]\">add</mat-icon>\n </button>\n <mat-menu #addStepMenu=\"matMenu\" class=\"cqa-add-step-menu\" xPosition=\"before\" yPosition=\"below\">\n <button mat-menu-item *ngFor=\"let opt of addStepMenuOptions\" (click)=\"onAddStepOptionSelect(opt, $event)\">{{ opt.label }}</button>\n </mat-menu>\n <button type=\"button\" class=\"cqa-p-0 cqa-border-0 cqa-bg-transparent cqa-cursor-pointer hover:cqa-opacity-80 cqa-transition-opacity focus:cqa-outline-none\" aria-label=\"More options\" [matMenuTriggerFor]=\"stepMoreMenu\">\n <mat-icon class=\"!cqa-text-[14px] !cqa-w-[14px] !cqa-h-[14px]\">more_vert</mat-icon>\n </button>\n <mat-menu #stepMoreMenu=\"matMenu\" class=\"cqa-step-more-menu\" xPosition=\"before\" yPosition=\"below\">\n <button mat-menu-item *ngFor=\"let opt of stepMoreMenuOptions\" (click)=\"onStepMoreOptionSelect(opt, $event)\">{{ opt.label }}</button>\n </mat-menu>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[15px] cqa-text-[#9CA3AF]\">\n {{ formatDuration(config.duration) }}\n </span>\n <svg [class.cqa-rotate-180]=\"isExpanded\" class=\"cqa-transition-transform\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.5 5L7 8.5L10.5 5\" stroke=\"#9CA3AF\" stroke-width=\"0.833333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n </div>\n\n <!-- Expanded Content -->\n <div *ngIf=\"isExpanded\" class=\"cqa-bg-[#FFFEF9] cqa-mt-1.5 cqa-ml-9 cqa-mr-6 cqa-p-4 cqa-flex cqa-flex-col cqa-gap-1.5\" style=\"border-top: 1px solid #E4E4E4;\">\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-3\">\n <!-- Document Screenshot Card -->\n <div class=\"cqa-bg-[#FCFCFC] cqa-rounded-lg cqa-p-3 cqa-flex cqa-flex-col\" style=\"border: 1px solid #EDE9FE\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-mb-2\">\n <span class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#636363]\">Document Screenshot</span>\n <button>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 4H5C4.44772 4 4 4.44772 4 5V10C4 10.5523 4.44772 11 5 11H10C10.5523 11 11 10.5523 11 10V5C11 4.44772 10.5523 4 10 4Z\" stroke=\"#636363\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 8C1.45 8 1 7.55 1 7V2C1 1.45 1.45 1 2 1H7C7.55 1 8 1.45 8 2\" stroke=\"#636363\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n </div>\n <div class=\"cqa-border cqa-border-solid cqa-border-[#E5E5E5] cqa-rounded-[10px] cqa-bg-[#F5F5F5] cqa-aspect-video cqa-h-full cqa-flex cqa-items-center cqa-justify-center\">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25.3333 4H6.66667C5.19391 4 4 5.19391 4 6.66667V25.3333C4 26.8061 5.19391 28 6.66667 28H25.3333C26.8061 28 28 26.8061 28 25.3333V6.66667C28 5.19391 26.8061 4 25.3333 4Z\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 14.6666C13.4727 14.6666 14.6666 13.4727 14.6666 11.9999C14.6666 10.5272 13.4727 9.33325 12 9.33325C10.5272 9.33325 9.33331 10.5272 9.33331 11.9999C9.33331 13.4727 10.5272 14.6666 12 14.6666Z\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M28 19.9999L23.8853 15.8853C23.3853 15.3853 22.7071 15.1045 22 15.1045C21.2929 15.1045 20.6147 15.3853 20.1147 15.8853L8 27.9999\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n </div>\n\n <!-- Extracted Fields Card -->\n <div class=\"cqa-bg-[#FCFCFC] cqa-rounded-lg cqa-p-3 cqa-flex cqa-flex-col\" style=\"border: 1px solid #EDE9FE\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-mb-2\">\n <span class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#636363]\">Extracted Fields</span>\n <button>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 4H5C4.44772 4 4 4.44772 4 5V10C4 10.5523 4.44772 11 5 11H10C10.5523 11 11 10.5523 11 10V5C11 4.44772 10.5523 4 10 4Z\" stroke=\"#636363\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 8C1.45 8 1 7.55 1 7V2C1 1.45 1.45 1 2 1H7C7.55 1 8 1.45 8 2\" stroke=\"#636363\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n </div>\n <div class=\"cqa-flex cqa-flex-col cqa-bg-white cqa-border cqa-border-solid cqa-border-[#C6D2FF] cqa-rounded-lg\">\n <div\n *ngFor=\"let field of config.extractedFields\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-px-3 cqa-pt-1 cqa-pb-1.5 cqa-border-b cqa-border-t-0 cqa-border-l-0 cqa-border-r-0 cqa-border-solid cqa-border-[#E4E4E4] last:cqa-border-0\">\n <div class=\"cqa-flex-1\">\n <div class=\"cqa-text-[8px] cqa-leading-[12px] cqa-text-[#636363]\">{{ field.label }}</div>\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0B0B0B]\">{{ field.value }}</div>\n </div>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <span class=\"cqa-px-2 cqa-py-[2px] cqa-rounded cqa-font-medium cqa-text-[#008236] cqa-bg-[#DCFCE7] cqa-text-[10px] cqa-leading-[15px]\">\n {{ field.confidence }}%\n </span>\n <button\n (click)=\"copyToClipboard(field.value)\"\n class=\"cqa-p-1\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.6667 4.66675H5.83332C5.18899 4.66675 4.66666 5.18908 4.66666 5.83341V11.6667C4.66666 12.3111 5.18899 12.8334 5.83332 12.8334H11.6667C12.311 12.8334 12.8333 12.3111 12.8333 11.6667V5.83341C12.8333 5.18908 12.311 4.66675 11.6667 4.66675Z\" stroke=\"#636363\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.33332 9.33341C1.69166 9.33341 1.16666 8.80841 1.16666 8.16675V2.33341C1.16666 1.69175 1.69166 1.16675 2.33332 1.16675H8.16666C8.80832 1.16675 9.33332 1.69175 9.33332 2.33341\" stroke=\"#636363\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Verification Checks -->\n <div class=\"cqa-mt-1.5\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-mb-2\">\n <div><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6.00004 3.33333H4.66671C4.31309 3.33333 3.97395 3.47381 3.7239 3.72386C3.47385 3.97391 3.33337 4.31304 3.33337 4.66667V12.6667C3.33337 13.0203 3.47385 13.3594 3.7239 13.6095C3.97395 13.8595 4.31309 14 4.66671 14H11.3334C11.687 14 12.0261 13.8595 12.2762 13.6095C12.5262 13.3594 12.6667 13.0203 12.6667 12.6667V4.66667C12.6667 4.31304 12.5262 3.97391 12.2762 3.72386C12.0261 3.47381 11.687 3.33333 11.3334 3.33333H10M6.00004 3.33333C6.00004 3.68696 6.14052 4.02609 6.39057 4.27614C6.64061 4.52619 6.97975 4.66667 7.33337 4.66667H8.66671C9.02033 4.66667 9.35947 4.52619 9.60952 4.27614C9.85956 4.02609 10 3.68696 10 3.33333M6.00004 3.33333C6.00004 2.97971 6.14052 2.64057 6.39057 2.39052C6.64061 2.14048 6.97975 2 7.33337 2H8.66671C9.02033 2 9.35947 2.14048 9.60952 2.39052C9.85956 2.64057 10 2.97971 10 3.33333M6.00004 9.33333L7.33337 10.6667L10 8\" stroke=\"#615FFF\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <span class=\"cqa-text-[12px] cqa-leading-[15px] cqa-font-semibold cqa-text-[#0B0B0B]\">Verification Checks</span>\n </div>\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div\n *ngFor=\"let check of config.verificationChecks\"\n [ngClass]=\"{\n 'cqa-bg-[#F0FDF4] cqa-border-[#B9F8CF]': check.status === 'pass',\n 'cqa-bg-[#FEF2F2] cqa-border-[#FFC9C9]': check.status === 'fail'\n }\"\n class=\"cqa-border cqa-border-solid cqa-rounded-lg cqa-p-3\">\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2 cqa-mb-2\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <!-- <mat-icon\n [ngClass]=\"check.status === 'pass' ? 'cqa-text-green-600' : 'cqa-text-red-600'\"\n class=\"!cqa-w-5 !cqa-h-5 !cqa-text-[20px]\">\n {{ check.status === 'pass' ? 'check_circle' : 'cancel' }}\n </mat-icon> -->\n <div><svg width=\"16\" height=\"18\" viewBox=\"0 0 16 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13.3333 6L5.99996 13.3333L2.66663 10\" stroke=\"#00A63E\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <span class=\"cqa-text-[12px] cqa-leading-[15px] cqa-font-semibold cqa-text-[#0B0B0B]\">{{ check.description }}</span>\n </div>\n <span\n [ngClass]=\"{\n 'cqa-text-[#008236] cqa-bg-[#DCFCE7]': check.status === 'pass',\n 'cqa-text-[#C10007] cqa-bg-[#FFE2E2]': check.status === 'fail'\n }\"\n class=\"cqa-px-2 cqa-py-[2px] cqa-rounded cqa-font-medium cqa-text-[10px] cqa-leading-[15px]\">\n {{ check.status === 'pass' ? 'PASS' : 'FAIL' }}\n </span>\n </div>\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-3 cqa-pl-6\">\n <div>\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#636363] cqa-mb-1\">Expected</div>\n <input\n type=\"text\"\n [value]=\"check.expected\"\n readonly\n class=\"cqa-w-full cqa-py-1.5 cqa-px-2 !cqa-border !cqa-border-solid !cqa-border-[#E4E4E4] cqa-rounded !cqa-bg-white cqa-text-[11px] cqa-leading-[13px] cqa-text-[#0B0B0B]\"\n />\n </div>\n <div>\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#636363] cqa-mb-1\">Actual</div>\n <input\n type=\"text\"\n [value]=\"check.actual\"\n readonly\n class=\"cqa-w-full cqa-py-1.5 cqa-px-2 !cqa-border !cqa-border-solid !cqa-border-[#E4E4E4] cqa-rounded !cqa-bg-white cqa-text-[11px] cqa-leading-[13px] cqa-text-[#0B0B0B]\"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Timing Breakdown -->\n </div>\n <div *ngIf=\"config.timingBreakdown\" class=\"cqa-flex cqa-items-center cqa-justify-end cqa-gap-5 cqa-pt-1.5 cqa-px-4 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#9CA3AF]\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\" stroke=\"#9CA3AF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 3V6L8 7\" stroke=\"#9CA3AF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <span>Timing breakdown</span>\n </div>\n <span class=\"cqa-text-dialog-muted cqa-flex cqa-items-center cqa-gap-3\">\n <div>\n App <span class=\"cqa-text-gray-700\">{{ formatDuration(config.timingBreakdown.app) }}</span>\n </div>\n <div><svg width=\"1\" height=\"11\" viewBox=\"0 0 1 11\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M-3.8147e-06 10.32V-7.15256e-07H0.959996V10.32H-3.8147e-06Z\" fill=\"#E5E7EB\"/></svg></div>\n <div>\n Tool <span class=\"cqa-text-gray-700\">{{ formatDuration(config.timingBreakdown.tool) }}</span>\n </div>\n </span>\n </div>\n</div>\n", styles: [] }]
67
93
  }], propDecorators: { id: [{
68
94
  type: Input
69
95
  }], stepNumber: [{
@@ -94,5 +120,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
94
120
  type: Input
95
121
  }], debugPointChange: [{
96
122
  type: Output
123
+ }], editStep: [{
124
+ type: Output
125
+ }], addStepOptionSelect: [{
126
+ type: Output
127
+ }], stepMoreOptionSelect: [{
128
+ type: Output
129
+ }], addStepMenuOptions: [{
130
+ type: Input
131
+ }], stepMoreMenuOptions: [{
132
+ type: Input
97
133
  }] } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdmVyaWZpY2F0aW9uLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9leGVjdXRpb24tc2NyZWVuL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFRM0QsTUFBTSxPQUFPLGlDQUFrQyxTQUFRLGlCQUFpQjtJQU54RTs7UUFvQlcsWUFBTyxHQUFhLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFhLEtBQUssQ0FBQztRQUMvQixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0tBeUQxRDtJQXBEVSxRQUFRO1FBQ2Ysc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsSUFBSSxFQUFFLHVCQUF1QjtZQUM3QixrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzNDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzNDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDVSxDQUFDO1FBRXBDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQ3RELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNoQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUN0QztTQUNGO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVk7UUFDNUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxlQUFlLENBQUMsSUFBWTtRQUMxQixTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBWTtRQUM1QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsc0JBQXNCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixLQUFLLElBQUksRUFBRTtZQUNwSixNQUFNLFNBQVMsR0FBRyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixLQUFLLFFBQVE7Z0JBQzdFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0I7Z0JBQzNDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN0RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQztZQUN6QyxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLElBQUksQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQ3BEO1NBQ0Y7SUFDSCxDQUFDOzs4SEF4RVUsaUNBQWlDO2tIQUFqQyxpQ0FBaUMsNGxCQ1Y5Qyx3OGVBOEtBOzJGRHBLYSxpQ0FBaUM7a0JBTjdDLFNBQVM7K0JBQ0UsZ0NBQWdDLFFBR3BDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTs4QkFJckIsRUFBRTtzQkFBVixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbmZpZywgRXh0cmFjdGVkRmllbGQsIFZlcmlmaWNhdGlvbkNoZWNrLCBTdGVwU3RhdHVzLCBUaW1pbmdCcmVha2Rvd24gfSBmcm9tICcuLi9leGVjdXRpb24tc3RlcC5tb2RlbHMnO1xuaW1wb3J0IHsgQmFzZVN0ZXBDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXN0ZXAuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWRvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9XG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbXBvbmVudCBleHRlbmRzIEJhc2VTdGVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvLyBJbmRpdmlkdWFsIGlucHV0c1xuICBASW5wdXQoKSBpZCE6IHN0cmluZztcbiAgQElucHV0KCkgc3RlcE51bWJlciE6IHN0cmluZztcbiAgQElucHV0KCkgdGl0bGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0YXR1cyE6IFN0ZXBTdGF0dXM7XG4gIEBJbnB1dCgpIGR1cmF0aW9uITogbnVtYmVyO1xuICBASW5wdXQoKSB0aW1pbmdCcmVha2Rvd24/OiBUaW1pbmdCcmVha2Rvd247XG4gIEBJbnB1dCgpIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgQElucHV0KCkgZG9jdW1lbnRTY3JlZW5zaG90Pzogc3RyaW5nO1xuICBASW5wdXQoKSBleHRyYWN0ZWRGaWVsZHMhOiBFeHRyYWN0ZWRGaWVsZFtdO1xuICBASW5wdXQoKSB2ZXJpZmljYXRpb25DaGVja3MhOiBWZXJpZmljYXRpb25DaGVja1tdO1xuICBASW5wdXQoKSBzdGVwPzogYW55O1xuICBASW5wdXQoKSBqdW1wVG9UaW1lc3RhbXBIYW5kbGVyPzogKHRpbWVzdGFtcDogbnVtYmVyLCB0ZXN0U3RlcElkPzogbnVtYmVyIHwgc3RyaW5nKSA9PiB2b2lkO1xuICBASW5wdXQoKSBpc0RlYnVnPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkZWJ1Z1BvaW50U2V0PzogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgZGVidWdQb2ludENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvLyBDb25maWcgcHJvcGVydHkgZm9yIGJhc2UgY2xhc3MgLSBidWlsdCBmcm9tIGluZGl2aWR1YWwgaW5wdXRzIGluIG5nT25Jbml0XG4gIG92ZXJyaWRlIGNvbmZpZyE6IERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbmZpZztcblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBCdWlsZCBjb25maWcgZnJvbSBpbmRpdmlkdWFsIGlucHV0c1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBzdGVwTnVtYmVyOiB0aGlzLnN0ZXBOdW1iZXIsXG4gICAgICB0aXRsZTogdGhpcy50aXRsZSxcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICBkdXJhdGlvbjogdGhpcy5kdXJhdGlvbixcbiAgICAgIHR5cGU6ICdkb2N1bWVudC12ZXJpZmljYXRpb24nLFxuICAgICAgZG9jdW1lbnRTY3JlZW5zaG90OiB0aGlzLmRvY3VtZW50U2NyZWVuc2hvdCxcbiAgICAgIGV4dHJhY3RlZEZpZWxkczogdGhpcy5leHRyYWN0ZWRGaWVsZHMsXG4gICAgICB2ZXJpZmljYXRpb25DaGVja3M6IHRoaXMudmVyaWZpY2F0aW9uQ2hlY2tzLFxuICAgICAgdGltaW5nQnJlYWtkb3duOiB0aGlzLnRpbWluZ0JyZWFrZG93bixcbiAgICAgIGV4cGFuZGVkOiB0aGlzLmV4cGFuZGVkLFxuICAgIH0gYXMgRG9jdW1lbnRWZXJpZmljYXRpb25TdGVwQ29uZmlnO1xuXG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZXhwYW5kZWQnXSAmJiB0aGlzLmV4cGFuZGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IHRoaXMuZXhwYW5kZWQ7XG4gICAgICBpZiAodGhpcy5jb25maWcpIHtcbiAgICAgICAgdGhpcy5jb25maWcuZXhwYW5kZWQgPSB0aGlzLmV4cGFuZGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uRGVidWdQb2ludENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5kZWJ1Z1BvaW50Q2hhbmdlLmVtaXQoIXRoaXMuZGVidWdQb2ludFNldCk7XG4gIH1cblxuICBjb3B5VG9DbGlwYm9hcmQodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dCkudGhlbigoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnQ29waWVkIHRvIGNsaXBib2FyZDonLCB0ZXh0KTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uSnVtcFRvVGltZXN0YW1wKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmp1bXBUb1RpbWVzdGFtcEhhbmRsZXIgJiYgdGhpcy5zdGVwPy5leGVjdXRlZFJlc3VsdD8udmlkZW9fc3RhcnRfdGltZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuc3RlcD8uZXhlY3V0ZWRSZXN1bHQ/LnZpZGVvX3N0YXJ0X3RpbWUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IHR5cGVvZiB0aGlzLnN0ZXAuZXhlY3V0ZWRSZXN1bHQudmlkZW9fc3RhcnRfdGltZSA9PT0gJ251bWJlcicgXG4gICAgICAgID8gdGhpcy5zdGVwLmV4ZWN1dGVkUmVzdWx0LnZpZGVvX3N0YXJ0X3RpbWUgXG4gICAgICAgIDogTnVtYmVyKHRoaXMuc3RlcC5leGVjdXRlZFJlc3VsdC52aWRlb19zdGFydF90aW1lKTtcbiAgICAgIGNvbnN0IHRlc3RTdGVwSWQgPSB0aGlzLnN0ZXA/LnRlc3RTdGVwSWQ7XG4gICAgICBpZiAoaXNGaW5pdGUodGltZXN0YW1wKSAmJiB0aW1lc3RhbXAgPj0gMCkge1xuICAgICAgICB0aGlzLmp1bXBUb1RpbWVzdGFtcEhhbmRsZXIodGltZXN0YW1wLCB0ZXN0U3RlcElkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXY+XG4gIDwhLS0gSGVhZGVyIC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtcC0yIGNxYS1jdXJzb3ItcG9pbnRlclwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgPGRpdiAqbmdJZj1cImlzRGVidWdcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNxYS1wLTAgY3FhLWJvcmRlci0wIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXJvdW5kZWQtZnVsbCBob3ZlcjpjcWEtb3BhY2l0eS04MCBjcWEtdHJhbnNpdGlvbi1vcGFjaXR5IGZvY3VzOmNxYS1vdXRsaW5lLW5vbmVcIiAoY2xpY2spPVwib25EZWJ1Z1BvaW50Q2xpY2soJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVidWdQb2ludFNldCA/ICdSZW1vdmUgZGVidWcgcG9pbnQnIDogJ1NldCBkZWJ1ZyBwb2ludCdcIj5cbiAgICAgICAgPHN2ZyAqbmdJZj1cImRlYnVnUG9pbnRTZXRcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPGNpcmNsZSBjeD1cIjdcIiBjeT1cIjdcIiByPVwiNlwiIGZpbGw9XCIjQzYzNTM1XCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPHN2ZyAqbmdJZj1cIiFkZWJ1Z1BvaW50U2V0XCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCI3XCIgY3k9XCI3XCIgcj1cIjZcIiBzdHJva2U9XCIjQzYzNTM1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgZmlsbD1cIm5vbmVcIi8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBTdGF0dXMgSWNvbiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnLnN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAnc3VjY2VzcydcIiA+PHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMC45MDA1IDQuOTk5OTlDMTEuMTI4OSA2LjEyMDY0IDEwLjk2NjIgNy4yODU3MSAxMC40Mzk1IDguMzAwODlDOS45MTI3OSA5LjMxNjA4IDkuMDU0IDEwLjEyIDguMDA2MzEgMTAuNTc4N0M2Ljk1ODYyIDExLjAzNzMgNS43ODUzNiAxMS4xMjI5IDQuNjgyMiAxMC44MjEyQzMuNTc5MDQgMTAuNTE5NSAyLjYxMjY1IDkuODQ4NjkgMS45NDQxOSA4LjkyMDcxQzEuMjc1NzMgNy45OTI3MiAwLjk0NTYxMSA2Ljg2MzYxIDEuMDA4ODggNS43MjE2OUMxLjA3MjE1IDQuNTc5NzYgMS41MjQ5OSAzLjQ5NDA0IDIuMjkxODggMi42NDU1OEMzLjA1ODc2IDEuNzk3MTIgNC4wOTMzNCAxLjIzNzIxIDUuMjIzMDggMS4wNTkyMkM2LjM1MjgyIDAuODgxMjMzIDcuNTA5NDQgMS4wOTU5MiA4LjUwMDA1IDEuNjY3NDlcIiBzdHJva2U9XCIjMjJDNTVFXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNC41IDUuNUw2IDdMMTEgMlwiIHN0cm9rZT1cIiMyMkM1NUVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImNvbmZpZy5zdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhaWx1cmUnXCI+PHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk02IDExQzguNzYxNDIgMTEgMTEgOC43NjE0MiAxMSA2QzExIDMuMjM4NTggOC43NjE0MiAxIDYgMUMzLjIzODU4IDEgMSAzLjIzODU4IDEgNkMxIDguNzYxNDIgMy4yMzg1OCAxMSA2IDExWlwiIHN0cm9rZT1cIiNEQzI2MjZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk03LjUgNC41TDQuNSA3LjVcIiBzdHJva2U9XCIjREMyNjI2XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNC41IDQuNUw3LjUgNy41XCIgc3Ryb2tlPVwiI0RDMjYyNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cblxuICAgIDwhLS0gRG9jdW1lbnQgSWNvbiAtLT5cbiAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAyMCAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIxNlwiIHJ4PVwiNFwiIGZpbGw9XCIjRTZGNEZGXCIvPjxwYXRoIGQ9XCJNMTIgNS41QzEyIDYuMDMwNDMgMTEuNzg5MyA2LjUzOTE0IDExLjQxNDIgNi45MTQyMUMxMS4wMzkxIDcuMjg5MjkgMTAuNTMwNCA3LjUgMTAgNy41QzkuNDY5NTcgNy41IDguOTYwODYgNy4yODkyOSA4LjU4NTc5IDYuOTE0MjFDOC4yMTA3MSA2LjUzOTE0IDggNi4wMzA0MyA4IDUuNUM4IDQuOTY5NTcgOC4yMTA3MSA0LjQ2MDg2IDguNTg1NzkgNC4wODU3OUM4Ljk2MDg2IDMuNzEwNzEgOS40Njk1NyAzLjUgMTAgMy41QzEwLjUzMDQgMy41IDExLjAzOTEgMy43MTA3MSAxMS40MTQyIDQuMDg1NzlDMTEuNzg5MyA0LjQ2MDg2IDEyIDQuOTY5NTcgMTIgNS41Wk0xMCA5QzkuMDcxNzQgOSA4LjE4MTUgOS4zNjg3NSA3LjUyNTEzIDEwLjAyNTFDNi44Njg3NSAxMC42ODE1IDYuNSAxMS41NzE3IDYuNSAxMi41SDEzLjVDMTMuNSAxMS41NzE3IDEzLjEzMTMgMTAuNjgxNSAxMi40NzQ5IDEwLjAyNTFDMTEuODE4NSA5LjM2ODc1IDEwLjkyODMgOSAxMCA5WlwiIHN0cm9rZT1cIiMwQTg2RTZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG5cbiAgICA8IS0tIFN0ZXAgTnVtYmVyIGFuZCBUaXRsZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtM1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzMzNDE1NV0gY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsxOHB4XVwiIHN0eWxlPVwid29yZC1icmVhazogYnJlYWstd29yZDtcIj5cbiAgICAgICAge3sgY29uZmlnLnN0ZXBOdW1iZXIgfX0uIDxzcGFuIFtpbm5lckhUTUxdPVwiY29uZmlnLnRpdGxlXCI+PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtcHgtMS41IGNxYS1yb3VuZGVkLWZ1bGwgY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMEE4NkU2XSBjcWEtYmctWyNFNkY0RkZdIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF1cIj5cbiAgICAgICAgRG9jdW1lbnQgVmVyaWZpY2F0aW9uXG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xIGNxYS1yb3VuZGVkLVs0cHhdIGNxYS1weS0wLjUgY3FhLXB4LTEgY3FhLWJnLVsjNjM2NkYxMUFdIGNxYS1tbC0xIGNxYS1jdXJzb3ItcG9pbnRlciBob3ZlcjpjcWEtb3BhY2l0eS04MCBjcWEtdHJhbnNpdGlvbi1vcGFjaXR5XCIgXG4gICAgICAgICAgICpuZ0lmPVwic3RlcD8uZXhlY3V0ZWRSZXN1bHQ/LnZpZGVvX3N0YXJ0X3RpbWVcIiBcbiAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ0p1bXAgdG8gdmlkZW8gdGltZSdcIiBcbiAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICAgICAoY2xpY2spPVwib25KdW1wVG9UaW1lc3RhbXAoJGV2ZW50KVwiPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjcWEtdGV4dC1bIzYzNjM2M10gIWNxYS10ZXh0LVsxMHB4XSAhY3FhLXctWzEwcHhdICFjcWEtaC1bMTBweF1cIj5cbiAgICAgICAgICBwbGF5X2Fycm93XG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzhweF0gY3FhLWxlYWRpbmctWzEycHhdIGNxYS1mb250LW5vcm1hbCBjcWEtdGV4dC1bIzYzNjM2M11cIj5cbiAgICAgICAgICB7eyBmb3JtYXREdXJhdGlvbkNsb2NrKHN0ZXA/LmV4ZWN1dGVkUmVzdWx0Py52aWRlb19zdGFydF90aW1lIHx8IDApIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS10ZXh0LVsjOUNBM0FGXVwiPlxuICAgICAgICB7eyBmb3JtYXREdXJhdGlvbihjb25maWcuZHVyYXRpb24pIH19XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3ZnIFtjbGFzcy5jcWEtcm90YXRlLTE4MF09XCJpc0V4cGFuZGVkXCIgY2xhc3M9XCJjcWEtdHJhbnNpdGlvbi10cmFuc2Zvcm1cIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0zLjUgNUw3IDguNUwxMC41IDVcIiBzdHJva2U9XCIjOUNBM0FGXCIgc3Ryb2tlLXdpZHRoPVwiMC44MzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRXhwYW5kZWQgQ29udGVudCAtLT5cbiAgPGRpdiAqbmdJZj1cImlzRXhwYW5kZWRcIiAgY2xhc3M9XCJjcWEtYmctWyNGRkZFRjldIGNxYS1tdC0xLjUgY3FhLW1sLTkgY3FhLW1yLTYgY3FhLXAtNCBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xLjVcIiBzdHlsZT1cImJvcmRlci10b3A6IDFweCBzb2xpZCAjRTRFNEU0O1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTIgY3FhLWdhcC0zXCI+XG4gICAgICA8IS0tIERvY3VtZW50IFNjcmVlbnNob3QgQ2FyZCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtYmctWyNGQ0ZDRkNdIGNxYS1yb3VuZGVkLWxnIGNxYS1wLTMgY3FhLWZsZXggY3FhLWZsZXgtY29sXCIgc3R5bGU9XCJib3JkZXI6IDFweCBzb2xpZCAjRURFOUZFXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yIGNxYS1tYi0yXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzYzNjM2M11cIj5Eb2N1bWVudCBTY3JlZW5zaG90PC9zcGFuPlxuICAgICAgICAgIDxidXR0b24+XG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTEwIDRINUM0LjQ0NzcyIDQgNCA0LjQ0NzcyIDQgNVYxMEM0IDEwLjU1MjMgNC40NDc3MiAxMSA1IDExSDEwQzEwLjU1MjMgMTEgMTEgMTAuNTUyMyAxMSAxMFY1QzExIDQuNDQ3NzIgMTAuNTUyMyA0IDEwIDRaXCIgc3Ryb2tlPVwiIzYzNjM2M1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTIgOEMxLjQ1IDggMSA3LjU1IDEgN1YyQzEgMS40NSAxLjQ1IDEgMiAxSDdDNy41NSAxIDggMS40NSA4IDJcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRTVFNUU1XSBjcWEtcm91bmRlZC1bMTBweF0gY3FhLWJnLVsjRjVGNUY1XSBjcWEtYXNwZWN0LXZpZGVvIGNxYS1oLWZ1bGwgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTI1LjMzMzMgNEg2LjY2NjY3QzUuMTkzOTEgNCA0IDUuMTkzOTEgNCA2LjY2NjY3VjI1LjMzMzNDNCAyNi44MDYxIDUuMTkzOTEgMjggNi42NjY2NyAyOEgyNS4zMzMzQzI2LjgwNjEgMjggMjggMjYuODA2MSAyOCAyNS4zMzMzVjYuNjY2NjdDMjggNS4xOTM5MSAyNi44MDYxIDQgMjUuMzMzMyA0WlwiIHN0cm9rZT1cIiM3MzczNzNcIiBzdHJva2Utb3BhY2l0eT1cIjAuNVwiIHN0cm9rZS13aWR0aD1cIjIuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0xMiAxNC42NjY2QzEzLjQ3MjcgMTQuNjY2NiAxNC42NjY2IDEzLjQ3MjcgMTQuNjY2NiAxMS45OTk5QzE0LjY2NjYgMTAuNTI3MiAxMy40NzI3IDkuMzMzMjUgMTIgOS4zMzMyNUMxMC41MjcyIDkuMzMzMjUgOS4zMzMzMSAxMC41MjcyIDkuMzMzMzEgMTEuOTk5OUM5LjMzMzMxIDEzLjQ3MjcgMTAuNTI3MiAxNC42NjY2IDEyIDE0LjY2NjZaXCIgc3Ryb2tlPVwiIzczNzM3M1wiIHN0cm9rZS1vcGFjaXR5PVwiMC41XCIgc3Ryb2tlLXdpZHRoPVwiMi42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTI4IDE5Ljk5OTlMMjMuODg1MyAxNS44ODUzQzIzLjM4NTMgMTUuMzg1MyAyMi43MDcxIDE1LjEwNDUgMjIgMTUuMTA0NUMyMS4yOTI5IDE1LjEwNDUgMjAuNjE0NyAxNS4zODUzIDIwLjExNDcgMTUuODg1M0w4IDI3Ljk5OTlcIiBzdHJva2U9XCIjNzM3MzczXCIgc3Ryb2tlLW9wYWNpdHk9XCIwLjVcIiBzdHJva2Utd2lkdGg9XCIyLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIEV4dHJhY3RlZCBGaWVsZHMgQ2FyZCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtYmctWyNGQ0ZDRkNdIGNxYS1yb3VuZGVkLWxnIGNxYS1wLTMgY3FhLWZsZXggY3FhLWZsZXgtY29sXCIgc3R5bGU9XCJib3JkZXI6IDFweCBzb2xpZCAjRURFOUZFXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yIGNxYS1tYi0yXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzYzNjM2M11cIj5FeHRyYWN0ZWQgRmllbGRzPC9zcGFuPlxuICAgICAgICAgIDxidXR0b24+XG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTEwIDRINUM0LjQ0NzcyIDQgNCA0LjQ0NzcyIDQgNVYxMEM0IDEwLjU1MjMgNC40NDc3MiAxMSA1IDExSDEwQzEwLjU1MjMgMTEgMTEgMTAuNTUyMyAxMSAxMFY1QzExIDQuNDQ3NzIgMTAuNTUyMyA0IDEwIDRaXCIgc3Ryb2tlPVwiIzYzNjM2M1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTIgOEMxLjQ1IDggMSA3LjU1IDEgN1YyQzEgMS40NSAxLjQ1IDEgMiAxSDdDNy41NSAxIDggMS40NSA4IDJcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtYmctd2hpdGUgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNDNkQyRkZdIGNxYS1yb3VuZGVkLWxnXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGNvbmZpZy5leHRyYWN0ZWRGaWVsZHNcIlxuICAgICAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yIGNxYS1weC0zIGNxYS1wdC0xIGNxYS1wYi0xLjUgY3FhLWJvcmRlci1iIGNxYS1ib3JkZXItdC0wIGNxYS1ib3JkZXItbC0wIGNxYS1ib3JkZXItci0wIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0U0RTRFNF0gbGFzdDpjcWEtYm9yZGVyLTBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bOHB4XSBjcWEtbGVhZGluZy1bMTJweF0gY3FhLXRleHQtWyM2MzYzNjNdXCI+e3sgZmllbGQubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMEIwQjBCXVwiPnt7IGZpZWxkLnZhbHVlIH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMlwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1weC0yIGNxYS1weS1bMnB4XSBjcWEtcm91bmRlZCBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMwMDgyMzZdIGNxYS1iZy1bI0RDRkNFN10gY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XVwiPlxuICAgICAgICAgICAgICAgIHt7IGZpZWxkLmNvbmZpZGVuY2UgfX0lXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoZmllbGQudmFsdWUpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNxYS1wLTFcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTExLjY2NjcgNC42NjY3NUg1LjgzMzMyQzUuMTg4OTkgNC42NjY3NSA0LjY2NjY2IDUuMTg5MDggNC42NjY2NiA1LjgzMzQxVjExLjY2NjdDNC42NjY2NiAxMi4zMTExIDUuMTg4OTkgMTIuODMzNCA1LjgzMzMyIDEyLjgzMzRIMTEuNjY2N0MxMi4zMTEgMTIuODMzNCAxMi44MzMzIDEyLjMxMTEgMTIuODMzMyAxMS42NjY3VjUuODMzNDFDMTIuODMzMyA1LjE4OTA4IDEyLjMxMSA0LjY2Njc1IDExLjY2NjcgNC42NjY3NVpcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTIuMzMzMzIgOS4zMzM0MUMxLjY5MTY2IDkuMzMzNDEgMS4xNjY2NiA4LjgwODQxIDEuMTY2NjYgOC4xNjY3NVYyLjMzMzQxQzEuMTY2NjYgMS42OTE3NSAxLjY5MTY2IDEuMTY2NzUgMi4zMzMzMiAxLjE2Njc1SDguMTY2NjZDOC44MDgzMiAxLjE2Njc1IDkuMzMzMzIgMS42OTE3NSA5LjMzMzMyIDIuMzMzNDFcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gVmVyaWZpY2F0aW9uIENoZWNrcyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLW10LTEuNVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1tYi0yXCI+XG4gICAgICAgIDxkaXY+PHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk02LjAwMDA0IDMuMzMzMzNINC42NjY3MUM0LjMxMzA5IDMuMzMzMzMgMy45NzM5NSAzLjQ3MzgxIDMuNzIzOSAzLjcyMzg2QzMuNDczODUgMy45NzM5MSAzLjMzMzM3IDQuMzEzMDQgMy4zMzMzNyA0LjY2NjY3VjEyLjY2NjdDMy4zMzMzNyAxMy4wMjAzIDMuNDczODUgMTMuMzU5NCAzLjcyMzkgMTMuNjA5NUMzLjk3Mzk1IDEzLjg1OTUgNC4zMTMwOSAxNCA0LjY2NjcxIDE0SDExLjMzMzRDMTEuNjg3IDE0IDEyLjAyNjEgMTMuODU5NSAxMi4yNzYyIDEzLjYwOTVDMTIuNTI2MiAxMy4zNTk0IDEyLjY2NjcgMTMuMDIwMyAxMi42NjY3IDEyLjY2NjdWNC42NjY2N0MxMi42NjY3IDQuMzEzMDQgMTIuNTI2MiAzLjk3MzkxIDEyLjI3NjIgMy43MjM4NkMxMi4wMjYxIDMuNDczODEgMTEuNjg3IDMuMzMzMzMgMTEuMzMzNCAzLjMzMzMzSDEwTTYuMDAwMDQgMy4zMzMzM0M2LjAwMDA0IDMuNjg2OTYgNi4xNDA1MiA0LjAyNjA5IDYuMzkwNTcgNC4yNzYxNEM2LjY0MDYxIDQuNTI2MTkgNi45Nzk3NSA0LjY2NjY3IDcuMzMzMzcgNC42NjY2N0g4LjY2NjcxQzkuMDIwMzMgNC42NjY2NyA5LjM1OTQ3IDQuNTI2MTkgOS42MDk1MiA0LjI3NjE0QzkuODU5NTYgNC4wMjYwOSAxMCAzLjY4Njk2IDEwIDMuMzMzMzNNNi4wMDAwNCAzLjMzMzMzQzYuMDAwMDQgMi45Nzk3MSA2LjE0MDUyIDIuNjQwNTcgNi4zOTA1NyAyLjM5MDUyQzYuNjQwNjEgMi4xNDA0OCA2Ljk3OTc1IDIgNy4zMzMzNyAySDguNjY2NzFDOS4wMjAzMyAyIDkuMzU5NDcgMi4xNDA0OCA5LjYwOTUyIDIuMzkwNTJDOS44NTk1NiAyLjY0MDU3IDEwIDIuOTc5NzEgMTAgMy4zMzMzM002LjAwMDA0IDkuMzMzMzNMNy4zMzMzNyAxMC42NjY3TDEwIDhcIiBzdHJva2U9XCIjNjE1RkZGXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMEIwQjBCXVwiPlZlcmlmaWNhdGlvbiBDaGVja3M8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY2hlY2sgb2YgY29uZmlnLnZlcmlmaWNhdGlvbkNoZWNrc1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2NxYS1iZy1bI0YwRkRGNF0gY3FhLWJvcmRlci1bI0I5RjhDRl0nOiBjaGVjay5zdGF0dXMgPT09ICdwYXNzJyxcbiAgICAgICAgICAgICdjcWEtYmctWyNGRUYyRjJdIGNxYS1ib3JkZXItWyNGRkM5QzldJzogY2hlY2suc3RhdHVzID09PSAnZmFpbCdcbiAgICAgICAgICB9XCJcbiAgICAgICAgICBjbGFzcz1cImNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtcm91bmRlZC1sZyBjcWEtcC0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1zdGFydCBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1nYXAtMiBjcWEtbWItMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgICAgIDwhLS0gPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY2hlY2suc3RhdHVzID09PSAncGFzcycgPyAnY3FhLXRleHQtZ3JlZW4tNjAwJyA6ICdjcWEtdGV4dC1yZWQtNjAwJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCIhY3FhLXctNSAhY3FhLWgtNSAhY3FhLXRleHQtWzIwcHhdXCI+XG4gICAgICAgICAgICAgICAge3sgY2hlY2suc3RhdHVzID09PSAncGFzcycgPyAnY2hlY2tfY2lyY2xlJyA6ICdjYW5jZWwnIH19XG4gICAgICAgICAgICAgIDwvbWF0LWljb24+IC0tPlxuICAgICAgICAgICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxNiAxOFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTMuMzMzMyA2TDUuOTk5OTYgMTMuMzMzM0wyLjY2NjYzIDEwXCIgc3Ryb2tlPVwiIzAwQTYzRVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzBCMEIwQl1cIj57eyBjaGVjay5kZXNjcmlwdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdjcWEtdGV4dC1bIzAwODIzNl0gY3FhLWJnLVsjRENGQ0U3XSc6IGNoZWNrLnN0YXR1cyA9PT0gJ3Bhc3MnLFxuICAgICAgICAgICAgICAgICdjcWEtdGV4dC1bI0MxMDAwN10gY3FhLWJnLVsjRkZFMkUyXSc6IGNoZWNrLnN0YXR1cyA9PT0gJ2ZhaWwnXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICBjbGFzcz1cImNxYS1weC0yIGNxYS1weS1bMnB4XSBjcWEtcm91bmRlZCBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XVwiPlxuICAgICAgICAgICAgICB7eyBjaGVjay5zdGF0dXMgPT09ICdwYXNzJyA/ICdQQVNTJyA6ICdGQUlMJyB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTIgY3FhLWdhcC0zIGNxYS1wbC02XCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyM2MzYzNjNdIGNxYS1tYi0xXCI+RXhwZWN0ZWQ8L2Rpdj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjaGVjay5leHBlY3RlZFwiXG4gICAgICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLXB5LTEuNSBjcWEtcHgtMiAhY3FhLWJvcmRlciAhY3FhLWJvcmRlci1zb2xpZCAhY3FhLWJvcmRlci1bI0U0RTRFNF0gY3FhLXJvdW5kZWQgIWNxYS1iZy13aGl0ZSBjcWEtdGV4dC1bMTFweF0gY3FhLWxlYWRpbmctWzEzcHhdIGNxYS10ZXh0LVsjMEIwQjBCXVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzYzNjM2M10gY3FhLW1iLTFcIj5BY3R1YWw8L2Rpdj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjaGVjay5hY3R1YWxcIlxuICAgICAgICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS1weS0xLjUgY3FhLXB4LTIgIWNxYS1ib3JkZXIgIWNxYS1ib3JkZXItc29saWQgIWNxYS1ib3JkZXItWyNFNEU0RTRdIGNxYS1yb3VuZGVkICFjcWEtYmctd2hpdGUgY3FhLXRleHQtWzExcHhdIGNxYS1sZWFkaW5nLVsxM3B4XSBjcWEtdGV4dC1bIzBCMEIwQl1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFRpbWluZyBCcmVha2Rvd24gLS0+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiY29uZmlnLnRpbWluZ0JyZWFrZG93blwiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1lbmQgY3FhLWdhcC01IGNxYS1wdC0xLjUgY3FhLXB4LTQgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyM5Q0EzQUZdXCI+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCI+XG4gICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNiAxMUM4Ljc2MTQyIDExIDExIDguNzYxNDIgMTEgNkMxMSAzLjIzODU4IDguNzYxNDIgMSA2IDFDMy4yMzg1OCAxIDEgMy4yMzg1OCAxIDZDMSA4Ljc2MTQyIDMuMjM4NTggMTEgNiAxMVpcIiBzdHJva2U9XCIjOUNBM0FGXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNiAzVjZMOCA3XCIgc3Ryb2tlPVwiIzlDQTNBRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cbiAgICAgIDxzcGFuPlRpbWluZyBicmVha2Rvd248L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1kaWFsb2ctbXV0ZWQgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTNcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIEFwcCA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LWdyYXktNzAwXCI+e3sgZm9ybWF0RHVyYXRpb24oY29uZmlnLnRpbWluZ0JyZWFrZG93bi5hcHApIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIxXCIgaGVpZ2h0PVwiMTFcIiB2aWV3Qm94PVwiMCAwIDEgMTFcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTS0zLjgxNDdlLTA2IDEwLjMyVi03LjE1MjU2ZS0wN0gwLjk1OTk5NlYxMC4zMkgtMy44MTQ3ZS0wNlpcIiBmaWxsPVwiI0U1RTdFQlwiLz48L3N2Zz48L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIFRvb2wgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1ncmF5LTcwMFwiPnt7IGZvcm1hdER1cmF0aW9uKGNvbmZpZy50aW1pbmdCcmVha2Rvd24udG9vbCkgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdmVyaWZpY2F0aW9uLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9leGVjdXRpb24tc2NyZWVuL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQXFILDZCQUE2QixFQUFzQiw4QkFBOEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hQLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFRM0QsTUFBTSxPQUFPLGlDQUFrQyxTQUFRLGlCQUFpQjtJQU54RTs7UUFvQlcsWUFBTyxHQUFhLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFhLEtBQUssQ0FBQztRQUMvQixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQy9DLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3BDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO1FBQzVELHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO1FBQy9ELHVCQUFrQixHQUF3Qiw2QkFBNkIsQ0FBQztRQUN4RSx3QkFBbUIsR0FBeUIsOEJBQThCLENBQUM7S0FnRnJGO0lBOUVDLG9HQUFvRztJQUNwRyxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFLUSxRQUFRO1FBQ2Ysc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsSUFBSSxFQUFFLHVCQUF1QjtZQUM3QixrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzNDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzNDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDVSxDQUFDO1FBRXBDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQ3RELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNoQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUN0QztTQUNGO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVk7UUFDNUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxlQUFlLENBQUMsSUFBWTtRQUMxQixTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVk7UUFDckIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxNQUF5QixFQUFFLEtBQVk7UUFDM0QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxNQUEwQixFQUFFLEtBQVk7UUFDN0QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFZO1FBQzVCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEtBQUssSUFBSSxFQUFFO1lBQ3BKLE1BQU0sU0FBUyxHQUFHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEtBQUssUUFBUTtnQkFDN0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQjtnQkFDM0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3RELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDO1lBQ3pDLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7YUFDcEQ7U0FDRjtJQUNILENBQUM7OzhIQXBHVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQyxreUJDVjlDLG1waUJBK0xBOzJGRHJMYSxpQ0FBaUM7a0JBTjdDLFNBQVM7K0JBQ0UsZ0NBQWdDLFFBR3BDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTs4QkFJckIsRUFBRTtzQkFBVixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNFLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbmZpZywgRXh0cmFjdGVkRmllbGQsIFZlcmlmaWNhdGlvbkNoZWNrLCBTdGVwU3RhdHVzLCBUaW1pbmdCcmVha2Rvd24sIEFkZFN0ZXBNZW51T3B0aW9uLCBERUZBVUxUX0FERF9TVEVQX01FTlVfT1BUSU9OUywgU3RlcE1vcmVNZW51T3B0aW9uLCBERUZBVUxUX1NURVBfTU9SRV9NRU5VX09QVElPTlMgfSBmcm9tICcuLi9leGVjdXRpb24tc3RlcC5tb2RlbHMnO1xuaW1wb3J0IHsgQmFzZVN0ZXBDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXN0ZXAuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWRvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9XG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbXBvbmVudCBleHRlbmRzIEJhc2VTdGVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvLyBJbmRpdmlkdWFsIGlucHV0c1xuICBASW5wdXQoKSBpZCE6IHN0cmluZztcbiAgQElucHV0KCkgc3RlcE51bWJlciE6IHN0cmluZztcbiAgQElucHV0KCkgdGl0bGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0YXR1cyE6IFN0ZXBTdGF0dXM7XG4gIEBJbnB1dCgpIGR1cmF0aW9uITogbnVtYmVyO1xuICBASW5wdXQoKSB0aW1pbmdCcmVha2Rvd24/OiBUaW1pbmdCcmVha2Rvd247XG4gIEBJbnB1dCgpIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgQElucHV0KCkgZG9jdW1lbnRTY3JlZW5zaG90Pzogc3RyaW5nO1xuICBASW5wdXQoKSBleHRyYWN0ZWRGaWVsZHMhOiBFeHRyYWN0ZWRGaWVsZFtdO1xuICBASW5wdXQoKSB2ZXJpZmljYXRpb25DaGVja3MhOiBWZXJpZmljYXRpb25DaGVja1tdO1xuICBASW5wdXQoKSBzdGVwPzogYW55O1xuICBASW5wdXQoKSBqdW1wVG9UaW1lc3RhbXBIYW5kbGVyPzogKHRpbWVzdGFtcDogbnVtYmVyLCB0ZXN0U3RlcElkPzogbnVtYmVyIHwgc3RyaW5nKSA9PiB2b2lkO1xuICBASW5wdXQoKSBpc0RlYnVnPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkZWJ1Z1BvaW50U2V0PzogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgZGVidWdQb2ludENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGVkaXRTdGVwID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYWRkU3RlcE9wdGlvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8QWRkU3RlcE1lbnVPcHRpb24+KCk7XG4gIEBPdXRwdXQoKSBzdGVwTW9yZU9wdGlvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3RlcE1vcmVNZW51T3B0aW9uPigpO1xuICBASW5wdXQoKSBhZGRTdGVwTWVudU9wdGlvbnM6IEFkZFN0ZXBNZW51T3B0aW9uW10gPSBERUZBVUxUX0FERF9TVEVQX01FTlVfT1BUSU9OUztcbiAgQElucHV0KCkgc3RlcE1vcmVNZW51T3B0aW9uczogU3RlcE1vcmVNZW51T3B0aW9uW10gPSBERUZBVUxUX1NURVBfTU9SRV9NRU5VX09QVElPTlM7XG5cbiAgLyoqIFNob3cgZGVidWcgaWNvbiBvbmx5IHdoZW4gdGhpcyBzdGVwIGhhcyBubyBjaGlsZCBzdGVwcyAobGVhZiBzdGVwOiBhbHdheXMgc2hvdyB3aGVuIGlzRGVidWcpLiAqL1xuICBnZXQgc2hvd0RlYnVnSWNvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0RlYnVnID09PSB0cnVlO1xuICB9XG5cbiAgLy8gQ29uZmlnIHByb3BlcnR5IGZvciBiYXNlIGNsYXNzIC0gYnVpbHQgZnJvbSBpbmRpdmlkdWFsIGlucHV0cyBpbiBuZ09uSW5pdFxuICBvdmVycmlkZSBjb25maWchOiBEb2N1bWVudFZlcmlmaWNhdGlvblN0ZXBDb25maWc7XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gQnVpbGQgY29uZmlnIGZyb20gaW5kaXZpZHVhbCBpbnB1dHNcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgc3RlcE51bWJlcjogdGhpcy5zdGVwTnVtYmVyLFxuICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXG4gICAgICBzdGF0dXM6IHRoaXMuc3RhdHVzLFxuICAgICAgZHVyYXRpb246IHRoaXMuZHVyYXRpb24sXG4gICAgICB0eXBlOiAnZG9jdW1lbnQtdmVyaWZpY2F0aW9uJyxcbiAgICAgIGRvY3VtZW50U2NyZWVuc2hvdDogdGhpcy5kb2N1bWVudFNjcmVlbnNob3QsXG4gICAgICBleHRyYWN0ZWRGaWVsZHM6IHRoaXMuZXh0cmFjdGVkRmllbGRzLFxuICAgICAgdmVyaWZpY2F0aW9uQ2hlY2tzOiB0aGlzLnZlcmlmaWNhdGlvbkNoZWNrcyxcbiAgICAgIHRpbWluZ0JyZWFrZG93bjogdGhpcy50aW1pbmdCcmVha2Rvd24sXG4gICAgICBleHBhbmRlZDogdGhpcy5leHBhbmRlZCxcbiAgICB9IGFzIERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbmZpZztcblxuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2V4cGFuZGVkJ10gJiYgdGhpcy5leHBhbmRlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmlzRXhwYW5kZWQgPSB0aGlzLmV4cGFuZGVkO1xuICAgICAgaWYgKHRoaXMuY29uZmlnKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLmV4cGFuZGVkID0gdGhpcy5leHBhbmRlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkRlYnVnUG9pbnRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZGVidWdQb2ludENoYW5nZS5lbWl0KCF0aGlzLmRlYnVnUG9pbnRTZXQpO1xuICB9XG5cbiAgY29weVRvQ2xpcGJvYXJkKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpLnRoZW4oKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ0NvcGllZCB0byBjbGlwYm9hcmQ6JywgdGV4dCk7XG4gICAgfSk7XG4gIH1cblxuICBvbkVkaXRTdGVwKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5lZGl0U3RlcC5lbWl0KCk7XG4gIH1cblxuICBvbkFkZFN0ZXBPcHRpb25TZWxlY3Qob3B0aW9uOiBBZGRTdGVwTWVudU9wdGlvbiwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmFkZFN0ZXBPcHRpb25TZWxlY3QuZW1pdChvcHRpb24pO1xuICB9XG5cbiAgb25TdGVwTW9yZU9wdGlvblNlbGVjdChvcHRpb246IFN0ZXBNb3JlTWVudU9wdGlvbiwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnN0ZXBNb3JlT3B0aW9uU2VsZWN0LmVtaXQob3B0aW9uKTtcbiAgfVxuXG4gIG9uSnVtcFRvVGltZXN0YW1wKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmp1bXBUb1RpbWVzdGFtcEhhbmRsZXIgJiYgdGhpcy5zdGVwPy5leGVjdXRlZFJlc3VsdD8udmlkZW9fc3RhcnRfdGltZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuc3RlcD8uZXhlY3V0ZWRSZXN1bHQ/LnZpZGVvX3N0YXJ0X3RpbWUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IHR5cGVvZiB0aGlzLnN0ZXAuZXhlY3V0ZWRSZXN1bHQudmlkZW9fc3RhcnRfdGltZSA9PT0gJ251bWJlcicgXG4gICAgICAgID8gdGhpcy5zdGVwLmV4ZWN1dGVkUmVzdWx0LnZpZGVvX3N0YXJ0X3RpbWUgXG4gICAgICAgIDogTnVtYmVyKHRoaXMuc3RlcC5leGVjdXRlZFJlc3VsdC52aWRlb19zdGFydF90aW1lKTtcbiAgICAgIGNvbnN0IHRlc3RTdGVwSWQgPSB0aGlzLnN0ZXA/LnRlc3RTdGVwSWQ7XG4gICAgICBpZiAoaXNGaW5pdGUodGltZXN0YW1wKSAmJiB0aW1lc3RhbXAgPj0gMCkge1xuICAgICAgICB0aGlzLmp1bXBUb1RpbWVzdGFtcEhhbmRsZXIodGltZXN0YW1wLCB0ZXN0U3RlcElkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXY+XG4gIDwhLS0gSGVhZGVyIC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtcC0yIGNxYS1jdXJzb3ItcG9pbnRlclwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgPGRpdiAqbmdJZj1cInNob3dEZWJ1Z0ljb25cIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNxYS1wLTAgY3FhLWJvcmRlci0wIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXJvdW5kZWQtZnVsbCBob3ZlcjpjcWEtb3BhY2l0eS04MCBjcWEtdHJhbnNpdGlvbi1vcGFjaXR5IGZvY3VzOmNxYS1vdXRsaW5lLW5vbmVcIiAoY2xpY2spPVwib25EZWJ1Z1BvaW50Q2xpY2soJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVidWdQb2ludFNldCA/ICdSZW1vdmUgZGVidWcgcG9pbnQnIDogJ1NldCBkZWJ1ZyBwb2ludCdcIj5cbiAgICAgICAgPHN2ZyAqbmdJZj1cImRlYnVnUG9pbnRTZXRcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPGNpcmNsZSBjeD1cIjdcIiBjeT1cIjdcIiByPVwiNlwiIGZpbGw9XCIjQzYzNTM1XCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPHN2ZyAqbmdJZj1cIiFkZWJ1Z1BvaW50U2V0XCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCI3XCIgY3k9XCI3XCIgcj1cIjZcIiBzdHJva2U9XCIjQzYzNTM1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgZmlsbD1cIm5vbmVcIi8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBTdGF0dXMgSWNvbiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnLnN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAnc3VjY2VzcydcIiA+PHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMC45MDA1IDQuOTk5OTlDMTEuMTI4OSA2LjEyMDY0IDEwLjk2NjIgNy4yODU3MSAxMC40Mzk1IDguMzAwODlDOS45MTI3OSA5LjMxNjA4IDkuMDU0IDEwLjEyIDguMDA2MzEgMTAuNTc4N0M2Ljk1ODYyIDExLjAzNzMgNS43ODUzNiAxMS4xMjI5IDQuNjgyMiAxMC44MjEyQzMuNTc5MDQgMTAuNTE5NSAyLjYxMjY1IDkuODQ4NjkgMS45NDQxOSA4LjkyMDcxQzEuMjc1NzMgNy45OTI3MiAwLjk0NTYxMSA2Ljg2MzYxIDEuMDA4ODggNS43MjE2OUMxLjA3MjE1IDQuNTc5NzYgMS41MjQ5OSAzLjQ5NDA0IDIuMjkxODggMi42NDU1OEMzLjA1ODc2IDEuNzk3MTIgNC4wOTMzNCAxLjIzNzIxIDUuMjIzMDggMS4wNTkyMkM2LjM1MjgyIDAuODgxMjMzIDcuNTA5NDQgMS4wOTU5MiA4LjUwMDA1IDEuNjY3NDlcIiBzdHJva2U9XCIjMjJDNTVFXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNC41IDUuNUw2IDdMMTEgMlwiIHN0cm9rZT1cIiMyMkM1NUVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImNvbmZpZy5zdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhaWx1cmUnXCI+PHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk02IDExQzguNzYxNDIgMTEgMTEgOC43NjE0MiAxMSA2QzExIDMuMjM4NTggOC43NjE0MiAxIDYgMUMzLjIzODU4IDEgMSAzLjIzODU4IDEgNkMxIDguNzYxNDIgMy4yMzg1OCAxMSA2IDExWlwiIHN0cm9rZT1cIiNEQzI2MjZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk03LjUgNC41TDQuNSA3LjVcIiBzdHJva2U9XCIjREMyNjI2XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNC41IDQuNUw3LjUgNy41XCIgc3Ryb2tlPVwiI0RDMjYyNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cblxuICAgIDwhLS0gRG9jdW1lbnQgSWNvbiAtLT5cbiAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAyMCAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIxNlwiIHJ4PVwiNFwiIGZpbGw9XCIjRTZGNEZGXCIvPjxwYXRoIGQ9XCJNMTIgNS41QzEyIDYuMDMwNDMgMTEuNzg5MyA2LjUzOTE0IDExLjQxNDIgNi45MTQyMUMxMS4wMzkxIDcuMjg5MjkgMTAuNTMwNCA3LjUgMTAgNy41QzkuNDY5NTcgNy41IDguOTYwODYgNy4yODkyOSA4LjU4NTc5IDYuOTE0MjFDOC4yMTA3MSA2LjUzOTE0IDggNi4wMzA0MyA4IDUuNUM4IDQuOTY5NTcgOC4yMTA3MSA0LjQ2MDg2IDguNTg1NzkgNC4wODU3OUM4Ljk2MDg2IDMuNzEwNzEgOS40Njk1NyAzLjUgMTAgMy41QzEwLjUzMDQgMy41IDExLjAzOTEgMy43MTA3MSAxMS40MTQyIDQuMDg1NzlDMTEuNzg5MyA0LjQ2MDg2IDEyIDQuOTY5NTcgMTIgNS41Wk0xMCA5QzkuMDcxNzQgOSA4LjE4MTUgOS4zNjg3NSA3LjUyNTEzIDEwLjAyNTFDNi44Njg3NSAxMC42ODE1IDYuNSAxMS41NzE3IDYuNSAxMi41SDEzLjVDMTMuNSAxMS41NzE3IDEzLjEzMTMgMTAuNjgxNSAxMi40NzQ5IDEwLjAyNTFDMTEuODE4NSA5LjM2ODc1IDEwLjkyODMgOSAxMCA5WlwiIHN0cm9rZT1cIiMwQTg2RTZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG5cbiAgICA8IS0tIFN0ZXAgTnVtYmVyIGFuZCBUaXRsZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtM1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzMzNDE1NV0gY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsxOHB4XVwiIHN0eWxlPVwid29yZC1icmVhazogYnJlYWstd29yZDtcIj5cbiAgICAgICAge3sgY29uZmlnLnN0ZXBOdW1iZXIgfX0uIDxzcGFuIFtpbm5lckhUTUxdPVwiY29uZmlnLnRpdGxlXCI+PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtcHgtMS41IGNxYS1yb3VuZGVkLWZ1bGwgY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMEE4NkU2XSBjcWEtYmctWyNFNkY0RkZdIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF1cIj5cbiAgICAgICAgRG9jdW1lbnQgVmVyaWZpY2F0aW9uXG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xIGNxYS1yb3VuZGVkLVs0cHhdIGNxYS1weS0wLjUgY3FhLXB4LTEgY3FhLWJnLVsjNjM2NkYxMUFdIGNxYS1tbC0xIGNxYS1jdXJzb3ItcG9pbnRlciBob3ZlcjpjcWEtb3BhY2l0eS04MCBjcWEtdHJhbnNpdGlvbi1vcGFjaXR5XCIgXG4gICAgICAgICAgICpuZ0lmPVwic3RlcD8uZXhlY3V0ZWRSZXN1bHQ/LnZpZGVvX3N0YXJ0X3RpbWVcIiBcbiAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ0p1bXAgdG8gdmlkZW8gdGltZSdcIiBcbiAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICAgICAoY2xpY2spPVwib25KdW1wVG9UaW1lc3RhbXAoJGV2ZW50KVwiPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjcWEtdGV4dC1bIzYzNjM2M10gIWNxYS10ZXh0LVsxMHB4XSAhY3FhLXctWzEwcHhdICFjcWEtaC1bMTBweF1cIj5cbiAgICAgICAgICBwbGF5X2Fycm93XG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzhweF0gY3FhLWxlYWRpbmctWzEycHhdIGNxYS1mb250LW5vcm1hbCBjcWEtdGV4dC1bIzYzNjM2M11cIj5cbiAgICAgICAgICB7eyBmb3JtYXREdXJhdGlvbkNsb2NrKHN0ZXA/LmV4ZWN1dGVkUmVzdWx0Py52aWRlb19zdGFydF90aW1lIHx8IDApIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImlzRGVidWdcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0wLjUgY3FhLXRleHQtWyM5Q0EzQUZdXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNxYS1wLTAgY3FhLWJvcmRlci0wIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLW9wYWNpdHktODAgY3FhLXRyYW5zaXRpb24tb3BhY2l0eSBmb2N1czpjcWEtb3V0bGluZS1ub25lXCIgYXJpYS1sYWJlbD1cIkVkaXRcIiAoY2xpY2spPVwib25FZGl0U3RlcCgkZXZlbnQpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiIWNxYS10ZXh0LVsxNHB4XSAhY3FhLXctWzE0cHhdICFjcWEtaC1bMTRweF1cIj5lZGl0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY3FhLXAtMCBjcWEtYm9yZGVyLTAgY3FhLWJnLXRyYW5zcGFyZW50IGNxYS1jdXJzb3ItcG9pbnRlciBob3ZlcjpjcWEtb3BhY2l0eS04MCBjcWEtdHJhbnNpdGlvbi1vcGFjaXR5IGZvY3VzOmNxYS1vdXRsaW5lLW5vbmVcIiBhcmlhLWxhYmVsPVwiQWRkXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFkZFN0ZXBNZW51XCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiIWNxYS10ZXh0LVsxNHB4XSAhY3FhLXctWzE0cHhdICFjcWEtaC1bMTRweF1cIj5hZGQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51ICNhZGRTdGVwTWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cImNxYS1hZGQtc3RlcC1tZW51XCIgeFBvc2l0aW9uPVwiYmVmb3JlXCIgeVBvc2l0aW9uPVwiYmVsb3dcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IG9wdCBvZiBhZGRTdGVwTWVudU9wdGlvbnNcIiAoY2xpY2spPVwib25BZGRTdGVwT3B0aW9uU2VsZWN0KG9wdCwgJGV2ZW50KVwiPnt7IG9wdC5sYWJlbCB9fTwvYnV0dG9uPlxuICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNxYS1wLTAgY3FhLWJvcmRlci0wIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLW9wYWNpdHktODAgY3FhLXRyYW5zaXRpb24tb3BhY2l0eSBmb2N1czpjcWEtb3V0bGluZS1ub25lXCIgYXJpYS1sYWJlbD1cIk1vcmUgb3B0aW9uc1wiIFttYXRNZW51VHJpZ2dlckZvcl09XCJzdGVwTW9yZU1lbnVcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCIhY3FhLXRleHQtWzE0cHhdICFjcWEtdy1bMTRweF0gIWNxYS1oLVsxNHB4XVwiPm1vcmVfdmVydDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bWF0LW1lbnUgI3N0ZXBNb3JlTWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cImNxYS1zdGVwLW1vcmUtbWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiIHlQb3NpdGlvbj1cImJlbG93XCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBvcHQgb2Ygc3RlcE1vcmVNZW51T3B0aW9uc1wiIChjbGljayk9XCJvblN0ZXBNb3JlT3B0aW9uU2VsZWN0KG9wdCwgJGV2ZW50KVwiPnt7IG9wdC5sYWJlbCB9fTwvYnV0dG9uPlxuICAgICAgICA8L21hdC1tZW51PlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLXRleHQtWyM5Q0EzQUZdXCI+XG4gICAgICAgIHt7IGZvcm1hdER1cmF0aW9uKGNvbmZpZy5kdXJhdGlvbikgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzdmcgW2NsYXNzLmNxYS1yb3RhdGUtMTgwXT1cImlzRXhwYW5kZWRcIiBjbGFzcz1cImNxYS10cmFuc2l0aW9uLXRyYW5zZm9ybVwiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTMuNSA1TDcgOC41TDEwLjUgNVwiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2Utd2lkdGg9XCIwLjgzMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBFeHBhbmRlZCBDb250ZW50IC0tPlxuICA8ZGl2ICpuZ0lmPVwiaXNFeHBhbmRlZFwiICBjbGFzcz1cImNxYS1iZy1bI0ZGRkVGOV0gY3FhLW10LTEuNSBjcWEtbWwtOSBjcWEtbXItNiBjcWEtcC00IGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTEuNVwiIHN0eWxlPVwiYm9yZGVyLXRvcDogMXB4IHNvbGlkICNFNEU0RTQ7XCI+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtMiBjcWEtZ2FwLTNcIj5cbiAgICAgIDwhLS0gRG9jdW1lbnQgU2NyZWVuc2hvdCBDYXJkIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1iZy1bI0ZDRkNGQ10gY3FhLXJvdW5kZWQtbGcgY3FhLXAtMyBjcWEtZmxleCBjcWEtZmxleC1jb2xcIiBzdHlsZT1cImJvcmRlcjogMXB4IHNvbGlkICNFREU5RkVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTIgY3FhLW1iLTJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNjM2MzYzXVwiPkRvY3VtZW50IFNjcmVlbnNob3Q8L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvbj5cbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTAgNEg1QzQuNDQ3NzIgNCA0IDQuNDQ3NzIgNCA1VjEwQzQgMTAuNTUyMyA0LjQ0NzcyIDExIDUgMTFIMTBDMTAuNTUyMyAxMSAxMSAxMC41NTIzIDExIDEwVjVDMTEgNC40NDc3MiAxMC41NTIzIDQgMTAgNFpcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMiA4QzEuNDUgOCAxIDcuNTUgMSA3VjJDMSAxLjQ1IDEuNDUgMSAyIDFIN0M3LjU1IDEgOCAxLjQ1IDggMlwiIHN0cm9rZT1cIiM2MzYzNjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNFNUU1RTVdIGNxYS1yb3VuZGVkLVsxMHB4XSBjcWEtYmctWyNGNUY1RjVdIGNxYS1hc3BlY3QtdmlkZW8gY3FhLWgtZnVsbCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMjUuMzMzMyA0SDYuNjY2NjdDNS4xOTM5MSA0IDQgNS4xOTM5MSA0IDYuNjY2NjdWMjUuMzMzM0M0IDI2LjgwNjEgNS4xOTM5MSAyOCA2LjY2NjY3IDI4SDI1LjMzMzNDMjYuODA2MSAyOCAyOCAyNi44MDYxIDI4IDI1LjMzMzNWNi42NjY2N0MyOCA1LjE5MzkxIDI2LjgwNjEgNCAyNS4zMzMzIDRaXCIgc3Ryb2tlPVwiIzczNzM3M1wiIHN0cm9rZS1vcGFjaXR5PVwiMC41XCIgc3Ryb2tlLXdpZHRoPVwiMi42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTEyIDE0LjY2NjZDMTMuNDcyNyAxNC42NjY2IDE0LjY2NjYgMTMuNDcyNyAxNC42NjY2IDExLjk5OTlDMTQuNjY2NiAxMC41MjcyIDEzLjQ3MjcgOS4zMzMyNSAxMiA5LjMzMzI1QzEwLjUyNzIgOS4zMzMyNSA5LjMzMzMxIDEwLjUyNzIgOS4zMzMzMSAxMS45OTk5QzkuMzMzMzEgMTMuNDcyNyAxMC41MjcyIDE0LjY2NjYgMTIgMTQuNjY2NlpcIiBzdHJva2U9XCIjNzM3MzczXCIgc3Ryb2tlLW9wYWNpdHk9XCIwLjVcIiBzdHJva2Utd2lkdGg9XCIyLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMjggMTkuOTk5OUwyMy44ODUzIDE1Ljg4NTNDMjMuMzg1MyAxNS4zODUzIDIyLjcwNzEgMTUuMTA0NSAyMiAxNS4xMDQ1QzIxLjI5MjkgMTUuMTA0NSAyMC42MTQ3IDE1LjM4NTMgMjAuMTE0NyAxNS44ODUzTDggMjcuOTk5OVwiIHN0cm9rZT1cIiM3MzczNzNcIiBzdHJva2Utb3BhY2l0eT1cIjAuNVwiIHN0cm9rZS13aWR0aD1cIjIuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gRXh0cmFjdGVkIEZpZWxkcyBDYXJkIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1iZy1bI0ZDRkNGQ10gY3FhLXJvdW5kZWQtbGcgY3FhLXAtMyBjcWEtZmxleCBjcWEtZmxleC1jb2xcIiBzdHlsZT1cImJvcmRlcjogMXB4IHNvbGlkICNFREU5RkVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTIgY3FhLW1iLTJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNjM2MzYzXVwiPkV4dHJhY3RlZCBGaWVsZHM8L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvbj5cbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTAgNEg1QzQuNDQ3NzIgNCA0IDQuNDQ3NzIgNCA1VjEwQzQgMTAuNTUyMyA0LjQ0NzcyIDExIDUgMTFIMTBDMTAuNTUyMyAxMSAxMSAxMC41NTIzIDExIDEwVjVDMTEgNC40NDc3MiAxMC41NTIzIDQgMTAgNFpcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMiA4QzEuNDUgOCAxIDcuNTUgMSA3VjJDMSAxLjQ1IDEuNDUgMSAyIDFIN0M3LjU1IDEgOCAxLjQ1IDggMlwiIHN0cm9rZT1cIiM2MzYzNjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1iZy13aGl0ZSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0M2RDJGRl0gY3FhLXJvdW5kZWQtbGdcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmllbGQgb2YgY29uZmlnLmV4dHJhY3RlZEZpZWxkc1wiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTIgY3FhLXB4LTMgY3FhLXB0LTEgY3FhLXBiLTEuNSBjcWEtYm9yZGVyLWIgY3FhLWJvcmRlci10LTAgY3FhLWJvcmRlci1sLTAgY3FhLWJvcmRlci1yLTAgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRTRFNEU0XSBsYXN0OmNxYS1ib3JkZXItMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LTFcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVs4cHhdIGNxYS1sZWFkaW5nLVsxMnB4XSBjcWEtdGV4dC1bIzYzNjM2M11cIj57eyBmaWVsZC5sYWJlbCB9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMwQjBCMEJdXCI+e3sgZmllbGQudmFsdWUgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXB4LTIgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzAwODIzNl0gY3FhLWJnLVsjRENGQ0U3XSBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdXCI+XG4gICAgICAgICAgICAgICAge3sgZmllbGQuY29uZmlkZW5jZSB9fSVcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvcHlUb0NsaXBib2FyZChmaWVsZC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3FhLXAtMVwiPlxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTEuNjY2NyA0LjY2Njc1SDUuODMzMzJDNS4xODg5OSA0LjY2Njc1IDQuNjY2NjYgNS4xODkwOCA0LjY2NjY2IDUuODMzNDFWMTEuNjY2N0M0LjY2NjY2IDEyLjMxMTEgNS4xODg5OSAxMi44MzM0IDUuODMzMzIgMTIuODMzNEgxMS42NjY3QzEyLjMxMSAxMi44MzM0IDEyLjgzMzMgMTIuMzExMSAxMi44MzMzIDExLjY2NjdWNS44MzM0MUMxMi44MzMzIDUuMTg5MDggMTIuMzExIDQuNjY2NzUgMTEuNjY2NyA0LjY2Njc1WlwiIHN0cm9rZT1cIiM2MzYzNjNcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMi4zMzMzMiA5LjMzMzQxQzEuNjkxNjYgOS4zMzM0MSAxLjE2NjY2IDguODA4NDEgMS4xNjY2NiA4LjE2Njc1VjIuMzMzNDFDMS4xNjY2NiAxLjY5MTc1IDEuNjkxNjYgMS4xNjY3NSAyLjMzMzMyIDEuMTY2NzVIOC4xNjY2NkM4LjgwODMyIDEuMTY2NzUgOS4zMzMzMiAxLjY5MTc1IDkuMzMzMzIgMi4zMzM0MVwiIHN0cm9rZT1cIiM2MzYzNjNcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBWZXJpZmljYXRpb24gQ2hlY2tzIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtbXQtMS41XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLW1iLTJcIj5cbiAgICAgICAgPGRpdj48c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTYuMDAwMDQgMy4zMzMzM0g0LjY2NjcxQzQuMzEzMDkgMy4zMzMzMyAzLjk3Mzk1IDMuNDczODEgMy43MjM5IDMuNzIzODZDMy40NzM4NSAzLjk3MzkxIDMuMzMzMzcgNC4zMTMwNCAzLjMzMzM3IDQuNjY2NjdWMTIuNjY2N0MzLjMzMzM3IDEzLjAyMDMgMy40NzM4NSAxMy4zNTk0IDMuNzIzOSAxMy42MDk1QzMuOTczOTUgMTMuODU5NSA0LjMxMzA5IDE0IDQuNjY2NzEgMTRIMTEuMzMzNEMxMS42ODcgMTQgMTIuMDI2MSAxMy44NTk1IDEyLjI3NjIgMTMuNjA5NUMxMi41MjYyIDEzLjM1OTQgMTIuNjY2NyAxMy4wMjAzIDEyLjY2NjcgMTIuNjY2N1Y0LjY2NjY3QzEyLjY2NjcgNC4zMTMwNCAxMi41MjYyIDMuOTczOTEgMTIuMjc2MiAzLjcyMzg2QzEyLjAyNjEgMy40NzM4MSAxMS42ODcgMy4zMzMzMyAxMS4zMzM0IDMuMzMzMzNIMTBNNi4wMDAwNCAzLjMzMzMzQzYuMDAwMDQgMy42ODY5NiA2LjE0MDUyIDQuMDI2MDkgNi4zOTA1NyA0LjI3NjE0QzYuNjQwNjEgNC41MjYxOSA2Ljk3OTc1IDQuNjY2NjcgNy4zMzMzNyA0LjY2NjY3SDguNjY2NzFDOS4wMjAzMyA0LjY2NjY3IDkuMzU5NDcgNC41MjYxOSA5LjYwOTUyIDQuMjc2MTRDOS44NTk1NiA0LjAyNjA5IDEwIDMuNjg2OTYgMTAgMy4zMzMzM002LjAwMDA0IDMuMzMzMzNDNi4wMDAwNCAyLjk3OTcxIDYuMTQwNTIgMi42NDA1NyA2LjM5MDU3IDIuMzkwNTJDNi42NDA2MSAyLjE0MDQ4IDYuOTc5NzUgMiA3LjMzMzM3IDJIOC42NjY3MUM5LjAyMDMzIDIgOS4zNTk0NyAyLjE0MDQ4IDkuNjA5NTIgMi4zOTA1MkM5Ljg1OTU2IDIuNjQwNTcgMTAgMi45Nzk3MSAxMCAzLjMzMzMzTTYuMDAwMDQgOS4zMzMzM0w3LjMzMzM3IDEwLjY2NjdMMTAgOFwiIHN0cm9rZT1cIiM2MTVGRkZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPjwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWyMwQjBCMEJdXCI+VmVyaWZpY2F0aW9uIENoZWNrczwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjaGVjayBvZiBjb25maWcudmVyaWZpY2F0aW9uQ2hlY2tzXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnY3FhLWJnLVsjRjBGREY0XSBjcWEtYm9yZGVyLVsjQjlGOENGXSc6IGNoZWNrLnN0YXR1cyA9PT0gJ3Bhc3MnLFxuICAgICAgICAgICAgJ2NxYS1iZy1bI0ZFRjJGMl0gY3FhLWJvcmRlci1bI0ZGQzlDOV0nOiBjaGVjay5zdGF0dXMgPT09ICdmYWlsJ1xuICAgICAgICAgIH1cIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1yb3VuZGVkLWxnIGNxYS1wLTNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLXN0YXJ0IGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yIGNxYS1tYi0yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgPCEtLSA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjaGVjay5zdGF0dXMgPT09ICdwYXNzJyA/ICdjcWEtdGV4dC1ncmVlbi02MDAnIDogJ2NxYS10ZXh0LXJlZC02MDAnXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIiFjcWEtdy01ICFjcWEtaC01ICFjcWEtdGV4dC1bMjBweF1cIj5cbiAgICAgICAgICAgICAgICB7eyBjaGVjay5zdGF0dXMgPT09ICdwYXNzJyA/ICdjaGVja19jaXJjbGUnIDogJ2NhbmNlbCcgfX1cbiAgICAgICAgICAgICAgPC9tYXQtaWNvbj4gLS0+XG4gICAgICAgICAgICAgIDxkaXY+PHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDE2IDE4XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMy4zMzMzIDZMNS45OTk5NiAxMy4zMzMzTDIuNjY2NjMgMTBcIiBzdHJva2U9XCIjMDBBNjNFXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMEIwQjBCXVwiPnt7IGNoZWNrLmRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2NxYS10ZXh0LVsjMDA4MjM2XSBjcWEtYmctWyNEQ0ZDRTddJzogY2hlY2suc3RhdHVzID09PSAncGFzcycsXG4gICAgICAgICAgICAgICAgJ2NxYS10ZXh0LVsjQzEwMDA3XSBjcWEtYmctWyNGRkUyRTJdJzogY2hlY2suc3RhdHVzID09PSAnZmFpbCdcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3FhLXB4LTIgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdXCI+XG4gICAgICAgICAgICAgIHt7IGNoZWNrLnN0YXR1cyA9PT0gJ3Bhc3MnID8gJ1BBU1MnIDogJ0ZBSUwnIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtMiBjcWEtZ2FwLTMgY3FhLXBsLTZcIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzYzNjM2M10gY3FhLW1iLTFcIj5FeHBlY3RlZDwvZGl2PlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNoZWNrLmV4cGVjdGVkXCJcbiAgICAgICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtcHktMS41IGNxYS1weC0yICFjcWEtYm9yZGVyICFjcWEtYm9yZGVyLXNvbGlkICFjcWEtYm9yZGVyLVsjRTRFNEU0XSBjcWEtcm91bmRlZCAhY3FhLWJnLXdoaXRlIGNxYS10ZXh0LVsxMXB4XSBjcWEtbGVhZGluZy1bMTNweF0gY3FhLXRleHQtWyMwQjBCMEJdXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNjM2MzYzXSBjcWEtbWItMVwiPkFjdHVhbDwvZGl2PlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNoZWNrLmFjdHVhbFwiXG4gICAgICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLXB5LTEuNSBjcWEtcHgtMiAhY3FhLWJvcmRlciAhY3FhLWJvcmRlci1zb2xpZCAhY3FhLWJvcmRlci1bI0U0RTRFNF0gY3FhLXJvdW5kZWQgIWNxYS1iZy13aGl0ZSBjcWEtdGV4dC1bMTFweF0gY3FhLWxlYWRpbmctWzEzcHhdIGNxYS10ZXh0LVsjMEIwQjBCXVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gVGltaW5nIEJyZWFrZG93biAtLT5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJjb25maWcudGltaW5nQnJlYWtkb3duXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWVuZCBjcWEtZ2FwLTUgY3FhLXB0LTEuNSBjcWEtcHgtNCBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzlDQTNBRl1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTJcIj5cbiAgICAgIDxkaXY+PHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk02IDExQzguNzYxNDIgMTEgMTEgOC43NjE0MiAxMSA2QzExIDMuMjM4NTggOC43NjE0MiAxIDYgMUMzLjIzODU4IDEgMSAzLjIzODU4IDEgNkMxIDguNzYxNDIgMy4yMzg1OCAxMSA2IDExWlwiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk02IDNWNkw4IDdcIiBzdHJva2U9XCIjOUNBM0FGXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPjwvZGl2PlxuICAgICAgPHNwYW4+VGltaW5nIGJyZWFrZG93bjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LWRpYWxvZy1tdXRlZCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtM1wiPlxuICAgICAgPGRpdj5cbiAgICAgICAgQXBwIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtZ3JheS03MDBcIj57eyBmb3JtYXREdXJhdGlvbihjb25maWcudGltaW5nQnJlYWtkb3duLmFwcCkgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+PHN2ZyB3aWR0aD1cIjFcIiBoZWlnaHQ9XCIxMVwiIHZpZXdCb3g9XCIwIDAgMSAxMVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNLTMuODE0N2UtMDYgMTAuMzJWLTcuMTUyNTZlLTA3SDAuOTU5OTk2VjEwLjMySC0zLjgxNDdlLTA2WlwiIGZpbGw9XCIjRTVFN0VCXCIvPjwvc3ZnPjwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgVG9vbCA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LWdyYXktNzAwXCI+e3sgZm9ybWF0RHVyYXRpb24oY29uZmlnLnRpbWluZ0JyZWFrZG93bi50b29sKSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,5 +1,17 @@
1
1
  /**
2
2
  * Models and interfaces for execution screen step components
3
3
  */
4
- export {};
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uLXN0ZXAubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9leGVjdXRpb24tc2NyZWVuL2V4ZWN1dGlvbi1zdGVwLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTW9kZWxzIGFuZCBpbnRlcmZhY2VzIGZvciBleGVjdXRpb24gc2NyZWVuIHN0ZXAgY29tcG9uZW50c1xuICovXG5cbmV4cG9ydCB0eXBlIFN0ZXBTdGF0dXMgPSAnc3VjY2VzcycgfCAnZmFpbGVkJyB8ICdwZW5kaW5nJyB8ICdydW5uaW5nJyB8ICdza2lwcGVkJyB8ICdTVUNDRVNTJyB8ICdGQUlMRUQnIHwgJ1BFTkRJTkcnIHwgJ1JVTk5JTkcnIHwgJ1NLSVBQRUQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRpbWluZ0JyZWFrZG93biB7XG4gIGFwcDogbnVtYmVyOyAvLyBpbiBzZWNvbmRzXG4gIHRvb2w6IG51bWJlcjsgLy8gaW4gc2Vjb25kc1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YlN0ZXAge1xuICBpZDogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzdGF0dXM6IFN0ZXBTdGF0dXM7XG4gIGR1cmF0aW9uOiBudW1iZXI7IC8vIGluIHNlY29uZHNcbiAgdGltZXN0YW1wPzogc3RyaW5nOyAvLyBvcHRpb25hbCB0aW1lc3RhbXAgbGlrZSBcIjAwOjEyXCJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb29wSXRlcmF0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZzsgLy8gZS5nLiwgXCJJdGVyIDIgKHByb2R1Y3Rpb24pXCJcbiAgc3RhdHVzOiBTdGVwU3RhdHVzO1xuICBzdWJTdGVwcz86IFN1YlN0ZXBbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb25CcmFuY2gge1xuICB0eXBlOiAnaWYnIHwgJ2Vsc2UnIHwgJ2Vsc2UgaWYnO1xuICBsYWJlbDogc3RyaW5nOyAvLyBlLmcuLCBcIlByZW1pdW0gdXNlclwiIG9yIFwiRnJlZSB1c2VyXCJcbiAgZXhlY3V0ZWQ6IGJvb2xlYW47XG4gIHN1YlN0ZXBzPzogU3ViU3RlcFtdO1xuICBicmFuY2hTdGVwSWQ/OiBzdHJpbmcgfCBudW1iZXI7IC8vIElEIG9mIHRoZSBicmFuY2ggc3RlcCB0byBsb2FkIGNoaWxkcmVuIGZyb21cbiAgaXNJZkJyYW5jaD86IGJvb2xlYW47IC8vIFdoZXRoZXIgdGhpcyBpcyB0aGUgbWFpbiBJRiBicmFuY2hcbiAgYnJhbmNoU3RlcDogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjcmVlbnNob3REYXRhIHtcbiAgYmFzZWxpbmU/OiBzdHJpbmc7IC8vIFVSTCBvciBiYXNlNjRcbiAgY3VycmVudD86IHN0cmluZzsgLy8gVVJMIG9yIGJhc2U2NFxuICBkaWZmZXJlbmNlPzogc3RyaW5nOyAvLyBVUkwgb3IgYmFzZTY0XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nRW50cnkge1xuICBsZXZlbDogJ2luZm8nIHwgJ3dhcm5pbmcnIHwgJ2Vycm9yJztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICB0aW1lc3RhbXA/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmFpbHVyZURldGFpbHMge1xuICB0ZXN0U3RlcElkOiBzdHJpbmc7XG4gIGV4cGVjdGVkOiBzdHJpbmc7XG4gIGFjdHVhbDogc3RyaW5nO1xuICBmYWlsZWRBY3Rpb24/OiBzdHJpbmc7IC8vIFRoZSBhY3Rpb24gdGhhdCBmYWlsZWRcbiAgYWlGaXhBcHBsaWVkPzogYm9vbGVhbjtcbiAgYWlGaXhNZXNzYWdlPzogc3RyaW5nO1xuICBzY3JlZW5zaG90cz86IFNjcmVlbnNob3REYXRhO1xuICBsb2dzPzogTG9nRW50cnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlU3RlcENvbmZpZyB7XG4gIGlkOiBzdHJpbmc7XG4gIHRlc3RTdGVwSWQ6IG51bWJlciB8IHVuZGVmaW5lZDsgLy8gdGVzdCBzdGVwIGlkIGZyb20gdGhlIHRlc3QgY2FzZVxuICB0ZXN0U3RlcFJlc3VsdElkOiBzdHJpbmc7XG4gIHN0ZXBOdW1iZXI6IHN0cmluZzsgLy8gZS5nLiwgXCIxXCIsIFwiMi4xXCIsIFwiMy4yLjFcIlxuICB0aXRsZTogc3RyaW5nO1xuICBzdGF0dXM6IFN0ZXBTdGF0dXM7XG4gIGR1cmF0aW9uOiBudW1iZXI7IC8vIHRvdGFsIGR1cmF0aW9uIGluIHNlY29uZHNcbiAgdGltaW5nQnJlYWtkb3duPzogVGltaW5nQnJlYWtkb3duO1xuICBleHBhbmRlZD86IGJvb2xlYW47IC8vIHdoZXRoZXIgdGhlIHN0ZXAgaXMgZXhwYW5kZWQgYnkgZGVmYXVsdFxuICBmYWlsdXJlRGV0YWlscz86IEZhaWx1cmVEZXRhaWxzO1xuICByZWFzb25pbmc/OiBzdHJpbmdbXTtcbiAgY29uZmlkZW5jZT86IHN0cmluZztcbiAgc3RlcERlbGV0ZWQ/OiBib29sZWFuO1xuICBleGVjdXRlZFJlc3VsdD86IHtcbiAgICB2aWRlb19zdGFydF90aW1lOiBudW1iZXI7XG4gICAgdmlkZW9fZW5kX3RpbWU6IG51bWJlcjtcbiAgfTtcbiAgLy8gQWRkaXRpb25hbCBwcm9wZXJ0aWVzIGZvciBsaXZlIGV4ZWN1dGlvbiBhbmQgcnVudGltZSB1c2VcbiAgc2VsZWN0ZWRJdGVyYXRpb25JZD86IHN0cmluZzsgLy8gd2hpY2ggaXRlcmF0aW9uIHRvIGRpc3BsYXlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWxmSGVhbEFuYWx5c2lzRGF0YSB7XG4gIG9yaWdpbmFsTG9jYXRvcjogc3RyaW5nO1xuICBoZWFsZWRMb2NhdG9yOiBzdHJpbmc7XG4gIGNvbmZpZGVuY2U6IG51bWJlcjsgLy8gMC0xMDBcbiAgaGVhbE1ldGhvZDogc3RyaW5nOyAvLyBlLmcuLCBcIlNlbWFudGljIEF0dHJpYnV0ZSBNYXRjaGluZ1wiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZkhlYWxBY3Rpb25FdmVudCB7XG4gIHR5cGU6IFNlbGZIZWFsQWN0aW9uO1xuICBpZDogc3RyaW5nO1xuICBoZWFsZWRMb2NhdG9yOiBzdHJpbmc7XG4gIHRlc3RTdGVwSWQ/OiBzdHJpbmc7IC8vIHRlc3Qgc3RlcCBpZCBmcm9tIHRoZSB0ZXN0IGNhc2Vcbn1cblxuZXhwb3J0IHR5cGUgU2VsZkhlYWxBY3Rpb24gPSAnYWNjZXB0JyB8ICdyZWplY3QnIHwgJ21vZGlmeS1hY2NlcHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2ljU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgdHlwZTogJ2Jhc2ljJztcbiAgc3ViU3RlcHM6IFN1YlN0ZXBbXTtcbiAgc2VsZkhlYWxBbmFseXNpcz86IFNlbGZIZWFsQW5hbHlzaXNEYXRhO1xuICBzZWxmSGVhbGVkPzogYm9vbGVhbjsgLy8gSW5kaWNhdGVzIGlmIHNlbGYtaGVhbGluZyB3YXMgYXBwbGllZFxuICBzZWxmSGVhbER1cmF0aW9uPzogbnVtYmVyOyAvLyBEdXJhdGlvbiBvZiBzZWxmLWhlYWxpbmcgcHJvY2Vzc1xuICBuZXN0ZWRTdGVwcz86IEV4ZWN1dGlvblN0ZXBDb25maWdbXTsgLy8gbmVzdGVkIGNoaWxkIHN0ZXBzIGZvciByZWN1cnNpdmUgcmVuZGVyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcEdyb3VwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnc3RlcC1ncm91cCc7XG4gIGdyb3VwTmFtZTogc3RyaW5nOyAvLyBlLmcuLCBcIk5hdmlnYXRpb25cIiwgXCJDaGVja291dCBmbG93XCJcbiAgc3RlcHM6IEV4ZWN1dGlvblN0ZXBDb25maWdbXTsgLy8gbmVzdGVkIHN0ZXBzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9vcFN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHR5cGU6ICdsb29wJztcbiAgbG9vcFR5cGU/OiAnZm9yJyB8ICd3aGlsZSc7XG4gIGl0ZXJhdGlvbnM6IExvb3BJdGVyYXRpb25bXTtcbiAgc2VsZWN0ZWRJdGVyYXRpb25JZD86IHN0cmluZzsgLy8gd2hpY2ggaXRlcmF0aW9uIHRvIGRpc3BsYXlcbiAgZGVmYXVsdEl0ZXJhdGlvbj86ICdmaXJzdCcgfCAnbGFzdCc7IC8vIGRlZmF1bHQgaXRlcmF0aW9uIHRvIHNob3dcbiAgbmVzdGVkU3RlcHM/OiBFeGVjdXRpb25TdGVwQ29uZmlnW107IC8vIHN0ZXBzIG5lc3RlZCB3aXRoaW4gdGhlIGxvb3BcbiAgc2hvd1ZpZXdBbGxJdGVyYXRpb25zPzogYm9vbGVhbjtcbiAgc3ViU3RlcHM/OiBTdWJTdGVwW107XG4gIGl0ZXJhdGlvbkRhdGE/OiBhbnk7IC8vIGRhdGEgZm9yIGVhY2ggaXRlcmF0aW9uIGluIGxpdmUgZXhlY3V0aW9uXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZGl0aW9uU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgdHlwZTogJ2NvbmRpdGlvbic7XG4gIGNvbmRpdGlvblRleHQ6IHN0cmluZzsgLy8gZS5nLiwgXCJpZiB1c2VyIHR5cGUgaXMgJ1ByZW1pdW0nXCJcbiAgYnJhbmNoZXM6IENvbmRpdGlvbkJyYW5jaFtdO1xuICBuZXN0ZWRTdGVwcz86IEV4ZWN1dGlvblN0ZXBDb25maWdbXTsgLy8gbmVzdGVkIGNoaWxkIHN0ZXBzIGZvciByZWN1cnNpdmUgcmVuZGVyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmFpbGVkU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgdHlwZTogJ2ZhaWxlZCc7XG4gIHN1YlN0ZXBzOiBTdWJTdGVwW107XG4gIGZhaWx1cmVEZXRhaWxzOiBGYWlsdXJlRGV0YWlscztcbiAgcmVhc29uaW5nPzogc3RyaW5nW107XG4gIGNvbmZpZGVuY2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlBZ2VudEFjdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHR5cGU6ICdleHRyYWN0JyB8ICd2YWxpZGF0ZScgfCAnQUlfQUdFTlRfQUNUSU9OJyB8ICdUWVBFJyB8ICdDTElDSyc7XG4gIHN0YXR1czogU3RlcFN0YXR1cztcbiAgY29uZmlkZW5jZT86IG51bWJlcjsgLy8gMC0xMDBcbiAgZHVyYXRpb246IG51bWJlcjtcbiAgcmVhc29uaW5nPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJQWdlbnRTdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnYWktYWdlbnQnO1xuICBwcm9tcHQ6IHN0cmluZztcbiAgb3B0aW1pemVkUnVuPzogYm9vbGVhbjtcbiAgYWN0aW9uQ291bnQ/OiBudW1iZXI7XG4gIGFjdGlvbnM6IEFJQWdlbnRBY3Rpb25bXTtcbiAgc2VsZWN0ZWRUYWI/OiAnYWN0aW9uLXRyYWNlJyB8ICdwbGFubmVyLXRpbWVsaW5lJyB8ICdhaS1yZWFzb25pbmcnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJQWN0aW9uU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgdHlwZTogJ2FpLWFjdGlvbic7XG4gIGFjdGlvbkNvdW50PzogbnVtYmVyO1xuICBhY3Rpb25OYW1lPzogJ2FpX3RleHRfdmVyaWZpY2F0aW9uJyB8ICdhaV9hc2snIHwgJ2FpX2RvY3VtZW50X2FzaycgfCAnYWlfdmVyaWZ5JztcbiAgYWN0aW9uczogQUlBZ2VudEFjdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaUFzc2VydGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHN0YXR1czogJ3Bhc3NlZCcgfCAnZmFpbGVkJztcbiAgZXhwZWN0ZWQ6IHN0cmluZztcbiAgYWN0dWFsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgdHlwZTogJ2FwaSc7XG4gIG1ldGhvZDogc3RyaW5nOyAvLyBHRVQsIFBPU1QsIFBVVCwgREVMRVRFLCBldGMuXG4gIGVuZHBvaW50OiBzdHJpbmc7XG4gIHN0YXR1c0NvZGU6IG51bWJlcjtcbiAgcmVzcG9uc2VUaW1lOiBudW1iZXI7IC8vIGluIG1pbGxpc2Vjb25kc1xuICByZXF1ZXN0Qm9keT86IGFueTtcbiAgcmVzcG9uc2VCb2R5PzogYW55O1xuICByZXF1ZXN0SGVhZGVycz86IGFueTtcbiAgcmVzcG9uc2VIZWFkZXJzPzogYW55O1xuICBhc3NlcnRpb25zPzogQXBpQXNzZXJ0aW9uW107XG4gIGluaXRpYWxBY3Rpb25zPzogU3ViU3RlcFtdOyAvLyBBY3Rpb25zIGJlZm9yZSB0aGUgQVBJIGNhbGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlRG93bmxvYWRTdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnZmlsZS1kb3dubG9hZCc7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIGZpbGVUeXBlOiBzdHJpbmc7IC8vIFBERiwgQ1NWLCBldGMuXG4gIGZpbGVTaXplPzogc3RyaW5nOyAvLyBlLmcuLCBcIjIuNCBNQlwiXG4gIGZpbGVQYXRoPzogc3RyaW5nO1xuICBkb3dubG9hZGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dHJhY3RlZEZpZWxkIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgY29uZmlkZW5jZTogbnVtYmVyOyAvLyAwLTEwMFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZlcmlmaWNhdGlvbkNoZWNrIHtcbiAgaWQ6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgc3RhdHVzOiAncGFzcycgfCAnZmFpbCc7XG4gIGV4cGVjdGVkOiBzdHJpbmc7XG4gIGFjdHVhbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgdHlwZTogJ2RvY3VtZW50LXZlcmlmaWNhdGlvbic7XG4gIGRvY3VtZW50U2NyZWVuc2hvdD86IHN0cmluZzsgLy8gVVJMIG9yIGJhc2U2NFxuICBleHRyYWN0ZWRGaWVsZHM6IEV4dHJhY3RlZEZpZWxkW107XG4gIHZlcmlmaWNhdGlvbkNoZWNrczogVmVyaWZpY2F0aW9uQ2hlY2tbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXZlU3ViU3RlcCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZzsgLy8gVGV4dCBmcm9tIHNvY2tldFxuICBpc1J1bm5pbmc6IGJvb2xlYW47IC8vIHRydWUgPSBzaG93IGxvYWRlciwgZmFsc2UgPSBzaG93IGljb25cbiAgZHVyYXRpb24/OiBudW1iZXI7IC8vIGluIHNlY29uZHNcbiAgc3RhdHVzOiAncGFzc2VkJyB8ICdmYWlsZWQnIHwgJ3BlbmRpbmcnIHwgJ3N1Y2Nlc3MnIHwgJ2ZhaWx1cmUnIHwgJ3NraXBwZWQnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpdmVFeGVjdXRpb25TdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnbGl2ZS1leGVjdXRpb24nO1xuICBzdWJTdGVwczogTGl2ZVN1YlN0ZXBbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYlF1ZXJ5UmVzdWx0IHtcbiAgZGF0YTogYW55W107XG4gIHF1ZXJ5OiBzdHJpbmc7XG4gIGV4ZWN1dGVkQXQ/OiBzdHJpbmc7XG4gIGR1cmF0aW9uPzogbnVtYmVyOyAvLyBpbiBzZWNvbmRzXG4gIFtrZXk6IHN0cmluZ106IGFueTsgLy8gRm9yIGR5bmFtaWMga2V5cyBsaWtlIFwiRGVtb191c2VyXCJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYkFzc2VydGlvblJlc3VsdCB7XG4gIHZhcmlhYmxlTmFtZTogc3RyaW5nO1xuICBqc29uUGF0aDogc3RyaW5nO1xuICBleHBlY3RlZFZhbHVlOiBhbnk7XG4gIGFjdHVhbFZhbHVlOiBhbnk7XG4gIHZlcmlmaWNhdGlvblR5cGU6IHN0cmluZztcbiAgZXhwZWN0ZWRUeXBlOiBzdHJpbmc7XG4gIHBhc3NlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYlRlc3RSZXN1bHQge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICByZXN1bHRzOiB7IFtrZXk6IHN0cmluZ106IERiUXVlcnlSZXN1bHQgfTtcbiAgYXNzZXJ0aW9uUmVzdWx0czogRGJBc3NlcnRpb25SZXN1bHRbXTtcbiAgYWxsQXNzZXJ0aW9uc1Bhc3NlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYlZlcmlmaWNhdGlvblN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHR5cGU6ICdkYi12ZXJpZmljYXRpb24nO1xuICBkYlRlc3RSZXN1bHQ6IERiVGVzdFJlc3VsdDtcbiAgZGJDb25maWc/OiB7XG4gICAgbmFtZTogc3RyaW5nOyAvLyBFbnZpcm9ubWVudCBuYW1lXG4gICAgZGJUeXBlOiBzdHJpbmc7IC8vIERhdGFiYXNlIHR5cGUgKE15U1FMLCBTUUxTZXJ2ZXIsIGV0Yy4pXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlcmVxdWlzaXRlSXRlbSB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7IC8vIGUuZy4sIFwiUHJlcmVxdWlzaXRlIDE6IExvZ2luIGZsb3dcIlxuICBzdGF0dXM6IFN0ZXBTdGF0dXM7XG4gIGR1cmF0aW9uOiBudW1iZXI7IC8vIGluIHNlY29uZHNcbiAgc3RlcENvbmZpZz86IEV4ZWN1dGlvblN0ZXBDb25maWc7IC8vIE9wdGlvbmFsOiBmdWxsIHN0ZXAgY29uZmlnIHRvIHZpZXcgZGV0YWlsc1xuICAvKiogT3B0aW9uYWwgVVJMIGZvciBcIlZpZXcgc3RlcHNcIiByZWRpcmVjdC4gV2hlbiB2aWV3U3RlcHNBc1JlZGlyZWN0IGlzIHRydWUsIGVhY2ggaXRlbSBjYW4gaGF2ZSBpdHMgb3duIFVSTC4gKi9cbiAgdmlld1N0ZXBzVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBFeGVjdXRpb25TdGVwQ29uZmlnID1cbiAgfCBCYXNpY1N0ZXBDb25maWdcbiAgfCBTdGVwR3JvdXBDb25maWdcbiAgfCBMb29wU3RlcENvbmZpZ1xuICB8IENvbmRpdGlvblN0ZXBDb25maWdcbiAgfCBGYWlsZWRTdGVwQ29uZmlnXG4gIHwgQUlBZ2VudFN0ZXBDb25maWdcbiAgfCBBSUFjdGlvblN0ZXBDb25maWdcbiAgfCBBcGlTdGVwQ29uZmlnXG4gIHwgRmlsZURvd25sb2FkU3RlcENvbmZpZ1xuICB8IERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbmZpZ1xuICB8IExpdmVFeGVjdXRpb25TdGVwQ29uZmlnXG4gIHwgRGJWZXJpZmljYXRpb25TdGVwQ29uZmlnO1xuIl19
4
+ /** Default options for the Add-step dropdown when isDebug is true. */
5
+ export const DEFAULT_ADD_STEP_MENU_OPTIONS = [
6
+ { id: 'add-before', label: 'Add before' },
7
+ { id: 'add-after', label: 'Add after' },
8
+ ];
9
+ /** Default options for the More options (three-dot) menu when isDebug is true. */
10
+ export const DEFAULT_STEP_MORE_MENU_OPTIONS = [
11
+ { id: 'skip', label: 'Skip' },
12
+ { id: 'duplicate', label: 'Duplicate' },
13
+ { id: 'delete', label: 'Delete' },
14
+ { id: 'add-breakpoint', label: 'Add breakpoint' },
15
+ { id: 'run-to-here', label: 'Run to here' },
16
+ ];
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uLXN0ZXAubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9leGVjdXRpb24tc2NyZWVuL2V4ZWN1dGlvbi1zdGVwLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQW9TSCxzRUFBc0U7QUFDdEUsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQXdCO0lBQ2hFLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO0lBQ3pDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0NBQ3hDLENBQUM7QUFRRixrRkFBa0Y7QUFDbEYsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQXlCO0lBQ2xFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0lBQzdCLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQ3ZDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ2pDLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtJQUNqRCxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTtDQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNb2RlbHMgYW5kIGludGVyZmFjZXMgZm9yIGV4ZWN1dGlvbiBzY3JlZW4gc3RlcCBjb21wb25lbnRzXG4gKi9cblxuZXhwb3J0IHR5cGUgU3RlcFN0YXR1cyA9ICdzdWNjZXNzJyB8ICdmYWlsZWQnIHwgJ3BlbmRpbmcnIHwgJ3J1bm5pbmcnIHwgJ3NraXBwZWQnIHwgJ1NVQ0NFU1MnIHwgJ0ZBSUxFRCcgfCAnUEVORElORycgfCAnUlVOTklORycgfCAnU0tJUFBFRCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltaW5nQnJlYWtkb3duIHtcbiAgYXBwOiBudW1iZXI7IC8vIGluIHNlY29uZHNcbiAgdG9vbDogbnVtYmVyOyAvLyBpbiBzZWNvbmRzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3ViU3RlcCB7XG4gIGlkOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHN0YXR1czogU3RlcFN0YXR1cztcbiAgZHVyYXRpb246IG51bWJlcjsgLy8gaW4gc2Vjb25kc1xuICB0aW1lc3RhbXA/OiBzdHJpbmc7IC8vIG9wdGlvbmFsIHRpbWVzdGFtcCBsaWtlIFwiMDA6MTJcIlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvb3BJdGVyYXRpb24ge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nOyAvLyBlLmcuLCBcIkl0ZXIgMiAocHJvZHVjdGlvbilcIlxuICBzdGF0dXM6IFN0ZXBTdGF0dXM7XG4gIHN1YlN0ZXBzPzogU3ViU3RlcFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmRpdGlvbkJyYW5jaCB7XG4gIHR5cGU6ICdpZicgfCAnZWxzZScgfCAnZWxzZSBpZic7XG4gIGxhYmVsOiBzdHJpbmc7IC8vIGUuZy4sIFwiUHJlbWl1bSB1c2VyXCIgb3IgXCJGcmVlIHVzZXJcIlxuICBleGVjdXRlZDogYm9vbGVhbjtcbiAgc3ViU3RlcHM/OiBTdWJTdGVwW107XG4gIGJyYW5jaFN0ZXBJZD86IHN0cmluZyB8IG51bWJlcjsgLy8gSUQgb2YgdGhlIGJyYW5jaCBzdGVwIHRvIGxvYWQgY2hpbGRyZW4gZnJvbVxuICBpc0lmQnJhbmNoPzogYm9vbGVhbjsgLy8gV2hldGhlciB0aGlzIGlzIHRoZSBtYWluIElGIGJyYW5jaFxuICBicmFuY2hTdGVwOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NyZWVuc2hvdERhdGEge1xuICBiYXNlbGluZT86IHN0cmluZzsgLy8gVVJMIG9yIGJhc2U2NFxuICBjdXJyZW50Pzogc3RyaW5nOyAvLyBVUkwgb3IgYmFzZTY0XG4gIGRpZmZlcmVuY2U/OiBzdHJpbmc7IC8vIFVSTCBvciBiYXNlNjRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2dFbnRyeSB7XG4gIGxldmVsOiAnaW5mbycgfCAnd2FybmluZycgfCAnZXJyb3InO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHRpbWVzdGFtcD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGYWlsdXJlRGV0YWlscyB7XG4gIHRlc3RTdGVwSWQ6IHN0cmluZztcbiAgZXhwZWN0ZWQ6IHN0cmluZztcbiAgYWN0dWFsOiBzdHJpbmc7XG4gIGZhaWxlZEFjdGlvbj86IHN0cmluZzsgLy8gVGhlIGFjdGlvbiB0aGF0IGZhaWxlZFxuICBhaUZpeEFwcGxpZWQ/OiBib29sZWFuO1xuICBhaUZpeE1lc3NhZ2U/OiBzdHJpbmc7XG4gIHNjcmVlbnNob3RzPzogU2NyZWVuc2hvdERhdGE7XG4gIGxvZ3M/OiBMb2dFbnRyeVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VTdGVwQ29uZmlnIHtcbiAgaWQ6IHN0cmluZztcbiAgdGVzdFN0ZXBJZDogbnVtYmVyIHwgdW5kZWZpbmVkOyAvLyB0ZXN0IHN0ZXAgaWQgZnJvbSB0aGUgdGVzdCBjYXNlXG4gIHRlc3RTdGVwUmVzdWx0SWQ6IHN0cmluZztcbiAgc3RlcE51bWJlcjogc3RyaW5nOyAvLyBlLmcuLCBcIjFcIiwgXCIyLjFcIiwgXCIzLjIuMVwiXG4gIHRpdGxlOiBzdHJpbmc7XG4gIHN0YXR1czogU3RlcFN0YXR1cztcbiAgZHVyYXRpb246IG51bWJlcjsgLy8gdG90YWwgZHVyYXRpb24gaW4gc2Vjb25kc1xuICB0aW1pbmdCcmVha2Rvd24/OiBUaW1pbmdCcmVha2Rvd247XG4gIGV4cGFuZGVkPzogYm9vbGVhbjsgLy8gd2hldGhlciB0aGUgc3RlcCBpcyBleHBhbmRlZCBieSBkZWZhdWx0XG4gIGZhaWx1cmVEZXRhaWxzPzogRmFpbHVyZURldGFpbHM7XG4gIHJlYXNvbmluZz86IHN0cmluZ1tdO1xuICBjb25maWRlbmNlPzogc3RyaW5nO1xuICBzdGVwRGVsZXRlZD86IGJvb2xlYW47XG4gIGV4ZWN1dGVkUmVzdWx0Pzoge1xuICAgIHZpZGVvX3N0YXJ0X3RpbWU6IG51bWJlcjtcbiAgICB2aWRlb19lbmRfdGltZTogbnVtYmVyO1xuICB9O1xuICAvLyBBZGRpdGlvbmFsIHByb3BlcnRpZXMgZm9yIGxpdmUgZXhlY3V0aW9uIGFuZCBydW50aW1lIHVzZVxuICBzZWxlY3RlZEl0ZXJhdGlvbklkPzogc3RyaW5nOyAvLyB3aGljaCBpdGVyYXRpb24gdG8gZGlzcGxheVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGZIZWFsQW5hbHlzaXNEYXRhIHtcbiAgb3JpZ2luYWxMb2NhdG9yOiBzdHJpbmc7XG4gIGhlYWxlZExvY2F0b3I6IHN0cmluZztcbiAgY29uZmlkZW5jZTogbnVtYmVyOyAvLyAwLTEwMFxuICBoZWFsTWV0aG9kOiBzdHJpbmc7IC8vIGUuZy4sIFwiU2VtYW50aWMgQXR0cmlidXRlIE1hdGNoaW5nXCJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWxmSGVhbEFjdGlvbkV2ZW50IHtcbiAgdHlwZTogU2VsZkhlYWxBY3Rpb247XG4gIGlkOiBzdHJpbmc7XG4gIGhlYWxlZExvY2F0b3I6IHN0cmluZztcbiAgdGVzdFN0ZXBJZD86IHN0cmluZzsgLy8gdGVzdCBzdGVwIGlkIGZyb20gdGhlIHRlc3QgY2FzZVxufVxuXG5leHBvcnQgdHlwZSBTZWxmSGVhbEFjdGlvbiA9ICdhY2NlcHQnIHwgJ3JlamVjdCcgfCAnbW9kaWZ5LWFjY2VwdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzaWNTdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnYmFzaWMnO1xuICBzdWJTdGVwczogU3ViU3RlcFtdO1xuICBzZWxmSGVhbEFuYWx5c2lzPzogU2VsZkhlYWxBbmFseXNpc0RhdGE7XG4gIHNlbGZIZWFsZWQ/OiBib29sZWFuOyAvLyBJbmRpY2F0ZXMgaWYgc2VsZi1oZWFsaW5nIHdhcyBhcHBsaWVkXG4gIHNlbGZIZWFsRHVyYXRpb24/OiBudW1iZXI7IC8vIER1cmF0aW9uIG9mIHNlbGYtaGVhbGluZyBwcm9jZXNzXG4gIG5lc3RlZFN0ZXBzPzogRXhlY3V0aW9uU3RlcENvbmZpZ1tdOyAvLyBuZXN0ZWQgY2hpbGQgc3RlcHMgZm9yIHJlY3Vyc2l2ZSByZW5kZXJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGVwR3JvdXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHR5cGU6ICdzdGVwLWdyb3VwJztcbiAgZ3JvdXBOYW1lOiBzdHJpbmc7IC8vIGUuZy4sIFwiTmF2aWdhdGlvblwiLCBcIkNoZWNrb3V0IGZsb3dcIlxuICBzdGVwczogRXhlY3V0aW9uU3RlcENvbmZpZ1tdOyAvLyBuZXN0ZWQgc3RlcHNcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb29wU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgdHlwZTogJ2xvb3AnO1xuICBsb29wVHlwZT86ICdmb3InIHwgJ3doaWxlJztcbiAgaXRlcmF0aW9uczogTG9vcEl0ZXJhdGlvbltdO1xuICBzZWxlY3RlZEl0ZXJhdGlvbklkPzogc3RyaW5nOyAvLyB3aGljaCBpdGVyYXRpb24gdG8gZGlzcGxheVxuICBkZWZhdWx0SXRlcmF0aW9uPzogJ2ZpcnN0JyB8ICdsYXN0JzsgLy8gZGVmYXVsdCBpdGVyYXRpb24gdG8gc2hvd1xuICBuZXN0ZWRTdGVwcz86IEV4ZWN1dGlvblN0ZXBDb25maWdbXTsgLy8gc3RlcHMgbmVzdGVkIHdpdGhpbiB0aGUgbG9vcFxuICBzaG93Vmlld0FsbEl0ZXJhdGlvbnM/OiBib29sZWFuO1xuICBzdWJTdGVwcz86IFN1YlN0ZXBbXTtcbiAgaXRlcmF0aW9uRGF0YT86IGFueTsgLy8gZGF0YSBmb3IgZWFjaCBpdGVyYXRpb24gaW4gbGl2ZSBleGVjdXRpb25cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb25TdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnY29uZGl0aW9uJztcbiAgY29uZGl0aW9uVGV4dDogc3RyaW5nOyAvLyBlLmcuLCBcImlmIHVzZXIgdHlwZSBpcyAnUHJlbWl1bSdcIlxuICBicmFuY2hlczogQ29uZGl0aW9uQnJhbmNoW107XG4gIG5lc3RlZFN0ZXBzPzogRXhlY3V0aW9uU3RlcENvbmZpZ1tdOyAvLyBuZXN0ZWQgY2hpbGQgc3RlcHMgZm9yIHJlY3Vyc2l2ZSByZW5kZXJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGYWlsZWRTdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnZmFpbGVkJztcbiAgc3ViU3RlcHM6IFN1YlN0ZXBbXTtcbiAgZmFpbHVyZURldGFpbHM6IEZhaWx1cmVEZXRhaWxzO1xuICByZWFzb25pbmc/OiBzdHJpbmdbXTtcbiAgY29uZmlkZW5jZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSUFnZW50QWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgdHlwZTogJ2V4dHJhY3QnIHwgJ3ZhbGlkYXRlJyB8ICdBSV9BR0VOVF9BQ1RJT04nIHwgJ1RZUEUnIHwgJ0NMSUNLJztcbiAgc3RhdHVzOiBTdGVwU3RhdHVzO1xuICBjb25maWRlbmNlPzogbnVtYmVyOyAvLyAwLTEwMFxuICBkdXJhdGlvbjogbnVtYmVyO1xuICByZWFzb25pbmc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlBZ2VudFN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHR5cGU6ICdhaS1hZ2VudCc7XG4gIHByb21wdDogc3RyaW5nO1xuICBvcHRpbWl6ZWRSdW4/OiBib29sZWFuO1xuICBhY3Rpb25Db3VudD86IG51bWJlcjtcbiAgYWN0aW9uczogQUlBZ2VudEFjdGlvbltdO1xuICBzZWxlY3RlZFRhYj86ICdhY3Rpb24tdHJhY2UnIHwgJ3BsYW5uZXItdGltZWxpbmUnIHwgJ2FpLXJlYXNvbmluZyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlBY3Rpb25TdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnYWktYWN0aW9uJztcbiAgYWN0aW9uQ291bnQ/OiBudW1iZXI7XG4gIGFjdGlvbk5hbWU/OiAnYWlfdGV4dF92ZXJpZmljYXRpb24nIHwgJ2FpX2FzaycgfCAnYWlfZG9jdW1lbnRfYXNrJyB8ICdhaV92ZXJpZnknO1xuICBhY3Rpb25zOiBBSUFnZW50QWN0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpQXNzZXJ0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgc3RhdHVzOiAncGFzc2VkJyB8ICdmYWlsZWQnO1xuICBleHBlY3RlZDogc3RyaW5nO1xuICBhY3R1YWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlTdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnYXBpJztcbiAgbWV0aG9kOiBzdHJpbmc7IC8vIEdFVCwgUE9TVCwgUFVULCBERUxFVEUsIGV0Yy5cbiAgZW5kcG9pbnQ6IHN0cmluZztcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xuICByZXNwb25zZVRpbWU6IG51bWJlcjsgLy8gaW4gbWlsbGlzZWNvbmRzXG4gIHJlcXVlc3RCb2R5PzogYW55O1xuICByZXNwb25zZUJvZHk/OiBhbnk7XG4gIHJlcXVlc3RIZWFkZXJzPzogYW55O1xuICByZXNwb25zZUhlYWRlcnM/OiBhbnk7XG4gIGFzc2VydGlvbnM/OiBBcGlBc3NlcnRpb25bXTtcbiAgaW5pdGlhbEFjdGlvbnM/OiBTdWJTdGVwW107IC8vIEFjdGlvbnMgYmVmb3JlIHRoZSBBUEkgY2FsbFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVEb3dubG9hZFN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHR5cGU6ICdmaWxlLWRvd25sb2FkJztcbiAgZmlsZU5hbWU6IHN0cmluZztcbiAgZmlsZVR5cGU6IHN0cmluZzsgLy8gUERGLCBDU1YsIGV0Yy5cbiAgZmlsZVNpemU/OiBzdHJpbmc7IC8vIGUuZy4sIFwiMi40IE1CXCJcbiAgZmlsZVBhdGg/OiBzdHJpbmc7XG4gIGRvd25sb2FkZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0cmFjdGVkRmllbGQge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBjb25maWRlbmNlOiBudW1iZXI7IC8vIDAtMTAwXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZpY2F0aW9uQ2hlY2sge1xuICBpZDogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzdGF0dXM6ICdwYXNzJyB8ICdmYWlsJztcbiAgZXhwZWN0ZWQ6IHN0cmluZztcbiAgYWN0dWFsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRWZXJpZmljYXRpb25TdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnZG9jdW1lbnQtdmVyaWZpY2F0aW9uJztcbiAgZG9jdW1lbnRTY3JlZW5zaG90Pzogc3RyaW5nOyAvLyBVUkwgb3IgYmFzZTY0XG4gIGV4dHJhY3RlZEZpZWxkczogRXh0cmFjdGVkRmllbGRbXTtcbiAgdmVyaWZpY2F0aW9uQ2hlY2tzOiBWZXJpZmljYXRpb25DaGVja1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpdmVTdWJTdGVwIHtcbiAgaWQ6IHN0cmluZztcbiAgdGV4dDogc3RyaW5nOyAvLyBUZXh0IGZyb20gc29ja2V0XG4gIGlzUnVubmluZzogYm9vbGVhbjsgLy8gdHJ1ZSA9IHNob3cgbG9hZGVyLCBmYWxzZSA9IHNob3cgaWNvblxuICBkdXJhdGlvbj86IG51bWJlcjsgLy8gaW4gc2Vjb25kc1xuICBzdGF0dXM6ICdwYXNzZWQnIHwgJ2ZhaWxlZCcgfCAncGVuZGluZycgfCAnc3VjY2VzcycgfCAnZmFpbHVyZScgfCAnc2tpcHBlZCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGl2ZUV4ZWN1dGlvblN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHR5cGU6ICdsaXZlLWV4ZWN1dGlvbic7XG4gIHN1YlN0ZXBzOiBMaXZlU3ViU3RlcFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERiUXVlcnlSZXN1bHQge1xuICBkYXRhOiBhbnlbXTtcbiAgcXVlcnk6IHN0cmluZztcbiAgZXhlY3V0ZWRBdD86IHN0cmluZztcbiAgZHVyYXRpb24/OiBudW1iZXI7IC8vIGluIHNlY29uZHNcbiAgW2tleTogc3RyaW5nXTogYW55OyAvLyBGb3IgZHluYW1pYyBrZXlzIGxpa2UgXCJEZW1vX3VzZXJcIlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERiQXNzZXJ0aW9uUmVzdWx0IHtcbiAgdmFyaWFibGVOYW1lOiBzdHJpbmc7XG4gIGpzb25QYXRoOiBzdHJpbmc7XG4gIGV4cGVjdGVkVmFsdWU6IGFueTtcbiAgYWN0dWFsVmFsdWU6IGFueTtcbiAgdmVyaWZpY2F0aW9uVHlwZTogc3RyaW5nO1xuICBleHBlY3RlZFR5cGU6IHN0cmluZztcbiAgcGFzc2VkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERiVGVzdFJlc3VsdCB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIHJlc3VsdHM6IHsgW2tleTogc3RyaW5nXTogRGJRdWVyeVJlc3VsdCB9O1xuICBhc3NlcnRpb25SZXN1bHRzOiBEYkFzc2VydGlvblJlc3VsdFtdO1xuICBhbGxBc3NlcnRpb25zUGFzc2VkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERiVmVyaWZpY2F0aW9uU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgdHlwZTogJ2RiLXZlcmlmaWNhdGlvbic7XG4gIGRiVGVzdFJlc3VsdDogRGJUZXN0UmVzdWx0O1xuICBkYkNvbmZpZz86IHtcbiAgICBuYW1lOiBzdHJpbmc7IC8vIEVudmlyb25tZW50IG5hbWVcbiAgICBkYlR5cGU6IHN0cmluZzsgLy8gRGF0YWJhc2UgdHlwZSAoTXlTUUwsIFNRTFNlcnZlciwgZXRjLilcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmVyZXF1aXNpdGVJdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZzsgLy8gZS5nLiwgXCJQcmVyZXF1aXNpdGUgMTogTG9naW4gZmxvd1wiXG4gIHN0YXR1czogU3RlcFN0YXR1cztcbiAgZHVyYXRpb246IG51bWJlcjsgLy8gaW4gc2Vjb25kc1xuICBzdGVwQ29uZmlnPzogRXhlY3V0aW9uU3RlcENvbmZpZzsgLy8gT3B0aW9uYWw6IGZ1bGwgc3RlcCBjb25maWcgdG8gdmlldyBkZXRhaWxzXG4gIC8qKiBPcHRpb25hbCBVUkwgZm9yIFwiVmlldyBzdGVwc1wiIHJlZGlyZWN0LiBXaGVuIHZpZXdTdGVwc0FzUmVkaXJlY3QgaXMgdHJ1ZSwgZWFjaCBpdGVtIGNhbiBoYXZlIGl0cyBvd24gVVJMLiAqL1xuICB2aWV3U3RlcHNVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEV4ZWN1dGlvblN0ZXBDb25maWcgPVxuICB8IEJhc2ljU3RlcENvbmZpZ1xuICB8IFN0ZXBHcm91cENvbmZpZ1xuICB8IExvb3BTdGVwQ29uZmlnXG4gIHwgQ29uZGl0aW9uU3RlcENvbmZpZ1xuICB8IEZhaWxlZFN0ZXBDb25maWdcbiAgfCBBSUFnZW50U3RlcENvbmZpZ1xuICB8IEFJQWN0aW9uU3RlcENvbmZpZ1xuICB8IEFwaVN0ZXBDb25maWdcbiAgfCBGaWxlRG93bmxvYWRTdGVwQ29uZmlnXG4gIHwgRG9jdW1lbnRWZXJpZmljYXRpb25TdGVwQ29uZmlnXG4gIHwgTGl2ZUV4ZWN1dGlvblN0ZXBDb25maWdcbiAgfCBEYlZlcmlmaWNhdGlvblN0ZXBDb25maWc7XG5cbi8qKiBPcHRpb24gZm9yIHRoZSBBZGQtc3RlcCBtZW51IHNob3duIHdoZW4gdGhlIFBsdXMgaWNvbiBpcyBjbGlja2VkIChlLmcuIFwiQWRkIGJlZm9yZVwiLCBcIkFkZCBhZnRlclwiKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkU3RlcE1lbnVPcHRpb24ge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufVxuXG4vKiogRGVmYXVsdCBvcHRpb25zIGZvciB0aGUgQWRkLXN0ZXAgZHJvcGRvd24gd2hlbiBpc0RlYnVnIGlzIHRydWUuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9BRERfU1RFUF9NRU5VX09QVElPTlM6IEFkZFN0ZXBNZW51T3B0aW9uW10gPSBbXG4gIHsgaWQ6ICdhZGQtYmVmb3JlJywgbGFiZWw6ICdBZGQgYmVmb3JlJyB9LFxuICB7IGlkOiAnYWRkLWFmdGVyJywgbGFiZWw6ICdBZGQgYWZ0ZXInIH0sXG5dO1xuXG4vKiogT3B0aW9uIGZvciB0aGUgc3RlcCBcIk1vcmUgb3B0aW9uc1wiICh0aHJlZS1kb3QpIG1lbnUgKGUuZy4gU2tpcCwgRHVwbGljYXRlLCBEZWxldGUsIEFkZCBicmVha3BvaW50LCBSdW4gdG8gaGVyZSkuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBNb3JlTWVudU9wdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG5cbi8qKiBEZWZhdWx0IG9wdGlvbnMgZm9yIHRoZSBNb3JlIG9wdGlvbnMgKHRocmVlLWRvdCkgbWVudSB3aGVuIGlzRGVidWcgaXMgdHJ1ZS4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NURVBfTU9SRV9NRU5VX09QVElPTlM6IFN0ZXBNb3JlTWVudU9wdGlvbltdID0gW1xuICB7IGlkOiAnc2tpcCcsIGxhYmVsOiAnU2tpcCcgfSxcbiAgeyBpZDogJ2R1cGxpY2F0ZScsIGxhYmVsOiAnRHVwbGljYXRlJyB9LFxuICB7IGlkOiAnZGVsZXRlJywgbGFiZWw6ICdEZWxldGUnIH0sXG4gIHsgaWQ6ICdhZGQtYnJlYWtwb2ludCcsIGxhYmVsOiAnQWRkIGJyZWFrcG9pbnQnIH0sXG4gIHsgaWQ6ICdydW4tdG8taGVyZScsIGxhYmVsOiAnUnVuIHRvIGhlcmUnIH0sXG5dO1xuIl19