@eo-sdk/client 11.14.32 → 11.14.34

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 (20) hide show
  1. package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
  2. package/app/eo-framework/list-container/list-container.component.d.ts.map +1 -1
  3. package/app/eo-framework/object-details/object-details.component.d.ts +2 -0
  4. package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
  5. package/app/eo-framework/object-details/viewer/xrechnung-viewer.component.d.ts +7 -2
  6. package/app/eo-framework/object-details/viewer/xrechnung-viewer.component.d.ts.map +1 -1
  7. package/app/eo-framework/object-details/viewer/xrechnung-viewer.service.d.ts +6 -1
  8. package/app/eo-framework/object-details/viewer/xrechnung-viewer.service.d.ts.map +1 -1
  9. package/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.d.ts +1 -3
  10. package/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.d.ts.map +1 -1
  11. package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
  12. package/esm2022/app/eo-framework/list-container/list-container.component.mjs +10 -2
  13. package/esm2022/app/eo-framework/object-details/object-details.component.mjs +19 -5
  14. package/esm2022/app/eo-framework/object-details/viewer/xrechnung-viewer.component.mjs +20 -6
  15. package/esm2022/app/eo-framework/object-details/viewer/xrechnung-viewer.service.mjs +37 -25
  16. package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +16 -31
  17. package/fesm2022/eo-sdk-client.mjs +85 -52
  18. package/fesm2022/eo-sdk-client.mjs.map +1 -1
  19. package/misc/scripts/zipdist.js +14 -11
  20. package/package.json +11 -4
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, Input, ViewChild, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "./xrechnung-viewer.service";
4
4
  import * as i2 from "@angular/platform-browser";
@@ -13,6 +13,11 @@ export class XRechnungViewerComponent {
13
13
  this.el = el;
14
14
  this.renderer = renderer;
15
15
  this.useVersion = false;
16
+ /**
17
+ * Emitted when the loaded content is not a supported e-invoice format.
18
+ * The host then falls back to the default (Monaco) viewer.
19
+ */
20
+ this.unsupportedFormat = new EventEmitter();
16
21
  this.isLoading = this.xmlService.loadingIndicator;
17
22
  this.sanitizedContent = null;
18
23
  this.previewURL = null;
@@ -47,6 +52,12 @@ export class XRechnungViewerComponent {
47
52
  try {
48
53
  const fullPreviewUrl = `${location.origin}${this.previewURL}`;
49
54
  const invoiceHtml = await this.xmlService.loadAndDisplayXML(fullPreviewUrl);
55
+ if (invoiceHtml == null) {
56
+ // Not a supported e-invoice format (e.g. Polish KSeF "Faktura"):
57
+ // let the host fall back to the default (Monaco) viewer.
58
+ this.unsupportedFormat.emit();
59
+ return;
60
+ }
50
61
  this.updateIframeContent(invoiceHtml);
51
62
  }
52
63
  catch (error) {
@@ -54,14 +65,15 @@ export class XRechnungViewerComponent {
54
65
  }
55
66
  }
56
67
  updateIframeContent(content) {
57
- if (!this.isViewInitialized || !this.outputFrame) {
58
- console.warn('View is not initialized or iframe reference is missing.');
68
+ if (!this.isViewInitialized) {
69
+ console.warn('View is not initialized.');
59
70
  return;
60
71
  }
61
72
  try {
73
+ // Content is injected through the iframe's [srcdoc] binding, so the
74
+ // ViewChild reference is not required here - detectChanges() renders it.
62
75
  this.sanitizedContent = this.domSanitizer.bypassSecurityTrustHtml(content);
63
76
  this.cdr.detectChanges();
64
- console.log('Invoice successfully rendered in iframe.');
65
77
  }
66
78
  catch (error) {
67
79
  console.error('Failed to update iframe content:', error);
@@ -74,7 +86,7 @@ export class XRechnungViewerComponent {
74
86
  }
75
87
  }
76
88
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: XRechnungViewerComponent, deps: [{ token: i1.XmlProcessorService }, { token: i2.DomSanitizer }, { token: i3.DmsService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
77
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: XRechnungViewerComponent, selector: "eo-xrechnung-viewer", inputs: { useVersion: "useVersion", dmsObject: "dmsObject" }, viewQueries: [{ propertyName: "outputFrame", first: true, predicate: ["outputFrame"], descendants: true }], ngImport: i0, template: `
89
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: XRechnungViewerComponent, selector: "eo-xrechnung-viewer", inputs: { useVersion: "useVersion", dmsObject: "dmsObject" }, outputs: { unsupportedFormat: "unsupportedFormat" }, viewQueries: [{ propertyName: "outputFrame", first: true, predicate: ["outputFrame"], descendants: true }], ngImport: i0, template: `
78
90
  @if (isLoading()) {
79
91
  <eo-loading-spinner></eo-loading-spinner>
80
92
  } @else {
@@ -93,10 +105,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
93
105
  `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:grid;grid-template-columns:1fr;grid-auto-flow:row;grid-template-areas:\"content\";align-items:center;height:100%;justify-content:center}eo-loading-spinner{display:flex;justify-content:center;align-items:center}iframe{grid-area:content;width:100%;height:100%;border:1px solid #ccc}\n"] }]
94
106
  }], ctorParameters: () => [{ type: i1.XmlProcessorService }, { type: i2.DomSanitizer }, { type: i3.DmsService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { useVersion: [{
95
107
  type: Input
108
+ }], unsupportedFormat: [{
109
+ type: Output
96
110
  }], outputFrame: [{
97
111
  type: ViewChild,
98
112
  args: ['outputFrame']
99
113
  }], dmsObject: [{
100
114
  type: Input
101
115
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHJlY2hudW5nLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZGV0YWlscy92aWV3ZXIveHJlY2hudW5nLXZpZXdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsS0FBSyxFQUVMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBd0N2QixNQUFNLE9BQU8sd0JBQXdCO0lBVW5DLFlBQ1UsVUFBK0IsRUFDL0IsWUFBMEIsRUFDMUIsVUFBc0IsRUFDdEIsR0FBc0IsRUFDdEIsRUFBYyxFQUNkLFFBQW1CO1FBTG5CLGVBQVUsR0FBVixVQUFVLENBQXFCO1FBQy9CLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFmcEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUc1QixjQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUM3QyxxQkFBZ0IsR0FBb0IsSUFBSSxDQUFDO1FBRWpDLGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBQ2pDLHNCQUFpQixHQUFHLEtBQUssQ0FBQztJQVM5QixDQUFDO0lBRUwsSUFDSSxTQUFTLENBQUMsSUFBc0I7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDckMsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEVBQUMsRUFBRSxFQUFFLElBQUksRUFBQyxHQUFHLElBQUksQ0FB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bEIsS0FBSztnQkFDNEIsV0FBVztzQkFBNUMsU0FBUzt1QkFBQyxhQUFhO2dCQWtCcEIsU0FBUztzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RvbVNhbml0aXplciwgU2FmZUh0bWx9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtEbXNPYmplY3QsIERtc1NlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1htbFByb2Nlc3NvclNlcnZpY2V9IGZyb20gJy4veHJlY2hudW5nLXZpZXdlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8teHJlY2hudW5nLXZpZXdlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgICAgPGVvLWxvYWRpbmctc3Bpbm5lcj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxpZnJhbWUgI291dHB1dEZyYW1lIFthdHRyLnNyY2RvY109XCJzYW5pdGl6ZWRDb250ZW50XCI+PC9pZnJhbWU+XG4gICAgfVxuICBgLFxuICBzdHlsZXM6IGBcbiAgICA6aG9zdCB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICBncmlkLWF1dG8tZmxvdzogcm93O1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogJ2NvbnRlbnQnO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgIGVvLWxvYWRpbmctc3Bpbm5lciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIGlmcmFtZSB7XG4gICAgICBncmlkLWFyZWE6IGNvbnRlbnQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgfVxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgWFJlY2hudW5nVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHVzZVZlcnNpb24gPSBmYWxzZTtcbiAgQFZpZXdDaGlsZCgnb3V0cHV0RnJhbWUnKSBwcml2YXRlIG91dHB1dEZyYW1lITogRWxlbWVudFJlZjxIVE1MSUZyYW1lRWxlbWVudD47XG5cbiAgaXNMb2FkaW5nID0gdGhpcy54bWxTZXJ2aWNlLmxvYWRpbmdJbmRpY2F0b3I7XG4gIHNhbml0aXplZENvbnRlbnQ6IFNhZmVIdG1sIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBwcmV2aWV3VVJMOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBpc1ZpZXdJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgeG1sU2VydmljZTogWG1sUHJvY2Vzc29yU2VydmljZSxcbiAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHByaXZhdGUgZG1zU2VydmljZTogRG1zU2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7IH1cblxuICBASW5wdXQoKVxuICBzZXQgZG1zT2JqZWN0KGl0ZW06IERtc09iamVjdCB8IG51bGwpIHtcbiAgICB0aGlzLnNhbml0aXplZENvbnRlbnQgPSBudWxsO1xuICAgIGlmICghaXRlbT8uY29udGVudD8uY29udGVudHM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHtpZCwgdHlwZX0gPSBpdGVtLmNvbnRlbnQ7XG4gICAgdGhpcy5wcmV2aWV3VVJMID0gdGhpcy5kbXNTZXJ2aWNlLmdldFByZXZpZXcoXG4gICAgICBpZCxcbiAgICAgIHR5cGUsXG4gICAgICB0aGlzLnVzZVZlcnNpb24gPyBpdGVtLnZlcnNpb24gOiBudWxsXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmlzVmlld0luaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLmxvYWRBbmRSZW5kZXJQcmV2aWV3KCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNWaWV3SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIGlmICh0aGlzLnByZXZpZXdVUkwpIHtcbiAgICAgIHRoaXMubG9hZEFuZFJlbmRlclByZXZpZXcoKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnRTZWN0aW9uID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoJ3NlY3Rpb25bcm9sZT1cInRhYnBhbmVsXCJdJyk7XG4gICAgaWYgKHBhcmVudFNlY3Rpb24pIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocGFyZW50U2VjdGlvbiwgJ292ZXJmbG93JywgJ2hpZGRlbicsIDEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZEFuZFJlbmRlclByZXZpZXcoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLnByZXZpZXdVUkwpIHtcbiAgICAgIGNvbnNvbGUud2FybignUHJldmlldyBVUkwgaXMgbm90IGF2YWlsYWJsZS4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZnVsbFByZXZpZXdVcmwgPSBgJHtsb2NhdGlvbi5vcmlnaW59JHt0aGlzLnByZXZpZXdVUkx9YDtcbiAgICAgIGNvbnN0IGludm9pY2VIdG1sID0gYXdhaXQgdGhpcy54bWxTZXJ2aWNlLmxvYWRBbmREaXNwbGF5WE1MKGZ1bGxQcmV2aWV3VXJsKTtcbiAgICAgIHRoaXMudXBkYXRlSWZyYW1lQ29udGVudChpbnZvaWNlSHRtbCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGFuZCByZW5kZXIgcHJldmlldzonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVJZnJhbWVDb250ZW50KGNvbnRlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1ZpZXdJbml0aWFsaXplZCB8fCAhdGhpcy5vdXRwdXRGcmFtZSkge1xuICAgICAgY29uc29sZS53YXJuKCdWaWV3IGlzIG5vdCBpbml0aWFsaXplZCBvciBpZnJhbWUgcmVmZXJlbmNlIGlzIG1pc3NpbmcuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc2FuaXRpemVkQ29udGVudCA9IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGNvbnRlbnQpO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgY29uc29sZS5sb2coJ0ludm9pY2Ugc3VjY2Vzc2Z1bGx5IHJlbmRlcmVkIGluIGlmcmFtZS4nKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHVwZGF0ZSBpZnJhbWUgY29udGVudDonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBjb25zdCBwYXJlbnRTZWN0aW9uID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoJ3NlY3Rpb25bcm9sZT1cInRhYnBhbmVsXCJdJyk7XG4gICAgaWYgKHBhcmVudFNlY3Rpb24pIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUocGFyZW50U2VjdGlvbiwgJ292ZXJmbG93Jyk7XG4gICAgfVxuICB9XG59XG4iXX0=
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHJlY2hudW5nLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZGV0YWlscy92aWV3ZXIveHJlY2hudW5nLXZpZXdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUF3Q3ZCLE1BQU0sT0FBTyx3QkFBd0I7SUFlbkMsWUFDVSxVQUErQixFQUMvQixZQUEwQixFQUMxQixVQUFzQixFQUN0QixHQUFzQixFQUN0QixFQUFjLEVBQ2QsUUFBbUI7UUFMbkIsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFDL0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQXBCcEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUM1Qjs7O1dBR0c7UUFDTyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBR3ZELGNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDO1FBQzdDLHFCQUFnQixHQUFvQixJQUFJLENBQUM7UUFFakMsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFDakMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO0lBUzlCLENBQUM7SUFFTCxJQUNJLFNBQVMsQ0FBQyxJQUFzQjtRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FB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QUFDO0lBQ0gsQ0FBQzs4R0FsR1Usd0JBQXdCO2tHQUF4Qix3QkFBd0IsMFJBakN6Qjs7Ozs7O0dBTVQ7OzJGQTJCVSx3QkFBd0I7a0JBbkNwQyxTQUFTOytCQUNFLHFCQUFxQixZQUNyQjs7Ozs7O0dBTVQsbUJBeUJnQix1QkFBdUIsQ0FBQyxNQUFNOzZOQUd0QyxVQUFVO3NCQUFsQixLQUFLO2dCQUtJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDMkIsV0FBVztzQkFBNUMsU0FBUzt1QkFBQyxhQUFhO2dCQWtCcEIsU0FBUztzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEb21TYW5pdGl6ZXIsIFNhZmVIdG1sfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7RG1zT2JqZWN0LCBEbXNTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtYbWxQcm9jZXNzb3JTZXJ2aWNlfSBmcm9tICcuL3hyZWNobnVuZy12aWV3ZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLXhyZWNobnVuZy12aWV3ZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICAgIDxlby1sb2FkaW5nLXNwaW5uZXI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8aWZyYW1lICNvdXRwdXRGcmFtZSBbYXR0ci5zcmNkb2NdPVwic2FuaXRpemVkQ29udGVudFwiPjwvaWZyYW1lPlxuICAgIH1cbiAgYCxcbiAgc3R5bGVzOiBgXG4gICAgOmhvc3Qge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgZ3JpZC1hdXRvLWZsb3c6IHJvdztcbiAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdjb250ZW50JztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICBlby1sb2FkaW5nLXNwaW5uZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICBpZnJhbWUge1xuICAgICAgZ3JpZC1hcmVhOiBjb250ZW50O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgIH1cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFhSZWNobnVuZ1ZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSB1c2VWZXJzaW9uID0gZmFsc2U7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGxvYWRlZCBjb250ZW50IGlzIG5vdCBhIHN1cHBvcnRlZCBlLWludm9pY2UgZm9ybWF0LlxuICAgKiBUaGUgaG9zdCB0aGVuIGZhbGxzIGJhY2sgdG8gdGhlIGRlZmF1bHQgKE1vbmFjbykgdmlld2VyLlxuICAgKi9cbiAgQE91dHB1dCgpIHVuc3VwcG9ydGVkRm9ybWF0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAVmlld0NoaWxkKCdvdXRwdXRGcmFtZScpIHByaXZhdGUgb3V0cHV0RnJhbWUhOiBFbGVtZW50UmVmPEhUTUxJRnJhbWVFbGVtZW50PjtcblxuICBpc0xvYWRpbmcgPSB0aGlzLnhtbFNlcnZpY2UubG9hZGluZ0luZGljYXRvcjtcbiAgc2FuaXRpemVkQ29udGVudDogU2FmZUh0bWwgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHByZXZpZXdVUkw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGlzVmlld0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB4bWxTZXJ2aWNlOiBYbWxQcm9jZXNzb3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHJpdmF0ZSBkbXNTZXJ2aWNlOiBEbXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHsgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkbXNPYmplY3QoaXRlbTogRG1zT2JqZWN0IHwgbnVsbCkge1xuICAgIHRoaXMuc2FuaXRpemVkQ29udGVudCA9IG51bGw7XG4gICAgaWYgKCFpdGVtPy5jb250ZW50Py5jb250ZW50cz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qge2lkLCB0eXBlfSA9IGl0ZW0uY29udGVudDtcbiAgICB0aGlzLnByZXZpZXdVUkwgPSB0aGlzLmRtc1NlcnZpY2UuZ2V0UHJldmlldyhcbiAgICAgIGlkLFxuICAgICAgdHlwZSxcbiAgICAgIHRoaXMudXNlVmVyc2lvbiA/IGl0ZW0udmVyc2lvbiA6IG51bGxcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuaXNWaWV3SW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMubG9hZEFuZFJlbmRlclByZXZpZXcoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc1ZpZXdJbml0aWFsaXplZCA9IHRydWU7XG4gICAgaWYgKHRoaXMucHJldmlld1VSTCkge1xuICAgICAgdGhpcy5sb2FkQW5kUmVuZGVyUHJldmlldygpO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudFNlY3Rpb24gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnc2VjdGlvbltyb2xlPVwidGFicGFuZWxcIl0nKTtcbiAgICBpZiAocGFyZW50U2VjdGlvbikge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShwYXJlbnRTZWN0aW9uLCAnb3ZlcmZsb3cnLCAnaGlkZGVuJywgMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkQW5kUmVuZGVyUHJldmlldygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMucHJldmlld1VSTCkge1xuICAgICAgY29uc29sZS53YXJuKCdQcmV2aWV3IFVSTCBpcyBub3QgYXZhaWxhYmxlLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBmdWxsUHJldmlld1VybCA9IGAke2xvY2F0aW9uLm9yaWdpbn0ke3RoaXMucHJldmlld1VSTH1gO1xuICAgICAgY29uc3QgaW52b2ljZUh0bWwgPSBhd2FpdCB0aGlzLnhtbFNlcnZpY2UubG9hZEFuZERpc3BsYXlYTUwoZnVsbFByZXZpZXdVcmwpO1xuICAgICAgaWYgKGludm9pY2VIdG1sID09IG51bGwpIHtcbiAgICAgICAgLy8gTm90IGEgc3VwcG9ydGVkIGUtaW52b2ljZSBmb3JtYXQgKGUuZy4gUG9saXNoIEtTZUYgXCJGYWt0dXJhXCIpOlxuICAgICAgICAvLyBsZXQgdGhlIGhvc3QgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IChNb25hY28pIHZpZXdlci5cbiAgICAgICAgdGhpcy51bnN1cHBvcnRlZEZvcm1hdC5lbWl0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlSWZyYW1lQ29udGVudChpbnZvaWNlSHRtbCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGFuZCByZW5kZXIgcHJldmlldzonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVJZnJhbWVDb250ZW50KGNvbnRlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1ZpZXdJbml0aWFsaXplZCkge1xuICAgICAgY29uc29sZS53YXJuKCdWaWV3IGlzIG5vdCBpbml0aWFsaXplZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgLy8gQ29udGVudCBpcyBpbmplY3RlZCB0aHJvdWdoIHRoZSBpZnJhbWUncyBbc3JjZG9jXSBiaW5kaW5nLCBzbyB0aGVcbiAgICAgIC8vIFZpZXdDaGlsZCByZWZlcmVuY2UgaXMgbm90IHJlcXVpcmVkIGhlcmUgLSBkZXRlY3RDaGFuZ2VzKCkgcmVuZGVycyBpdC5cbiAgICAgIHRoaXMuc2FuaXRpemVkQ29udGVudCA9IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGNvbnRlbnQpO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gdXBkYXRlIGlmcmFtZSBjb250ZW50OicsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGNvbnN0IHBhcmVudFNlY3Rpb24gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnc2VjdGlvbltyb2xlPVwidGFicGFuZWxcIl0nKTtcbiAgICBpZiAocGFyZW50U2VjdGlvbikge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShwYXJlbnRTZWN0aW9uLCAnb3ZlcmZsb3cnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -107,39 +107,51 @@ export class XmlProcessorService {
107
107
  throw this.#displayError('Exception', errMessage);
108
108
  })));
109
109
  }
110
+ /**
111
+ * Picks the matching XSLT transformation for the given XML content.
112
+ * Returns `null` when the XML is not one of the supported e-invoice formats
113
+ * (CII, UBL Invoice/CreditNote, CIO or ZUGFeRD) - e.g. a Polish KSeF "Faktura".
114
+ */
115
+ #resolveTransform(content, parser) {
116
+ for (const key in parser.parse(content)) {
117
+ if (key.includes('CrossIndustryInvoice')) {
118
+ return this.#transformAndDisplayCII(content);
119
+ }
120
+ else if (key.includes('SCRDMCCBDACIOMessageStructure')) {
121
+ return this.#transformAndDisplayCIO(content);
122
+ }
123
+ else if (key.includes('Invoice')) {
124
+ return this.#transformAndDisplayUBL(content);
125
+ }
126
+ else if (key.includes('CreditNote')) {
127
+ return this.#transformAndDisplayUBLCN(content);
128
+ }
129
+ else if (key.includes('CrossIndustryDocument')) {
130
+ return this.#transformAndDisplayZF1(content);
131
+ }
132
+ }
133
+ return null;
134
+ }
135
+ /**
136
+ * Loads the XML and transforms it into the e-invoice HTML representation.
137
+ * Resolves to `null` when the format is not a supported e-invoice, so the
138
+ * caller can fall back to the default (Monaco) viewer.
139
+ */
110
140
  async loadAndDisplayXML(xmlUrl) {
111
141
  const parser = new XMLParser();
112
142
  this.#loading.set(true);
113
143
  try {
114
- return await firstValueFrom(this.httpClient.get(xmlUrl, { responseType: 'text' }).pipe(map((content) => {
115
- for (const key in parser.parse(content)) {
116
- if (key.includes('CrossIndustryInvoice')) {
117
- return this.#transformAndDisplayCII(content);
118
- }
119
- else if (key.includes('SCRDMCCBDACIOMessageStructure')) {
120
- return this.#transformAndDisplayCIO(content);
121
- }
122
- else if (key.includes('Invoice')) {
123
- return this.#transformAndDisplayUBL(content);
124
- }
125
- else if (key.includes('CreditNote')) {
126
- return this.#transformAndDisplayUBLCN(content);
127
- }
128
- else if (key.includes('CrossIndustryDocument')) {
129
- return this.#transformAndDisplayZF1(content);
130
- }
131
- }
132
- return of(this.#displayError('File format not recognized', 'Is it a UBL 2.1 or UN/CEFACT 2016b XML file or PDF you are trying to open?'));
133
- }), finalize(() => this.#loading.set(false)), catchError((error) => {
134
- const errMessage = error?.message ? error.message : error;
135
- throw this.#displayError('Exception', errMessage);
136
- })));
144
+ const content = await firstValueFrom(this.httpClient.get(xmlUrl, { responseType: 'text' }));
145
+ const transform = this.#resolveTransform(content, parser);
146
+ return transform ? await transform : null;
137
147
  }
138
148
  catch (error) {
139
149
  const errMessage = error instanceof Error ? error.message : String(error);
140
- this.#loading.set(false);
141
150
  throw this.#displayError('Exception', errMessage);
142
151
  }
152
+ finally {
153
+ this.#loading.set(false);
154
+ }
143
155
  }
144
156
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: XmlProcessorService, deps: [{ token: i1.HttpClient }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
145
157
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: XmlProcessorService, providedIn: 'root' }); }
@@ -150,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
150
162
  providedIn: 'root'
151
163
  }]
152
164
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.TranslateService }] });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHJlY2hudW5nLXZpZXdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvdmlld2VyL3hyZWNobnVuZy12aWV3ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7OztBQUt4RixNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFFBQVEsQ0FBMEI7SUFHbEMsWUFBb0IsVUFBc0IsRUFBVSxnQkFBa0M7UUFBbEUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFIdEYsYUFBUSxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsQyxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRTRDLENBQUM7SUFFM0Y7O09BRUc7SUFDSyx3QkFBd0IsQ0FBQyxJQUFZO1FBQzNDLE1BQU0sbUJBQW1CLEdBQUcsc0NBQXNDLElBQUksT0FBTyxDQUFDO1FBQzlFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLENBQ2xELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCwyRkFBMkY7WUFDM0YsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMs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LENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUMxRCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQyxDQUNILENBQ0YsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQWMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sVUFBVSxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDOzhHQWpMVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiZGVjbGFyZSBjb25zdCBTYXhvbkpTOiBhbnk7IC8vIERlY2xhcmUgU2F4b25KUyBnbG9iYWxseVxuXG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SW5qZWN0YWJsZSwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1hNTFBhcnNlcn0gZnJvbSAnZmFzdC14bWwtcGFyc2VyJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgZmluYWxpemUsIGZpcnN0VmFsdWVGcm9tLCBmb3JrSm9pbiwgbWFwLCBvZiwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgWG1sUHJvY2Vzc29yU2VydmljZSB7XG5cbiAgI2xvYWRpbmcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBsb2FkaW5nSW5kaWNhdG9yID0gdGhpcy4jbG9hZGluZy5hc1JlYWRvbmx5KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHsgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyBYUmVjaG51bmctc3BlY2lmaWMgdHJhbnNsYXRpb25zIGRpcmVjdGx5IGZyb20gdGhlIHByb3ZpZGVkIGZpbGUgcGF0aC5cbiAgICovXG4gIHByaXZhdGUgZ2V0WFJlY2hudW5nVHJhbnNsYXRpb25zKGxhbmc6IHN0cmluZykge1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uRmlsZVBhdGggPSBgYXNzZXRzL19kZWZhdWx0L2FwaS94cmVjaG51bmcvaTE4bi8ke2xhbmd9Lmpzb25gO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KHRyYW5zbGF0aW9uRmlsZVBhdGgpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgLy8gSWYgdGhlIGxhbmd1YWdlIGlzIGEgc3ViLWxhbmd1YWdlIChlLmcuLCBcImRlLUNIXCIpLCB0cnkgbG9hZGluZyB0aGUgYmFzZSBsYW5ndWFnZSAoXCJkZVwiKS5cbiAgICAgICAgcmV0dXJuIGxhbmcubGVuZ3RoID4gMiA/IHRoaXMuZ2V0WFJlY2hudW5nVHJhbnNsYXRpb25zKGxhbmcuc3Vic3RyaW5nKDAsIDIpKSA6IG9mKHt9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gICNkaXNwbGF5RXJyb3IobWVzc2FnZTogc3RyaW5nLCBkZXRhaWw6IHN0cmluZykge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgdGl0bGU6ICdFcnJvcicsXG4gICAgICBtZXNzYWdlLFxuICAgICAgZGV0YWlsXG4gICAgfTtcbiAgfVxuXG4gICNuYW1lc3BhY2VSZXNvbHZlcihwcmVmaXg6IHN0cmluZyB8IG51bGwpIHtcbiAgICBjb25zdCBucyA9IHtcbiAgICAgIHJzbTogJ3VybjpteS1uYW1lc3BhY2U6cnNtJyxcbiAgICAgIHJhbTogJ3VybjpteS1uYW1lc3BhY2U6cmFtJ1xuICAgIH07XG4gICAgcmV0dXJuIG5zW3ByZWZpeCBhcyBrZXlvZiB0eXBlb2YgbnNdIHx8IG51bGw7XG4gIH1cblxuICBhc3luYyAjdHJhbnNmb3JtQW5kRGlzcGxheShjb250ZW50OiBzdHJpbmcsIHN0eWxlc2hlZXRGaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuICAgIGNvbnN0IHhtbERvYyA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoY29udGVudCwgJ3RleHQveG1sJyk7XG4gICAgY29uc3QgdHlwZWNvZGUgPSB4bWxEb2MuZXZhbHVhdGUoJy8vcnNtOkV4Y2hhbmdlZERvY3VtZW50L3JhbTpUeXBlQ29kZScsIHhtbERvYywgdGhpcy4jbmFtZXNwYWNlUmVzb2x2ZXIsIFhQYXRoUmVzdWx0LlNUUklOR19UWVBFLCBudWxsKS5zdHJpbmdWYWx1ZTtcbiAgICBjb25zdCBpc09yZGVyID0gTnVtYmVyKHR5cGVjb2RlKSA9PT0gMjIwIHx8IE51bWJlcih0eXBlY29kZSkgPT09IDIzMTtcblxuICAgIHJldHVybiBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQoc3R5bGVzaGVldEZpbGVOYW1lLCB7cmVzcG9uc2VUeXBlOiAnanNvbid9KS5waXBlKFxuICAgICAgICBtYXAoKHN0eWxlc2hlZXRJbnRlcm5hbCkgPT5cbiAgICAgICAgICBTYXhvbkpTLnRyYW5zZm9ybSh7XG4gICAgICAgICAgICBzdHlsZXNoZWV0SW50ZXJuYWwsXG4gICAgICAgICAgICBzb3VyY2VUZXh0OiBjb250ZW50LFxuICAgICAgICAgICAgZGVzdGluYXRpb246ICdzZXJpYWxpemVkJ1xuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICAgIHN3aXRjaE1hcCgob3V0cHV0OiB7cHJpbmNpcGFsUmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFhSZWNobnVuZ1RyYW5zbGF0aW9ucyh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHRyYW5zbGF0aW9ucykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZFRyYW5zbGF0aW9ucyA9IE9iamVjdC5lbnRyaWVzKHRyYW5zbGF0aW9ucylcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChba2V5LCBfXSkgPT4ga2V5LnN0YXJ0c1dpdGgoJ3l1di5tZWRpYS52aWV3ZXIuZS5pbnZvaWNlLicpKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgICBhY2Nba2V5XSA9IHZhbHVlIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICAgICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPik7XG4gICAgICAgICAgICAgIHJldHVybiB7cHJpbmNpcGFsUmVzdWx0OiBvdXRwdXQucHJpbmNpcGFsUmVzdWx0LCB0cmFuc2xhdGlvbnM6IGZpbHRlcmVkVHJhbnNsYXRpb25zfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3dpdGNoTWFwKChvdXRwdXQ6IHtwcmluY2lwYWxSZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47IHRyYW5zbGF0aW9uczogUmVjb3JkPHN0cmluZywgc3RyaW5nPn0pID0+IHtcbiAgICAgICAgICAgICAgaWYgKGlzT3JkZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gWydidDFfb3JkZXInLCAnYnQyX29yZGVyJywgJ2J0M19vcmRlcicsICdiZzIyX29yZGVyJywgJ2J0MjVfb3JkZXInLCAnYnQyNl9vcmRlcicsICdkZXRhaWxzX29yZGVyJ107XG4gICAgICAgICAgICAgICAgY29uc3QgdHJhbnNsID0ga2V5cy5tYXAoKGtleSkgPT4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChgeXV2Lm1lZGlhLnZpZXdlci5lLmludm9pY2UuJHtrZXl9YCkucGlwZShtYXAoKHZhbHVlKSA9PiAoe1trZXldOiB2YWx1ZX0pKSkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHtwcmluY2lwYWxSZXN1bHQsIHRyYW5zbGF0aW9uc30gPSBvdXRwdXQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZvcmtKb2luKHRyYW5zbCkucGlwZShcbiAgICAgICAgICAgICAgICAgIG1hcCgob3JkZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb3JkZXIuZm9yRWFjaCgob3JkZXJUcmFuc2xhdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yZGVyS2V5ID0gT2JqZWN0LmtleXMob3JkZXJUcmFuc2xhdGlvbilbMF07XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3JkZXJWYWx1ZSA9IG9yZGVyVHJhbnNsYXRpb25bb3JkZXJLZXldO1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uS2V5ID0gT2JqZWN0LmtleXModHJhbnNsYXRpb25zKS5maW5kKChrZXkpID0+IGtleS5lbmRzV2l0aChvcmRlcktleS5zcGxpdCgnXycpWzBdKSk7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHRyYW5zbGF0aW9uS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnNbdHJhbnNsYXRpb25LZXldID0gb3JkZXJWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3ByaW5jaXBhbFJlc3VsdCwgdHJhbnNsYXRpb25zfTtcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gb2Yob3V0cHV0KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgob3V0cHV0OiB7cHJpbmNpcGFsUmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+OyB0cmFuc2xhdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz59KSA9PlxuICAgICAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQoJ2Fzc2V0cy9fZGVmYXVsdC9hcGkveHJlY2hudW5nL3hzbHQveHJlY2hudW5nLWh0bWwudW5pLnNlZi5qc29uJywge3Jlc3BvbnNlVHlwZTogJ2pzb24nfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoc3R5bGVzaGVldEludGVybmFsKSA9PlxuICAgICAgICAgICAgICBTYXhvbkpTLnRyYW5zZm9ybSh7XG4gICAgICAgICAgICAgICAgc3R5bGVzaGVldEludGVybmFsLFxuICAgICAgICAgICAgICAgIHNvdXJjZVRleHQ6IG91dHB1dC5wcmluY2lwYWxSZXN1bHQsXG4gICAgICAgICAgICAgICAgZGVzdGluYXRpb246ICdzZXJpYWxpemVkJyxcbiAgICAgICAgICAgICAgICBzdHlsZXNoZWV0UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICBpc09yZGVyOiBpc09yZGVyLFxuICAgICAgICAgICAgICAgICAgc2hvd0lkczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAnUXt9aTE4bic6IG91dHB1dC50cmFuc2xhdGlvbnNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZS5wcmluY2lwYWxSZXN1bHQpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLiNsb2FkaW5nLnNldChmYWxzZSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gICN0cmFuc2Zvcm1BbmREaXNwbGF5Q0lJKGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLiN0cmFuc2Zvcm1BbmREaXNwbGF5KGNvbnRlbnQsICdhc3NldHMvX2RlZmF1bHQvYXBpL3hyZWNobnVuZy94c2x0L2NpaS14ci5zZWYuanNvbicpO1xuICB9XG4gICN0cmFuc2Zvcm1BbmREaXNwbGF5VUJMKGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLiN0cmFuc2Zvcm1BbmREaXNwbGF5KGNvbnRlbnQsICdhc3NldHMvX2RlZmF1bHQvYXBpL3hyZWNobnVuZy94c2x0L3VibC14ci5zZWYuanNvbicpO1xuICB9XG5cbiAgI3RyYW5zZm9ybUFuZERpc3BsYXlDSU8oY29udGVudDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuI3RyYW5zZm9ybUFuZERpc3BsYXkoY29udGVudCwgJ2Fzc2V0cy9fZGVmYXVsdC9hcGkveHJlY2hudW5nL3hzbHQvY2lvLXhyLnNlZi5qc29uJyk7XG4gIH1cblxuICAjdHJhbnNmb3JtQW5kRGlzcGxheVVCTENOKGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLiN0cmFuc2Zvcm1BbmREaXNwbGF5KGNvbnRlbnQsICdhc3NldHMvX2RlZmF1bHQvYXBpL3hyZWNobnVuZy94c2x0L3VibC1jcmVkaXRub3RlLXhyLnNlZi5qc29uJyk7XG4gIH1cblxuICBhc3luYyAjdHJhbnNmb3JtQW5kRGlzcGxheVpGMShjb250ZW50OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KCdhc3NldHMvX2RlZmF1bHQvYXBpL3hyZWNobnVuZy94c2x0L1pVR0ZlUkRfMXAwX2MxcDBfczFwMC5zZWYuanNvbicsIHtyZXNwb25zZVR5cGU6ICdqc29uJ30pLnBpcGUoXG4gICAgICAgIG1hcCgoc3R5bGVzaGVldEludGVybmFsKSA9PlxuICAgICAgICAgIFNheG9uSlMudHJhbnNmb3JtKHtcbiAgICAgICAgICAgIHN0eWxlc2hlZXRJbnRlcm5hbCxcbiAgICAgICAgICAgIHNvdXJjZVRleHQ6IGNvbnRlbnQsXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogJ3NlcmlhbGl6ZWQnXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UucHJpbmNpcGFsUmVzdWx0KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy4jbG9hZGluZy5zZXQoZmFsc2UpKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zdCBlcnJNZXNzYWdlID0gZXJyb3I/Lm1lc3NhZ2UgPyBlcnJvci5tZXNzYWdlIDogZXJyb3I7XG4gICAgICAgICAgdGhyb3cgdGhpcy4jZGlzcGxheUVycm9yKCdFeGNlcHRpb24nLCBlcnJNZXNzYWdlKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbG9hZEFuZERpc3BsYXlYTUwoeG1sVXJsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXJzZXIgPSBuZXcgWE1MUGFyc2VyKCk7XG4gICAgdGhpcy4jbG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgdGhpcy5odHRwQ2xpZW50LmdldCh4bWxVcmwsIHtyZXNwb25zZVR5cGU6ICd0ZXh0J30pLnBpcGUoXG4gICAgICAgICAgbWFwKChjb250ZW50KSA9PiB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBwYXJzZXIucGFyc2UoY29udGVudCkpIHtcbiAgICAgICAgICAgICAgaWYgKGtleS5pbmNsdWRlcygnQ3Jvc3NJbmR1c3RyeUludm9pY2UnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLiN0cmFuc2Zvcm1BbmREaXNwbGF5Q0lJKGNvbnRlbnQpO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5pbmNsdWRlcygnU0NSRE1DQ0JEQUNJT01lc3NhZ2VTdHJ1Y3R1cmUnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLiN0cmFuc2Zvcm1BbmREaXNwbGF5Q0lPKGNvbnRlbnQpO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5pbmNsdWRlcygnSW52b2ljZScpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI3RyYW5zZm9ybUFuZERpc3BsYXlVQkwoY29udGVudCk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5LmluY2x1ZGVzKCdDcmVkaXROb3RlJykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy4jdHJhbnNmb3JtQW5kRGlzcGxheVVCTENOKGNvbnRlbnQpO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5pbmNsdWRlcygnQ3Jvc3NJbmR1c3RyeURvY3VtZW50JykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy4jdHJhbnNmb3JtQW5kRGlzcGxheVpGMShjb250ZW50KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuI2Rpc3BsYXlFcnJvcignRmlsZSBmb3JtYXQgbm90IHJlY29nbml6ZWQnLCAnSXMgaXQgYSBVQkwgMi4xIG9yIFVOL0NFRkFDVCAyMDE2YiBYTUwgZmlsZSBvciBQREYgeW91IGFyZSB0cnlpbmcgdG8gb3Blbj8nKSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy4jbG9hZGluZy5zZXQoZmFsc2UpKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXJyTWVzc2FnZSA9IGVycm9yPy5tZXNzYWdlID8gZXJyb3IubWVzc2FnZSA6IGVycm9yO1xuICAgICAgICAgICAgdGhyb3cgdGhpcy4jZGlzcGxheUVycm9yKCdFeGNlcHRpb24nLCBlcnJNZXNzYWdlKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICBjb25zdCBlcnJNZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpO1xuICAgICAgdGhpcy4jbG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgdGhyb3cgdGhpcy4jZGlzcGxheUVycm9yKCdFeGNlcHRpb24nLCBlcnJNZXNzYWdlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHJlY2hudW5nLXZpZXdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvdmlld2VyL3hyZWNobnVuZy12aWV3ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7OztBQUt4RixNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFFBQVEsQ0FBMEI7SUFHbEMsWUFBb0IsVUFBc0IsRUFBVSxnQkFBa0M7UUFBbEUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFIdEYsYUFBUSxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsQyxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRTRDLENBQUM7SUFFM0Y7O09BRUc7SUFDSyx3QkFBd0IsQ0FBQyxJQUFZO1FBQzNDLE1BQU0sbUJBQW1CLEdBQUcsc0NBQXNDLElBQUksT0FBTyxDQUFDO1FBQzlFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLENBQ2xELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCwyRkFBMkY7WUFDM0YsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUFlLEVBQUUsTUFBYztRQUMzQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLLEVBQUUsT0FBTztZQUNkLE9BQU87WUFDUCxNQUFNO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFxQjtRQUN0QyxNQUFNLEVBQUUsR0FBRztZQUNULEdBQUcsRUFBRSxzQkFBc0I7WUFDM0IsR0FBRyxFQUFFLHNCQUFzQjtTQUM1QixDQUFDO1FBQ0YsT0FBTyxFQUFFLENBQUMsTUFBeUIsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSyxDQUFDLG9CQUFvQixDQUFDLE9BQWUsRUFBRSxrQkFBMEI7UUFDcEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUMvQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLHNDQUFzQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDckosTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBRXJFLE9BQU8sTUFBTSxjQUFjLENBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLEVBQUMsWUFBWSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUMsSUFBSSxDQUNsRSxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQ3pCLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDaEIsa0JBQWtCO1lBQ2xCLFVBQVUsRUFBRSxPQUFPO1lBQ25CLFdBQVcsRUFBRSxZQUFZO1NBQzFCLENBQUMsQ0FDSCxFQUNELFNBQVMsQ0FBQyxDQUFDLE1BQWlELEVBQUUsRUFBRTtZQUM5RCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUMxRSxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtnQkFDbkIsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztxQkFDdEQsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsNkJBQTZCLENBQUMsQ0FBQztxQkFDbkUsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7b0JBQzVCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFlLENBQUM7b0JBQzNCLE9BQU8sR0FBRyxDQUFDO2dCQUNiLENBQUMsRUFBRSxFQUE0QixDQUFDLENBQUM7Z0JBQ25DLE9BQU8sRUFBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUMsQ0FBQztZQUN2RixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsQ0FBQyxNQUF1RixFQUFFLEVBQUU7Z0JBQ3BHLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1osTUFBTSxJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQztvQkFDaEgsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN4SSxNQUFNLEVBQUMsZUFBZSxFQUFFLFlBQVksRUFBQyxHQUFHLE1BQU0sQ0FBQztvQkFDL0MsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTt3QkFDWixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsRUFBRTs0QkFDakMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUNsRCxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQzs0QkFDOUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQ3JHLElBQUksY0FBYyxFQUFFLENBQUM7Z0NBQ25CLFlBQVksQ0FBQyxjQUFjLENBQUMsR0FBRyxVQUFVLENBQUM7NEJBQzVDLENBQUM7d0JBQ0gsQ0FBQyxDQUFDLENBQUM7d0JBQ0gsT0FBTyxFQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUMsQ0FBQztvQkFDekMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztnQkFDSixDQUFDO2dCQUNELE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsQ0FBQyxNQUF1RixFQUFFLEVBQUUsQ0FDcEcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsZ0VBQWdFLEVBQUUsRUFBQyxZQUFZLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2hILEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FDekIsT0FBTyxDQUFDLFNBQVMsQ0FBQztZQUNoQixrQkFBa0I7WUFDbEIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxlQUFlO1lBQ2xDLFdBQVcsRUFBRSxZQUFZO1lBQ3pCLGdCQUFnQixFQUFFO2dCQUNoQixPQUFPLEVBQUUsT0FBTztnQkFDaEIsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsU0FBUyxFQUFFLE1BQU0sQ0FBQyxZQUFZO2FBQy9CO1NBQ0YsQ0FBQyxDQUNILENBQ0YsQ0FDRixFQUNELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUMzQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDekMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELHVCQUF1QixDQUFDLE9BQWU7UUFDckMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLG9EQUFvRCxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUNELHVCQUF1QixDQUFDLE9BQWU7UUFDckMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLG9EQUFvRCxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELHVCQUF1QixDQUFDLE9BQWU7UUFDckMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLG9EQUFvRCxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELHlCQUF5QixDQUFDLE9BQWU7UUFDdkMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLCtEQUErRCxDQUFDLENBQUM7SUFDN0csQ0FBQztJQUVELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxPQUFlO1FBQzNDLE9BQU8sTUFBTSxjQUFjLENBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLG1FQUFtRSxFQUFFLEVBQUMsWUFBWSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUMsSUFBSSxDQUNuSCxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQ3pCLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDaEIsa0JBQWtCO1lBQ2xCLFVBQVUsRUFBRSxPQUFPO1lBQ25CLFdBQVcsRUFBRSxZQUFZO1NBQzFCLENBQUMsQ0FDSCxFQUNELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUMzQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDeEMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQzFELE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxpQkFBaUIsQ0FBQyxPQUFlLEVBQUUsTUFBaUI7UUFDbEQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDeEMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQztnQkFDekMsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0MsQ0FBQztpQkFBTSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsK0JBQStCLENBQUMsRUFBRSxDQUFDO2dCQUN6RCxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxDQUFDO2lCQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxDQUFDO2lCQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxDQUFDO2lCQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pELE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFjO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUMsWUFBWSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQztZQUMxRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzFELE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzVDLENBQUM7UUFBQyxPQUFPLEtBQWMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sVUFBVSxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxRSxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELENBQUM7Z0JBQVMsQ0FBQztZQUNULElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDOzhHQXZMVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiZGVjbGFyZSBjb25zdCBTYXhvbkpTOiBhbnk7IC8vIERlY2xhcmUgU2F4b25KUyBnbG9iYWxseVxuXG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SW5qZWN0YWJsZSwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1hNTFBhcnNlcn0gZnJvbSAnZmFzdC14bWwtcGFyc2VyJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgZmluYWxpemUsIGZpcnN0VmFsdWVGcm9tLCBmb3JrSm9pbiwgbWFwLCBvZiwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgWG1sUHJvY2Vzc29yU2VydmljZSB7XG5cbiAgI2xvYWRpbmcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBsb2FkaW5nSW5kaWNhdG9yID0gdGhpcy4jbG9hZGluZy5hc1JlYWRvbmx5KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHsgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyBYUmVjaG51bmctc3BlY2lmaWMgdHJhbnNsYXRpb25zIGRpcmVjdGx5IGZyb20gdGhlIHByb3ZpZGVkIGZpbGUgcGF0aC5cbiAgICovXG4gIHByaXZhdGUgZ2V0WFJlY2hudW5nVHJhbnNsYXRpb25zKGxhbmc6IHN0cmluZykge1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uRmlsZVBhdGggPSBgYXNzZXRzL19kZWZhdWx0L2FwaS94cmVjaG51bmcvaTE4bi8ke2xhbmd9Lmpzb25gO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KHRyYW5zbGF0aW9uRmlsZVBhdGgpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgLy8gSWYgdGhlIGxhbmd1YWdlIGlzIGEgc3ViLWxhbmd1YWdlIChlLmcuLCBcImRlLUNIXCIpLCB0cnkgbG9hZGluZyB0aGUgYmFzZSBsYW5ndWFnZSAoXCJkZVwiKS5cbiAgICAgICAgcmV0dXJuIGxhbmcubGVuZ3RoID4gMiA/IHRoaXMuZ2V0WFJlY2hudW5nVHJhbnNsYXRpb25zKGxhbmcuc3Vic3RyaW5nKDAsIDIpKSA6IG9mKHt9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gICNkaXNwbGF5RXJyb3IobWVzc2FnZTogc3RyaW5nLCBkZXRhaWw6IHN0cmluZykge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgdGl0bGU6ICdFcnJvcicsXG4gICAgICBtZXNzYWdlLFxuICAgICAgZGV0YWlsXG4gICAgfTtcbiAgfVxuXG4gICNuYW1lc3BhY2VSZXNvbHZlcihwcmVmaXg6IHN0cmluZyB8IG51bGwpIHtcbiAgICBjb25zdCBucyA9IHtcbiAgICAgIHJzbTogJ3VybjpteS1uYW1lc3BhY2U6cnNtJyxcbiAgICAgIHJhbTogJ3VybjpteS1uYW1lc3BhY2U6cmFtJ1xuICAgIH07XG4gICAgcmV0dXJuIG5zW3ByZWZpeCBhcyBrZXlvZiB0eXBlb2YgbnNdIHx8IG51bGw7XG4gIH1cblxuICBhc3luYyAjdHJhbnNmb3JtQW5kRGlzcGxheShjb250ZW50OiBzdHJpbmcsIHN0eWxlc2hlZXRGaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuICAgIGNvbnN0IHhtbERvYyA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoY29udGVudCwgJ3RleHQveG1sJyk7XG4gICAgY29uc3QgdHlwZWNvZGUgPSB4bWxEb2MuZXZhbHVhdGUoJy8vcnNtOkV4Y2hhbmdlZERvY3VtZW50L3JhbTpUeXBlQ29kZScsIHhtbERvYywgdGhpcy4jbmFtZXNwYWNlUmVzb2x2ZXIsIFhQYXRoUmVzdWx0LlNUUklOR19UWVBFLCBudWxsKS5zdHJpbmdWYWx1ZTtcbiAgICBjb25zdCBpc09yZGVyID0gTnVtYmVyKHR5cGVjb2RlKSA9PT0gMjIwIHx8IE51bWJlcih0eXBlY29kZSkgPT09IDIzMTtcblxuICAgIHJldHVybiBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQoc3R5bGVzaGVldEZpbGVOYW1lLCB7cmVzcG9uc2VUeXBlOiAnanNvbid9KS5waXBlKFxuICAgICAgICBtYXAoKHN0eWxlc2hlZXRJbnRlcm5hbCkgPT5cbiAgICAgICAgICBTYXhvbkpTLnRyYW5zZm9ybSh7XG4gICAgICAgICAgICBzdHlsZXNoZWV0SW50ZXJuYWwsXG4gICAgICAgICAgICBzb3VyY2VUZXh0OiBjb250ZW50LFxuICAgICAgICAgICAgZGVzdGluYXRpb246ICdzZXJpYWxpemVkJ1xuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICAgIHN3aXRjaE1hcCgob3V0cHV0OiB7cHJpbmNpcGFsUmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFhSZWNobnVuZ1RyYW5zbGF0aW9ucyh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHRyYW5zbGF0aW9ucykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZFRyYW5zbGF0aW9ucyA9IE9iamVjdC5lbnRyaWVzKHRyYW5zbGF0aW9ucylcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChba2V5LCBfXSkgPT4ga2V5LnN0YXJ0c1dpdGgoJ3l1di5tZWRpYS52aWV3ZXIuZS5pbnZvaWNlLicpKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgICBhY2Nba2V5XSA9IHZhbHVlIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICAgICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPik7XG4gICAgICAgICAgICAgIHJldHVybiB7cHJpbmNpcGFsUmVzdWx0OiBvdXRwdXQucHJpbmNpcGFsUmVzdWx0LCB0cmFuc2xhdGlvbnM6IGZpbHRlcmVkVHJhbnNsYXRpb25zfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3dpdGNoTWFwKChvdXRwdXQ6IHtwcmluY2lwYWxSZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47IHRyYW5zbGF0aW9uczogUmVjb3JkPHN0cmluZywgc3RyaW5nPn0pID0+IHtcbiAgICAgICAgICAgICAgaWYgKGlzT3JkZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gWydidDFfb3JkZXInLCAnYnQyX29yZGVyJywgJ2J0M19vcmRlcicsICdiZzIyX29yZGVyJywgJ2J0MjVfb3JkZXInLCAnYnQyNl9vcmRlcicsICdkZXRhaWxzX29yZGVyJ107XG4gICAgICAgICAgICAgICAgY29uc3QgdHJhbnNsID0ga2V5cy5tYXAoKGtleSkgPT4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChgeXV2Lm1lZGlhLnZpZXdlci5lLmludm9pY2UuJHtrZXl9YCkucGlwZShtYXAoKHZhbHVlKSA9PiAoe1trZXldOiB2YWx1ZX0pKSkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHtwcmluY2lwYWxSZXN1bHQsIHRyYW5zbGF0aW9uc30gPSBvdXRwdXQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZvcmtKb2luKHRyYW5zbCkucGlwZShcbiAgICAgICAgICAgICAgICAgIG1hcCgob3JkZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb3JkZXIuZm9yRWFjaCgob3JkZXJUcmFuc2xhdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yZGVyS2V5ID0gT2JqZWN0LmtleXMob3JkZXJUcmFuc2xhdGlvbilbMF07XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3JkZXJWYWx1ZSA9IG9yZGVyVHJhbnNsYXRpb25bb3JkZXJLZXldO1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uS2V5ID0gT2JqZWN0LmtleXModHJhbnNsYXRpb25zKS5maW5kKChrZXkpID0+IGtleS5lbmRzV2l0aChvcmRlcktleS5zcGxpdCgnXycpWzBdKSk7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHRyYW5zbGF0aW9uS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnNbdHJhbnNsYXRpb25LZXldID0gb3JkZXJWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3ByaW5jaXBhbFJlc3VsdCwgdHJhbnNsYXRpb25zfTtcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gb2Yob3V0cHV0KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgob3V0cHV0OiB7cHJpbmNpcGFsUmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+OyB0cmFuc2xhdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz59KSA9PlxuICAgICAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQoJ2Fzc2V0cy9fZGVmYXVsdC9hcGkveHJlY2hudW5nL3hzbHQveHJlY2hudW5nLWh0bWwudW5pLnNlZi5qc29uJywge3Jlc3BvbnNlVHlwZTogJ2pzb24nfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoc3R5bGVzaGVldEludGVybmFsKSA9PlxuICAgICAgICAgICAgICBTYXhvbkpTLnRyYW5zZm9ybSh7XG4gICAgICAgICAgICAgICAgc3R5bGVzaGVldEludGVybmFsLFxuICAgICAgICAgICAgICAgIHNvdXJjZVRleHQ6IG91dHB1dC5wcmluY2lwYWxSZXN1bHQsXG4gICAgICAgICAgICAgICAgZGVzdGluYXRpb246ICdzZXJpYWxpemVkJyxcbiAgICAgICAgICAgICAgICBzdHlsZXNoZWV0UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICBpc09yZGVyOiBpc09yZGVyLFxuICAgICAgICAgICAgICAgICAgc2hvd0lkczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAnUXt9aTE4bic6IG91dHB1dC50cmFuc2xhdGlvbnNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZS5wcmluY2lwYWxSZXN1bHQpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLiNsb2FkaW5nLnNldChmYWxzZSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gICN0cmFuc2Zvcm1BbmREaXNwbGF5Q0lJKGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLiN0cmFuc2Zvcm1BbmREaXNwbGF5KGNvbnRlbnQsICdhc3NldHMvX2RlZmF1bHQvYXBpL3hyZWNobnVuZy94c2x0L2NpaS14ci5zZWYuanNvbicpO1xuICB9XG4gICN0cmFuc2Zvcm1BbmREaXNwbGF5VUJMKGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLiN0cmFuc2Zvcm1BbmREaXNwbGF5KGNvbnRlbnQsICdhc3NldHMvX2RlZmF1bHQvYXBpL3hyZWNobnVuZy94c2x0L3VibC14ci5zZWYuanNvbicpO1xuICB9XG5cbiAgI3RyYW5zZm9ybUFuZERpc3BsYXlDSU8oY29udGVudDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuI3RyYW5zZm9ybUFuZERpc3BsYXkoY29udGVudCwgJ2Fzc2V0cy9fZGVmYXVsdC9hcGkveHJlY2hudW5nL3hzbHQvY2lvLXhyLnNlZi5qc29uJyk7XG4gIH1cblxuICAjdHJhbnNmb3JtQW5kRGlzcGxheVVCTENOKGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLiN0cmFuc2Zvcm1BbmREaXNwbGF5KGNvbnRlbnQsICdhc3NldHMvX2RlZmF1bHQvYXBpL3hyZWNobnVuZy94c2x0L3VibC1jcmVkaXRub3RlLXhyLnNlZi5qc29uJyk7XG4gIH1cblxuICBhc3luYyAjdHJhbnNmb3JtQW5kRGlzcGxheVpGMShjb250ZW50OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KCdhc3NldHMvX2RlZmF1bHQvYXBpL3hyZWNobnVuZy94c2x0L1pVR0ZlUkRfMXAwX2MxcDBfczFwMC5zZWYuanNvbicsIHtyZXNwb25zZVR5cGU6ICdqc29uJ30pLnBpcGUoXG4gICAgICAgIG1hcCgoc3R5bGVzaGVldEludGVybmFsKSA9PlxuICAgICAgICAgIFNheG9uSlMudHJhbnNmb3JtKHtcbiAgICAgICAgICAgIHN0eWxlc2hlZXRJbnRlcm5hbCxcbiAgICAgICAgICAgIHNvdXJjZVRleHQ6IGNvbnRlbnQsXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogJ3NlcmlhbGl6ZWQnXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UucHJpbmNpcGFsUmVzdWx0KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy4jbG9hZGluZy5zZXQoZmFsc2UpKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zdCBlcnJNZXNzYWdlID0gZXJyb3I/Lm1lc3NhZ2UgPyBlcnJvci5tZXNzYWdlIDogZXJyb3I7XG4gICAgICAgICAgdGhyb3cgdGhpcy4jZGlzcGxheUVycm9yKCdFeGNlcHRpb24nLCBlcnJNZXNzYWdlKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFBpY2tzIHRoZSBtYXRjaGluZyBYU0xUIHRyYW5zZm9ybWF0aW9uIGZvciB0aGUgZ2l2ZW4gWE1MIGNvbnRlbnQuXG4gICAqIFJldHVybnMgYG51bGxgIHdoZW4gdGhlIFhNTCBpcyBub3Qgb25lIG9mIHRoZSBzdXBwb3J0ZWQgZS1pbnZvaWNlIGZvcm1hdHNcbiAgICogKENJSSwgVUJMIEludm9pY2UvQ3JlZGl0Tm90ZSwgQ0lPIG9yIFpVR0ZlUkQpIC0gZS5nLiBhIFBvbGlzaCBLU2VGIFwiRmFrdHVyYVwiLlxuICAgKi9cbiAgI3Jlc29sdmVUcmFuc2Zvcm0oY29udGVudDogc3RyaW5nLCBwYXJzZXI6IFhNTFBhcnNlcik6IFByb21pc2U8c3RyaW5nPiB8IG51bGwge1xuICAgIGZvciAoY29uc3Qga2V5IGluIHBhcnNlci5wYXJzZShjb250ZW50KSkge1xuICAgICAgaWYgKGtleS5pbmNsdWRlcygnQ3Jvc3NJbmR1c3RyeUludm9pY2UnKSkge1xuICAgICAgICByZXR1cm4gdGhpcy4jdHJhbnNmb3JtQW5kRGlzcGxheUNJSShjb250ZW50KTtcbiAgICAgIH0gZWxzZSBpZiAoa2V5LmluY2x1ZGVzKCdTQ1JETUNDQkRBQ0lPTWVzc2FnZVN0cnVjdHVyZScpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLiN0cmFuc2Zvcm1BbmREaXNwbGF5Q0lPKGNvbnRlbnQpO1xuICAgICAgfSBlbHNlIGlmIChrZXkuaW5jbHVkZXMoJ0ludm9pY2UnKSkge1xuICAgICAgICByZXR1cm4gdGhpcy4jdHJhbnNmb3JtQW5kRGlzcGxheVVCTChjb250ZW50KTtcbiAgICAgIH0gZWxzZSBpZiAoa2V5LmluY2x1ZGVzKCdDcmVkaXROb3RlJykpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuI3RyYW5zZm9ybUFuZERpc3BsYXlVQkxDTihjb250ZW50KTtcbiAgICAgIH0gZWxzZSBpZiAoa2V5LmluY2x1ZGVzKCdDcm9zc0luZHVzdHJ5RG9jdW1lbnQnKSkge1xuICAgICAgICByZXR1cm4gdGhpcy4jdHJhbnNmb3JtQW5kRGlzcGxheVpGMShjb250ZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIFhNTCBhbmQgdHJhbnNmb3JtcyBpdCBpbnRvIHRoZSBlLWludm9pY2UgSFRNTCByZXByZXNlbnRhdGlvbi5cbiAgICogUmVzb2x2ZXMgdG8gYG51bGxgIHdoZW4gdGhlIGZvcm1hdCBpcyBub3QgYSBzdXBwb3J0ZWQgZS1pbnZvaWNlLCBzbyB0aGVcbiAgICogY2FsbGVyIGNhbiBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgKE1vbmFjbykgdmlld2VyLlxuICAgKi9cbiAgYXN5bmMgbG9hZEFuZERpc3BsYXlYTUwoeG1sVXJsOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICBjb25zdCBwYXJzZXIgPSBuZXcgWE1MUGFyc2VyKCk7XG4gICAgdGhpcy4jbG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQuZ2V0KHhtbFVybCwge3Jlc3BvbnNlVHlwZTogJ3RleHQnfSkpO1xuICAgICAgY29uc3QgdHJhbnNmb3JtID0gdGhpcy4jcmVzb2x2ZVRyYW5zZm9ybShjb250ZW50LCBwYXJzZXIpO1xuICAgICAgcmV0dXJuIHRyYW5zZm9ybSA/IGF3YWl0IHRyYW5zZm9ybSA6IG51bGw7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGNvbnN0IGVyck1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG4gICAgICB0aHJvdyB0aGlzLiNkaXNwbGF5RXJyb3IoJ0V4Y2VwdGlvbicsIGVyck1lc3NhZ2UpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLiNsb2FkaW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG59XG4iXX0=