@dereekb/dbx-web 12.3.4 → 12.3.6

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.
@@ -139,7 +139,7 @@ export class DbxPopoverComponent extends AbstractTransitionWatcherDirective {
139
139
  <dbx-popover-coordinator (dbxWindowKeyDownListener)="handleKeydown()" [appWindowKeyDownFilter]="triggerCloseKeys">
140
140
  <div dbxStyle class="dbx-popover-component" dbx-injection [config]="contentConfig"></div>
141
141
  </dbx-popover-coordinator>
142
- `, isInline: true, dependencies: [{ kind: "component", type: DbxPopoverCoordinatorComponent, selector: "dbx-popover-coordinator" }, { kind: "directive", type: DbxWindowKeyDownListenerDirective, selector: "[dbxWindowKeyDownListener]", inputs: ["appWindowKeyDownEnabled", "appWindowKeyDownFilter"], outputs: ["dbxWindowKeyDownListener"] }, { kind: "directive", type: DbxStyleDirective, selector: "dbx-style, [dbxStyle], .dbx-style" }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
142
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxPopoverCoordinatorComponent, selector: "dbx-popover-coordinator" }, { kind: "directive", type: DbxWindowKeyDownListenerDirective, selector: "[dbxWindowKeyDownListener]", inputs: ["appWindowKeyDownEnabled", "appWindowKeyDownFilter", "dbxWindowKeyDownEnabled", "dbxWindowKeyDownFilter"], outputs: ["dbxWindowKeyDownListener"] }, { kind: "directive", type: DbxStyleDirective, selector: "dbx-style, [dbxStyle], .dbx-style" }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
143
143
  }
144
144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxPopoverComponent, decorators: [{
145
145
  type: Component,
@@ -166,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
166
166
  changeDetection: ChangeDetectionStrategy.OnPush
167
167
  }]
168
168
  }], ctorParameters: () => [] });
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvaW50ZXJhY3Rpb24vcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF1QyxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUF1RCxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUscUJBQXFCLEVBQStCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0gsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXRFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQW1ELE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxvQkFBb0IsRUFBaUIsTUFBTSxXQUFXLENBQUM7QUFDaEUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBRXZFLE1BQU0sT0FBZ0IsNkJBQW9DLFNBQVEsb0JBQTBCO0lBQzFGLGlCQUFpQixDQUE2QjtDQUMvQztBQWdERDs7R0FFRztBQXVCSCxNQUFNLE9BQU8sbUJBQTJELFNB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RkFBbkIsbUJBQW1CLG1IQWhCbkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsb0JBQW9CO2dCQUM3QixXQUFXLEVBQUUsbUJBQW1CO2FBQ2pDO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLG1CQUFtQjthQUM3QjtTQUNGLGlEQWJTOzs7O0dBSVQsNERBYVMsOEJBQThCLG9FQUFFLGlDQUFpQyw2S0FBRSxpQkFBaUIsOEVBQUUscUJBQXFCOzs0RkFJMUcsbUJBQW1CO2tCQXRCL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7R0FJVDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLG9CQUFvQjs0QkFDN0IsV0FBVyxxQkFBcUI7eUJBQ2pDO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxtQkFBbUI7eUJBQzdCO3FCQUNGO29CQUNELElBQUksRUFBRTt3QkFDSixTQUFTLEVBQUUsbUJBQW1CO3FCQUMvQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxpQ0FBaUMsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsQ0FBQztvQkFDdEgsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVHlwZSwgT25Jbml0LCBPbkRlc3Ryb3ksIEVsZW1lbnRSZWYsIGluamVjdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nT3ZlcmxheUNvbnRhaW5lckNvbmZpZ3VyYXRpb24sIE5nUG9wb3ZlckNsb3NlVHlwZSwgTmdQb3BvdmVyUmVmIH0gZnJvbSAnbmctb3ZlcmxheS1jb250YWluZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RUcmFuc2l0aW9uV2F0Y2hlckRpcmVjdGl2ZSwgRGJ4SW5qZWN0aW9uQ29tcG9uZW50LCBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBmaWx0ZXIsIGZpcnN0LCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBvcG92ZXJQb3NpdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9wb3BvdmVyLnBvc2l0aW9uLnN0cmF0ZWd5JztcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBMb2NrU2V0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBDb21wYWN0Q29udGV4dFN0b3JlLCBDb21wYWN0TW9kZSB9IGZyb20gJy4uLy4uL2xheW91dC9jb21wYWN0JztcbmltcG9ydCB7IGFzUHJvbWlzZSwgTWF5YmUsIFByb21pc2VPclZhbHVlLCBTcGFjZVNlcGFyYXRlZENzc0NsYXNzZXMgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERieFBvcG92ZXJDb250cm9sbGVyLCBEYnhQb3BvdmVyS2V5IH0gZnJvbSAnLi9wb3BvdmVyJztcbmltcG9ydCB7IERieFBvcG92ZXJDb29yZGluYXRvckNvbXBvbmVudCB9IGZyb20gJy4vcG9wb3Zlci5jb29yZGluYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJ4V2luZG93S2V5RG93bkxpc3RlbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4va2V5cHJlc3MnO1xuaW1wb3J0IHsgRGJ4U3R5bGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9sYXlvdXQvc3R5bGUvc3R5bGUuZGlyZWN0aXZlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERieFBvcG92ZXJDb21wb25lbnRDb250cm9sbGVyPE8sIEk+IGV4dGVuZHMgRGJ4UG9wb3ZlckNvbnRyb2xsZXI8TywgST4ge1xuICBnZXRDbG9zaW5nVmFsdWVGbj86ICh2YWx1ZT86IEkpID0+IFByb21pc2U8Tz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4UG9wb3ZlckNvbXBvbmVudENvbmZpZzxPLCBJLCBUPiB7XG4gIC8qKlxuICAgKiBLZXkgdXNlZCBmb3IgdW5pcXVlbHkgaWRlbnRpZnlpbmcgYSBsaW1pdGVkIGluc3RhbmNlLlxuICAgKlxuICAgKiBPbmx5IG9uZSBwb3BvdmVyIHNob3VsZCBleGlzdCBhdCBhIHRpbWUgZ2l2ZW4gYSBjZXJ0YWluIGtleS5cbiAgICovXG4gIHJlYWRvbmx5IGtleTogRGJ4UG9wb3ZlcktleTtcbiAgLyoqXG4gICAqIE9yaWdpbiBlbGVtZW50IHRvIHBvc2l0aW9uIG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb3JpZ2luOiBFbGVtZW50UmVmO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gY2xvc2UgaWYgYSB0cmFuc2l0aW9uIG9jY3Vycy5cbiAgICovXG4gIHJlYWRvbmx5IGNsb3NlT25UcmFuc2l0aW9uPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGRpc21pc3Mgd2hlbiB0aGUgZXNjYXBlIGJ1dHRvbiBpcyBwcmVzc2VkLlxuICAgKlxuICAgKiBGYWxzZSBieSBkZWZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgY2xvc2VPbkVzY2FwZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDb21wb25lbnQgdG8gaW5qZWN0IGludG8gdGhlIHBvcG92ZXIuXG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnRDbGFzczogVHlwZTxUPjtcbiAgLyoqXG4gICAqIFBhbmVsIGNsYXNzZXMgdG8gYWRkIHRvIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFuZWxDbGFzcz86IE1heWJlPFNwYWNlU2VwYXJhdGVkQ3NzQ2xhc3Nlcz47XG4gIC8qKlxuICAgKiBEYXRhIGF2YWlsYWJsZSB0byB0aGUgcG9wb3Zlci5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGE/OiBNYXliZTxJPjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIHBvcG92ZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29tcG9uZW50XG4gICAqIEBwYXJhbSBjb250cm9sbGVyXG4gICAqL1xuICByZWFkb25seSBpbml0PzogKGNvbXBvbmVudDogVCwgY29udHJvbGxlcjogRGJ4UG9wb3ZlckNvbnRyb2xsZXI8TywgST4pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbERieFBvcG92ZXJDb21wb25lbnRDb25maWc8TywgSSwgVD4gZXh0ZW5kcyBEYnhQb3BvdmVyQ29tcG9uZW50Q29uZmlnPE8sIEksIFQ+IHtcbiAgY29uZmlndXJhdGlvbjogTmdPdmVybGF5Q29udGFpbmVyQ29uZmlndXJhdGlvbjtcbn1cblxuLyoqXG4gKiBQb3BvdmVyIGNvbXBvbmVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1wb3BvdmVyLWNvb3JkaW5hdG9yIChkYnhXaW5kb3dLZXlEb3duTGlzdGVuZXIpPVwiaGFuZGxlS2V5ZG93bigpXCIgW2FwcFdpbmRvd0tleURvd25GaWx0ZXJdPVwidHJpZ2dlckNsb3NlS2V5c1wiPlxuICAgICAgPGRpdiBkYnhTdHlsZSBjbGFzcz1cImRieC1wb3BvdmVyLWNvbXBvbmVudFwiIGRieC1pbmplY3Rpb24gW2NvbmZpZ109XCJjb250ZW50Q29uZmlnXCI+PC9kaXY+XG4gICAgPC9kYngtcG9wb3Zlci1jb29yZGluYXRvcj5cbiAgYCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRGJ4UG9wb3ZlckNvbnRyb2xsZXIsXG4gICAgICB1c2VFeGlzdGluZzogRGJ4UG9wb3ZlckNvbXBvbmVudFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQ29tcGFjdENvbnRleHRTdG9yZVxuICAgIH1cbiAgXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3NdJzogJ2NvbmZpZy5wYW5lbENsYXNzJ1xuICB9LFxuICBpbXBvcnRzOiBbRGJ4UG9wb3ZlckNvb3JkaW5hdG9yQ29tcG9uZW50LCBEYnhXaW5kb3dLZXlEb3duTGlzdGVuZXJEaXJlY3RpdmUsIERieFN0eWxlRGlyZWN0aXZlLCBEYnhJbmplY3Rpb25Db21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYnhQb3BvdmVyQ29tcG9uZW50PE8gPSB1bmtub3duLCBJID0gdW5rbm93biwgVCA9IHVua25vd24+IGV4dGVuZHMgQWJzdHJhY3RUcmFuc2l0aW9uV2F0Y2hlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIERieFBvcG92ZXJDb250cm9sbGVyPE8sIEk+LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcG9wb3ZlclJlZiA9IGluamVjdChOZ1BvcG92ZXJSZWY8RnVsbERieFBvcG92ZXJDb21wb25lbnRDb25maWc8TywgSSwgVD4sIE8+KTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb21wYWN0Q29udGV4dFN0YXRlID0gaW5qZWN0KENvbXBhY3RDb250ZXh0U3RvcmUpO1xuXG4gIHJlYWRvbmx5IGxvY2tTZXQgPSBuZXcgTG9ja1NldCgpO1xuXG4gIHJlYWRvbmx5IGNvbnRlbnRDb25maWc6IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyA9IHtcbiAgICBjb21wb25lbnRDbGFzczogdGhpcy5jb25maWcuY29tcG9uZW50Q2xhc3MsXG4gICAgaW5pdDogdGhpcy5jb25maWcuaW5pdCA/IChpbnN0YW5jZSkgPT4gKHRoaXMuY29uZmlnIGFzIFJlcXVpcmVkPEZ1bGxEYnhQb3BvdmVyQ29tcG9uZW50Q29uZmlnPE8sIEksIFQ+PikuaW5pdChpbnN0YW5jZSBhcyBULCB0aGlzKSA6IHVuZGVmaW5lZFxuICB9O1xuXG4gIHByaXZhdGUgX3N0YXJ0ZWRDbG9zaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nsb3NpbmcgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgX3RyaWdnZXJDbG9zZUtleXM6IHN0cmluZ1tdID0gW107XG5cbiAgcmVhZG9ubHkgaXNDbG9zaW5nJCA9IHRoaXMuX2Nsb3NpbmcucGlwZShcbiAgICBmaXJzdCgpLFxuICAgIG1hcCgoKSA9PiB0cnVlKSxcbiAgICBzdGFydFdpdGgoZmFsc2UpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY2xvc2luZyQgPSB0aGlzLmlzQ2xvc2luZyQucGlwZShmaWx0ZXIoKHgpID0+IHgpKTtcblxuICBnZXRDbG9zaW5nVmFsdWVGbj86ICh2YWx1ZTogTWF5YmU8ST4sIGNsb3NlVHlwZTogTmdQb3BvdmVyQ2xvc2VUeXBlKSA9PiBQcm9taXNlT3JWYWx1ZTxPIHwgdW5kZWZpbmVkPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gT3ZlcnJpZGUgQ2xvc2UgdG8gcHJvcGVybHkgc2lnbmFsIHRvIGxpc3RlbmVycyB3aGVuIGEgY2xvc2UgaXMgb2NjdXJpbmcuXG4gICAgY29uc3Qgb3JpZ2luYWxDbG9zZSA9IHRoaXMucG9wb3ZlclJlZi5jbG9zZTtcbiAgICB0aGlzLnBvcG92ZXJSZWYuY2xvc2UgPSAoeCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9zdGFydGVkQ2xvc2luZykge1xuICAgICAgICB0aGlzLmxvY2tTZXQubG9ja0ZvclNlY29uZHMoMSk7XG4gICAgICAgIHRoaXMuX3N0YXJ0ZWRDbG9zaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICBvcmlnaW5hbENsb3NlLmNhbGwodGhpcy5wb3BvdmVyUmVmLCB4KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gQWxzbyBpbnRlcmNlcHQgdGhlIF9jbG9zZSBmdW5jdGlvbiB0byBjYXB0dXJlIGJhY2tkcm9wQ2xvc2UsIGV0Yy5cbiAgICBjb25zdCBvcmlnaW5hbF9jbG9zZSA9ICh0aGlzLnBvcG92ZXJSZWYgYXMgYW55KS5fY2xvc2U7XG4gICAgKHRoaXMucG9wb3ZlclJlZiBhcyBhbnkpLl9jbG9zZSA9IChjbG9zZVR5cGU6IE5nUG9wb3ZlckNsb3NlVHlwZSwgaW5wdXRWYWx1ZTogTyB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgY29uc3QgY2xvc2VXaXRoVmFsdWUgPSAodmFsdWU/OiBPIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgIG9yaWdpbmFsX2Nsb3NlLmNhbGwodGhpcy5wb3BvdmVyUmVmLCBjbG9zZVR5cGUsIHZhbHVlKTtcbiAgICAgIH07XG5cbiAgICAgIGlmIChjbG9zZVR5cGUgPT09ICdjbG9zZScgfHwgaW5wdXRWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIGNsb3NlV2l0aFZhbHVlKGlucHV0VmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZXhwZWN0ZWQgdG8gYmUgYSBiYWNrZHJvcCBjbG9zZS4gR2V0IHRoZSBjbG9zaW5nIHZhbHVlIHRoZW4gY2xvc2UuXG4gICAgICAgIHRoaXMuX3VzZUNsb3NpbmdWYWx1ZShjbG9zZVR5cGUsICh4KSA9PiBjbG9zZVdpdGhWYWx1ZSh4KSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IG92ZXJsYXkgPSAodGhpcy5wb3BvdmVyUmVmIGFzIGFueSkuX292ZXJsYXkgYXMgT3ZlcmxheTsgLy8gb3ZlcmxheSBpcyBub3QgcHVibGljYWxseSBhY2Nlc3NpYmxlXG4gICAgY29uc3QgZWxlbWVudFJlZiA9IHRoaXMuY29uZmlnLm9yaWdpbjtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gdGhpcy5jb25maWcuY29uZmlndXJhdGlvbjtcblxuICAgIHRoaXMuY29tcGFjdENvbnRleHRTdGF0ZS5zZXRNb2RlKENvbXBhY3RNb2RlLkNPTVBBQ1QpO1xuICAgIGNvbnN0IHBvc2l0aW9uID0gUG9wb3ZlclBvc2l0aW9uU3RyYXRlZ3kubWFrZShvdmVybGF5LCBlbGVtZW50UmVmLCBjb25maWd1cmF0aW9uKTtcbiAgICB0aGlzLnBvcG92ZXJSZWYub3ZlcmxheS51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHBvc2l0aW9uKTtcbiAgfVxuXG4gIGdldCBjb25maWcoKTogRnVsbERieFBvcG92ZXJDb21wb25lbnRDb25maWc8TywgSSwgVD4ge1xuICAgIHJldHVybiB0aGlzLnBvcG92ZXJSZWYuZGF0YTtcbiAgfVxuXG4gIGdldCBwYW5lbENsYXNzKCk6IE1heWJlPFNwYWNlU2VwYXJhdGVkQ3NzQ2xhc3Nlcz4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5wYW5lbENsYXNzO1xuICB9XG5cbiAgZ2V0IGtleSgpOiBEYnhQb3BvdmVyS2V5IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcua2V5O1xuICB9XG5cbiAgZ2V0IGRhdGEoKTogTWF5YmU8ST4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5kYXRhO1xuICB9XG5cbiAgZ2V0IHRyaWdnZXJDbG9zZUtleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyQ2xvc2VLZXlzO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5jbG9zZU9uRXNjYXBlKSB7XG4gICAgICB0aGlzLl90cmlnZ2VyQ2xvc2VLZXlzID0gWydFc2NhcGUnXTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2tTZXQuZGVzdHJveU9uTmV4dFVubG9jaygoKSA9PiB7XG4gICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgdGhpcy5fY2xvc2luZy5jb21wbGV0ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUZvclN1Y2Nlc3NmdWxUcmFuc2l0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbmZpZy5jbG9zZU9uVHJhbnNpdGlvbiAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvLyBQb3BvdmVyIENvbnRyb2xzXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3N0YXJ0ZWRDbG9zaW5nICYmIHRoaXMuZ2V0Q2xvc2luZ1ZhbHVlRm4gIT0gbnVsbCkge1xuICAgICAgdGhpcy5fdXNlQ2xvc2luZ1ZhbHVlKCdjbG9zZScsICh4KSA9PiB0aGlzLnJldHVybih4KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmV0dXJuKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJldHVybih2YWx1ZT86IE8gfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zaW5nLm5leHQoKTtcbiAgICB0aGlzLnBvcG92ZXJSZWYuY2xvc2UodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXNlQ2xvc2luZ1ZhbHVlKGNsb3NlVHlwZTogTmdQb3BvdmVyQ2xvc2VUeXBlLCB1c2VWYWx1ZTogKHZhbHVlPzogTyB8IHVuZGVmaW5lZCkgPT4gdm9pZCkge1xuICAgIGlmICh0aGlzLmdldENsb3NpbmdWYWx1ZUZuICE9IG51bGwpIHtcbiAgICAgIGFzUHJvbWlzZSh0aGlzLmdldENsb3NpbmdWYWx1ZUZuKHRoaXMuZGF0YSwgY2xvc2VUeXBlKSkudGhlbihcbiAgICAgICAgKHgpID0+IHtcbiAgICAgICAgICB1c2VWYWx1ZSh4KTtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHVzZVZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVzZVZhbHVlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gS2V5cHJlc3Nlc1xuICBoYW5kbGVLZXlkb3duKCkge1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxufVxuIl19
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvaW50ZXJhY3Rpb24vcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF1QyxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUF1RCxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUscUJBQXFCLEVBQStCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0gsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXRFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQW1ELE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxvQkFBb0IsRUFBaUIsTUFBTSxXQUFXLENBQUM7QUFDaEUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBRXZFLE1BQU0sT0FBZ0IsNkJBQW9DLFNBQVEsb0JBQTBCO0lBQzFGLGlCQUFpQixDQUE2QjtDQUMvQztBQWdERDs7R0FFRztBQXVCSCxNQUFNLE9BQU8sbUJBQTJELFNB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RkFBbkIsbUJBQW1CLG1IQWhCbkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsb0JBQW9CO2dCQUM3QixXQUFXLEVBQUUsbUJBQW1CO2FBQ2pDO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLG1CQUFtQjthQUM3QjtTQUNGLGlEQWJTOzs7O0dBSVQsNERBYVMsOEJBQThCLG9FQUFFLGlDQUFpQyxrT0FBRSxpQkFBaUIsOEVBQUUscUJBQXFCOzs0RkFJMUcsbUJBQW1CO2tCQXRCL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7R0FJVDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLG9CQUFvQjs0QkFDN0IsV0FBVyxxQkFBcUI7eUJBQ2pDO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxtQkFBbUI7eUJBQzdCO3FCQUNGO29CQUNELElBQUksRUFBRTt3QkFDSixTQUFTLEVBQUUsbUJBQW1CO3FCQUMvQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxpQ0FBaUMsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsQ0FBQztvQkFDdEgsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVHlwZSwgT25Jbml0LCBPbkRlc3Ryb3ksIEVsZW1lbnRSZWYsIGluamVjdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nT3ZlcmxheUNvbnRhaW5lckNvbmZpZ3VyYXRpb24sIE5nUG9wb3ZlckNsb3NlVHlwZSwgTmdQb3BvdmVyUmVmIH0gZnJvbSAnbmctb3ZlcmxheS1jb250YWluZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RUcmFuc2l0aW9uV2F0Y2hlckRpcmVjdGl2ZSwgRGJ4SW5qZWN0aW9uQ29tcG9uZW50LCBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBmaWx0ZXIsIGZpcnN0LCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBvcG92ZXJQb3NpdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9wb3BvdmVyLnBvc2l0aW9uLnN0cmF0ZWd5JztcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBMb2NrU2V0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBDb21wYWN0Q29udGV4dFN0b3JlLCBDb21wYWN0TW9kZSB9IGZyb20gJy4uLy4uL2xheW91dC9jb21wYWN0JztcbmltcG9ydCB7IGFzUHJvbWlzZSwgTWF5YmUsIFByb21pc2VPclZhbHVlLCBTcGFjZVNlcGFyYXRlZENzc0NsYXNzZXMgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERieFBvcG92ZXJDb250cm9sbGVyLCBEYnhQb3BvdmVyS2V5IH0gZnJvbSAnLi9wb3BvdmVyJztcbmltcG9ydCB7IERieFBvcG92ZXJDb29yZGluYXRvckNvbXBvbmVudCB9IGZyb20gJy4vcG9wb3Zlci5jb29yZGluYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJ4V2luZG93S2V5RG93bkxpc3RlbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4va2V5cHJlc3MnO1xuaW1wb3J0IHsgRGJ4U3R5bGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9sYXlvdXQvc3R5bGUvc3R5bGUuZGlyZWN0aXZlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERieFBvcG92ZXJDb21wb25lbnRDb250cm9sbGVyPE8sIEk+IGV4dGVuZHMgRGJ4UG9wb3ZlckNvbnRyb2xsZXI8TywgST4ge1xuICBnZXRDbG9zaW5nVmFsdWVGbj86ICh2YWx1ZT86IEkpID0+IFByb21pc2U8Tz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4UG9wb3ZlckNvbXBvbmVudENvbmZpZzxPLCBJLCBUPiB7XG4gIC8qKlxuICAgKiBLZXkgdXNlZCBmb3IgdW5pcXVlbHkgaWRlbnRpZnlpbmcgYSBsaW1pdGVkIGluc3RhbmNlLlxuICAgKlxuICAgKiBPbmx5IG9uZSBwb3BvdmVyIHNob3VsZCBleGlzdCBhdCBhIHRpbWUgZ2l2ZW4gYSBjZXJ0YWluIGtleS5cbiAgICovXG4gIHJlYWRvbmx5IGtleTogRGJ4UG9wb3ZlcktleTtcbiAgLyoqXG4gICAqIE9yaWdpbiBlbGVtZW50IHRvIHBvc2l0aW9uIG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb3JpZ2luOiBFbGVtZW50UmVmO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gY2xvc2UgaWYgYSB0cmFuc2l0aW9uIG9jY3Vycy5cbiAgICovXG4gIHJlYWRvbmx5IGNsb3NlT25UcmFuc2l0aW9uPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGRpc21pc3Mgd2hlbiB0aGUgZXNjYXBlIGJ1dHRvbiBpcyBwcmVzc2VkLlxuICAgKlxuICAgKiBGYWxzZSBieSBkZWZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgY2xvc2VPbkVzY2FwZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDb21wb25lbnQgdG8gaW5qZWN0IGludG8gdGhlIHBvcG92ZXIuXG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnRDbGFzczogVHlwZTxUPjtcbiAgLyoqXG4gICAqIFBhbmVsIGNsYXNzZXMgdG8gYWRkIHRvIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFuZWxDbGFzcz86IE1heWJlPFNwYWNlU2VwYXJhdGVkQ3NzQ2xhc3Nlcz47XG4gIC8qKlxuICAgKiBEYXRhIGF2YWlsYWJsZSB0byB0aGUgcG9wb3Zlci5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGE/OiBNYXliZTxJPjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIHBvcG92ZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29tcG9uZW50XG4gICAqIEBwYXJhbSBjb250cm9sbGVyXG4gICAqL1xuICByZWFkb25seSBpbml0PzogKGNvbXBvbmVudDogVCwgY29udHJvbGxlcjogRGJ4UG9wb3ZlckNvbnRyb2xsZXI8TywgST4pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbERieFBvcG92ZXJDb21wb25lbnRDb25maWc8TywgSSwgVD4gZXh0ZW5kcyBEYnhQb3BvdmVyQ29tcG9uZW50Q29uZmlnPE8sIEksIFQ+IHtcbiAgY29uZmlndXJhdGlvbjogTmdPdmVybGF5Q29udGFpbmVyQ29uZmlndXJhdGlvbjtcbn1cblxuLyoqXG4gKiBQb3BvdmVyIGNvbXBvbmVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1wb3BvdmVyLWNvb3JkaW5hdG9yIChkYnhXaW5kb3dLZXlEb3duTGlzdGVuZXIpPVwiaGFuZGxlS2V5ZG93bigpXCIgW2FwcFdpbmRvd0tleURvd25GaWx0ZXJdPVwidHJpZ2dlckNsb3NlS2V5c1wiPlxuICAgICAgPGRpdiBkYnhTdHlsZSBjbGFzcz1cImRieC1wb3BvdmVyLWNvbXBvbmVudFwiIGRieC1pbmplY3Rpb24gW2NvbmZpZ109XCJjb250ZW50Q29uZmlnXCI+PC9kaXY+XG4gICAgPC9kYngtcG9wb3Zlci1jb29yZGluYXRvcj5cbiAgYCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRGJ4UG9wb3ZlckNvbnRyb2xsZXIsXG4gICAgICB1c2VFeGlzdGluZzogRGJ4UG9wb3ZlckNvbXBvbmVudFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQ29tcGFjdENvbnRleHRTdG9yZVxuICAgIH1cbiAgXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3NdJzogJ2NvbmZpZy5wYW5lbENsYXNzJ1xuICB9LFxuICBpbXBvcnRzOiBbRGJ4UG9wb3ZlckNvb3JkaW5hdG9yQ29tcG9uZW50LCBEYnhXaW5kb3dLZXlEb3duTGlzdGVuZXJEaXJlY3RpdmUsIERieFN0eWxlRGlyZWN0aXZlLCBEYnhJbmplY3Rpb25Db21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYnhQb3BvdmVyQ29tcG9uZW50PE8gPSB1bmtub3duLCBJID0gdW5rbm93biwgVCA9IHVua25vd24+IGV4dGVuZHMgQWJzdHJhY3RUcmFuc2l0aW9uV2F0Y2hlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIERieFBvcG92ZXJDb250cm9sbGVyPE8sIEk+LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcG9wb3ZlclJlZiA9IGluamVjdChOZ1BvcG92ZXJSZWY8RnVsbERieFBvcG92ZXJDb21wb25lbnRDb25maWc8TywgSSwgVD4sIE8+KTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb21wYWN0Q29udGV4dFN0YXRlID0gaW5qZWN0KENvbXBhY3RDb250ZXh0U3RvcmUpO1xuXG4gIHJlYWRvbmx5IGxvY2tTZXQgPSBuZXcgTG9ja1NldCgpO1xuXG4gIHJlYWRvbmx5IGNvbnRlbnRDb25maWc6IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyA9IHtcbiAgICBjb21wb25lbnRDbGFzczogdGhpcy5jb25maWcuY29tcG9uZW50Q2xhc3MsXG4gICAgaW5pdDogdGhpcy5jb25maWcuaW5pdCA/IChpbnN0YW5jZSkgPT4gKHRoaXMuY29uZmlnIGFzIFJlcXVpcmVkPEZ1bGxEYnhQb3BvdmVyQ29tcG9uZW50Q29uZmlnPE8sIEksIFQ+PikuaW5pdChpbnN0YW5jZSBhcyBULCB0aGlzKSA6IHVuZGVmaW5lZFxuICB9O1xuXG4gIHByaXZhdGUgX3N0YXJ0ZWRDbG9zaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nsb3NpbmcgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgX3RyaWdnZXJDbG9zZUtleXM6IHN0cmluZ1tdID0gW107XG5cbiAgcmVhZG9ubHkgaXNDbG9zaW5nJCA9IHRoaXMuX2Nsb3NpbmcucGlwZShcbiAgICBmaXJzdCgpLFxuICAgIG1hcCgoKSA9PiB0cnVlKSxcbiAgICBzdGFydFdpdGgoZmFsc2UpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY2xvc2luZyQgPSB0aGlzLmlzQ2xvc2luZyQucGlwZShmaWx0ZXIoKHgpID0+IHgpKTtcblxuICBnZXRDbG9zaW5nVmFsdWVGbj86ICh2YWx1ZTogTWF5YmU8ST4sIGNsb3NlVHlwZTogTmdQb3BvdmVyQ2xvc2VUeXBlKSA9PiBQcm9taXNlT3JWYWx1ZTxPIHwgdW5kZWZpbmVkPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gT3ZlcnJpZGUgQ2xvc2UgdG8gcHJvcGVybHkgc2lnbmFsIHRvIGxpc3RlbmVycyB3aGVuIGEgY2xvc2UgaXMgb2NjdXJpbmcuXG4gICAgY29uc3Qgb3JpZ2luYWxDbG9zZSA9IHRoaXMucG9wb3ZlclJlZi5jbG9zZTtcbiAgICB0aGlzLnBvcG92ZXJSZWYuY2xvc2UgPSAoeCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9zdGFydGVkQ2xvc2luZykge1xuICAgICAgICB0aGlzLmxvY2tTZXQubG9ja0ZvclNlY29uZHMoMSk7XG4gICAgICAgIHRoaXMuX3N0YXJ0ZWRDbG9zaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICBvcmlnaW5hbENsb3NlLmNhbGwodGhpcy5wb3BvdmVyUmVmLCB4KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gQWxzbyBpbnRlcmNlcHQgdGhlIF9jbG9zZSBmdW5jdGlvbiB0byBjYXB0dXJlIGJhY2tkcm9wQ2xvc2UsIGV0Yy5cbiAgICBjb25zdCBvcmlnaW5hbF9jbG9zZSA9ICh0aGlzLnBvcG92ZXJSZWYgYXMgYW55KS5fY2xvc2U7XG4gICAgKHRoaXMucG9wb3ZlclJlZiBhcyBhbnkpLl9jbG9zZSA9IChjbG9zZVR5cGU6IE5nUG9wb3ZlckNsb3NlVHlwZSwgaW5wdXRWYWx1ZTogTyB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgY29uc3QgY2xvc2VXaXRoVmFsdWUgPSAodmFsdWU/OiBPIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgIG9yaWdpbmFsX2Nsb3NlLmNhbGwodGhpcy5wb3BvdmVyUmVmLCBjbG9zZVR5cGUsIHZhbHVlKTtcbiAgICAgIH07XG5cbiAgICAgIGlmIChjbG9zZVR5cGUgPT09ICdjbG9zZScgfHwgaW5wdXRWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIGNsb3NlV2l0aFZhbHVlKGlucHV0VmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZXhwZWN0ZWQgdG8gYmUgYSBiYWNrZHJvcCBjbG9zZS4gR2V0IHRoZSBjbG9zaW5nIHZhbHVlIHRoZW4gY2xvc2UuXG4gICAgICAgIHRoaXMuX3VzZUNsb3NpbmdWYWx1ZShjbG9zZVR5cGUsICh4KSA9PiBjbG9zZVdpdGhWYWx1ZSh4KSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IG92ZXJsYXkgPSAodGhpcy5wb3BvdmVyUmVmIGFzIGFueSkuX292ZXJsYXkgYXMgT3ZlcmxheTsgLy8gb3ZlcmxheSBpcyBub3QgcHVibGljYWxseSBhY2Nlc3NpYmxlXG4gICAgY29uc3QgZWxlbWVudFJlZiA9IHRoaXMuY29uZmlnLm9yaWdpbjtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gdGhpcy5jb25maWcuY29uZmlndXJhdGlvbjtcblxuICAgIHRoaXMuY29tcGFjdENvbnRleHRTdGF0ZS5zZXRNb2RlKENvbXBhY3RNb2RlLkNPTVBBQ1QpO1xuICAgIGNvbnN0IHBvc2l0aW9uID0gUG9wb3ZlclBvc2l0aW9uU3RyYXRlZ3kubWFrZShvdmVybGF5LCBlbGVtZW50UmVmLCBjb25maWd1cmF0aW9uKTtcbiAgICB0aGlzLnBvcG92ZXJSZWYub3ZlcmxheS51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHBvc2l0aW9uKTtcbiAgfVxuXG4gIGdldCBjb25maWcoKTogRnVsbERieFBvcG92ZXJDb21wb25lbnRDb25maWc8TywgSSwgVD4ge1xuICAgIHJldHVybiB0aGlzLnBvcG92ZXJSZWYuZGF0YTtcbiAgfVxuXG4gIGdldCBwYW5lbENsYXNzKCk6IE1heWJlPFNwYWNlU2VwYXJhdGVkQ3NzQ2xhc3Nlcz4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5wYW5lbENsYXNzO1xuICB9XG5cbiAgZ2V0IGtleSgpOiBEYnhQb3BvdmVyS2V5IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcua2V5O1xuICB9XG5cbiAgZ2V0IGRhdGEoKTogTWF5YmU8ST4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5kYXRhO1xuICB9XG5cbiAgZ2V0IHRyaWdnZXJDbG9zZUtleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyQ2xvc2VLZXlzO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5jbG9zZU9uRXNjYXBlKSB7XG4gICAgICB0aGlzLl90cmlnZ2VyQ2xvc2VLZXlzID0gWydFc2NhcGUnXTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2tTZXQuZGVzdHJveU9uTmV4dFVubG9jaygoKSA9PiB7XG4gICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgdGhpcy5fY2xvc2luZy5jb21wbGV0ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUZvclN1Y2Nlc3NmdWxUcmFuc2l0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbmZpZy5jbG9zZU9uVHJhbnNpdGlvbiAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvLyBQb3BvdmVyIENvbnRyb2xzXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3N0YXJ0ZWRDbG9zaW5nICYmIHRoaXMuZ2V0Q2xvc2luZ1ZhbHVlRm4gIT0gbnVsbCkge1xuICAgICAgdGhpcy5fdXNlQ2xvc2luZ1ZhbHVlKCdjbG9zZScsICh4KSA9PiB0aGlzLnJldHVybih4KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmV0dXJuKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJldHVybih2YWx1ZT86IE8gfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zaW5nLm5leHQoKTtcbiAgICB0aGlzLnBvcG92ZXJSZWYuY2xvc2UodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXNlQ2xvc2luZ1ZhbHVlKGNsb3NlVHlwZTogTmdQb3BvdmVyQ2xvc2VUeXBlLCB1c2VWYWx1ZTogKHZhbHVlPzogTyB8IHVuZGVmaW5lZCkgPT4gdm9pZCkge1xuICAgIGlmICh0aGlzLmdldENsb3NpbmdWYWx1ZUZuICE9IG51bGwpIHtcbiAgICAgIGFzUHJvbWlzZSh0aGlzLmdldENsb3NpbmdWYWx1ZUZuKHRoaXMuZGF0YSwgY2xvc2VUeXBlKSkudGhlbihcbiAgICAgICAgKHgpID0+IHtcbiAgICAgICAgICB1c2VWYWx1ZSh4KTtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHVzZVZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVzZVZhbHVlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gS2V5cHJlc3Nlc1xuICBoYW5kbGVLZXlkb3duKCkge1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxufVxuIl19
@@ -1,11 +1,23 @@
1
1
  import { HostListener, Directive, input, output, computed } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ * Binds to the window:keydown event and emits events.
5
+ */
3
6
  export class DbxWindowKeyDownListenerDirective {
4
7
  dbxWindowKeyDownListener = output();
8
+ /**
9
+ * @deprecated Use dbxWindowKeyDownEnabled instead.
10
+ */
5
11
  appWindowKeyDownEnabled = input();
12
+ /**
13
+ * @deprecated Use dbxWindowKeyDownFilter instead.
14
+ */
6
15
  appWindowKeyDownFilter = input();
7
- keysFilter = computed(() => {
8
- const filterOnKeys = this.appWindowKeyDownFilter();
16
+ dbxWindowKeyDownEnabled = input();
17
+ dbxWindowKeyDownFilter = input();
18
+ isEnabledSignal = computed(() => this.dbxWindowKeyDownEnabled() ?? this.appWindowKeyDownEnabled());
19
+ keysFilterSignal = computed(() => {
20
+ const filterOnKeys = this.dbxWindowKeyDownFilter() ?? this.appWindowKeyDownFilter();
9
21
  let filter;
10
22
  if (filterOnKeys) {
11
23
  filter = new Set(filterOnKeys);
@@ -13,15 +25,16 @@ export class DbxWindowKeyDownListenerDirective {
13
25
  return filter;
14
26
  });
15
27
  handleKeyboardEvent(event) {
16
- const keysFilter = this.keysFilter();
17
- if (this.appWindowKeyDownEnabled() !== false) {
28
+ const keysFilter = this.keysFilterSignal();
29
+ const enabled = this.isEnabledSignal();
30
+ if (enabled !== false) {
18
31
  if (!keysFilter || keysFilter.has(event.key)) {
19
32
  this.dbxWindowKeyDownListener.emit(event);
20
33
  }
21
34
  }
22
35
  }
23
36
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxWindowKeyDownListenerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
24
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxWindowKeyDownListenerDirective, isStandalone: true, selector: "[dbxWindowKeyDownListener]", inputs: { appWindowKeyDownEnabled: { classPropertyName: "appWindowKeyDownEnabled", publicName: "appWindowKeyDownEnabled", isSignal: true, isRequired: false, transformFunction: null }, appWindowKeyDownFilter: { classPropertyName: "appWindowKeyDownFilter", publicName: "appWindowKeyDownFilter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dbxWindowKeyDownListener: "dbxWindowKeyDownListener" }, host: { listeners: { "window:keydown": "handleKeyboardEvent($event)" } }, ngImport: i0 });
37
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxWindowKeyDownListenerDirective, isStandalone: true, selector: "[dbxWindowKeyDownListener]", inputs: { appWindowKeyDownEnabled: { classPropertyName: "appWindowKeyDownEnabled", publicName: "appWindowKeyDownEnabled", isSignal: true, isRequired: false, transformFunction: null }, appWindowKeyDownFilter: { classPropertyName: "appWindowKeyDownFilter", publicName: "appWindowKeyDownFilter", isSignal: true, isRequired: false, transformFunction: null }, dbxWindowKeyDownEnabled: { classPropertyName: "dbxWindowKeyDownEnabled", publicName: "dbxWindowKeyDownEnabled", isSignal: true, isRequired: false, transformFunction: null }, dbxWindowKeyDownFilter: { classPropertyName: "dbxWindowKeyDownFilter", publicName: "dbxWindowKeyDownFilter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dbxWindowKeyDownListener: "dbxWindowKeyDownListener" }, host: { listeners: { "window:keydown": "handleKeyboardEvent($event)" } }, ngImport: i0 });
25
38
  }
26
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxWindowKeyDownListenerDirective, decorators: [{
27
40
  type: Directive,
@@ -33,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
33
46
  type: HostListener,
34
47
  args: ['window:keydown', ['$event']]
35
48
  }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5ZG93bi5saXN0ZW5lci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIva2V5cHJlc3Mva2V5ZG93bi5saXN0ZW5lci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBT2pGLE1BQU0sT0FBTyxpQ0FBaUM7SUFDbkMsd0JBQXdCLEdBQUcsTUFBTSxFQUFpQixDQUFDO0lBRW5ELHVCQUF1QixHQUFHLEtBQUssRUFBVyxDQUFDO0lBQzNDLHNCQUFzQixHQUFHLEtBQUssRUFBbUIsQ0FBQztJQUVsRCxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUNsQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNuRCxJQUFJLE1BQTBCLENBQUM7UUFFL0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBR0gsbUJBQW1CLENBQUMsS0FBb0I7UUFDdEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRXJDLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzt3R0ExQlUsaUNBQWlDOzRGQUFqQyxpQ0FBaUM7OzRGQUFqQyxpQ0FBaUM7a0JBSjdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQW1CQyxtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIb3N0TGlzdGVuZXIsIERpcmVjdGl2ZSwgaW5wdXQsIG91dHB1dCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieFdpbmRvd0tleURvd25MaXN0ZW5lcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieFdpbmRvd0tleURvd25MaXN0ZW5lckRpcmVjdGl2ZSB7XG4gIHJlYWRvbmx5IGRieFdpbmRvd0tleURvd25MaXN0ZW5lciA9IG91dHB1dDxLZXlib2FyZEV2ZW50PigpO1xuXG4gIHJlYWRvbmx5IGFwcFdpbmRvd0tleURvd25FbmFibGVkID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgYXBwV2luZG93S2V5RG93bkZpbHRlciA9IGlucHV0PE1heWJlPHN0cmluZ1tdPj4oKTtcblxuICByZWFkb25seSBrZXlzRmlsdGVyID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGZpbHRlck9uS2V5cyA9IHRoaXMuYXBwV2luZG93S2V5RG93bkZpbHRlcigpO1xuICAgIGxldCBmaWx0ZXI6IE1heWJlPFNldDxzdHJpbmc+PjtcblxuICAgIGlmIChmaWx0ZXJPbktleXMpIHtcbiAgICAgIGZpbHRlciA9IG5ldyBTZXQoZmlsdGVyT25LZXlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyO1xuICB9KTtcblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBrZXlzRmlsdGVyID0gdGhpcy5rZXlzRmlsdGVyKCk7XG5cbiAgICBpZiAodGhpcy5hcHBXaW5kb3dLZXlEb3duRW5hYmxlZCgpICE9PSBmYWxzZSkge1xuICAgICAgaWYgKCFrZXlzRmlsdGVyIHx8IGtleXNGaWx0ZXIuaGFzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgdGhpcy5kYnhXaW5kb3dLZXlEb3duTGlzdGVuZXIuZW1pdChldmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5ZG93bi5saXN0ZW5lci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIva2V5cHJlc3Mva2V5ZG93bi5saXN0ZW5lci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR2pGOztHQUVHO0FBS0gsTUFBTSxPQUFPLGlDQUFpQztJQUNuQyx3QkFBd0IsR0FBRyxNQUFNLEVBQWlCLENBQUM7SUFFNUQ7O09BRUc7SUFDTSx1QkFBdUIsR0FBRyxLQUFLLEVBQWtCLENBQUM7SUFFM0Q7O09BRUc7SUFDTSxzQkFBc0IsR0FBRyxLQUFLLEVBQW1CLENBQUM7SUFFbEQsdUJBQXVCLEdBQUcsS0FBSyxFQUFrQixDQUFDO0lBQ2xELHNCQUFzQixHQUFHLEtBQUssRUFBbUIsQ0FBQztJQUVsRCxlQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLENBQUM7SUFFbkcsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN4QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNwRixJQUFJLE1BQTBCLENBQUM7UUFFL0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBR0gsbUJBQW1CLENBQUMsS0FBb0I7UUFDdEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXZDLElBQUksT0FBTyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7d0dBdkNVLGlDQUFpQzs0RkFBakMsaUNBQWlDOzs0RkFBakMsaUNBQWlDO2tCQUo3QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkErQkMsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSG9zdExpc3RlbmVyLCBEaXJlY3RpdmUsIGlucHV0LCBvdXRwdXQsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbi8qKlxuICogQmluZHMgdG8gdGhlIHdpbmRvdzprZXlkb3duIGV2ZW50IGFuZCBlbWl0cyBldmVudHMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYnhXaW5kb3dLZXlEb3duTGlzdGVuZXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhXaW5kb3dLZXlEb3duTGlzdGVuZXJEaXJlY3RpdmUge1xuICByZWFkb25seSBkYnhXaW5kb3dLZXlEb3duTGlzdGVuZXIgPSBvdXRwdXQ8S2V5Ym9hcmRFdmVudD4oKTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGRieFdpbmRvd0tleURvd25FbmFibGVkIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSBhcHBXaW5kb3dLZXlEb3duRW5hYmxlZCA9IGlucHV0PE1heWJlPGJvb2xlYW4+PigpO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgZGJ4V2luZG93S2V5RG93bkZpbHRlciBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwV2luZG93S2V5RG93bkZpbHRlciA9IGlucHV0PE1heWJlPHN0cmluZ1tdPj4oKTtcblxuICByZWFkb25seSBkYnhXaW5kb3dLZXlEb3duRW5hYmxlZCA9IGlucHV0PE1heWJlPGJvb2xlYW4+PigpO1xuICByZWFkb25seSBkYnhXaW5kb3dLZXlEb3duRmlsdGVyID0gaW5wdXQ8TWF5YmU8c3RyaW5nW10+PigpO1xuXG4gIHJlYWRvbmx5IGlzRW5hYmxlZFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGJ4V2luZG93S2V5RG93bkVuYWJsZWQoKSA/PyB0aGlzLmFwcFdpbmRvd0tleURvd25FbmFibGVkKCkpO1xuXG4gIHJlYWRvbmx5IGtleXNGaWx0ZXJTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgZmlsdGVyT25LZXlzID0gdGhpcy5kYnhXaW5kb3dLZXlEb3duRmlsdGVyKCkgPz8gdGhpcy5hcHBXaW5kb3dLZXlEb3duRmlsdGVyKCk7XG4gICAgbGV0IGZpbHRlcjogTWF5YmU8U2V0PHN0cmluZz4+O1xuXG4gICAgaWYgKGZpbHRlck9uS2V5cykge1xuICAgICAgZmlsdGVyID0gbmV3IFNldChmaWx0ZXJPbktleXMpO1xuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXI7XG4gIH0pO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGNvbnN0IGtleXNGaWx0ZXIgPSB0aGlzLmtleXNGaWx0ZXJTaWduYWwoKTtcbiAgICBjb25zdCBlbmFibGVkID0gdGhpcy5pc0VuYWJsZWRTaWduYWwoKTtcblxuICAgIGlmIChlbmFibGVkICE9PSBmYWxzZSkge1xuICAgICAgaWYgKCFrZXlzRmlsdGVyIHx8IGtleXNGaWx0ZXIuaGFzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgdGhpcy5kYnhXaW5kb3dLZXlEb3duTGlzdGVuZXIuZW1pdChldmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -100,4 +100,4 @@ export function dbxTableReader(config) {
100
100
  cellDataForColumnAndItem
101
101
  };
102
102
  }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi90YWJsZS9zcmMvbGliL3RhYmxlLnJlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0YsT0FBTyxFQUF1QixzQkFBc0IsRUFBMkIsTUFBTSxlQUFlLENBQUM7QUEyQnJHOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSx3Q0FBd0MsR0FBcUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7QUE0RXhKLE1BQU0sVUFBVSxjQUFjLENBQXVCLE1BQXdDO0lBQzNGLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ3hDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUM7SUFDOUIsTUFBTSxFQUFFLHlCQUF5QixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDekYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSx3Q0FBd0MsQ0FBMkMsQ0FBQztJQVU3SCxNQUFNLDJCQUEyQixHQUFHLENBQUMsTUFBeUIsRUFBd0QsRUFBRTtRQUN0SCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsTUFBTSxjQUFjLEdBQXNELEVBQUUsQ0FBQztZQUM3RSxNQUFNLGVBQWUsR0FBbUQsRUFBRSxDQUFDO1lBRTNFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDakIsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FB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Q0FBQyxDQUNmLENBQUM7UUFFRixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDLENBQUM7SUFFRixNQUFNLHdCQUF3QixHQUFHLENBQUMsTUFBeUIsRUFBRSxJQUFPLEVBQXdCLEVBQUU7UUFDNUYsT0FBTyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLFVBQVU7UUFDVixRQUFRO1FBQ1Isc0JBQXNCO1FBQ3RCLGlCQUFpQjtRQUNqQiw0QkFBNEI7UUFDNUIsd0JBQXdCO0tBQ3pCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcmltYXRpdmVLZXksIE1heWJlLCBmaWx0ZXJNYXliZUFycmF5VmFsdWVzLCBSZWFkUmVxdWlyZWRLZXlGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4VGFibGVDb2x1bW4gfSBmcm9tICcuL3RhYmxlJztcbmltcG9ydCB7IERieFRhYmxlU3RvcmUgfSBmcm9tICcuL3RhYmxlLnN0b3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhUYWJsZVJlYWRlckNlbGxQYWlyPEMsIFQ+IHtcbiAgcmVhZG9ubHkgY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPjtcbiAgcmVhZG9ubHkgaXRlbTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhUYWJsZVJlYWRlckNlbGxEYXRhUGFpcjxDLCBULCBPPiBleHRlbmRzIERieFRhYmxlUmVhZGVyQ2VsbFBhaXI8QywgVD4ge1xuICByZWFkb25seSB2YWx1ZTogTztcbn1cblxuLyoqXG4gKiBLZXkgdXNlZCBmb3IgdHJhY2tpbmcgY29sdW1ucy5cbiAqXG4gKiBHZW5lcmFsbHkgdGhlIHRhYmxlIG5hbWUgaXMgdXNlZCBmb3IgdGhpcy5cbiAqL1xuZXhwb3J0IHR5cGUgRGJ4VGFibGVSZWFkZXJDb2x1bW5LZXkgPSBzdHJpbmc7XG5cbi8qKlxuICogS2V5IHVzZWQgZm9yIHRyYWNraW5nIGl0ZW1zLlxuICpcbiAqIEdlbmVyYWxseSB0aGUgaXRlbSdzIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHVzZWQgZm9yIHRoaXMuXG4gKi9cbmV4cG9ydCB0eXBlIERieFRhYmxlUmVhZGVySXRlbUtleSA9IFByaW1hdGl2ZUtleTtcblxuLyoqXG4gKiBEZWZhdWx0IHRyYWNrIGJ5IGZ1bmN0aW9uIGZvciBEYnhUYWJsZUNvbHVtbi5cbiAqXG4gKiBSZXR1cm5zIHRoZSBjb2x1bW4gbmFtZS5cbiAqXG4gKiBAcGFyYW0gY29sdW1uXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQlhfVEFCTEVfUkVBREVSX0NPTFVNTl9UUkFDS19CWTogUmVhZFJlcXVpcmVkS2V5RnVuY3Rpb248RGJ4VGFibGVDb2x1bW48RGJ4VGFibGVSZWFkZXJDb2x1bW5LZXk+PiA9IChjb2x1bW4pID0+IGNvbHVtbi5jb2x1bW5OYW1lO1xuXG4vKipcbiAqIEZ1bmN0aW9uIHVzZWQgZm9yIHRyYWNraW5nIHVuaXF1ZSBjb2x1bW5zIHVzaW5nIHRoZSBjb2x1bW4ncyBkYXRhLlxuICpcbiAqIElmIHRoZSBjb2x1bW4ga2V5IHZhbHVlIGlzIHRoZSBzYW1lIGJldHdlZW4gdGhvc2UgdHdvIGNvbHVtbnMsIHRoZW4gdGhlIG1ldGFkYXRhIG9mIGJvdGggY29sdW1ucyB3aWxsIGJlIGNvbnNpZGVyZWQgdGhlIHNhbWUvZXF1YWwuXG4gKi9cbmV4cG9ydCB0eXBlIERieFRhYmxlUmVhZGVyQ29sdW1uVHJhY2tCeUZ1bmN0aW9uPEM+ID0gUmVhZFJlcXVpcmVkS2V5RnVuY3Rpb248RGJ4VGFibGVDb2x1bW48Qz4sIERieFRhYmxlUmVhZGVyQ29sdW1uS2V5PjtcblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIGZvciB0cmFja2luZyB1bmlxdWUgY29sdW1ucyB1c2luZyB0aGUgY29sdW1uJ3MgZGF0YS5cbiAqXG4gKiBJZiB0aGUgY29sdW1uIGtleSB2YWx1ZSBpcyB0aGUgc2FtZSBiZXR3ZWVuIHRob3NlIHR3byBjb2x1bW5zLCB0aGVuIHRoZSBtZXRhZGF0YSBvZiBib3RoIGNvbHVtbnMgd2lsbCBiZSBjb25zaWRlcmVkIHRoZSBzYW1lL2VxdWFsLlxuICovXG5leHBvcnQgdHlwZSBEYnhUYWJsZVJlYWRlckl0ZW1UcmFja0J5RnVuY3Rpb248VD4gPSBSZWFkUmVxdWlyZWRLZXlGdW5jdGlvbjxULCBEYnhUYWJsZVJlYWRlckl0ZW1LZXk+O1xuXG5leHBvcnQgaW50ZXJmYWNlIERieFRhYmxlUmVhZGVyRGVsZWdhdGU8QywgVCwgTz4ge1xuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBkYXRhIGZvciBhIHNwZWNpZmljIGNvbHVtbiBhbmQgaXRlbS9yb3cuXG4gICAqXG4gICAqIEBwYXJhbSBjb2x1bW5cbiAgICogQHBhcmFtIGl0ZW1cbiAgICovXG4gIHJlYWRJdGVtQ2VsbERhdGFGb3JDb2x1bW4oY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPiwgaXRlbTogVCk6IE9ic2VydmFibGU8Tz47XG4gIC8qKlxuICAgKiBVc2VkIGZvciB0cmFja2luZyB1bmlxdWUgY29sdW1ucy5cbiAgICpcbiAgICogVXNlIGlmIHRoZSBtZXRhZGF0YSBiZXR3ZWVuIGNvbHVtbnMgc2hvdWxkIGJlIHVzZWQgZm9yIHVuaXF1ZSBpZGVudGlmaWNhdGlvbi5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gdXNpbmcgdGhlIGNvbHVtbiBuYW1lIGFzIHRoZSBrZXkgaWYgbm90IGRlZmluZWQuXG4gICAqL1xuICB0cmFja0NvbHVtbj86IERieFRhYmxlUmVhZGVyQ29sdW1uVHJhY2tCeUZ1bmN0aW9uPEM+O1xuICAvKipcbiAgICogVXNlZCBmb3IgdHJhY2tpbmcgdW5pcXVlIGl0ZW1zL3Jvd3MuXG4gICAqXG4gICAqIFVzZSBpZiB0aGUgbWV0YWRhdGEgYmV0d2VlbiBpdGVtcyBzaG91bGQgYmUgdXNlZCBmb3IgdW5pcXVlIGlkZW50aWZpY2F0aW9uLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byB1c2luZyB0aGUgaXRlbSBpdHNlbGYgYXMgdGhlIGtleSBpZiBub3QgZGVmaW5lZC5cbiAgICovXG4gIHRyYWNrSXRlbTogRGJ4VGFibGVSZWFkZXJJdGVtVHJhY2tCeUZ1bmN0aW9uPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieFRhYmxlUmVhZGVyQ29uZmlnPEMsIFQsIE8sIEcgPSB1bmtub3duPiB7XG4gIC8qKlxuICAgKiBEZWxlZ2F0ZSB1c2VkIGZvciByZXRyaWV2aW5nIHRoZSBkYXRhIGZvciBhIHNwZWNpZmljIGNvbHVtbiBhbmQgaXRlbS9yb3cuXG4gICAqL1xuICByZWFkb25seSBkZWxlZ2F0ZTogRGJ4VGFibGVSZWFkZXJEZWxlZ2F0ZTxDLCBULCBPPjtcbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBzdG9yZSB1c2VkIGZvciByZXRyaWV2aW5nIHRoZSBpdGVtcy5cbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlU3RvcmU6IERieFRhYmxlU3RvcmU8YW55LCBDLCBULCBHPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhUYWJsZVJlYWRlcjxDLCBULCBPLCBHID0gdW5rbm93bj4gZXh0ZW5kcyBEYnhUYWJsZVJlYWRlckNvbmZpZzxDLCBULCBPLCBHPiB7XG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYWxsIGNlbGwgZGF0YSBwYWlycyBmb3IgYSBzcGVjaWZpYyBjb2x1bW4uXG4gICAqL1xuICBjZWxsRGF0YVBhaXJzRm9yQ29sdW1uKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4pOiBPYnNlcnZhYmxlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFQYWlyPEMsIFQsIE8+W10+O1xuICAvKipcbiAgICogUmV0cmlldmVzIGFsbCBjZWxsIGRhdGEgZm9yIGEgc3BlY2lmaWMgY29sdW1uLlxuICAgKi9cbiAgY2VsbERhdGFGb3JDb2x1bW4oY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPik6IE9ic2VydmFibGU8T1tdPjtcbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgY2VsbCBkYXRhIHBhaXIgZm9yIGEgc3BlY2lmaWMgY29sdW1uIGFuZCBpdGVtLlxuICAgKlxuICAgKiBSZXR1cm5zIG51bGwgaWYgdGhlIGNvbHVtbiBpcyBub3QgdmlzaWJsZSBvciB0aGUgaXRlbSBpcyBub3QgZm91bmQuXG4gICAqL1xuICBjZWxsRGF0YVBhaXJGb3JDb2x1bW5BbmRJdGVtKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4sIGl0ZW06IFQpOiBPYnNlcnZhYmxlPE1heWJlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFQYWlyPEMsIFQsIE8+Pj47XG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGNlbGwgZGF0YSBmb3IgYSBzcGVjaWZpYyBjb2x1bW4gYW5kIGl0ZW0uXG4gICAqXG4gICAqIFJldHVybnMgbnVsbCBpZiB0aGUgY29sdW1uIGlzIG5vdCB2aXNpYmxlIG9yIHRoZSBpdGVtIGlzIG5vdCBmb3VuZC5cbiAgICovXG4gIGNlbGxEYXRhRm9yQ29sdW1uQW5kSXRlbShjb2x1bW46IERieFRhYmxlQ29sdW1uPEM+LCBpdGVtOiBUKTogT2JzZXJ2YWJsZTxNYXliZTxPPj47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhUYWJsZVJlYWRlcjxDLCBULCBPLCBHID0gdW5rbm93bj4oY29uZmlnOiBEYnhUYWJsZVJlYWRlckNvbmZpZzxDLCBULCBPLCBHPik6IERieFRhYmxlUmVhZGVyPEMsIFQsIE8sIEc+IHtcbiAgY29uc3QgeyBkZWxlZ2F0ZSwgdGFibGVTdG9yZSB9ID0gY29uZmlnO1xuICBjb25zdCB7IGl0ZW1zJCB9ID0gdGFibGVTdG9yZTtcbiAgY29uc3QgeyByZWFkSXRlbUNlbGxEYXRhRm9yQ29sdW1uLCB0cmFja0NvbHVtbjogaW5wdXRUcmFja0NvbHVtbiwgdHJhY2tJdGVtIH0gPSBkZWxlZ2F0ZTtcbiAgY29uc3QgdHJhY2tDb2x1bW4gPSAoaW5wdXRUcmFja0NvbHVtbiA/PyBERUZBVUxUX0RCWF9UQUJMRV9SRUFERVJfQ09MVU1OX1RSQUNLX0JZKSBhcyBEYnhUYWJsZVJlYWRlckNvbHVtblRyYWNrQnlGdW5jdGlvbjxDPjtcblxuICBpbnRlcmZhY2UgRGJ4VGFibGVSZWFkZXJDZWxsRGF0YUFjY2Vzc29yc0ZvckNvbHVtbiB7XG4gICAgcmVhZG9ubHkgY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPjtcbiAgICByZWFkb25seSBhbGxWYWx1ZXMkOiBPYnNlcnZhYmxlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFQYWlyPEMsIFQsIE8+W10+O1xuICAgIHJlYWRvbmx5IGFjY2Vzc29yc1JlY29yZDogRGJ4VGFibGVSZWFkZXJDZWxsRGF0YUFjY2Vzc29yc0ZvckNvbHVtblJlY29yZDtcbiAgfVxuXG4gIHR5cGUgRGJ4VGFibGVSZWFkZXJDZWxsRGF0YUFjY2Vzc29yc0ZvckNvbHVtblJlY29yZCA9IFJlY29yZDxEYnhUYWJsZVJlYWRlckl0ZW1LZXksIE9ic2VydmFibGU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YVBhaXI8QywgVCwgTz4+PjtcblxuICBjb25zdCBfY2VsbERhdGFBY2Nlc3NvcnNGb3JDb2x1bW4gPSAoY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPik6IE9ic2VydmFibGU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YUFjY2Vzc29yc0ZvckNvbHVtbj4gPT4ge1xuICAgIHJldHVybiBpdGVtcyQucGlwZShcbiAgICAgIG1hcCgoeCkgPT4ge1xuICAgICAgICBjb25zdCBhbGxPYnNlcnZhYmxlczogT2JzZXJ2YWJsZTxEYnhUYWJsZVJlYWRlckNlbGxEYXRhUGFpcjxDLCBULCBPPj5bXSA9IFtdO1xuICAgICAgICBjb25zdCBhY2Nlc3NvcnNSZWNvcmQ6IERieFRhYmxlUmVhZGVyQ2VsbERhdGFBY2Nlc3NvcnNGb3JDb2x1bW5SZWNvcmQgPSB7fTtcblxuICAgICAgICB4LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICBjb25zdCBpdGVtS2V5ID0gdHJhY2tJdGVtKGl0ZW0pO1xuICAgICAgICAgIGNvbnN0IGFjY2Vzc29yJCA9IHJlYWRJdGVtQ2VsbERhdGFGb3JDb2x1bW4oY29sdW1uLCBpdGVtKS5waXBlKFxuICAgICAgICAgICAgbWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICAgICAgICBpdGVtLFxuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBhY2Nlc3NvcnNSZWNvcmRbaXRlbUtleV0gPSBhY2Nlc3NvciQ7XG4gICAgICAgICAgYWxsT2JzZXJ2YWJsZXMucHVzaChhY2Nlc3NvciQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBhbGxWYWx1ZXMkID0gY29tYmluZUxhdGVzdChhbGxPYnNlcnZhYmxlcykucGlwZShzdGFydFdpdGgoW10pLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgYWxsVmFsdWVzJCxcbiAgICAgICAgICBhY2Nlc3NvcnNSZWNvcmRcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9O1xuXG4gIGludGVyZmFjZSBEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFDZWxsc0FjY2Vzc29yIHtcbiAgICByZWFkb25seSBjb2x1bW5LZXk6IERieFRhYmxlUmVhZGVyQ29sdW1uS2V5O1xuICAgIHJlYWRvbmx5IGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz47XG4gICAgcmVhZG9ubHkgY2VsbERhdGFBY2Nlc3NvcnMkOiBPYnNlcnZhYmxlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFBY2Nlc3NvcnNGb3JDb2x1bW4+O1xuICAgIHJlYWRvbmx5IGNlbGxEYXRhJDogT2JzZXJ2YWJsZTxEYnhUYWJsZVJlYWRlckNlbGxEYXRhUGFpcjxDLCBULCBPPltdPjtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNvbHVtbkRhdGFDZWxsc0FjY2Vzc29yKGNvbHVtbktleTogRGJ4VGFibGVSZWFkZXJDb2x1bW5LZXksIGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4pOiBEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFDZWxsc0FjY2Vzc29yIHtcbiAgICBjb25zdCBjZWxsRGF0YUFjY2Vzc29ycyQgPSBfY2VsbERhdGFBY2Nlc3NvcnNGb3JDb2x1bW4oY29sdW1uKTtcbiAgICBjb25zdCBjZWxsRGF0YSQgPSBjZWxsRGF0YUFjY2Vzc29ycyQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgocmVjb3JkKSA9PiByZWNvcmQuYWxsVmFsdWVzJCksXG4gICAgICBzdGFydFdpdGgoW10pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbHVtbktleSxcbiAgICAgIGNvbHVtbixcbiAgICAgIGNlbGxEYXRhQWNjZXNzb3JzJCxcbiAgICAgIGNlbGxEYXRhJFxuICAgIH07XG4gIH1cblxuICBpbnRlcmZhY2UgRGJ4VGFibGVSZWFkZXJDb2x1bW5EYXRhQWNjdW11bGF0b3Ige1xuICAgIHJlYWRvbmx5IHJlY29yZDogRGJ4VGFibGVSZWFkZXJDb2x1bW5EYXRhUmVjb3JkO1xuICB9XG5cbiAgdHlwZSBEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFSZWNvcmQgPSBSZWNvcmQ8RGJ4VGFibGVSZWFkZXJDb2x1bW5LZXksIERieFRhYmxlUmVhZGVyQ29sdW1uRGF0YUNlbGxzQWNjZXNzb3I+O1xuXG4gIGNvbnN0IGFsbENvbHVtbnNEYXRhJDogT2JzZXJ2YWJsZTxEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFBY2N1bXVsYXRvcj4gPSB0YWJsZVN0b3JlLmNvbHVtbnMkLnBpcGUoXG4gICAgbWFwKChuZXh0Q29sdW1uczogRGJ4VGFibGVDb2x1bW48Qz5bXSkgPT4ge1xuICAgICAgY29uc3QgcmVjb3JkOiBEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFSZWNvcmQgPSB7fTtcblxuICAgICAgbmV4dENvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbktleSA9IHRyYWNrQ29sdW1uKGNvbHVtbik7XG4gICAgICAgIHJlY29yZFtjb2x1bW5LZXldID0gY29sdW1uRGF0YUNlbGxzQWNjZXNzb3IoY29sdW1uS2V5LCBjb2x1bW4pO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlY29yZFxuICAgICAgfTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIGNvbnN0IF9jb2x1bW5BY2Nlc3NvckZvckNvbHVtbiA9IChjb2x1bW46IERieFRhYmxlQ29sdW1uPEM+KTogT2JzZXJ2YWJsZTxNYXliZTxEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFDZWxsc0FjY2Vzc29yPj4gPT4ge1xuICAgIGNvbnN0IGNvbHVtbktleSA9IHRyYWNrQ29sdW1uKGNvbHVtbik7XG4gICAgcmV0dXJuIGFsbENvbHVtbnNEYXRhJC5waXBlKFxuICAgICAgbWFwKChjb2x1bW5zRGF0YSkgPT4gY29sdW1uc0RhdGEucmVjb3JkW2NvbHVtbktleV0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGxvYWRDZWxsRGF0YVBhaXJzRm9yQ29sdW1uID0gKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4pOiBPYnNlcnZhYmxlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFQYWlyPEMsIFQsIE8+W10+ID0+IHtcbiAgICBjb25zdCBjb2x1bW5zRGF0YSQgPSBfY29sdW1uQWNjZXNzb3JGb3JDb2x1bW4oY29sdW1uKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChhY2Nlc3NvcikgPT4ge1xuICAgICAgICAvLyB3aGVuIHZpc2liaWxpdHkgY2hhbmdlcywgdGhlIGRhdGEgd2lsbCBjaGFuZ2UgdG8gYmUgYW4gZW1wdHkgYXJyYXlcbiAgICAgICAgcmV0dXJuIGFjY2Vzc29yID8gYWNjZXNzb3IuY2VsbERhdGEkIDogb2YoW10pO1xuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG5cbiAgICByZXR1cm4gY29sdW1uc0RhdGEkO1xuICB9O1xuXG4gIGNvbnN0IGNlbGxEYXRhUGFpcnNGb3JDb2x1bW4gPSAoY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPik6IE9ic2VydmFibGU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YVBhaXI8QywgVCwgTz5bXT4gPT4ge1xuICAgIHJldHVybiBsb2FkQ2VsbERhdGFQYWlyc0ZvckNvbHVtbihjb2x1bW4pO1xuICB9O1xuXG4gIGNvbnN0IGNlbGxEYXRhRm9yQ29sdW1uID0gKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4pOiBPYnNlcnZhYmxlPE9bXT4gPT4ge1xuICAgIHJldHVybiBjZWxsRGF0YVBhaXJzRm9yQ29sdW1uKGNvbHVtbikucGlwZShcbiAgICAgIG1hcCgocGFpcnMpID0+IGZpbHRlck1heWJlQXJyYXlWYWx1ZXMocGFpcnMubWFwKChwYWlyKSA9PiBwYWlyLnZhbHVlKSkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGNlbGxEYXRhUGFpckZvckNvbHVtbkFuZEl0ZW0gPSAoY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPiwgaXRlbTogVCk6IE9ic2VydmFibGU8TWF5YmU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YVBhaXI8QywgVCwgTz4+PiA9PiB7XG4gICAgY29uc3QgaXRlbUtleSA9IHRyYWNrSXRlbShpdGVtKTtcbiAgICBjb25zdCBjb2x1bW5zRGF0YSQgPSBfY29sdW1uQWNjZXNzb3JGb3JDb2x1bW4oY29sdW1uKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChjb2x1bW5zRGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gY29sdW1uc0RhdGFcbiAgICAgICAgICA/IGNvbHVtbnNEYXRhLmNlbGxEYXRhQWNjZXNzb3JzJC5waXBlKFxuICAgICAgICAgICAgICBzd2l0Y2hNYXAoKGNlbGxEYXRhQWNjZXNzb3IpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtQWNjZXNzb3IgPSBjZWxsRGF0YUFjY2Vzc29yLmFjY2Vzc29yc1JlY29yZFtpdGVtS2V5XTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQ6IE9ic2VydmFibGU8TWF5YmU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YVBhaXI8QywgVCwgTz4+PiA9IGl0ZW1BY2Nlc3NvciA/IGl0ZW1BY2Nlc3NvciA6IG9mKG51bGwpO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBvZihudWxsKTtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgcmV0dXJuIGNvbHVtbnNEYXRhJDtcbiAgfTtcblxuICBjb25zdCBjZWxsRGF0YUZvckNvbHVtbkFuZEl0ZW0gPSAoY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPiwgaXRlbTogVCk6IE9ic2VydmFibGU8TWF5YmU8Tz4+ID0+IHtcbiAgICByZXR1cm4gY2VsbERhdGFQYWlyRm9yQ29sdW1uQW5kSXRlbShjb2x1bW4sIGl0ZW0pLnBpcGUobWFwKChwYWlyKSA9PiBwYWlyPy52YWx1ZSkpO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgdGFibGVTdG9yZSxcbiAgICBkZWxlZ2F0ZSxcbiAgICBjZWxsRGF0YVBhaXJzRm9yQ29sdW1uLFxuICAgIGNlbGxEYXRhRm9yQ29sdW1uLFxuICAgIGNlbGxEYXRhUGFpckZvckNvbHVtbkFuZEl0ZW0sXG4gICAgY2VsbERhdGFGb3JDb2x1bW5BbmRJdGVtXG4gIH07XG59XG4iXX0=
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi90YWJsZS9zcmMvbGliL3RhYmxlLnJlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0YsT0FBTyxFQUF1QixzQkFBc0IsRUFBMkIsTUFBTSxlQUFlLENBQUM7QUEyQnJHOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSx3Q0FBd0MsR0FBcUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7QUE0RXhKLE1BQU0sVUFBVSxjQUFjLENBQW1CLE1BQXdDO0lBQ3ZGLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ3hDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUM7SUFDOUIsTUFBTSxFQUFFLHlCQUF5QixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDekYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSx3Q0FBd0MsQ0FBMkMsQ0FBQztJQVU3SCxNQUFNLDJCQUEyQixHQUFHLENBQUMsTUFBeUIsRUFBd0QsRUFBRTtRQUN0SCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsTUFBTSxjQUFjLEdBQXNELEVBQUUsQ0FBQztZQUM3RSxNQUFNLGVBQWUsR0FBbUQsRUFBRSxDQUFDO1lBRTNFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDakIsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FB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Q0FBQyxDQUNmLENBQUM7UUFFRixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDLENBQUM7SUFFRixNQUFNLHdCQUF3QixHQUFHLENBQUMsTUFBeUIsRUFBRSxJQUFPLEVBQXdCLEVBQUU7UUFDNUYsT0FBTyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLFVBQVU7UUFDVixRQUFRO1FBQ1Isc0JBQXNCO1FBQ3RCLGlCQUFpQjtRQUNqQiw0QkFBNEI7UUFDNUIsd0JBQXdCO0tBQ3pCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcmltYXRpdmVLZXksIE1heWJlLCBmaWx0ZXJNYXliZUFycmF5VmFsdWVzLCBSZWFkUmVxdWlyZWRLZXlGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4VGFibGVDb2x1bW4gfSBmcm9tICcuL3RhYmxlJztcbmltcG9ydCB7IERieFRhYmxlU3RvcmUgfSBmcm9tICcuL3RhYmxlLnN0b3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhUYWJsZVJlYWRlckNlbGxQYWlyPEMsIFQ+IHtcbiAgcmVhZG9ubHkgY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPjtcbiAgcmVhZG9ubHkgaXRlbTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhUYWJsZVJlYWRlckNlbGxEYXRhUGFpcjxDLCBULCBPPiBleHRlbmRzIERieFRhYmxlUmVhZGVyQ2VsbFBhaXI8QywgVD4ge1xuICByZWFkb25seSB2YWx1ZTogTztcbn1cblxuLyoqXG4gKiBLZXkgdXNlZCBmb3IgdHJhY2tpbmcgY29sdW1ucy5cbiAqXG4gKiBHZW5lcmFsbHkgdGhlIHRhYmxlIG5hbWUgaXMgdXNlZCBmb3IgdGhpcy5cbiAqL1xuZXhwb3J0IHR5cGUgRGJ4VGFibGVSZWFkZXJDb2x1bW5LZXkgPSBzdHJpbmc7XG5cbi8qKlxuICogS2V5IHVzZWQgZm9yIHRyYWNraW5nIGl0ZW1zLlxuICpcbiAqIEdlbmVyYWxseSB0aGUgaXRlbSdzIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHVzZWQgZm9yIHRoaXMuXG4gKi9cbmV4cG9ydCB0eXBlIERieFRhYmxlUmVhZGVySXRlbUtleSA9IFByaW1hdGl2ZUtleTtcblxuLyoqXG4gKiBEZWZhdWx0IHRyYWNrIGJ5IGZ1bmN0aW9uIGZvciBEYnhUYWJsZUNvbHVtbi5cbiAqXG4gKiBSZXR1cm5zIHRoZSBjb2x1bW4gbmFtZS5cbiAqXG4gKiBAcGFyYW0gY29sdW1uXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQlhfVEFCTEVfUkVBREVSX0NPTFVNTl9UUkFDS19CWTogUmVhZFJlcXVpcmVkS2V5RnVuY3Rpb248RGJ4VGFibGVDb2x1bW48RGJ4VGFibGVSZWFkZXJDb2x1bW5LZXk+PiA9IChjb2x1bW4pID0+IGNvbHVtbi5jb2x1bW5OYW1lO1xuXG4vKipcbiAqIEZ1bmN0aW9uIHVzZWQgZm9yIHRyYWNraW5nIHVuaXF1ZSBjb2x1bW5zIHVzaW5nIHRoZSBjb2x1bW4ncyBkYXRhLlxuICpcbiAqIElmIHRoZSBjb2x1bW4ga2V5IHZhbHVlIGlzIHRoZSBzYW1lIGJldHdlZW4gdGhvc2UgdHdvIGNvbHVtbnMsIHRoZW4gdGhlIG1ldGFkYXRhIG9mIGJvdGggY29sdW1ucyB3aWxsIGJlIGNvbnNpZGVyZWQgdGhlIHNhbWUvZXF1YWwuXG4gKi9cbmV4cG9ydCB0eXBlIERieFRhYmxlUmVhZGVyQ29sdW1uVHJhY2tCeUZ1bmN0aW9uPEM+ID0gUmVhZFJlcXVpcmVkS2V5RnVuY3Rpb248RGJ4VGFibGVDb2x1bW48Qz4sIERieFRhYmxlUmVhZGVyQ29sdW1uS2V5PjtcblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIGZvciB0cmFja2luZyB1bmlxdWUgY29sdW1ucyB1c2luZyB0aGUgY29sdW1uJ3MgZGF0YS5cbiAqXG4gKiBJZiB0aGUgY29sdW1uIGtleSB2YWx1ZSBpcyB0aGUgc2FtZSBiZXR3ZWVuIHRob3NlIHR3byBjb2x1bW5zLCB0aGVuIHRoZSBtZXRhZGF0YSBvZiBib3RoIGNvbHVtbnMgd2lsbCBiZSBjb25zaWRlcmVkIHRoZSBzYW1lL2VxdWFsLlxuICovXG5leHBvcnQgdHlwZSBEYnhUYWJsZVJlYWRlckl0ZW1UcmFja0J5RnVuY3Rpb248VD4gPSBSZWFkUmVxdWlyZWRLZXlGdW5jdGlvbjxULCBEYnhUYWJsZVJlYWRlckl0ZW1LZXk+O1xuXG5leHBvcnQgaW50ZXJmYWNlIERieFRhYmxlUmVhZGVyRGVsZWdhdGU8QywgVCwgTz4ge1xuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBkYXRhIGZvciBhIHNwZWNpZmljIGNvbHVtbiBhbmQgaXRlbS9yb3cuXG4gICAqXG4gICAqIEBwYXJhbSBjb2x1bW5cbiAgICogQHBhcmFtIGl0ZW1cbiAgICovXG4gIHJlYWRJdGVtQ2VsbERhdGFGb3JDb2x1bW4oY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPiwgaXRlbTogVCk6IE9ic2VydmFibGU8Tz47XG4gIC8qKlxuICAgKiBVc2VkIGZvciB0cmFja2luZyB1bmlxdWUgY29sdW1ucy5cbiAgICpcbiAgICogVXNlIGlmIHRoZSBtZXRhZGF0YSBiZXR3ZWVuIGNvbHVtbnMgc2hvdWxkIGJlIHVzZWQgZm9yIHVuaXF1ZSBpZGVudGlmaWNhdGlvbi5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gdXNpbmcgdGhlIGNvbHVtbiBuYW1lIGFzIHRoZSBrZXkgaWYgbm90IGRlZmluZWQuXG4gICAqL1xuICB0cmFja0NvbHVtbj86IERieFRhYmxlUmVhZGVyQ29sdW1uVHJhY2tCeUZ1bmN0aW9uPEM+O1xuICAvKipcbiAgICogVXNlZCBmb3IgdHJhY2tpbmcgdW5pcXVlIGl0ZW1zL3Jvd3MuXG4gICAqXG4gICAqIFVzZSBpZiB0aGUgbWV0YWRhdGEgYmV0d2VlbiBpdGVtcyBzaG91bGQgYmUgdXNlZCBmb3IgdW5pcXVlIGlkZW50aWZpY2F0aW9uLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byB1c2luZyB0aGUgaXRlbSBpdHNlbGYgYXMgdGhlIGtleSBpZiBub3QgZGVmaW5lZC5cbiAgICovXG4gIHRyYWNrSXRlbTogRGJ4VGFibGVSZWFkZXJJdGVtVHJhY2tCeUZ1bmN0aW9uPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieFRhYmxlUmVhZGVyQ29uZmlnPEMsIFQsIE8sIEcgPSBhbnk+IHtcbiAgLyoqXG4gICAqIERlbGVnYXRlIHVzZWQgZm9yIHJldHJpZXZpbmcgdGhlIGRhdGEgZm9yIGEgc3BlY2lmaWMgY29sdW1uIGFuZCBpdGVtL3Jvdy5cbiAgICovXG4gIHJlYWRvbmx5IGRlbGVnYXRlOiBEYnhUYWJsZVJlYWRlckRlbGVnYXRlPEMsIFQsIE8+O1xuICAvKipcbiAgICogVGhlIHRhYmxlIHN0b3JlIHVzZWQgZm9yIHJldHJpZXZpbmcgdGhlIGl0ZW1zLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVTdG9yZTogRGJ4VGFibGVTdG9yZTxhbnksIEMsIFQsIEc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieFRhYmxlUmVhZGVyPEMsIFQsIE8sIEcgPSBhbnk+IGV4dGVuZHMgRGJ4VGFibGVSZWFkZXJDb25maWc8QywgVCwgTywgRz4ge1xuICAvKipcbiAgICogUmV0cmlldmVzIGFsbCBjZWxsIGRhdGEgcGFpcnMgZm9yIGEgc3BlY2lmaWMgY29sdW1uLlxuICAgKi9cbiAgY2VsbERhdGFQYWlyc0ZvckNvbHVtbihjb2x1bW46IERieFRhYmxlQ29sdW1uPEM+KTogT2JzZXJ2YWJsZTxEYnhUYWJsZVJlYWRlckNlbGxEYXRhUGFpcjxDLCBULCBPPltdPjtcbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhbGwgY2VsbCBkYXRhIGZvciBhIHNwZWNpZmljIGNvbHVtbi5cbiAgICovXG4gIGNlbGxEYXRhRm9yQ29sdW1uKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4pOiBPYnNlcnZhYmxlPE9bXT47XG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGNlbGwgZGF0YSBwYWlyIGZvciBhIHNwZWNpZmljIGNvbHVtbiBhbmQgaXRlbS5cbiAgICpcbiAgICogUmV0dXJucyBudWxsIGlmIHRoZSBjb2x1bW4gaXMgbm90IHZpc2libGUgb3IgdGhlIGl0ZW0gaXMgbm90IGZvdW5kLlxuICAgKi9cbiAgY2VsbERhdGFQYWlyRm9yQ29sdW1uQW5kSXRlbShjb2x1bW46IERieFRhYmxlQ29sdW1uPEM+LCBpdGVtOiBUKTogT2JzZXJ2YWJsZTxNYXliZTxEYnhUYWJsZVJlYWRlckNlbGxEYXRhUGFpcjxDLCBULCBPPj4+O1xuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBjZWxsIGRhdGEgZm9yIGEgc3BlY2lmaWMgY29sdW1uIGFuZCBpdGVtLlxuICAgKlxuICAgKiBSZXR1cm5zIG51bGwgaWYgdGhlIGNvbHVtbiBpcyBub3QgdmlzaWJsZSBvciB0aGUgaXRlbSBpcyBub3QgZm91bmQuXG4gICAqL1xuICBjZWxsRGF0YUZvckNvbHVtbkFuZEl0ZW0oY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPiwgaXRlbTogVCk6IE9ic2VydmFibGU8TWF5YmU8Tz4+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGJ4VGFibGVSZWFkZXI8QywgVCwgTywgRyA9IGFueT4oY29uZmlnOiBEYnhUYWJsZVJlYWRlckNvbmZpZzxDLCBULCBPLCBHPik6IERieFRhYmxlUmVhZGVyPEMsIFQsIE8sIEc+IHtcbiAgY29uc3QgeyBkZWxlZ2F0ZSwgdGFibGVTdG9yZSB9ID0gY29uZmlnO1xuICBjb25zdCB7IGl0ZW1zJCB9ID0gdGFibGVTdG9yZTtcbiAgY29uc3QgeyByZWFkSXRlbUNlbGxEYXRhRm9yQ29sdW1uLCB0cmFja0NvbHVtbjogaW5wdXRUcmFja0NvbHVtbiwgdHJhY2tJdGVtIH0gPSBkZWxlZ2F0ZTtcbiAgY29uc3QgdHJhY2tDb2x1bW4gPSAoaW5wdXRUcmFja0NvbHVtbiA/PyBERUZBVUxUX0RCWF9UQUJMRV9SRUFERVJfQ09MVU1OX1RSQUNLX0JZKSBhcyBEYnhUYWJsZVJlYWRlckNvbHVtblRyYWNrQnlGdW5jdGlvbjxDPjtcblxuICBpbnRlcmZhY2UgRGJ4VGFibGVSZWFkZXJDZWxsRGF0YUFjY2Vzc29yc0ZvckNvbHVtbiB7XG4gICAgcmVhZG9ubHkgY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPjtcbiAgICByZWFkb25seSBhbGxWYWx1ZXMkOiBPYnNlcnZhYmxlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFQYWlyPEMsIFQsIE8+W10+O1xuICAgIHJlYWRvbmx5IGFjY2Vzc29yc1JlY29yZDogRGJ4VGFibGVSZWFkZXJDZWxsRGF0YUFjY2Vzc29yc0ZvckNvbHVtblJlY29yZDtcbiAgfVxuXG4gIHR5cGUgRGJ4VGFibGVSZWFkZXJDZWxsRGF0YUFjY2Vzc29yc0ZvckNvbHVtblJlY29yZCA9IFJlY29yZDxEYnhUYWJsZVJlYWRlckl0ZW1LZXksIE9ic2VydmFibGU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YVBhaXI8QywgVCwgTz4+PjtcblxuICBjb25zdCBfY2VsbERhdGFBY2Nlc3NvcnNGb3JDb2x1bW4gPSAoY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPik6IE9ic2VydmFibGU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YUFjY2Vzc29yc0ZvckNvbHVtbj4gPT4ge1xuICAgIHJldHVybiBpdGVtcyQucGlwZShcbiAgICAgIG1hcCgoeCkgPT4ge1xuICAgICAgICBjb25zdCBhbGxPYnNlcnZhYmxlczogT2JzZXJ2YWJsZTxEYnhUYWJsZVJlYWRlckNlbGxEYXRhUGFpcjxDLCBULCBPPj5bXSA9IFtdO1xuICAgICAgICBjb25zdCBhY2Nlc3NvcnNSZWNvcmQ6IERieFRhYmxlUmVhZGVyQ2VsbERhdGFBY2Nlc3NvcnNGb3JDb2x1bW5SZWNvcmQgPSB7fTtcblxuICAgICAgICB4LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICBjb25zdCBpdGVtS2V5ID0gdHJhY2tJdGVtKGl0ZW0pO1xuICAgICAgICAgIGNvbnN0IGFjY2Vzc29yJCA9IHJlYWRJdGVtQ2VsbERhdGFGb3JDb2x1bW4oY29sdW1uLCBpdGVtKS5waXBlKFxuICAgICAgICAgICAgbWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICAgICAgICBpdGVtLFxuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBhY2Nlc3NvcnNSZWNvcmRbaXRlbUtleV0gPSBhY2Nlc3NvciQ7XG4gICAgICAgICAgYWxsT2JzZXJ2YWJsZXMucHVzaChhY2Nlc3NvciQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBhbGxWYWx1ZXMkID0gY29tYmluZUxhdGVzdChhbGxPYnNlcnZhYmxlcykucGlwZShzdGFydFdpdGgoW10pLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgYWxsVmFsdWVzJCxcbiAgICAgICAgICBhY2Nlc3NvcnNSZWNvcmRcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9O1xuXG4gIGludGVyZmFjZSBEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFDZWxsc0FjY2Vzc29yIHtcbiAgICByZWFkb25seSBjb2x1bW5LZXk6IERieFRhYmxlUmVhZGVyQ29sdW1uS2V5O1xuICAgIHJlYWRvbmx5IGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz47XG4gICAgcmVhZG9ubHkgY2VsbERhdGFBY2Nlc3NvcnMkOiBPYnNlcnZhYmxlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFBY2Nlc3NvcnNGb3JDb2x1bW4+O1xuICAgIHJlYWRvbmx5IGNlbGxEYXRhJDogT2JzZXJ2YWJsZTxEYnhUYWJsZVJlYWRlckNlbGxEYXRhUGFpcjxDLCBULCBPPltdPjtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNvbHVtbkRhdGFDZWxsc0FjY2Vzc29yKGNvbHVtbktleTogRGJ4VGFibGVSZWFkZXJDb2x1bW5LZXksIGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4pOiBEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFDZWxsc0FjY2Vzc29yIHtcbiAgICBjb25zdCBjZWxsRGF0YUFjY2Vzc29ycyQgPSBfY2VsbERhdGFBY2Nlc3NvcnNGb3JDb2x1bW4oY29sdW1uKTtcbiAgICBjb25zdCBjZWxsRGF0YSQgPSBjZWxsRGF0YUFjY2Vzc29ycyQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgocmVjb3JkKSA9PiByZWNvcmQuYWxsVmFsdWVzJCksXG4gICAgICBzdGFydFdpdGgoW10pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbHVtbktleSxcbiAgICAgIGNvbHVtbixcbiAgICAgIGNlbGxEYXRhQWNjZXNzb3JzJCxcbiAgICAgIGNlbGxEYXRhJFxuICAgIH07XG4gIH1cblxuICBpbnRlcmZhY2UgRGJ4VGFibGVSZWFkZXJDb2x1bW5EYXRhQWNjdW11bGF0b3Ige1xuICAgIHJlYWRvbmx5IHJlY29yZDogRGJ4VGFibGVSZWFkZXJDb2x1bW5EYXRhUmVjb3JkO1xuICB9XG5cbiAgdHlwZSBEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFSZWNvcmQgPSBSZWNvcmQ8RGJ4VGFibGVSZWFkZXJDb2x1bW5LZXksIERieFRhYmxlUmVhZGVyQ29sdW1uRGF0YUNlbGxzQWNjZXNzb3I+O1xuXG4gIGNvbnN0IGFsbENvbHVtbnNEYXRhJDogT2JzZXJ2YWJsZTxEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFBY2N1bXVsYXRvcj4gPSB0YWJsZVN0b3JlLmNvbHVtbnMkLnBpcGUoXG4gICAgbWFwKChuZXh0Q29sdW1uczogRGJ4VGFibGVDb2x1bW48Qz5bXSkgPT4ge1xuICAgICAgY29uc3QgcmVjb3JkOiBEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFSZWNvcmQgPSB7fTtcblxuICAgICAgbmV4dENvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbktleSA9IHRyYWNrQ29sdW1uKGNvbHVtbik7XG4gICAgICAgIHJlY29yZFtjb2x1bW5LZXldID0gY29sdW1uRGF0YUNlbGxzQWNjZXNzb3IoY29sdW1uS2V5LCBjb2x1bW4pO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlY29yZFxuICAgICAgfTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIGNvbnN0IF9jb2x1bW5BY2Nlc3NvckZvckNvbHVtbiA9IChjb2x1bW46IERieFRhYmxlQ29sdW1uPEM+KTogT2JzZXJ2YWJsZTxNYXliZTxEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFDZWxsc0FjY2Vzc29yPj4gPT4ge1xuICAgIGNvbnN0IGNvbHVtbktleSA9IHRyYWNrQ29sdW1uKGNvbHVtbik7XG4gICAgcmV0dXJuIGFsbENvbHVtbnNEYXRhJC5waXBlKFxuICAgICAgbWFwKChjb2x1bW5zRGF0YSkgPT4gY29sdW1uc0RhdGEucmVjb3JkW2NvbHVtbktleV0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGxvYWRDZWxsRGF0YVBhaXJzRm9yQ29sdW1uID0gKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4pOiBPYnNlcnZhYmxlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFQYWlyPEMsIFQsIE8+W10+ID0+IHtcbiAgICBjb25zdCBjb2x1bW5zRGF0YSQgPSBfY29sdW1uQWNjZXNzb3JGb3JDb2x1bW4oY29sdW1uKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChhY2Nlc3NvcikgPT4ge1xuICAgICAgICAvLyB3aGVuIHZpc2liaWxpdHkgY2hhbmdlcywgdGhlIGRhdGEgd2lsbCBjaGFuZ2UgdG8gYmUgYW4gZW1wdHkgYXJyYXlcbiAgICAgICAgcmV0dXJuIGFjY2Vzc29yID8gYWNjZXNzb3IuY2VsbERhdGEkIDogb2YoW10pO1xuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG5cbiAgICByZXR1cm4gY29sdW1uc0RhdGEkO1xuICB9O1xuXG4gIGNvbnN0IGNlbGxEYXRhUGFpcnNGb3JDb2x1bW4gPSAoY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPik6IE9ic2VydmFibGU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YVBhaXI8QywgVCwgTz5bXT4gPT4ge1xuICAgIHJldHVybiBsb2FkQ2VsbERhdGFQYWlyc0ZvckNvbHVtbihjb2x1bW4pO1xuICB9O1xuXG4gIGNvbnN0IGNlbGxEYXRhRm9yQ29sdW1uID0gKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4pOiBPYnNlcnZhYmxlPE9bXT4gPT4ge1xuICAgIHJldHVybiBjZWxsRGF0YVBhaXJzRm9yQ29sdW1uKGNvbHVtbikucGlwZShcbiAgICAgIG1hcCgocGFpcnMpID0+IGZpbHRlck1heWJlQXJyYXlWYWx1ZXMocGFpcnMubWFwKChwYWlyKSA9PiBwYWlyLnZhbHVlKSkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGNlbGxEYXRhUGFpckZvckNvbHVtbkFuZEl0ZW0gPSAoY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPiwgaXRlbTogVCk6IE9ic2VydmFibGU8TWF5YmU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YVBhaXI8QywgVCwgTz4+PiA9PiB7XG4gICAgY29uc3QgaXRlbUtleSA9IHRyYWNrSXRlbShpdGVtKTtcbiAgICBjb25zdCBjb2x1bW5zRGF0YSQgPSBfY29sdW1uQWNjZXNzb3JGb3JDb2x1bW4oY29sdW1uKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChjb2x1bW5zRGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gY29sdW1uc0RhdGFcbiAgICAgICAgICA/IGNvbHVtbnNEYXRhLmNlbGxEYXRhQWNjZXNzb3JzJC5waXBlKFxuICAgICAgICAgICAgICBzd2l0Y2hNYXAoKGNlbGxEYXRhQWNjZXNzb3IpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtQWNjZXNzb3IgPSBjZWxsRGF0YUFjY2Vzc29yLmFjY2Vzc29yc1JlY29yZFtpdGVtS2V5XTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQ6IE9ic2VydmFibGU8TWF5YmU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YVBhaXI8QywgVCwgTz4+PiA9IGl0ZW1BY2Nlc3NvciA/IGl0ZW1BY2Nlc3NvciA6IG9mKG51bGwpO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBvZihudWxsKTtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgcmV0dXJuIGNvbHVtbnNEYXRhJDtcbiAgfTtcblxuICBjb25zdCBjZWxsRGF0YUZvckNvbHVtbkFuZEl0ZW0gPSAoY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPiwgaXRlbTogVCk6IE9ic2VydmFibGU8TWF5YmU8Tz4+ID0+IHtcbiAgICByZXR1cm4gY2VsbERhdGFQYWlyRm9yQ29sdW1uQW5kSXRlbShjb2x1bW4sIGl0ZW0pLnBpcGUobWFwKChwYWlyKSA9PiBwYWlyPy52YWx1ZSkpO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgdGFibGVTdG9yZSxcbiAgICBkZWxlZ2F0ZSxcbiAgICBjZWxsRGF0YVBhaXJzRm9yQ29sdW1uLFxuICAgIGNlbGxEYXRhRm9yQ29sdW1uLFxuICAgIGNlbGxEYXRhUGFpckZvckNvbHVtbkFuZEl0ZW0sXG4gICAgY2VsbERhdGFGb3JDb2x1bW5BbmRJdGVtXG4gIH07XG59XG4iXX0=