@po-ui/ng-components 16.5.0 → 16.6.1
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.
- package/esm2022/lib/components/po-field/po-combo/interfaces/po-combo-literals-default.interface.mjs +9 -5
- package/esm2022/lib/components/po-field/po-combo/interfaces/po-combo-literals.interface.mjs +1 -1
- package/esm2022/lib/components/po-field/po-combo/po-combo-base.component.mjs +4 -1
- package/esm2022/lib/components/po-field/po-combo/po-combo.component.mjs +94 -41
- package/esm2022/lib/components/po-field/po-multiselect/po-multiselect.component.mjs +8 -3
- package/esm2022/lib/components/po-listbox/po-item-list/po-item-list.component.mjs +4 -4
- package/esm2022/lib/components/po-listbox/po-listbox.component.mjs +5 -4
- package/fesm2022/po-ui-ng-components.mjs +114 -47
- package/fesm2022/po-ui-ng-components.mjs.map +1 -1
- package/lib/components/po-field/po-combo/interfaces/po-combo-literals.interface.d.ts +2 -0
- package/lib/components/po-field/po-combo/po-combo.component.d.ts +8 -5
- package/lib/components/po-field/po-multiselect/po-multiselect.component.d.ts +1 -0
- package/package.json +4 -4
- package/po-ui-ng-components-16.6.1.tgz +0 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-update/v14/index.js +1 -1
- package/schematics/ng-update/v15/index.js +1 -1
- package/schematics/ng-update/v16/index.js +1 -1
- package/schematics/ng-update/v2/index.js +1 -1
- package/schematics/ng-update/v3/index.js +1 -1
- package/schematics/ng-update/v4/index.js +1 -1
- package/schematics/ng-update/v5/index.js +1 -1
- package/schematics/ng-update/v6/index.js +1 -1
- package/po-ui-ng-components-16.5.0.tgz +0 -0
|
@@ -176,6 +176,7 @@ export class PoMultiselectComponent extends PoMultiselectBaseComponent {
|
|
|
176
176
|
initCalculateItems = true;
|
|
177
177
|
isCalculateVisibleItems = true;
|
|
178
178
|
cacheOptions;
|
|
179
|
+
focusOnTag = false;
|
|
179
180
|
constructor(renderer, changeDetector, el, controlPosition, defaultService, languageService) {
|
|
180
181
|
super(languageService);
|
|
181
182
|
this.renderer = renderer;
|
|
@@ -327,8 +328,11 @@ export class PoMultiselectComponent extends PoMultiselectBaseComponent {
|
|
|
327
328
|
this.onModelTouched?.();
|
|
328
329
|
}
|
|
329
330
|
onKeyDown(event) {
|
|
330
|
-
if (
|
|
331
|
-
|
|
331
|
+
if (event.shiftKey && event.keyCode === PoKeyCodeEnum.tab && !this.focusOnTag) {
|
|
332
|
+
this.controlDropdownVisibility(false);
|
|
333
|
+
}
|
|
334
|
+
this.focusOnTag = false;
|
|
335
|
+
if (event.keyCode === PoKeyCodeEnum.tab) {
|
|
332
336
|
return;
|
|
333
337
|
}
|
|
334
338
|
if (event.keyCode === PoKeyCodeEnum.esc) {
|
|
@@ -531,6 +535,7 @@ export class PoMultiselectComponent extends PoMultiselectBaseComponent {
|
|
|
531
535
|
const KEY_SPACE = 'Space';
|
|
532
536
|
const KEY_ARROW_LEFT = 'ArrowLeft';
|
|
533
537
|
const KEY_ARROW_RIGHT = 'ArrowRight';
|
|
538
|
+
this.focusOnTag = true;
|
|
534
539
|
if (event.code === KEY_SPACE) {
|
|
535
540
|
event.preventDefault();
|
|
536
541
|
event.stopPropagation();
|
|
@@ -668,4 +673,4 @@ export class PoMultiselectComponent extends PoMultiselectBaseComponent {
|
|
|
668
673
|
type: ViewChild,
|
|
669
674
|
args: ['inputElement', { read: ElementRef, static: true }]
|
|
670
675
|
}] }); })();
|
|
671
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLW11bHRpc2VsZWN0L3BvLW11bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1tdWx0aXNlbGVjdC9wby1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBRVosVUFBVSxFQUtWLFNBQVMsRUFDVCxVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBYyxZQUFZLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDJFQUEyRSxDQUFDOzs7Ozs7Ozs7SUNEM0gs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QTlDLDJEQUE4QyxnREFBQSwrQ0FBQSwwR0FBQTtZQUo5QyxnREFBOEI7WUFDOUIsd0NBQTBCLHlCQUFBO1lBV25CLGVBQXVDO1lBQXZDLGtHQUF1QztZQUs1QixlQUFnQjtZQUFoQix5Q0FBZ0I7WUFZOUIsZUFBNEc7WUFBNUcseUlBQTRHO1lBQzVHLHNFQUFvRDtZQU83QyxlQUFpQjtZQUFqQixvQ0FBaUIsaUJBQUEsaUJBQUE7WUFZTCxlQUFlO1lBQWYsaUNBQWUsNEJBQUE7Ozt1RkRxRC9CLHNCQUFzQjtjQU5sQyxTQUFTOzJCQUNFLGdCQUFnQixtQkFFVCx1QkFBdUIsQ0FBQyxNQUFNLGFBQy9DLFNBQVM7cU9BTVQseUJBQXlCO2tCQUR4QixZQUFZO21CQUFDLG9DQUFvQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUdoQixlQUFlO2tCQUFsRSxTQUFTO21CQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNwQixRQUFRO2tCQUFyQyxTQUFTO21CQUFDLGlCQUFpQjtZQUNrQyxXQUFXO2tCQUF4RSxTQUFTO21CQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUNHLFlBQVk7a0JBQTFFLFNBQVM7bUJBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRG9DaGVjayxcbiAgRWxlbWVudFJlZixcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9LZXlDb2RlRW51bSB9IGZyb20gJy4vLi4vLi4vLi4vZW51bXMvcG8ta2V5LWNvZGUuZW51bSc7XG5pbXBvcnQgeyBQb0NvbnRyb2xQb3NpdGlvblNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL3NlcnZpY2VzL3BvLWNvbnRyb2wtcG9zaXRpb24vcG8tY29udHJvbC1wb3NpdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IGlzTW9iaWxlIH0gZnJvbSAnLi8uLi8uLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgcG9Mb2NhbGVEZWZhdWx0IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2UuY29uc3RhbnQnO1xuaW1wb3J0IHsgUG9NdWx0aXNlbGVjdEJhc2VDb21wb25lbnQgfSBmcm9tICcuL3BvLW11bHRpc2VsZWN0LWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9wby1tdWx0aXNlbGVjdC1maWx0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQb011bHRpc2VsZWN0T3B0aW9uVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL3BvLW11bHRpc2VsZWN0LW9wdGlvbi10ZW1wbGF0ZS9wby1tdWx0aXNlbGVjdC1vcHRpb24tdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RPcHRpb24gfSBmcm9tICcuL3BvLW11bHRpc2VsZWN0LW9wdGlvbi5pbnRlcmZhY2UnO1xuXG5jb25zdCBwb011bHRpc2VsZWN0Q29udGFpbmVyT2Zmc2V0ID0gODtcbmNvbnN0IHBvTXVsdGlzZWxlY3RDb250YWluZXJQb3NpdGlvbkRlZmF1bHQgPSAnYm90dG9tJztcbmNvbnN0IHBvTXVsdGlzZWxlY3RJbnB1dFBhZGRpbmdSaWdodCA9IDUyO1xuY29uc3QgcG9NdWx0aXNlbGVjdFNwYWNlQmV0d2VlblRhZ3MgPSA4O1xuXG5jb25zdCBsaXRlcmFsc1RhZ1JlbW92ZU90aGVycyA9IHtcbiAgcHQ6IHtcbiAgICByZW1vdmU6ICdSZW1vdmVyIHRvZG9zIG9zIGl0ZW5zIHNlbGVjaW9uYWRvcydcbiAgfSxcbiAgcnU6IHtcbiAgICByZW1vdmU6ICfQo9C00LDQu9C40YLRjCDQstGB0LUg0LLRi9Cx0YDQsNC90L3Ri9C1INGN0LvQtdC80LXQvdGC0YsnXG4gIH0sXG4gIGVzOiB7XG4gICAgcmVtb3ZlOiAnRWxpbWluYXIgdG9kb3MgbG9zIGVsZW1lbnRvcyBzZWxlY2Npb25hZG9zJ1xuICB9LFxuICBlbjoge1xuICAgIHJlbW92ZTogJ0NsZWFyIGFsbCBzZWxlY3RlZCBpdGVtcydcbiAgfVxufTtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmNvbnN0IHByb3ZpZGVycyA9IFtcbiAgUG9NdWx0aXNlbGVjdEZpbHRlclNlcnZpY2UsXG4gIFBvQ29udHJvbFBvc2l0aW9uU2VydmljZSxcbiAge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBvTXVsdGlzZWxlY3RDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH0sXG4gIHtcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBvTXVsdGlzZWxlY3RDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH1cbl07XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvTXVsdGlzZWxlY3RCYXNlQ29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbXVsdGlzZWxlY3QtYmFzaWNcIiB0aXRsZT1cIlBPIE11bHRpc2VsZWN0IEJhc2ljXCI+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbXVsdGlzZWxlY3QtYmFzaWMvc2FtcGxlLXBvLW11bHRpc2VsZWN0LWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tdWx0aXNlbGVjdC1iYXNpYy9zYW1wbGUtcG8tbXVsdGlzZWxlY3QtYmFzaWMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbXVsdGlzZWxlY3QtbGFic1wiIHRpdGxlPVwiUE8gTXVsdGlzZWxlY3QgTGFic1wiPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW11bHRpc2VsZWN0LWxhYnMvc2FtcGxlLXBvLW11bHRpc2VsZWN0LWxhYnMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW11bHRpc2VsZWN0LWxhYnMvc2FtcGxlLXBvLW11bHRpc2VsZWN0LWxhYnMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbXVsdGlzZWxlY3QtdmFjYXRpb25cIiB0aXRsZT1cIlBPIE11bHRpc2VsZWN0IC0gVmFjYXRpb25cIj5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tdWx0aXNlbGVjdC12YWNhdGlvbi9zYW1wbGUtcG8tbXVsdGlzZWxlY3QtdmFjYXRpb24uY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW11bHRpc2VsZWN0LXZhY2F0aW9uL3NhbXBsZS1wby1tdWx0aXNlbGVjdC12YWNhdGlvbi5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tdWx0aXNlbGVjdC12YWNhdGlvbi1yZWFjdGl2ZS1mb3JtXCIgdGl0bGU9XCJQTyBNdWx0aXNlbGVjdCAtIFZhY2F0aW9uIFJlYWN0aXZlIEZvcm1cIj5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tdWx0aXNlbGVjdC12YWNhdGlvbi1yZWFjdGl2ZS1mb3JtL3NhbXBsZS1wby1tdWx0aXNlbGVjdC12YWNhdGlvbi1yZWFjdGl2ZS1mb3JtLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tdWx0aXNlbGVjdC12YWNhdGlvbi1yZWFjdGl2ZS1mb3JtL3NhbXBsZS1wby1tdWx0aXNlbGVjdC12YWNhdGlvbi1yZWFjdGl2ZS1mb3JtLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLW11bHRpc2VsZWN0LXRlbXBsYXRlXCIgdGl0bGU9XCJQTyBNdWx0aXNlbGVjdCAtIFRlbXBsYXRlXCI+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbXVsdGlzZWxlY3QtdGVtcGxhdGUvc2FtcGxlLXBvLW11bHRpc2VsZWN0LXRlbXBsYXRlLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tdWx0aXNlbGVjdC10ZW1wbGF0ZS9zYW1wbGUtcG8tbXVsdGlzZWxlY3QtdGVtcGxhdGUuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbXVsdGlzZWxlY3QtaGVyb2VzXCIgdGl0bGU9XCJQTyBNdWx0aXNlbGVjdCAtIEhlcm9lcyAtIHVzaW5nIEFQSVwiPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW11bHRpc2VsZWN0LWhlcm9lcy9zYW1wbGUtcG8tbXVsdGlzZWxlY3QtaGVyb2VzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tdWx0aXNlbGVjdC1oZXJvZXMvc2FtcGxlLXBvLW11bHRpc2VsZWN0LWhlcm9lcy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW11bHRpc2VsZWN0LWhlcm9lcy9zYW1wbGUtcG8tbXVsdGlzZWxlY3QtaGVyb2VzLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tdWx0aXNlbGVjdC1hbnktYXJyYXlcIiB0aXRsZT1cIlBPIE11bHRpc2VsZWN0IC0gQXJyYXkgQW55XCI+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbXVsdGlzZWxlY3QtYW55LWFycmF5L3NhbXBsZS1wby1tdWx0aXNlbGVjdC1hbnktYXJyYXkuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW11bHRpc2VsZWN0LWFueS1hcnJheS9zYW1wbGUtcG8tbXVsdGlzZWxlY3QtYW55LWFycmF5LmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1tdWx0aXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnNcbn0pXG5leHBvcnQgY2xhc3MgUG9NdWx0aXNlbGVjdENvbXBvbmVudFxuICBleHRlbmRzIFBvTXVsdGlzZWxlY3RCYXNlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgRG9DaGVjaywgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBAQ29udGVudENoaWxkKFBvTXVsdGlzZWxlY3RPcHRpb25UZW1wbGF0ZURpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgbXVsdGlzZWxlY3RPcHRpb25UZW1wbGF0ZTogUG9NdWx0aXNlbGVjdE9wdGlvblRlbXBsYXRlRGlyZWN0aXZlO1xuXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duRWxlbWVudCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBkcm9wZG93bkVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duRWxlbWVudCcpIGRyb3Bkb3duO1xuICBAVmlld0NoaWxkKCdpY29uRWxlbWVudCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIGljb25FbGVtZW50OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgbGl0ZXJhbHNUYWc7XG4gIGRyb3Bkb3duSWNvbjogc3RyaW5nID0gJ3BvLWljb24tYXJyb3ctZG93bic7XG4gIGRyb3Bkb3duT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBpbml0aWFsaXplZCA9IGZhbHNlO1xuICBoYXNNb3JlVGFnOiBib29sZWFuO1xuICB0aW1lb3V0UmVzaXplO1xuICB2aXNpYmxlRWxlbWVudCA9IGZhbHNlO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcml2YXRlIGVudGVyQ2xvc2VUYWcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpbml0Q2FsY3VsYXRlSXRlbXMgPSB0cnVlO1xuICBwcml2YXRlIGlzQ2FsY3VsYXRlVmlzaWJsZUl0ZW1zOiBib29sZWFuID0gdHJ1ZTtcbiAgcHJpdmF0ZSBjYWNoZU9wdGlvbnM6IEFycmF5PFBvTXVsdGlzZWxlY3RPcHRpb24gfCBhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY29udHJvbFBvc2l0aW9uOiBQb0NvbnRyb2xQb3NpdGlvblNlcnZpY2UsXG4gICAgcHVibGljIGRlZmF1bHRTZXJ2aWNlOiBQb011bHRpc2VsZWN0RmlsdGVyU2VydmljZSxcbiAgICBsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGxhbmd1YWdlU2VydmljZSk7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSBsYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xuICAgIHRoaXMubGl0ZXJhbHNUYWcgPSB7XG4gICAgICAuLi5saXRlcmFsc1RhZ1JlbW92ZU90aGVyc1twb0xvY2FsZURlZmF1bHRdLFxuICAgICAgLi4ubGl0ZXJhbHNUYWdSZW1vdmVPdGhlcnNbbGFuZ3VhZ2VdXG4gICAgfTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyU2VydmljZSAmJiAoY2hhbmdlcy5maWx0ZXJTZXJ2aWNlIHx8IGNoYW5nZXMuZmllbGRWYWx1ZSB8fCBjaGFuZ2VzLmZpZWxkTGFiZWwpKSB7XG4gICAgICB0aGlzLnNldFNlcnZpY2UodGhpcy5maWx0ZXJTZXJ2aWNlKTtcbiAgICB9XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgY29uc3QgaW5wdXRXaWR0aCA9IHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgLy8gUGVybWl0ZSBxdWUgYXMgdGFncyBzZWphbSBjYWxjdWxhZGFzIG5hIHByaW1laXJhIHZleiBxdWUgbyBjb21wb25lbnRlIHRvcm5hLXNlIHZpc8OtdmVsLFxuICAgIC8vIGV2aXRhbmRvIGNvbSBpc3NvLCBwcm9ibGVtYXMgY29tIFRhYnMgb3UgRGl2cyBxdWUgaW5pY2llbSBlc2NvbmRpZGFzLlxuICAgIGlmICgoaW5wdXRXaWR0aCAmJiAhdGhpcy52aXNpYmxlRWxlbWVudCAmJiB0aGlzLmluaXRpYWxpemVkKSB8fCAoaW5wdXRXaWR0aCAmJiB0aGlzLmlzQ2FsY3VsYXRlVmlzaWJsZUl0ZW1zKSkge1xuICAgICAgdGhpcy5kZWJvdW5jZVJlc2l6ZSgpO1xuICAgICAgdGhpcy52aXNpYmxlRWxlbWVudCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLmdldE9iamVjdHNCeVZhbHVlc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmZpbHRlclN1YmplY3Q/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW7Dp8OjbyBxdWUgYXRyaWJ1aSBmb2NvIGFvIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIFBhcmEgdXRpbGl6w6EtbGEgw6kgbmVjZXNzw6FyaW8gdGVyIGEgaW5zdMOibmNpYSBkbyBjb21wb25lbnRlIG5vIERPTSwgcG9kZW5kbyBzZXIgdXRpbGl6YWRvIG8gVmlld0NoaWxkIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogaW1wb3J0IHsgUG9NdWx0aXNlbGVjdENvbXBvbmVudCB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcbiAgICpcbiAgICogLi4uXG4gICAqXG4gICAqIEBWaWV3Q2hpbGQoUG9NdWx0aXNlbGVjdENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgbXVsdGlzZWxlY3Q6IFBvTXVsdGlzZWxlY3RDb21wb25lbnQ7XG4gICAqXG4gICAqIGZvY3VzTXVsdGlzZWxlY3QoKSB7XG4gICAqICAgdGhpcy5tdWx0aXNlbGVjdC5mb2N1cygpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0SW5wdXRXaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wby1tdWx0aXNlbGVjdC1pbnB1dCcpLm9mZnNldFdpZHRoIC0gcG9NdWx0aXNlbGVjdElucHV0UGFkZGluZ1JpZ2h0O1xuICB9XG5cbiAgZ2V0VGFnc1dpZHRoKCkge1xuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgncG8tdGFnJyk7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGFncykubWFwKHRhZyA9PiB0YWdbJ29mZnNldFdpZHRoJ10pO1xuICB9XG5cbiAgY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKCkge1xuICAgIHRoaXMuaGFzTW9yZVRhZyA9IGZhbHNlO1xuICAgIGNvbnN0IHRhZ3NXaWR0aCA9IHRoaXMuZ2V0VGFnc1dpZHRoKCk7XG4gICAgY29uc3QgaW5wdXRXaWR0aCA9IHRoaXMuZ2V0SW5wdXRXaWR0aCgpO1xuICAgIGNvbnN0IGV4dHJhVGFnU2l6ZSA9IDYzO1xuICAgIGNvbnN0IHRhZ3NWaXNpYmxlID0gdGFnc1dpZHRoWzBdO1xuXG4gICAgdGhpcy52aXNpYmxlVGFncyA9IFtdO1xuXG4gICAgaWYgKGlucHV0V2lkdGggPiAwKSB7XG4gICAgICBsZXQgc3VtID0gMDtcbiAgICAgIGxldCBpID0gMDtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICBzdW0gKz0gdGFnc1dpZHRoW2ldICsgcG9NdWx0aXNlbGVjdFNwYWNlQmV0d2VlblRhZ3M7XG4gICAgICAgIHRoaXMudmlzaWJsZVRhZ3MucHVzaCh0aGlzLnNlbGVjdGVkT3B0aW9uc1tpXSk7XG5cbiAgICAgICAgaWYgKHN1bSA+IGlucHV0V2lkdGgpIHtcbiAgICAgICAgICBzdW0gLT0gdGFnc1dpZHRoW2ldO1xuICAgICAgICAgIHRoaXMuaXNDYWxjdWxhdGVWaXNpYmxlSXRlbXMgPSBmYWxzZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGFnc1Zpc2libGUgfHwgIXRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCkge1xuICAgICAgICBpZiAoaSA9PT0gdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5pc0NhbGN1bGF0ZVZpc2libGVJdGVtcyA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGFzTW9yZVRhZyA9IHRydWU7XG4gICAgICAgIGlmIChzdW0gKyBleHRyYVRhZ1NpemUgPiBpbnB1dFdpZHRoKSB7XG4gICAgICAgICAgdGhpcy52aXNpYmxlVGFncy5zcGxpY2UoLTIsIDIpO1xuICAgICAgICAgIGNvbnN0IGxhYmVsID0gJysnICsgKHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCArIDEgLSBpKS50b1N0cmluZygpO1xuICAgICAgICAgIHRoaXMudmlzaWJsZVRhZ3MucHVzaCh7IFt0aGlzLmZpZWxkVmFsdWVdOiAnJywgW3RoaXMuZmllbGRMYWJlbF06IGxhYmVsIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmlzaWJsZVRhZ3Muc3BsaWNlKC0xLCAxKTtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9ICcrJyArICh0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggLSBpKS50b1N0cmluZygpO1xuICAgICAgICAgIHRoaXMudmlzaWJsZVRhZ3MucHVzaCh7IFt0aGlzLmZpZWxkVmFsdWVdOiAnJywgW3RoaXMuZmllbGRMYWJlbF06IGxhYmVsIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pbml0Q2FsY3VsYXRlSXRlbXMpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVLZXlib2FyZE5hdmlnYXRpb25UYWcoKTtcbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW5pdENhbGN1bGF0ZUl0ZW1zID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBjaGFuZ2VJdGVtcyhjaGFuZ2VkSXRlbXMpIHtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9ucyhjaGFuZ2VkSXRlbXMpO1xuICAgIHRoaXMuY2FsbE9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcblxuICAgIGlmICh0aGlzLmF1dG9IZWlnaHQgJiYgdGhpcy5kcm9wZG93bk9wZW4pIHtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5hZGp1c3RDb250YWluZXJQb3NpdGlvbigpO1xuICAgIH1cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlS2V5Ym9hcmROYXZpZ2F0aW9uVGFnKCk7XG4gICAgfSwgMzAwKTtcbiAgfVxuXG4gIHVwZGF0ZVZpc2libGVJdGVtcygpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbnMpIHtcbiAgICAgIHRoaXMudmlzaWJsZVRhZ3MgPSBbXS5jb25jYXQodGhpcy5zZWxlY3RlZE9wdGlvbnMpO1xuICAgIH1cblxuICAgIHRoaXMuZGVib3VuY2VSZXNpemUoKTtcblxuICAgIC8vIHF1YW5kbyBlc3RpdmVyIGRlbnRybyBkZSBtb2RhbFxuICAgIGlmICghdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkge1xuICAgICAgdGhpcy5pc0NhbGN1bGF0ZVZpc2libGVJdGVtcyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgZGVib3VuY2VSZXNpemUoKSB7XG4gICAgaWYgKCF0aGlzLmF1dG9IZWlnaHQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRSZXNpemUpO1xuICAgICAgdGhpcy50aW1lb3V0UmVzaXplID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKCk7XG4gICAgICB9LCAyMDApO1xuICAgIH1cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcpID09PSAnc3RyaW5nJyAmJlxuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKS5pbmNsdWRlcygnVW5zZWxlY3RlZCcpXG4gICAgKSB7XG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIHRoaXMubGFiZWwgPyB0aGlzLmxhYmVsIDogJycpO1xuICAgIH1cbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkPy4oKTtcbiAgfVxuXG4gIG9uS2V5RG93bihldmVudD86IGFueSkge1xuICAgIGlmIChcbiAgICAgIChldmVudC5rZXlDb2RlID09PSBQb0tleUNvZGVFbnVtLnRhYiAmJiB0aGlzLnZpc2libGVUYWdzLmxlbmd0aCA+IDEpIHx8XG4gICAgICAoZXZlbnQua2V5Q29kZSA9PT0gUG9LZXlDb2RlRW51bS50YWIgJiYgdGhpcy52aXNpYmxlVGFncy5sZW5ndGggPCAxKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSBQb0tleUNvZGVFbnVtLmVzYykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuY29udHJvbERyb3Bkb3duVmlzaWJpbGl0eShmYWxzZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IFBvS2V5Q29kZUVudW0uYXJyb3dEb3duICYmIHRoaXMudmlzaWJsZVRhZ3MubGVuZ3RoID4gMCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuY29udHJvbERyb3Bkb3duVmlzaWJpbGl0eSh0cnVlKTtcbiAgICAgIHRoaXMuZHJvcGRvd24/Lmxpc3Rib3g/LnNldEZvY3VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IFBvS2V5Q29kZUVudW0uZW50ZXIgJiYgIXRoaXMuZW50ZXJDbG9zZVRhZykge1xuICAgICAgaWYgKHRoaXMudmlzaWJsZVRhZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlRHJvcGRvd25WaXNpYmlsaXR5KCk7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy50b2dnbGVEcm9wZG93blZpc2liaWxpdHkoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSBQb0tleUNvZGVFbnVtLnNwYWNlKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy50b2dnbGVEcm9wZG93blZpc2liaWxpdHkoKTtcbiAgICB9XG4gICAgdGhpcy5lbnRlckNsb3NlVGFnID0gZmFsc2U7XG4gIH1cblxuICB0b2dnbGVEcm9wZG93blZpc2liaWxpdHkoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5maWx0ZXJTZXJ2aWNlKSB7XG4gICAgICB0aGlzLmFwcGx5RmlsdGVySW5GaXJzdENsaWNrKCk7XG4gICAgfVxuXG4gICAgdGhpcy5jb250cm9sRHJvcGRvd25WaXNpYmlsaXR5KCF0aGlzLmRyb3Bkb3duT3Blbik7XG4gIH1cblxuICBvbktleURvd25Ecm9wZG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5jb250cm9sRHJvcGRvd25WaXNpYmlsaXR5KGZhbHNlKTtcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBvcGVuRHJvcGRvd24odG9PcGVuKSB7XG4gICAgaWYgKHRvT3BlbiAmJiAhdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5jb250cm9sRHJvcGRvd25WaXNpYmlsaXR5KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnRyb2xEcm9wZG93blZpc2liaWxpdHkodG9PcGVuOiBib29sZWFuKSB7XG4gICAgdG9PcGVuID8gdGhpcy5vcGVuKCkgOiB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBzY3JvbGxUb1NlbGVjdGVkT3B0aW9ucygpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbnMgJiYgdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMub3B0aW9ucy5maW5kSW5kZXgoXG4gICAgICAgIG9wdGlvbiA9PiBvcHRpb25bdGhpcy5maWVsZFZhbHVlXSA9PT0gdGhpcy5zZWxlY3RlZE9wdGlvbnNbMF1bdGhpcy5maWVsZFZhbHVlXVxuICAgICAgKTtcbiAgICAgIHRoaXMuZHJvcGRvd24uc2Nyb2xsVG8oaW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHNldFZpc2libGVPcHRpb25zRHJvcGRvd24ob3B0aW9ucykge1xuICAgIHRoaXMudmlzaWJsZU9wdGlvbnNEcm9wZG93biA9IG9wdGlvbnM7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGNoYW5nZVNlYXJjaChldmVudCkge1xuICAgIGlmIChldmVudCAmJiBldmVudFt0aGlzLmZpZWxkVmFsdWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLmZpbHRlclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJTdWJqZWN0Lm5leHQoZXZlbnRbdGhpcy5maWVsZFZhbHVlXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlYXJjaEJ5TGFiZWwoZXZlbnRbdGhpcy5maWVsZFZhbHVlXSwgdGhpcy5vcHRpb25zLCB0aGlzLmZpbHRlck1vZGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFZpc2libGVPcHRpb25zRHJvcGRvd24odGhpcy5vcHRpb25zKTtcbiAgICB9XG5cbiAgICAvLyB0aW1lb3V0IG5lY2Vzc8OhcmlvIHBhcmEgcmVwb3NpY2lvbmFyIGNvcnJldGFtZW50ZSBxdWFuZG8gZHJvcGRvd24gZXN0aXZlciBwcmEgY2ltYSBkbyBpbnB1dCBlIHJlYWxpemFyIGJ1c2NhIG5vIGlucHV0XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmFkanVzdENvbnRhaW5lclBvc2l0aW9uKCkpO1xuICB9XG5cbiAgY2xvc2VUYWcodmFsdWUsIGV2ZW50KSB7XG4gICAgbGV0IGluZGV4O1xuICAgIHRoaXMuZW50ZXJDbG9zZVRhZyA9IHRydWU7XG4gICAgaWYgKCF2YWx1ZSB8fCAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5pbmNsdWRlcygnKycpKSkge1xuICAgICAgaW5kZXggPSBudWxsO1xuICAgICAgY29uc3QgaXRlbXNOb3RJblZpc2libGVUYWdzID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PiAhdGhpcy52aXNpYmxlVGFncy5pbmNsdWRlcyhvcHRpb24pKTtcbiAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIHRoaXMudmlzaWJsZVRhZ3MpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkT3B0aW9ucy5pbmNsdWRlcyhvcHRpb24pKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMuc3BsaWNlKHRoaXMudmlzaWJsZVRhZ3MubGVuZ3RoIC0gMSwgaXRlbXNOb3RJblZpc2libGVUYWdzLmxlbmd0aCk7XG4gICAgICAgICAgdGhpcy51cGRhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgICB0aGlzLmNhbGxPbkNoYW5nZSh0aGlzLnNlbGVjdGVkT3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaW5kZXggPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5maW5kSW5kZXgob3B0aW9uID0+IG9wdGlvblt0aGlzLmZpZWxkVmFsdWVdID09PSB2YWx1ZSk7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgdGhpcy51cGRhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICAgIHRoaXMuY2FsbE9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcbiAgICB9XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZm9jdXNPbk5leHRUYWcoaW5kZXgsIGV2ZW50KTtcbiAgICB9LCAzMDApO1xuICB9XG5cbiAgd2FzQ2xpY2tlZE9uVG9nZ2xlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5kcm9wZG93bk9wZW4gJiZcbiAgICAgICF0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiZcbiAgICAgICF0aGlzLmljb25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJlxuICAgICAgIXRoaXMuZHJvcGRvd25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxuICAgICkge1xuICAgICAgdGhpcy5jb250cm9sRHJvcGRvd25WaXNpYmlsaXR5KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBhcHBseUZpbHRlcih2YWx1ZTogc3RyaW5nID0gJycpOiBPYnNlcnZhYmxlPEFycmF5PFBvTXVsdGlzZWxlY3RPcHRpb24gfCBhbnk+PiB7XG4gICAgY29uc3QgcGFyYW0gPSB7IHByb3BlcnR5OiB0aGlzLmZpZWxkTGFiZWwsIHZhbHVlOiB2YWx1ZSB9O1xuICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZ2V0RmlsdGVyZWREYXRhKHBhcmFtKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICB0aGlzLmlzU2VydmVyU2VhcmNoaW5nID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICB9KSxcbiAgICAgIHRhcCgob3B0aW9uczogQXJyYXk8UG9NdWx0aXNlbGVjdE9wdGlvbiB8IGFueT4pID0+IHtcbiAgICAgICAgdGhpcy5zZXRPcHRpb25zQnlBcHBseUZpbHRlcihvcHRpb25zKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGaWx0ZXJJbkZpcnN0Q2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaXNGaXJzdEZpbHRlcikge1xuICAgICAgdGhpcy5pc1NlcnZlclNlYXJjaGluZyA9IHRydWU7XG5cbiAgICAgIC8vIG5lY2Vzc2FyaW8gZW52aWFyIHVtIG9iamV0byBzdHJpbmcgdmF6aWEgcGFyYSByZWZhemVyIGEgYnVzY2EsIHF1YW5kbyBhbHRlcmFyIGZpbHRlclNlcnZpY2UsIGZpZWxkVmFsdWUgZSBmaWVsZExhYmVsXG4gICAgICAvLyBwb2lzIHRlbW9zIG8gZGlzdGluY3RVbnRpbENoYW5nZSBubyBwaXBlIGRvIGZpbHRlclN1YmplY3RcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLW5ldy13cmFwcGVycyAqL1xuICAgICAgdGhpcy5maWx0ZXJTdWJqZWN0Lm5leHQobmV3IFN0cmluZygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcHRpb25zID0gWy4uLnRoaXMuY2FjaGVPcHRpb25zXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldE9wdGlvbnNCeUFwcGx5RmlsdGVyKGl0ZW1zOiBBcnJheTxQb011bHRpc2VsZWN0T3B0aW9uIHwgYW55Pikge1xuICAgIGlmICh0aGlzLmlzRmlyc3RGaWx0ZXIpIHtcbiAgICAgIHRoaXMuY2FjaGVPcHRpb25zID0gWy4uLml0ZW1zXTtcbiAgICAgIHRoaXMuaXNGaXJzdEZpbHRlciA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMub3B0aW9ucyA9IFsuLi5pdGVtc107XG4gICAgdGhpcy5zZXRWaXNpYmxlT3B0aW9uc0Ryb3Bkb3duKHRoaXMub3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGFkanVzdENvbnRhaW5lclBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbFBvc2l0aW9uLmFkanVzdFBvc2l0aW9uKHBvTXVsdGlzZWxlY3RDb250YWluZXJQb3NpdGlvbkRlZmF1bHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRyb3Bkb3duSWNvbiA9ICdwby1pY29uLWFycm93LWRvd24nO1xuICAgIHRoaXMuZHJvcGRvd25PcGVuID0gZmFsc2U7XG5cbiAgICB0aGlzLmRyb3Bkb3duLmNvbnRyb2xWaXNpYmlsaXR5KGZhbHNlKTtcbiAgICB0aGlzLnNldFZpc2libGVPcHRpb25zRHJvcGRvd24odGhpcy5vcHRpb25zKTtcblxuICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzKCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzT25OZXh0VGFnKGluZGV4Q2xvc2VkOiBudW1iZXIsIGNsaWNrT3JFbnRlcjogc3RyaW5nKSB7XG4gICAgaWYgKGNsaWNrT3JFbnRlciA9PT0gJ2VudGVyJykge1xuICAgICAgY29uc3QgdGFnUmVtb3ZlRWxlbWVudHM6IEFycmF5PGFueT4gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnBvLXRhZy1yZW1vdmUnKTtcbiAgICAgIGluZGV4Q2xvc2VkID0gaW5kZXhDbG9zZWQgfHwgaW5kZXhDbG9zZWQgPT09IDAgPyBpbmRleENsb3NlZCA6IHRhZ1JlbW92ZUVsZW1lbnRzLmxlbmd0aDtcbiAgICAgIGlmICh0YWdSZW1vdmVFbGVtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIGBVbnNlbGVjdGVkIGl0ZW1zICR7dGhpcy5sYWJlbH1gKTtcbiAgICAgICAgdGhpcy5jb250cm9sRHJvcGRvd25WaXNpYmlsaXR5KHRydWUpO1xuICAgICAgfVxuICAgICAgdGhpcy5mb2N1c09uUmVtb3ZlVGFnKHRhZ1JlbW92ZUVsZW1lbnRzLCBpbmRleENsb3NlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluZGV4Q2xvc2VkID0gMDtcbiAgICB9XG4gICAgdGhpcy5oYW5kbGVLZXlib2FyZE5hdmlnYXRpb25UYWcoaW5kZXhDbG9zZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c09uUmVtb3ZlVGFnKHRhZzogYW55LCBpbmRleENsb3NlZDogbnVtYmVyKSB7XG4gICAgaWYgKHRhZy5sZW5ndGggPT09IGluZGV4Q2xvc2VkKSB7XG4gICAgICB0YWdbaW5kZXhDbG9zZWQgLSAxXT8uZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGFnW2luZGV4Q2xvc2VkXT8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlS2V5Ym9hcmROYXZpZ2F0aW9uVGFnKGluaXRpYWxJbmRleCA9IDApIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIGNvbnN0IHRhZ1JlbW92ZUVsZW1lbnRzID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wby10YWctcmVtb3ZlJyk7XG4gICAgdGhpcy5pbml0aWFsaXplVGFnUmVtb3ZlRWxlbWVudHModGFnUmVtb3ZlRWxlbWVudHMsIGluaXRpYWxJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIHNldFRhYkluZGV4KGVsZW1lbnQsIHRhYkluZGV4KSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgdGFiSW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBcnJvd0xlZnQodGFnUmVtb3ZlRWxlbWVudHMsIGluZGV4KSB7XG4gICAgaWYgKGluZGV4ID4gMCkge1xuICAgICAgdGhpcy5zZXRUYWJJbmRleCh0YWdSZW1vdmVFbGVtZW50c1tpbmRleF0sIC0xKTtcbiAgICAgIHRhZ1JlbW92ZUVsZW1lbnRzW2luZGV4IC0gMV0uZm9jdXMoKTtcbiAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFnUmVtb3ZlRWxlbWVudHNbaW5kZXggLSAxXSwgMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBcnJvd1JpZ2h0KHRhZ1JlbW92ZUVsZW1lbnRzLCBpbmRleCkge1xuICAgIGlmIChpbmRleCA8IHRhZ1JlbW92ZUVsZW1lbnRzLmxlbmd0aCAtIDEpIHtcbiAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFnUmVtb3ZlRWxlbWVudHNbaW5kZXhdLCAtMSk7XG4gICAgICB0YWdSZW1vdmVFbGVtZW50c1tpbmRleCArIDFdLmZvY3VzKCk7XG4gICAgICB0aGlzLnNldFRhYkluZGV4KHRhZ1JlbW92ZUVsZW1lbnRzW2luZGV4ICsgMV0sIDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgdGFnUmVtb3ZlRWxlbWVudHMsIGluZGV4KSB7XG4gICAgY29uc3QgS0VZX1NQQUNFID0gJ1NwYWNlJztcbiAgICBjb25zdCBLRVlfQVJST1dfTEVGVCA9ICdBcnJvd0xlZnQnO1xuICAgIGNvbnN0IEtFWV9BUlJPV19SSUdIVCA9ICdBcnJvd1JpZ2h0JztcblxuICAgIGlmIChldmVudC5jb2RlID09PSBLRVlfU1BBQ0UpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlfQVJST1dfTEVGVCkge1xuICAgICAgdGhpcy5oYW5kbGVBcnJvd0xlZnQodGFnUmVtb3ZlRWxlbWVudHMsIGluZGV4KTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gS0VZX0FSUk9XX1JJR0hUKSB7XG4gICAgICB0aGlzLmhhbmRsZUFycm93UmlnaHQodGFnUmVtb3ZlRWxlbWVudHMsIGluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVUYWdSZW1vdmVFbGVtZW50cyh0YWdSZW1vdmVFbGVtZW50cywgaW5pdGlhbEluZGV4KSB7XG4gICAgdGFnUmVtb3ZlRWxlbWVudHMuZm9yRWFjaCgodGFnUmVtb3ZlRWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChpbmRleCA9PT0gaW5pdGlhbEluZGV4KSB7XG4gICAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFnUmVtb3ZlRWxlbWVudHNbaW5pdGlhbEluZGV4XSwgMCk7XG4gICAgICB9IGVsc2UgaWYgKHRhZ1JlbW92ZUVsZW1lbnRzLmxlbmd0aCA9PT0gaW5pdGlhbEluZGV4KSB7XG4gICAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFnUmVtb3ZlRWxlbWVudHNbaW5pdGlhbEluZGV4IC0gMV0sIDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXRUYWJJbmRleCh0YWdSZW1vdmVFbGVtZW50LCAtMSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgZnJvbUV2ZW50KHRhZ1JlbW92ZUVsZW1lbnQsICdrZXlkb3duJykuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlS2V5RG93bihldmVudCwgdGFnUmVtb3ZlRWxlbWVudHMsIGluZGV4KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5jbGlja091dExpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2NsaWNrJywgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLndhc0NsaWNrZWRPblRvZ2dsZShldmVudCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc2l6ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdyZXNpemUnLCAoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVZpc2libGVJdGVtcygpO1xuXG4gICAgICBpc01vYmlsZSgpID8gdGhpcy5hZGp1c3RDb250YWluZXJQb3NpdGlvbigpIDogdGhpcy5jbG9zZSgpO1xuICAgIH0pO1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwsIHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBvblNjcm9sbCA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLmFkanVzdENvbnRhaW5lclBvc2l0aW9uKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBvcGVuKCk6IHZvaWQge1xuICAgIHRoaXMuZHJvcGRvd25JY29uID0gJ3BvLWljb24tYXJyb3ctdXAnO1xuICAgIHRoaXMuZHJvcGRvd25PcGVuID0gdHJ1ZTtcblxuICAgIHRoaXMuZHJvcGRvd24uY29udHJvbFZpc2liaWxpdHkodHJ1ZSk7XG4gICAgdGhpcy5zZXRWaXNpYmxlT3B0aW9uc0Ryb3Bkb3duKHRoaXMub3B0aW9ucyk7XG4gICAgdGhpcy5pbml0aWFsaXplTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5zY3JvbGxUb1NlbGVjdGVkT3B0aW9ucygpO1xuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5zZXRQb3NpdGlvbkRyb3Bkb3duKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUxpc3RlbmVycygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jbGlja091dExpc3RlbmVyKSB7XG4gICAgICB0aGlzLmNsaWNrT3V0TGlzdGVuZXIoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZXNpemVMaXN0ZW5lcikge1xuICAgICAgdGhpcy5yZXNpemVMaXN0ZW5lcigpO1xuICAgIH1cblxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uU2Nyb2xsLCB0cnVlKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQb3NpdGlvbkRyb3Bkb3duKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbFBvc2l0aW9uLnNldEVsZW1lbnRzKFxuICAgICAgdGhpcy5kcm9wZG93bi5jb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgIHBvTXVsdGlzZWxlY3RDb250YWluZXJPZmZzZXQsXG4gICAgICB0aGlzLmlucHV0RWxlbWVudCxcbiAgICAgIFsndG9wJywgJ2JvdHRvbSddLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICB0aGlzLmFkanVzdENvbnRhaW5lclBvc2l0aW9uKCk7XG4gIH1cbn1cbiIsIjxwby1maWVsZC1jb250YWluZXJcbiAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbcC1sYWJlbF09XCJsYWJlbFwiXG4gIFtwLW9wdGlvbmFsXT1cIm9wdGlvbmFsXCJcbiAgW3AtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICBbcC1zaG93LXJlcXVpcmVkXT1cInNob3dSZXF1aXJlZFwiXG4+XG4gIDxkaXZcbiAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgI3RyaWdnZXI9XCJjZGtPdmVybGF5T3JpZ2luXCJcbiAgICBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1jb250ZW50XCJcbiAgICBbY2xhc3MucG8tbXVsdGlzZWxlY3Qtc2hvd109XCJkcm9wZG93bk9wZW5cIlxuICA+XG4gICAgPGRpdlxuICAgICAgI2lucHV0RWxlbWVudFxuICAgICAgW3RhYmluZGV4XT1cImRpc2FibGVkID8gLTEgOiAwXCJcbiAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxcIlxuICAgICAgY2xhc3M9XCJwby1pbnB1dC1pY29uLXJpZ2h0IHBvLW11bHRpc2VsZWN0LWlucHV0XCJcbiAgICAgIFtjbGFzcy5wby1tdWx0aXNlbGVjdC1pbnB1dC1hdXRvXT1cImF1dG9IZWlnaHRcIlxuICAgICAgW2NsYXNzLnBvLW11bHRpc2VsZWN0LWlucHV0LXN0YXRpY109XCIhYXV0b0hlaWdodFwiXG4gICAgICBbY2xhc3MucG8tbXVsdGlzZWxlY3QtaW5wdXQtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2NsYXNzLnBvLW11bHRpc2VsZWN0LWlucHV0LWZvbnRdPVwiIWRpc2FibGVkICYmICF2aXNpYmxlVGFncz8ubGVuZ3RoXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93blZpc2liaWxpdHkoKVwiXG4gICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgPlxuICAgICAgPHNwYW4gKm5nSWY9XCIhZGlzYWJsZWQgJiYgIXZpc2libGVUYWdzPy5sZW5ndGhcIiBjbGFzcz1cInBvLW11bHRpc2VsZWN0LWlucHV0LXBsYWNlaG9sZGVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgIHt7IHBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXIgOiBsaXRlcmFscy5zZWxlY3RJdGVtIH19XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxwby10YWdcbiAgICAgICAgKm5nRm9yPVwibGV0IHRhZyBvZiB2aXNpYmxlVGFnczsgaW5kZXggYXMgaVwiXG4gICAgICAgIFtwLXZhbHVlXT1cInRhZ1tmaWVsZExhYmVsXVwiXG4gICAgICAgIFtwLWxpdGVyYWxzXT1cImkgKyAxID09PSB2aXNpYmxlVGFncy5sZW5ndGggJiYgaGFzTW9yZVRhZyA/IGxpdGVyYWxzVGFnIDogdW5kZWZpbmVkXCJcbiAgICAgICAgW3AtcmVtb3ZhYmxlXT1cInRydWVcIlxuICAgICAgICBbY2xhc3MucG8tY2xpY2thYmxlXT1cInRhZ1tmaWVsZFZhbHVlXSA9PT0gJycgJiYgIWRpc2FibGVkXCJcbiAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAocC1jbG9zZSk9XCJjbG9zZVRhZyh0YWdbZmllbGRWYWx1ZV0sICRldmVudClcIlxuICAgICAgPjwvcG8tdGFnPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicG8tZmllbGQtaWNvbi1jb250YWluZXItcmlnaHRcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAjaWNvbkVsZW1lbnRcbiAgICAgICAgICBjbGFzcz1cInBvLWljb24gcG8tZmllbGQtaWNvbiB7eyBkcm9wZG93bkljb24gfX0ge3sgZGlzYWJsZWQgPyAncG8taWNvbi1pbnB1dC1kaXNhYmxlZCcgOiAncG8taWNvbi1pbnB1dCcgfX1cIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cImRpc2FibGVkID8gJ3BvLWZpZWxkLWljb24tZGlzYWJsZWQnIDogJydcIlxuICAgICAgICA+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwZW5kQm94OyB0aGVuIGRyb3Bkb3duQ0RLOyBlbHNlIGRyb3Bkb3duRGVmYXVsdFwiPiA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duRGVmYXVsdD5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcGRvd25MaXN0Ym94XCI+IDwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjZHJvcGRvd25DREs+XG4gICAgPG5nLXRlbXBsYXRlIGNka0Nvbm5lY3RlZE92ZXJsYXkgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwidHJpZ2dlclwiIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJ0cnVlXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcGRvd25MaXN0Ym94XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8cG8tZmllbGQtY29udGFpbmVyLWJvdHRvbSBbcC1oZWxwXT1cImhlbHBcIiBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiPjwvcG8tZmllbGQtY29udGFpbmVyLWJvdHRvbT5cbjwvcG8tZmllbGQtY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duTGlzdGJveD5cbiAgPHBvLW11bHRpc2VsZWN0LWRyb3Bkb3duXG4gICAgI2Ryb3Bkb3duRWxlbWVudFxuICAgIFtwLXNlYXJjaGluZ109XCJpc1NlcnZlclNlYXJjaGluZ1wiXG4gICAgW3AtaGlkZS1zZWFyY2hdPVwiaGlkZVNlYXJjaFwiXG4gICAgW3AtaGlkZS1zZWxlY3QtYWxsXT1cImhpZGVTZWxlY3RBbGxcIlxuICAgIFtwLWxpdGVyYWxzXT1cImxpdGVyYWxzXCJcbiAgICBbcC1vcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgIFtwLXZpc2libGUtb3B0aW9uc109XCJ2aXNpYmxlT3B0aW9uc0Ryb3Bkb3duXCJcbiAgICBbcC1zZWxlY3RlZC1vcHRpb25zXT1cInNlbGVjdGVkT3B0aW9uc1wiXG4gICAgW3AtcGxhY2Vob2xkZXItc2VhcmNoXT1cInBsYWNlaG9sZGVyU2VhcmNoXCJcbiAgICBbcC1maWVsZC12YWx1ZV09XCJmaWVsZFZhbHVlXCJcbiAgICBbcC1maWVsZC1sYWJlbF09XCJmaWVsZExhYmVsXCJcbiAgICBbcC1tdWx0aXNlbGVjdC10ZW1wbGF0ZV09XCJtdWx0aXNlbGVjdE9wdGlvblRlbXBsYXRlXCJcbiAgICAocC1jaGFuZ2UpPVwiY2hhbmdlSXRlbXMoJGV2ZW50KVwiXG4gICAgKHAtY2hhbmdlLXNlYXJjaCk9XCJjaGFuZ2VTZWFyY2goJGV2ZW50KVwiXG4gICAgKHAtY2xvc2UtZHJvcGRvd24pPVwiY29udHJvbERyb3Bkb3duVmlzaWJpbGl0eShmYWxzZSlcIlxuICAgIChrZXlkb3duKT1cIm9uS2V5RG93bkRyb3Bkb3duKCRldmVudCwgMClcIlxuICA+XG4gIDwvcG8tbXVsdGlzZWxlY3QtZHJvcGRvd24+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
676
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLW11bHRpc2VsZWN0L3BvLW11bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1tdWx0aXNlbGVjdC9wby1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBRVosVUFBVSxFQUtWLFNBQVMsRUFDVCxVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBYyxZQUFZLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDJFQUEyRSxDQUFDOzs7Ozs7Ozs7SUNEM0gs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RyxpQkFBcUI7WUFFckIsNEhBb0JjOzs7O1lBdEZaLHlDQUF1QixzQkFBQSw0QkFBQSw0QkFBQSxxQ0FBQTtZQVVyQixlQUEwQztZQUExQyx1REFBMEM7WUFReEMsZUFBOEM7WUFBOUMsMkRBQThDLGdEQUFBLCtDQUFBLDBHQUFBO1lBSjlDLGdEQUE4QjtZQUM5Qix3Q0FBMEIseUJBQUE7WUFXbkIsZUFBdUM7WUFBdkMsa0dBQXVDO1lBSzVCLGVBQWdCO1lBQWhCLHlDQUFnQjtZQVk5QixlQUE0RztZQUE1Ryx5SUFBNEc7WUFDNUcsc0VBQW9EO1lBTzdDLGVBQWlCO1lBQWpCLG9DQUFpQixpQkFBQSxpQkFBQTtZQVlMLGVBQWU7WUFBZixpQ0FBZSw0QkFBQTs7O3VGRHFEL0Isc0JBQXNCO2NBTmxDLFNBQVM7MkJBQ0UsZ0JBQWdCLG1CQUVULHVCQUF1QixDQUFDLE1BQU0sYUFDL0MsU0FBUztxT0FNVCx5QkFBeUI7a0JBRHhCLFlBQVk7bUJBQUMsb0NBQW9DLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBR2hCLGVBQWU7a0JBQWxFLFNBQVM7bUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3BCLFFBQVE7a0JBQXJDLFNBQVM7bUJBQUMsaUJBQWlCO1lBQ2tDLFdBQVc7a0JBQXhFLFNBQVM7bUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ0csWUFBWTtrQkFBMUUsU0FBUzttQkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEb0NoZWNrLFxuICBFbGVtZW50UmVmLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFBvTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBQb0tleUNvZGVFbnVtIH0gZnJvbSAnLi8uLi8uLi8uLi9lbnVtcy9wby1rZXktY29kZS5lbnVtJztcbmltcG9ydCB7IFBvQ29udHJvbFBvc2l0aW9uU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vc2VydmljZXMvcG8tY29udHJvbC1wb3NpdGlvbi9wby1jb250cm9sLXBvc2l0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tICcuLy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xuXG5pbXBvcnQgeyBwb0xvY2FsZURlZmF1bHQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5jb25zdGFudCc7XG5pbXBvcnQgeyBQb011bHRpc2VsZWN0QmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcG8tbXVsdGlzZWxlY3QtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9NdWx0aXNlbGVjdEZpbHRlclNlcnZpY2UgfSBmcm9tICcuL3BvLW11bHRpc2VsZWN0LWZpbHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RPcHRpb25UZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vcG8tbXVsdGlzZWxlY3Qtb3B0aW9uLXRlbXBsYXRlL3BvLW11bHRpc2VsZWN0LW9wdGlvbi10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUG9NdWx0aXNlbGVjdE9wdGlvbiB9IGZyb20gJy4vcG8tbXVsdGlzZWxlY3Qtb3B0aW9uLmludGVyZmFjZSc7XG5cbmNvbnN0IHBvTXVsdGlzZWxlY3RDb250YWluZXJPZmZzZXQgPSA4O1xuY29uc3QgcG9NdWx0aXNlbGVjdENvbnRhaW5lclBvc2l0aW9uRGVmYXVsdCA9ICdib3R0b20nO1xuY29uc3QgcG9NdWx0aXNlbGVjdElucHV0UGFkZGluZ1JpZ2h0ID0gNTI7XG5jb25zdCBwb011bHRpc2VsZWN0U3BhY2VCZXR3ZWVuVGFncyA9IDg7XG5cbmNvbnN0IGxpdGVyYWxzVGFnUmVtb3ZlT3RoZXJzID0ge1xuICBwdDoge1xuICAgIHJlbW92ZTogJ1JlbW92ZXIgdG9kb3Mgb3MgaXRlbnMgc2VsZWNpb25hZG9zJ1xuICB9LFxuICBydToge1xuICAgIHJlbW92ZTogJ9Cj0LTQsNC70LjRgtGMINCy0YHQtSDQstGL0LHRgNCw0L3QvdGL0LUg0Y3Qu9C10LzQtdC90YLRiydcbiAgfSxcbiAgZXM6IHtcbiAgICByZW1vdmU6ICdFbGltaW5hciB0b2RvcyBsb3MgZWxlbWVudG9zIHNlbGVjY2lvbmFkb3MnXG4gIH0sXG4gIGVuOiB7XG4gICAgcmVtb3ZlOiAnQ2xlYXIgYWxsIHNlbGVjdGVkIGl0ZW1zJ1xuICB9XG59O1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuY29uc3QgcHJvdmlkZXJzID0gW1xuICBQb011bHRpc2VsZWN0RmlsdGVyU2VydmljZSxcbiAgUG9Db250cm9sUG9zaXRpb25TZXJ2aWNlLFxuICB7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUG9NdWx0aXNlbGVjdENvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbiAgfSxcbiAge1xuICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUG9NdWx0aXNlbGVjdENvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbiAgfVxuXTtcblxuLyoqXG4gKiBAZG9jc0V4dGVuZHMgUG9NdWx0aXNlbGVjdEJhc2VDb21wb25lbnRcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tdWx0aXNlbGVjdC1iYXNpY1wiIHRpdGxlPVwiUE8gTXVsdGlzZWxlY3QgQmFzaWNcIj5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tdWx0aXNlbGVjdC1iYXNpYy9zYW1wbGUtcG8tbXVsdGlzZWxlY3QtYmFzaWMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW11bHRpc2VsZWN0LWJhc2ljL3NhbXBsZS1wby1tdWx0aXNlbGVjdC1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tdWx0aXNlbGVjdC1sYWJzXCIgdGl0bGU9XCJQTyBNdWx0aXNlbGVjdCBMYWJzXCI+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbXVsdGlzZWxlY3QtbGFicy9zYW1wbGUtcG8tbXVsdGlzZWxlY3QtbGFicy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbXVsdGlzZWxlY3QtbGFicy9zYW1wbGUtcG8tbXVsdGlzZWxlY3QtbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tdWx0aXNlbGVjdC12YWNhdGlvblwiIHRpdGxlPVwiUE8gTXVsdGlzZWxlY3QgLSBWYWNhdGlvblwiPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW11bHRpc2VsZWN0LXZhY2F0aW9uL3NhbXBsZS1wby1tdWx0aXNlbGVjdC12YWNhdGlvbi5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbXVsdGlzZWxlY3QtdmFjYXRpb24vc2FtcGxlLXBvLW11bHRpc2VsZWN0LXZhY2F0aW9uLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLW11bHRpc2VsZWN0LXZhY2F0aW9uLXJlYWN0aXZlLWZvcm1cIiB0aXRsZT1cIlBPIE11bHRpc2VsZWN0IC0gVmFjYXRpb24gUmVhY3RpdmUgRm9ybVwiPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW11bHRpc2VsZWN0LXZhY2F0aW9uLXJlYWN0aXZlLWZvcm0vc2FtcGxlLXBvLW11bHRpc2VsZWN0LXZhY2F0aW9uLXJlYWN0aXZlLWZvcm0uY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW11bHRpc2VsZWN0LXZhY2F0aW9uLXJlYWN0aXZlLWZvcm0vc2FtcGxlLXBvLW11bHRpc2VsZWN0LXZhY2F0aW9uLXJlYWN0aXZlLWZvcm0uY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbXVsdGlzZWxlY3QtdGVtcGxhdGVcIiB0aXRsZT1cIlBPIE11bHRpc2VsZWN0IC0gVGVtcGxhdGVcIj5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tdWx0aXNlbGVjdC10ZW1wbGF0ZS9zYW1wbGUtcG8tbXVsdGlzZWxlY3QtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW11bHRpc2VsZWN0LXRlbXBsYXRlL3NhbXBsZS1wby1tdWx0aXNlbGVjdC10ZW1wbGF0ZS5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tdWx0aXNlbGVjdC1oZXJvZXNcIiB0aXRsZT1cIlBPIE11bHRpc2VsZWN0IC0gSGVyb2VzIC0gdXNpbmcgQVBJXCI+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbXVsdGlzZWxlY3QtaGVyb2VzL3NhbXBsZS1wby1tdWx0aXNlbGVjdC1oZXJvZXMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW11bHRpc2VsZWN0LWhlcm9lcy9zYW1wbGUtcG8tbXVsdGlzZWxlY3QtaGVyb2VzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbXVsdGlzZWxlY3QtaGVyb2VzL3NhbXBsZS1wby1tdWx0aXNlbGVjdC1oZXJvZXMuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLW11bHRpc2VsZWN0LWFueS1hcnJheVwiIHRpdGxlPVwiUE8gTXVsdGlzZWxlY3QgLSBBcnJheSBBbnlcIj5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tdWx0aXNlbGVjdC1hbnktYXJyYXkvc2FtcGxlLXBvLW11bHRpc2VsZWN0LWFueS1hcnJheS5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbXVsdGlzZWxlY3QtYW55LWFycmF5L3NhbXBsZS1wby1tdWx0aXNlbGVjdC1hbnktYXJyYXkuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLW11bHRpc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyc1xufSlcbmV4cG9ydCBjbGFzcyBQb011bHRpc2VsZWN0Q29tcG9uZW50XG4gIGV4dGVuZHMgUG9NdWx0aXNlbGVjdEJhc2VDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBEb0NoZWNrLCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBDb250ZW50Q2hpbGQoUG9NdWx0aXNlbGVjdE9wdGlvblRlbXBsYXRlRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBtdWx0aXNlbGVjdE9wdGlvblRlbXBsYXRlOiBQb011bHRpc2VsZWN0T3B0aW9uVGVtcGxhdGVEaXJlY3RpdmU7XG5cbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25FbGVtZW50JywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGRyb3Bkb3duRWxlbWVudDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25FbGVtZW50JykgZHJvcGRvd247XG4gIEBWaWV3Q2hpbGQoJ2ljb25FbGVtZW50JywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSkgaWNvbkVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIGlucHV0RWxlbWVudDogRWxlbWVudFJlZjtcblxuICBsaXRlcmFsc1RhZztcbiAgZHJvcGRvd25JY29uOiBzdHJpbmcgPSAncG8taWNvbi1hcnJvdy1kb3duJztcbiAgZHJvcGRvd25PcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIGluaXRpYWxpemVkID0gZmFsc2U7XG4gIGhhc01vcmVUYWc6IGJvb2xlYW47XG4gIHRpbWVvdXRSZXNpemU7XG4gIHZpc2libGVFbGVtZW50ID0gZmFsc2U7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgZW50ZXJDbG9zZVRhZyA9IGZhbHNlO1xuICBwcml2YXRlIGluaXRDYWxjdWxhdGVJdGVtcyA9IHRydWU7XG4gIHByaXZhdGUgaXNDYWxjdWxhdGVWaXNpYmxlSXRlbXM6IGJvb2xlYW4gPSB0cnVlO1xuICBwcml2YXRlIGNhY2hlT3B0aW9uczogQXJyYXk8UG9NdWx0aXNlbGVjdE9wdGlvbiB8IGFueT47XG4gIHByaXZhdGUgZm9jdXNPblRhZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY29udHJvbFBvc2l0aW9uOiBQb0NvbnRyb2xQb3NpdGlvblNlcnZpY2UsXG4gICAgcHVibGljIGRlZmF1bHRTZXJ2aWNlOiBQb011bHRpc2VsZWN0RmlsdGVyU2VydmljZSxcbiAgICBsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGxhbmd1YWdlU2VydmljZSk7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSBsYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xuICAgIHRoaXMubGl0ZXJhbHNUYWcgPSB7XG4gICAgICAuLi5saXRlcmFsc1RhZ1JlbW92ZU90aGVyc1twb0xvY2FsZURlZmF1bHRdLFxuICAgICAgLi4ubGl0ZXJhbHNUYWdSZW1vdmVPdGhlcnNbbGFuZ3VhZ2VdXG4gICAgfTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyU2VydmljZSAmJiAoY2hhbmdlcy5maWx0ZXJTZXJ2aWNlIHx8IGNoYW5nZXMuZmllbGRWYWx1ZSB8fCBjaGFuZ2VzLmZpZWxkTGFiZWwpKSB7XG4gICAgICB0aGlzLnNldFNlcnZpY2UodGhpcy5maWx0ZXJTZXJ2aWNlKTtcbiAgICB9XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgY29uc3QgaW5wdXRXaWR0aCA9IHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgLy8gUGVybWl0ZSBxdWUgYXMgdGFncyBzZWphbSBjYWxjdWxhZGFzIG5hIHByaW1laXJhIHZleiBxdWUgbyBjb21wb25lbnRlIHRvcm5hLXNlIHZpc8OtdmVsLFxuICAgIC8vIGV2aXRhbmRvIGNvbSBpc3NvLCBwcm9ibGVtYXMgY29tIFRhYnMgb3UgRGl2cyBxdWUgaW5pY2llbSBlc2NvbmRpZGFzLlxuICAgIGlmICgoaW5wdXRXaWR0aCAmJiAhdGhpcy52aXNpYmxlRWxlbWVudCAmJiB0aGlzLmluaXRpYWxpemVkKSB8fCAoaW5wdXRXaWR0aCAmJiB0aGlzLmlzQ2FsY3VsYXRlVmlzaWJsZUl0ZW1zKSkge1xuICAgICAgdGhpcy5kZWJvdW5jZVJlc2l6ZSgpO1xuICAgICAgdGhpcy52aXNpYmxlRWxlbWVudCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLmdldE9iamVjdHNCeVZhbHVlc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmZpbHRlclN1YmplY3Q/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW7Dp8OjbyBxdWUgYXRyaWJ1aSBmb2NvIGFvIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIFBhcmEgdXRpbGl6w6EtbGEgw6kgbmVjZXNzw6FyaW8gdGVyIGEgaW5zdMOibmNpYSBkbyBjb21wb25lbnRlIG5vIERPTSwgcG9kZW5kbyBzZXIgdXRpbGl6YWRvIG8gVmlld0NoaWxkIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogaW1wb3J0IHsgUG9NdWx0aXNlbGVjdENvbXBvbmVudCB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcbiAgICpcbiAgICogLi4uXG4gICAqXG4gICAqIEBWaWV3Q2hpbGQoUG9NdWx0aXNlbGVjdENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgbXVsdGlzZWxlY3Q6IFBvTXVsdGlzZWxlY3RDb21wb25lbnQ7XG4gICAqXG4gICAqIGZvY3VzTXVsdGlzZWxlY3QoKSB7XG4gICAqICAgdGhpcy5tdWx0aXNlbGVjdC5mb2N1cygpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0SW5wdXRXaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wby1tdWx0aXNlbGVjdC1pbnB1dCcpLm9mZnNldFdpZHRoIC0gcG9NdWx0aXNlbGVjdElucHV0UGFkZGluZ1JpZ2h0O1xuICB9XG5cbiAgZ2V0VGFnc1dpZHRoKCkge1xuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgncG8tdGFnJyk7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGFncykubWFwKHRhZyA9PiB0YWdbJ29mZnNldFdpZHRoJ10pO1xuICB9XG5cbiAgY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKCkge1xuICAgIHRoaXMuaGFzTW9yZVRhZyA9IGZhbHNlO1xuICAgIGNvbnN0IHRhZ3NXaWR0aCA9IHRoaXMuZ2V0VGFnc1dpZHRoKCk7XG4gICAgY29uc3QgaW5wdXRXaWR0aCA9IHRoaXMuZ2V0SW5wdXRXaWR0aCgpO1xuICAgIGNvbnN0IGV4dHJhVGFnU2l6ZSA9IDYzO1xuICAgIGNvbnN0IHRhZ3NWaXNpYmxlID0gdGFnc1dpZHRoWzBdO1xuXG4gICAgdGhpcy52aXNpYmxlVGFncyA9IFtdO1xuXG4gICAgaWYgKGlucHV0V2lkdGggPiAwKSB7XG4gICAgICBsZXQgc3VtID0gMDtcbiAgICAgIGxldCBpID0gMDtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICBzdW0gKz0gdGFnc1dpZHRoW2ldICsgcG9NdWx0aXNlbGVjdFNwYWNlQmV0d2VlblRhZ3M7XG4gICAgICAgIHRoaXMudmlzaWJsZVRhZ3MucHVzaCh0aGlzLnNlbGVjdGVkT3B0aW9uc1tpXSk7XG5cbiAgICAgICAgaWYgKHN1bSA+IGlucHV0V2lkdGgpIHtcbiAgICAgICAgICBzdW0gLT0gdGFnc1dpZHRoW2ldO1xuICAgICAgICAgIHRoaXMuaXNDYWxjdWxhdGVWaXNpYmxlSXRlbXMgPSBmYWxzZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGFnc1Zpc2libGUgfHwgIXRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCkge1xuICAgICAgICBpZiAoaSA9PT0gdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5pc0NhbGN1bGF0ZVZpc2libGVJdGVtcyA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGFzTW9yZVRhZyA9IHRydWU7XG4gICAgICAgIGlmIChzdW0gKyBleHRyYVRhZ1NpemUgPiBpbnB1dFdpZHRoKSB7XG4gICAgICAgICAgdGhpcy52aXNpYmxlVGFncy5zcGxpY2UoLTIsIDIpO1xuICAgICAgICAgIGNvbnN0IGxhYmVsID0gJysnICsgKHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCArIDEgLSBpKS50b1N0cmluZygpO1xuICAgICAgICAgIHRoaXMudmlzaWJsZVRhZ3MucHVzaCh7IFt0aGlzLmZpZWxkVmFsdWVdOiAnJywgW3RoaXMuZmllbGRMYWJlbF06IGxhYmVsIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmlzaWJsZVRhZ3Muc3BsaWNlKC0xLCAxKTtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9ICcrJyArICh0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggLSBpKS50b1N0cmluZygpO1xuICAgICAgICAgIHRoaXMudmlzaWJsZVRhZ3MucHVzaCh7IFt0aGlzLmZpZWxkVmFsdWVdOiAnJywgW3RoaXMuZmllbGRMYWJlbF06IGxhYmVsIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pbml0Q2FsY3VsYXRlSXRlbXMpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVLZXlib2FyZE5hdmlnYXRpb25UYWcoKTtcbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW5pdENhbGN1bGF0ZUl0ZW1zID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBjaGFuZ2VJdGVtcyhjaGFuZ2VkSXRlbXMpIHtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9ucyhjaGFuZ2VkSXRlbXMpO1xuICAgIHRoaXMuY2FsbE9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcblxuICAgIGlmICh0aGlzLmF1dG9IZWlnaHQgJiYgdGhpcy5kcm9wZG93bk9wZW4pIHtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5hZGp1c3RDb250YWluZXJQb3NpdGlvbigpO1xuICAgIH1cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlS2V5Ym9hcmROYXZpZ2F0aW9uVGFnKCk7XG4gICAgfSwgMzAwKTtcbiAgfVxuXG4gIHVwZGF0ZVZpc2libGVJdGVtcygpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbnMpIHtcbiAgICAgIHRoaXMudmlzaWJsZVRhZ3MgPSBbXS5jb25jYXQodGhpcy5zZWxlY3RlZE9wdGlvbnMpO1xuICAgIH1cblxuICAgIHRoaXMuZGVib3VuY2VSZXNpemUoKTtcblxuICAgIC8vIHF1YW5kbyBlc3RpdmVyIGRlbnRybyBkZSBtb2RhbFxuICAgIGlmICghdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkge1xuICAgICAgdGhpcy5pc0NhbGN1bGF0ZVZpc2libGVJdGVtcyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgZGVib3VuY2VSZXNpemUoKSB7XG4gICAgaWYgKCF0aGlzLmF1dG9IZWlnaHQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRSZXNpemUpO1xuICAgICAgdGhpcy50aW1lb3V0UmVzaXplID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKCk7XG4gICAgICB9LCAyMDApO1xuICAgIH1cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcpID09PSAnc3RyaW5nJyAmJlxuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKS5pbmNsdWRlcygnVW5zZWxlY3RlZCcpXG4gICAgKSB7XG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIHRoaXMubGFiZWwgPyB0aGlzLmxhYmVsIDogJycpO1xuICAgIH1cbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkPy4oKTtcbiAgfVxuXG4gIG9uS2V5RG93bihldmVudD86IGFueSkge1xuICAgIGlmIChldmVudC5zaGlmdEtleSAmJiBldmVudC5rZXlDb2RlID09PSBQb0tleUNvZGVFbnVtLnRhYiAmJiAhdGhpcy5mb2N1c09uVGFnKSB7XG4gICAgICB0aGlzLmNvbnRyb2xEcm9wZG93blZpc2liaWxpdHkoZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLmZvY3VzT25UYWcgPSBmYWxzZTtcblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSBQb0tleUNvZGVFbnVtLnRhYikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSBQb0tleUNvZGVFbnVtLmVzYykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuY29udHJvbERyb3Bkb3duVmlzaWJpbGl0eShmYWxzZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IFBvS2V5Q29kZUVudW0uYXJyb3dEb3duICYmIHRoaXMudmlzaWJsZVRhZ3MubGVuZ3RoID4gMCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuY29udHJvbERyb3Bkb3duVmlzaWJpbGl0eSh0cnVlKTtcbiAgICAgIHRoaXMuZHJvcGRvd24/Lmxpc3Rib3g/LnNldEZvY3VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IFBvS2V5Q29kZUVudW0uZW50ZXIgJiYgIXRoaXMuZW50ZXJDbG9zZVRhZykge1xuICAgICAgaWYgKHRoaXMudmlzaWJsZVRhZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlRHJvcGRvd25WaXNpYmlsaXR5KCk7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy50b2dnbGVEcm9wZG93blZpc2liaWxpdHkoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSBQb0tleUNvZGVFbnVtLnNwYWNlKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy50b2dnbGVEcm9wZG93blZpc2liaWxpdHkoKTtcbiAgICB9XG4gICAgdGhpcy5lbnRlckNsb3NlVGFnID0gZmFsc2U7XG4gIH1cblxuICB0b2dnbGVEcm9wZG93blZpc2liaWxpdHkoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5maWx0ZXJTZXJ2aWNlKSB7XG4gICAgICB0aGlzLmFwcGx5RmlsdGVySW5GaXJzdENsaWNrKCk7XG4gICAgfVxuXG4gICAgdGhpcy5jb250cm9sRHJvcGRvd25WaXNpYmlsaXR5KCF0aGlzLmRyb3Bkb3duT3Blbik7XG4gIH1cblxuICBvbktleURvd25Ecm9wZG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5jb250cm9sRHJvcGRvd25WaXNpYmlsaXR5KGZhbHNlKTtcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBvcGVuRHJvcGRvd24odG9PcGVuKSB7XG4gICAgaWYgKHRvT3BlbiAmJiAhdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5jb250cm9sRHJvcGRvd25WaXNpYmlsaXR5KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnRyb2xEcm9wZG93blZpc2liaWxpdHkodG9PcGVuOiBib29sZWFuKSB7XG4gICAgdG9PcGVuID8gdGhpcy5vcGVuKCkgOiB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBzY3JvbGxUb1NlbGVjdGVkT3B0aW9ucygpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbnMgJiYgdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMub3B0aW9ucy5maW5kSW5kZXgoXG4gICAgICAgIG9wdGlvbiA9PiBvcHRpb25bdGhpcy5maWVsZFZhbHVlXSA9PT0gdGhpcy5zZWxlY3RlZE9wdGlvbnNbMF1bdGhpcy5maWVsZFZhbHVlXVxuICAgICAgKTtcbiAgICAgIHRoaXMuZHJvcGRvd24uc2Nyb2xsVG8oaW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHNldFZpc2libGVPcHRpb25zRHJvcGRvd24ob3B0aW9ucykge1xuICAgIHRoaXMudmlzaWJsZU9wdGlvbnNEcm9wZG93biA9IG9wdGlvbnM7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGNoYW5nZVNlYXJjaChldmVudCkge1xuICAgIGlmIChldmVudCAmJiBldmVudFt0aGlzLmZpZWxkVmFsdWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLmZpbHRlclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJTdWJqZWN0Lm5leHQoZXZlbnRbdGhpcy5maWVsZFZhbHVlXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlYXJjaEJ5TGFiZWwoZXZlbnRbdGhpcy5maWVsZFZhbHVlXSwgdGhpcy5vcHRpb25zLCB0aGlzLmZpbHRlck1vZGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFZpc2libGVPcHRpb25zRHJvcGRvd24odGhpcy5vcHRpb25zKTtcbiAgICB9XG5cbiAgICAvLyB0aW1lb3V0IG5lY2Vzc8OhcmlvIHBhcmEgcmVwb3NpY2lvbmFyIGNvcnJldGFtZW50ZSBxdWFuZG8gZHJvcGRvd24gZXN0aXZlciBwcmEgY2ltYSBkbyBpbnB1dCBlIHJlYWxpemFyIGJ1c2NhIG5vIGlucHV0XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmFkanVzdENvbnRhaW5lclBvc2l0aW9uKCkpO1xuICB9XG5cbiAgY2xvc2VUYWcodmFsdWUsIGV2ZW50KSB7XG4gICAgbGV0IGluZGV4O1xuICAgIHRoaXMuZW50ZXJDbG9zZVRhZyA9IHRydWU7XG4gICAgaWYgKCF2YWx1ZSB8fCAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5pbmNsdWRlcygnKycpKSkge1xuICAgICAgaW5kZXggPSBudWxsO1xuICAgICAgY29uc3QgaXRlbXNOb3RJblZpc2libGVUYWdzID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PiAhdGhpcy52aXNpYmxlVGFncy5pbmNsdWRlcyhvcHRpb24pKTtcbiAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIHRoaXMudmlzaWJsZVRhZ3MpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkT3B0aW9ucy5pbmNsdWRlcyhvcHRpb24pKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMuc3BsaWNlKHRoaXMudmlzaWJsZVRhZ3MubGVuZ3RoIC0gMSwgaXRlbXNOb3RJblZpc2libGVUYWdzLmxlbmd0aCk7XG4gICAgICAgICAgdGhpcy51cGRhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgICB0aGlzLmNhbGxPbkNoYW5nZSh0aGlzLnNlbGVjdGVkT3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaW5kZXggPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5maW5kSW5kZXgob3B0aW9uID0+IG9wdGlvblt0aGlzLmZpZWxkVmFsdWVdID09PSB2YWx1ZSk7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgdGhpcy51cGRhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICAgIHRoaXMuY2FsbE9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcbiAgICB9XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZm9jdXNPbk5leHRUYWcoaW5kZXgsIGV2ZW50KTtcbiAgICB9LCAzMDApO1xuICB9XG5cbiAgd2FzQ2xpY2tlZE9uVG9nZ2xlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5kcm9wZG93bk9wZW4gJiZcbiAgICAgICF0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiZcbiAgICAgICF0aGlzLmljb25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJlxuICAgICAgIXRoaXMuZHJvcGRvd25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxuICAgICkge1xuICAgICAgdGhpcy5jb250cm9sRHJvcGRvd25WaXNpYmlsaXR5KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBhcHBseUZpbHRlcih2YWx1ZTogc3RyaW5nID0gJycpOiBPYnNlcnZhYmxlPEFycmF5PFBvTXVsdGlzZWxlY3RPcHRpb24gfCBhbnk+PiB7XG4gICAgY29uc3QgcGFyYW0gPSB7IHByb3BlcnR5OiB0aGlzLmZpZWxkTGFiZWwsIHZhbHVlOiB2YWx1ZSB9O1xuICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZ2V0RmlsdGVyZWREYXRhKHBhcmFtKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICB0aGlzLmlzU2VydmVyU2VhcmNoaW5nID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICB9KSxcbiAgICAgIHRhcCgob3B0aW9uczogQXJyYXk8UG9NdWx0aXNlbGVjdE9wdGlvbiB8IGFueT4pID0+IHtcbiAgICAgICAgdGhpcy5zZXRPcHRpb25zQnlBcHBseUZpbHRlcihvcHRpb25zKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGaWx0ZXJJbkZpcnN0Q2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaXNGaXJzdEZpbHRlcikge1xuICAgICAgdGhpcy5pc1NlcnZlclNlYXJjaGluZyA9IHRydWU7XG5cbiAgICAgIC8vIG5lY2Vzc2FyaW8gZW52aWFyIHVtIG9iamV0byBzdHJpbmcgdmF6aWEgcGFyYSByZWZhemVyIGEgYnVzY2EsIHF1YW5kbyBhbHRlcmFyIGZpbHRlclNlcnZpY2UsIGZpZWxkVmFsdWUgZSBmaWVsZExhYmVsXG4gICAgICAvLyBwb2lzIHRlbW9zIG8gZGlzdGluY3RVbnRpbENoYW5nZSBubyBwaXBlIGRvIGZpbHRlclN1YmplY3RcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLW5ldy13cmFwcGVycyAqL1xuICAgICAgdGhpcy5maWx0ZXJTdWJqZWN0Lm5leHQobmV3IFN0cmluZygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcHRpb25zID0gWy4uLnRoaXMuY2FjaGVPcHRpb25zXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldE9wdGlvbnNCeUFwcGx5RmlsdGVyKGl0ZW1zOiBBcnJheTxQb011bHRpc2VsZWN0T3B0aW9uIHwgYW55Pikge1xuICAgIGlmICh0aGlzLmlzRmlyc3RGaWx0ZXIpIHtcbiAgICAgIHRoaXMuY2FjaGVPcHRpb25zID0gWy4uLml0ZW1zXTtcbiAgICAgIHRoaXMuaXNGaXJzdEZpbHRlciA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMub3B0aW9ucyA9IFsuLi5pdGVtc107XG4gICAgdGhpcy5zZXRWaXNpYmxlT3B0aW9uc0Ryb3Bkb3duKHRoaXMub3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGFkanVzdENvbnRhaW5lclBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbFBvc2l0aW9uLmFkanVzdFBvc2l0aW9uKHBvTXVsdGlzZWxlY3RDb250YWluZXJQb3NpdGlvbkRlZmF1bHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRyb3Bkb3duSWNvbiA9ICdwby1pY29uLWFycm93LWRvd24nO1xuICAgIHRoaXMuZHJvcGRvd25PcGVuID0gZmFsc2U7XG5cbiAgICB0aGlzLmRyb3Bkb3duLmNvbnRyb2xWaXNpYmlsaXR5KGZhbHNlKTtcbiAgICB0aGlzLnNldFZpc2libGVPcHRpb25zRHJvcGRvd24odGhpcy5vcHRpb25zKTtcblxuICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzKCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzT25OZXh0VGFnKGluZGV4Q2xvc2VkOiBudW1iZXIsIGNsaWNrT3JFbnRlcjogc3RyaW5nKSB7XG4gICAgaWYgKGNsaWNrT3JFbnRlciA9PT0gJ2VudGVyJykge1xuICAgICAgY29uc3QgdGFnUmVtb3ZlRWxlbWVudHM6IEFycmF5PGFueT4gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnBvLXRhZy1yZW1vdmUnKTtcbiAgICAgIGluZGV4Q2xvc2VkID0gaW5kZXhDbG9zZWQgfHwgaW5kZXhDbG9zZWQgPT09IDAgPyBpbmRleENsb3NlZCA6IHRhZ1JlbW92ZUVsZW1lbnRzLmxlbmd0aDtcbiAgICAgIGlmICh0YWdSZW1vdmVFbGVtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIGBVbnNlbGVjdGVkIGl0ZW1zICR7dGhpcy5sYWJlbH1gKTtcbiAgICAgICAgdGhpcy5jb250cm9sRHJvcGRvd25WaXNpYmlsaXR5KHRydWUpO1xuICAgICAgfVxuICAgICAgdGhpcy5mb2N1c09uUmVtb3ZlVGFnKHRhZ1JlbW92ZUVsZW1lbnRzLCBpbmRleENsb3NlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluZGV4Q2xvc2VkID0gMDtcbiAgICB9XG4gICAgdGhpcy5oYW5kbGVLZXlib2FyZE5hdmlnYXRpb25UYWcoaW5kZXhDbG9zZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c09uUmVtb3ZlVGFnKHRhZzogYW55LCBpbmRleENsb3NlZDogbnVtYmVyKSB7XG4gICAgaWYgKHRhZy5sZW5ndGggPT09IGluZGV4Q2xvc2VkKSB7XG4gICAgICB0YWdbaW5kZXhDbG9zZWQgLSAxXT8uZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGFnW2luZGV4Q2xvc2VkXT8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlS2V5Ym9hcmROYXZpZ2F0aW9uVGFnKGluaXRpYWxJbmRleCA9IDApIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIGNvbnN0IHRhZ1JlbW92ZUVsZW1lbnRzID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wby10YWctcmVtb3ZlJyk7XG4gICAgdGhpcy5pbml0aWFsaXplVGFnUmVtb3ZlRWxlbWVudHModGFnUmVtb3ZlRWxlbWVudHMsIGluaXRpYWxJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIHNldFRhYkluZGV4KGVsZW1lbnQsIHRhYkluZGV4KSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgdGFiSW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBcnJvd0xlZnQodGFnUmVtb3ZlRWxlbWVudHMsIGluZGV4KSB7XG4gICAgaWYgKGluZGV4ID4gMCkge1xuICAgICAgdGhpcy5zZXRUYWJJbmRleCh0YWdSZW1vdmVFbGVtZW50c1tpbmRleF0sIC0xKTtcbiAgICAgIHRhZ1JlbW92ZUVsZW1lbnRzW2luZGV4IC0gMV0uZm9jdXMoKTtcbiAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFnUmVtb3ZlRWxlbWVudHNbaW5kZXggLSAxXSwgMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBcnJvd1JpZ2h0KHRhZ1JlbW92ZUVsZW1lbnRzLCBpbmRleCkge1xuICAgIGlmIChpbmRleCA8IHRhZ1JlbW92ZUVsZW1lbnRzLmxlbmd0aCAtIDEpIHtcbiAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFnUmVtb3ZlRWxlbWVudHNbaW5kZXhdLCAtMSk7XG4gICAgICB0YWdSZW1vdmVFbGVtZW50c1tpbmRleCArIDFdLmZvY3VzKCk7XG4gICAgICB0aGlzLnNldFRhYkluZGV4KHRhZ1JlbW92ZUVsZW1lbnRzW2luZGV4ICsgMV0sIDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgdGFnUmVtb3ZlRWxlbWVudHMsIGluZGV4KSB7XG4gICAgY29uc3QgS0VZX1NQQUNFID0gJ1NwYWNlJztcbiAgICBjb25zdCBLRVlfQVJST1dfTEVGVCA9ICdBcnJvd0xlZnQnO1xuICAgIGNvbnN0IEtFWV9BUlJPV19SSUdIVCA9ICdBcnJvd1JpZ2h0JztcbiAgICB0aGlzLmZvY3VzT25UYWcgPSB0cnVlO1xuXG4gICAgaWYgKGV2ZW50LmNvZGUgPT09IEtFWV9TUEFDRSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09IEtFWV9BUlJPV19MRUZUKSB7XG4gICAgICB0aGlzLmhhbmRsZUFycm93TGVmdCh0YWdSZW1vdmVFbGVtZW50cywgaW5kZXgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBLRVlfQVJST1dfUklHSFQpIHtcbiAgICAgIHRoaXMuaGFuZGxlQXJyb3dSaWdodCh0YWdSZW1vdmVFbGVtZW50cywgaW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVRhZ1JlbW92ZUVsZW1lbnRzKHRhZ1JlbW92ZUVsZW1lbnRzLCBpbml0aWFsSW5kZXgpIHtcbiAgICB0YWdSZW1vdmVFbGVtZW50cy5mb3JFYWNoKCh0YWdSZW1vdmVFbGVtZW50LCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGluZGV4ID09PSBpbml0aWFsSW5kZXgpIHtcbiAgICAgICAgdGhpcy5zZXRUYWJJbmRleCh0YWdSZW1vdmVFbGVtZW50c1tpbml0aWFsSW5kZXhdLCAwKTtcbiAgICAgIH0gZWxzZSBpZiAodGFnUmVtb3ZlRWxlbWVudHMubGVuZ3RoID09PSBpbml0aWFsSW5kZXgpIHtcbiAgICAgICAgdGhpcy5zZXRUYWJJbmRleCh0YWdSZW1vdmVFbGVtZW50c1tpbml0aWFsSW5kZXggLSAxXSwgMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldFRhYkluZGV4KHRhZ1JlbW92ZUVsZW1lbnQsIC0xKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICBmcm9tRXZlbnQodGFnUmVtb3ZlRWxlbWVudCwgJ2tleWRvd24nKS5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVLZXlEb3duKGV2ZW50LCB0YWdSZW1vdmVFbGVtZW50cywgaW5kZXgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUxpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrT3V0TGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIHRoaXMud2FzQ2xpY2tlZE9uVG9nZ2xlKGV2ZW50KTtcbiAgICB9KTtcblxuICAgIHRoaXMucmVzaXplTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ3Jlc2l6ZScsICgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlVmlzaWJsZUl0ZW1zKCk7XG5cbiAgICAgIGlzTW9iaWxlKCkgPyB0aGlzLmFkanVzdENvbnRhaW5lclBvc2l0aW9uKCkgOiB0aGlzLmNsb3NlKCk7XG4gICAgfSk7XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbCwgdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIG9uU2Nyb2xsID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuYWRqdXN0Q29udGFpbmVyUG9zaXRpb24oKTtcbiAgfTtcblxuICBwcml2YXRlIG9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy5kcm9wZG93bkljb24gPSAncG8taWNvbi1hcnJvdy11cCc7XG4gICAgdGhpcy5kcm9wZG93bk9wZW4gPSB0cnVlO1xuXG4gICAgdGhpcy5kcm9wZG93bi5jb250cm9sVmlzaWJpbGl0eSh0cnVlKTtcbiAgICB0aGlzLnNldFZpc2libGVPcHRpb25zRHJvcGRvd24odGhpcy5vcHRpb25zKTtcbiAgICB0aGlzLmluaXRpYWxpemVMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnNjcm9sbFRvU2VsZWN0ZWRPcHRpb25zKCk7XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnNldFBvc2l0aW9uRHJvcGRvd24oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNsaWNrT3V0TGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuY2xpY2tPdXRMaXN0ZW5lcigpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJlc2l6ZUxpc3RlbmVyKSB7XG4gICAgICB0aGlzLnJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwsIHRydWUpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHNldFBvc2l0aW9uRHJvcGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sUG9zaXRpb24uc2V0RWxlbWVudHMoXG4gICAgICB0aGlzLmRyb3Bkb3duLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuICAgICAgcG9NdWx0aXNlbGVjdENvbnRhaW5lck9mZnNldCxcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50LFxuICAgICAgWyd0b3AnLCAnYm90dG9tJ10sXG4gICAgICB0cnVlXG4gICAgKTtcblxuICAgIHRoaXMuYWRqdXN0Q29udGFpbmVyUG9zaXRpb24oKTtcbiAgfVxufVxuIiwiPHBvLWZpZWxkLWNvbnRhaW5lclxuICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtwLWxhYmVsXT1cImxhYmVsXCJcbiAgW3Atb3B0aW9uYWxdPVwib3B0aW9uYWxcIlxuICBbcC1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gIFtwLXNob3ctcmVxdWlyZWRdPVwic2hvd1JlcXVpcmVkXCJcbj5cbiAgPGRpdlxuICAgIGNka092ZXJsYXlPcmlnaW5cbiAgICAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIlxuICAgIGNsYXNzPVwicG8tZmllbGQtY29udGFpbmVyLWNvbnRlbnRcIlxuICAgIFtjbGFzcy5wby1tdWx0aXNlbGVjdC1zaG93XT1cImRyb3Bkb3duT3BlblwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAjaW5wdXRFbGVtZW50XG4gICAgICBbdGFiaW5kZXhdPVwiZGlzYWJsZWQgPyAtMSA6IDBcIlxuICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiXG4gICAgICBjbGFzcz1cInBvLWlucHV0LWljb24tcmlnaHQgcG8tbXVsdGlzZWxlY3QtaW5wdXRcIlxuICAgICAgW2NsYXNzLnBvLW11bHRpc2VsZWN0LWlucHV0LWF1dG9dPVwiYXV0b0hlaWdodFwiXG4gICAgICBbY2xhc3MucG8tbXVsdGlzZWxlY3QtaW5wdXQtc3RhdGljXT1cIiFhdXRvSGVpZ2h0XCJcbiAgICAgIFtjbGFzcy5wby1tdWx0aXNlbGVjdC1pbnB1dC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbY2xhc3MucG8tbXVsdGlzZWxlY3QtaW5wdXQtZm9udF09XCIhZGlzYWJsZWQgJiYgIXZpc2libGVUYWdzPy5sZW5ndGhcIlxuICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duVmlzaWJpbGl0eSgpXCJcbiAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICA+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFkaXNhYmxlZCAmJiAhdmlzaWJsZVRhZ3M/Lmxlbmd0aFwiIGNsYXNzPVwicG8tbXVsdGlzZWxlY3QtaW5wdXQtcGxhY2Vob2xkZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAge3sgcGxhY2Vob2xkZXIgPyBwbGFjZWhvbGRlciA6IGxpdGVyYWxzLnNlbGVjdEl0ZW0gfX1cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPHBvLXRhZ1xuICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIHZpc2libGVUYWdzOyBpbmRleCBhcyBpXCJcbiAgICAgICAgW3AtdmFsdWVdPVwidGFnW2ZpZWxkTGFiZWxdXCJcbiAgICAgICAgW3AtbGl0ZXJhbHNdPVwiaSArIDEgPT09IHZpc2libGVUYWdzLmxlbmd0aCAmJiBoYXNNb3JlVGFnID8gbGl0ZXJhbHNUYWcgOiB1bmRlZmluZWRcIlxuICAgICAgICBbcC1yZW1vdmFibGVdPVwidHJ1ZVwiXG4gICAgICAgIFtjbGFzcy5wby1jbGlja2FibGVdPVwidGFnW2ZpZWxkVmFsdWVdID09PSAnJyAmJiAhZGlzYWJsZWRcIlxuICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChwLWNsb3NlKT1cImNsb3NlVGFnKHRhZ1tmaWVsZFZhbHVlXSwgJGV2ZW50KVwiXG4gICAgICA+PC9wby10YWc+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJwby1maWVsZC1pY29uLWNvbnRhaW5lci1yaWdodFwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICNpY29uRWxlbWVudFxuICAgICAgICAgIGNsYXNzPVwicG8taWNvbiBwby1maWVsZC1pY29uIHt7IGRyb3Bkb3duSWNvbiB9fSB7eyBkaXNhYmxlZCA/ICdwby1pY29uLWlucHV0LWRpc2FibGVkJyA6ICdwby1pY29uLWlucHV0JyB9fVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiZGlzYWJsZWQgPyAncG8tZmllbGQtaWNvbi1kaXNhYmxlZCcgOiAnJ1wiXG4gICAgICAgID5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcHBlbmRCb3g7IHRoZW4gZHJvcGRvd25DREs7IGVsc2UgZHJvcGRvd25EZWZhdWx0XCI+IDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjZHJvcGRvd25EZWZhdWx0PlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkcm9wZG93bkxpc3Rib3hcIj4gPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlICNkcm9wZG93bkNESz5cbiAgICA8bmctdGVtcGxhdGUgY2RrQ29ubmVjdGVkT3ZlcmxheSBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJ0cmlnZ2VyXCIgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cInRydWVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkcm9wZG93bkxpc3Rib3hcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxwby1maWVsZC1jb250YWluZXItYm90dG9tIFtwLWhlbHBdPVwiaGVscFwiIFtwLWRpc2FibGVkXT1cImRpc2FibGVkXCI+PC9wby1maWVsZC1jb250YWluZXItYm90dG9tPlxuPC9wby1maWVsZC1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZHJvcGRvd25MaXN0Ym94PlxuICA8cG8tbXVsdGlzZWxlY3QtZHJvcGRvd25cbiAgICAjZHJvcGRvd25FbGVtZW50XG4gICAgW3Atc2VhcmNoaW5nXT1cImlzU2VydmVyU2VhcmNoaW5nXCJcbiAgICBbcC1oaWRlLXNlYXJjaF09XCJoaWRlU2VhcmNoXCJcbiAgICBbcC1oaWRlLXNlbGVjdC1hbGxdPVwiaGlkZVNlbGVjdEFsbFwiXG4gICAgW3AtbGl0ZXJhbHNdPVwibGl0ZXJhbHNcIlxuICAgIFtwLW9wdGlvbnNdPVwib3B0aW9uc1wiXG4gICAgW3AtdmlzaWJsZS1vcHRpb25zXT1cInZpc2libGVPcHRpb25zRHJvcGRvd25cIlxuICAgIFtwLXNlbGVjdGVkLW9wdGlvbnNdPVwic2VsZWN0ZWRPcHRpb25zXCJcbiAgICBbcC1wbGFjZWhvbGRlci1zZWFyY2hdPVwicGxhY2Vob2xkZXJTZWFyY2hcIlxuICAgIFtwLWZpZWxkLXZhbHVlXT1cImZpZWxkVmFsdWVcIlxuICAgIFtwLWZpZWxkLWxhYmVsXT1cImZpZWxkTGFiZWxcIlxuICAgIFtwLW11bHRpc2VsZWN0LXRlbXBsYXRlXT1cIm11bHRpc2VsZWN0T3B0aW9uVGVtcGxhdGVcIlxuICAgIChwLWNoYW5nZSk9XCJjaGFuZ2VJdGVtcygkZXZlbnQpXCJcbiAgICAocC1jaGFuZ2Utc2VhcmNoKT1cImNoYW5nZVNlYXJjaCgkZXZlbnQpXCJcbiAgICAocC1jbG9zZS1kcm9wZG93bik9XCJjb250cm9sRHJvcGRvd25WaXNpYmlsaXR5KGZhbHNlKVwiXG4gICAgKGtleWRvd24pPVwib25LZXlEb3duRHJvcGRvd24oJGV2ZW50LCAwKVwiXG4gID5cbiAgPC9wby1tdWx0aXNlbGVjdC1kcm9wZG93bj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -67,7 +67,7 @@ function PoItemListComponent_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
67
67
|
i0.ɵɵelementStart(0, "div", 13);
|
|
68
68
|
i0.ɵɵlistener("click", function PoItemListComponent_div_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.onCheckboxItem()); })("keydown", function PoItemListComponent_div_3_Template_div_keydown_0_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r14.onCheckboxItemEmit($event)); })("keyup", function PoItemListComponent_div_3_Template_div_keyup_0_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r15 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r15.onCheckboxItemEmit($event)); });
|
|
69
69
|
i0.ɵɵelementStart(1, "po-checkbox", 14);
|
|
70
|
-
i0.ɵɵlistener("p-change", function PoItemListComponent_div_3_Template_po_checkbox_p_change_1_listener() { i0.ɵɵrestoreView(_r13); const
|
|
70
|
+
i0.ɵɵlistener("click", function PoItemListComponent_div_3_Template_po_checkbox_click_1_listener() { i0.ɵɵrestoreView(_r13); const ctx_r16 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r16.onCheckboxItem()); })("p-change", function PoItemListComponent_div_3_Template_po_checkbox_p_change_1_listener() { i0.ɵɵrestoreView(_r13); const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.onSelectItem({ label: ctx_r17.label })); });
|
|
71
71
|
i0.ɵɵelementEnd();
|
|
72
72
|
i0.ɵɵtemplate(2, PoItemListComponent_div_3_span_2_Template, 2, 1, "span", 15);
|
|
73
73
|
i0.ɵɵtemplate(3, PoItemListComponent_div_3_ng_template_3_Template, 0, 0, "ng-template", 11);
|
|
@@ -164,7 +164,7 @@ export class PoItemListComponent extends PoItemListBaseComponent {
|
|
|
164
164
|
} if (rf & 2) {
|
|
165
165
|
let _t;
|
|
166
166
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemList = _t.first);
|
|
167
|
-
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 3, consts: [[3, "ngSwitch", "keydown"], ["class", "po-item-list po-item-list__action", 3, "po-item-list__separator", "po-item-list__disabled", "po-item-list__selected", "po-item-list__danger", 4, "ngSwitchDefault"], ["class", "po-item-list po-item-list__option", 3, "po-item-list__separator", "po-item-list__selected", "click", 4, "ngSwitchCase"], ["class", "po-item-list po-item-list__check", 3, "po-item-list__separator", "po-item-list__selected", "po-item-list__disabled", "click", "keydown", "keyup", 4, "ngSwitchCase"], [1, "po-item-list", "po-item-list__action"], ["itemList", ""], ["class", "po-popup-icon-item po-icon", 3, "p-icon", 4, "ngIf"], [1, "po-item-list-label"], [1, "po-popup-icon-item", "po-icon", 3, "p-icon"], [1, "po-item-list", "po-item-list__option", 3, "click"], ["class", "po-item-list-label", 3, "innerHTML", 4, "ngIf"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "po-item-list-label", 3, "innerHTML"], [1, "po-item-list", "po-item-list__check", 3, "click", "keydown", "keyup"], [3, "p-disabled-tabindex", "p-checkboxValue", "p-disabled", "p-change"], ["class", "po-item-list__label", 4, "ngIf"], [1, "po-item-list__label"]], template: function PoItemListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
167
|
+
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 3, consts: [[3, "ngSwitch", "keydown"], ["class", "po-item-list po-item-list__action", 3, "po-item-list__separator", "po-item-list__disabled", "po-item-list__selected", "po-item-list__danger", 4, "ngSwitchDefault"], ["class", "po-item-list po-item-list__option", 3, "po-item-list__separator", "po-item-list__selected", "click", 4, "ngSwitchCase"], ["class", "po-item-list po-item-list__check", 3, "po-item-list__separator", "po-item-list__selected", "po-item-list__disabled", "click", "keydown", "keyup", 4, "ngSwitchCase"], [1, "po-item-list", "po-item-list__action"], ["itemList", ""], ["class", "po-popup-icon-item po-icon", 3, "p-icon", 4, "ngIf"], [1, "po-item-list-label"], [1, "po-popup-icon-item", "po-icon", 3, "p-icon"], [1, "po-item-list", "po-item-list__option", 3, "click"], ["class", "po-item-list-label", 3, "innerHTML", 4, "ngIf"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "po-item-list-label", 3, "innerHTML"], [1, "po-item-list", "po-item-list__check", 3, "click", "keydown", "keyup"], [3, "p-disabled-tabindex", "p-checkboxValue", "p-disabled", "click", "p-change"], ["class", "po-item-list__label", 4, "ngIf"], [1, "po-item-list__label"]], template: function PoItemListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
168
168
|
i0.ɵɵelementContainerStart(0, 0);
|
|
169
169
|
i0.ɵɵlistener("keydown", function PoItemListComponent_Template_ng_container_keydown_0_listener($event) { return ctx.onCheckboxItemEmit($event); });
|
|
170
170
|
i0.ɵɵtemplate(1, PoItemListComponent_div_1_Template, 5, 12, "div", 1);
|
|
@@ -181,9 +181,9 @@ export class PoItemListComponent extends PoItemListBaseComponent {
|
|
|
181
181
|
}
|
|
182
182
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoItemListComponent, [{
|
|
183
183
|
type: Component,
|
|
184
|
-
args: [{ selector: 'po-item-list', template: "<ng-container [ngSwitch]=\"type\" (keydown)=\"onCheckboxItemEmit($event)\">\n <div\n *ngSwitchDefault\n #itemList\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__disabled]=\"disabled || !visible\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [attr.aria-disabled]=\"disabled || !visible\"\n [attr.aria-label]=\"label\"\n [class.po-item-list__danger]=\"danger\"\n class=\"po-item-list po-item-list__action\"\n >\n <po-icon *ngIf=\"icon\" class=\"po-popup-icon-item po-icon\" [p-icon]=\"icon\"></po-icon>\n <span class=\"po-item-list-label\">{{ label }}</span>\n </div>\n\n <div\n *ngSwitchCase=\"'option'\"\n #itemList\n class=\"po-item-list po-item-list__option\"\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n (click)=\"onComboItem(item, $event)\"\n >\n <span *ngIf=\"!template\" class=\"po-item-list-label\" [innerHTML]=\"getLabelFormatted(label)\"></span>\n\n <ng-template [ngTemplateOutlet]=\"template?.templateRef\" [ngTemplateOutletContext]=\"{ $implicit: templateContext }\">\n </ng-template>\n </div>\n\n <div\n *ngSwitchCase=\"'check'\"\n class=\"po-item-list po-item-list__check\"\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [class.po-item-list__disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n (click)=\"onCheckboxItem()\"\n (keydown)=\"onCheckboxItemEmit($event)\"\n (keyup)=\"onCheckboxItemEmit($event)\"\n >\n <po-checkbox\n [p-disabled-tabindex]=\"true\"\n [p-checkboxValue]=\"checkboxValue === null ? 'mixed' : checkboxValue\"\n [p-disabled]=\"disabled\"\n (p-change)=\"onSelectItem({label})\"\n ></po-checkbox>\n\n <span class=\"po-item-list__label\" *ngIf=\"!template\">{{ label }}</span>\n\n <ng-template [ngTemplateOutlet]=\"template?.templateRef\" [ngTemplateOutletContext]=\"{ $implicit: templateContext }\">\n </ng-template>\n </div>\n</ng-container>\n" }]
|
|
184
|
+
args: [{ selector: 'po-item-list', template: "<ng-container [ngSwitch]=\"type\" (keydown)=\"onCheckboxItemEmit($event)\">\n <div\n *ngSwitchDefault\n #itemList\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__disabled]=\"disabled || !visible\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [attr.aria-disabled]=\"disabled || !visible\"\n [attr.aria-label]=\"label\"\n [class.po-item-list__danger]=\"danger\"\n class=\"po-item-list po-item-list__action\"\n >\n <po-icon *ngIf=\"icon\" class=\"po-popup-icon-item po-icon\" [p-icon]=\"icon\"></po-icon>\n <span class=\"po-item-list-label\">{{ label }}</span>\n </div>\n\n <div\n *ngSwitchCase=\"'option'\"\n #itemList\n class=\"po-item-list po-item-list__option\"\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n (click)=\"onComboItem(item, $event)\"\n >\n <span *ngIf=\"!template\" class=\"po-item-list-label\" [innerHTML]=\"getLabelFormatted(label)\"></span>\n\n <ng-template [ngTemplateOutlet]=\"template?.templateRef\" [ngTemplateOutletContext]=\"{ $implicit: templateContext }\">\n </ng-template>\n </div>\n\n <div\n *ngSwitchCase=\"'check'\"\n class=\"po-item-list po-item-list__check\"\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [class.po-item-list__disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n (click)=\"onCheckboxItem()\"\n (keydown)=\"onCheckboxItemEmit($event)\"\n (keyup)=\"onCheckboxItemEmit($event)\"\n >\n <po-checkbox\n [p-disabled-tabindex]=\"true\"\n [p-checkboxValue]=\"checkboxValue === null ? 'mixed' : checkboxValue\"\n [p-disabled]=\"disabled\"\n (click)=\"onCheckboxItem()\"\n (p-change)=\"onSelectItem({label})\"\n ></po-checkbox>\n\n <span class=\"po-item-list__label\" *ngIf=\"!template\">{{ label }}</span>\n\n <ng-template [ngTemplateOutlet]=\"template?.templateRef\" [ngTemplateOutletContext]=\"{ $implicit: templateContext }\">\n </ng-template>\n </div>\n</ng-container>\n" }]
|
|
185
185
|
}], function () { return [{ type: i1.DomSanitizer }]; }, { itemList: [{
|
|
186
186
|
type: ViewChild,
|
|
187
187
|
args: ['itemList', { static: true }]
|
|
188
188
|
}] }); })();
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taXRlbS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1saXN0Ym94L3BvLWl0ZW0tbGlzdC9wby1pdGVtLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWxpc3Rib3gvcG8taXRlbS1saXN0L3BvLWl0ZW0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUtqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7SUNNMUUsNkJBQW1GOzs7SUFBMUIsb0NBQWU7OztJQVgxRSxpQ0FVQztJQUNDLGtGQUFtRjtJQUNuRiwrQkFBaUM7SUFBQSxZQUFXO0lBQUEsaUJBQU8sRUFBQTs7O0lBVG5ELDJEQUEyQyw4REFBQSwrREFBQSx1Q0FBQTtJQUczQyxtRUFBMkMsNEJBQUE7SUFLakMsZUFBVTtJQUFWLGtDQUFVO0lBQ2EsZUFBVztJQUFYLGtDQUFXOzs7SUFhNUMsMkJBQWlHOzs7SUFBOUMscUZBQXNDOzs7Ozs7SUFWM0YsaUNBU0M7SUFEQyxtS0FBUyxlQUFBLHVDQUF5QixDQUFBLElBQUM7SUFFbkMsNkVBQWlHO0lBRWpHLDJGQUNjO0lBQ2hCLGlCQUFNOzs7SUFWSiwyREFBMkMsK0RBQUE7SUFFM0MsZ0RBQStCLDRCQUFBO0lBSXhCLGVBQWU7SUFBZix1Q0FBZTtJQUVULGVBQTBDO0lBQTFDLCtGQUEwQywrRUFBQTs7O0lBdUJ2RCxnQ0FBb0Q7SUFBQSxZQUFXO0lBQUEsaUJBQU87OztJQUFsQixlQUFX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WUFBWSxHQUFHLFlBQVksQ0FBQztxQkFDbEU7b0JBQ0QsTUFBTTthQUNUO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQy9GLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU8sZUFBZSxDQUFDLFFBQWdCLEVBQUU7UUFDeEMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlELENBQUM7NkVBL0ZVLG1CQUFtQjs2REFBbkIsbUJBQW1COzs7Ozs7WUNaaEMsZ0NBQXVFO1lBQXZDLGdIQUFXLDhCQUEwQixJQUFDO1lBQ3BFLHFFQWFNO1lBRU4scUVBY007WUFFTixxRUF1Qk07WUFDUiwwQkFBZTs7WUF4REQsbUNBQWlCO1lBaUIxQixlQUFzQjtZQUF0Qix1Q0FBc0I7WUFnQnRCLGVBQXFCO1lBQXJCLHNDQUFxQjs7O3VGRHJCYixtQkFBbUI7Y0FKL0IsU0FBUzsyQkFDRSxjQUFjOytEQUlpQixRQUFRO2tCQUFoRCxTQUFTO21CQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQgeyBQb0l0ZW1MaXN0T3B0aW9uR3JvdXAgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8taXRlbS1saXN0LW9wdGlvbi1ncm91cC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9JdGVtTGlzdE9wdGlvbiB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1pdGVtLWxpc3Qtb3B0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0l0ZW1MaXN0QmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcG8taXRlbS1saXN0LWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvSXRlbUxpc3RGaWx0ZXJNb2RlIH0gZnJvbSAnLi4vZW51bXMvcG8taXRlbS1saXN0LWZpbHRlci1tb2RlLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1pdGVtLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8taXRlbS1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQb0l0ZW1MaXN0Q29tcG9uZW50IGV4dGVuZHMgUG9JdGVtTGlzdEJhc2VDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdpdGVtTGlzdCcsIHsgc3RhdGljOiB0cnVlIH0pIGl0ZW1MaXN0OiBFbGVtZW50UmVmO1xuXG4gIHNlbGVjdGVkVmlldzogUG9JdGVtTGlzdE9wdGlvbjtcblxuICBwcm90ZWN0ZWQgcGFyYW07XG4gIHByb3RlY3RlZCBjbGlja0xpc3RlbmVyOiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVkOiBEb21TYW5pdGl6ZXIpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgb25TZWxlY3RJdGVtKGl0ZW1MaXN0T3B0aW9uOiBQb0l0ZW1MaXN0T3B0aW9uIHwgUG9JdGVtTGlzdE9wdGlvbkdyb3VwIHwgYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFZpZXcgPSBpdGVtTGlzdE9wdGlvbjtcbiAgICB0aGlzLnNlbGVjdEl0ZW0uZW1pdChpdGVtTGlzdE9wdGlvbik7XG4gIH1cblxuICBvbkNoZWNrYm94SXRlbSgpIHtcbiAgICBjb25zdCBvcHRpb24gPSB7IFt0aGlzLmZpZWxkVmFsdWVdOiB0aGlzLnZhbHVlLCBbdGhpcy5maWVsZExhYmVsXTogdGhpcy5sYWJlbCB9O1xuICAgIGNvbnN0IHNlbGVjdGVkID0gIXRoaXMuY2hlY2tib3hWYWx1ZTtcbiAgICB0aGlzLmNoZWNrYm94SXRlbS5lbWl0KHsgb3B0aW9uLCBzZWxlY3RlZCB9KTtcbiAgfVxuXG4gIG9uQ29tYm9JdGVtKG9wdGlvbnM6IGFueSwgZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IG9wdGlvbiA9IHsgW3RoaXMuZmllbGRWYWx1ZV06IHRoaXMudmFsdWUsIFt0aGlzLmZpZWxkTGFiZWxdOiB0aGlzLmxhYmVsIH07XG4gICAgdGhpcy5zZWxlY3RlZFZpZXcgPSBvcHRpb25zO1xuICAgIHRoaXMuY29tYm9JdGVtLmVtaXQoeyAuLi5vcHRpb24sIGV2ZW50IH0pO1xuICB9XG5cbiAgY29tcGFyZU9iamVjdHMob2JqMTogYW55LCBvYmoyOiBhbnkpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqMSkgPT09IEpTT04uc3RyaW5naWZ5KG9iajIpO1xuICB9XG5cbiAgb25DaGVja2JveEl0ZW1FbWl0KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKChldmVudCAmJiBldmVudC5jb2RlID09PSAnRW50ZXInKSB8fCBldmVudC5jb2RlID09PSAnU3BhY2UnKSB7XG4gICAgICB0aGlzLm9uQ2hlY2tib3hJdGVtKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0TGFiZWxGb3JtYXR0ZWQobGFiZWw6IHN0cmluZyk6IFNhZmVIdG1sIHtcbiAgICBjb25zdCBzYW5pdGl6ZWRMYWJlbCA9IHRoaXMuc2FuaXRpemVUYWdIVE1MKGxhYmVsKTtcbiAgICBsZXQgZm9ybWF0OiBzdHJpbmcgPSBzYW5pdGl6ZWRMYWJlbDtcblxuICAgIGlmICh0aGlzLmlzRmlsdGVyaW5nIHx8IHRoaXMudmFsaWRhdGVGb3JPcHRpb25zTGFiZWwoKSkge1xuICAgICAgY29uc3QgbGFiZWxJbnB1dCA9IHRoaXMuc2FuaXRpemVUYWdIVE1MKHRoaXMuc2VhcmNoVmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGNvbnN0IGxhYmVsTG93ZXJDYXNlID0gc2FuaXRpemVkTGFiZWwudG9Mb3dlckNhc2UoKTtcblxuICAgICAgY29uc3Qgb3BlblRhZ0JvbGQgPSAnPHNwYW4gY2xhc3M9XCJwby1mb250LXRleHQtbGFyZ2UtYm9sZFwiPic7XG4gICAgICBjb25zdCBjbG9zZVRhZ0JvbGQgPSAnPC9zcGFuPic7XG5cbiAgICAgIGxldCBzdGFydFN0cmluZztcbiAgICAgIGxldCBtaWRkbGVTdHJpbmc7XG4gICAgICBsZXQgZW5kU3RyaW5nO1xuXG4gICAgICBzd2l0Y2ggKHRoaXMuZmlsdGVyTW9kZSkge1xuICAgICAgICBjYXNlIFBvSXRlbUxpc3RGaWx0ZXJNb2RlLnN0YXJ0c1dpdGg6XG4gICAgICAgIGNhc2UgUG9JdGVtTGlzdEZpbHRlck1vZGUuY29udGFpbnM6XG4gICAgICAgICAgY29uc3QgaW5kZXhPZkxhYmVsSW5wdXQgPSBsYWJlbExvd2VyQ2FzZS5pbmRleE9mKGxhYmVsSW5wdXQpO1xuXG4gICAgICAgICAgaWYgKGluZGV4T2ZMYWJlbElucHV0ID4gLTEpIHtcbiAgICAgICAgICAgIHN0YXJ0U3RyaW5nID0gc2FuaXRpemVkTGFiZWwuc3Vic3RyaW5nKDAsIGluZGV4T2ZMYWJlbElucHV0KTtcblxuICAgICAgICAgICAgbWlkZGxlU3RyaW5nID0gc2FuaXRpemVkTGFiZWwuc3Vic3RyaW5nKGluZGV4T2ZMYWJlbElucHV0LCBpbmRleE9mTGFiZWxJbnB1dCArIGxhYmVsSW5wdXQubGVuZ3RoKTtcbiAgICAgICAgICAgIGVuZFN0cmluZyA9IHNhbml0aXplZExhYmVsLnN1YnN0cmluZyhpbmRleE9mTGFiZWxJbnB1dCArIGxhYmVsSW5wdXQubGVuZ3RoKTtcblxuICAgICAgICAgICAgZm9ybWF0ID0gc3RhcnRTdHJpbmcgKyBvcGVuVGFnQm9sZCArIG1pZGRsZVN0cmluZyArIGNsb3NlVGFnQm9sZCArIGVuZFN0cmluZztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQb0l0ZW1MaXN0RmlsdGVyTW9kZS5lbmRzV2l0aDpcbiAgICAgICAgICBjb25zdCBsYXN0SW5kZXhPZkxhYmVsSW5wdXQgPSBsYWJlbExvd2VyQ2FzZS5sYXN0SW5kZXhPZihsYWJlbElucHV0KTtcblxuICAgICAgICAgIGlmIChsYXN0SW5kZXhPZkxhYmVsSW5wdXQgPiAtMSkge1xuICAgICAgICAgICAgc3RhcnRTdHJpbmcgPSBzYW5pdGl6ZWRMYWJlbC5zdWJzdHJpbmcoMCwgbGFzdEluZGV4T2ZMYWJlbElucHV0KTtcbiAgICAgICAgICAgIG1pZGRsZVN0cmluZyA9IHNhbml0aXplZExhYmVsLnN1YnN0cmluZyhsYXN0SW5kZXhPZkxhYmVsSW5wdXQpO1xuXG4gICAgICAgICAgICBmb3JtYXQgPSBzdGFydFN0cmluZyArIG9wZW5UYWdCb2xkICsgbWlkZGxlU3RyaW5nICsgY2xvc2VUYWdCb2xkO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zYWZlSHRtbChmb3JtYXQpO1xuICB9XG5cbiAgdmFsaWRhdGVGb3JPcHRpb25zTGFiZWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29tYm9TZXJ2aWNlICYmIHRoaXMuc2VhcmNoVmFsdWUgJiYgIXRoaXMuY29tcGFyZUNhY2hlICYmIHRoaXMuc2hvdWxkTWFya0xldHRlcnM7XG4gIH1cblxuICBzYWZlSHRtbCh2YWx1ZSk6IFNhZmVIdG1sIHtcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZWQuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzYW5pdGl6ZVRhZ0hUTUwodmFsdWU6IHN0cmluZyA9ICcnKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL1xcPC9nbSwgJyZsdDsnKS5yZXBsYWNlKC9cXD4vZywgJyZndDsnKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiIChrZXlkb3duKT1cIm9uQ2hlY2tib3hJdGVtRW1pdCgkZXZlbnQpXCI+XG4gIDxkaXZcbiAgICAqbmdTd2l0Y2hEZWZhdWx0XG4gICAgI2l0ZW1MaXN0XG4gICAgW2NsYXNzLnBvLWl0ZW0tbGlzdF9fc2VwYXJhdG9yXT1cInNlcGFyYXRvclwiXG4gICAgW2NsYXNzLnBvLWl0ZW0tbGlzdF9fZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgIXZpc2libGVcIlxuICAgIFtjbGFzcy5wby1pdGVtLWxpc3RfX3NlbGVjdGVkXT1cInNlbGVjdGVkICYmICFkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCAhdmlzaWJsZVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiXG4gICAgW2NsYXNzLnBvLWl0ZW0tbGlzdF9fZGFuZ2VyXT1cImRhbmdlclwiXG4gICAgY2xhc3M9XCJwby1pdGVtLWxpc3QgcG8taXRlbS1saXN0X19hY3Rpb25cIlxuICA+XG4gICAgPHBvLWljb24gKm5nSWY9XCJpY29uXCIgY2xhc3M9XCJwby1wb3B1cC1pY29uLWl0ZW0gcG8taWNvblwiIFtwLWljb25dPVwiaWNvblwiPjwvcG8taWNvbj5cbiAgICA8c3BhbiBjbGFzcz1cInBvLWl0ZW0tbGlzdC1sYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgKm5nU3dpdGNoQ2FzZT1cIidvcHRpb24nXCJcbiAgICAjaXRlbUxpc3RcbiAgICBjbGFzcz1cInBvLWl0ZW0tbGlzdCBwby1pdGVtLWxpc3RfX29wdGlvblwiXG4gICAgW2NsYXNzLnBvLWl0ZW0tbGlzdF9fc2VwYXJhdG9yXT1cInNlcGFyYXRvclwiXG4gICAgW2NsYXNzLnBvLWl0ZW0tbGlzdF9fc2VsZWN0ZWRdPVwic2VsZWN0ZWQgJiYgIWRpc2FibGVkXCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCJcbiAgICAoY2xpY2spPVwib25Db21ib0l0ZW0oaXRlbSwgJGV2ZW50KVwiXG4gID5cbiAgICA8c3BhbiAqbmdJZj1cIiF0ZW1wbGF0ZVwiIGNsYXNzPVwicG8taXRlbS1saXN0LWxhYmVsXCIgW2lubmVySFRNTF09XCJnZXRMYWJlbEZvcm1hdHRlZChsYWJlbClcIj48L3NwYW4+XG5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGU/LnRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB0ZW1wbGF0ZUNvbnRleHQgfVwiPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrJ1wiXG4gICAgY2xhc3M9XCJwby1pdGVtLWxpc3QgcG8taXRlbS1saXN0X19jaGVja1wiXG4gICAgW2NsYXNzLnBvLWl0ZW0tbGlzdF9fc2VwYXJhdG9yXT1cInNlcGFyYXRvclwiXG4gICAgW2NsYXNzLnBvLWl0ZW0tbGlzdF9fc2VsZWN0ZWRdPVwic2VsZWN0ZWQgJiYgIWRpc2FibGVkXCJcbiAgICBbY2xhc3MucG8taXRlbS1saXN0X19kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiXG4gICAgKGNsaWNrKT1cIm9uQ2hlY2tib3hJdGVtKClcIlxuICAgIChrZXlkb3duKT1cIm9uQ2hlY2tib3hJdGVtRW1pdCgkZXZlbnQpXCJcbiAgICAoa2V5dXApPVwib25DaGVja2JveEl0ZW1FbWl0KCRldmVudClcIlxuICA+XG4gICAgPHBvLWNoZWNrYm94XG4gICAgICBbcC1kaXNhYmxlZC10YWJpbmRleF09XCJ0cnVlXCJcbiAgICAgIFtwLWNoZWNrYm94VmFsdWVdPVwiY2hlY2tib3hWYWx1ZSA9PT0gbnVsbCA/ICdtaXhlZCcgOiBjaGVja2JveFZhbHVlXCJcbiAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChwLWNoYW5nZSk9XCJvblNlbGVjdEl0ZW0oe2xhYmVsfSlcIlxuICAgID48L3BvLWNoZWNrYm94PlxuXG4gICAgPHNwYW4gY2xhc3M9XCJwby1pdGVtLWxpc3RfX2xhYmVsXCIgKm5nSWY9XCIhdGVtcGxhdGVcIj57eyBsYWJlbCB9fTwvc3Bhbj5cblxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZT8udGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHRlbXBsYXRlQ29udGV4dCB9XCI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taXRlbS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1saXN0Ym94L3BvLWl0ZW0tbGlzdC9wby1pdGVtLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWxpc3Rib3gvcG8taXRlbS1saXN0L3BvLWl0ZW0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUtqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7SUNNMUUsNkJBQW1GOzs7SUFBMUIsb0NBQWU7OztJQVgxRSxpQ0FVQztJQUNDLGtGQUFtRjtJQUNuRiwrQkFBaUM7SUFBQSxZQUFXO0lBQUEsaUJBQU8sRUFBQTs7O0lBVG5ELDJEQUEyQyw4REFBQSwrREFBQSx1Q0FBQTtJQUczQyxtRUFBMkMsNEJBQUE7SUFLakMsZUFBVTtJQUFWLGtDQUFVO0lBQ2EsZUFBVztJQUFYLGtDQUFXOzs7SUFhNUMsMkJBQWlHOzs7SUFBOUMscUZBQXNDOzs7Ozs7SUFWM0YsaUNBU0M7SUFEQyxtS0FBUyxlQUFBLHVDQUF5QixDQUFBLElBQUM7SUFFbkMsNkVBQWlHO0lBRWpHLDJGQUNjO0lBQ2hCLGlCQUFNOzs7SUFWSiwyREFBMkMsK0RBQUE7SUFFM0MsZ0RBQStCLDRCQUFBO0lBSXhCLGVBQWU7SUFBZix1Q0FBZTtJQUVULGVBQTBDO0lBQTFDLCtGQUEwQywrRUFBQTs7O0lBd0J2RCxnQ0FBb0Q7SUFBQSxZQUFXO0lBQUEsaUJBQU87OztJQUFsQixlQUFX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QU0sR0FBRyxXQUFXLEdBQUcsV0FBVyxHQUFHLFlBQVksR0FBRyxZQUFZLENBQUM7cUJBQ2xFO29CQUNELE1BQU07YUFDVDtTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUMvRixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVPLGVBQWUsQ0FBQyxRQUFnQixFQUFFO1FBQ3hDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5RCxDQUFDOzZFQS9GVSxtQkFBbUI7NkRBQW5CLG1CQUFtQjs7Ozs7O1lDWmhDLGdDQUF1RTtZQUF2QyxnSEFBVyw4QkFBMEIsSUFBQztZQUNwRSxxRUFhTTtZQUVOLHFFQWNNO1lBRU4scUVBd0JNO1lBQ1IsMEJBQWU7O1lBekRELG1DQUFpQjtZQWlCMUIsZUFBc0I7WUFBdEIsdUNBQXNCO1lBZ0J0QixlQUFxQjtZQUFyQixzQ0FBcUI7Ozt1RkRyQmIsbUJBQW1CO2NBSi9CLFNBQVM7MkJBQ0UsY0FBYzsrREFJaUIsUUFBUTtrQkFBaEQsU0FBUzttQkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHsgUG9JdGVtTGlzdE9wdGlvbkdyb3VwIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWl0ZW0tbGlzdC1vcHRpb24tZ3JvdXAuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvSXRlbUxpc3RPcHRpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvcG8taXRlbS1saXN0LW9wdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9JdGVtTGlzdEJhc2VDb21wb25lbnQgfSBmcm9tICcuL3BvLWl0ZW0tbGlzdC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb0l0ZW1MaXN0RmlsdGVyTW9kZSB9IGZyb20gJy4uL2VudW1zL3BvLWl0ZW0tbGlzdC1maWx0ZXItbW9kZS5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8taXRlbS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLWl0ZW0tbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9JdGVtTGlzdENvbXBvbmVudCBleHRlbmRzIFBvSXRlbUxpc3RCYXNlQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnaXRlbUxpc3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpdGVtTGlzdDogRWxlbWVudFJlZjtcblxuICBzZWxlY3RlZFZpZXc6IFBvSXRlbUxpc3RPcHRpb247XG5cbiAgcHJvdGVjdGVkIHBhcmFtO1xuICBwcm90ZWN0ZWQgY2xpY2tMaXN0ZW5lcjogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplZDogRG9tU2FuaXRpemVyKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG9uU2VsZWN0SXRlbShpdGVtTGlzdE9wdGlvbjogUG9JdGVtTGlzdE9wdGlvbiB8IFBvSXRlbUxpc3RPcHRpb25Hcm91cCB8IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gaXRlbUxpc3RPcHRpb247XG4gICAgdGhpcy5zZWxlY3RJdGVtLmVtaXQoaXRlbUxpc3RPcHRpb24pO1xuICB9XG5cbiAgb25DaGVja2JveEl0ZW0oKSB7XG4gICAgY29uc3Qgb3B0aW9uID0geyBbdGhpcy5maWVsZFZhbHVlXTogdGhpcy52YWx1ZSwgW3RoaXMuZmllbGRMYWJlbF06IHRoaXMubGFiZWwgfTtcbiAgICBjb25zdCBzZWxlY3RlZCA9ICF0aGlzLmNoZWNrYm94VmFsdWU7XG4gICAgdGhpcy5jaGVja2JveEl0ZW0uZW1pdCh7IG9wdGlvbiwgc2VsZWN0ZWQgfSk7XG4gIH1cblxuICBvbkNvbWJvSXRlbShvcHRpb25zOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBvcHRpb24gPSB7IFt0aGlzLmZpZWxkVmFsdWVdOiB0aGlzLnZhbHVlLCBbdGhpcy5maWVsZExhYmVsXTogdGhpcy5sYWJlbCB9O1xuICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gb3B0aW9ucztcbiAgICB0aGlzLmNvbWJvSXRlbS5lbWl0KHsgLi4ub3B0aW9uLCBldmVudCB9KTtcbiAgfVxuXG4gIGNvbXBhcmVPYmplY3RzKG9iajE6IGFueSwgb2JqMjogYW55KSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iajEpID09PSBKU09OLnN0cmluZ2lmeShvYmoyKTtcbiAgfVxuXG4gIG9uQ2hlY2tib3hJdGVtRW1pdChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICgoZXZlbnQgJiYgZXZlbnQuY29kZSA9PT0gJ0VudGVyJykgfHwgZXZlbnQuY29kZSA9PT0gJ1NwYWNlJykge1xuICAgICAgdGhpcy5vbkNoZWNrYm94SXRlbSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldExhYmVsRm9ybWF0dGVkKGxhYmVsOiBzdHJpbmcpOiBTYWZlSHRtbCB7XG4gICAgY29uc3Qgc2FuaXRpemVkTGFiZWwgPSB0aGlzLnNhbml0aXplVGFnSFRNTChsYWJlbCk7XG4gICAgbGV0IGZvcm1hdDogc3RyaW5nID0gc2FuaXRpemVkTGFiZWw7XG5cbiAgICBpZiAodGhpcy5pc0ZpbHRlcmluZyB8fCB0aGlzLnZhbGlkYXRlRm9yT3B0aW9uc0xhYmVsKCkpIHtcbiAgICAgIGNvbnN0IGxhYmVsSW5wdXQgPSB0aGlzLnNhbml0aXplVGFnSFRNTCh0aGlzLnNlYXJjaFZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSk7XG4gICAgICBjb25zdCBsYWJlbExvd2VyQ2FzZSA9IHNhbml0aXplZExhYmVsLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIGNvbnN0IG9wZW5UYWdCb2xkID0gJzxzcGFuIGNsYXNzPVwicG8tZm9udC10ZXh0LWxhcmdlLWJvbGRcIj4nO1xuICAgICAgY29uc3QgY2xvc2VUYWdCb2xkID0gJzwvc3Bhbj4nO1xuXG4gICAgICBsZXQgc3RhcnRTdHJpbmc7XG4gICAgICBsZXQgbWlkZGxlU3RyaW5nO1xuICAgICAgbGV0IGVuZFN0cmluZztcblxuICAgICAgc3dpdGNoICh0aGlzLmZpbHRlck1vZGUpIHtcbiAgICAgICAgY2FzZSBQb0l0ZW1MaXN0RmlsdGVyTW9kZS5zdGFydHNXaXRoOlxuICAgICAgICBjYXNlIFBvSXRlbUxpc3RGaWx0ZXJNb2RlLmNvbnRhaW5zOlxuICAgICAgICAgIGNvbnN0IGluZGV4T2ZMYWJlbElucHV0ID0gbGFiZWxMb3dlckNhc2UuaW5kZXhPZihsYWJlbElucHV0KTtcblxuICAgICAgICAgIGlmIChpbmRleE9mTGFiZWxJbnB1dCA+IC0xKSB7XG4gICAgICAgICAgICBzdGFydFN0cmluZyA9IHNhbml0aXplZExhYmVsLnN1YnN0cmluZygwLCBpbmRleE9mTGFiZWxJbnB1dCk7XG5cbiAgICAgICAgICAgIG1pZGRsZVN0cmluZyA9IHNhbml0aXplZExhYmVsLnN1YnN0cmluZyhpbmRleE9mTGFiZWxJbnB1dCwgaW5kZXhPZkxhYmVsSW5wdXQgKyBsYWJlbElucHV0Lmxlbmd0aCk7XG4gICAgICAgICAgICBlbmRTdHJpbmcgPSBzYW5pdGl6ZWRMYWJlbC5zdWJzdHJpbmcoaW5kZXhPZkxhYmVsSW5wdXQgKyBsYWJlbElucHV0Lmxlbmd0aCk7XG5cbiAgICAgICAgICAgIGZvcm1hdCA9IHN0YXJ0U3RyaW5nICsgb3BlblRhZ0JvbGQgKyBtaWRkbGVTdHJpbmcgKyBjbG9zZVRhZ0JvbGQgKyBlbmRTdHJpbmc7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgUG9JdGVtTGlzdEZpbHRlck1vZGUuZW5kc1dpdGg6XG4gICAgICAgICAgY29uc3QgbGFzdEluZGV4T2ZMYWJlbElucHV0ID0gbGFiZWxMb3dlckNhc2UubGFzdEluZGV4T2YobGFiZWxJbnB1dCk7XG5cbiAgICAgICAgICBpZiAobGFzdEluZGV4T2ZMYWJlbElucHV0ID4gLTEpIHtcbiAgICAgICAgICAgIHN0YXJ0U3RyaW5nID0gc2FuaXRpemVkTGFiZWwuc3Vic3RyaW5nKDAsIGxhc3RJbmRleE9mTGFiZWxJbnB1dCk7XG4gICAgICAgICAgICBtaWRkbGVTdHJpbmcgPSBzYW5pdGl6ZWRMYWJlbC5zdWJzdHJpbmcobGFzdEluZGV4T2ZMYWJlbElucHV0KTtcblxuICAgICAgICAgICAgZm9ybWF0ID0gc3RhcnRTdHJpbmcgKyBvcGVuVGFnQm9sZCArIG1pZGRsZVN0cmluZyArIGNsb3NlVGFnQm9sZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2FmZUh0bWwoZm9ybWF0KTtcbiAgfVxuXG4gIHZhbGlkYXRlRm9yT3B0aW9uc0xhYmVsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbWJvU2VydmljZSAmJiB0aGlzLnNlYXJjaFZhbHVlICYmICF0aGlzLmNvbXBhcmVDYWNoZSAmJiB0aGlzLnNob3VsZE1hcmtMZXR0ZXJzO1xuICB9XG5cbiAgc2FmZUh0bWwodmFsdWUpOiBTYWZlSHRtbCB7XG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVkLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2FuaXRpemVUYWdIVE1MKHZhbHVlOiBzdHJpbmcgPSAnJykge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9cXDwvZ20sICcmbHQ7JykucmVwbGFjZSgvXFw+L2csICcmZ3Q7Jyk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIiAoa2V5ZG93bik9XCJvbkNoZWNrYm94SXRlbUVtaXQoJGV2ZW50KVwiPlxuICA8ZGl2XG4gICAgKm5nU3dpdGNoRGVmYXVsdFxuICAgICNpdGVtTGlzdFxuICAgIFtjbGFzcy5wby1pdGVtLWxpc3RfX3NlcGFyYXRvcl09XCJzZXBhcmF0b3JcIlxuICAgIFtjbGFzcy5wby1pdGVtLWxpc3RfX2Rpc2FibGVkXT1cImRpc2FibGVkIHx8ICF2aXNpYmxlXCJcbiAgICBbY2xhc3MucG8taXRlbS1saXN0X19zZWxlY3RlZF09XCJzZWxlY3RlZCAmJiAhZGlzYWJsZWRcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgIXZpc2libGVcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxcIlxuICAgIFtjbGFzcy5wby1pdGVtLWxpc3RfX2Rhbmdlcl09XCJkYW5nZXJcIlxuICAgIGNsYXNzPVwicG8taXRlbS1saXN0IHBvLWl0ZW0tbGlzdF9fYWN0aW9uXCJcbiAgPlxuICAgIDxwby1pY29uICpuZ0lmPVwiaWNvblwiIGNsYXNzPVwicG8tcG9wdXAtaWNvbi1pdGVtIHBvLWljb25cIiBbcC1pY29uXT1cImljb25cIj48L3BvLWljb24+XG4gICAgPHNwYW4gY2xhc3M9XCJwby1pdGVtLWxpc3QtbGFiZWxcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgICpuZ1N3aXRjaENhc2U9XCInb3B0aW9uJ1wiXG4gICAgI2l0ZW1MaXN0XG4gICAgY2xhc3M9XCJwby1pdGVtLWxpc3QgcG8taXRlbS1saXN0X19vcHRpb25cIlxuICAgIFtjbGFzcy5wby1pdGVtLWxpc3RfX3NlcGFyYXRvcl09XCJzZXBhcmF0b3JcIlxuICAgIFtjbGFzcy5wby1pdGVtLWxpc3RfX3NlbGVjdGVkXT1cInNlbGVjdGVkICYmICFkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiXG4gICAgKGNsaWNrKT1cIm9uQ29tYm9JdGVtKGl0ZW0sICRldmVudClcIlxuICA+XG4gICAgPHNwYW4gKm5nSWY9XCIhdGVtcGxhdGVcIiBjbGFzcz1cInBvLWl0ZW0tbGlzdC1sYWJlbFwiIFtpbm5lckhUTUxdPVwiZ2V0TGFiZWxGb3JtYXR0ZWQobGFiZWwpXCI+PC9zcGFuPlxuXG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlPy50ZW1wbGF0ZVJlZlwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogdGVtcGxhdGVDb250ZXh0IH1cIj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjaGVjaydcIlxuICAgIGNsYXNzPVwicG8taXRlbS1saXN0IHBvLWl0ZW0tbGlzdF9fY2hlY2tcIlxuICAgIFtjbGFzcy5wby1pdGVtLWxpc3RfX3NlcGFyYXRvcl09XCJzZXBhcmF0b3JcIlxuICAgIFtjbGFzcy5wby1pdGVtLWxpc3RfX3NlbGVjdGVkXT1cInNlbGVjdGVkICYmICFkaXNhYmxlZFwiXG4gICAgW2NsYXNzLnBvLWl0ZW0tbGlzdF9fZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxcIlxuICAgIChjbGljayk9XCJvbkNoZWNrYm94SXRlbSgpXCJcbiAgICAoa2V5ZG93bik9XCJvbkNoZWNrYm94SXRlbUVtaXQoJGV2ZW50KVwiXG4gICAgKGtleXVwKT1cIm9uQ2hlY2tib3hJdGVtRW1pdCgkZXZlbnQpXCJcbiAgPlxuICAgIDxwby1jaGVja2JveFxuICAgICAgW3AtZGlzYWJsZWQtdGFiaW5kZXhdPVwidHJ1ZVwiXG4gICAgICBbcC1jaGVja2JveFZhbHVlXT1cImNoZWNrYm94VmFsdWUgPT09IG51bGwgPyAnbWl4ZWQnIDogY2hlY2tib3hWYWx1ZVwiXG4gICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwib25DaGVja2JveEl0ZW0oKVwiXG4gICAgICAocC1jaGFuZ2UpPVwib25TZWxlY3RJdGVtKHtsYWJlbH0pXCJcbiAgICA+PC9wby1jaGVja2JveD5cblxuICAgIDxzcGFuIGNsYXNzPVwicG8taXRlbS1saXN0X19sYWJlbFwiICpuZ0lmPVwiIXRlbXBsYXRlXCI+e3sgbGFiZWwgfX08L3NwYW4+XG5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGU/LnRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB0ZW1wbGF0ZUNvbnRleHQgfVwiPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -66,6 +66,7 @@ function PoListBoxComponent_ng_container_4_li_4_Template(rf, ctx) { if (rf & 1)
|
|
|
66
66
|
} if (rf & 2) {
|
|
67
67
|
const item_r19 = ctx.$implicit;
|
|
68
68
|
const ctx_r15 = i0.ɵɵnextContext(2);
|
|
69
|
+
i0.ɵɵclassProp("po-listbox-item", ctx_r15.visible);
|
|
69
70
|
i0.ɵɵproperty("cdkOption", item_r19[ctx_r15.fieldLabel])("cdkOptionDisabled", ctx_r15.returnBooleanValue(item_r19, "disabled") || ctx_r15.returnBooleanValue(item_r19, "visible") === false || item_r19.options);
|
|
70
71
|
i0.ɵɵattribute("aria-selected", ctx_r15.isSelectedItem(item_r19) || item_r19.selected);
|
|
71
72
|
i0.ɵɵadvance(1);
|
|
@@ -77,7 +78,7 @@ function PoListBoxComponent_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
77
78
|
i0.ɵɵelementContainerStart(0);
|
|
78
79
|
i0.ɵɵelementStart(1, "ul", 10, 11);
|
|
79
80
|
i0.ɵɵtemplate(3, PoListBoxComponent_ng_container_4_li_3_Template, 2, 4, "li", 12);
|
|
80
|
-
i0.ɵɵtemplate(4, PoListBoxComponent_ng_container_4_li_4_Template, 3,
|
|
81
|
+
i0.ɵɵtemplate(4, PoListBoxComponent_ng_container_4_li_4_Template, 3, 7, "li", 13);
|
|
81
82
|
i0.ɵɵelementEnd();
|
|
82
83
|
i0.ɵɵelementContainerEnd();
|
|
83
84
|
} if (rf & 2) {
|
|
@@ -292,7 +293,7 @@ export class PoListBoxComponent extends PoListBoxBaseComponent {
|
|
|
292
293
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.listbox = _t.first);
|
|
293
294
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.listboxItemList = _t.first);
|
|
294
295
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.searchElement = _t.first);
|
|
295
|
-
} }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c4, decls: 12, vars: 8, consts: [[1, "po-listbox", 3, "hidden"], ["listbox", ""], [3, "p-literals", "p-field-value", "p-placeholder", "p-change", 4, "ngIf"], [4, "ngIf", "ngIfElse"], ["class", "po-text-center", 4, "ngIf"], ["scrollLoadingTemplate", ""], ["defaultLoadingTemplate", ""], ["noDataTemplate", ""], [3, "p-literals", "p-field-value", "p-placeholder", "p-change"], ["searchElement", ""], ["cdkListbox", "", 1, "po-listbox-list", 3, "cdkListboxMultiple"], ["listboxItemList", ""], ["cdkOption", "selectAll", 3, "click", "keydown", 4, "ngIf"], [
|
|
296
|
+
} }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c4, decls: 12, vars: 8, consts: [[1, "po-listbox", 3, "hidden"], ["listbox", ""], [3, "p-literals", "p-field-value", "p-placeholder", "p-change", 4, "ngIf"], [4, "ngIf", "ngIfElse"], ["class", "po-text-center", 4, "ngIf"], ["scrollLoadingTemplate", ""], ["defaultLoadingTemplate", ""], ["noDataTemplate", ""], [3, "p-literals", "p-field-value", "p-placeholder", "p-change"], ["searchElement", ""], ["cdkListbox", "", 1, "po-listbox-list", 3, "cdkListboxMultiple"], ["listboxItemList", ""], ["cdkOption", "selectAll", 3, "click", "keydown", 4, "ngIf"], [3, "po-listbox-item", "cdkOption", "cdkOptionDisabled", "click", "keydown", 4, "ngFor", "ngForOf"], ["cdkOption", "selectAll", 3, "click", "keydown"], ["p-type", "check", "p-value", "selectAll", 3, "p-selected", "p-label", "p-checkbox-value"], [3, "cdkOption", "cdkOptionDisabled", "click", "keydown"], ["class", "po-combo-item-title", 4, "ngIf"], [3, "p-disabled", "p-visible", "p-checkbox-value", "p-label", "p-value", "p-selected", "p-separator", "p-danger", "p-icon", "p-type", "p-item", "p-field-value", "p-field-label", "p-template", "p-template-context", "p-search-value", "p-filter-mode", "p-filtering", "p-should-mark-letter", "p-compare-cache", "p-combo-service", "p-selectcheckbox-item", "p-selectcombo-item", "p-select-item", 4, "ngIf"], [1, "po-combo-item-title"], [3, "p-disabled", "p-visible", "p-checkbox-value", "p-label", "p-value", "p-selected", "p-separator", "p-danger", "p-icon", "p-type", "p-item", "p-field-value", "p-field-label", "p-template", "p-template-context", "p-search-value", "p-filter-mode", "p-filtering", "p-should-mark-letter", "p-compare-cache", "p-combo-service", "p-selectcheckbox-item", "p-selectcombo-item", "p-select-item"], [1, "po-text-center"], [4, "ngIf", "ngIfThen", "ngIfElse"], [1, "po-listbox-container-loading-scroll"], [1, "po-listbox-container-loading-default"], ["class", "po-listbox-container-no-data po-text-center", 4, "ngIf"], [1, "po-listbox-container-no-data", "po-text-center"]], template: function PoListBoxComponent_Template(rf, ctx) { if (rf & 1) {
|
|
296
297
|
i0.ɵɵprojectionDef(_c3);
|
|
297
298
|
i0.ɵɵelementStart(0, "div", 0, 1);
|
|
298
299
|
i0.ɵɵprojection(2);
|
|
@@ -318,7 +319,7 @@ export class PoListBoxComponent extends PoListBoxBaseComponent {
|
|
|
318
319
|
}
|
|
319
320
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoListBoxComponent, [{
|
|
320
321
|
type: Component,
|
|
321
|
-
args: [{ selector: 'po-listbox', template: "<div\n #listbox\n class=\"po-listbox\"\n [class.po-listbox-check]=\"type === 'check' || type === 'option'\"\n [attr.data-type]=\"type\"\n [hidden]=\"visible\"\n>\n <ng-content select=\"[p-popup-header-template]\"></ng-content>\n\n <po-search-list\n #searchElement\n *ngIf=\"!hideSearch && type === 'check'\"\n (p-change)=\"callChangeSearch($event)\"\n [p-literals]=\"literalSearch\"\n [p-field-value]=\"fieldValueSearch\"\n [p-placeholder]=\"placeholderSearch\"\n ></po-search-list>\n\n <ng-container *ngIf=\"checkTemplate(); else noDataTemplate\">\n <ul #listboxItemList cdkListbox [cdkListboxMultiple]=\"type === 'check'\" class=\"po-listbox-list\">\n <li\n cdkOption=\"selectAll\"\n *ngIf=\"type === 'check' && items.length && !searchElement?.inputValue && !hideSelectAll\"\n [attr.aria-checked]=\"checkboxAllValue === null ? 'mixed' : checkboxAllValue\"\n (click)=\"changeAll.emit()\"\n (keydown)=\"changeAllEmit($event)\"\n >\n <po-item-list\n [p-selected]=\"checkboxAllValue\"\n p-type=\"check\"\n [p-label]=\"literals.selectAll\"\n p-value=\"selectAll\"\n [p-checkbox-value]=\"checkboxAllValue\"\n >\n </po-item-list>\n </li>\n <li\n class
|
|
322
|
+
args: [{ selector: 'po-listbox', template: "<div\n #listbox\n class=\"po-listbox\"\n [class.po-listbox-check]=\"type === 'check' || type === 'option'\"\n [attr.data-type]=\"type\"\n [hidden]=\"visible\"\n>\n <ng-content select=\"[p-popup-header-template]\"></ng-content>\n\n <po-search-list\n #searchElement\n *ngIf=\"!hideSearch && type === 'check'\"\n (p-change)=\"callChangeSearch($event)\"\n [p-literals]=\"literalSearch\"\n [p-field-value]=\"fieldValueSearch\"\n [p-placeholder]=\"placeholderSearch\"\n ></po-search-list>\n\n <ng-container *ngIf=\"checkTemplate(); else noDataTemplate\">\n <ul #listboxItemList cdkListbox [cdkListboxMultiple]=\"type === 'check'\" class=\"po-listbox-list\">\n <li\n cdkOption=\"selectAll\"\n *ngIf=\"type === 'check' && items.length && !searchElement?.inputValue && !hideSelectAll\"\n [attr.aria-checked]=\"checkboxAllValue === null ? 'mixed' : checkboxAllValue\"\n (click)=\"changeAll.emit()\"\n (keydown)=\"changeAllEmit($event)\"\n >\n <po-item-list\n [p-selected]=\"checkboxAllValue\"\n p-type=\"check\"\n [p-label]=\"literals.selectAll\"\n p-value=\"selectAll\"\n [p-checkbox-value]=\"checkboxAllValue\"\n >\n </po-item-list>\n </li>\n <li\n [class.po-listbox-item]=\"visible\"\n *ngFor=\"let item of items\"\n [cdkOption]=\"item[fieldLabel]\"\n [cdkOptionDisabled]=\"\n returnBooleanValue(item, 'disabled') || returnBooleanValue(item, 'visible') === false || item.options\n \"\n [attr.aria-selected]=\"isSelectedItem(item) || item.selected\"\n (click)=\"onSelectItem(item)\"\n (keydown)=\"onKeyDown(item, $event)\"\n >\n <label *ngIf=\"item.options\" class=\"po-combo-item-title\">\n {{ item.label }}\n </label>\n <po-item-list\n *ngIf=\"returnBooleanValue(item, 'visible') !== false && !item.options\"\n [p-disabled]=\"returnBooleanValue(item, 'disabled')\"\n [p-visible]=\"returnBooleanValue(item, 'visible')\"\n [p-checkbox-value]=\"isSelectedItem(item)\"\n [attr.data-item-list]=\"item | json\"\n [p-label]=\"item[fieldLabel]\"\n [p-value]=\"item[fieldValue]\"\n [p-selected]=\"isSelectedItem(item) || item.selected\"\n [p-separator]=\"item.separator\"\n [p-danger]=\"item.danger || item.type === 'danger'\"\n [p-icon]=\"item.icon\"\n [p-type]=\"type\"\n [p-item]=\"item\"\n [p-field-value]=\"fieldValue\"\n [p-field-label]=\"fieldLabel\"\n [p-template]=\"template\"\n [p-template-context]=\"item\"\n (p-selectcheckbox-item)=\"checkboxClicked($event)\"\n (p-selectcombo-item)=\"optionClicked($event)\"\n (p-select-item)=\"onSelectCheckBoxItem(item)\"\n [p-search-value]=\"searchValue\"\n [p-filter-mode]=\"filterMode\"\n [p-filtering]=\"isFiltering\"\n [p-should-mark-letter]=\"shouldMarkLetters\"\n [p-compare-cache]=\"compareCache\"\n [p-combo-service]=\"comboService\"\n ></po-item-list>\n </li>\n </ul>\n </ng-container>\n\n <div *ngIf=\"isServerSearching && type !== 'action'\" class=\"po-text-center\">\n <ng-container *ngIf=\"infiniteLoading; then scrollLoadingTemplate; else defaultLoadingTemplate\"></ng-container>\n </div>\n\n <ng-template #scrollLoadingTemplate>\n <po-loading-overlay class=\"po-listbox-container-loading-scroll\"></po-loading-overlay>\n </ng-template>\n\n <ng-template #defaultLoadingTemplate>\n <po-loading class=\"po-listbox-container-loading-default\"></po-loading>\n </ng-template>\n\n <ng-template #noDataTemplate>\n <div\n *ngIf=\"!items.length && !isServerSearching && type !== 'action'\"\n class=\"po-listbox-container-no-data po-text-center\"\n >\n <span> {{ literals.noItems }}</span>\n </div>\n </ng-template>\n</div>\n" }]
|
|
322
323
|
}], function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.PoLanguageService }, { type: i2.Router }, { type: i0.ChangeDetectorRef }]; }, { listbox: [{
|
|
323
324
|
type: ViewChild,
|
|
324
325
|
args: ['listbox', { static: true }]
|
|
@@ -329,4 +330,4 @@ export class PoListBoxComponent extends PoListBoxBaseComponent {
|
|
|
329
330
|
type: ViewChild,
|
|
330
331
|
args: ['searchElement']
|
|
331
332
|
}] }); })();
|
|
332
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbGlzdGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tbGlzdGJveC9wby1saXN0Ym94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1saXN0Ym94L3BvLWxpc3Rib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLFNBQVMsRUFNVCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RSxPQUFPLEVBQTRCLFlBQVksRUFBRSxTQUFTLEVBQVMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQ2I5RSw0Q0FPQztJQUpDLGdNQUFZLGVBQUEsZ0NBQXdCLENBQUEsSUFBQztJQUl0QyxpQkFBaUI7OztJQUhoQixpREFBNEIsMENBQUEsMkNBQUE7Ozs7SUFPMUIsOEJBTUM7SUFGQyw0S0FBUyxlQUFBLHdCQUFnQixDQUFBLElBQUMseUtBQ2YsZUFBQSw2QkFBcUIsQ0FBQSxJQUROO0lBRzFCLG1DQU9lO0lBQ2pCLGlCQUFLOzs7SUFaSCxzR0FBNEU7SUFLMUUsZUFBK0I7SUFBL0IscURBQStCLHVDQUFBLDhDQUFBOzs7SUFtQmpDLGlDQUF3RDtJQUN0RCxZQUNGO0lBQUEsaUJBQVE7OztJQUROLGVBQ0Y7SUFERSwrQ0FDRjs7OztJQUNBLHdDQTJCQztJQVRDLDJPQUF5QixlQUFBLCtCQUF1QixDQUFBLElBQUMsd05BQzNCLGVBQUEsNkJBQXFCLENBQUEsSUFETSx1UEFFaEMsZUFBQSxzQ0FBMEIsQ0FBQSxJQUZN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bkIsYUFBYTtrQkFBeEMsU0FBUzttQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgZm9yd2FyZFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IFBvTGlzdEJveEJhc2VDb21wb25lbnQgfSBmcm9tICcuL3BvLWxpc3Rib3gtYmFzZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBQb0l0ZW1MaXN0T3B0aW9uR3JvdXAgfSBmcm9tICcuL3BvLWl0ZW0tbGlzdC9pbnRlcmZhY2VzL3BvLWl0ZW0tbGlzdC1vcHRpb24tZ3JvdXAuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvSXRlbUxpc3RPcHRpb24gfSBmcm9tICcuL3BvLWl0ZW0tbGlzdC9pbnRlcmZhY2VzL3BvLWl0ZW0tbGlzdC1vcHRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBpc0V4dGVybmFsTGluaywgaXNUeXBlb2YsIG9wZW5FeHRlcm5hbExpbmsgfSBmcm9tICcuLi8uLi91dGlscy91dGlsJztcbmltcG9ydCB7IFBvU2VhcmNoTGlzdENvbXBvbmVudCB9IGZyb20gJy4vcG8tc2VhcmNoLWxpc3QvcG8tc2VhcmNoLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgZGVib3VuY2VUaW1lLCBmcm9tRXZlbnQsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLWxpc3Rib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tbGlzdGJveC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9MaXN0Qm94Q29tcG9uZW50IGV4dGVuZHMgUG9MaXN0Qm94QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnbGlzdGJveCcsIHsgc3RhdGljOiB0cnVlIH0pIGxpc3Rib3g6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2xpc3Rib3hJdGVtTGlzdCcsIHsgc3RhdGljOiBmYWxzZSB9KSBsaXN0Ym94SXRlbUxpc3Q6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaEVsZW1lbnQnKSBzZWFyY2hFbGVtZW50OiBQb1NlYXJjaExpc3RDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBzY3JvbGxFdmVudCQ6IE9ic2VydmFibGU8YW55PjtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25TY3JvbGxFdmVudDogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIobGFuZ3VhZ2VTZXJ2aWNlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldExpc3RCb3hNYXhIZWlnaHQoKTtcbiAgICB0aGlzLmxpc3Rib3hJdGVtTGlzdD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlcz86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcz8uaXRlbXMpIHtcbiAgICAgIHRoaXMuc2V0TGlzdEJveE1heEhlaWdodCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZpc2libGUgJiYgdGhpcy5pbmZpbml0ZVNjcm9sbCkge1xuICAgICAgdGhpcy5jaGVja0luZmluaXRlU2Nyb2xsKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uU2Nyb2xsRXZlbnQgJiYgdGhpcy5zdWJzY3JpcHRpb25TY3JvbGxFdmVudC51bnN1YnNjcmliZSkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25TY3JvbGxFdmVudC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VsZWN0SXRlbShpdGVtTGlzdEFjdGlvbjogUG9JdGVtTGlzdE9wdGlvbiB8IFBvSXRlbUxpc3RPcHRpb25Hcm91cCB8IGFueSkge1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPVxuICAgICAgaXRlbUxpc3RBY3Rpb24uaGFzT3duUHJvcGVydHkoJ2Rpc2FibGVkJykgJiZcbiAgICAgIGl0ZW1MaXN0QWN0aW9uLmRpc2FibGVkICE9PSBudWxsICYmXG4gICAgICBpdGVtTGlzdEFjdGlvbi5kaXNhYmxlZCAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gdGhpcy5yZXR1cm5Cb29sZWFuVmFsdWUoaXRlbUxpc3RBY3Rpb24sICdkaXNhYmxlZCcpXG4gICAgICAgIDogZmFsc2U7XG4gICAgY29uc3QgaXNWaXNpYmxlID1cbiAgICAgIGl0ZW1MaXN0QWN0aW9uLmhhc093blByb3BlcnR5KCd2aXNpYmxlJykgJiZcbiAgICAgIGl0ZW1MaXN0QWN0aW9uLnZpc2libGUgIT09IG51bGwgJiZcbiAgICAgIGl0ZW1MaXN0QWN0aW9uLnZpc2libGUgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IHRoaXMucmV0dXJuQm9vbGVhblZhbHVlKGl0ZW1MaXN0QWN0aW9uLCAndmlzaWJsZScpXG4gICAgICAgIDogdHJ1ZTtcblxuICAgIGlmIChpdGVtTGlzdEFjdGlvbiAmJiBpdGVtTGlzdEFjdGlvbi5hY3Rpb24gJiYgIWlzRGlzYWJsZWQgJiYgaXNWaXNpYmxlKSB7XG4gICAgICBpdGVtTGlzdEFjdGlvbi5hY3Rpb24odGhpcy5wYXJhbSB8fCBpdGVtTGlzdEFjdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKGl0ZW1MaXN0QWN0aW9uICYmIGl0ZW1MaXN0QWN0aW9uLnVybCAmJiAhaXNEaXNhYmxlZCAmJiBpc1Zpc2libGUpIHtcbiAgICAgIHJldHVybiB0aGlzLm9wZW5VcmwoaXRlbUxpc3RBY3Rpb24udXJsKTtcbiAgICB9XG4gIH1cblxuICBvbktleURvd24oaXRlbUxpc3RBY3Rpb246IFBvSXRlbUxpc3RPcHRpb24gfCBQb0l0ZW1MaXN0T3B0aW9uR3JvdXAgfCBhbnksIGV2ZW50PzogS2V5Ym9hcmRFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBpZiAoKGV2ZW50ICYmIGV2ZW50LmNvZGUgPT09ICdFbnRlcicpIHx8IGV2ZW50LmNvZGUgPT09ICdTcGFjZScpIHtcbiAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2NoZWNrJzpcbiAgICAgICAgICB0aGlzLm9uU2VsZWN0Q2hlY2tCb3hJdGVtKGl0ZW1MaXN0QWN0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgICAgICB0aGlzLm9wdGlvbkNsaWNrZWQoaXRlbUxpc3RBY3Rpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdhY3Rpb24nOlxuICAgICAgICAgIHRoaXMub25TZWxlY3RJdGVtKGl0ZW1MaXN0QWN0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoKGV2ZW50ICYmIGV2ZW50LmNvZGUgPT09ICdFc2NhcGUnKSB8fCBldmVudC5jb2RlID09PSAnVGFiJykge1xuICAgICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBjaGVja2JveENsaWNrZWQoeyBvcHRpb24sIHNlbGVjdGVkIH0pIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnY2hlY2snKSB7XG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KHsgc2VsZWN0ZWQsIG9wdGlvbiB9KTtcbiAgICB9XG4gIH1cblxuICBvcHRpb25DbGlja2VkKG9wdGlvbjogYW55KSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ29wdGlvbicpIHtcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKGl0ZW0gPT5cbiAgICAgICAgaXRlbVt0aGlzLmZpZWxkVmFsdWVdID09PSBvcHRpb25bdGhpcy5maWVsZFZhbHVlXSA/IChpdGVtWydzZWxlY3RlZCddID0gdHJ1ZSkgOiAoaXRlbVsnc2VsZWN0ZWQnXSA9IGZhbHNlKVxuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0Q29tYm8uZW1pdCh7IC4uLm9wdGlvbiB9KTtcbiAgICB9XG4gIH1cblxuICBvblNlbGVjdENoZWNrQm94SXRlbShvcHRpb24pIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9ICF0aGlzLmlzU2VsZWN0ZWRJdGVtKG9wdGlvbik7XG4gICAgdGhpcy5jaGVja2JveENsaWNrZWQoeyBvcHRpb24sIHNlbGVjdGVkIH0pO1xuICB9XG5cbiAgaXNTZWxlY3RlZEl0ZW0ob3B0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb25zLnNvbWUoc2VsZWN0ZWRJdGVtID0+IHNlbGVjdGVkSXRlbVt0aGlzLmZpZWxkVmFsdWVdID09PSBvcHRpb25bdGhpcy5maWVsZFZhbHVlXSk7XG4gIH1cblxuICBjaGFuZ2VBbGxFbWl0KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKChldmVudCAmJiBldmVudC5jb2RlID09PSAnRW50ZXInKSB8fCBldmVudC5jb2RlID09PSAnU3BhY2UnKSB7XG4gICAgICB0aGlzLmNoYW5nZUFsbC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgY2FsbENoYW5nZVNlYXJjaChldmVudCkge1xuICAgIHRoaXMuY2hhbmdlU2VhcmNoLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgc2hvd01vcmVJbmZpbml0ZVNjcm9sbCh7IHRhcmdldCB9KTogdm9pZCB7XG4gICAgY29uc3Qgc2Nyb2xsUG9zaXRpb24gPSB0YXJnZXQub2Zmc2V0SGVpZ2h0ICsgdGFyZ2V0LnNjcm9sbFRvcDtcbiAgICBpZiAoc2Nyb2xsUG9zaXRpb24gPj0gdGFyZ2V0LnNjcm9sbEhlaWdodCAqICh0aGlzLmluZmluaXRlU2Nyb2xsRGlzdGFuY2UgLyAxMTApKSB7XG4gICAgICB0aGlzLlVwZGF0ZUluZmluaXRlU2Nyb2xsLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBzY3JvbGxMaXN0ZW5lcihjb21wb25lbnRMaXN0bmVyOiBIVE1MRWxlbWVudCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIGZyb21FdmVudChjb21wb25lbnRMaXN0bmVyLCAnc2Nyb2xsJykucGlwZShkZWJvdW5jZVRpbWUoMTAwKSk7XG4gIH1cblxuICBzZXRGb2N1cygpIHtcbiAgICB0aGlzLmxpc3Rib3hJdGVtTGlzdC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tJbmZpbml0ZVNjcm9sbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oYXNJbmZpbml0ZVNjcm9sbCgpKSB7XG4gICAgICB0aGlzLmluY2x1ZGVJbmZpbml0ZVNjcm9sbCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFzSW5maW5pdGVTY3JvbGwoKTogYm9vbGVhbiB7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgcmV0dXJuIHRoaXMuaW5maW5pdGVTY3JvbGwgJiYgdGhpcy5saXN0Ym94SXRlbUxpc3Q/Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICB9XG5cbiAgY2hlY2tUZW1wbGF0ZSgpIHtcbiAgICBpZiAodGhpcy5jYWNoZSB8fCB0aGlzLmluZmluaXRlU2Nyb2xsKSB7XG4gICAgICByZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAhdGhpcy5pc1NlcnZlclNlYXJjaGluZyAmJiB0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluY2x1ZGVJbmZpbml0ZVNjcm9sbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNjcm9sbEV2ZW50JCA9IHRoaXMuc2Nyb2xsTGlzdGVuZXIodGhpcy5saXN0Ym94SXRlbUxpc3Q/Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25TY3JvbGxFdmVudCA9IHRoaXMuc2Nyb2xsRXZlbnQkLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICB0aGlzLnNob3dNb3JlSW5maW5pdGVTY3JvbGwoZXZlbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJldHVybkJvb2xlYW5WYWx1ZShpdGVtTGlzdEFjdGlvbjogYW55LCBwcm9wZXJ0eTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGlzVHlwZW9mKGl0ZW1MaXN0QWN0aW9uW3Byb3BlcnR5XSwgJ2Z1bmN0aW9uJylcbiAgICAgID8gaXRlbUxpc3RBY3Rpb25bcHJvcGVydHldKHRoaXMucGFyYW0gfHwgaXRlbUxpc3RBY3Rpb24pXG4gICAgICA6IGl0ZW1MaXN0QWN0aW9uW3Byb3BlcnR5XTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TGlzdEJveE1heEhlaWdodCgpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtc0xlbmd0aCA9IHRoaXMuaXRlbXMubGVuZ3RoO1xuICAgIGlmIChpdGVtc0xlbmd0aCA+IDYpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdjaGVjaycgJiYgIXRoaXMuaGlkZVNlYXJjaCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMubGlzdGJveC5uYXRpdmVFbGVtZW50LCAnbWF4SGVpZ2h0JywgYCR7NDQgKiA2IC0gNDQgLyAzICsgNjB9cHhgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5saXN0Ym94Lm5hdGl2ZUVsZW1lbnQsICdtYXhIZWlnaHQnLCBgJHs0NCAqIDYgLSA0NCAvIDN9cHhgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wZW5VcmwodXJsOiBzdHJpbmcpIHtcbiAgICBpZiAoaXNFeHRlcm5hbExpbmsodXJsKSkge1xuICAgICAgcmV0dXJuIG9wZW5FeHRlcm5hbExpbmsodXJsKTtcbiAgICB9XG5cbiAgICBpZiAodXJsKSB7XG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3VybF0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICAjbGlzdGJveFxuICBjbGFzcz1cInBvLWxpc3Rib3hcIlxuICBbY2xhc3MucG8tbGlzdGJveC1jaGVja109XCJ0eXBlID09PSAnY2hlY2snIHx8IHR5cGUgPT09ICdvcHRpb24nXCJcbiAgW2F0dHIuZGF0YS10eXBlXT1cInR5cGVcIlxuICBbaGlkZGVuXT1cInZpc2libGVcIlxuPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbcC1wb3B1cC1oZWFkZXItdGVtcGxhdGVdXCI+PC9uZy1jb250ZW50PlxuXG4gIDxwby1zZWFyY2gtbGlzdFxuICAgICNzZWFyY2hFbGVtZW50XG4gICAgKm5nSWY9XCIhaGlkZVNlYXJjaCAmJiB0eXBlID09PSAnY2hlY2snXCJcbiAgICAocC1jaGFuZ2UpPVwiY2FsbENoYW5nZVNlYXJjaCgkZXZlbnQpXCJcbiAgICBbcC1saXRlcmFsc109XCJsaXRlcmFsU2VhcmNoXCJcbiAgICBbcC1maWVsZC12YWx1ZV09XCJmaWVsZFZhbHVlU2VhcmNoXCJcbiAgICBbcC1wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclNlYXJjaFwiXG4gID48L3BvLXNlYXJjaC1saXN0PlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjaGVja1RlbXBsYXRlKCk7IGVsc2Ugbm9EYXRhVGVtcGxhdGVcIj5cbiAgICA8dWwgI2xpc3Rib3hJdGVtTGlzdCBjZGtMaXN0Ym94IFtjZGtMaXN0Ym94TXVsdGlwbGVdPVwidHlwZSA9PT0gJ2NoZWNrJ1wiIGNsYXNzPVwicG8tbGlzdGJveC1saXN0XCI+XG4gICAgICA8bGlcbiAgICAgICAgY2RrT3B0aW9uPVwic2VsZWN0QWxsXCJcbiAgICAgICAgKm5nSWY9XCJ0eXBlID09PSAnY2hlY2snICYmIGl0ZW1zLmxlbmd0aCAmJiAhc2VhcmNoRWxlbWVudD8uaW5wdXRWYWx1ZSAmJiAhaGlkZVNlbGVjdEFsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJjaGVja2JveEFsbFZhbHVlID09PSBudWxsID8gJ21peGVkJyA6IGNoZWNrYm94QWxsVmFsdWVcIlxuICAgICAgICAoY2xpY2spPVwiY2hhbmdlQWxsLmVtaXQoKVwiXG4gICAgICAgIChrZXlkb3duKT1cImNoYW5nZUFsbEVtaXQoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxwby1pdGVtLWxpc3RcbiAgICAgICAgICBbcC1zZWxlY3RlZF09XCJjaGVja2JveEFsbFZhbHVlXCJcbiAgICAgICAgICBwLXR5cGU9XCJjaGVja1wiXG4gICAgICAgICAgW3AtbGFiZWxdPVwibGl0ZXJhbHMuc2VsZWN0QWxsXCJcbiAgICAgICAgICBwLXZhbHVlPVwic2VsZWN0QWxsXCJcbiAgICAgICAgICBbcC1jaGVja2JveC12YWx1ZV09XCJjaGVja2JveEFsbFZhbHVlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3BvLWl0ZW0tbGlzdD5cbiAgICAgIDwvbGk+XG4gICAgICA8bGlcbiAgICAgICAgY2xhc3M9XCJwby1saXN0Ym94LWl0ZW1cIlxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXG4gICAgICAgIFtjZGtPcHRpb25dPVwiaXRlbVtmaWVsZExhYmVsXVwiXG4gICAgICAgIFtjZGtPcHRpb25EaXNhYmxlZF09XCJcbiAgICAgICAgICByZXR1cm5Cb29sZWFuVmFsdWUoaXRlbSwgJ2Rpc2FibGVkJykgfHwgcmV0dXJuQm9vbGVhblZhbHVlKGl0ZW0sICd2aXNpYmxlJykgPT09IGZhbHNlIHx8IGl0ZW0ub3B0aW9uc1xuICAgICAgICBcIlxuICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzU2VsZWN0ZWRJdGVtKGl0ZW0pIHx8IGl0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAoY2xpY2spPVwib25TZWxlY3RJdGVtKGl0ZW0pXCJcbiAgICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKGl0ZW0sICRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8bGFiZWwgKm5nSWY9XCJpdGVtLm9wdGlvbnNcIiBjbGFzcz1cInBvLWNvbWJvLWl0ZW0tdGl0bGVcIj5cbiAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxwby1pdGVtLWxpc3RcbiAgICAgICAgICAqbmdJZj1cInJldHVybkJvb2xlYW5WYWx1ZShpdGVtLCAndmlzaWJsZScpICE9PSBmYWxzZSAmJiAhaXRlbS5vcHRpb25zXCJcbiAgICAgICAgICBbcC1kaXNhYmxlZF09XCJyZXR1cm5Cb29sZWFuVmFsdWUoaXRlbSwgJ2Rpc2FibGVkJylcIlxuICAgICAgICAgIFtwLXZpc2libGVdPVwicmV0dXJuQm9vbGVhblZhbHVlKGl0ZW0sICd2aXNpYmxlJylcIlxuICAgICAgICAgIFtwLWNoZWNrYm94LXZhbHVlXT1cImlzU2VsZWN0ZWRJdGVtKGl0ZW0pXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLWl0ZW0tbGlzdF09XCJpdGVtIHwganNvblwiXG4gICAgICAgICAgW3AtbGFiZWxdPVwiaXRlbVtmaWVsZExhYmVsXVwiXG4gICAgICAgICAgW3AtdmFsdWVdPVwiaXRlbVtmaWVsZFZhbHVlXVwiXG4gICAgICAgICAgW3Atc2VsZWN0ZWRdPVwiaXNTZWxlY3RlZEl0ZW0oaXRlbSkgfHwgaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgICAgW3Atc2VwYXJhdG9yXT1cIml0ZW0uc2VwYXJhdG9yXCJcbiAgICAgICAgICBbcC1kYW5nZXJdPVwiaXRlbS5kYW5nZXIgfHwgaXRlbS50eXBlID09PSAnZGFuZ2VyJ1wiXG4gICAgICAgICAgW3AtaWNvbl09XCJpdGVtLmljb25cIlxuICAgICAgICAgIFtwLXR5cGVdPVwidHlwZVwiXG4gICAgICAgICAgW3AtaXRlbV09XCJpdGVtXCJcbiAgICAgICAgICBbcC1maWVsZC12YWx1ZV09XCJmaWVsZFZhbHVlXCJcbiAgICAgICAgICBbcC1maWVsZC1sYWJlbF09XCJmaWVsZExhYmVsXCJcbiAgICAgICAgICBbcC10ZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiXG4gICAgICAgICAgW3AtdGVtcGxhdGUtY29udGV4dF09XCJpdGVtXCJcbiAgICAgICAgICAocC1zZWxlY3RjaGVja2JveC1pdGVtKT1cImNoZWNrYm94Q2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgICAgICAocC1zZWxlY3Rjb21iby1pdGVtKT1cIm9wdGlvbkNsaWNrZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKHAtc2VsZWN0LWl0ZW0pPVwib25TZWxlY3RDaGVja0JveEl0ZW0oaXRlbSlcIlxuICAgICAgICAgIFtwLXNlYXJjaC12YWx1ZV09XCJzZWFyY2hWYWx1ZVwiXG4gICAgICAgICAgW3AtZmlsdGVyLW1vZGVdPVwiZmlsdGVyTW9kZVwiXG4gICAgICAgICAgW3AtZmlsdGVyaW5nXT1cImlzRmlsdGVyaW5nXCJcbiAgICAgICAgICBbcC1zaG91bGQtbWFyay1sZXR0ZXJdPVwic2hvdWxkTWFya0xldHRlcnNcIlxuICAgICAgICAgIFtwLWNvbXBhcmUtY2FjaGVdPVwiY29tcGFyZUNhY2hlXCJcbiAgICAgICAgICBbcC1jb21iby1zZXJ2aWNlXT1cImNvbWJvU2VydmljZVwiXG4gICAgICAgID48L3BvLWl0ZW0tbGlzdD5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdiAqbmdJZj1cImlzU2VydmVyU2VhcmNoaW5nICYmIHR5cGUgIT09ICdhY3Rpb24nXCIgY2xhc3M9XCJwby10ZXh0LWNlbnRlclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbmZpbml0ZUxvYWRpbmc7IHRoZW4gc2Nyb2xsTG9hZGluZ1RlbXBsYXRlOyBlbHNlIGRlZmF1bHRMb2FkaW5nVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPG5nLXRlbXBsYXRlICNzY3JvbGxMb2FkaW5nVGVtcGxhdGU+XG4gICAgPHBvLWxvYWRpbmctb3ZlcmxheSBjbGFzcz1cInBvLWxpc3Rib3gtY29udGFpbmVyLWxvYWRpbmctc2Nyb2xsXCI+PC9wby1sb2FkaW5nLW92ZXJsYXk+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TG9hZGluZ1RlbXBsYXRlPlxuICAgIDxwby1sb2FkaW5nIGNsYXNzPVwicG8tbGlzdGJveC1jb250YWluZXItbG9hZGluZy1kZWZhdWx0XCI+PC9wby1sb2FkaW5nPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjbm9EYXRhVGVtcGxhdGU+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIhaXRlbXMubGVuZ3RoICYmICFpc1NlcnZlclNlYXJjaGluZyAmJiB0eXBlICE9PSAnYWN0aW9uJ1wiXG4gICAgICBjbGFzcz1cInBvLWxpc3Rib3gtY29udGFpbmVyLW5vLWRhdGEgcG8tdGV4dC1jZW50ZXJcIlxuICAgID5cbiAgICAgIDxzcGFuPiB7eyBsaXRlcmFscy5ub0l0ZW1zIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|
|
333
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbGlzdGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tbGlzdGJveC9wby1saXN0Ym94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1saXN0Ym94L3BvLWxpc3Rib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLFNBQVMsRUFNVCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RSxPQUFPLEVBQTRCLFlBQVksRUFBRSxTQUFTLEVBQVMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQ2I5RSw0Q0FPQztJQUpDLGdNQUFZLGVBQUEsZ0NBQXdCLENBQUEsSUFBQztJQUl0QyxpQkFBaUI7OztJQUhoQixpREFBNEIsMENBQUEsMkNBQUE7Ozs7SUFPMUIsOEJBTUM7SUFGQyw0S0FBUyxlQUFBLHdCQUFnQixDQUFBLElBQUMseUtBQ2YsZUFBQSw2QkFBcUIsQ0FBQSxJQUROO0lBRzFCLG1DQU9lO0lBQ2pCLGlCQUFLOzs7SUFaSCxzR0FBNEU7SUFLMUUsZUFBK0I7SUFBL0IscURBQStCLHVDQUFBLDhDQUFBOzs7SUFtQmpDLGlDQUF3RDtJQUN0RCxZQUNGO0lBQUEsaUJBQVE7OztJQUROLGVBQ0Y7SUFERSwrQ0FDRjs7OztJQUNBLHdDQTJCQztJQVRDLDJPQUF5QixlQUFBLCtCQUF1QixDQUFBLElBQUMsd05BQzNCLGVBQUEsNkJBQXFCLENBQUEsSUFETSx1UEFFaEMsZUFBQSxzQ0FBMEIsQ0FBQSxJQUZN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S0FBSyxFQUFFO1lBQ25CLGFBQWE7a0JBQXhDLFNBQVM7bUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBQb0xpc3RCb3hCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1saXN0Ym94LWJhc2UuY29tcG9uZW50JztcblxuaW1wb3J0IHsgUG9JdGVtTGlzdE9wdGlvbkdyb3VwIH0gZnJvbSAnLi9wby1pdGVtLWxpc3QvaW50ZXJmYWNlcy9wby1pdGVtLWxpc3Qtb3B0aW9uLWdyb3VwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0l0ZW1MaXN0T3B0aW9uIH0gZnJvbSAnLi9wby1pdGVtLWxpc3QvaW50ZXJmYWNlcy9wby1pdGVtLWxpc3Qtb3B0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNFeHRlcm5hbExpbmssIGlzVHlwZW9mLCBvcGVuRXh0ZXJuYWxMaW5rIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCc7XG5pbXBvcnQgeyBQb1NlYXJjaExpc3RDb21wb25lbnQgfSBmcm9tICcuL3BvLXNlYXJjaC1saXN0L3BvLXNlYXJjaC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgZnJvbUV2ZW50LCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1saXN0Ym94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLWxpc3Rib3guY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBvTGlzdEJveENvbXBvbmVudCBleHRlbmRzIFBvTGlzdEJveEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2xpc3Rib3gnLCB7IHN0YXRpYzogdHJ1ZSB9KSBsaXN0Ym94OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdsaXN0Ym94SXRlbUxpc3QnLCB7IHN0YXRpYzogZmFsc2UgfSkgbGlzdGJveEl0ZW1MaXN0OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzZWFyY2hFbGVtZW50Jykgc2VhcmNoRWxlbWVudDogUG9TZWFyY2hMaXN0Q29tcG9uZW50O1xuXG4gIHByaXZhdGUgc2Nyb2xsRXZlbnQkOiBPYnNlcnZhYmxlPGFueT47XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uU2Nyb2xsRXZlbnQ6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgbGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKGxhbmd1YWdlU2VydmljZSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRMaXN0Qm94TWF4SGVpZ2h0KCk7XG4gICAgdGhpcy5saXN0Ym94SXRlbUxpc3Q/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM/OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXM/Lml0ZW1zKSB7XG4gICAgICB0aGlzLnNldExpc3RCb3hNYXhIZWlnaHQoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy52aXNpYmxlICYmIHRoaXMuaW5maW5pdGVTY3JvbGwpIHtcbiAgICAgIHRoaXMuY2hlY2tJbmZpbml0ZVNjcm9sbCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvblNjcm9sbEV2ZW50ICYmIHRoaXMuc3Vic2NyaXB0aW9uU2Nyb2xsRXZlbnQudW5zdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uU2Nyb2xsRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBvblNlbGVjdEl0ZW0oaXRlbUxpc3RBY3Rpb246IFBvSXRlbUxpc3RPcHRpb24gfCBQb0l0ZW1MaXN0T3B0aW9uR3JvdXAgfCBhbnkpIHtcbiAgICBjb25zdCBpc0Rpc2FibGVkID1cbiAgICAgIGl0ZW1MaXN0QWN0aW9uLmhhc093blByb3BlcnR5KCdkaXNhYmxlZCcpICYmXG4gICAgICBpdGVtTGlzdEFjdGlvbi5kaXNhYmxlZCAhPT0gbnVsbCAmJlxuICAgICAgaXRlbUxpc3RBY3Rpb24uZGlzYWJsZWQgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IHRoaXMucmV0dXJuQm9vbGVhblZhbHVlKGl0ZW1MaXN0QWN0aW9uLCAnZGlzYWJsZWQnKVxuICAgICAgICA6IGZhbHNlO1xuICAgIGNvbnN0IGlzVmlzaWJsZSA9XG4gICAgICBpdGVtTGlzdEFjdGlvbi5oYXNPd25Qcm9wZXJ0eSgndmlzaWJsZScpICYmXG4gICAgICBpdGVtTGlzdEFjdGlvbi52aXNpYmxlICE9PSBudWxsICYmXG4gICAgICBpdGVtTGlzdEFjdGlvbi52aXNpYmxlICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyB0aGlzLnJldHVybkJvb2xlYW5WYWx1ZShpdGVtTGlzdEFjdGlvbiwgJ3Zpc2libGUnKVxuICAgICAgICA6IHRydWU7XG5cbiAgICBpZiAoaXRlbUxpc3RBY3Rpb24gJiYgaXRlbUxpc3RBY3Rpb24uYWN0aW9uICYmICFpc0Rpc2FibGVkICYmIGlzVmlzaWJsZSkge1xuICAgICAgaXRlbUxpc3RBY3Rpb24uYWN0aW9uKHRoaXMucGFyYW0gfHwgaXRlbUxpc3RBY3Rpb24pO1xuICAgIH1cblxuICAgIGlmIChpdGVtTGlzdEFjdGlvbiAmJiBpdGVtTGlzdEFjdGlvbi51cmwgJiYgIWlzRGlzYWJsZWQgJiYgaXNWaXNpYmxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcGVuVXJsKGl0ZW1MaXN0QWN0aW9uLnVybCk7XG4gICAgfVxuICB9XG5cbiAgb25LZXlEb3duKGl0ZW1MaXN0QWN0aW9uOiBQb0l0ZW1MaXN0T3B0aW9uIHwgUG9JdGVtTGlzdE9wdGlvbkdyb3VwIHwgYW55LCBldmVudD86IEtleWJvYXJkRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgaWYgKChldmVudCAmJiBldmVudC5jb2RlID09PSAnRW50ZXInKSB8fCBldmVudC5jb2RlID09PSAnU3BhY2UnKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICBjYXNlICdjaGVjayc6XG4gICAgICAgICAgdGhpcy5vblNlbGVjdENoZWNrQm94SXRlbShpdGVtTGlzdEFjdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ29wdGlvbic6XG4gICAgICAgICAgdGhpcy5vcHRpb25DbGlja2VkKGl0ZW1MaXN0QWN0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYWN0aW9uJzpcbiAgICAgICAgICB0aGlzLm9uU2VsZWN0SXRlbShpdGVtTGlzdEFjdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKChldmVudCAmJiBldmVudC5jb2RlID09PSAnRXNjYXBlJykgfHwgZXZlbnQuY29kZSA9PT0gJ1RhYicpIHtcbiAgICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tib3hDbGlja2VkKHsgb3B0aW9uLCBzZWxlY3RlZCB9KSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2NoZWNrJykge1xuICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh7IHNlbGVjdGVkLCBvcHRpb24gfSk7XG4gICAgfVxuICB9XG5cbiAgb3B0aW9uQ2xpY2tlZChvcHRpb246IGFueSkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdvcHRpb24nKSB7XG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+XG4gICAgICAgIGl0ZW1bdGhpcy5maWVsZFZhbHVlXSA9PT0gb3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0gPyAoaXRlbVsnc2VsZWN0ZWQnXSA9IHRydWUpIDogKGl0ZW1bJ3NlbGVjdGVkJ10gPSBmYWxzZSlcbiAgICAgICk7XG4gICAgICB0aGlzLnNlbGVjdENvbWJvLmVtaXQoeyAuLi5vcHRpb24gfSk7XG4gICAgfVxuICB9XG5cbiAgb25TZWxlY3RDaGVja0JveEl0ZW0ob3B0aW9uKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSAhdGhpcy5pc1NlbGVjdGVkSXRlbShvcHRpb24pO1xuICAgIHRoaXMuY2hlY2tib3hDbGlja2VkKHsgb3B0aW9uLCBzZWxlY3RlZCB9KTtcbiAgfVxuXG4gIGlzU2VsZWN0ZWRJdGVtKG9wdGlvbikge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9ucy5zb21lKHNlbGVjdGVkSXRlbSA9PiBzZWxlY3RlZEl0ZW1bdGhpcy5maWVsZFZhbHVlXSA9PT0gb3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0pO1xuICB9XG5cbiAgY2hhbmdlQWxsRW1pdChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICgoZXZlbnQgJiYgZXZlbnQuY29kZSA9PT0gJ0VudGVyJykgfHwgZXZlbnQuY29kZSA9PT0gJ1NwYWNlJykge1xuICAgICAgdGhpcy5jaGFuZ2VBbGwuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIGNhbGxDaGFuZ2VTZWFyY2goZXZlbnQpIHtcbiAgICB0aGlzLmNoYW5nZVNlYXJjaC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHNob3dNb3JlSW5maW5pdGVTY3JvbGwoeyB0YXJnZXQgfSk6IHZvaWQge1xuICAgIGNvbnN0IHNjcm9sbFBvc2l0aW9uID0gdGFyZ2V0Lm9mZnNldEhlaWdodCArIHRhcmdldC5zY3JvbGxUb3A7XG4gICAgaWYgKHNjcm9sbFBvc2l0aW9uID49IHRhcmdldC5zY3JvbGxIZWlnaHQgKiAodGhpcy5pbmZpbml0ZVNjcm9sbERpc3RhbmNlIC8gMTEwKSkge1xuICAgICAgdGhpcy5VcGRhdGVJbmZpbml0ZVNjcm9sbC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgc2Nyb2xsTGlzdGVuZXIoY29tcG9uZW50TGlzdG5lcjogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBmcm9tRXZlbnQoY29tcG9uZW50TGlzdG5lciwgJ3Njcm9sbCcpLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpO1xuICB9XG5cbiAgc2V0Rm9jdXMoKSB7XG4gICAgdGhpcy5saXN0Ym94SXRlbUxpc3QubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNoZWNrSW5maW5pdGVTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGFzSW5maW5pdGVTY3JvbGwoKSkge1xuICAgICAgdGhpcy5pbmNsdWRlSW5maW5pdGVTY3JvbGwoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhc0luZmluaXRlU2Nyb2xsKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHJldHVybiB0aGlzLmluZmluaXRlU2Nyb2xsICYmIHRoaXMubGlzdGJveEl0ZW1MaXN0Py5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgfVxuXG4gIGNoZWNrVGVtcGxhdGUoKSB7XG4gICAgaWYgKHRoaXMuY2FjaGUgfHwgdGhpcy5pbmZpbml0ZVNjcm9sbCkge1xuICAgICAgcmV0dXJuIHRoaXMuaXRlbXMubGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gIXRoaXMuaXNTZXJ2ZXJTZWFyY2hpbmcgJiYgdGhpcy5pdGVtcy5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbmNsdWRlSW5maW5pdGVTY3JvbGwoKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxFdmVudCQgPSB0aGlzLnNjcm9sbExpc3RlbmVyKHRoaXMubGlzdGJveEl0ZW1MaXN0Py5uYXRpdmVFbGVtZW50KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uU2Nyb2xsRXZlbnQgPSB0aGlzLnNjcm9sbEV2ZW50JC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgdGhpcy5zaG93TW9yZUluZmluaXRlU2Nyb2xsKGV2ZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXR1cm5Cb29sZWFuVmFsdWUoaXRlbUxpc3RBY3Rpb246IGFueSwgcHJvcGVydHk6IHN0cmluZykge1xuICAgIHJldHVybiBpc1R5cGVvZihpdGVtTGlzdEFjdGlvbltwcm9wZXJ0eV0sICdmdW5jdGlvbicpXG4gICAgICA/IGl0ZW1MaXN0QWN0aW9uW3Byb3BlcnR5XSh0aGlzLnBhcmFtIHx8IGl0ZW1MaXN0QWN0aW9uKVxuICAgICAgOiBpdGVtTGlzdEFjdGlvbltwcm9wZXJ0eV07XG4gIH1cblxuICBwcml2YXRlIHNldExpc3RCb3hNYXhIZWlnaHQoKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbXNMZW5ndGggPSB0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICBpZiAoaXRlbXNMZW5ndGggPiA2KSB7XG4gICAgICBpZiAodGhpcy50eXBlID09PSAnY2hlY2snICYmICF0aGlzLmhpZGVTZWFyY2gpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmxpc3Rib3gubmF0aXZlRWxlbWVudCwgJ21heEhlaWdodCcsIGAkezQ0ICogNiAtIDQ0IC8gMyArIDYwfXB4YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMubGlzdGJveC5uYXRpdmVFbGVtZW50LCAnbWF4SGVpZ2h0JywgYCR7NDQgKiA2IC0gNDQgLyAzfXB4YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuVXJsKHVybDogc3RyaW5nKSB7XG4gICAgaWYgKGlzRXh0ZXJuYWxMaW5rKHVybCkpIHtcbiAgICAgIHJldHVybiBvcGVuRXh0ZXJuYWxMaW5rKHVybCk7XG4gICAgfVxuXG4gICAgaWYgKHVybCkge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxdKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgI2xpc3Rib3hcbiAgY2xhc3M9XCJwby1saXN0Ym94XCJcbiAgW2NsYXNzLnBvLWxpc3Rib3gtY2hlY2tdPVwidHlwZSA9PT0gJ2NoZWNrJyB8fCB0eXBlID09PSAnb3B0aW9uJ1wiXG4gIFthdHRyLmRhdGEtdHlwZV09XCJ0eXBlXCJcbiAgW2hpZGRlbl09XCJ2aXNpYmxlXCJcbj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3AtcG9wdXAtaGVhZGVyLXRlbXBsYXRlXVwiPjwvbmctY29udGVudD5cblxuICA8cG8tc2VhcmNoLWxpc3RcbiAgICAjc2VhcmNoRWxlbWVudFxuICAgICpuZ0lmPVwiIWhpZGVTZWFyY2ggJiYgdHlwZSA9PT0gJ2NoZWNrJ1wiXG4gICAgKHAtY2hhbmdlKT1cImNhbGxDaGFuZ2VTZWFyY2goJGV2ZW50KVwiXG4gICAgW3AtbGl0ZXJhbHNdPVwibGl0ZXJhbFNlYXJjaFwiXG4gICAgW3AtZmllbGQtdmFsdWVdPVwiZmllbGRWYWx1ZVNlYXJjaFwiXG4gICAgW3AtcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJTZWFyY2hcIlxuICA+PC9wby1zZWFyY2gtbGlzdD5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hlY2tUZW1wbGF0ZSgpOyBlbHNlIG5vRGF0YVRlbXBsYXRlXCI+XG4gICAgPHVsICNsaXN0Ym94SXRlbUxpc3QgY2RrTGlzdGJveCBbY2RrTGlzdGJveE11bHRpcGxlXT1cInR5cGUgPT09ICdjaGVjaydcIiBjbGFzcz1cInBvLWxpc3Rib3gtbGlzdFwiPlxuICAgICAgPGxpXG4gICAgICAgIGNka09wdGlvbj1cInNlbGVjdEFsbFwiXG4gICAgICAgICpuZ0lmPVwidHlwZSA9PT0gJ2NoZWNrJyAmJiBpdGVtcy5sZW5ndGggJiYgIXNlYXJjaEVsZW1lbnQ/LmlucHV0VmFsdWUgJiYgIWhpZGVTZWxlY3RBbGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiY2hlY2tib3hBbGxWYWx1ZSA9PT0gbnVsbCA/ICdtaXhlZCcgOiBjaGVja2JveEFsbFZhbHVlXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZUFsbC5lbWl0KClcIlxuICAgICAgICAoa2V5ZG93bik9XCJjaGFuZ2VBbGxFbWl0KCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8cG8taXRlbS1saXN0XG4gICAgICAgICAgW3Atc2VsZWN0ZWRdPVwiY2hlY2tib3hBbGxWYWx1ZVwiXG4gICAgICAgICAgcC10eXBlPVwiY2hlY2tcIlxuICAgICAgICAgIFtwLWxhYmVsXT1cImxpdGVyYWxzLnNlbGVjdEFsbFwiXG4gICAgICAgICAgcC12YWx1ZT1cInNlbGVjdEFsbFwiXG4gICAgICAgICAgW3AtY2hlY2tib3gtdmFsdWVdPVwiY2hlY2tib3hBbGxWYWx1ZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9wby1pdGVtLWxpc3Q+XG4gICAgICA8L2xpPlxuICAgICAgPGxpXG4gICAgICAgIFtjbGFzcy5wby1saXN0Ym94LWl0ZW1dPVwidmlzaWJsZVwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCJcbiAgICAgICAgW2Nka09wdGlvbl09XCJpdGVtW2ZpZWxkTGFiZWxdXCJcbiAgICAgICAgW2Nka09wdGlvbkRpc2FibGVkXT1cIlxuICAgICAgICAgIHJldHVybkJvb2xlYW5WYWx1ZShpdGVtLCAnZGlzYWJsZWQnKSB8fCByZXR1cm5Cb29sZWFuVmFsdWUoaXRlbSwgJ3Zpc2libGUnKSA9PT0gZmFsc2UgfHwgaXRlbS5vcHRpb25zXG4gICAgICAgIFwiXG4gICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNTZWxlY3RlZEl0ZW0oaXRlbSkgfHwgaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgIChjbGljayk9XCJvblNlbGVjdEl0ZW0oaXRlbSlcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd24oaXRlbSwgJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxsYWJlbCAqbmdJZj1cIml0ZW0ub3B0aW9uc1wiIGNsYXNzPVwicG8tY29tYm8taXRlbS10aXRsZVwiPlxuICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHBvLWl0ZW0tbGlzdFxuICAgICAgICAgICpuZ0lmPVwicmV0dXJuQm9vbGVhblZhbHVlKGl0ZW0sICd2aXNpYmxlJykgIT09IGZhbHNlICYmICFpdGVtLm9wdGlvbnNcIlxuICAgICAgICAgIFtwLWRpc2FibGVkXT1cInJldHVybkJvb2xlYW5WYWx1ZShpdGVtLCAnZGlzYWJsZWQnKVwiXG4gICAgICAgICAgW3AtdmlzaWJsZV09XCJyZXR1cm5Cb29sZWFuVmFsdWUoaXRlbSwgJ3Zpc2libGUnKVwiXG4gICAgICAgICAgW3AtY2hlY2tib3gtdmFsdWVdPVwiaXNTZWxlY3RlZEl0ZW0oaXRlbSlcIlxuICAgICAgICAgIFthdHRyLmRhdGEtaXRlbS1saXN0XT1cIml0ZW0gfCBqc29uXCJcbiAgICAgICAgICBbcC1sYWJlbF09XCJpdGVtW2ZpZWxkTGFiZWxdXCJcbiAgICAgICAgICBbcC12YWx1ZV09XCJpdGVtW2ZpZWxkVmFsdWVdXCJcbiAgICAgICAgICBbcC1zZWxlY3RlZF09XCJpc1NlbGVjdGVkSXRlbShpdGVtKSB8fCBpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICBbcC1zZXBhcmF0b3JdPVwiaXRlbS5zZXBhcmF0b3JcIlxuICAgICAgICAgIFtwLWRhbmdlcl09XCJpdGVtLmRhbmdlciB8fCBpdGVtLnR5cGUgPT09ICdkYW5nZXInXCJcbiAgICAgICAgICBbcC1pY29uXT1cIml0ZW0uaWNvblwiXG4gICAgICAgICAgW3AtdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICBbcC1pdGVtXT1cIml0ZW1cIlxuICAgICAgICAgIFtwLWZpZWxkLXZhbHVlXT1cImZpZWxkVmFsdWVcIlxuICAgICAgICAgIFtwLWZpZWxkLWxhYmVsXT1cImZpZWxkTGFiZWxcIlxuICAgICAgICAgIFtwLXRlbXBsYXRlXT1cInRlbXBsYXRlXCJcbiAgICAgICAgICBbcC10ZW1wbGF0ZS1jb250ZXh0XT1cIml0ZW1cIlxuICAgICAgICAgIChwLXNlbGVjdGNoZWNrYm94LWl0ZW0pPVwiY2hlY2tib3hDbGlja2VkKCRldmVudClcIlxuICAgICAgICAgIChwLXNlbGVjdGNvbWJvLWl0ZW0pPVwib3B0aW9uQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgICAgICAocC1zZWxlY3QtaXRlbSk9XCJvblNlbGVjdENoZWNrQm94SXRlbShpdGVtKVwiXG4gICAgICAgICAgW3Atc2VhcmNoLXZhbHVlXT1cInNlYXJjaFZhbHVlXCJcbiAgICAgICAgICBbcC1maWx0ZXItbW9kZV09XCJmaWx0ZXJNb2RlXCJcbiAgICAgICAgICBbcC1maWx0ZXJpbmddPVwiaXNGaWx0ZXJpbmdcIlxuICAgICAgICAgIFtwLXNob3VsZC1tYXJrLWxldHRlcl09XCJzaG91bGRNYXJrTGV0dGVyc1wiXG4gICAgICAgICAgW3AtY29tcGFyZS1jYWNoZV09XCJjb21wYXJlQ2FjaGVcIlxuICAgICAgICAgIFtwLWNvbWJvLXNlcnZpY2VdPVwiY29tYm9TZXJ2aWNlXCJcbiAgICAgICAgPjwvcG8taXRlbS1saXN0PlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8ZGl2ICpuZ0lmPVwiaXNTZXJ2ZXJTZWFyY2hpbmcgJiYgdHlwZSAhPT0gJ2FjdGlvbidcIiBjbGFzcz1cInBvLXRleHQtY2VudGVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImluZmluaXRlTG9hZGluZzsgdGhlbiBzY3JvbGxMb2FkaW5nVGVtcGxhdGU7IGVsc2UgZGVmYXVsdExvYWRpbmdUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgI3Njcm9sbExvYWRpbmdUZW1wbGF0ZT5cbiAgICA8cG8tbG9hZGluZy1vdmVybGF5IGNsYXNzPVwicG8tbGlzdGJveC1jb250YWluZXItbG9hZGluZy1zY3JvbGxcIj48L3BvLWxvYWRpbmctb3ZlcmxheT5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMb2FkaW5nVGVtcGxhdGU+XG4gICAgPHBvLWxvYWRpbmcgY2xhc3M9XCJwby1saXN0Ym94LWNvbnRhaW5lci1sb2FkaW5nLWRlZmF1bHRcIj48L3BvLWxvYWRpbmc+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlICNub0RhdGFUZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIiFpdGVtcy5sZW5ndGggJiYgIWlzU2VydmVyU2VhcmNoaW5nICYmIHR5cGUgIT09ICdhY3Rpb24nXCJcbiAgICAgIGNsYXNzPVwicG8tbGlzdGJveC1jb250YWluZXItbm8tZGF0YSBwby10ZXh0LWNlbnRlclwiXG4gICAgPlxuICAgICAgPHNwYW4+IHt7IGxpdGVyYWxzLm5vSXRlbXMgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|