@cqa-lib/cqa-ui 1.1.176 → 1.1.178

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/compare-runs/compare-runs.component.mjs +1 -1
  2. package/esm2020/lib/execution-screen/ai-action-step/ai-action-step.component.mjs +23 -7
  3. package/esm2020/lib/execution-screen/ai-agent-step/ai-agent-step.component.mjs +23 -8
  4. package/esm2020/lib/execution-screen/api-step/api-step.component.mjs +24 -7
  5. package/esm2020/lib/execution-screen/base-step.component.mjs +12 -1
  6. package/esm2020/lib/execution-screen/basic-step/basic-step.component.mjs +25 -8
  7. package/esm2020/lib/execution-screen/condition-step/condition-step.component.mjs +25 -8
  8. package/esm2020/lib/execution-screen/db-query-execution-item/db-query-execution-item.component.mjs +70 -5
  9. package/esm2020/lib/execution-screen/db-verification-step/db-verification-step.component.mjs +40 -11
  10. package/esm2020/lib/execution-screen/document-verification-step/document-verification-step.component.mjs +22 -4
  11. package/esm2020/lib/execution-screen/execution-step.models.mjs +1 -1
  12. package/esm2020/lib/execution-screen/file-download-step/file-download-step.component.mjs +23 -5
  13. package/esm2020/lib/execution-screen/loop-step/loop-step.component.mjs +26 -9
  14. package/esm2020/lib/execution-screen/step-group/step-group.component.mjs +22 -5
  15. package/esm2020/lib/execution-screen/step-renderer/step-renderer.component.mjs +6 -2
  16. package/esm2020/lib/iterations-loop/iterations-loop.component.mjs +1 -1
  17. package/esm2020/lib/simulator/simulator.component.mjs +1202 -63
  18. package/esm2020/lib/table/dynamic-table/dynamic-table.component.mjs +35 -3
  19. package/esm2020/lib/templates/table-template.component.mjs +7 -4
  20. package/fesm2015/cqa-lib-cqa-ui.mjs +1649 -195
  21. package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
  22. package/fesm2020/cqa-lib-cqa-ui.mjs +1599 -184
  23. package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
  24. package/lib/execution-screen/ai-action-step/ai-action-step.component.d.ts +3 -1
  25. package/lib/execution-screen/ai-agent-step/ai-agent-step.component.d.ts +3 -1
  26. package/lib/execution-screen/api-step/api-step.component.d.ts +3 -1
  27. package/lib/execution-screen/base-step.component.d.ts +1 -0
  28. package/lib/execution-screen/basic-step/basic-step.component.d.ts +3 -1
  29. package/lib/execution-screen/condition-step/condition-step.component.d.ts +3 -1
  30. package/lib/execution-screen/db-query-execution-item/db-query-execution-item.component.d.ts +18 -3
  31. package/lib/execution-screen/db-verification-step/db-verification-step.component.d.ts +9 -1
  32. package/lib/execution-screen/document-verification-step/document-verification-step.component.d.ts +4 -1
  33. package/lib/execution-screen/execution-step.models.d.ts +4 -0
  34. package/lib/execution-screen/file-download-step/file-download-step.component.d.ts +4 -1
  35. package/lib/execution-screen/loop-step/loop-step.component.d.ts +3 -1
  36. package/lib/execution-screen/step-group/step-group.component.d.ts +3 -1
  37. package/lib/execution-screen/step-renderer/step-renderer.component.d.ts +2 -1
  38. package/lib/simulator/simulator.component.d.ts +122 -6
  39. package/lib/table/dynamic-table/dynamic-table.component.d.ts +7 -1
  40. package/lib/templates/table-template.component.d.ts +6 -1
  41. package/package.json +1 -1
  42. package/styles.css +1 -1
@@ -1,7 +1,9 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import { BaseStepComponent } from '../base-step.component';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
4
+ import * as i1 from "@angular/material/icon";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/material/tooltip";
5
7
  export class DocumentVerificationStepComponent extends BaseStepComponent {
6
8
  ngOnInit() {
7
9
  // Build config from individual inputs
@@ -33,12 +35,24 @@ export class DocumentVerificationStepComponent extends BaseStepComponent {
33
35
  console.log('Copied to clipboard:', text);
34
36
  });
35
37
  }
38
+ onJumpToTimestamp(event) {
39
+ event.stopPropagation();
40
+ if (this.jumpToTimestampHandler && this.step?.executedResult?.video_start_time !== undefined && this.step?.executedResult?.video_start_time !== null) {
41
+ const timestamp = typeof this.step.executedResult.video_start_time === 'number'
42
+ ? this.step.executedResult.video_start_time
43
+ : Number(this.step.executedResult.video_start_time);
44
+ const testStepId = this.step?.testStepId;
45
+ if (isFinite(timestamp) && timestamp >= 0) {
46
+ this.jumpToTimestampHandler(timestamp, testStepId);
47
+ }
48
+ }
49
+ }
36
50
  }
37
51
  DocumentVerificationStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DocumentVerificationStepComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
38
- 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" }, 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 \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 <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", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
52
+ 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" }, 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 \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"] }] });
39
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DocumentVerificationStepComponent, decorators: [{
40
54
  type: Component,
41
- 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 \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 <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: [] }]
55
+ 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 \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: [] }]
42
56
  }], propDecorators: { id: [{
43
57
  type: Input
44
58
  }], stepNumber: [{
@@ -59,5 +73,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
59
73
  type: Input
60
74
  }], verificationChecks: [{
61
75
  type: Input
76
+ }], step: [{
77
+ type: Input
78
+ }], jumpToTimestampHandler: [{
79
+ type: Input
62
80
  }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdmVyaWZpY2F0aW9uLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9leGVjdXRpb24tc2NyZWVuL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFbkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQVEzRCxNQUFNLE9BQU8saUNBQWtDLFNBQVEsaUJBQWlCO0lBZ0I3RCxRQUFRO1FBQ2Ysc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsSUFBSSxFQUFFLHVCQUF1QjtZQUM3QixrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzNDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzNDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDVSxDQUFDO1FBRXBDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQ3RELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNoQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUN0QztTQUNGO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFZO1FBQzFCLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDNUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzhIQWhEVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQyxxYkNWOUMsKzJiQXlKQTsyRkQvSWEsaUNBQWlDO2tCQU43QyxTQUFTOytCQUNFLGdDQUFnQyxRQUdwQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7OEJBSXJCLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbmZpZywgRXh0cmFjdGVkRmllbGQsIFZlcmlmaWNhdGlvbkNoZWNrLCBTdGVwU3RhdHVzLCBUaW1pbmdCcmVha2Rvd24gfSBmcm9tICcuLi9leGVjdXRpb24tc3RlcC5tb2RlbHMnO1xuaW1wb3J0IHsgQmFzZVN0ZXBDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXN0ZXAuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWRvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9XG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbXBvbmVudCBleHRlbmRzIEJhc2VTdGVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvLyBJbmRpdmlkdWFsIGlucHV0c1xuICBASW5wdXQoKSBpZCE6IHN0cmluZztcbiAgQElucHV0KCkgc3RlcE51bWJlciE6IHN0cmluZztcbiAgQElucHV0KCkgdGl0bGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0YXR1cyE6IFN0ZXBTdGF0dXM7XG4gIEBJbnB1dCgpIGR1cmF0aW9uITogbnVtYmVyO1xuICBASW5wdXQoKSB0aW1pbmdCcmVha2Rvd24/OiBUaW1pbmdCcmVha2Rvd247XG4gIEBJbnB1dCgpIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgQElucHV0KCkgZG9jdW1lbnRTY3JlZW5zaG90Pzogc3RyaW5nO1xuICBASW5wdXQoKSBleHRyYWN0ZWRGaWVsZHMhOiBFeHRyYWN0ZWRGaWVsZFtdO1xuICBASW5wdXQoKSB2ZXJpZmljYXRpb25DaGVja3MhOiBWZXJpZmljYXRpb25DaGVja1tdO1xuXG4gIC8vIENvbmZpZyBwcm9wZXJ0eSBmb3IgYmFzZSBjbGFzcyAtIGJ1aWx0IGZyb20gaW5kaXZpZHVhbCBpbnB1dHMgaW4gbmdPbkluaXRcbiAgb3ZlcnJpZGUgY29uZmlnITogRG9jdW1lbnRWZXJpZmljYXRpb25TdGVwQ29uZmlnO1xuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEJ1aWxkIGNvbmZpZyBmcm9tIGluZGl2aWR1YWwgaW5wdXRzXG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIHN0ZXBOdW1iZXI6IHRoaXMuc3RlcE51bWJlcixcbiAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgIGR1cmF0aW9uOiB0aGlzLmR1cmF0aW9uLFxuICAgICAgdHlwZTogJ2RvY3VtZW50LXZlcmlmaWNhdGlvbicsXG4gICAgICBkb2N1bWVudFNjcmVlbnNob3Q6IHRoaXMuZG9jdW1lbnRTY3JlZW5zaG90LFxuICAgICAgZXh0cmFjdGVkRmllbGRzOiB0aGlzLmV4dHJhY3RlZEZpZWxkcyxcbiAgICAgIHZlcmlmaWNhdGlvbkNoZWNrczogdGhpcy52ZXJpZmljYXRpb25DaGVja3MsXG4gICAgICB0aW1pbmdCcmVha2Rvd246IHRoaXMudGltaW5nQnJlYWtkb3duLFxuICAgICAgZXhwYW5kZWQ6IHRoaXMuZXhwYW5kZWQsXG4gICAgfSBhcyBEb2N1bWVudFZlcmlmaWNhdGlvblN0ZXBDb25maWc7XG5cbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydleHBhbmRlZCddICYmIHRoaXMuZXhwYW5kZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5pc0V4cGFuZGVkID0gdGhpcy5leHBhbmRlZDtcbiAgICAgIGlmICh0aGlzLmNvbmZpZykge1xuICAgICAgICB0aGlzLmNvbmZpZy5leHBhbmRlZCA9IHRoaXMuZXhwYW5kZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29weVRvQ2xpcGJvYXJkKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpLnRoZW4oKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ0NvcGllZCB0byBjbGlwYm9hcmQ6JywgdGV4dCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXY+XG4gIDwhLS0gSGVhZGVyIC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtcC0yIGNxYS1jdXJzb3ItcG9pbnRlclwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgXG4gICAgPCEtLSBTdGF0dXMgSWNvbiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnLnN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAnc3VjY2VzcydcIiA+PHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMC45MDA1IDQuOTk5OTlDMTEuMTI4OSA2LjEyMDY0IDEwLjk2NjIgNy4yODU3MSAxMC40Mzk1IDguMzAwODlDOS45MTI3OSA5LjMxNjA4IDkuMDU0IDEwLjEyIDguMDA2MzEgMTAuNTc4N0M2Ljk1ODYyIDExLjAzNzMgNS43ODUzNiAxMS4xMjI5IDQuNjgyMiAxMC44MjEyQzMuNTc5MDQgMTAuNTE5NSAyLjYxMjY1IDkuODQ4NjkgMS45NDQxOSA4LjkyMDcxQzEuMjc1NzMgNy45OTI3MiAwLjk0NTYxMSA2Ljg2MzYxIDEuMDA4ODggNS43MjE2OUMxLjA3MjE1IDQuNTc5NzYgMS41MjQ5OSAzLjQ5NDA0IDIuMjkxODggMi42NDU1OEMzLjA1ODc2IDEuNzk3MTIgNC4wOTMzNCAxLjIzNzIxIDUuMjIzMDggMS4wNTkyMkM2LjM1MjgyIDAuODgxMjMzIDcuNTA5NDQgMS4wOTU5MiA4LjUwMDA1IDEuNjY3NDlcIiBzdHJva2U9XCIjMjJDNTVFXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNC41IDUuNUw2IDdMMTEgMlwiIHN0cm9rZT1cIiMyMkM1NUVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImNvbmZpZy5zdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhaWx1cmUnXCI+PHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk02IDExQzguNzYxNDIgMTEgMTEgOC43NjE0MiAxMSA2QzExIDMuMjM4NTggOC43NjE0MiAxIDYgMUMzLjIzODU4IDEgMSAzLjIzODU4IDEgNkMxIDguNzYxNDIgMy4yMzg1OCAxMSA2IDExWlwiIHN0cm9rZT1cIiNEQzI2MjZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk03LjUgNC41TDQuNSA3LjVcIiBzdHJva2U9XCIjREMyNjI2XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNC41IDQuNUw3LjUgNy41XCIgc3Ryb2tlPVwiI0RDMjYyNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cblxuICAgIDwhLS0gRG9jdW1lbnQgSWNvbiAtLT5cbiAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAyMCAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIxNlwiIHJ4PVwiNFwiIGZpbGw9XCIjRTZGNEZGXCIvPjxwYXRoIGQ9XCJNMTIgNS41QzEyIDYuMDMwNDMgMTEuNzg5MyA2LjUzOTE0IDExLjQxNDIgNi45MTQyMUMxMS4wMzkxIDcuMjg5MjkgMTAuNTMwNCA3LjUgMTAgNy41QzkuNDY5NTcgNy41IDguOTYwODYgNy4yODkyOSA4LjU4NTc5IDYuOTE0MjFDOC4yMTA3MSA2LjUzOTE0IDggNi4wMzA0MyA4IDUuNUM4IDQuOTY5NTcgOC4yMTA3MSA0LjQ2MDg2IDguNTg1NzkgNC4wODU3OUM4Ljk2MDg2IDMuNzEwNzEgOS40Njk1NyAzLjUgMTAgMy41QzEwLjUzMDQgMy41IDExLjAzOTEgMy43MTA3MSAxMS40MTQyIDQuMDg1NzlDMTEuNzg5MyA0LjQ2MDg2IDEyIDQuOTY5NTcgMTIgNS41Wk0xMCA5QzkuMDcxNzQgOSA4LjE4MTUgOS4zNjg3NSA3LjUyNTEzIDEwLjAyNTFDNi44Njg3NSAxMC42ODE1IDYuNSAxMS41NzE3IDYuNSAxMi41SDEzLjVDMTMuNSAxMS41NzE3IDEzLjEzMTMgMTAuNjgxNSAxMi40NzQ5IDEwLjAyNTFDMTEuODE4NSA5LjM2ODc1IDEwLjkyODMgOSAxMCA5WlwiIHN0cm9rZT1cIiMwQTg2RTZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG5cbiAgICA8IS0tIFN0ZXAgTnVtYmVyIGFuZCBUaXRsZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtM1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzMzNDE1NV0gY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsxOHB4XVwiIHN0eWxlPVwid29yZC1icmVhazogYnJlYWstd29yZDtcIj5cbiAgICAgICAge3sgY29uZmlnLnN0ZXBOdW1iZXIgfX0uIDxzcGFuIFtpbm5lckhUTUxdPVwiY29uZmlnLnRpdGxlXCI+PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtcHgtMS41IGNxYS1yb3VuZGVkLWZ1bGwgY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMEE4NkU2XSBjcWEtYmctWyNFNkY0RkZdIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF1cIj5cbiAgICAgICAgRG9jdW1lbnQgVmVyaWZpY2F0aW9uXG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTFcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtdGV4dC1bIzlDQTNBRl1cIj5cbiAgICAgICAge3sgZm9ybWF0RHVyYXRpb24oY29uZmlnLmR1cmF0aW9uKSB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPHN2ZyBbY2xhc3MuY3FhLXJvdGF0ZS0xODBdPVwiaXNFeHBhbmRlZFwiIGNsYXNzPVwiY3FhLXRyYW5zaXRpb24tdHJhbnNmb3JtXCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMy41IDVMNyA4LjVMMTAuNSA1XCIgc3Ryb2tlPVwiIzlDQTNBRlwiIHN0cm9rZS13aWR0aD1cIjAuODMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIEV4cGFuZGVkIENvbnRlbnQgLS0+XG4gIDxkaXYgKm5nSWY9XCJpc0V4cGFuZGVkXCIgIGNsYXNzPVwiY3FhLWJnLVsjRkZGRUY5XSBjcWEtbXQtMS41IGNxYS1tbC05IGNxYS1tci02IGNxYS1wLTQgY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMS41XCIgc3R5bGU9XCJib3JkZXItdG9wOiAxcHggc29saWQgI0U0RTRFNDtcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWdyaWQgY3FhLWdyaWQtY29scy0yIGNxYS1nYXAtM1wiPlxuICAgICAgPCEtLSBEb2N1bWVudCBTY3JlZW5zaG90IENhcmQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWJnLVsjRkNGQ0ZDXSBjcWEtcm91bmRlZC1sZyBjcWEtcC0zIGNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiIHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgI0VERTlGRVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1nYXAtMiBjcWEtbWItMlwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyM2MzYzNjNdXCI+RG9jdW1lbnQgU2NyZWVuc2hvdDwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uPlxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMCA0SDVDNC40NDc3MiA0IDQgNC40NDc3MiA0IDVWMTBDNCAxMC41NTIzIDQuNDQ3NzIgMTEgNSAxMUgxMEMxMC41NTIzIDExIDExIDEwLjU1MjMgMTEgMTBWNUMxMSA0LjQ0NzcyIDEwLjU1MjMgNCAxMCA0WlwiIHN0cm9rZT1cIiM2MzYzNjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0yIDhDMS40NSA4IDEgNy41NSAxIDdWMkMxIDEuNDUgMS40NSAxIDIgMUg3QzcuNTUgMSA4IDEuNDUgOCAyXCIgc3Ryb2tlPVwiIzYzNjM2M1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0U1RTVFNV0gY3FhLXJvdW5kZWQtWzEwcHhdIGNxYS1iZy1bI0Y1RjVGNV0gY3FhLWFzcGVjdC12aWRlbyBjcWEtaC1mdWxsIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0yNS4zMzMzIDRINi42NjY2N0M1LjE5MzkxIDQgNCA1LjE5MzkxIDQgNi42NjY2N1YyNS4zMzMzQzQgMjYuODA2MSA1LjE5MzkxIDI4IDYuNjY2NjcgMjhIMjUuMzMzM0MyNi44MDYxIDI4IDI4IDI2LjgwNjEgMjggMjUuMzMzM1Y2LjY2NjY3QzI4IDUuMTkzOTEgMjYuODA2MSA0IDI1LjMzMzMgNFpcIiBzdHJva2U9XCIjNzM3MzczXCIgc3Ryb2tlLW9wYWNpdHk9XCIwLjVcIiBzdHJva2Utd2lkdGg9XCIyLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMTIgMTQuNjY2NkMxMy40NzI3IDE0LjY2NjYgMTQuNjY2NiAxMy40NzI3IDE0LjY2NjYgMTEuOTk5OUMxNC42NjY2IDEwLjUyNzIgMTMuNDcyNyA5LjMzMzI1IDEyIDkuMzMzMjVDMTAuNTI3MiA5LjMzMzI1IDkuMzMzMzEgMTAuNTI3MiA5LjMzMzMxIDExLjk5OTlDOS4zMzMzMSAxMy40NzI3IDEwLjUyNzIgMTQuNjY2NiAxMiAxNC42NjY2WlwiIHN0cm9rZT1cIiM3MzczNzNcIiBzdHJva2Utb3BhY2l0eT1cIjAuNVwiIHN0cm9rZS13aWR0aD1cIjIuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0yOCAxOS45OTk5TDIzLjg4NTMgMTUuODg1M0MyMy4zODUzIDE1LjM4NTMgMjIuNzA3MSAxNS4xMDQ1IDIyIDE1LjEwNDVDMjEuMjkyOSAxNS4xMDQ1IDIwLjYxNDcgMTUuMzg1MyAyMC4xMTQ3IDE1Ljg4NTNMOCAyNy45OTk5XCIgc3Ryb2tlPVwiIzczNzM3M1wiIHN0cm9rZS1vcGFjaXR5PVwiMC41XCIgc3Ryb2tlLXdpZHRoPVwiMi42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBFeHRyYWN0ZWQgRmllbGRzIENhcmQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWJnLVsjRkNGQ0ZDXSBjcWEtcm91bmRlZC1sZyBjcWEtcC0zIGNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiIHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgI0VERTlGRVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1nYXAtMiBjcWEtbWItMlwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyM2MzYzNjNdXCI+RXh0cmFjdGVkIEZpZWxkczwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uPlxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMCA0SDVDNC40NDc3MiA0IDQgNC40NDc3MiA0IDVWMTBDNCAxMC41NTIzIDQuNDQ3NzIgMTEgNSAxMUgxMEMxMC41NTIzIDExIDExIDEwLjU1MjMgMTEgMTBWNUMxMSA0LjQ0NzcyIDEwLjU1MjMgNCAxMCA0WlwiIHN0cm9rZT1cIiM2MzYzNjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0yIDhDMS40NSA4IDEgNy41NSAxIDdWMkMxIDEuNDUgMS40NSAxIDIgMUg3QzcuNTUgMSA4IDEuNDUgOCAyXCIgc3Ryb2tlPVwiIzYzNjM2M1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWJnLXdoaXRlIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjQzZEMkZGXSBjcWEtcm91bmRlZC1sZ1wiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBjb25maWcuZXh0cmFjdGVkRmllbGRzXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1nYXAtMiBjcWEtcHgtMyBjcWEtcHQtMSBjcWEtcGItMS41IGNxYS1ib3JkZXItYiBjcWEtYm9yZGVyLXQtMCBjcWEtYm9yZGVyLWwtMCBjcWEtYm9yZGVyLXItMCBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNFNEU0RTRdIGxhc3Q6Y3FhLWJvcmRlci0wXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzhweF0gY3FhLWxlYWRpbmctWzEycHhdIGNxYS10ZXh0LVsjNjM2MzYzXVwiPnt7IGZpZWxkLmxhYmVsIH19PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzBCMEIwQl1cIj57eyBmaWVsZC52YWx1ZSB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtcHgtMiBjcWEtcHktWzJweF0gY3FhLXJvdW5kZWQgY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMDA4MjM2XSBjcWEtYmctWyNEQ0ZDRTddIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF1cIj5cbiAgICAgICAgICAgICAgICB7eyBmaWVsZC5jb25maWRlbmNlIH19JVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29weVRvQ2xpcGJvYXJkKGZpZWxkLnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjcWEtcC0xXCI+XG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMS42NjY3IDQuNjY2NzVINS44MzMzMkM1LjE4ODk5IDQuNjY2NzUgNC42NjY2NiA1LjE4OTA4IDQuNjY2NjYgNS44MzM0MVYxMS42NjY3QzQuNjY2NjYgMTIuMzExMSA1LjE4ODk5IDEyLjgzMzQgNS44MzMzMiAxMi44MzM0SDExLjY2NjdDMTIuMzExIDEyLjgzMzQgMTIuODMzMyAxMi4zMTExIDEyLjgzMzMgMTEuNjY2N1Y1LjgzMzQxQzEyLjgzMzMgNS4xODkwOCAxMi4zMTEgNC42NjY3NSAxMS42NjY3IDQuNjY2NzVaXCIgc3Ryb2tlPVwiIzYzNjM2M1wiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0yLjMzMzMyIDkuMzMzNDFDMS42OTE2NiA5LjMzMzQxIDEuMTY2NjYgOC44MDg0MSAxLjE2NjY2IDguMTY2NzVWMi4zMzM0MUMxLjE2NjY2IDEuNjkxNzUgMS42OTE2NiAxLjE2Njc1IDIuMzMzMzIgMS4xNjY3NUg4LjE2NjY2QzguODA4MzIgMS4xNjY3NSA5LjMzMzMyIDEuNjkxNzUgOS4zMzMzMiAyLjMzMzQxXCIgc3Ryb2tlPVwiIzYzNjM2M1wiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFZlcmlmaWNhdGlvbiBDaGVja3MgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1tdC0xLjVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtbWItMlwiPlxuICAgICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNi4wMDAwNCAzLjMzMzMzSDQuNjY2NzFDNC4zMTMwOSAzLjMzMzMzIDMuOTczOTUgMy40NzM4MSAzLjcyMzkgMy43MjM4NkMzLjQ3Mzg1IDMuOTczOTEgMy4zMzMzNyA0LjMxMzA0IDMuMzMzMzcgNC42NjY2N1YxMi42NjY3QzMuMzMzMzcgMTMuMDIwMyAzLjQ3Mzg1IDEzLjM1OTQgMy43MjM5IDEzLjYwOTVDMy45NzM5NSAxMy44NTk1IDQuMzEzMDkgMTQgNC42NjY3MSAxNEgxMS4zMzM0QzExLjY4NyAxNCAxMi4wMjYxIDEzLjg1OTUgMTIuMjc2MiAxMy42MDk1QzEyLjUyNjIgMTMuMzU5NCAxMi42NjY3IDEzLjAyMDMgMTIuNjY2NyAxMi42NjY3VjQuNjY2NjdDMTIuNjY2NyA0LjMxMzA0IDEyLjUyNjIgMy45NzM5MSAxMi4yNzYyIDMuNzIzODZDMTIuMDI2MSAzLjQ3MzgxIDExLjY4NyAzLjMzMzMzIDExLjMzMzQgMy4zMzMzM0gxME02LjAwMDA0IDMuMzMzMzNDNi4wMDAwNCAzLjY4Njk2IDYuMTQwNTIgNC4wMjYwOSA2LjM5MDU3IDQuMjc2MTRDNi42NDA2MSA0LjUyNjE5IDYuOTc5NzUgNC42NjY2NyA3LjMzMzM3IDQuNjY2NjdIOC42NjY3MUM5LjAyMDMzIDQuNjY2NjcgOS4zNTk0NyA0LjUyNjE5IDkuNjA5NTIgNC4yNzYxNEM5Ljg1OTU2IDQuMDI2MDkgMTAgMy42ODY5NiAxMCAzLjMzMzMzTTYuMDAwMDQgMy4zMzMzM0M2LjAwMDA0IDIuOTc5NzEgNi4xNDA1MiAyLjY0MDU3IDYuMzkwNTcgMi4zOTA1MkM2LjY0MDYxIDIuMTQwNDggNi45Nzk3NSAyIDcuMzMzMzcgMkg4LjY2NjcxQzkuMDIwMzMgMiA5LjM1OTQ3IDIuMTQwNDggOS42MDk1MiAyLjM5MDUyQzkuODU5NTYgMi42NDA1NyAxMCAyLjk3OTcxIDEwIDMuMzMzMzNNNi4wMDAwNCA5LjMzMzMzTDcuMzMzMzcgMTAuNjY2N0wxMCA4XCIgc3Ryb2tlPVwiIzYxNUZGRlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzBCMEIwQl1cIj5WZXJpZmljYXRpb24gQ2hlY2tzPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMlwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNoZWNrIG9mIGNvbmZpZy52ZXJpZmljYXRpb25DaGVja3NcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdjcWEtYmctWyNGMEZERjRdIGNxYS1ib3JkZXItWyNCOUY4Q0ZdJzogY2hlY2suc3RhdHVzID09PSAncGFzcycsXG4gICAgICAgICAgICAnY3FhLWJnLVsjRkVGMkYyXSBjcWEtYm9yZGVyLVsjRkZDOUM5XSc6IGNoZWNrLnN0YXR1cyA9PT0gJ2ZhaWwnXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgY2xhc3M9XCJjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLXJvdW5kZWQtbGcgY3FhLXAtM1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtc3RhcnQgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTIgY3FhLW1iLTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMlwiPlxuICAgICAgICAgICAgICA8IS0tIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNoZWNrLnN0YXR1cyA9PT0gJ3Bhc3MnID8gJ2NxYS10ZXh0LWdyZWVuLTYwMCcgOiAnY3FhLXRleHQtcmVkLTYwMCdcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiIWNxYS13LTUgIWNxYS1oLTUgIWNxYS10ZXh0LVsyMHB4XVwiPlxuICAgICAgICAgICAgICAgIHt7IGNoZWNrLnN0YXR1cyA9PT0gJ3Bhc3MnID8gJ2NoZWNrX2NpcmNsZScgOiAnY2FuY2VsJyB9fVxuICAgICAgICAgICAgICA8L21hdC1pY29uPiAtLT5cbiAgICAgICAgICAgICAgPGRpdj48c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMTYgMThcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTEzLjMzMzMgNkw1Ljk5OTk2IDEzLjMzMzNMMi42NjY2MyAxMFwiIHN0cm9rZT1cIiMwMEE2M0VcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPjwvZGl2PlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWyMwQjBCMEJdXCI+e3sgY2hlY2suZGVzY3JpcHRpb24gfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnY3FhLXRleHQtWyMwMDgyMzZdIGNxYS1iZy1bI0RDRkNFN10nOiBjaGVjay5zdGF0dXMgPT09ICdwYXNzJyxcbiAgICAgICAgICAgICAgICAnY3FhLXRleHQtWyNDMTAwMDddIGNxYS1iZy1bI0ZGRTJFMl0nOiBjaGVjay5zdGF0dXMgPT09ICdmYWlsJ1xuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjcWEtcHgtMiBjcWEtcHktWzJweF0gY3FhLXJvdW5kZWQgY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF1cIj5cbiAgICAgICAgICAgICAge3sgY2hlY2suc3RhdHVzID09PSAncGFzcycgPyAnUEFTUycgOiAnRkFJTCcgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWdyaWQgY3FhLWdyaWQtY29scy0yIGNxYS1nYXAtMyBjcWEtcGwtNlwiPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNjM2MzYzXSBjcWEtbWItMVwiPkV4cGVjdGVkPC9kaXY+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY2hlY2suZXhwZWN0ZWRcIlxuICAgICAgICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS1weS0xLjUgY3FhLXB4LTIgIWNxYS1ib3JkZXIgIWNxYS1ib3JkZXItc29saWQgIWNxYS1ib3JkZXItWyNFNEU0RTRdIGNxYS1yb3VuZGVkICFjcWEtYmctd2hpdGUgY3FhLXRleHQtWzExcHhdIGNxYS1sZWFkaW5nLVsxM3B4XSBjcWEtdGV4dC1bIzBCMEIwQl1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyM2MzYzNjNdIGNxYS1tYi0xXCI+QWN0dWFsPC9kaXY+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY2hlY2suYWN0dWFsXCJcbiAgICAgICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtcHktMS41IGNxYS1weC0yICFjcWEtYm9yZGVyICFjcWEtYm9yZGVyLXNvbGlkICFjcWEtYm9yZGVyLVsjRTRFNEU0XSBjcWEtcm91bmRlZCAhY3FhLWJnLXdoaXRlIGNxYS10ZXh0LVsxMXB4XSBjcWEtbGVhZGluZy1bMTNweF0gY3FhLXRleHQtWyMwQjBCMEJdXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBUaW1pbmcgQnJlYWtkb3duIC0tPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImNvbmZpZy50aW1pbmdCcmVha2Rvd25cIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktZW5kIGNxYS1nYXAtNSBjcWEtcHQtMS41IGNxYS1weC00IGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjOUNBM0FGXVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMlwiPlxuICAgICAgPGRpdj48c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTYgMTFDOC43NjE0MiAxMSAxMSA4Ljc2MTQyIDExIDZDMTEgMy4yMzg1OCA4Ljc2MTQyIDEgNiAxQzMuMjM4NTggMSAxIDMuMjM4NTggMSA2QzEgOC43NjE0MiAzLjIzODU4IDExIDYgMTFaXCIgc3Ryb2tlPVwiIzlDQTNBRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTYgM1Y2TDggN1wiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgICA8c3Bhbj5UaW1pbmcgYnJlYWtkb3duPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtZGlhbG9nLW11dGVkIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0zXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICBBcHAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1ncmF5LTcwMFwiPnt7IGZvcm1hdER1cmF0aW9uKGNvbmZpZy50aW1pbmdCcmVha2Rvd24uYXBwKSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj48c3ZnIHdpZHRoPVwiMVwiIGhlaWdodD1cIjExXCIgdmlld0JveD1cIjAgMCAxIDExXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0tMy44MTQ3ZS0wNiAxMC4zMlYtNy4xNTI1NmUtMDdIMC45NTk5OTZWMTAuMzJILTMuODE0N2UtMDZaXCIgZmlsbD1cIiNFNUU3RUJcIi8+PC9zdmc+PC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICBUb29sIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtZ3JheS03MDBcIj57eyBmb3JtYXREdXJhdGlvbihjb25maWcudGltaW5nQnJlYWtkb3duLnRvb2wpIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdmVyaWZpY2F0aW9uLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9leGVjdXRpb24tc2NyZWVuL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFbkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBUTNELE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxpQkFBaUI7SUFrQjdELFFBQVE7UUFDZixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDM0MsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3JDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDM0MsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3JDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUNVLENBQUM7UUFFcEMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDdEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2hDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDZixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3RDO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVk7UUFDMUIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM1QyxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVk7UUFDNUIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLHNCQUFzQixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsS0FBSyxJQUFJLEVBQUU7WUFDcEosTUFBTSxTQUFTLEdBQUcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsS0FBSyxRQUFRO2dCQUM3RSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCO2dCQUMzQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDdEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUM7WUFDekMsSUFBSSxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxJQUFJLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQzthQUNwRDtTQUNGO0lBQ0gsQ0FBQzs7OEhBL0RVLGlDQUFpQztrSEFBakMsaUNBQWlDLHFmQ1Y5QyxtbGRBcUtBOzJGRDNKYSxpQ0FBaUM7a0JBTjdDLFNBQVM7K0JBQ0UsZ0NBQWdDLFFBR3BDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTs4QkFJckIsRUFBRTtzQkFBVixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudFZlcmlmaWNhdGlvblN0ZXBDb25maWcsIEV4dHJhY3RlZEZpZWxkLCBWZXJpZmljYXRpb25DaGVjaywgU3RlcFN0YXR1cywgVGltaW5nQnJlYWtkb3duIH0gZnJvbSAnLi4vZXhlY3V0aW9uLXN0ZXAubW9kZWxzJztcbmltcG9ydCB7IEJhc2VTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1zdGVwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCcgfVxufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudFZlcmlmaWNhdGlvblN0ZXBDb21wb25lbnQgZXh0ZW5kcyBCYXNlU3RlcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgLy8gSW5kaXZpZHVhbCBpbnB1dHNcbiAgQElucHV0KCkgaWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0ZXBOdW1iZXIhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRpdGxlITogc3RyaW5nO1xuICBASW5wdXQoKSBzdGF0dXMhOiBTdGVwU3RhdHVzO1xuICBASW5wdXQoKSBkdXJhdGlvbiE6IG51bWJlcjtcbiAgQElucHV0KCkgdGltaW5nQnJlYWtkb3duPzogVGltaW5nQnJlYWtkb3duO1xuICBASW5wdXQoKSBleHBhbmRlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRvY3VtZW50U2NyZWVuc2hvdD86IHN0cmluZztcbiAgQElucHV0KCkgZXh0cmFjdGVkRmllbGRzITogRXh0cmFjdGVkRmllbGRbXTtcbiAgQElucHV0KCkgdmVyaWZpY2F0aW9uQ2hlY2tzITogVmVyaWZpY2F0aW9uQ2hlY2tbXTtcbiAgQElucHV0KCkgc3RlcD86IGFueTtcbiAgQElucHV0KCkganVtcFRvVGltZXN0YW1wSGFuZGxlcj86ICh0aW1lc3RhbXA6IG51bWJlciwgdGVzdFN0ZXBJZD86IG51bWJlciB8IHN0cmluZykgPT4gdm9pZDtcblxuICAvLyBDb25maWcgcHJvcGVydHkgZm9yIGJhc2UgY2xhc3MgLSBidWlsdCBmcm9tIGluZGl2aWR1YWwgaW5wdXRzIGluIG5nT25Jbml0XG4gIG92ZXJyaWRlIGNvbmZpZyE6IERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbmZpZztcblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBCdWlsZCBjb25maWcgZnJvbSBpbmRpdmlkdWFsIGlucHV0c1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBzdGVwTnVtYmVyOiB0aGlzLnN0ZXBOdW1iZXIsXG4gICAgICB0aXRsZTogdGhpcy50aXRsZSxcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICBkdXJhdGlvbjogdGhpcy5kdXJhdGlvbixcbiAgICAgIHR5cGU6ICdkb2N1bWVudC12ZXJpZmljYXRpb24nLFxuICAgICAgZG9jdW1lbnRTY3JlZW5zaG90OiB0aGlzLmRvY3VtZW50U2NyZWVuc2hvdCxcbiAgICAgIGV4dHJhY3RlZEZpZWxkczogdGhpcy5leHRyYWN0ZWRGaWVsZHMsXG4gICAgICB2ZXJpZmljYXRpb25DaGVja3M6IHRoaXMudmVyaWZpY2F0aW9uQ2hlY2tzLFxuICAgICAgdGltaW5nQnJlYWtkb3duOiB0aGlzLnRpbWluZ0JyZWFrZG93bixcbiAgICAgIGV4cGFuZGVkOiB0aGlzLmV4cGFuZGVkLFxuICAgIH0gYXMgRG9jdW1lbnRWZXJpZmljYXRpb25TdGVwQ29uZmlnO1xuXG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZXhwYW5kZWQnXSAmJiB0aGlzLmV4cGFuZGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IHRoaXMuZXhwYW5kZWQ7XG4gICAgICBpZiAodGhpcy5jb25maWcpIHtcbiAgICAgICAgdGhpcy5jb25maWcuZXhwYW5kZWQgPSB0aGlzLmV4cGFuZGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvcHlUb0NsaXBib2FyZCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KS50aGVuKCgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdDb3BpZWQgdG8gY2xpcGJvYXJkOicsIHRleHQpO1xuICAgIH0pO1xuICB9XG5cbiAgb25KdW1wVG9UaW1lc3RhbXAoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuanVtcFRvVGltZXN0YW1wSGFuZGxlciAmJiB0aGlzLnN0ZXA/LmV4ZWN1dGVkUmVzdWx0Py52aWRlb19zdGFydF90aW1lICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zdGVwPy5leGVjdXRlZFJlc3VsdD8udmlkZW9fc3RhcnRfdGltZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdGltZXN0YW1wID0gdHlwZW9mIHRoaXMuc3RlcC5leGVjdXRlZFJlc3VsdC52aWRlb19zdGFydF90aW1lID09PSAnbnVtYmVyJyBcbiAgICAgICAgPyB0aGlzLnN0ZXAuZXhlY3V0ZWRSZXN1bHQudmlkZW9fc3RhcnRfdGltZSBcbiAgICAgICAgOiBOdW1iZXIodGhpcy5zdGVwLmV4ZWN1dGVkUmVzdWx0LnZpZGVvX3N0YXJ0X3RpbWUpO1xuICAgICAgY29uc3QgdGVzdFN0ZXBJZCA9IHRoaXMuc3RlcD8udGVzdFN0ZXBJZDtcbiAgICAgIGlmIChpc0Zpbml0ZSh0aW1lc3RhbXApICYmIHRpbWVzdGFtcCA+PSAwKSB7XG4gICAgICAgIHRoaXMuanVtcFRvVGltZXN0YW1wSGFuZGxlcih0aW1lc3RhbXAsIHRlc3RTdGVwSWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdj5cbiAgPCEtLSBIZWFkZXIgLS0+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1wLTIgY3FhLWN1cnNvci1wb2ludGVyXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICBcbiAgICA8IS0tIFN0YXR1cyBJY29uIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJjb25maWcuc3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdzdWNjZXNzJ1wiID48c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTEwLjkwMDUgNC45OTk5OUMxMS4xMjg5IDYuMTIwNjQgMTAuOTY2MiA3LjI4NTcxIDEwLjQzOTUgOC4zMDA4OUM5LjkxMjc5IDkuMzE2MDggOS4wNTQgMTAuMTIgOC4wMDYzMSAxMC41Nzg3QzYuOTU4NjIgMTEuMDM3MyA1Ljc4NTM2IDExLjEyMjkgNC42ODIyIDEwLjgyMTJDMy41NzkwNCAxMC41MTk1IDIuNjEyNjUgOS44NDg2OSAxLjk0NDE5IDguOTIwNzFDMS4yNzU3MyA3Ljk5MjcyIDAuOTQ1NjExIDYuODYzNjEgMS4wMDg4OCA1LjcyMTY5QzEuMDcyMTUgNC41Nzk3NiAxLjUyNDk5IDMuNDk0MDQgMi4yOTE4OCAyLjY0NTU4QzMuMDU4NzYgMS43OTcxMiA0LjA5MzM0IDEuMjM3MjEgNS4yMjMwOCAxLjA1OTIyQzYuMzUyODIgMC44ODEyMzMgNy41MDk0NCAxLjA5NTkyIDguNTAwMDUgMS42Njc0OVwiIHN0cm9rZT1cIiMyMkM1NUVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk00LjUgNS41TDYgN0wxMSAyXCIgc3Ryb2tlPVwiIzIyQzU1RVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnLnN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAnZmFpbHVyZSdcIj48c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTYgMTFDOC43NjE0MiAxMSAxMSA4Ljc2MTQyIDExIDZDMTEgMy4yMzg1OCA4Ljc2MTQyIDEgNiAxQzMuMjM4NTggMSAxIDMuMjM4NTggMSA2QzEgOC43NjE0MiAzLjIzODU4IDExIDYgMTFaXCIgc3Ryb2tlPVwiI0RDMjYyNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTcuNSA0LjVMNC41IDcuNVwiIHN0cm9rZT1cIiNEQzI2MjZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk00LjUgNC41TDcuNSA3LjVcIiBzdHJva2U9XCIjREMyNjI2XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPjwvZGl2PlxuXG4gICAgPCEtLSBEb2N1bWVudCBJY29uIC0tPlxuICAgIDxkaXY+PHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDIwIDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjE2XCIgcng9XCI0XCIgZmlsbD1cIiNFNkY0RkZcIi8+PHBhdGggZD1cIk0xMiA1LjVDMTIgNi4wMzA0MyAxMS43ODkzIDYuNTM5MTQgMTEuNDE0MiA2LjkxNDIxQzExLjAzOTEgNy4yODkyOSAxMC41MzA0IDcuNSAxMCA3LjVDOS40Njk1NyA3LjUgOC45NjA4NiA3LjI4OTI5IDguNTg1NzkgNi45MTQyMUM4LjIxMDcxIDYuNTM5MTQgOCA2LjAzMDQzIDggNS41QzggNC45Njk1NyA4LjIxMDcxIDQuNDYwODYgOC41ODU3OSA0LjA4NTc5QzguOTYwODYgMy43MTA3MSA5LjQ2OTU3IDMuNSAxMCAzLjVDMTAuNTMwNCAzLjUgMTEuMDM5MSAzLjcxMDcxIDExLjQxNDIgNC4wODU3OUMxMS43ODkzIDQuNDYwODYgMTIgNC45Njk1NyAxMiA1LjVaTTEwIDlDOS4wNzE3NCA5IDguMTgxNSA5LjM2ODc1IDcuNTI1MTMgMTAuMDI1MUM2Ljg2ODc1IDEwLjY4MTUgNi41IDExLjU3MTcgNi41IDEyLjVIMTMuNUMxMy41IDExLjU3MTcgMTMuMTMxMyAxMC42ODE1IDEyLjQ3NDkgMTAuMDI1MUMxMS44MTg1IDkuMzY4NzUgMTAuOTI4MyA5IDEwIDlaXCIgc3Ryb2tlPVwiIzBBODZFNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cblxuICAgIDwhLS0gU3RlcCBOdW1iZXIgYW5kIFRpdGxlIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0zXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMzM0MTU1XSBjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzE4cHhdXCIgc3R5bGU9XCJ3b3JkLWJyZWFrOiBicmVhay13b3JkO1wiPlxuICAgICAgICB7eyBjb25maWcuc3RlcE51bWJlciB9fS4gPHNwYW4gW2lubmVySFRNTF09XCJjb25maWcudGl0bGVcIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImNxYS1weC0xLjUgY3FhLXJvdW5kZWQtZnVsbCBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMwQTg2RTZdIGNxYS1iZy1bI0U2RjRGRl0gY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XVwiPlxuICAgICAgICBEb2N1bWVudCBWZXJpZmljYXRpb25cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEgY3FhLXJvdW5kZWQtWzRweF0gY3FhLXB5LTAuNSBjcWEtcHgtMSBjcWEtYmctWyM2MzY2RjExQV0gY3FhLW1sLTEgY3FhLWN1cnNvci1wb2ludGVyIGhvdmVyOmNxYS1vcGFjaXR5LTgwIGNxYS10cmFuc2l0aW9uLW9wYWNpdHlcIiBcbiAgICAgICAgICAgKm5nSWY9XCJzdGVwPy5leGVjdXRlZFJlc3VsdD8udmlkZW9fc3RhcnRfdGltZVwiIFxuICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInSnVtcCB0byB2aWRlbyB0aW1lJ1wiIFxuICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAgICAgIChjbGljayk9XCJvbkp1bXBUb1RpbWVzdGFtcCgkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNxYS10ZXh0LVsjNjM2MzYzXSAhY3FhLXRleHQtWzEwcHhdICFjcWEtdy1bMTBweF0gIWNxYS1oLVsxMHB4XVwiPlxuICAgICAgICAgIHBsYXlfYXJyb3dcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bOHB4XSBjcWEtbGVhZGluZy1bMTJweF0gY3FhLWZvbnQtbm9ybWFsIGNxYS10ZXh0LVsjNjM2MzYzXVwiPlxuICAgICAgICAgIHt7IGZvcm1hdER1cmF0aW9uQ2xvY2soc3RlcD8uZXhlY3V0ZWRSZXN1bHQ/LnZpZGVvX3N0YXJ0X3RpbWUgfHwgMCkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+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==
@@ -2,4 +2,4 @@
2
2
  * Models and interfaces for execution screen step components
3
3
  */
4
4
  export {};
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uLXN0ZXAubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9leGVjdXRpb24tc2NyZWVuL2V4ZWN1dGlvbi1zdGVwLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTW9kZWxzIGFuZCBpbnRlcmZhY2VzIGZvciBleGVjdXRpb24gc2NyZWVuIHN0ZXAgY29tcG9uZW50c1xuICovXG5cbmV4cG9ydCB0eXBlIFN0ZXBTdGF0dXMgPSAnc3VjY2VzcycgfCAnZmFpbGVkJyB8ICdwZW5kaW5nJyB8ICdydW5uaW5nJyB8ICdza2lwcGVkJyB8ICdTVUNDRVNTJyB8ICdGQUlMRUQnIHwgJ1BFTkRJTkcnIHwgJ1JVTk5JTkcnIHwgJ1NLSVBQRUQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRpbWluZ0JyZWFrZG93biB7XG4gIGFwcDogbnVtYmVyOyAvLyBpbiBzZWNvbmRzXG4gIHRvb2w6IG51bWJlcjsgLy8gaW4gc2Vjb25kc1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YlN0ZXAge1xuICBpZDogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzdGF0dXM6IFN0ZXBTdGF0dXM7XG4gIGR1cmF0aW9uOiBudW1iZXI7IC8vIGluIHNlY29uZHNcbiAgdGltZXN0YW1wPzogc3RyaW5nOyAvLyBvcHRpb25hbCB0aW1lc3RhbXAgbGlrZSBcIjAwOjEyXCJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb29wSXRlcmF0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZzsgLy8gZS5nLiwgXCJJdGVyIDIgKHByb2R1Y3Rpb24pXCJcbiAgc3RhdHVzOiBTdGVwU3RhdHVzO1xuICBzdWJTdGVwcz86IFN1YlN0ZXBbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb25CcmFuY2gge1xuICB0eXBlOiAnaWYnIHwgJ2Vsc2UnIHwgJ2Vsc2UgaWYnO1xuICBsYWJlbDogc3RyaW5nOyAvLyBlLmcuLCBcIlByZW1pdW0gdXNlclwiIG9yIFwiRnJlZSB1c2VyXCJcbiAgZXhlY3V0ZWQ6IGJvb2xlYW47XG4gIHN1YlN0ZXBzPzogU3ViU3RlcFtdO1xuICBicmFuY2hTdGVwSWQ/OiBzdHJpbmcgfCBudW1iZXI7IC8vIElEIG9mIHRoZSBicmFuY2ggc3RlcCB0byBsb2FkIGNoaWxkcmVuIGZyb21cbiAgaXNJZkJyYW5jaD86IGJvb2xlYW47IC8vIFdoZXRoZXIgdGhpcyBpcyB0aGUgbWFpbiBJRiBicmFuY2hcbiAgYnJhbmNoU3RlcDogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjcmVlbnNob3REYXRhIHtcbiAgYmFzZWxpbmU/OiBzdHJpbmc7IC8vIFVSTCBvciBiYXNlNjRcbiAgY3VycmVudD86IHN0cmluZzsgLy8gVVJMIG9yIGJhc2U2NFxuICBkaWZmZXJlbmNlPzogc3RyaW5nOyAvLyBVUkwgb3IgYmFzZTY0XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nRW50cnkge1xuICBsZXZlbDogJ2luZm8nIHwgJ3dhcm5pbmcnIHwgJ2Vycm9yJztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICB0aW1lc3RhbXA/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmFpbHVyZURldGFpbHMge1xuICB0ZXN0U3RlcElkOiBzdHJpbmc7XG4gIGV4cGVjdGVkOiBzdHJpbmc7XG4gIGFjdHVhbDogc3RyaW5nO1xuICBmYWlsZWRBY3Rpb24/OiBzdHJpbmc7IC8vIFRoZSBhY3Rpb24gdGhhdCBmYWlsZWRcbiAgYWlGaXhBcHBsaWVkPzogYm9vbGVhbjtcbiAgYWlGaXhNZXNzYWdlPzogc3RyaW5nO1xuICBzY3JlZW5zaG90cz86IFNjcmVlbnNob3REYXRhO1xuICBsb2dzPzogTG9nRW50cnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlU3RlcENvbmZpZyB7XG4gIGlkOiBzdHJpbmc7XG4gIHRlc3RTdGVwSWQ6IG51bWJlciB8IHVuZGVmaW5lZDsgLy8gdGVzdCBzdGVwIGlkIGZyb20gdGhlIHRlc3QgY2FzZVxuICB0ZXN0U3RlcFJlc3VsdElkOiBzdHJpbmc7XG4gIHN0ZXBOdW1iZXI6IHN0cmluZzsgLy8gZS5nLiwgXCIxXCIsIFwiMi4xXCIsIFwiMy4yLjFcIlxuICB0aXRsZTogc3RyaW5nO1xuICBzdGF0dXM6IFN0ZXBTdGF0dXM7XG4gIGR1cmF0aW9uOiBudW1iZXI7IC8vIHRvdGFsIGR1cmF0aW9uIGluIHNlY29uZHNcbiAgdGltaW5nQnJlYWtkb3duPzogVGltaW5nQnJlYWtkb3duO1xuICBleHBhbmRlZD86IGJvb2xlYW47IC8vIHdoZXRoZXIgdGhlIHN0ZXAgaXMgZXhwYW5kZWQgYnkgZGVmYXVsdFxuICBmYWlsdXJlRGV0YWlscz86IEZhaWx1cmVEZXRhaWxzO1xuICByZWFzb25pbmc/OiBzdHJpbmdbXTtcbiAgY29uZmlkZW5jZT86IHN0cmluZztcbiAgc3RlcERlbGV0ZWQ/OiBib29sZWFuO1xuICAvLyBBZGRpdGlvbmFsIHByb3BlcnRpZXMgZm9yIGxpdmUgZXhlY3V0aW9uIGFuZCBydW50aW1lIHVzZVxuICBzZWxlY3RlZEl0ZXJhdGlvbklkPzogc3RyaW5nOyAvLyB3aGljaCBpdGVyYXRpb24gdG8gZGlzcGxheVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGZIZWFsQW5hbHlzaXNEYXRhIHtcbiAgb3JpZ2luYWxMb2NhdG9yOiBzdHJpbmc7XG4gIGhlYWxlZExvY2F0b3I6IHN0cmluZztcbiAgY29uZmlkZW5jZTogbnVtYmVyOyAvLyAwLTEwMFxuICBoZWFsTWV0aG9kOiBzdHJpbmc7IC8vIGUuZy4sIFwiU2VtYW50aWMgQXR0cmlidXRlIE1hdGNoaW5nXCJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWxmSGVhbEFjdGlvbkV2ZW50IHtcbiAgdHlwZTogU2VsZkhlYWxBY3Rpb247XG4gIGlkOiBzdHJpbmc7XG4gIGhlYWxlZExvY2F0b3I6IHN0cmluZztcbiAgdGVzdFN0ZXBJZD86IHN0cmluZzsgLy8gdGVzdCBzdGVwIGlkIGZyb20gdGhlIHRlc3QgY2FzZVxufVxuXG5leHBvcnQgdHlwZSBTZWxmSGVhbEFjdGlvbiA9ICdhY2NlcHQnIHwgJ3JlamVjdCcgfCAnbW9kaWZ5LWFjY2VwdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzaWNTdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnYmFzaWMnO1xuICBzdWJTdGVwczogU3ViU3RlcFtdO1xuICBzZWxmSGVhbEFuYWx5c2lzPzogU2VsZkhlYWxBbmFseXNpc0RhdGE7XG4gIHNlbGZIZWFsZWQ/OiBib29sZWFuOyAvLyBJbmRpY2F0ZXMgaWYgc2VsZi1oZWFsaW5nIHdhcyBhcHBsaWVkXG4gIHNlbGZIZWFsRHVyYXRpb24/OiBudW1iZXI7IC8vIER1cmF0aW9uIG9mIHNlbGYtaGVhbGluZyBwcm9jZXNzXG4gIG5lc3RlZFN0ZXBzPzogRXhlY3V0aW9uU3RlcENvbmZpZ1tdOyAvLyBuZXN0ZWQgY2hpbGQgc3RlcHMgZm9yIHJlY3Vyc2l2ZSByZW5kZXJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGVwR3JvdXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHR5cGU6ICdzdGVwLWdyb3VwJztcbiAgZ3JvdXBOYW1lOiBzdHJpbmc7IC8vIGUuZy4sIFwiTmF2aWdhdGlvblwiLCBcIkNoZWNrb3V0IGZsb3dcIlxuICBzdGVwczogRXhlY3V0aW9uU3RlcENvbmZpZ1tdOyAvLyBuZXN0ZWQgc3RlcHNcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb29wU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgdHlwZTogJ2xvb3AnO1xuICBsb29wVHlwZT86ICdmb3InIHwgJ3doaWxlJztcbiAgaXRlcmF0aW9uczogTG9vcEl0ZXJhdGlvbltdO1xuICBzZWxlY3RlZEl0ZXJhdGlvbklkPzogc3RyaW5nOyAvLyB3aGljaCBpdGVyYXRpb24gdG8gZGlzcGxheVxuICBkZWZhdWx0SXRlcmF0aW9uPzogJ2ZpcnN0JyB8ICdsYXN0JzsgLy8gZGVmYXVsdCBpdGVyYXRpb24gdG8gc2hvd1xuICBuZXN0ZWRTdGVwcz86IEV4ZWN1dGlvblN0ZXBDb25maWdbXTsgLy8gc3RlcHMgbmVzdGVkIHdpdGhpbiB0aGUgbG9vcFxuICBzaG93Vmlld0FsbEl0ZXJhdGlvbnM/OiBib29sZWFuO1xuICBzdWJTdGVwcz86IFN1YlN0ZXBbXTtcbiAgaXRlcmF0aW9uRGF0YT86IGFueTsgLy8gZGF0YSBmb3IgZWFjaCBpdGVyYXRpb24gaW4gbGl2ZSBleGVjdXRpb25cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb25TdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnY29uZGl0aW9uJztcbiAgY29uZGl0aW9uVGV4dDogc3RyaW5nOyAvLyBlLmcuLCBcImlmIHVzZXIgdHlwZSBpcyAnUHJlbWl1bSdcIlxuICBicmFuY2hlczogQ29uZGl0aW9uQnJhbmNoW107XG4gIG5lc3RlZFN0ZXBzPzogRXhlY3V0aW9uU3RlcENvbmZpZ1tdOyAvLyBuZXN0ZWQgY2hpbGQgc3RlcHMgZm9yIHJlY3Vyc2l2ZSByZW5kZXJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGYWlsZWRTdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnZmFpbGVkJztcbiAgc3ViU3RlcHM6IFN1YlN0ZXBbXTtcbiAgZmFpbHVyZURldGFpbHM6IEZhaWx1cmVEZXRhaWxzO1xuICByZWFzb25pbmc/OiBzdHJpbmdbXTtcbiAgY29uZmlkZW5jZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSUFnZW50QWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgdHlwZTogJ2V4dHJhY3QnIHwgJ3ZhbGlkYXRlJyB8ICdBSV9BR0VOVF9BQ1RJT04nIHwgJ1RZUEUnIHwgJ0NMSUNLJztcbiAgc3RhdHVzOiBTdGVwU3RhdHVzO1xuICBjb25maWRlbmNlPzogbnVtYmVyOyAvLyAwLTEwMFxuICBkdXJhdGlvbjogbnVtYmVyO1xuICByZWFzb25pbmc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlBZ2VudFN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHR5cGU6ICdhaS1hZ2VudCc7XG4gIHByb21wdDogc3RyaW5nO1xuICBvcHRpbWl6ZWRSdW4/OiBib29sZWFuO1xuICBhY3Rpb25Db3VudD86IG51bWJlcjtcbiAgYWN0aW9uczogQUlBZ2VudEFjdGlvbltdO1xuICBzZWxlY3RlZFRhYj86ICdhY3Rpb24tdHJhY2UnIHwgJ3BsYW5uZXItdGltZWxpbmUnIHwgJ2FpLXJlYXNvbmluZyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlBY3Rpb25TdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnYWktYWN0aW9uJztcbiAgYWN0aW9uQ291bnQ/OiBudW1iZXI7XG4gIGFjdGlvbk5hbWU/OiAnYWlfdGV4dF92ZXJpZmljYXRpb24nIHwgJ2FpX2FzaycgfCAnYWlfZG9jdW1lbnRfYXNrJyB8ICdhaV92ZXJpZnknO1xuICBhY3Rpb25zOiBBSUFnZW50QWN0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpQXNzZXJ0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgc3RhdHVzOiAncGFzc2VkJyB8ICdmYWlsZWQnO1xuICBleHBlY3RlZDogc3RyaW5nO1xuICBhY3R1YWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlTdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnYXBpJztcbiAgbWV0aG9kOiBzdHJpbmc7IC8vIEdFVCwgUE9TVCwgUFVULCBERUxFVEUsIGV0Yy5cbiAgZW5kcG9pbnQ6IHN0cmluZztcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xuICByZXNwb25zZVRpbWU6IG51bWJlcjsgLy8gaW4gbWlsbGlzZWNvbmRzXG4gIHJlcXVlc3RCb2R5PzogYW55O1xuICByZXNwb25zZUJvZHk/OiBhbnk7XG4gIHJlcXVlc3RIZWFkZXJzPzogYW55O1xuICByZXNwb25zZUhlYWRlcnM/OiBhbnk7XG4gIGFzc2VydGlvbnM/OiBBcGlBc3NlcnRpb25bXTtcbiAgaW5pdGlhbEFjdGlvbnM/OiBTdWJTdGVwW107IC8vIEFjdGlvbnMgYmVmb3JlIHRoZSBBUEkgY2FsbFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVEb3dubG9hZFN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHR5cGU6ICdmaWxlLWRvd25sb2FkJztcbiAgZmlsZU5hbWU6IHN0cmluZztcbiAgZmlsZVR5cGU6IHN0cmluZzsgLy8gUERGLCBDU1YsIGV0Yy5cbiAgZmlsZVNpemU/OiBzdHJpbmc7IC8vIGUuZy4sIFwiMi40IE1CXCJcbiAgZmlsZVBhdGg/OiBzdHJpbmc7XG4gIGRvd25sb2FkZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0cmFjdGVkRmllbGQge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBjb25maWRlbmNlOiBudW1iZXI7IC8vIDAtMTAwXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZpY2F0aW9uQ2hlY2sge1xuICBpZDogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzdGF0dXM6ICdwYXNzJyB8ICdmYWlsJztcbiAgZXhwZWN0ZWQ6IHN0cmluZztcbiAgYWN0dWFsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRWZXJpZmljYXRpb25TdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnZG9jdW1lbnQtdmVyaWZpY2F0aW9uJztcbiAgZG9jdW1lbnRTY3JlZW5zaG90Pzogc3RyaW5nOyAvLyBVUkwgb3IgYmFzZTY0XG4gIGV4dHJhY3RlZEZpZWxkczogRXh0cmFjdGVkRmllbGRbXTtcbiAgdmVyaWZpY2F0aW9uQ2hlY2tzOiBWZXJpZmljYXRpb25DaGVja1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpdmVTdWJTdGVwIHtcbiAgaWQ6IHN0cmluZztcbiAgdGV4dDogc3RyaW5nOyAvLyBUZXh0IGZyb20gc29ja2V0XG4gIGlzUnVubmluZzogYm9vbGVhbjsgLy8gdHJ1ZSA9IHNob3cgbG9hZGVyLCBmYWxzZSA9IHNob3cgaWNvblxuICBkdXJhdGlvbj86IG51bWJlcjsgLy8gaW4gc2Vjb25kc1xuICBzdGF0dXM6ICdwYXNzZWQnIHwgJ2ZhaWxlZCcgfCAncGVuZGluZycgfCAnc3VjY2VzcycgfCAnZmFpbHVyZScgfCAnc2tpcHBlZCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGl2ZUV4ZWN1dGlvblN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHR5cGU6ICdsaXZlLWV4ZWN1dGlvbic7XG4gIHN1YlN0ZXBzOiBMaXZlU3ViU3RlcFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERiUXVlcnlSZXN1bHQge1xuICBkYXRhOiBhbnlbXTtcbiAgcXVlcnk6IHN0cmluZztcbiAgZXhlY3V0ZWRBdD86IHN0cmluZztcbiAgZHVyYXRpb24/OiBudW1iZXI7IC8vIGluIHNlY29uZHNcbiAgW2tleTogc3RyaW5nXTogYW55OyAvLyBGb3IgZHluYW1pYyBrZXlzIGxpa2UgXCJEZW1vX3VzZXJcIlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERiQXNzZXJ0aW9uUmVzdWx0IHtcbiAgdmFyaWFibGVOYW1lOiBzdHJpbmc7XG4gIGpzb25QYXRoOiBzdHJpbmc7XG4gIGV4cGVjdGVkVmFsdWU6IGFueTtcbiAgYWN0dWFsVmFsdWU6IGFueTtcbiAgdmVyaWZpY2F0aW9uVHlwZTogc3RyaW5nO1xuICBleHBlY3RlZFR5cGU6IHN0cmluZztcbiAgcGFzc2VkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERiVGVzdFJlc3VsdCB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIHJlc3VsdHM6IHsgW2tleTogc3RyaW5nXTogRGJRdWVyeVJlc3VsdCB9O1xuICBhc3NlcnRpb25SZXN1bHRzOiBEYkFzc2VydGlvblJlc3VsdFtdO1xuICBhbGxBc3NlcnRpb25zUGFzc2VkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERiVmVyaWZpY2F0aW9uU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgdHlwZTogJ2RiLXZlcmlmaWNhdGlvbic7XG4gIGRiVGVzdFJlc3VsdDogRGJUZXN0UmVzdWx0O1xuICBkYkNvbmZpZz86IHtcbiAgICBuYW1lOiBzdHJpbmc7IC8vIEVudmlyb25tZW50IG5hbWVcbiAgICBkYlR5cGU6IHN0cmluZzsgLy8gRGF0YWJhc2UgdHlwZSAoTXlTUUwsIFNRTFNlcnZlciwgZXRjLilcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmVyZXF1aXNpdGVJdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZzsgLy8gZS5nLiwgXCJQcmVyZXF1aXNpdGUgMTogTG9naW4gZmxvd1wiXG4gIHN0YXR1czogU3RlcFN0YXR1cztcbiAgZHVyYXRpb246IG51bWJlcjsgLy8gaW4gc2Vjb25kc1xuICBzdGVwQ29uZmlnPzogRXhlY3V0aW9uU3RlcENvbmZpZzsgLy8gT3B0aW9uYWw6IGZ1bGwgc3RlcCBjb25maWcgdG8gdmlldyBkZXRhaWxzXG59XG5cbmV4cG9ydCB0eXBlIEV4ZWN1dGlvblN0ZXBDb25maWcgPVxuICB8IEJhc2ljU3RlcENvbmZpZ1xuICB8IFN0ZXBHcm91cENvbmZpZ1xuICB8IExvb3BTdGVwQ29uZmlnXG4gIHwgQ29uZGl0aW9uU3RlcENvbmZpZ1xuICB8IEZhaWxlZFN0ZXBDb25maWdcbiAgfCBBSUFnZW50U3RlcENvbmZpZ1xuICB8IEFJQWN0aW9uU3RlcENvbmZpZ1xuICB8IEFwaVN0ZXBDb25maWdcbiAgfCBGaWxlRG93bmxvYWRTdGVwQ29uZmlnXG4gIHwgRG9jdW1lbnRWZXJpZmljYXRpb25TdGVwQ29uZmlnXG4gIHwgTGl2ZUV4ZWN1dGlvblN0ZXBDb25maWdcbiAgfCBEYlZlcmlmaWNhdGlvblN0ZXBDb25maWc7XG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uLXN0ZXAubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9leGVjdXRpb24tc2NyZWVuL2V4ZWN1dGlvbi1zdGVwLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTW9kZWxzIGFuZCBpbnRlcmZhY2VzIGZvciBleGVjdXRpb24gc2NyZWVuIHN0ZXAgY29tcG9uZW50c1xuICovXG5cbmV4cG9ydCB0eXBlIFN0ZXBTdGF0dXMgPSAnc3VjY2VzcycgfCAnZmFpbGVkJyB8ICdwZW5kaW5nJyB8ICdydW5uaW5nJyB8ICdza2lwcGVkJyB8ICdTVUNDRVNTJyB8ICdGQUlMRUQnIHwgJ1BFTkRJTkcnIHwgJ1JVTk5JTkcnIHwgJ1NLSVBQRUQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRpbWluZ0JyZWFrZG93biB7XG4gIGFwcDogbnVtYmVyOyAvLyBpbiBzZWNvbmRzXG4gIHRvb2w6IG51bWJlcjsgLy8gaW4gc2Vjb25kc1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YlN0ZXAge1xuICBpZDogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzdGF0dXM6IFN0ZXBTdGF0dXM7XG4gIGR1cmF0aW9uOiBudW1iZXI7IC8vIGluIHNlY29uZHNcbiAgdGltZXN0YW1wPzogc3RyaW5nOyAvLyBvcHRpb25hbCB0aW1lc3RhbXAgbGlrZSBcIjAwOjEyXCJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb29wSXRlcmF0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZzsgLy8gZS5nLiwgXCJJdGVyIDIgKHByb2R1Y3Rpb24pXCJcbiAgc3RhdHVzOiBTdGVwU3RhdHVzO1xuICBzdWJTdGVwcz86IFN1YlN0ZXBbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb25CcmFuY2gge1xuICB0eXBlOiAnaWYnIHwgJ2Vsc2UnIHwgJ2Vsc2UgaWYnO1xuICBsYWJlbDogc3RyaW5nOyAvLyBlLmcuLCBcIlByZW1pdW0gdXNlclwiIG9yIFwiRnJlZSB1c2VyXCJcbiAgZXhlY3V0ZWQ6IGJvb2xlYW47XG4gIHN1YlN0ZXBzPzogU3ViU3RlcFtdO1xuICBicmFuY2hTdGVwSWQ/OiBzdHJpbmcgfCBudW1iZXI7IC8vIElEIG9mIHRoZSBicmFuY2ggc3RlcCB0byBsb2FkIGNoaWxkcmVuIGZyb21cbiAgaXNJZkJyYW5jaD86IGJvb2xlYW47IC8vIFdoZXRoZXIgdGhpcyBpcyB0aGUgbWFpbiBJRiBicmFuY2hcbiAgYnJhbmNoU3RlcDogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjcmVlbnNob3REYXRhIHtcbiAgYmFzZWxpbmU/OiBzdHJpbmc7IC8vIFVSTCBvciBiYXNlNjRcbiAgY3VycmVudD86IHN0cmluZzsgLy8gVVJMIG9yIGJhc2U2NFxuICBkaWZmZXJlbmNlPzogc3RyaW5nOyAvLyBVUkwgb3IgYmFzZTY0XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nRW50cnkge1xuICBsZXZlbDogJ2luZm8nIHwgJ3dhcm5pbmcnIHwgJ2Vycm9yJztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICB0aW1lc3RhbXA/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmFpbHVyZURldGFpbHMge1xuICB0ZXN0U3RlcElkOiBzdHJpbmc7XG4gIGV4cGVjdGVkOiBzdHJpbmc7XG4gIGFjdHVhbDogc3RyaW5nO1xuICBmYWlsZWRBY3Rpb24/OiBzdHJpbmc7IC8vIFRoZSBhY3Rpb24gdGhhdCBmYWlsZWRcbiAgYWlGaXhBcHBsaWVkPzogYm9vbGVhbjtcbiAgYWlGaXhNZXNzYWdlPzogc3RyaW5nO1xuICBzY3JlZW5zaG90cz86IFNjcmVlbnNob3REYXRhO1xuICBsb2dzPzogTG9nRW50cnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlU3RlcENvbmZpZyB7XG4gIGlkOiBzdHJpbmc7XG4gIHRlc3RTdGVwSWQ6IG51bWJlciB8IHVuZGVmaW5lZDsgLy8gdGVzdCBzdGVwIGlkIGZyb20gdGhlIHRlc3QgY2FzZVxuICB0ZXN0U3RlcFJlc3VsdElkOiBzdHJpbmc7XG4gIHN0ZXBOdW1iZXI6IHN0cmluZzsgLy8gZS5nLiwgXCIxXCIsIFwiMi4xXCIsIFwiMy4yLjFcIlxuICB0aXRsZTogc3RyaW5nO1xuICBzdGF0dXM6IFN0ZXBTdGF0dXM7XG4gIGR1cmF0aW9uOiBudW1iZXI7IC8vIHRvdGFsIGR1cmF0aW9uIGluIHNlY29uZHNcbiAgdGltaW5nQnJlYWtkb3duPzogVGltaW5nQnJlYWtkb3duO1xuICBleHBhbmRlZD86IGJvb2xlYW47IC8vIHdoZXRoZXIgdGhlIHN0ZXAgaXMgZXhwYW5kZWQgYnkgZGVmYXVsdFxuICBmYWlsdXJlRGV0YWlscz86IEZhaWx1cmVEZXRhaWxzO1xuICByZWFzb25pbmc/OiBzdHJpbmdbXTtcbiAgY29uZmlkZW5jZT86IHN0cmluZztcbiAgc3RlcERlbGV0ZWQ/OiBib29sZWFuO1xuICBleGVjdXRlZFJlc3VsdD86IHtcbiAgICB2aWRlb19zdGFydF90aW1lOiBudW1iZXI7XG4gICAgdmlkZW9fZW5kX3RpbWU6IG51bWJlcjtcbiAgfTtcbiAgLy8gQWRkaXRpb25hbCBwcm9wZXJ0aWVzIGZvciBsaXZlIGV4ZWN1dGlvbiBhbmQgcnVudGltZSB1c2VcbiAgc2VsZWN0ZWRJdGVyYXRpb25JZD86IHN0cmluZzsgLy8gd2hpY2ggaXRlcmF0aW9uIHRvIGRpc3BsYXlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWxmSGVhbEFuYWx5c2lzRGF0YSB7XG4gIG9yaWdpbmFsTG9jYXRvcjogc3RyaW5nO1xuICBoZWFsZWRMb2NhdG9yOiBzdHJpbmc7XG4gIGNvbmZpZGVuY2U6IG51bWJlcjsgLy8gMC0xMDBcbiAgaGVhbE1ldGhvZDogc3RyaW5nOyAvLyBlLmcuLCBcIlNlbWFudGljIEF0dHJpYnV0ZSBNYXRjaGluZ1wiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZkhlYWxBY3Rpb25FdmVudCB7XG4gIHR5cGU6IFNlbGZIZWFsQWN0aW9uO1xuICBpZDogc3RyaW5nO1xuICBoZWFsZWRMb2NhdG9yOiBzdHJpbmc7XG4gIHRlc3RTdGVwSWQ/OiBzdHJpbmc7IC8vIHRlc3Qgc3RlcCBpZCBmcm9tIHRoZSB0ZXN0IGNhc2Vcbn1cblxuZXhwb3J0IHR5cGUgU2VsZkhlYWxBY3Rpb24gPSAnYWNjZXB0JyB8ICdyZWplY3QnIHwgJ21vZGlmeS1hY2NlcHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2ljU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgdHlwZTogJ2Jhc2ljJztcbiAgc3ViU3RlcHM6IFN1YlN0ZXBbXTtcbiAgc2VsZkhlYWxBbmFseXNpcz86IFNlbGZIZWFsQW5hbHlzaXNEYXRhO1xuICBzZWxmSGVhbGVkPzogYm9vbGVhbjsgLy8gSW5kaWNhdGVzIGlmIHNlbGYtaGVhbGluZyB3YXMgYXBwbGllZFxuICBzZWxmSGVhbER1cmF0aW9uPzogbnVtYmVyOyAvLyBEdXJhdGlvbiBvZiBzZWxmLWhlYWxpbmcgcHJvY2Vzc1xuICBuZXN0ZWRTdGVwcz86IEV4ZWN1dGlvblN0ZXBDb25maWdbXTsgLy8gbmVzdGVkIGNoaWxkIHN0ZXBzIGZvciByZWN1cnNpdmUgcmVuZGVyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcEdyb3VwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnc3RlcC1ncm91cCc7XG4gIGdyb3VwTmFtZTogc3RyaW5nOyAvLyBlLmcuLCBcIk5hdmlnYXRpb25cIiwgXCJDaGVja291dCBmbG93XCJcbiAgc3RlcHM6IEV4ZWN1dGlvblN0ZXBDb25maWdbXTsgLy8gbmVzdGVkIHN0ZXBzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9vcFN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHR5cGU6ICdsb29wJztcbiAgbG9vcFR5cGU/OiAnZm9yJyB8ICd3aGlsZSc7XG4gIGl0ZXJhdGlvbnM6IExvb3BJdGVyYXRpb25bXTtcbiAgc2VsZWN0ZWRJdGVyYXRpb25JZD86IHN0cmluZzsgLy8gd2hpY2ggaXRlcmF0aW9uIHRvIGRpc3BsYXlcbiAgZGVmYXVsdEl0ZXJhdGlvbj86ICdmaXJzdCcgfCAnbGFzdCc7IC8vIGRlZmF1bHQgaXRlcmF0aW9uIHRvIHNob3dcbiAgbmVzdGVkU3RlcHM/OiBFeGVjdXRpb25TdGVwQ29uZmlnW107IC8vIHN0ZXBzIG5lc3RlZCB3aXRoaW4gdGhlIGxvb3BcbiAgc2hvd1ZpZXdBbGxJdGVyYXRpb25zPzogYm9vbGVhbjtcbiAgc3ViU3RlcHM/OiBTdWJTdGVwW107XG4gIGl0ZXJhdGlvbkRhdGE/OiBhbnk7IC8vIGRhdGEgZm9yIGVhY2ggaXRlcmF0aW9uIGluIGxpdmUgZXhlY3V0aW9uXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZGl0aW9uU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgdHlwZTogJ2NvbmRpdGlvbic7XG4gIGNvbmRpdGlvblRleHQ6IHN0cmluZzsgLy8gZS5nLiwgXCJpZiB1c2VyIHR5cGUgaXMgJ1ByZW1pdW0nXCJcbiAgYnJhbmNoZXM6IENvbmRpdGlvbkJyYW5jaFtdO1xuICBuZXN0ZWRTdGVwcz86IEV4ZWN1dGlvblN0ZXBDb25maWdbXTsgLy8gbmVzdGVkIGNoaWxkIHN0ZXBzIGZvciByZWN1cnNpdmUgcmVuZGVyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmFpbGVkU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgdHlwZTogJ2ZhaWxlZCc7XG4gIHN1YlN0ZXBzOiBTdWJTdGVwW107XG4gIGZhaWx1cmVEZXRhaWxzOiBGYWlsdXJlRGV0YWlscztcbiAgcmVhc29uaW5nPzogc3RyaW5nW107XG4gIGNvbmZpZGVuY2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlBZ2VudEFjdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHR5cGU6ICdleHRyYWN0JyB8ICd2YWxpZGF0ZScgfCAnQUlfQUdFTlRfQUNUSU9OJyB8ICdUWVBFJyB8ICdDTElDSyc7XG4gIHN0YXR1czogU3RlcFN0YXR1cztcbiAgY29uZmlkZW5jZT86IG51bWJlcjsgLy8gMC0xMDBcbiAgZHVyYXRpb246IG51bWJlcjtcbiAgcmVhc29uaW5nPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJQWdlbnRTdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnYWktYWdlbnQnO1xuICBwcm9tcHQ6IHN0cmluZztcbiAgb3B0aW1pemVkUnVuPzogYm9vbGVhbjtcbiAgYWN0aW9uQ291bnQ/OiBudW1iZXI7XG4gIGFjdGlvbnM6IEFJQWdlbnRBY3Rpb25bXTtcbiAgc2VsZWN0ZWRUYWI/OiAnYWN0aW9uLXRyYWNlJyB8ICdwbGFubmVyLXRpbWVsaW5lJyB8ICdhaS1yZWFzb25pbmcnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJQWN0aW9uU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgdHlwZTogJ2FpLWFjdGlvbic7XG4gIGFjdGlvbkNvdW50PzogbnVtYmVyO1xuICBhY3Rpb25OYW1lPzogJ2FpX3RleHRfdmVyaWZpY2F0aW9uJyB8ICdhaV9hc2snIHwgJ2FpX2RvY3VtZW50X2FzaycgfCAnYWlfdmVyaWZ5JztcbiAgYWN0aW9uczogQUlBZ2VudEFjdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaUFzc2VydGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHN0YXR1czogJ3Bhc3NlZCcgfCAnZmFpbGVkJztcbiAgZXhwZWN0ZWQ6IHN0cmluZztcbiAgYWN0dWFsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgdHlwZTogJ2FwaSc7XG4gIG1ldGhvZDogc3RyaW5nOyAvLyBHRVQsIFBPU1QsIFBVVCwgREVMRVRFLCBldGMuXG4gIGVuZHBvaW50OiBzdHJpbmc7XG4gIHN0YXR1c0NvZGU6IG51bWJlcjtcbiAgcmVzcG9uc2VUaW1lOiBudW1iZXI7IC8vIGluIG1pbGxpc2Vjb25kc1xuICByZXF1ZXN0Qm9keT86IGFueTtcbiAgcmVzcG9uc2VCb2R5PzogYW55O1xuICByZXF1ZXN0SGVhZGVycz86IGFueTtcbiAgcmVzcG9uc2VIZWFkZXJzPzogYW55O1xuICBhc3NlcnRpb25zPzogQXBpQXNzZXJ0aW9uW107XG4gIGluaXRpYWxBY3Rpb25zPzogU3ViU3RlcFtdOyAvLyBBY3Rpb25zIGJlZm9yZSB0aGUgQVBJIGNhbGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlRG93bmxvYWRTdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnZmlsZS1kb3dubG9hZCc7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIGZpbGVUeXBlOiBzdHJpbmc7IC8vIFBERiwgQ1NWLCBldGMuXG4gIGZpbGVTaXplPzogc3RyaW5nOyAvLyBlLmcuLCBcIjIuNCBNQlwiXG4gIGZpbGVQYXRoPzogc3RyaW5nO1xuICBkb3dubG9hZGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dHJhY3RlZEZpZWxkIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgY29uZmlkZW5jZTogbnVtYmVyOyAvLyAwLTEwMFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZlcmlmaWNhdGlvbkNoZWNrIHtcbiAgaWQ6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgc3RhdHVzOiAncGFzcycgfCAnZmFpbCc7XG4gIGV4cGVjdGVkOiBzdHJpbmc7XG4gIGFjdHVhbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgdHlwZTogJ2RvY3VtZW50LXZlcmlmaWNhdGlvbic7XG4gIGRvY3VtZW50U2NyZWVuc2hvdD86IHN0cmluZzsgLy8gVVJMIG9yIGJhc2U2NFxuICBleHRyYWN0ZWRGaWVsZHM6IEV4dHJhY3RlZEZpZWxkW107XG4gIHZlcmlmaWNhdGlvbkNoZWNrczogVmVyaWZpY2F0aW9uQ2hlY2tbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXZlU3ViU3RlcCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZzsgLy8gVGV4dCBmcm9tIHNvY2tldFxuICBpc1J1bm5pbmc6IGJvb2xlYW47IC8vIHRydWUgPSBzaG93IGxvYWRlciwgZmFsc2UgPSBzaG93IGljb25cbiAgZHVyYXRpb24/OiBudW1iZXI7IC8vIGluIHNlY29uZHNcbiAgc3RhdHVzOiAncGFzc2VkJyB8ICdmYWlsZWQnIHwgJ3BlbmRpbmcnIHwgJ3N1Y2Nlc3MnIHwgJ2ZhaWx1cmUnIHwgJ3NraXBwZWQnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpdmVFeGVjdXRpb25TdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICB0eXBlOiAnbGl2ZS1leGVjdXRpb24nO1xuICBzdWJTdGVwczogTGl2ZVN1YlN0ZXBbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYlF1ZXJ5UmVzdWx0IHtcbiAgZGF0YTogYW55W107XG4gIHF1ZXJ5OiBzdHJpbmc7XG4gIGV4ZWN1dGVkQXQ/OiBzdHJpbmc7XG4gIGR1cmF0aW9uPzogbnVtYmVyOyAvLyBpbiBzZWNvbmRzXG4gIFtrZXk6IHN0cmluZ106IGFueTsgLy8gRm9yIGR5bmFtaWMga2V5cyBsaWtlIFwiRGVtb191c2VyXCJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYkFzc2VydGlvblJlc3VsdCB7XG4gIHZhcmlhYmxlTmFtZTogc3RyaW5nO1xuICBqc29uUGF0aDogc3RyaW5nO1xuICBleHBlY3RlZFZhbHVlOiBhbnk7XG4gIGFjdHVhbFZhbHVlOiBhbnk7XG4gIHZlcmlmaWNhdGlvblR5cGU6IHN0cmluZztcbiAgZXhwZWN0ZWRUeXBlOiBzdHJpbmc7XG4gIHBhc3NlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYlRlc3RSZXN1bHQge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICByZXN1bHRzOiB7IFtrZXk6IHN0cmluZ106IERiUXVlcnlSZXN1bHQgfTtcbiAgYXNzZXJ0aW9uUmVzdWx0czogRGJBc3NlcnRpb25SZXN1bHRbXTtcbiAgYWxsQXNzZXJ0aW9uc1Bhc3NlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYlZlcmlmaWNhdGlvblN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHR5cGU6ICdkYi12ZXJpZmljYXRpb24nO1xuICBkYlRlc3RSZXN1bHQ6IERiVGVzdFJlc3VsdDtcbiAgZGJDb25maWc/OiB7XG4gICAgbmFtZTogc3RyaW5nOyAvLyBFbnZpcm9ubWVudCBuYW1lXG4gICAgZGJUeXBlOiBzdHJpbmc7IC8vIERhdGFiYXNlIHR5cGUgKE15U1FMLCBTUUxTZXJ2ZXIsIGV0Yy4pXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlcmVxdWlzaXRlSXRlbSB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7IC8vIGUuZy4sIFwiUHJlcmVxdWlzaXRlIDE6IExvZ2luIGZsb3dcIlxuICBzdGF0dXM6IFN0ZXBTdGF0dXM7XG4gIGR1cmF0aW9uOiBudW1iZXI7IC8vIGluIHNlY29uZHNcbiAgc3RlcENvbmZpZz86IEV4ZWN1dGlvblN0ZXBDb25maWc7IC8vIE9wdGlvbmFsOiBmdWxsIHN0ZXAgY29uZmlnIHRvIHZpZXcgZGV0YWlsc1xufVxuXG5leHBvcnQgdHlwZSBFeGVjdXRpb25TdGVwQ29uZmlnID1cbiAgfCBCYXNpY1N0ZXBDb25maWdcbiAgfCBTdGVwR3JvdXBDb25maWdcbiAgfCBMb29wU3RlcENvbmZpZ1xuICB8IENvbmRpdGlvblN0ZXBDb25maWdcbiAgfCBGYWlsZWRTdGVwQ29uZmlnXG4gIHwgQUlBZ2VudFN0ZXBDb25maWdcbiAgfCBBSUFjdGlvblN0ZXBDb25maWdcbiAgfCBBcGlTdGVwQ29uZmlnXG4gIHwgRmlsZURvd25sb2FkU3RlcENvbmZpZ1xuICB8IERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbmZpZ1xuICB8IExpdmVFeGVjdXRpb25TdGVwQ29uZmlnXG4gIHwgRGJWZXJpZmljYXRpb25TdGVwQ29uZmlnO1xuIl19