@ng-nest/ui 14.0.9 → 14.0.10
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/esm2020/anchor/anchor.component.mjs +2 -2
- package/esm2020/auto-complete/auto-complete-portal.component.mjs +1 -2
- package/esm2020/core/functions/property.mjs +1 -1
- package/esm2020/date-picker/picker-date.component.mjs +2 -5
- package/esm2020/highlight/highlight.component.mjs +29 -8
- package/esm2020/highlight/highlight.module.mjs +5 -4
- package/esm2020/highlight/highlight.property.mjs +9 -3
- package/esm2020/list/list.component.mjs +2 -4
- package/esm2020/slider-select/slider-select.component.mjs +2 -4
- package/esm2020/tabs/public-api.mjs +2 -1
- package/esm2020/tabs/tab-link.directive.mjs +44 -0
- package/esm2020/tabs/tab.component.mjs +12 -5
- package/esm2020/tabs/tabs.component.mjs +61 -13
- package/esm2020/tabs/tabs.module.mjs +19 -4
- package/esm2020/tabs/tabs.property.mjs +17 -2
- package/esm2020/tree/tree.component.mjs +2 -2
- package/esm2020/tree-select/tree-select-portal.component.mjs +1 -2
- package/esm2020/upload/upload.component.mjs +20 -13
- package/esm2020/upload/upload.property.mjs +4 -2
- package/fesm2015/ng-nest-ui-anchor.mjs +2 -2
- package/fesm2015/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-auto-complete.mjs +0 -1
- package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-date-picker.mjs +1 -4
- package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-highlight.mjs +42 -13
- package/fesm2015/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-list.mjs +1 -3
- package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-slider-select.mjs +1 -3
- package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tabs.mjs +154 -23
- package/fesm2015/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree-select.mjs +0 -1
- package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree.mjs +1 -1
- package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-upload.mjs +22 -13
- package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-anchor.mjs +2 -2
- package/fesm2020/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-auto-complete.mjs +0 -1
- package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-date-picker.mjs +1 -4
- package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-highlight.mjs +40 -13
- package/fesm2020/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-list.mjs +1 -3
- package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-slider-select.mjs +1 -3
- package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tabs.mjs +147 -23
- package/fesm2020/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree-select.mjs +0 -1
- package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree.mjs +1 -1
- package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-upload.mjs +22 -13
- package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
- package/highlight/highlight.component.d.ts +4 -1
- package/highlight/highlight.module.d.ts +2 -1
- package/highlight/highlight.property.d.ts +7 -2
- package/list/list.component.d.ts +1 -1
- package/package.json +1 -1
- package/slider-select/slider-select.component.d.ts +1 -1
- package/tabs/public-api.d.ts +1 -0
- package/tabs/tab-link.directive.d.ts +17 -0
- package/tabs/tab.component.d.ts +4 -1
- package/tabs/tabs.component.d.ts +9 -2
- package/tabs/tabs.module.d.ts +7 -6
- package/tabs/tabs.property.d.ts +11 -1
- package/upload/upload.component.d.ts +1 -1
- package/upload/upload.property.d.ts +13 -1
|
@@ -195,7 +195,7 @@ export class XTreeComponent extends XTreeProperty {
|
|
|
195
195
|
}
|
|
196
196
|
setExpanded() {
|
|
197
197
|
for (let item of this.nodes) {
|
|
198
|
-
if (item.open) {
|
|
198
|
+
if (item.open && item.children) {
|
|
199
199
|
let index = this.nodes.indexOf(item);
|
|
200
200
|
this.nodes.splice(index + 1, 0, ...item.children);
|
|
201
201
|
}
|
|
@@ -449,4 +449,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
449
449
|
type: ViewChildren,
|
|
450
450
|
args: [XTreeNodeComponent]
|
|
451
451
|
}] } });
|
|
452
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBSWpCLHVCQUF1QixFQUN2QixTQUFTLEVBSVQsWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWtCLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JILE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFTM0QsTUFBTSxPQUFPLGNBQWUsU0FBUSxhQUFhO0lBaUIvQyxZQUNTLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLEdBQXNCLEVBQ3RCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQWJ0QyxVQUFLLEdBQWdCLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFnQixFQUFFLENBQUM7UUFFL0IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGFBQVEsR0FBZ0IsRUFBRSxD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QUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFlLEVBQUUsT0FBa0I7UUFDNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBZTtRQUN6QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7OEhBcGJVLGNBQWM7a0hBQWQsY0FBYyw0UUFJWCxrQkFBa0IsNEZDOUJsQyw2eENBc0NBOzJGRFphLGNBQWM7a0JBUDFCLFNBQVM7K0JBQ0UsR0FBRyxXQUFXLEVBQUUsaUJBR1gsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtzTEFHVixJQUFJO3NCQUF4QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1QsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUdiLGVBQWU7c0JBRHpCLFlBQVk7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgVmlld0NoaWxkLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW5cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRyZWVQcmVmaXgsIFhUcmVlTm9kZSwgWFRyZWVQcm9wZXJ0eSB9IGZyb20gJy4vdHJlZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYSXNGdW5jdGlvbiwgWElzVW5kZWZpbmVkLCBYSXNDaGFuZ2UsIFhTZXREYXRhLCBYQ29uZmlnU2VydmljZSwgWFJlc2l6ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBYVHJlZU5vZGVDb21wb25lbnQgfSBmcm9tICcuL3RyZWUtbm9kZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUcmVlUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVHJlZUNvbXBvbmVudCBleHRlbmRzIFhUcmVlUHJvcGVydHkgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBWaWV3Q2hpbGQoJ3RyZWUnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0cmVlITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCd2aXJ0dWFsQm9keScpIHZpcnR1YWxCb2R5ITogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xyXG4gIG5vZGVDb21wb25lbnRzITogUXVlcnlMaXN0PFhUcmVlTm9kZUNvbXBvbmVudD47XHJcbiAgQFZpZXdDaGlsZHJlbihYVHJlZU5vZGVDb21wb25lbnQpXHJcbiAgcHVibGljIHNldCBfbm9kZUNvbXBvbmVudHModmFsdWU6IFF1ZXJ5TGlzdDxYVHJlZU5vZGVDb21wb25lbnQ+KSB7XHJcbiAgICB0aGlzLm5vZGVDb21wb25lbnRzID0gdmFsdWU7XHJcbiAgfVxyXG4gIG5vZGVzOiBYVHJlZU5vZGVbXSA9IFtdO1xyXG4gIHZpcnR1YWxOb2RlczogWFRyZWVOb2RlW10gPSBbXTtcclxuICBhY3RpdmF0ZWROb2RlITogWFRyZWVOb2RlO1xyXG4gIGRhdGFJc0Z1bmMgPSBmYWxzZTtcclxuICBnZXR0aW5nID0gZmFsc2U7XHJcbiAgdHJlZURhdGE6IFhUcmVlTm9kZVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgZXhwYW5kZWRBbGwsIGRhdGEsIGFjdGl2YXRlZElkLCBjaGVja2VkLCBtYW51YWwgfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2UoZGF0YSkgJiYgdGhpcy5zZXREYXRhKCk7XHJcbiAgICBYSXNDaGFuZ2UoYWN0aXZhdGVkSWQpICYmIHRoaXMuc2V0QWN0aXZhdGVkTm9kZSh0aGlzLnRyZWVEYXRhKTtcclxuICAgIFhJc0NoYW5nZShleHBhbmRlZEFsbCkgJiYgdGhpcy5zZXRFeHBhbmRlZEFsbCgpO1xyXG4gICAgWElzQ2hhbmdlKGNoZWNrZWQpICYmIHRoaXMuc2V0Q2hlY2tlZEtleXModGhpcy5jaGVja2VkKTtcclxuICAgIFhJc0NoYW5nZShtYW51YWwpICYmIHRoaXMuc2V0TWFudWFsKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy52aXJ0dWFsU2Nyb2xsICYmIHRoaXMuaGVpZ2h0QWRhcHRpb24pIHtcclxuICAgICAgdGhpcy5zZXRWaXJ0dWFsU2Nyb2xsSGVpZ2h0KCk7XHJcbiAgICAgIFhSZXNpemUodGhpcy5oZWlnaHRBZGFwdGlvbiBhcyBIVE1MRWxlbWVudClcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApLCB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgICB0aGlzLnNldFZpcnR1YWxTY3JvbGxIZWlnaHQoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2NvcmxsVG9wKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBzZXREYXRhKCkge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLmRhdGEgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XHJcbiAgICB0aGlzLmRhdGFJc0Z1bmMgPSBmYWxzZTtcclxuICAgIGlmIChYSXNGdW5jdGlvbih0aGlzLmRhdGEpKSB7XHJcbiAgICAgIHRoaXMuZGF0YUlzRnVuYyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ2V0RGF0YUJ5RnVuYygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgWFNldERhdGE8WFRyZWVOb2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhQ2hhbmdlKHgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmlydHVhbFNjcm9sbEhlaWdodCgpIHtcclxuICAgIHRoaXMudmlydHVhbFNjcm9sbEhlaWdodCA9ICh0aGlzLmhlaWdodEFkYXB0aW9uIGFzIEhUTUxFbGVtZW50KS5jbGllbnRIZWlnaHQ7XHJcbiAgICB0aGlzLm1pbkJ1ZmZlclB4ID0gdGhpcy52aXJ0dWFsU2Nyb2xsSGVpZ2h0O1xyXG4gICAgdGhpcy5tYXhCdWZmZXJQeCA9IHRoaXMudmlydHVhbFNjcm9sbEhlaWdodCAqIDEuMjtcclxuICAgIHRoaXMudmlydHVhbEJvZHlbJ19zY3JvbGxTdHJhdGVneSddWydfbWluQnVmZmVyUHgnXSA9IHRoaXMubWluQnVmZmVyUHg7XHJcbiAgICB0aGlzLnZpcnR1YWxCb2R5Wydfc2Nyb2xsU3RyYXRlZ3knXVsnX21heEJ1ZmZlclB4J10gPSB0aGlzLm1heEJ1ZmZlclB4O1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRNYW51YWwoKSB7XHJcbiAgICBpZiAodGhpcy5kYXRhSXNGdW5jKSB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGF0YUJ5RnVuYygpIHtcclxuICAgIGlmICghdGhpcy5tYW51YWwpIHJldHVybjtcclxuICAgIFhTZXREYXRhPFhUcmVlTm9kZT4oKHRoaXMuZGF0YSBhcyBGdW5jdGlvbikoKSwgdGhpcy5fdW5TdWJqZWN0KS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5zZXREYXRhQ2hhbmdlKHgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERhdGFDaGFuZ2UodmFsdWU6IFhUcmVlTm9kZVtdKSB7XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy5jaGVja2VkKSkgdGhpcy5jaGVja2VkID0gW107XHJcbiAgICBjb25zdCBnZXRDaGlsZHJlbiA9IChub2RlOiBYVHJlZU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcclxuICAgICAgbm9kZS5sZXZlbCA9IGxldmVsO1xyXG4gICAgICBub2RlLm9wZW4gPSBCb29sZWFuKHRoaXMuZXhwYW5kZWRBbGwpIHx8IGxldmVsIDw9IHRoaXMuZXhwYW5kZWRMZXZlbCB8fCB0aGlzLmV4cGFuZGVkLmluZGV4T2Yobm9kZS5pZCkgPj0gMCB8fCBub2RlLm9wZW47XHJcbiAgICAgIG5vZGUuY2hlY2tlZCA9IHRoaXMuY2hlY2tlZC5pbmRleE9mKG5vZGUuaWQpID49IDA7XHJcbiAgICAgIG5vZGUuY2hpbGRyZW5Mb2FkZWQgPSBub2RlLm9wZW47XHJcbiAgICAgIGlmIChYSXNVbmRlZmluZWQobm9kZS5jaGlsZHJlbikpIHtcclxuICAgICAgICBub2RlLmNoaWxkcmVuID0gdmFsdWUuZmlsdGVyKCh5KSA9PiB5LnBpZCA9PT0gbm9kZS5pZCk7XHJcbiAgICAgICAgaWYgKHRoaXMubGV2ZWxDaGVjayAmJiBub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hlY2tlZCkge1xyXG4gICAgICAgICAgZm9yIChsZXQgbmQgb2Ygbm9kZS5jaGlsZHJlbikge1xyXG4gICAgICAgICAgICBuZC5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jaGVja2VkLnB1c2gobmQuaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoWElzVW5kZWZpbmVkKG5vZGUubGVhZikpIG5vZGUubGVhZiA9IChub2RlLmNoaWxkcmVuPy5sZW5ndGggYXMgbnVtYmVyKSA9PT0gMDtcclxuICAgICAgaWYgKCFub2RlLmxlYWYpIG5vZGUuY2hpbGRyZW4/Lm1hcCgoeSkgPT4gZ2V0Q2hpbGRyZW4oeSwgbGV2ZWwgKyAxKSk7XHJcbiAgICAgIHJldHVybiBub2RlO1xyXG4gICAgfTtcclxuICAgIHRoaXMudHJlZURhdGEgPSB2YWx1ZTtcclxuICAgIHRoaXMubm9kZXMgPSB2YWx1ZS5maWx0ZXIoKHgpID0+IFhJc0VtcHR5KHgucGlkKSkubWFwKCh4KSA9PiBnZXRDaGlsZHJlbih4LCAwKSk7XHJcbiAgICBmb3IgKGxldCBpdGVtIG9mIHZhbHVlKSB7XHJcbiAgICAgIGlmIChpdGVtLm9wZW4pIHtcclxuICAgICAgICB0aGlzLnNldFBhcmVudE9wZW4odmFsdWUsIGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldEV4cGFuZGVkKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTY29ybGxUb3AoKSB7XHJcbiAgICBpZiAoIXRoaXMuc2Nyb2xsRWxlbWVudCB8fCAhdGhpcy5hY3RpdmF0ZWROb2RlKSByZXR1cm47XHJcbiAgICBsZXQgaW54ID0gdGhpcy5ub2Rlcy5pbmRleE9mKHRoaXMuYWN0aXZhdGVkTm9kZSk7XHJcbiAgICBsZXQgY29tID0gdGhpcy5ub2RlQ29tcG9uZW50cy5nZXQoaW54KTtcclxuICAgIGlmICghY29tKSByZXR1cm47XHJcbiAgICBsZXQgZWxlID0gY29tLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGxldCBzY3JvbGxFbGUgPSB0aGlzLnNjcm9sbEVsZW1lbnQ7XHJcbiAgICBsZXQgbWluID0gc2Nyb2xsRWxlLnNjcm9sbFRvcDtcclxuICAgIGxldCBtYXggPSBzY3JvbGxFbGUuc2Nyb2xsVG9wICsgc2Nyb2xsRWxlLmNsaWVudEhlaWdodDtcclxuICAgIGlmIChlbGUub2Zmc2V0VG9wICsgZWxlLmNsaWVudEhlaWdodCA+IG1heCkge1xyXG4gICAgICBsZXQgc2Nyb2xsVG9wID0gZWxlLm9mZnNldFRvcCArIGVsZS5jbGllbnRIZWlnaHQgLSBzY3JvbGxFbGUuY2xpZW50SGVpZ2h0O1xyXG4gICAgICBzY3JvbGxFbGUuc2Nyb2xsVG9wID0gc2Nyb2xsVG9wO1xyXG4gICAgfVxyXG4gICAgaWYgKGVsZS5vZmZzZXRUb3AgPCBtaW4pIHtcclxuICAgICAgc2Nyb2xsRWxlLnNjcm9sbFRvcCA9IGVsZS5vZmZzZXRUb3A7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDaGVja2VkTm9kZXMoKTogWFRyZWVOb2RlW10ge1xyXG4gICAgbGV0IHJlc3VsdDogWFRyZWVOb2RlW10gPSBbXTtcclxuICAgIGNvbnN0IGdldENoaWxkcmVuID0gKG5vZGVzOiBYVHJlZU5vZGVbXSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICBpZiAoeC5jaGVja2VkICYmICFyZXN1bHQuaW5jbHVkZXMoeCkpIHtcclxuICAgICAgICAgIHJlc3VsdCA9IFsuLi5yZXN1bHQsIHhdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBnZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgZ2V0Q2hpbGRyZW4odGhpcy5ub2Rlcyk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tlZEtleXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja2VkTm9kZXMoKS5tYXAoKHgpID0+IHguaWQpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2hlY2tlZEtleXMoa2V5czogYW55W10gPSBbXSkge1xyXG4gICAgY29uc3Qgc2V0Q2hpbGRyZW4gPSAobm9kZXM6IFhUcmVlTm9kZVtdLCBjbGVhciA9IGZhbHNlKSA9PiB7XHJcbiAgICAgIGlmIChYSXNFbXB0eShub2RlcykpIHJldHVybjtcclxuICAgICAgbm9kZXMuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICAgIHguY2hlY2tlZCA9ICFjbGVhciAmJiBrZXlzLmluY2x1ZGVzKHguaWQpO1xyXG4gICAgICAgIHguY2hhbmdlICYmIHguY2hhbmdlKHRydWUpO1xyXG4gICAgICAgIHNldENoaWxkcmVuKHguY2hpbGRyZW4gYXMgWFRyZWVOb2RlW10sIGNsZWFyKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgc2V0Q2hpbGRyZW4odGhpcy5ub2RlcywgWElzRW1wdHkoa2V5cykpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0RXhwYW5kZWRBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5leHBhbmRlZEFsbCAmJiB0aGlzLnRyZWVEYXRhLmxlbmd0aCA9PT0gdGhpcy5ub2Rlcy5sZW5ndGgpIHJldHVybjtcclxuICAgIGNvbnN0IHNldENoaWxkcmVuID0gKG5vZGVzOiBYVHJlZU5vZGVbXSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICB4Lm9wZW4gPSBCb29sZWFuKHRoaXMuZXhwYW5kZWRBbGwpO1xyXG4gICAgICAgIHguY2hhbmdlICYmIHguY2hhbmdlKCk7XHJcbiAgICAgICAgc2V0Q2hpbGRyZW4oeC5jaGlsZHJlbiBhcyBYVHJlZU5vZGVbXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHNldENoaWxkcmVuKHRoaXMubm9kZXMpO1xyXG5cclxuICAgIGlmICh0aGlzLmV4cGFuZGVkQWxsID09PSBmYWxzZSkge1xyXG4gICAgICB0aGlzLm5vZGVzID0gdGhpcy50cmVlRGF0YS5maWx0ZXIoKHgpID0+IFhJc0VtcHR5KHgucGlkKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy52aXJ0dWFsTm9kZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy52aXJ0dWFsTm9kZXMgPSBbLi4udGhpcy5ub2Rlc107XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5ub2RlcyA9IFsuLi50aGlzLnZpcnR1YWxOb2Rlc107XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy52aXJ0dWFsTm9kZXMpIHtcclxuICAgICAgICB0aGlzLnNldFZpcnR1YWxFeHBhbmRlZEFsbChpdGVtLCB0aGlzLmV4cGFuZGVkQWxsIGFzIGJvb2xlYW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRFeHBhbmRlZCgpIHtcclxuICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5ub2Rlcykge1xyXG4gICAgICBpZiAoaXRlbS5vcGVuKSB7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5ub2Rlcy5pbmRleE9mKGl0ZW0pO1xyXG4gICAgICAgIHRoaXMubm9kZXMuc3BsaWNlKGluZGV4ICsgMSwgMCwgLi4uKGl0ZW0uY2hpbGRyZW4gYXMgWFRyZWVOb2RlW10pKTtcclxuICAgICAgfVxyXG4gICAgICBpdGVtLmNoYW5nZSAmJiBpdGVtLmNoYW5nZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ub2RlcyA9IFsuLi50aGlzLm5vZGVzXTtcclxuICB9XHJcblxyXG4gIHNldFZpcnR1YWxFeHBhbmRlZEFsbChpdGVtOiBYVHJlZU5vZGUsIGV4cGFuZGVkQWxsOiBib29sZWFuKSB7XHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLm5vZGVzLmluZGV4T2YoaXRlbSk7XHJcbiAgICBpZiAoZXhwYW5kZWRBbGwpIHtcclxuICAgICAgbGV0IGFkZE5vZGVzOiBYVHJlZU5vZGVbXSA9IFtdO1xyXG4gICAgICBjb25zdCBnZXROb2RlcyA9IChuZDogWFRyZWVOb2RlKSA9PiB7XHJcbiAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgbmQuY2hpbGRyZW4hKSB7XHJcbiAgICAgICAgICBhZGROb2Rlcy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgIGdldE5vZGVzKGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIGdldE5vZGVzKGl0ZW0pO1xyXG4gICAgICB0aGlzLm5vZGVzLnNwbGljZShpbmRleCArIDEsIDAsIC4uLmFkZE5vZGVzKTtcclxuICAgIH1cclxuICAgIHRoaXMubm9kZXMgPSBbLi4udGhpcy5ub2Rlc107XHJcbiAgfVxyXG5cclxuICB2aXJ0dWFsVG9nZ2xlKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgbGV0IGluZGV4ID0gdGhpcy5ub2Rlcy5pbmRleE9mKG5vZGUpO1xyXG4gICAgaWYgKG5vZGUub3Blbikge1xyXG4gICAgICBsZXQgYWRkTm9kZXM6IFhUcmVlTm9kZVtdID0gW107XHJcbiAgICAgIGNvbnN0IGdldE5vZGVzID0gKG5kOiBYVHJlZU5vZGUpID0+IHtcclxuICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiBuZC5jaGlsZHJlbiEpIHtcclxuICAgICAgICAgIGFkZE5vZGVzLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgY2hpbGQub3BlbiAmJiBnZXROb2RlcyhjaGlsZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgICBnZXROb2Rlcyhub2RlKTtcclxuICAgICAgdGhpcy5ub2Rlcy5zcGxpY2UoaW5kZXggKyAxLCAwLCAuLi5hZGROb2Rlcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgZGVsQ291bnQgPSAwO1xyXG4gICAgICBjb25zdCBnZXRDb3VudCA9IChuZDogWFRyZWVOb2RlKSA9PiB7XHJcbiAgICAgICAgZGVsQ291bnQgKz0gbmQuY2hpbGRyZW4hLmxlbmd0aDtcclxuICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiBuZC5jaGlsZHJlbiEpIHtcclxuICAgICAgICAgIGNoaWxkLm9wZW4gJiYgZ2V0Q291bnQoY2hpbGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgZ2V0Q291bnQobm9kZSk7XHJcbiAgICAgIHRoaXMubm9kZXMuc3BsaWNlKGluZGV4ICsgMSwgZGVsQ291bnQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ub2RlcyA9IFsuLi50aGlzLm5vZGVzXTtcclxuICB9XHJcblxyXG4gIHNldEFjdGl2YXRlZE5vZGUobm9kZXM6IFhUcmVlTm9kZVtdKSB7XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy5hY3RpdmF0ZWRJZCkgJiYgdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLmFjdGl2YXRlZElkID0gW107XHJcbiAgICB9XHJcbiAgICBsZXQgYmVmb3JlID0gdGhpcy5hY3RpdmF0ZWROb2RlO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgaWYgKHRoaXMuYWN0aXZhdGVkSWQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGxldCBpZHMgPSB0aGlzLm9iamVjdEFycmF5ID8gdGhpcy5hY3RpdmF0ZWRJZC5tYXAoKHg6IFhUcmVlTm9kZSkgPT4geC5pZCkgOiB0aGlzLmFjdGl2YXRlZElkO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBsZXQgbm9kZSA9IG5vZGVzLmZpbmQoKHgpID0+IHguaWQgPT09IGlkc1tpXSkgYXMgWFRyZWVOb2RlO1xyXG4gICAgICAgICAgaWYgKG5vZGUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRQYXJlbnRPcGVuKG5vZGVzLCBub2RlKTtcclxuICAgICAgICAgICAgaWYgKGkgPT09IGlkcy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZWROb2RlID0gbm9kZTtcclxuICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlZENoYW5nZS5lbWl0KHRoaXMuYWN0aXZhdGVkTm9kZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBhY3RpdmF0ZWRJZCA9IHRoaXMuYWN0aXZhdGVkSWQ7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVkTm9kZSA9IG5vZGVzLmZpbmQoKHgpID0+IHguaWQgPT0gYWN0aXZhdGVkSWQpIGFzIFhUcmVlTm9kZTtcclxuICAgICAgaWYgKHRoaXMuYWN0aXZhdGVkTm9kZSkge1xyXG4gICAgICAgIHRoaXMuc2V0UGFyZW50T3Blbihub2RlcywgdGhpcy5hY3RpdmF0ZWROb2RlKTtcclxuICAgICAgICB0aGlzLmFjdGl2YXRlZENoYW5nZS5lbWl0KHRoaXMuYWN0aXZhdGVkTm9kZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChiZWZvcmUpIHtcclxuICAgICAgYmVmb3JlLmNoYW5nZSAmJiBiZWZvcmUuY2hhbmdlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFYSXNFbXB0eShub2RlcykpIHtcclxuICAgICAgdGhpcy5zZXREYXRhQ2hhbmdlKG5vZGVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBhcmVudE9wZW4obm9kZXM6IFhUcmVlTm9kZVtdLCBub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIGNvbnN0IGdldFBhcmVudCA9IChjaGlsZDogWFRyZWVOb2RlKSA9PiB7XHJcbiAgICAgIGlmIChYSXNFbXB0eShjaGlsZC5waWQpKSByZXR1cm47XHJcbiAgICAgIGNvbnN0IHBhcmVudCA9IG5vZGVzLmZpbmQoKHgpID0+IHguaWQgPT09IGNoaWxkLnBpZCkgYXMgWFRyZWVOb2RlO1xyXG4gICAgICBpZiAoIVhJc0VtcHR5KHBhcmVudCkpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZXhwYW5kZWQuaW5jbHVkZXMocGFyZW50LmlkKSkge1xyXG4gICAgICAgICAgdGhpcy5leHBhbmRlZCA9IFsuLi50aGlzLmV4cGFuZGVkLCBwYXJlbnQuaWRdO1xyXG4gICAgICAgICAgcGFyZW50Lm9wZW4gPSB0cnVlO1xyXG4gICAgICAgICAgcGFyZW50LmNoYW5nZSAmJiBwYXJlbnQuY2hhbmdlKCk7XHJcbiAgICAgICAgICBnZXRQYXJlbnQocGFyZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBnZXRQYXJlbnQobm9kZSk7XHJcbiAgfVxyXG5cclxuICBzZXRQYXJlbnRDaGVjayhub2RlczogWFRyZWVOb2RlW10sIG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgY29uc3QgZ2V0UGFyZW50ID0gKGNoaWxkOiBYVHJlZU5vZGUpID0+IHtcclxuICAgICAgaWYgKFhJc0VtcHR5KGNoaWxkLnBpZCkpIHJldHVybjtcclxuICAgICAgY29uc3QgcGFyZW50ID0gbm9kZXMuZmluZCgoeCkgPT4geC5pZCA9PT0gY2hpbGQucGlkKSBhcyBYVHJlZU5vZGU7XHJcbiAgICAgIGlmICghWElzRW1wdHkocGFyZW50KSkge1xyXG4gICAgICAgIGlmICghdGhpcy5leHBhbmRlZC5pbmNsdWRlcyhwYXJlbnQuaWQpKSB7XHJcbiAgICAgICAgICB0aGlzLmV4cGFuZGVkID0gWy4uLnRoaXMuZXhwYW5kZWQsIHBhcmVudC5pZF07XHJcbiAgICAgICAgICBwYXJlbnQub3BlbiA9IHRydWU7XHJcbiAgICAgICAgICBwYXJlbnQuY2hhbmdlICYmIHBhcmVudC5jaGFuZ2UoKTtcclxuICAgICAgICAgIGdldFBhcmVudChwYXJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGdldFBhcmVudChub2RlKTtcclxuICB9XHJcblxyXG4gIG9uVG9nZ2xlKGV2ZW50OiBFdmVudCwgbm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBub2RlLm9wZW4gPSAhbm9kZS5vcGVuO1xyXG4gICAgaWYgKHRoaXMubGF6eSAmJiAhbm9kZS5jaGlsZHJlbkxvYWRlZCkge1xyXG4gICAgICB0aGlzLmdldExhenlEYXRhKG5vZGUsICgpID0+IHRoaXMudmlydHVhbFRvZ2dsZShub2RlKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZpcnR1YWxUb2dnbGUobm9kZSk7XHJcbiAgICB9XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRMYXp5RGF0YShub2RlOiBYVHJlZU5vZGUsIGNhbGxCYWNrPzogKCkgPT4gdm9pZCkge1xyXG4gICAgbm9kZS5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIG5vZGUuY2hhbmdlICYmIG5vZGUuY2hhbmdlKCk7XHJcbiAgICAodGhpcy5kYXRhIGFzIChwaWQ/OiBhbnkpID0+IE9ic2VydmFibGU8WFRyZWVOb2RlW10+KShub2RlLmlkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+XHJcbiAgICAgICAgICB4Lm1hcCgoeSkgPT4ge1xyXG4gICAgICAgICAgICB5LmxldmVsID0gKG5vZGUubGV2ZWwgYXMgbnVtYmVyKSArIDE7XHJcbiAgICAgICAgICAgIHkuY2hlY2tlZCA9IG5vZGUuY2hlY2tlZDtcclxuICAgICAgICAgICAgcmV0dXJuIHk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgbm9kZS5jaGlsZHJlbiA9IHg7XHJcbiAgICAgICAgbm9kZS5jaGlsZHJlbkxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgbm9kZS5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKGNhbGxCYWNrKSBjYWxsQmFjaygpO1xyXG4gICAgICAgIG5vZGUuY2hhbmdlICYmIG5vZGUuY2hhbmdlKCk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGFkZE5vZGUobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBsZXQgcGFyZW50ID0gdGhpcy50cmVlRGF0YS5maW5kKCh4KSA9PiB4LmlkID09PSBub2RlLnBpZCk7XHJcbiAgICBjb25zdCBfYWRkTm9kZSA9ICgpID0+IHtcclxuICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgIGlmICghcGFyZW50LmNoaWxkcmVuKSBwYXJlbnQuY2hpbGRyZW4gPSBbXTtcclxuICAgICAgICB0aGlzLmV4cGFuZGVkID0gWy4uLnRoaXMuZXhwYW5kZWQsIHBhcmVudC5pZF07XHJcbiAgICAgICAgdGhpcy5zZXRBY3RpdmF0ZWRJZChub2RlKTtcclxuICAgICAgICBub2RlLmxldmVsID0gTnVtYmVyKHBhcmVudC5sZXZlbCkgKyAxO1xyXG4gICAgICAgIG5vZGUucGlkID0gcGFyZW50LmlkO1xyXG4gICAgICAgIHRoaXMudHJlZURhdGEucHVzaChub2RlKTtcclxuICAgICAgICB0aGlzLnNldEFjdGl2YXRlZE5vZGUodGhpcy50cmVlRGF0YSk7XHJcbiAgICAgICAgcGFyZW50Lm9wZW4gPSB0cnVlO1xyXG4gICAgICAgIHBhcmVudC5sZWFmID0gZmFsc2U7XHJcbiAgICAgICAgcGFyZW50LmNoaWxkcmVuID0gWy4uLnBhcmVudC5jaGlsZHJlbiwgbm9kZV07XHJcbiAgICAgICAgdGhpcy52aXJ0dWFsVG9nZ2xlKHBhcmVudCk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIHBhcmVudC5jaGFuZ2UgJiYgcGFyZW50LmNoYW5nZSgpO1xyXG4gICAgICB9IGVsc2UgaWYgKFhJc0VtcHR5KG5vZGUucGlkKSkge1xyXG4gICAgICAgIHRoaXMuc2V0QWN0aXZhdGVkSWQobm9kZSk7XHJcbiAgICAgICAgbm9kZS5sZXZlbCA9IDA7XHJcbiAgICAgICAgdGhpcy50cmVlRGF0YSA9IFsuLi50aGlzLnRyZWVEYXRhLCBub2RlXTtcclxuICAgICAgICB0aGlzLm5vZGVzID0gWy4uLnRoaXMubm9kZXMsIG5vZGVdO1xyXG4gICAgICAgIHRoaXMuc2V0QWN0aXZhdGVkTm9kZSh0aGlzLnRyZWVEYXRhKTtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5sYXp5ICYmIHBhcmVudCAmJiAhcGFyZW50LmNoaWxkcmVuTG9hZGVkKSB7XHJcbiAgICAgIHRoaXMuZ2V0TGF6eURhdGEocGFyZW50LCAoKSA9PiB7XHJcbiAgICAgICAgX2FkZE5vZGUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBfYWRkTm9kZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZhdGVkSWQobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICBpZiAodGhpcy5vYmplY3RBcnJheSkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZhdGVkSWQgPSBbbm9kZV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRJZCA9IFtub2RlLmlkXTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hY3RpdmF0ZWRJZCA9IG5vZGUuaWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGl2YXRlZElkQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmF0ZWRJZCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVOb2RlKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgbGV0IHBhcmVudCA9IHRoaXMudHJlZURhdGEuZmluZCgoeCkgPT4geC5pZCA9PT0gbm9kZS5waWQpO1xyXG4gICAgaWYgKHBhcmVudCkge1xyXG4gICAgICBpZiAoIXBhcmVudC5jaGlsZHJlbikgcGFyZW50LmNoaWxkcmVuID0gW107XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5zcGxpY2UocGFyZW50LmNoaWxkcmVuLmluZGV4T2Yobm9kZSksIDEpO1xyXG4gICAgICBwYXJlbnQubGVhZiA9IHBhcmVudC5jaGlsZHJlbi5sZW5ndGggPT09IDA7XHJcbiAgICAgIGlmIChwYXJlbnQubGVhZikge1xyXG4gICAgICAgIHRoaXMuc2V0QWN0aXZhdGVkSWQocGFyZW50KTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgaW5kZXggPSB0aGlzLm5vZGVzLmluZGV4T2Yobm9kZSk7XHJcbiAgICAgIGxldCBhaW5kZXggPSBpbmRleCAtIDE7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMCAmJiB0aGlzLm5vZGVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBhaW5kZXggPSAxO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBhY3RpdmF0ZWROb2RlID0gdGhpcy5ub2Rlc1thaW5kZXhdO1xyXG4gICAgICB0aGlzLnNldEFjdGl2YXRlZElkKGFjdGl2YXRlZE5vZGUpO1xyXG4gICAgICB0aGlzLnNldEFjdGl2YXRlZE5vZGUodGhpcy5ub2Rlcyk7XHJcbiAgICAgIHRoaXMubm9kZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5ub2RlcyA9IFsuLi50aGlzLm5vZGVzXTtcclxuICAgICAgaWYgKGFjdGl2YXRlZE5vZGUpIHtcclxuICAgICAgICBhY3RpdmF0ZWROb2RlLmNoYW5nZSAmJiBhY3RpdmF0ZWROb2RlLmNoYW5nZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgcGFyZW50LmNoYW5nZSAmJiBwYXJlbnQuY2hhbmdlKCk7XHJcbiAgICB9IGVsc2UgaWYgKFhJc0VtcHR5KG5vZGUucGlkKSkge1xyXG4gICAgICB0aGlzLnRyZWVEYXRhLnNwbGljZSh0aGlzLnRyZWVEYXRhLmluZGV4T2Yobm9kZSksIDEpO1xyXG4gICAgICB0aGlzLm5vZGVzLnNwbGljZSh0aGlzLm5vZGVzLmluZGV4T2Yobm9kZSksIDEpO1xyXG4gICAgICB0aGlzLm5vZGVzID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVOb2RlKG5vZGU6IFhUcmVlTm9kZSwgbm93Tm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKG5vZGUsIG5vd05vZGUpO1xyXG4gICAgbm9kZS5jaGFuZ2UgJiYgbm9kZS5jaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYVHJlZU5vZGUpIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICN0cmVlIGNsYXNzPVwieC10cmVlXCIgW2NsYXNzLngtdHJlZS1vbmx5LWxlYWZdPVwib25seUxlYWZcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXZpcnR1YWxTY3JvbGw7IGVsc2UgdmlydHVhbFNjcm9sbFRwbFwiPlxyXG4gICAgPHgtdHJlZS1ub2RlXHJcbiAgICAgICpuZ0Zvcj1cImxldCBub2RlIG9mIG5vZGVzOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiXHJcbiAgICAgIFtub2RlXT1cIm5vZGVcIlxyXG4gICAgICBbbGF6eV09XCJsYXp5XCJcclxuICAgICAgW2xhenlEYXRhXT1cImRhdGFcIlxyXG4gICAgICBbbm9kZUhlaWdodF09XCJub2RlSGVpZ2h0XCJcclxuICAgICAgW25vZGVOb3dyYXBdPVwibm9kZU5vd3JhcFwiXHJcbiAgICAgIFtub2RlQWxpZ25JdGVtc109XCJub2RlQWxpZ25JdGVtc1wiXHJcbiAgICAgIFt0cmVlXT1cInRoaXNcIlxyXG4gICAgPjwveC10cmVlLW5vZGU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICN2aXJ0dWFsU2Nyb2xsVHBsPlxyXG4gIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnRcclxuICAgICN2aXJ0dWFsQm9keVxyXG4gICAgW2l0ZW1TaXplXT1cIml0ZW1TaXplXCJcclxuICAgIFttaW5CdWZmZXJQeF09XCJtaW5CdWZmZXJQeFwiXHJcbiAgICBbbWF4QnVmZmVyUHhdPVwibWF4QnVmZmVyUHhcIlxyXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJ2aXJ0dWFsU2Nyb2xsSGVpZ2h0XCJcclxuICA+XHJcbiAgICA8eC10cmVlLW5vZGVcclxuICAgICAgKmNka1ZpcnR1YWxGb3I9XCJsZXQgbm9kZSBvZiBub2RlczsgdGVtcGxhdGVDYWNoZVNpemU6IDA7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCJcclxuICAgICAgW25vZGVdPVwibm9kZVwiXHJcbiAgICAgIFtsYXp5XT1cImxhenlcIlxyXG4gICAgICBbbGF6eURhdGFdPVwiZGF0YVwiXHJcbiAgICAgIFtub2RlSGVpZ2h0XT1cIm5vZGVIZWlnaHRcIlxyXG4gICAgICBbbm9kZU5vd3JhcF09XCJub2RlTm93cmFwXCJcclxuICAgICAgW25vZGVBbGlnbkl0ZW1zXT1cIm5vZGVBbGlnbkl0ZW1zXCJcclxuICAgICAgW3RyZWVdPVwidGhpc1wiXHJcbiAgICA+PC94LXRyZWUtbm9kZT5cclxuICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwhLS0g5o+Q5YmN5Yqg6L29bG9hZGluZ+eahOWbvuaghy0tPlxyXG48eC1pY29uICpuZ0lmPVwibGF6eVwiIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiIHR5cGU9XCJmdG8tbG9hZGVyXCI+PC94LWljb24+XHJcbiJdfQ==
|
|
452
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBSWpCLHVCQUF1QixFQUN2QixTQUFTLEVBSVQsWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWtCLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JILE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFTM0QsTUFBTSxPQUFPLGNBQWUsU0FBUSxhQUFhO0lBaUIvQyxZQUNTLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLEdBQXNCLEVBQ3RCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQWJ0QyxVQUFLLEdBQWdCLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFnQixFQUFFLENBQUM7UUFFL0IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGFBQVEsR0FBZ0IsRUFBRSxD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Q0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFlLEVBQUUsT0FBa0I7UUFDNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBZTtRQUN6QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7OEhBcGJVLGNBQWM7a0hBQWQsY0FBYyw0UUFJWCxrQkFBa0IsNEZDOUJsQyw2eENBc0NBOzJGRFphLGNBQWM7a0JBUDFCLFNBQVM7K0JBQ0UsR0FBRyxXQUFXLEVBQUUsaUJBR1gsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtzTEFHVixJQUFJO3NCQUF4QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1QsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUdiLGVBQWU7c0JBRHpCLFlBQVk7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgVmlld0NoaWxkLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW5cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRyZWVQcmVmaXgsIFhUcmVlTm9kZSwgWFRyZWVQcm9wZXJ0eSB9IGZyb20gJy4vdHJlZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYSXNGdW5jdGlvbiwgWElzVW5kZWZpbmVkLCBYSXNDaGFuZ2UsIFhTZXREYXRhLCBYQ29uZmlnU2VydmljZSwgWFJlc2l6ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBYVHJlZU5vZGVDb21wb25lbnQgfSBmcm9tICcuL3RyZWUtbm9kZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUcmVlUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVHJlZUNvbXBvbmVudCBleHRlbmRzIFhUcmVlUHJvcGVydHkgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBWaWV3Q2hpbGQoJ3RyZWUnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0cmVlITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCd2aXJ0dWFsQm9keScpIHZpcnR1YWxCb2R5ITogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xyXG4gIG5vZGVDb21wb25lbnRzITogUXVlcnlMaXN0PFhUcmVlTm9kZUNvbXBvbmVudD47XHJcbiAgQFZpZXdDaGlsZHJlbihYVHJlZU5vZGVDb21wb25lbnQpXHJcbiAgcHVibGljIHNldCBfbm9kZUNvbXBvbmVudHModmFsdWU6IFF1ZXJ5TGlzdDxYVHJlZU5vZGVDb21wb25lbnQ+KSB7XHJcbiAgICB0aGlzLm5vZGVDb21wb25lbnRzID0gdmFsdWU7XHJcbiAgfVxyXG4gIG5vZGVzOiBYVHJlZU5vZGVbXSA9IFtdO1xyXG4gIHZpcnR1YWxOb2RlczogWFRyZWVOb2RlW10gPSBbXTtcclxuICBhY3RpdmF0ZWROb2RlITogWFRyZWVOb2RlO1xyXG4gIGRhdGFJc0Z1bmMgPSBmYWxzZTtcclxuICBnZXR0aW5nID0gZmFsc2U7XHJcbiAgdHJlZURhdGE6IFhUcmVlTm9kZVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgZXhwYW5kZWRBbGwsIGRhdGEsIGFjdGl2YXRlZElkLCBjaGVja2VkLCBtYW51YWwgfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2UoZGF0YSkgJiYgdGhpcy5zZXREYXRhKCk7XHJcbiAgICBYSXNDaGFuZ2UoYWN0aXZhdGVkSWQpICYmIHRoaXMuc2V0QWN0aXZhdGVkTm9kZSh0aGlzLnRyZWVEYXRhKTtcclxuICAgIFhJc0NoYW5nZShleHBhbmRlZEFsbCkgJiYgdGhpcy5zZXRFeHBhbmRlZEFsbCgpO1xyXG4gICAgWElzQ2hhbmdlKGNoZWNrZWQpICYmIHRoaXMuc2V0Q2hlY2tlZEtleXModGhpcy5jaGVja2VkKTtcclxuICAgIFhJc0NoYW5nZShtYW51YWwpICYmIHRoaXMuc2V0TWFudWFsKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy52aXJ0dWFsU2Nyb2xsICYmIHRoaXMuaGVpZ2h0QWRhcHRpb24pIHtcclxuICAgICAgdGhpcy5zZXRWaXJ0dWFsU2Nyb2xsSGVpZ2h0KCk7XHJcbiAgICAgIFhSZXNpemUodGhpcy5oZWlnaHRBZGFwdGlvbiBhcyBIVE1MRWxlbWVudClcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApLCB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgICB0aGlzLnNldFZpcnR1YWxTY3JvbGxIZWlnaHQoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2NvcmxsVG9wKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBzZXREYXRhKCkge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLmRhdGEgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XHJcbiAgICB0aGlzLmRhdGFJc0Z1bmMgPSBmYWxzZTtcclxuICAgIGlmIChYSXNGdW5jdGlvbih0aGlzLmRhdGEpKSB7XHJcbiAgICAgIHRoaXMuZGF0YUlzRnVuYyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ2V0RGF0YUJ5RnVuYygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgWFNldERhdGE8WFRyZWVOb2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhQ2hhbmdlKHgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmlydHVhbFNjcm9sbEhlaWdodCgpIHtcclxuICAgIHRoaXMudmlydHVhbFNjcm9sbEhlaWdodCA9ICh0aGlzLmhlaWdodEFkYXB0aW9uIGFzIEhUTUxFbGVtZW50KS5jbGllbnRIZWlnaHQ7XHJcbiAgICB0aGlzLm1pbkJ1ZmZlclB4ID0gdGhpcy52aXJ0dWFsU2Nyb2xsSGVpZ2h0O1xyXG4gICAgdGhpcy5tYXhCdWZmZXJQeCA9IHRoaXMudmlydHVhbFNjcm9sbEhlaWdodCAqIDEuMjtcclxuICAgIHRoaXMudmlydHVhbEJvZHlbJ19zY3JvbGxTdHJhdGVneSddWydfbWluQnVmZmVyUHgnXSA9IHRoaXMubWluQnVmZmVyUHg7XHJcbiAgICB0aGlzLnZpcnR1YWxCb2R5Wydfc2Nyb2xsU3RyYXRlZ3knXVsnX21heEJ1ZmZlclB4J10gPSB0aGlzLm1heEJ1ZmZlclB4O1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRNYW51YWwoKSB7XHJcbiAgICBpZiAodGhpcy5kYXRhSXNGdW5jKSB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGF0YUJ5RnVuYygpIHtcclxuICAgIGlmICghdGhpcy5tYW51YWwpIHJldHVybjtcclxuICAgIFhTZXREYXRhPFhUcmVlTm9kZT4oKHRoaXMuZGF0YSBhcyBGdW5jdGlvbikoKSwgdGhpcy5fdW5TdWJqZWN0KS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5zZXREYXRhQ2hhbmdlKHgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERhdGFDaGFuZ2UodmFsdWU6IFhUcmVlTm9kZVtdKSB7XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy5jaGVja2VkKSkgdGhpcy5jaGVja2VkID0gW107XHJcbiAgICBjb25zdCBnZXRDaGlsZHJlbiA9IChub2RlOiBYVHJlZU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcclxuICAgICAgbm9kZS5sZXZlbCA9IGxldmVsO1xyXG4gICAgICBub2RlLm9wZW4gPSBCb29sZWFuKHRoaXMuZXhwYW5kZWRBbGwpIHx8IGxldmVsIDw9IHRoaXMuZXhwYW5kZWRMZXZlbCB8fCB0aGlzLmV4cGFuZGVkLmluZGV4T2Yobm9kZS5pZCkgPj0gMCB8fCBub2RlLm9wZW47XHJcbiAgICAgIG5vZGUuY2hlY2tlZCA9IHRoaXMuY2hlY2tlZC5pbmRleE9mKG5vZGUuaWQpID49IDA7XHJcbiAgICAgIG5vZGUuY2hpbGRyZW5Mb2FkZWQgPSBub2RlLm9wZW47XHJcbiAgICAgIGlmIChYSXNVbmRlZmluZWQobm9kZS5jaGlsZHJlbikpIHtcclxuICAgICAgICBub2RlLmNoaWxkcmVuID0gdmFsdWUuZmlsdGVyKCh5KSA9PiB5LnBpZCA9PT0gbm9kZS5pZCk7XHJcbiAgICAgICAgaWYgKHRoaXMubGV2ZWxDaGVjayAmJiBub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hlY2tlZCkge1xyXG4gICAgICAgICAgZm9yIChsZXQgbmQgb2Ygbm9kZS5jaGlsZHJlbikge1xyXG4gICAgICAgICAgICBuZC5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jaGVja2VkLnB1c2gobmQuaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoWElzVW5kZWZpbmVkKG5vZGUubGVhZikpIG5vZGUubGVhZiA9IChub2RlLmNoaWxkcmVuPy5sZW5ndGggYXMgbnVtYmVyKSA9PT0gMDtcclxuICAgICAgaWYgKCFub2RlLmxlYWYpIG5vZGUuY2hpbGRyZW4/Lm1hcCgoeSkgPT4gZ2V0Q2hpbGRyZW4oeSwgbGV2ZWwgKyAxKSk7XHJcbiAgICAgIHJldHVybiBub2RlO1xyXG4gICAgfTtcclxuICAgIHRoaXMudHJlZURhdGEgPSB2YWx1ZTtcclxuICAgIHRoaXMubm9kZXMgPSB2YWx1ZS5maWx0ZXIoKHgpID0+IFhJc0VtcHR5KHgucGlkKSkubWFwKCh4KSA9PiBnZXRDaGlsZHJlbih4LCAwKSk7XHJcbiAgICBmb3IgKGxldCBpdGVtIG9mIHZhbHVlKSB7XHJcbiAgICAgIGlmIChpdGVtLm9wZW4pIHtcclxuICAgICAgICB0aGlzLnNldFBhcmVudE9wZW4odmFsdWUsIGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldEV4cGFuZGVkKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTY29ybGxUb3AoKSB7XHJcbiAgICBpZiAoIXRoaXMuc2Nyb2xsRWxlbWVudCB8fCAhdGhpcy5hY3RpdmF0ZWROb2RlKSByZXR1cm47XHJcbiAgICBsZXQgaW54ID0gdGhpcy5ub2Rlcy5pbmRleE9mKHRoaXMuYWN0aXZhdGVkTm9kZSk7XHJcbiAgICBsZXQgY29tID0gdGhpcy5ub2RlQ29tcG9uZW50cy5nZXQoaW54KTtcclxuICAgIGlmICghY29tKSByZXR1cm47XHJcbiAgICBsZXQgZWxlID0gY29tLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGxldCBzY3JvbGxFbGUgPSB0aGlzLnNjcm9sbEVsZW1lbnQ7XHJcbiAgICBsZXQgbWluID0gc2Nyb2xsRWxlLnNjcm9sbFRvcDtcclxuICAgIGxldCBtYXggPSBzY3JvbGxFbGUuc2Nyb2xsVG9wICsgc2Nyb2xsRWxlLmNsaWVudEhlaWdodDtcclxuICAgIGlmIChlbGUub2Zmc2V0VG9wICsgZWxlLmNsaWVudEhlaWdodCA+IG1heCkge1xyXG4gICAgICBsZXQgc2Nyb2xsVG9wID0gZWxlLm9mZnNldFRvcCArIGVsZS5jbGllbnRIZWlnaHQgLSBzY3JvbGxFbGUuY2xpZW50SGVpZ2h0O1xyXG4gICAgICBzY3JvbGxFbGUuc2Nyb2xsVG9wID0gc2Nyb2xsVG9wO1xyXG4gICAgfVxyXG4gICAgaWYgKGVsZS5vZmZzZXRUb3AgPCBtaW4pIHtcclxuICAgICAgc2Nyb2xsRWxlLnNjcm9sbFRvcCA9IGVsZS5vZmZzZXRUb3A7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDaGVja2VkTm9kZXMoKTogWFRyZWVOb2RlW10ge1xyXG4gICAgbGV0IHJlc3VsdDogWFRyZWVOb2RlW10gPSBbXTtcclxuICAgIGNvbnN0IGdldENoaWxkcmVuID0gKG5vZGVzOiBYVHJlZU5vZGVbXSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICBpZiAoeC5jaGVja2VkICYmICFyZXN1bHQuaW5jbHVkZXMoeCkpIHtcclxuICAgICAgICAgIHJlc3VsdCA9IFsuLi5yZXN1bHQsIHhdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBnZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgZ2V0Q2hpbGRyZW4odGhpcy5ub2Rlcyk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tlZEtleXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja2VkTm9kZXMoKS5tYXAoKHgpID0+IHguaWQpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2hlY2tlZEtleXMoa2V5czogYW55W10gPSBbXSkge1xyXG4gICAgY29uc3Qgc2V0Q2hpbGRyZW4gPSAobm9kZXM6IFhUcmVlTm9kZVtdLCBjbGVhciA9IGZhbHNlKSA9PiB7XHJcbiAgICAgIGlmIChYSXNFbXB0eShub2RlcykpIHJldHVybjtcclxuICAgICAgbm9kZXMuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICAgIHguY2hlY2tlZCA9ICFjbGVhciAmJiBrZXlzLmluY2x1ZGVzKHguaWQpO1xyXG4gICAgICAgIHguY2hhbmdlICYmIHguY2hhbmdlKHRydWUpO1xyXG4gICAgICAgIHNldENoaWxkcmVuKHguY2hpbGRyZW4gYXMgWFRyZWVOb2RlW10sIGNsZWFyKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgc2V0Q2hpbGRyZW4odGhpcy5ub2RlcywgWElzRW1wdHkoa2V5cykpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0RXhwYW5kZWRBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5leHBhbmRlZEFsbCAmJiB0aGlzLnRyZWVEYXRhLmxlbmd0aCA9PT0gdGhpcy5ub2Rlcy5sZW5ndGgpIHJldHVybjtcclxuICAgIGNvbnN0IHNldENoaWxkcmVuID0gKG5vZGVzOiBYVHJlZU5vZGVbXSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICB4Lm9wZW4gPSBCb29sZWFuKHRoaXMuZXhwYW5kZWRBbGwpO1xyXG4gICAgICAgIHguY2hhbmdlICYmIHguY2hhbmdlKCk7XHJcbiAgICAgICAgc2V0Q2hpbGRyZW4oeC5jaGlsZHJlbiBhcyBYVHJlZU5vZGVbXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHNldENoaWxkcmVuKHRoaXMubm9kZXMpO1xyXG5cclxuICAgIGlmICh0aGlzLmV4cGFuZGVkQWxsID09PSBmYWxzZSkge1xyXG4gICAgICB0aGlzLm5vZGVzID0gdGhpcy50cmVlRGF0YS5maWx0ZXIoKHgpID0+IFhJc0VtcHR5KHgucGlkKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy52aXJ0dWFsTm9kZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy52aXJ0dWFsTm9kZXMgPSBbLi4udGhpcy5ub2Rlc107XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5ub2RlcyA9IFsuLi50aGlzLnZpcnR1YWxOb2Rlc107XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy52aXJ0dWFsTm9kZXMpIHtcclxuICAgICAgICB0aGlzLnNldFZpcnR1YWxFeHBhbmRlZEFsbChpdGVtLCB0aGlzLmV4cGFuZGVkQWxsIGFzIGJvb2xlYW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRFeHBhbmRlZCgpIHtcclxuICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5ub2Rlcykge1xyXG4gICAgICBpZiAoaXRlbS5vcGVuICYmIGl0ZW0uY2hpbGRyZW4pIHtcclxuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLm5vZGVzLmluZGV4T2YoaXRlbSk7XHJcbiAgICAgICAgdGhpcy5ub2Rlcy5zcGxpY2UoaW5kZXggKyAxLCAwLCAuLi4oaXRlbS5jaGlsZHJlbiBhcyBYVHJlZU5vZGVbXSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGl0ZW0uY2hhbmdlICYmIGl0ZW0uY2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm5vZGVzID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gIH1cclxuXHJcbiAgc2V0VmlydHVhbEV4cGFuZGVkQWxsKGl0ZW06IFhUcmVlTm9kZSwgZXhwYW5kZWRBbGw6IGJvb2xlYW4pIHtcclxuICAgIGxldCBpbmRleCA9IHRoaXMubm9kZXMuaW5kZXhPZihpdGVtKTtcclxuICAgIGlmIChleHBhbmRlZEFsbCkge1xyXG4gICAgICBsZXQgYWRkTm9kZXM6IFhUcmVlTm9kZVtdID0gW107XHJcbiAgICAgIGNvbnN0IGdldE5vZGVzID0gKG5kOiBYVHJlZU5vZGUpID0+IHtcclxuICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiBuZC5jaGlsZHJlbiEpIHtcclxuICAgICAgICAgIGFkZE5vZGVzLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgZ2V0Tm9kZXMoY2hpbGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgZ2V0Tm9kZXMoaXRlbSk7XHJcbiAgICAgIHRoaXMubm9kZXMuc3BsaWNlKGluZGV4ICsgMSwgMCwgLi4uYWRkTm9kZXMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ub2RlcyA9IFsuLi50aGlzLm5vZGVzXTtcclxuICB9XHJcblxyXG4gIHZpcnR1YWxUb2dnbGUobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLm5vZGVzLmluZGV4T2Yobm9kZSk7XHJcbiAgICBpZiAobm9kZS5vcGVuKSB7XHJcbiAgICAgIGxldCBhZGROb2RlczogWFRyZWVOb2RlW10gPSBbXTtcclxuICAgICAgY29uc3QgZ2V0Tm9kZXMgPSAobmQ6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAgIGZvciAobGV0IGNoaWxkIG9mIG5kLmNoaWxkcmVuISkge1xyXG4gICAgICAgICAgYWRkTm9kZXMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICBjaGlsZC5vcGVuICYmIGdldE5vZGVzKGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIGdldE5vZGVzKG5vZGUpO1xyXG4gICAgICB0aGlzLm5vZGVzLnNwbGljZShpbmRleCArIDEsIDAsIC4uLmFkZE5vZGVzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBkZWxDb3VudCA9IDA7XHJcbiAgICAgIGNvbnN0IGdldENvdW50ID0gKG5kOiBYVHJlZU5vZGUpID0+IHtcclxuICAgICAgICBkZWxDb3VudCArPSBuZC5jaGlsZHJlbiEubGVuZ3RoO1xyXG4gICAgICAgIGZvciAobGV0IGNoaWxkIG9mIG5kLmNoaWxkcmVuISkge1xyXG4gICAgICAgICAgY2hpbGQub3BlbiAmJiBnZXRDb3VudChjaGlsZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgICBnZXRDb3VudChub2RlKTtcclxuICAgICAgdGhpcy5ub2Rlcy5zcGxpY2UoaW5kZXggKyAxLCBkZWxDb3VudCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm5vZGVzID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZhdGVkTm9kZShub2RlczogWFRyZWVOb2RlW10pIHtcclxuICAgIGlmIChYSXNFbXB0eSh0aGlzLmFjdGl2YXRlZElkKSAmJiB0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVkSWQgPSBbXTtcclxuICAgIH1cclxuICAgIGxldCBiZWZvcmUgPSB0aGlzLmFjdGl2YXRlZE5vZGU7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICBpZiAodGhpcy5hY3RpdmF0ZWRJZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgbGV0IGlkcyA9IHRoaXMub2JqZWN0QXJyYXkgPyB0aGlzLmFjdGl2YXRlZElkLm1hcCgoeDogWFRyZWVOb2RlKSA9PiB4LmlkKSA6IHRoaXMuYWN0aXZhdGVkSWQ7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpZHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBub2RlID0gbm9kZXMuZmluZCgoeCkgPT4geC5pZCA9PT0gaWRzW2ldKSBhcyBYVHJlZU5vZGU7XHJcbiAgICAgICAgICBpZiAobm9kZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNldFBhcmVudE9wZW4obm9kZXMsIG5vZGUpO1xyXG4gICAgICAgICAgICBpZiAoaSA9PT0gaWRzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlZE5vZGUgPSBub2RlO1xyXG4gICAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVkQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmF0ZWROb2RlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGFjdGl2YXRlZElkID0gdGhpcy5hY3RpdmF0ZWRJZDtcclxuICAgICAgdGhpcy5hY3RpdmF0ZWROb2RlID0gbm9kZXMuZmluZCgoeCkgPT4geC5pZCA9PSBhY3RpdmF0ZWRJZCkgYXMgWFRyZWVOb2RlO1xyXG4gICAgICBpZiAodGhpcy5hY3RpdmF0ZWROb2RlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRQYXJlbnRPcGVuKG5vZGVzLCB0aGlzLmFjdGl2YXRlZE5vZGUpO1xyXG4gICAgICAgIHRoaXMuYWN0aXZhdGVkQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmF0ZWROb2RlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGJlZm9yZSkge1xyXG4gICAgICBiZWZvcmUuY2hhbmdlICYmIGJlZm9yZS5jaGFuZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIVhJc0VtcHR5KG5vZGVzKSkge1xyXG4gICAgICB0aGlzLnNldERhdGFDaGFuZ2Uobm9kZXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UGFyZW50T3Blbihub2RlczogWFRyZWVOb2RlW10sIG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgY29uc3QgZ2V0UGFyZW50ID0gKGNoaWxkOiBYVHJlZU5vZGUpID0+IHtcclxuICAgICAgaWYgKFhJc0VtcHR5KGNoaWxkLnBpZCkpIHJldHVybjtcclxuICAgICAgY29uc3QgcGFyZW50ID0gbm9kZXMuZmluZCgoeCkgPT4geC5pZCA9PT0gY2hpbGQucGlkKSBhcyBYVHJlZU5vZGU7XHJcbiAgICAgIGlmICghWElzRW1wdHkocGFyZW50KSkge1xyXG4gICAgICAgIGlmICghdGhpcy5leHBhbmRlZC5pbmNsdWRlcyhwYXJlbnQuaWQpKSB7XHJcbiAgICAgICAgICB0aGlzLmV4cGFuZGVkID0gWy4uLnRoaXMuZXhwYW5kZWQsIHBhcmVudC5pZF07XHJcbiAgICAgICAgICBwYXJlbnQub3BlbiA9IHRydWU7XHJcbiAgICAgICAgICBwYXJlbnQuY2hhbmdlICYmIHBhcmVudC5jaGFuZ2UoKTtcclxuICAgICAgICAgIGdldFBhcmVudChwYXJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGdldFBhcmVudChub2RlKTtcclxuICB9XHJcblxyXG4gIHNldFBhcmVudENoZWNrKG5vZGVzOiBYVHJlZU5vZGVbXSwgbm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBjb25zdCBnZXRQYXJlbnQgPSAoY2hpbGQ6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkoY2hpbGQucGlkKSkgcmV0dXJuO1xyXG4gICAgICBjb25zdCBwYXJlbnQgPSBub2Rlcy5maW5kKCh4KSA9PiB4LmlkID09PSBjaGlsZC5waWQpIGFzIFhUcmVlTm9kZTtcclxuICAgICAgaWYgKCFYSXNFbXB0eShwYXJlbnQpKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmV4cGFuZGVkLmluY2x1ZGVzKHBhcmVudC5pZCkpIHtcclxuICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSBbLi4udGhpcy5leHBhbmRlZCwgcGFyZW50LmlkXTtcclxuICAgICAgICAgIHBhcmVudC5vcGVuID0gdHJ1ZTtcclxuICAgICAgICAgIHBhcmVudC5jaGFuZ2UgJiYgcGFyZW50LmNoYW5nZSgpO1xyXG4gICAgICAgICAgZ2V0UGFyZW50KHBhcmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgZ2V0UGFyZW50KG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgb25Ub2dnbGUoZXZlbnQ6IEV2ZW50LCBub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIG5vZGUub3BlbiA9ICFub2RlLm9wZW47XHJcbiAgICBpZiAodGhpcy5sYXp5ICYmICFub2RlLmNoaWxkcmVuTG9hZGVkKSB7XHJcbiAgICAgIHRoaXMuZ2V0TGF6eURhdGEobm9kZSwgKCkgPT4gdGhpcy52aXJ0dWFsVG9nZ2xlKG5vZGUpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlydHVhbFRvZ2dsZShub2RlKTtcclxuICAgIH1cclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGdldExhenlEYXRhKG5vZGU6IFhUcmVlTm9kZSwgY2FsbEJhY2s/OiAoKSA9PiB2b2lkKSB7XHJcbiAgICBub2RlLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgbm9kZS5jaGFuZ2UgJiYgbm9kZS5jaGFuZ2UoKTtcclxuICAgICh0aGlzLmRhdGEgYXMgKHBpZD86IGFueSkgPT4gT2JzZXJ2YWJsZTxYVHJlZU5vZGVbXT4pKG5vZGUuaWQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT5cclxuICAgICAgICAgIHgubWFwKCh5KSA9PiB7XHJcbiAgICAgICAgICAgIHkubGV2ZWwgPSAobm9kZS5sZXZlbCBhcyBudW1iZXIpICsgMTtcclxuICAgICAgICAgICAgeS5jaGVja2VkID0gbm9kZS5jaGVja2VkO1xyXG4gICAgICAgICAgICByZXR1cm4geTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICBub2RlLmNoaWxkcmVuID0geDtcclxuICAgICAgICBub2RlLmNoaWxkcmVuTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICBub2RlLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAoY2FsbEJhY2spIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgbm9kZS5jaGFuZ2UgJiYgbm9kZS5jaGFuZ2UoKTtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkTm9kZShub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIGxldCBwYXJlbnQgPSB0aGlzLnRyZWVEYXRhLmZpbmQoKHgpID0+IHguaWQgPT09IG5vZGUucGlkKTtcclxuICAgIGNvbnN0IF9hZGROb2RlID0gKCkgPT4ge1xyXG4gICAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgICAgaWYgKCFwYXJlbnQuY2hpbGRyZW4pIHBhcmVudC5jaGlsZHJlbiA9IFtdO1xyXG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSBbLi4udGhpcy5leHBhbmRlZCwgcGFyZW50LmlkXTtcclxuICAgICAgICB0aGlzLnNldEFjdGl2YXRlZElkKG5vZGUpO1xyXG4gICAgICAgIG5vZGUubGV2ZWwgPSBOdW1iZXIocGFyZW50LmxldmVsKSArIDE7XHJcbiAgICAgICAgbm9kZS5waWQgPSBwYXJlbnQuaWQ7XHJcbiAgICAgICAgdGhpcy50cmVlRGF0YS5wdXNoKG5vZGUpO1xyXG4gICAgICAgIHRoaXMuc2V0QWN0aXZhdGVkTm9kZSh0aGlzLnRyZWVEYXRhKTtcclxuICAgICAgICBwYXJlbnQub3BlbiA9IHRydWU7XHJcbiAgICAgICAgcGFyZW50LmxlYWYgPSBmYWxzZTtcclxuICAgICAgICBwYXJlbnQuY2hpbGRyZW4gPSBbLi4ucGFyZW50LmNoaWxkcmVuLCBub2RlXTtcclxuICAgICAgICB0aGlzLnZpcnR1YWxUb2dnbGUocGFyZW50KTtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgcGFyZW50LmNoYW5nZSAmJiBwYXJlbnQuY2hhbmdlKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoWElzRW1wdHkobm9kZS5waWQpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRBY3RpdmF0ZWRJZChub2RlKTtcclxuICAgICAgICBub2RlLmxldmVsID0gMDtcclxuICAgICAgICB0aGlzLnRyZWVEYXRhID0gWy4uLnRoaXMudHJlZURhdGEsIG5vZGVdO1xyXG4gICAgICAgIHRoaXMubm9kZXMgPSBbLi4udGhpcy5ub2Rlcywgbm9kZV07XHJcbiAgICAgICAgdGhpcy5zZXRBY3RpdmF0ZWROb2RlKHRoaXMudHJlZURhdGEpO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmxhenkgJiYgcGFyZW50ICYmICFwYXJlbnQuY2hpbGRyZW5Mb2FkZWQpIHtcclxuICAgICAgdGhpcy5nZXRMYXp5RGF0YShwYXJlbnQsICgpID0+IHtcclxuICAgICAgICBfYWRkTm9kZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIF9hZGROb2RlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRBY3RpdmF0ZWRJZChub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIGlmICh0aGlzLm9iamVjdEFycmF5KSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRJZCA9IFtub2RlXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmFjdGl2YXRlZElkID0gW25vZGUuaWRdO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjdGl2YXRlZElkID0gbm9kZS5pZDtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZhdGVkSWRDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2YXRlZElkKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZU5vZGUobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBsZXQgcGFyZW50ID0gdGhpcy50cmVlRGF0YS5maW5kKCh4KSA9PiB4LmlkID09PSBub2RlLnBpZCk7XHJcbiAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgIGlmICghcGFyZW50LmNoaWxkcmVuKSBwYXJlbnQuY2hpbGRyZW4gPSBbXTtcclxuICAgICAgcGFyZW50LmNoaWxkcmVuLnNwbGljZShwYXJlbnQuY2hpbGRyZW4uaW5kZXhPZihub2RlKSwgMSk7XHJcbiAgICAgIHBhcmVudC5sZWFmID0gcGFyZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMDtcclxuICAgICAgaWYgKHBhcmVudC5sZWFmKSB7XHJcbiAgICAgICAgdGhpcy5zZXRBY3RpdmF0ZWRJZChwYXJlbnQpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBpbmRleCA9IHRoaXMubm9kZXMuaW5kZXhPZihub2RlKTtcclxuICAgICAgbGV0IGFpbmRleCA9IGluZGV4IC0gMTtcclxuICAgICAgaWYgKGluZGV4ID09PSAwICYmIHRoaXMubm9kZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgIGFpbmRleCA9IDE7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGFjdGl2YXRlZE5vZGUgPSB0aGlzLm5vZGVzW2FpbmRleF07XHJcbiAgICAgIHRoaXMuc2V0QWN0aXZhdGVkSWQoYWN0aXZhdGVkTm9kZSk7XHJcbiAgICAgIHRoaXMuc2V0QWN0aXZhdGVkTm9kZSh0aGlzLm5vZGVzKTtcclxuICAgICAgdGhpcy5ub2Rlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB0aGlzLm5vZGVzID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gICAgICBpZiAoYWN0aXZhdGVkTm9kZSkge1xyXG4gICAgICAgIGFjdGl2YXRlZE5vZGUuY2hhbmdlICYmIGFjdGl2YXRlZE5vZGUuY2hhbmdlKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICBwYXJlbnQuY2hhbmdlICYmIHBhcmVudC5jaGFuZ2UoKTtcclxuICAgIH0gZWxzZSBpZiAoWElzRW1wdHkobm9kZS5waWQpKSB7XHJcbiAgICAgIHRoaXMudHJlZURhdGEuc3BsaWNlKHRoaXMudHJlZURhdGEuaW5kZXhPZihub2RlKSwgMSk7XHJcbiAgICAgIHRoaXMubm9kZXMuc3BsaWNlKHRoaXMubm9kZXMuaW5kZXhPZihub2RlKSwgMSk7XHJcbiAgICAgIHRoaXMubm9kZXMgPSBbLi4udGhpcy5ub2Rlc107XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZU5vZGUobm9kZTogWFRyZWVOb2RlLCBub3dOb2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIE9iamVjdC5hc3NpZ24obm9kZSwgbm93Tm9kZSk7XHJcbiAgICBub2RlLmNoYW5nZSAmJiBub2RlLmNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUl0ZW0oX2luZGV4OiBudW1iZXIsIGl0ZW06IFhUcmVlTm9kZSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI3RyZWUgY2xhc3M9XCJ4LXRyZWVcIiBbY2xhc3MueC10cmVlLW9ubHktbGVhZl09XCJvbmx5TGVhZlwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdmlydHVhbFNjcm9sbDsgZWxzZSB2aXJ0dWFsU2Nyb2xsVHBsXCI+XHJcbiAgICA8eC10cmVlLW5vZGVcclxuICAgICAgKm5nRm9yPVwibGV0IG5vZGUgb2Ygbm9kZXM7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCJcclxuICAgICAgW25vZGVdPVwibm9kZVwiXHJcbiAgICAgIFtsYXp5XT1cImxhenlcIlxyXG4gICAgICBbbGF6eURhdGFdPVwiZGF0YVwiXHJcbiAgICAgIFtub2RlSGVpZ2h0XT1cIm5vZGVIZWlnaHRcIlxyXG4gICAgICBbbm9kZU5vd3JhcF09XCJub2RlTm93cmFwXCJcclxuICAgICAgW25vZGVBbGlnbkl0ZW1zXT1cIm5vZGVBbGlnbkl0ZW1zXCJcclxuICAgICAgW3RyZWVdPVwidGhpc1wiXHJcbiAgICA+PC94LXRyZWUtbm9kZT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI3ZpcnR1YWxTY3JvbGxUcGw+XHJcbiAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxyXG4gICAgI3ZpcnR1YWxCb2R5XHJcbiAgICBbaXRlbVNpemVdPVwiaXRlbVNpemVcIlxyXG4gICAgW21pbkJ1ZmZlclB4XT1cIm1pbkJ1ZmZlclB4XCJcclxuICAgIFttYXhCdWZmZXJQeF09XCJtYXhCdWZmZXJQeFwiXHJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInZpcnR1YWxTY3JvbGxIZWlnaHRcIlxyXG4gID5cclxuICAgIDx4LXRyZWUtbm9kZVxyXG4gICAgICAqY2RrVmlydHVhbEZvcj1cImxldCBub2RlIG9mIG5vZGVzOyB0ZW1wbGF0ZUNhY2hlU2l6ZTogMDsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgICBbbm9kZV09XCJub2RlXCJcclxuICAgICAgW2xhenldPVwibGF6eVwiXHJcbiAgICAgIFtsYXp5RGF0YV09XCJkYXRhXCJcclxuICAgICAgW25vZGVIZWlnaHRdPVwibm9kZUhlaWdodFwiXHJcbiAgICAgIFtub2RlTm93cmFwXT1cIm5vZGVOb3dyYXBcIlxyXG4gICAgICBbbm9kZUFsaWduSXRlbXNdPVwibm9kZUFsaWduSXRlbXNcIlxyXG4gICAgICBbdHJlZV09XCJ0aGlzXCJcclxuICAgID48L3gtdHJlZS1ub2RlPlxyXG4gIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSDmj5DliY3liqDovb1sb2FkaW5n55qE5Zu+5qCHLS0+XHJcbjx4LWljb24gKm5nSWY9XCJsYXp5XCIgW3N0eWxlLmRpc3BsYXldPVwiJ25vbmUnXCIgdHlwZT1cImZ0by1sb2FkZXJcIj48L3gtaWNvbj5cclxuIl19
|
|
@@ -75,7 +75,6 @@ export class XTreeSelectPortalComponent {
|
|
|
75
75
|
event.stopPropagation();
|
|
76
76
|
}
|
|
77
77
|
nodeClick(node) {
|
|
78
|
-
console.log(node);
|
|
79
78
|
if (this.multiple) {
|
|
80
79
|
this.nodeEmit(node, this.value);
|
|
81
80
|
}
|
|
@@ -108,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
108
107
|
type: ViewChild,
|
|
109
108
|
args: ['tree']
|
|
110
109
|
}] } });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QtcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUtc2VsZWN0L3RyZWUtc2VsZWN0LXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmVlLXNlbGVjdC90cmVlLXNlbGVjdC1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3ZCLFdBQVcsRUFDWCxZQUFZLEVBRVosU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRixPQUFPLEVBQW1CLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQVkscUJBQXFCLEVBQUUsUUFBUSxFQUE2QixNQUFNLGtCQUFrQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQWFoRCxNQUFNLE9BQU8sMEJBQTBCO0lBc0RyQyxZQUFtQixRQUFtQixFQUFTLEdBQXNCLEVBQVMsSUFBa0I7UUFBN0UsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBYztRQXZCaEcsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3RCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBQzlCLFdBQU0sR0FBVyxDQUFDLENBQUMsQ0FBQztRQUVwQixvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUVyQixXQUFNLEdBQW9CLEVBQUUsQ0FBQztRQUM3QixXQUFN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Uzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBSZW5kZXJlcjIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYVHJlZVNlbGVjdE5vZGUsIFhUcmVlU2VsZWN0UG9ydGFsUHJlZml4IH0gZnJvbSAnLi90cmVlLXNlbGVjdC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBYQm9vbGVhbiwgWENvbm5lY3RCYXNlQW5pbWF0aW9uLCBYSXNFbXB0eSwgWFBvc2l0aW9uVG9wQm90dG9tLCBYU2l6ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYSTE4blNlcnZpY2UsIFhJMThuVHJlZVNlbGVjdCB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5pbXBvcnQgeyBYVHJlZUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3RyZWUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUcmVlU2VsZWN0UG9ydGFsUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtc2VsZWN0LXBvcnRhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJlZS1zZWxlY3QtcG9ydGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWENvbm5lY3RCYXNlQW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRyZWVTZWxlY3RQb3J0YWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQEhvc3RCaW5kaW5nKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uJykgcHVibGljIHBsYWNlbWVudCE6IFhQb3NpdGlvblRvcEJvdHRvbTtcclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLmRvbmUnLCBbJyRldmVudCddKSBkb25lKGV2ZW50OiB7IHRvU3RhdGU6IGFueSB9KSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyhmYWxzZSk7XHJcbiAgICBldmVudC50b1N0YXRlID09PSAndm9pZCcgJiYgdGhpcy5kZXN0cm95UG9ydGFsKCk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uc3RhcnQnLCBbJyRldmVudCddKSBzdGFydCgpIHtcclxuICAgIHRoaXMuYW5pbWF0aW5nKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgndHJlZScpIHRyZWUhOiBYVHJlZUNvbXBvbmVudDtcclxuICAvLyBAVmlld0NoaWxkKCdsaXN0JykgbGlzdCE6IFhMaXN0Q29tcG9uZW50O1xyXG4gIGdldCBpc0VtcHR5KCkge1xyXG4gICAgcmV0dXJuIFhJc0VtcHR5KHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICBkYXRhITogWFRyZWVTZWxlY3ROb2RlW107XHJcbiAgdmFsdWU6IGFueTtcclxuICB2YWx1ZUNoYW5nZSE6IFN1YmplY3Q8YW55PjtcclxuICBwb3NpdGlvbkNoYW5nZSE6IFN1YmplY3Q8YW55PjtcclxuICBpbnB1dENoYW5nZSE6IFN1YmplY3Q8YW55PjtcclxuICBkYXRhQ2hhbmdlITogQmVoYXZpb3JTdWJqZWN0PFhUcmVlU2VsZWN0Tm9kZVtdPjtcclxuICBhbmltYXRpbmchOiBGdW5jdGlvbjtcclxuICBhY3RpdmVDaGFuZ2UhOiBGdW5jdGlvbjtcclxuICBkZXN0cm95UG9ydGFsITogRnVuY3Rpb247XHJcbiAgY2xvc2VTdWJqZWN0ITogU3ViamVjdDx2b2lkPjtcclxuICBrZXlkb3duU3ViamVjdCE6IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD47XHJcbiAgc2VhcmNoU3ViamVjdCE6IEJlaGF2aW9yU3ViamVjdDxhbnk+O1xyXG4gIG5vZGVFbWl0ITogRnVuY3Rpb247XHJcbiAgc2VsZWN0QWxsRW1pdCE6IEZ1bmN0aW9uO1xyXG4gIG11bHRpcGxlITogWEJvb2xlYW47XHJcbiAgc2VsZWN0QWxsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbm9kZVRwbCE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG9iamVjdEFycmF5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2FzZVNlbnNpdGl2ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgYWN0aXZlOiBudW1iZXIgPSAtMTtcclxuICBpbnB1dENvbSE6IFhJbnB1dENvbXBvbmVudDtcclxuICBwb3J0YWxNYXhIZWlnaHQgPSAnJztcclxuICBzZWxlY3RBbGxUZXh0ITogc3RyaW5nO1xyXG4gIGxvY2FsZTogWEkxOG5UcmVlU2VsZWN0ID0ge307XHJcbiAgc2VhcmNoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2Nyb2xsTnVsbCA9IHVuZGVmaW5lZDtcclxuICB2aXJ0dWFsU2Nyb2xsITogWEJvb2xlYW47XHJcbiAgc2l6ZSE6IFhTaXplO1xyXG4gIG9ubHlMZWFmITogWEJvb2xlYW47XHJcbiAgZXhwYW5kZWRMZXZlbCE6IG51bWJlcjtcclxuICBrZXl3b3JkVGV4dCE6IHN0cmluZztcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBnZXQgZ2V0U2VsZWN0QWxsVGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdEFsbFRleHQgfHwgdGhpcy5sb2NhbGUuc2VsZWN0QWxsVGV4dDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLCBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHVibGljIGkxOG46IFhJMThuU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnZhbHVlID0geDtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnBsYWNlbWVudCA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLmRhdGEgPSB4O1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2xvc2VTdWJqZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIC8vIHRoaXMudHJlZS5zZXRVbkFjdGl2ZSh0aGlzLmFjdGl2ZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMua2V5ZG93blN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKChfeCkgPT4ge1xyXG4gICAgICAvLyB0aGlzLnRyZWUua2V5ZG93bih4KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pbnB1dENoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5rZXl3b3JkVGV4dCA9IHg7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2VcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKCh4KSA9PiB4LnRyZWVTZWxlY3QgYXMgWEkxOG5UcmVlU2VsZWN0KSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmxvY2FsZSA9IHg7XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzdG9wUHJvcGFnYXRpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIG5vZGVDbGljayhub2RlOiBYVHJlZVNlbGVjdE5vZGUpIHtcclxuICAgIGNvbnNvbGUubG9nKG5vZGUpO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5ub2RlRW1pdChub2RlLCB0aGlzLnZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQobm9kZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdEFsbChfaXNTZWxlY3RBbGw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubm9kZUVtaXQobnVsbCwgdGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbkFjdGl2ZShudW06IG51bWJlcikge1xyXG4gICAgdGhpcy5hY3RpdmUgPSBudW07XHJcbiAgfVxyXG5cclxuICAvLyBvblRhYk91dCgpIHtcclxuICAvLyAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAvLyB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICN0cmVlU2VsZWN0UG9ydGFsXHJcbiAgY2xhc3M9XCJ4LXRyZWUtc2VsZWN0LXBvcnRhbFwiXHJcbiAgKGNsaWNrKT1cImlucHV0Q29tLmlucHV0Rm9jdXMoKTsgc3RvcFByb3BhZ2F0aW9uKCRldmVudClcIlxyXG4gIFtzdHlsZS5tYXhIZWlnaHRdPVwicG9ydGFsTWF4SGVpZ2h0XCJcclxuPlxyXG4gIDwhLS0gPHgtbGlzdFxyXG4gICAgI2xpc3RcclxuICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAobm9kZUNsaWNrKT1cIm5vZGVDbGljaygkZXZlbnQpXCJcclxuICAgIChrZXlNYW5hZ2VyQ2hhbmdlKT1cIm9uQWN0aXZlKCRldmVudClcIlxyXG4gICAgKGtleU1hbmFnZXJUYWJPdXQpPVwib25UYWJPdXQoKVwiXHJcbiAgICAob25TZWxlY3RBbGwpPVwib25TZWxlY3RBbGwoJGV2ZW50KVwiXHJcbiAgICBjaGVja2VkXHJcbiAgICBbb2JqZWN0QXJyYXldPVwib2JqZWN0QXJyYXlcIlxyXG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcclxuICAgIFtzZWxlY3RBbGxdPVwic2VsZWN0QWxsXCJcclxuICAgIFtzZWxlY3RBbGxUZXh0XT1cImdldFNlbGVjdEFsbFRleHRcIlxyXG4gICAgW25vZGVUcGxdPVwibm9kZVRwbFwiXHJcbiAgICBbc2Nyb2xsRWxlbWVudF09XCJzZWFyY2ggPyBzY3JvbGxOdWxsIDogdHJlZVNlbGVjdFBvcnRhbFwiXHJcbiAgICBbdmlydHVhbFNjcm9sbF09XCJ2aXJ0dWFsU2Nyb2xsXCJcclxuICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgW2hlaWdodEFkYXB0aW9uXT1cInRyZWVTZWxlY3RQb3J0YWxcIlxyXG4gID48L3gtbGlzdD4gLS0+XHJcbiAgPHgtdHJlZVxyXG4gICAgI3RyZWVcclxuICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgW2xhYmVsVHBsXT1cIm5vZGVUcGxcIlxyXG4gICAgW3ZpcnR1YWxTY3JvbGxdPVwidmlydHVhbFNjcm9sbFwiXHJcbiAgICBbc2Nyb2xsRWxlbWVudF09XCJzZWFyY2ggPyBzY3JvbGxOdWxsIDogdHJlZVNlbGVjdFBvcnRhbFwiXHJcbiAgICBbaGVpZ2h0QWRhcHRpb25dPVwidHJlZVNlbGVjdFBvcnRhbFwiXHJcbiAgICBbZXhwYW5kZWRMZXZlbF09XCJleHBhbmRlZExldmVsXCJcclxuICAgIFsoYWN0aXZhdGVkSWQpXT1cInZhbHVlXCJcclxuICAgIChub2RlQ2xpY2spPVwibm9kZUNsaWNrKCRldmVudClcIlxyXG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcclxuICAgIFthbGxvd01hbnlBY3RpdmF0ZWRdPVwibXVsdGlwbGVcIlxyXG4gICAgW29iamVjdEFycmF5XT1cIm9iamVjdEFycmF5XCJcclxuICAgIFtrZXl3b3JkVGV4dF09XCJrZXl3b3JkVGV4dFwiXHJcbiAgICBbY2FzZVNlbnNpdGl2ZV09XCJjYXNlU2Vuc2l0aXZlXCJcclxuICAgIFtvbmx5TGVhZl09XCJvbmx5TGVhZlwiXHJcbiAgICBbbm9kZU9wZW5dPVwib25seUxlYWZcIlxyXG4gID48L3gtdHJlZT5cclxuICA8eC1lbXB0eSAqbmdJZj1cImlzRW1wdHlcIj48L3gtZW1wdHk+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QtcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUtc2VsZWN0L3RyZWUtc2VsZWN0LXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmVlLXNlbGVjdC90cmVlLXNlbGVjdC1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3ZCLFdBQVcsRUFDWCxZQUFZLEVBRVosU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRixPQUFPLEVBQW1CLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQVkscUJBQXFCLEVBQUUsUUFBUSxFQUE2QixNQUFNLGtCQUFrQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQWFoRCxNQUFNLE9BQU8sMEJBQTBCO0lBc0RyQyxZQUFtQixRQUFtQixFQUFTLEdBQXNCLEVBQVMsSUFBa0I7UUFBN0UsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBYztRQXZCaEcsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3RCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBQzlCLFdBQU0sR0FBVyxDQUFDLENBQUMsQ0FBQztRQUVwQixvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUVyQixXQUFNLEdBQW9CLEVBQUUsQ0FBQztRQUM3QixXQUFN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XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRyZWVTZWxlY3ROb2RlLCBYVHJlZVNlbGVjdFBvcnRhbFByZWZpeCB9IGZyb20gJy4vdHJlZS1zZWxlY3QucHJvcGVydHknO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWEJvb2xlYW4sIFhDb25uZWN0QmFzZUFuaW1hdGlvbiwgWElzRW1wdHksIFhQb3NpdGlvblRvcEJvdHRvbSwgWFNpemUgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4blRyZWVTZWxlY3QgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgWFRyZWVDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS90cmVlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYVHJlZVNlbGVjdFBvcnRhbFByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLXNlbGVjdC1wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUtc2VsZWN0LXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgYW5pbWF0aW9uczogW1hDb25uZWN0QmFzZUFuaW1hdGlvbl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhUcmVlU2VsZWN0UG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBIb3N0QmluZGluZygnQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbicpIHB1YmxpYyBwbGFjZW1lbnQhOiBYUG9zaXRpb25Ub3BCb3R0b207XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZShldmVudDogeyB0b1N0YXRlOiBhbnkgfSkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcoZmFsc2UpO1xyXG4gICAgZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIHRoaXMuZGVzdHJveVBvcnRhbCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoKSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyh0cnVlKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3RyZWUnKSB0cmVlITogWFRyZWVDb21wb25lbnQ7XHJcbiAgLy8gQFZpZXdDaGlsZCgnbGlzdCcpIGxpc3QhOiBYTGlzdENvbXBvbmVudDtcclxuICBnZXQgaXNFbXB0eSgpIHtcclxuICAgIHJldHVybiBYSXNFbXB0eSh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZGF0YSE6IFhUcmVlU2VsZWN0Tm9kZVtdO1xyXG4gIHZhbHVlOiBhbnk7XHJcbiAgdmFsdWVDaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgcG9zaXRpb25DaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgaW5wdXRDaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgZGF0YUNoYW5nZSE6IEJlaGF2aW9yU3ViamVjdDxYVHJlZVNlbGVjdE5vZGVbXT47XHJcbiAgYW5pbWF0aW5nITogRnVuY3Rpb247XHJcbiAgYWN0aXZlQ2hhbmdlITogRnVuY3Rpb247XHJcbiAgZGVzdHJveVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIGNsb3NlU3ViamVjdCE6IFN1YmplY3Q8dm9pZD47XHJcbiAga2V5ZG93blN1YmplY3QhOiBTdWJqZWN0PEtleWJvYXJkRXZlbnQ+O1xyXG4gIHNlYXJjaFN1YmplY3QhOiBCZWhhdmlvclN1YmplY3Q8YW55PjtcclxuICBub2RlRW1pdCE6IEZ1bmN0aW9uO1xyXG4gIHNlbGVjdEFsbEVtaXQhOiBGdW5jdGlvbjtcclxuICBtdWx0aXBsZSE6IFhCb29sZWFuO1xyXG4gIHNlbGVjdEFsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG5vZGVUcGwhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIHNob3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBvYmplY3RBcnJheTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNhc2VTZW5zaXRpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGFjdGl2ZTogbnVtYmVyID0gLTE7XHJcbiAgaW5wdXRDb20hOiBYSW5wdXRDb21wb25lbnQ7XHJcbiAgcG9ydGFsTWF4SGVpZ2h0ID0gJyc7XHJcbiAgc2VsZWN0QWxsVGV4dCE6IHN0cmluZztcclxuICBsb2NhbGU6IFhJMThuVHJlZVNlbGVjdCA9IHt9O1xyXG4gIHNlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNjcm9sbE51bGwgPSB1bmRlZmluZWQ7XHJcbiAgdmlydHVhbFNjcm9sbCE6IFhCb29sZWFuO1xyXG4gIHNpemUhOiBYU2l6ZTtcclxuICBvbmx5TGVhZiE6IFhCb29sZWFuO1xyXG4gIGV4cGFuZGVkTGV2ZWwhOiBudW1iZXI7XHJcbiAga2V5d29yZFRleHQhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZ2V0IGdldFNlbGVjdEFsbFRleHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RBbGxUZXh0IHx8IHRoaXMubG9jYWxlLnNlbGVjdEFsbFRleHQ7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wb3NpdGlvbkNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5wbGFjZW1lbnQgPSB4O1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGF0YUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5kYXRhID0geDtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNsb3NlU3ViamVjdC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAvLyB0aGlzLnRyZWUuc2V0VW5BY3RpdmUodGhpcy5hY3RpdmUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmtleWRvd25TdWJqZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoX3gpID0+IHtcclxuICAgICAgLy8gdGhpcy50cmVlLmtleWRvd24oeCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuaW5wdXRDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMua2V5d29yZFRleHQgPSB4O1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT4geC50cmVlU2VsZWN0IGFzIFhJMThuVHJlZVNlbGVjdCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB4O1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBub2RlQ2xpY2sobm9kZTogWFRyZWVTZWxlY3ROb2RlKSB7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLm5vZGVFbWl0KG5vZGUsIHRoaXMudmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ub2RlRW1pdChub2RlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0QWxsKF9pc1NlbGVjdEFsbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5ub2RlRW1pdChudWxsLCB0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uQWN0aXZlKG51bTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmFjdGl2ZSA9IG51bTtcclxuICB9XHJcblxyXG4gIC8vIG9uVGFiT3V0KCkge1xyXG4gIC8vICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gIC8vIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgI3RyZWVTZWxlY3RQb3J0YWxcclxuICBjbGFzcz1cIngtdHJlZS1zZWxlY3QtcG9ydGFsXCJcclxuICAoY2xpY2spPVwiaW5wdXRDb20uaW5wdXRGb2N1cygpOyBzdG9wUHJvcGFnYXRpb24oJGV2ZW50KVwiXHJcbiAgW3N0eWxlLm1heEhlaWdodF09XCJwb3J0YWxNYXhIZWlnaHRcIlxyXG4+XHJcbiAgPCEtLSA8eC1saXN0XHJcbiAgICAjbGlzdFxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgIChub2RlQ2xpY2spPVwibm9kZUNsaWNrKCRldmVudClcIlxyXG4gICAgKGtleU1hbmFnZXJDaGFuZ2UpPVwib25BY3RpdmUoJGV2ZW50KVwiXHJcbiAgICAoa2V5TWFuYWdlclRhYk91dCk9XCJvblRhYk91dCgpXCJcclxuICAgIChvblNlbGVjdEFsbCk9XCJvblNlbGVjdEFsbCgkZXZlbnQpXCJcclxuICAgIGNoZWNrZWRcclxuICAgIFtvYmplY3RBcnJheV09XCJvYmplY3RBcnJheVwiXHJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxyXG4gICAgW3NlbGVjdEFsbF09XCJzZWxlY3RBbGxcIlxyXG4gICAgW3NlbGVjdEFsbFRleHRdPVwiZ2V0U2VsZWN0QWxsVGV4dFwiXHJcbiAgICBbbm9kZVRwbF09XCJub2RlVHBsXCJcclxuICAgIFtzY3JvbGxFbGVtZW50XT1cInNlYXJjaCA/IHNjcm9sbE51bGwgOiB0cmVlU2VsZWN0UG9ydGFsXCJcclxuICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInZpcnR1YWxTY3JvbGxcIlxyXG4gICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICBbaGVpZ2h0QWRhcHRpb25dPVwidHJlZVNlbGVjdFBvcnRhbFwiXHJcbiAgPjwveC1saXN0PiAtLT5cclxuICA8eC10cmVlXHJcbiAgICAjdHJlZVxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbbGFiZWxUcGxdPVwibm9kZVRwbFwiXHJcbiAgICBbdmlydHVhbFNjcm9sbF09XCJ2aXJ0dWFsU2Nyb2xsXCJcclxuICAgIFtzY3JvbGxFbGVtZW50XT1cInNlYXJjaCA/IHNjcm9sbE51bGwgOiB0cmVlU2VsZWN0UG9ydGFsXCJcclxuICAgIFtoZWlnaHRBZGFwdGlvbl09XCJ0cmVlU2VsZWN0UG9ydGFsXCJcclxuICAgIFtleHBhbmRlZExldmVsXT1cImV4cGFuZGVkTGV2ZWxcIlxyXG4gICAgWyhhY3RpdmF0ZWRJZCldPVwidmFsdWVcIlxyXG4gICAgKG5vZGVDbGljayk9XCJub2RlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxyXG4gICAgW2FsbG93TWFueUFjdGl2YXRlZF09XCJtdWx0aXBsZVwiXHJcbiAgICBbb2JqZWN0QXJyYXldPVwib2JqZWN0QXJyYXlcIlxyXG4gICAgW2tleXdvcmRUZXh0XT1cImtleXdvcmRUZXh0XCJcclxuICAgIFtjYXNlU2Vuc2l0aXZlXT1cImNhc2VTZW5zaXRpdmVcIlxyXG4gICAgW29ubHlMZWFmXT1cIm9ubHlMZWFmXCJcclxuICAgIFtub2RlT3Blbl09XCJvbmx5TGVhZlwiXHJcbiAgPjwveC10cmVlPlxyXG4gIDx4LWVtcHR5ICpuZ0lmPVwiaXNFbXB0eVwiPjwveC1lbXB0eT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { HttpEventType, HttpRequest } from '@angular/common/http';
|
|
1
|
+
import { HttpEventType, HttpRequest, HttpHeaders } from '@angular/common/http';
|
|
2
2
|
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild } from '@angular/core';
|
|
3
3
|
import { XUploadPrefix, XUploadProperty, XUploadPortalPrefix } from './upload.property';
|
|
4
|
-
import { XIsTemplateRef } from '@ng-nest/ui/core';
|
|
4
|
+
import { XIsArray, XIsTemplateRef } from '@ng-nest/ui/core';
|
|
5
5
|
import { map, takeUntil } from 'rxjs/operators';
|
|
6
6
|
import { Subject } from 'rxjs';
|
|
7
7
|
import { XUploadPortalComponent } from './upload-portal.component';
|
|
@@ -125,7 +125,9 @@ export class XUploadComponent extends XUploadProperty {
|
|
|
125
125
|
formData.append('file', file);
|
|
126
126
|
const req = new HttpRequest('POST', this.action, formData, {
|
|
127
127
|
reportProgress: true,
|
|
128
|
-
responseType: 'arraybuffer'
|
|
128
|
+
responseType: 'arraybuffer',
|
|
129
|
+
withCredentials: false,
|
|
130
|
+
headers: new HttpHeaders(this.headers)
|
|
129
131
|
});
|
|
130
132
|
this.http
|
|
131
133
|
.request(req)
|
|
@@ -134,15 +136,21 @@ export class XUploadComponent extends XUploadProperty {
|
|
|
134
136
|
let reader = new FileReader();
|
|
135
137
|
reader.readAsText(blob, 'utf-8');
|
|
136
138
|
reader.onload = () => {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
139
|
+
let body = [];
|
|
140
|
+
try {
|
|
141
|
+
body = JSON.parse(reader.result);
|
|
142
|
+
if (XIsArray(body) && body.length > 0) {
|
|
143
|
+
file.url = body[0];
|
|
144
|
+
}
|
|
145
|
+
file.body = body;
|
|
141
146
|
}
|
|
142
|
-
|
|
143
|
-
|
|
147
|
+
catch (e) {
|
|
148
|
+
console.error(e);
|
|
149
|
+
}
|
|
150
|
+
if (index !== -1) {
|
|
144
151
|
this.files[index] = file;
|
|
145
152
|
}
|
|
153
|
+
this.uploadSuccess.emit(file);
|
|
146
154
|
this.cdr.detectChanges();
|
|
147
155
|
};
|
|
148
156
|
})))
|
|
@@ -155,7 +163,7 @@ export class XUploadComponent extends XUploadProperty {
|
|
|
155
163
|
this.cdr.detectChanges();
|
|
156
164
|
});
|
|
157
165
|
}
|
|
158
|
-
getEventMessage(event, file,
|
|
166
|
+
getEventMessage(event, file, successFunc) {
|
|
159
167
|
switch (event.type) {
|
|
160
168
|
case HttpEventType.Sent:
|
|
161
169
|
file.state = 'ready';
|
|
@@ -169,8 +177,7 @@ export class XUploadComponent extends XUploadProperty {
|
|
|
169
177
|
return `上传中`;
|
|
170
178
|
case HttpEventType.Response:
|
|
171
179
|
file.state = 'success';
|
|
172
|
-
|
|
173
|
-
this.uploadSuccess.emit(file);
|
|
180
|
+
successFunc(event.body);
|
|
174
181
|
return `文件上传完毕`;
|
|
175
182
|
}
|
|
176
183
|
return;
|
|
@@ -238,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
238
245
|
type: ViewChild,
|
|
239
246
|
args: ['file', { static: true }]
|
|
240
247
|
}] } });
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3VwbG9hZC91cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsYUFBYSxFQUFFLFdBQVcsRUFBYSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUl2QixTQUFTLEVBSVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBZSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRyxPQUFPLEVBQWtCLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7OztBQVV2RCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQXdCbkQsWUFDUyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixJQUFnQixFQUNQLEdBQXNCLEVBQy9CLGFBQTZCLEVBQzdCLGdCQUFrQyxFQUNsQyxJQUFrQixFQUNsQixhQUE2QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQVRELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ1AsUUFBRyxHQUFILEdBQUcsQ0FB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QXdFQTsyRkQxQ2EsZ0JBQWdCO2tCQVI1QixTQUFTOytCQUNFLEdBQUcsYUFBYSxFQUFFLGlCQUdiLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLGtCQUFrQixDQUFDO3NTQUdSLElBQUk7c0JBQXhDLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudFR5cGUsIEh0dHBSZXF1ZXN0LCBIdHRwRXZlbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3lcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFVwbG9hZFByZWZpeCwgWFVwbG9hZE5vZGUsIFhVcGxvYWRQcm9wZXJ0eSwgWFVwbG9hZFBvcnRhbFByZWZpeCB9IGZyb20gJy4vdXBsb2FkLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWENvbmZpZ1NlcnZpY2UsIFhJc1RlbXBsYXRlUmVmIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFhJMThuU2VydmljZSwgWEkxOG5VcGxvYWQgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgWFBvcnRhbE92ZXJsYXlSZWYsIFhQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgWFVwbG9hZFBvcnRhbENvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkLXBvcnRhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFVwbG9hZFByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWFVwbG9hZENvbXBvbmVudCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVXBsb2FkQ29tcG9uZW50IGV4dGVuZHMgWFVwbG9hZFByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBmaWxlITogRWxlbWVudFJlZjtcclxuICBmaWxlczogWFVwbG9hZE5vZGVbXSA9IFtdO1xyXG4gIHNob3dVcGxvYWQgPSBmYWxzZTtcclxuICB1cGxvYWROb2RlczogWFVwbG9hZE5vZGVbXSA9IFtdO1xyXG4gIGxvY2FsZTogWEkxOG5VcGxvYWQgPSB7fTtcclxuICBwb3J0YWwhOiBYUG9ydGFsT3ZlcmxheVJlZjxYVXBsb2FkUG9ydGFsQ29tcG9uZW50PjtcclxuXHJcbiAgZ2V0IGdldFRleHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZXh0IHx8IHRoaXMubG9jYWxlLnVwbG9hZFRleHQ7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNUZW1wbGF0ZVRleHQoKSB7XHJcbiAgICByZXR1cm4gWElzVGVtcGxhdGVSZWYodGhpcy5nZXRUZXh0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IFhVcGxvYWROb2RlW10pIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2V0RmlsZXMoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgcG9ydGFsU2VydmljZTogWFBvcnRhbFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2UsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2VcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKCh4KSA9PiB4LnVwbG9hZCBhcyBYSTE4blVwbG9hZCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB4O1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdpbWcnKSB0aGlzLmFjY2VwdCA9ICdpbWFnZS8qJztcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0RmlsZXMoKSB7XHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkpIHJldHVybjtcclxuICAgIC8vIGlmICh0aGlzLnR5cGUgIT09ICdpbWcnKSByZXR1cm47XHJcbiAgICB0aGlzLmZpbGVzID0gdGhpcy52YWx1ZS5tYXAoKHgpID0+IHtcclxuICAgICAgaWYgKCF4LnN0YXRlKSB4LnN0YXRlID0gJ3N1Y2Nlc3MnO1xyXG4gICAgICByZXR1cm4geDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlKGV2ZW50OiBFdmVudCkge1xyXG4gICAgbGV0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBpZiAodHlwZW9mIGlucHV0ID09PSAndW5kZWZpbmVkJyB8fCBpbnB1dC5maWxlcz8ubGVuZ3RoID09PSAwKSByZXR1cm47XHJcbiAgICBsZXQgZmlsZXM6IFhVcGxvYWROb2RlW10gPSBbXTtcclxuICAgIGxldCBtYXggPSB0aGlzLm1heExpbWl0ID8gTnVtYmVyKHRoaXMubWF4TGltaXQpIDogKGlucHV0LmZpbGVzIGFzIEZpbGVMaXN0KS5sZW5ndGg7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1heDsgaSsrKSB7XHJcbiAgICAgIGxldCBmaWxlOiBYVXBsb2FkTm9kZSA9IChpbnB1dC5maWxlcyBhcyBGaWxlTGlzdCkuaXRlbShpKSBhcyBYVXBsb2FkTm9kZTtcclxuICAgICAgZmlsZS5zdGF0ZSA9ICdyZWFkeSc7XHJcbiAgICAgIGZpbGVzID0gWy4uLmZpbGVzLCBmaWxlXTtcclxuICAgIH1cclxuICAgIGlmIChmaWxlcy5sZW5ndGggPiAwKSB0aGlzLnNob3dVcGxvYWQgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGVNb2RlbCA9PT0gJ2NvdmVyJykge1xyXG4gICAgICB0aGlzLmZpbGVzID0gZmlsZXM7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubXVsdGlwbGVNb2RlbCA9PT0gJ2FkZCcpIHtcclxuICAgICAgdGhpcy5maWxlcyA9IFsuLi50aGlzLmZpbGVzLCAuLi5maWxlc107XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5maWxlcztcclxuICAgIHRoaXMub25DaGFuZ2UgJiYgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMub25VcGxvYWRpbmcoKTtcclxuICAgIGlucHV0LnZhbHVlID0gJyc7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUoZmlsZTogWFVwbG9hZE5vZGUsIGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuZmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIGlmICh0aGlzLmZpbGVzLmxlbmd0aCA9PT0gMCkgdGhpcy5maWxlLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIHRoaXMuc2hvd1VwbG9hZCA9IHRoaXMuZmlsZXMuZmluZCgoeCkgPT4geC5zdGF0ZSA9PT0gJ3JlYWR5JykgIT0gbnVsbDtcclxuICAgIGNvbnN0IHZpbmRleCA9IHRoaXMudmFsdWUuaW5kZXhPZihmaWxlKTtcclxuICAgIGlmICh2aW5kZXggPiAtMSkge1xyXG4gICAgICB0aGlzLnZhbHVlLnNwbGljZSh2aW5kZXgsIDEpO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlICYmIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlbW92ZUNsaWNrLmVtaXQoeyBmaWxlOiBmaWxlLCBpbmRleDogaW5kZXggfSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRDbGljaygpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLmZpbGUubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG4gIH1cclxuXHJcbiAgb25VcGxvYWRpbmcoKSB7XHJcbiAgICBpZiAoIXRoaXMuYWN0aW9uKSByZXR1cm47XHJcbiAgICBsZXQgcmVhZHlGaWxlcyA9IHRoaXMuZmlsZXMuZmlsdGVyKCh4KSA9PiB4LnN0YXRlID09PSAncmVhZHknKTtcclxuICAgIHJlYWR5RmlsZXMuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnVwbG9hZEZpbGUoeCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwbG9hZEZpbGUoZmlsZTogWFVwbG9hZE5vZGUsIGluZGV4ID0gLTEpIHtcclxuICAgIGxldCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XHJcbiAgICBjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ1BPU1QnLCB0aGlzLmFjdGlvbiBhcyBzdHJpbmcsIGZvcm1EYXRhLCB7XHJcbiAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG4gICAgICByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcidcclxuICAgIH0pO1xyXG4gICAgdGhpcy5odHRwXHJcbiAgICAgIC5yZXF1ZXN0KHJlcSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChldmVudCkgPT5cclxuICAgICAgICAgIHRoaXMuZ2V0RXZlbnRNZXNzYWdlKGV2ZW50LCBmaWxlLCAoYm9keTogQmxvYlBhcnQpID0+IHtcclxuICAgICAgICAgICAgbGV0IGJsb2IgPSBuZXcgQmxvYihbYm9keV0pO1xyXG4gICAgICAgICAgICBsZXQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoYmxvYiwgJ3V0Zi04Jyk7XHJcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgZmlsZS51cmwgPSBKU09OLnBhcnNlKHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nKVswXTtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhmaWxlKTtcclxuICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnZhbHVlLnB1c2goZmlsZSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMudmFsdWVbaW5kZXhdID0gZmlsZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlsZXNbaW5kZXhdID0gZmlsZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNob3dVcGxvYWQgPSB0aGlzLmZpbGVzLmZpbmQoKHkpID0+IHkuc3RhdGUgPT09ICdyZWFkeScpICE9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICBmaWxlLnN0YXRlID0gJ2Vycm9yJztcclxuICAgICAgICAgIHRoaXMudXBsb2FkRXJyb3IuZW1pdChmaWxlKTtcclxuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRFdmVudE1lc3NhZ2UoZXZlbnQ6IEh0dHBFdmVudDxhbnk+LCBmaWxlOiBYVXBsb2FkTm9kZSwgZnVuOiBGdW5jdGlvbikge1xyXG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5TZW50OlxyXG4gICAgICAgIGZpbGUuc3RhdGUgPSAncmVhZHknO1xyXG4gICAgICAgIHRoaXMudXBsb2FkUmVhZHkuZW1pdChmaWxlKTtcclxuICAgICAgICByZXR1cm4gYOW8gOWni+S4iuS8oOaWh+S7tmA7XHJcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzczpcclxuICAgICAgICBmaWxlLnN0YXRlID0gJ3VwbG9hZGluZyc7XHJcbiAgICAgICAgaWYgKGV2ZW50LnRvdGFsKSBmaWxlLnBlcmNlbnQgPSBNYXRoLnJvdW5kKCgxMDAgKiBldmVudC5sb2FkZWQpIC8gZXZlbnQudG90YWwpO1xyXG4gICAgICAgIHRoaXMudXBsb2FkaW5nLmVtaXQoZmlsZSk7XHJcbiAgICAgICAgcmV0dXJuIGDkuIrkvKDkuK1gO1xyXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2U6XHJcbiAgICAgICAgZmlsZS5zdGF0ZSA9ICdzdWNjZXNzJztcclxuICAgICAgICBmdW4oZXZlbnQuYm9keSk7XHJcbiAgICAgICAgdGhpcy51cGxvYWRTdWNjZXNzLmVtaXQoZmlsZSk7XHJcbiAgICAgICAgcmV0dXJuIGDmlofku7bkuIrkvKDlrozmr5VgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUl0ZW0oX2luZGV4OiBudW1iZXIsIGl0ZW06IFhVcGxvYWROb2RlKSB7XHJcbiAgICByZXR1cm4gYCR7aXRlbS5uYW1lfS0ke2l0ZW0ubGFzdE1vZGlmaWVkfWA7XHJcbiAgfVxyXG5cclxuICBvbkltZ0N1dChmaWxlOiBYVXBsb2FkTm9kZSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5wb3J0YWwgPSB0aGlzLnBvcnRhbFNlcnZpY2UuYXR0YWNoKHtcclxuICAgICAgY29udGVudDogWFVwbG9hZFBvcnRhbENvbXBvbmVudCxcclxuICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICBvdmVybGF5Q29uZmlnOiB7XHJcbiAgICAgICAgcGFuZWxDbGFzczogW1hVcGxvYWRQb3J0YWxQcmVmaXhdLFxyXG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxyXG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMucG9ydGFsU2VydmljZS5zZXRQbGFjZSgnY2VudGVyJylcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldEluc3RhbmNlKGZpbGUsIGluZGV4KTtcclxuICB9XHJcblxyXG4gIHNldEluc3RhbmNlKGZpbGU6IFhVcGxvYWROb2RlLCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBsZXQgY29tcG9uZW50UmVmID0gdGhpcy5wb3J0YWw/LmNvbXBvbmVudFJlZjtcclxuICAgIGlmICghY29tcG9uZW50UmVmKSByZXR1cm47XHJcbiAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSwge1xyXG4gICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICBjbG9zZVBvcnRhbDogKCkgPT4gdGhpcy5jbG9zZVBvcnRhbCgpLFxyXG4gICAgICBkZXN0cm95UG9ydGFsOiAoKSA9PiB0aGlzLmRlc3Ryb3lQb3J0YWwoKSxcclxuICAgICAgc3VyZVBvcnRhbDogKGJsb2I6IEJsb2IpID0+IHtcclxuICAgICAgICBjb25zdCBmbCA9IG5ldyBGaWxlKFtibG9iXSwgZmlsZS5uYW1lLCB7IHR5cGU6IGJsb2IudHlwZSB9KSBhcyBYVXBsb2FkTm9kZTtcclxuICAgICAgICBmbC5zdGF0ZSA9ICdyZWFkeSc7XHJcbiAgICAgICAgdGhpcy51cGxvYWRGaWxlKGZsLCBpbmRleCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHBvcnRhbEF0dGFjaGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kZXRhY2goKTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3lQb3J0YWwoKSB7XHJcbiAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgaW1nRXJyb3IoX2V2ZW50OiBFcnJvckV2ZW50LCBmaWxlOiBYVXBsb2FkTm9kZSkge1xyXG4gICAgZmlsZS5zdGF0ZSA9ICdlcnJvcic7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBpbWdMb2FkKGZpbGU6IFhVcGxvYWROb2RlKSB7XHJcbiAgICBmaWxlLnN0YXRlID0gJ3N1Y2Nlc3MnO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICN1cGxvYWQgY2xhc3M9XCJ4LXVwbG9hZCB4LXVwbG9hZC17eyB0eXBlIH19XCIgW2NsYXNzLngtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICA8aW5wdXQgdHlwZT1cImZpbGVcIiAjZmlsZSAoY2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCIgW2F0dHIuYWNjZXB0XT1cImFjY2VwdFwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIC8+XHJcblxyXG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidsaXN0J1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXBsb2FkQnRuVHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJmaWxlc1RwbDsgY29udGV4dDogeyAkZmlsZXM6IGZpbGVzIH1cIj5cclxuICAgICAgICA8dWwgY2xhc3M9XCJ4LXVwbG9hZC1maWxlc1wiPlxyXG4gICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiIFtjbGFzcy54LXVwbG9hZC1kaXNhYmxlZF09XCIhZG93bmxvYWRcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRvd25sb2FkXCI+XHJcbiAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiZmlsZS51cmxcIiB0YXJnZXQ9XCJfYmxhbmtcIiBbdGl0bGVdPVwiZmlsZS5uYW1lXCI+XHJcbiAgICAgICAgICAgICAgICA8eC1pY29uIHR5cGU9XCJmdG8tZmlsZS10ZXh0XCI+PC94LWljb24+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIngtdXBsb2FkLWZpbGVuYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZG93bmxvYWRcIj5cclxuICAgICAgICAgICAgICA8YT5cclxuICAgICAgICAgICAgICAgIDx4LWljb24gdHlwZT1cImZ0by1maWxlLXRleHRcIj48L3gtaWNvbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwieC11cGxvYWQtZmlsZW5hbWVcIj57eyBmaWxlLm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZpbGUuc3RhdGVcIj5cclxuICAgICAgICAgICAgICA8eC1pY29uIGNsYXNzPVwieC11cGxvYWQtc3RhdGVcIiAqbmdTd2l0Y2hDYXNlPVwiJ3JlYWR5J1wiIHR5cGU9XCJmdG8tY2xvY2tcIj48L3gtaWNvbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIngtdXBsb2FkLXBlcmNlbnRcIiAqbmdTd2l0Y2hDYXNlPVwiJ3VwbG9hZGluZydcIj57eyBmaWxlLnBlcmNlbnQgfX0lPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDx4LWljb24gY2xhc3M9XCJ4LXVwbG9hZC1zdGF0ZSBzdWNjZXNzXCIgKm5nU3dpdGNoQ2FzZT1cIidzdWNjZXNzJ1wiIHR5cGU9XCJmdG8tY2hlY2tcIj48L3gtaWNvbj5cclxuICAgICAgICAgICAgICA8eC1pY29uIGNsYXNzPVwieC11cGxvYWQtc3RhdGUgZXJyb3JcIiAqbmdTd2l0Y2hDYXNlPVwiJ2Vycm9yJ1wiIHR5cGU9XCJmdG8taW5mb1wiPjwveC1pY29uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPHgtYnV0dG9uICpuZ0lmPVwiZmlsZS5zdGF0ZSAhPT0gJ3VwbG9hZGluZydcIiBpY29uPVwiZnRvLXhcIiAoY2xpY2spPVwicmVtb3ZlKGZpbGUsIGkpXCIgb25seUljb24gY2xvc2FibGUgc2l6ZT1cIm1pbmlcIj48L3gtYnV0dG9uPlxyXG4gICAgICAgICAgPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ltZydcIj5cclxuICAgICAgPHgtaW1hZ2UtZ3JvdXA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlczsgaW5kZXggYXMgaTsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIj5cclxuICAgICAgICAgIDx4LWltYWdlXHJcbiAgICAgICAgICAgIFtzcmNdPVwiZmlsZS51cmxcIlxyXG4gICAgICAgICAgICAobG9hZCk9XCJpbWdMb2FkKGZpbGUpXCJcclxuICAgICAgICAgICAgKGVycm9yKT1cImltZ0Vycm9yKCRldmVudCwgZmlsZSlcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInt7IGZpbGUuc3RhdGUgfX1cIlxyXG4gICAgICAgICAgICBbcHJldmlld1RwbF09XCJwcmV2aWV3VHBsXCJcclxuICAgICAgICAgICAgW2ZhbGxiYWNrXT1cImltZ0ZhbGxiYWNrXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwveC1pbWFnZT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcHJldmlld1RwbCBsZXQtaW1hZ2U9XCIkaW1hZ2VcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLXVwbG9hZGluZ1wiICpuZ0lmPVwiZmlsZS5zdGF0ZSA9PSAndXBsb2FkaW5nJ1wiPlxyXG4gICAgICAgICAgICAgIDx4LXByb2dyZXNzIFtwZXJjZW50XT1cImZpbGUucGVyY2VudCFcIiBpbmZvPVwiZmFsc2VcIj48L3gtcHJvZ3Jlc3M+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwieC1pbWFnZS1vdmVybGF5XCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmlsZS5zdGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHgtaWNvbiBjbGFzcz1cIngtdXBsb2FkLXN0YXRlXCIgKm5nU3dpdGNoQ2FzZT1cIidyZWFkeSdcIiB0eXBlPVwiZnRvLWNsb2NrXCI+PC94LWljb24+XHJcbiAgICAgICAgICAgICAgICA8eC1pY29uIHR5cGU9XCJmdG8tZXllXCIgKm5nU3dpdGNoQ2FzZT1cIidzdWNjZXNzJ1wiIChjbGljayk9XCJpbWFnZS5vblByZXZpZXcoKVwiPjwveC1pY29uPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDx4LWljb24gKm5nSWY9XCJpbWdDdXQgJiYgZmlsZS5zdGF0ZSA9PT0gJ3N1Y2Nlc3MnXCIgdHlwZT1cImZ0by1jcm9wXCIgKGNsaWNrKT1cIm9uSW1nQ3V0KGZpbGUsIGkpXCI+PC94LWljb24+XHJcbiAgICAgICAgICAgICAgPHgtaWNvbiAqbmdJZj1cImZpbGUuc3RhdGUgIT09ICd1cGxvYWRpbmcnXCIgdHlwZT1cImZ0by10cmFzaC0yXCIgKGNsaWNrKT1cInJlbW92ZShmaWxlLCBpKVwiPjwveC1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVwbG9hZEJ0blRwbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3gtaW1hZ2UtZ3JvdXA+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI3VwbG9hZEJ0blRwbD5cclxuICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtYnV0dG9uc1wiIFtjbGFzcy54LXVwbG9hZC1idXR0b25zLXRlbXBsYXRlXT1cImlzVGVtcGxhdGVUZXh0XCIgKGNsaWNrKT1cInVwbG9hZENsaWNrKClcIj5cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJnZXRUZXh0XCI+XHJcbiAgICAgIDx4LWJ1dHRvbiBpY29uPVwiZnRvLXVwbG9hZFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIHR5cGU9XCJwcmltYXJ5XCI+e3sgZ2V0VGV4dCB9fTwveC1idXR0b24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3VwbG9hZC91cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsYUFBYSxFQUFFLFdBQVcsRUFBYSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RyxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFJdkIsU0FBUyxFQUlWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQWUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckcsT0FBTyxFQUFrQixRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9CLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBVXZELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxlQUFlO0lBd0JuRCxZQUNTLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLElBQWdCLEVBQ1AsR0FBc0IsRUFDL0IsYUFBNkIsRUFDN0IsZ0JBQWtDLEVBQ2xDLElBQWtCLEVBQ2xCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBVEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDUCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDN0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxTQUFJLEdBQUosSUFBSSxDQUFjO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQTlCdEMsVUFBSyxHQUFrQixFQUFFLENBQUM7UUFDMUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixnQkFBVyxHQUFrQixFQUFFLENBQUM7UUFDaEMsV0FBTSxHQUFnQixFQUFFLENBQUM7UUFXakIsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFtQnpDLENBQUM7SUEzQkQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFJUSxVQUFVLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQWVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVk7YUFDbkIsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQXFCLENBQUMsRUFDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDM0I7YUFDQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSztZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ25ELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDdkMsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7Z0JBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDbEMsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBWTtRQUNqQixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUM3QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTztRQUN0RSxJQUFJLEtBQUssR0FBa0IsRUFBRSxDQUFDO1FBQzlCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFFLEtBQUssQ0FBQyxLQUFrQixDQUFDLE1BQU0sQ0FBQztRQUNuRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzVCLElBQUksSUFBSSxHQUFpQixLQUFLLENBQUMsS0FBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFnQixDQUFDO1lBQ3pFLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1lBQ3JCLEtBQUssR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUM3QyxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssT0FBTyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQ3BCO2FBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUssRUFBRTtZQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7U0FDeEM7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQWlCLEVBQUUsS0FBYTtRQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQztRQUN0RSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFDekIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDL0QsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQWlCLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUN0QyxJQUFJLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzlCLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlCLE1BQU0sR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTyxFQUFFLFFBQVEsRUFBRTtZQUMxRCxjQUFjLEVBQUUsSUFBSTtZQUNwQixZQUFZLEVBQUUsYUFBYTtZQUMzQixlQUFlLEVBQUUsS0FBSztZQUN0QixPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUN2QyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSTthQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUM7YUFDWixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDWixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFjLEVBQUUsRUFBRTtZQUNuRCxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDNUIsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUM5QixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNqQyxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDbkIsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNkLElBQUk7b0JBQ0YsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQWdCLENBQUMsQ0FBQztvQkFDM0MsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQ3JDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNwQjtvQkFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztpQkFDbEI7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDbEI7Z0JBQ0QsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUMxQjtnQkFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQixDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUNGO2FBQ0EsU0FBUyxDQUNSLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxFQUNELEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUNGLENBQUM7SUFDTixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQXFCLEVBQUUsSUFBaUIsRUFBRSxXQUFxQjtRQUM3RSxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDbEIsS0FBSyxhQUFhLENBQUMsSUFBSTtnQkFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM1QixPQUFPLFFBQVEsQ0FBQztZQUNsQixLQUFLLGFBQWEsQ0FBQyxjQUFjO2dCQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztnQkFDekIsSUFBSSxLQUFLLENBQUMsS0FBSztvQkFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzFCLE9BQU8sS0FBSyxDQUFDO1lBQ2YsS0FBSyxhQUFhLENBQUMsUUFBUTtnQkFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7Z0JBQ3ZCLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hCLE9BQU8sUUFBUSxDQUFDO1NBQ25CO1FBQ0QsT0FBTztJQUNULENBQUM7SUFFRCxXQUFXLENBQUMsTUFBYyxFQUFFLElBQWlCO1FBQzNDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQWlCLEVBQUUsS0FBYTtRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3RDLE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxhQUFhLEVBQUU7Z0JBQ2IsVUFBVSxFQUFFLENBQUMsbUJBQW1CLENBQUM7Z0JBQ2pDLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7YUFDeEQ7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWlCLEVBQUUsS0FBYTtRQUMxQyxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQztRQUM3QyxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU87UUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFO1lBQ25DLElBQUksRUFBRSxJQUFJO1lBQ1YsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckMsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDekMsVUFBVSxFQUFFLENBQUMsSUFBVSxFQUFFLEVBQUU7Z0JBQ3pCLE1BQU0sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQWdCLENBQUM7Z0JBQzNFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO2dCQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM3QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWtCLEVBQUUsSUFBaUI7UUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQWlCO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7Z0lBaFBVLGdCQUFnQjtvSEFBaEIsZ0JBQWdCLG1DQUZoQixDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLDZKQzVCL0MsNnlIQXdFQTsyRkQxQ2EsZ0JBQWdCO2tCQVI1QixTQUFTOytCQUNFLEdBQUcsYUFBYSxFQUFFLGlCQUdiLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLGtCQUFrQixDQUFDO3NTQUdSLElBQUk7c0JBQXhDLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudFR5cGUsIEh0dHBSZXF1ZXN0LCBIdHRwRXZlbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBPbkluaXQsXHJcbiAgT25EZXN0cm95XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhVcGxvYWRQcmVmaXgsIFhVcGxvYWROb2RlLCBYVXBsb2FkUHJvcGVydHksIFhVcGxvYWRQb3J0YWxQcmVmaXggfSBmcm9tICcuL3VwbG9hZC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhDb25maWdTZXJ2aWNlLCBYSXNBcnJheSwgWElzVGVtcGxhdGVSZWYgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4blVwbG9hZCB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5pbXBvcnQgeyBYUG9ydGFsT3ZlcmxheVJlZiwgWFBvcnRhbFNlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9wb3J0YWwnO1xyXG5pbXBvcnQgeyBYVXBsb2FkUG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi91cGxvYWQtcG9ydGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYVXBsb2FkUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtYVmFsdWVBY2Nlc3NvcihYVXBsb2FkQ29tcG9uZW50KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhVcGxvYWRDb21wb25lbnQgZXh0ZW5kcyBYVXBsb2FkUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZScsIHsgc3RhdGljOiB0cnVlIH0pIGZpbGUhOiBFbGVtZW50UmVmO1xyXG4gIGZpbGVzOiBYVXBsb2FkTm9kZVtdID0gW107XHJcbiAgc2hvd1VwbG9hZCA9IGZhbHNlO1xyXG4gIHVwbG9hZE5vZGVzOiBYVXBsb2FkTm9kZVtdID0gW107XHJcbiAgbG9jYWxlOiBYSTE4blVwbG9hZCA9IHt9O1xyXG4gIHBvcnRhbCE6IFhQb3J0YWxPdmVybGF5UmVmPFhVcGxvYWRQb3J0YWxDb21wb25lbnQ+O1xyXG5cclxuICBnZXQgZ2V0VGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRleHQgfHwgdGhpcy5sb2NhbGUudXBsb2FkVGV4dDtcclxuICB9XHJcblxyXG4gIGdldCBpc1RlbXBsYXRlVGV4dCgpIHtcclxuICAgIHJldHVybiBYSXNUZW1wbGF0ZVJlZih0aGlzLmdldFRleHQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogWFVwbG9hZE5vZGVbXSkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZXRGaWxlcygpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHVibGljIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBwb3J0YWxTZXJ2aWNlOiBYUG9ydGFsU2VydmljZSxcclxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHVibGljIGkxOG46IFhJMThuU2VydmljZSxcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+IHgudXBsb2FkIGFzIFhJMThuVXBsb2FkKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmxvY2FsZSA9IHg7XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2ltZycpIHRoaXMuYWNjZXB0ID0gJ2ltYWdlLyonO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRGaWxlcygpIHtcclxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSkgcmV0dXJuO1xyXG4gICAgLy8gaWYgKHRoaXMudHlwZSAhPT0gJ2ltZycpIHJldHVybjtcclxuICAgIHRoaXMuZmlsZXMgPSB0aGlzLnZhbHVlLm1hcCgoeCkgPT4ge1xyXG4gICAgICBpZiAoIXguc3RhdGUpIHguc3RhdGUgPSAnc3VjY2Vzcyc7XHJcbiAgICAgIHJldHVybiB4O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBsZXQgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICd1bmRlZmluZWQnIHx8IGlucHV0LmZpbGVzPy5sZW5ndGggPT09IDApIHJldHVybjtcclxuICAgIGxldCBmaWxlczogWFVwbG9hZE5vZGVbXSA9IFtdO1xyXG4gICAgbGV0IG1heCA9IHRoaXMubWF4TGltaXQgPyBOdW1iZXIodGhpcy5tYXhMaW1pdCkgOiAoaW5wdXQuZmlsZXMgYXMgRmlsZUxpc3QpLmxlbmd0aDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWF4OyBpKyspIHtcclxuICAgICAgbGV0IGZpbGU6IFhVcGxvYWROb2RlID0gKGlucHV0LmZpbGVzIGFzIEZpbGVMaXN0KS5pdGVtKGkpIGFzIFhVcGxvYWROb2RlO1xyXG4gICAgICBmaWxlLnN0YXRlID0gJ3JlYWR5JztcclxuICAgICAgZmlsZXMgPSBbLi4uZmlsZXMsIGZpbGVdO1xyXG4gICAgfVxyXG4gICAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHRoaXMuc2hvd1VwbG9hZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZU1vZGVsID09PSAnY292ZXInKSB7XHJcbiAgICAgIHRoaXMuZmlsZXMgPSBmaWxlcztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5tdWx0aXBsZU1vZGVsID09PSAnYWRkJykge1xyXG4gICAgICB0aGlzLmZpbGVzID0gWy4uLnRoaXMuZmlsZXMsIC4uLmZpbGVzXTtcclxuICAgIH1cclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLmZpbGVzO1xyXG4gICAgdGhpcy5vbkNoYW5nZSAmJiB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5vblVwbG9hZGluZygpO1xyXG4gICAgaW5wdXQudmFsdWUgPSAnJztcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZShmaWxlOiBYVXBsb2FkTm9kZSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgaWYgKHRoaXMuZmlsZXMubGVuZ3RoID09PSAwKSB0aGlzLmZpbGUubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5zaG93VXBsb2FkID0gdGhpcy5maWxlcy5maW5kKCh4KSA9PiB4LnN0YXRlID09PSAncmVhZHknKSAhPSBudWxsO1xyXG4gICAgY29uc3QgdmluZGV4ID0gdGhpcy52YWx1ZS5pbmRleE9mKGZpbGUpO1xyXG4gICAgaWYgKHZpbmRleCA+IC0xKSB7XHJcbiAgICAgIHRoaXMudmFsdWUuc3BsaWNlKHZpbmRleCwgMSk7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UgJiYgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVtb3ZlQ2xpY2suZW1pdCh7IGZpbGU6IGZpbGUsIGluZGV4OiBpbmRleCB9KTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHVwbG9hZENsaWNrKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuZmlsZS5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBvblVwbG9hZGluZygpIHtcclxuICAgIGlmICghdGhpcy5hY3Rpb24pIHJldHVybjtcclxuICAgIGxldCByZWFkeUZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIoKHgpID0+IHguc3RhdGUgPT09ICdyZWFkeScpO1xyXG4gICAgcmVhZHlGaWxlcy5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMudXBsb2FkRmlsZSh4KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkRmlsZShmaWxlOiBYVXBsb2FkTm9kZSwgaW5kZXggPSAtMSkge1xyXG4gICAgbGV0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcclxuICAgIGNvbnN0IHJlcSA9IG5ldyBIdHRwUmVxdWVzdCgnUE9TVCcsIHRoaXMuYWN0aW9uISwgZm9ybURhdGEsIHtcclxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyxcclxuICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycylcclxuICAgIH0pO1xyXG4gICAgdGhpcy5odHRwXHJcbiAgICAgIC5yZXF1ZXN0KHJlcSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChldmVudCkgPT5cclxuICAgICAgICAgIHRoaXMuZ2V0RXZlbnRNZXNzYWdlKGV2ZW50LCBmaWxlLCAoYm9keTogQmxvYlBhcnQpID0+IHtcclxuICAgICAgICAgICAgbGV0IGJsb2IgPSBuZXcgQmxvYihbYm9keV0pO1xyXG4gICAgICAgICAgICBsZXQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoYmxvYiwgJ3V0Zi04Jyk7XHJcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IGJvZHkgPSBbXTtcclxuICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgYm9keSA9IEpTT04ucGFyc2UocmVhZGVyLnJlc3VsdCBhcyBzdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKFhJc0FycmF5KGJvZHkpICYmIGJvZHkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICBmaWxlLnVybCA9IGJvZHlbMF07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBmaWxlLmJvZHkgPSBib2R5O1xyXG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlsZXNbaW5kZXhdID0gZmlsZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy51cGxvYWRTdWNjZXNzLmVtaXQoZmlsZSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNob3dVcGxvYWQgPSB0aGlzLmZpbGVzLmZpbmQoKHkpID0+IHkuc3RhdGUgPT09ICdyZWFkeScpICE9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICBmaWxlLnN0YXRlID0gJ2Vycm9yJztcclxuICAgICAgICAgIHRoaXMudXBsb2FkRXJyb3IuZW1pdChmaWxlKTtcclxuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRFdmVudE1lc3NhZ2UoZXZlbnQ6IEh0dHBFdmVudDxhbnk+LCBmaWxlOiBYVXBsb2FkTm9kZSwgc3VjY2Vzc0Z1bmM6IEZ1bmN0aW9uKSB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlNlbnQ6XHJcbiAgICAgICAgZmlsZS5zdGF0ZSA9ICdyZWFkeSc7XHJcbiAgICAgICAgdGhpcy51cGxvYWRSZWFkeS5lbWl0KGZpbGUpO1xyXG4gICAgICAgIHJldHVybiBg5byA5aeL5LiK5Lyg5paH5Lu2YDtcclxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzOlxyXG4gICAgICAgIGZpbGUuc3RhdGUgPSAndXBsb2FkaW5nJztcclxuICAgICAgICBpZiAoZXZlbnQudG90YWwpIGZpbGUucGVyY2VudCA9IE1hdGgucm91bmQoKDEwMCAqIGV2ZW50LmxvYWRlZCkgLyBldmVudC50b3RhbCk7XHJcbiAgICAgICAgdGhpcy51cGxvYWRpbmcuZW1pdChmaWxlKTtcclxuICAgICAgICByZXR1cm4gYOS4iuS8oOS4rWA7XHJcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcclxuICAgICAgICBmaWxlLnN0YXRlID0gJ3N1Y2Nlc3MnO1xyXG4gICAgICAgIHN1Y2Nlc3NGdW5jKGV2ZW50LmJvZHkpO1xyXG4gICAgICAgIHJldHVybiBg5paH5Lu25LiK5Lyg5a6M5q+VYDtcclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYVXBsb2FkTm9kZSkge1xyXG4gICAgcmV0dXJuIGAke2l0ZW0ubmFtZX0tJHtpdGVtLmxhc3RNb2RpZmllZH1gO1xyXG4gIH1cclxuXHJcbiAgb25JbWdDdXQoZmlsZTogWFVwbG9hZE5vZGUsIGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMucG9ydGFsID0gdGhpcy5wb3J0YWxTZXJ2aWNlLmF0dGFjaCh7XHJcbiAgICAgIGNvbnRlbnQ6IFhVcGxvYWRQb3J0YWxDb21wb25lbnQsXHJcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZixcclxuICAgICAgb3ZlcmxheUNvbmZpZzoge1xyXG4gICAgICAgIHBhbmVsQ2xhc3M6IFtYVXBsb2FkUG9ydGFsUHJlZml4XSxcclxuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2UoJ2NlbnRlcicpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRJbnN0YW5jZShmaWxlLCBpbmRleCk7XHJcbiAgfVxyXG5cclxuICBzZXRJbnN0YW5jZShmaWxlOiBYVXBsb2FkTm9kZSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IHRoaXMucG9ydGFsPy5jb21wb25lbnRSZWY7XHJcbiAgICBpZiAoIWNvbXBvbmVudFJlZikgcmV0dXJuO1xyXG4gICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIHtcclxuICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgY2xvc2VQb3J0YWw6ICgpID0+IHRoaXMuY2xvc2VQb3J0YWwoKSxcclxuICAgICAgZGVzdHJveVBvcnRhbDogKCkgPT4gdGhpcy5kZXN0cm95UG9ydGFsKCksXHJcbiAgICAgIHN1cmVQb3J0YWw6IChibG9iOiBCbG9iKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZmwgPSBuZXcgRmlsZShbYmxvYl0sIGZpbGUubmFtZSwgeyB0eXBlOiBibG9iLnR5cGUgfSkgYXMgWFVwbG9hZE5vZGU7XHJcbiAgICAgICAgZmwuc3RhdGUgPSAncmVhZHknO1xyXG4gICAgICAgIHRoaXMudXBsb2FkRmlsZShmbCwgaW5kZXgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwb3J0YWxBdHRhY2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGV0YWNoKCk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBkZXN0cm95UG9ydGFsKCkge1xyXG4gICAgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcclxuICB9XHJcblxyXG4gIGltZ0Vycm9yKF9ldmVudDogRXJyb3JFdmVudCwgZmlsZTogWFVwbG9hZE5vZGUpIHtcclxuICAgIGZpbGUuc3RhdGUgPSAnZXJyb3InO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgaW1nTG9hZChmaWxlOiBYVXBsb2FkTm9kZSkge1xyXG4gICAgZmlsZS5zdGF0ZSA9ICdzdWNjZXNzJztcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAjdXBsb2FkIGNsYXNzPVwieC11cGxvYWQgeC11cGxvYWQte3sgdHlwZSB9fVwiIFtjbGFzcy54LWRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgPGlucHV0IHR5cGU9XCJmaWxlXCIgI2ZpbGUgKGNoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiIFthdHRyLmFjY2VwdF09XCJhY2NlcHRcIiBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiAvPlxyXG5cclxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ0eXBlXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGlzdCdcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVwbG9hZEJ0blRwbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZmlsZXNUcGw7IGNvbnRleHQ6IHsgJGZpbGVzOiBmaWxlcyB9XCI+XHJcbiAgICAgICAgPHVsIGNsYXNzPVwieC11cGxvYWQtZmlsZXNcIj5cclxuICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlczsgaW5kZXggYXMgaTsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIiBbY2xhc3MueC11cGxvYWQtZGlzYWJsZWRdPVwiIWRvd25sb2FkXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb3dubG9hZFwiPlxyXG4gICAgICAgICAgICAgIDxhIFtocmVmXT1cImZpbGUudXJsXCIgdGFyZ2V0PVwiX2JsYW5rXCIgW3RpdGxlXT1cImZpbGUubmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgPHgtaWNvbiB0eXBlPVwiZnRvLWZpbGUtdGV4dFwiPjwveC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ4LXVwbG9hZC1maWxlbmFtZVwiPnt7IGZpbGUubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRvd25sb2FkXCI+XHJcbiAgICAgICAgICAgICAgPGE+XHJcbiAgICAgICAgICAgICAgICA8eC1pY29uIHR5cGU9XCJmdG8tZmlsZS10ZXh0XCI+PC94LWljb24+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIngtdXBsb2FkLWZpbGVuYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWxlLnN0YXRlXCI+XHJcbiAgICAgICAgICAgICAgPHgtaWNvbiBjbGFzcz1cIngtdXBsb2FkLXN0YXRlXCIgKm5nU3dpdGNoQ2FzZT1cIidyZWFkeSdcIiB0eXBlPVwiZnRvLWNsb2NrXCI+PC94LWljb24+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ4LXVwbG9hZC1wZXJjZW50XCIgKm5nU3dpdGNoQ2FzZT1cIid1cGxvYWRpbmcnXCI+e3sgZmlsZS5wZXJjZW50IH19JTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8eC1pY29uIGNsYXNzPVwieC11cGxvYWQtc3RhdGUgc3VjY2Vzc1wiICpuZ1N3aXRjaENhc2U9XCInc3VjY2VzcydcIiB0eXBlPVwiZnRvLWNoZWNrXCI+PC94LWljb24+XHJcbiAgICAgICAgICAgICAgPHgtaWNvbiBjbGFzcz1cIngtdXBsb2FkLXN0YXRlIGVycm9yXCIgKm5nU3dpdGNoQ2FzZT1cIidlcnJvcidcIiB0eXBlPVwiZnRvLWluZm9cIj48L3gtaWNvbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDx4LWJ1dHRvbiAqbmdJZj1cImZpbGUuc3RhdGUgIT09ICd1cGxvYWRpbmcnXCIgaWNvbj1cImZ0by14XCIgKGNsaWNrKT1cInJlbW92ZShmaWxlLCBpKVwiIG9ubHlJY29uIGNsb3NhYmxlIHNpemU9XCJtaW5pXCI+PC94LWJ1dHRvbj5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpbWcnXCI+XHJcbiAgICAgIDx4LWltYWdlLWdyb3VwPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbGUgb2YgZmlsZXM7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCI+XHJcbiAgICAgICAgICA8eC1pbWFnZVxyXG4gICAgICAgICAgICBbc3JjXT1cImZpbGUudXJsXCJcclxuICAgICAgICAgICAgKGxvYWQpPVwiaW1nTG9hZChmaWxlKVwiXHJcbiAgICAgICAgICAgIChlcnJvcik9XCJpbWdFcnJvcigkZXZlbnQsIGZpbGUpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ7eyBmaWxlLnN0YXRlIH19XCJcclxuICAgICAgICAgICAgW3ByZXZpZXdUcGxdPVwicHJldmlld1RwbFwiXHJcbiAgICAgICAgICAgIFtmYWxsYmFja109XCJpbWdGYWxsYmFja1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L3gtaW1hZ2U+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3ByZXZpZXdUcGwgbGV0LWltYWdlPVwiJGltYWdlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LXVwbG9hZC11cGxvYWRpbmdcIiAqbmdJZj1cImZpbGUuc3RhdGUgPT0gJ3VwbG9hZGluZydcIj5cclxuICAgICAgICAgICAgICA8eC1wcm9ncmVzcyBbcGVyY2VudF09XCJmaWxlLnBlcmNlbnQhXCIgaW5mbz1cImZhbHNlXCI+PC94LXByb2dyZXNzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIngtaW1hZ2Utb3ZlcmxheVwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZpbGUuc3RhdGVcIj5cclxuICAgICAgICAgICAgICAgIDx4LWljb24gY2xhc3M9XCJ4LXVwbG9hZC1zdGF0ZVwiICpuZ1N3aXRjaENhc2U9XCIncmVhZHknXCIgdHlwZT1cImZ0by1jbG9ja1wiPjwveC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPHgtaWNvbiB0eXBlPVwiZnRvLWV5ZVwiICpuZ1N3aXRjaENhc2U9XCInc3VjY2VzcydcIiAoY2xpY2spPVwiaW1hZ2Uub25QcmV2aWV3KClcIj48L3gtaWNvbj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8eC1pY29uICpuZ0lmPVwiaW1nQ3V0ICYmIGZpbGUuc3RhdGUgPT09ICdzdWNjZXNzJ1wiIHR5cGU9XCJmdG8tY3JvcFwiIChjbGljayk9XCJvbkltZ0N1dChmaWxlLCBpKVwiPjwveC1pY29uPlxyXG4gICAgICAgICAgICAgIDx4LWljb24gKm5nSWY9XCJmaWxlLnN0YXRlICE9PSAndXBsb2FkaW5nJ1wiIHR5cGU9XCJmdG8tdHJhc2gtMlwiIChjbGljayk9XCJyZW1vdmUoZmlsZSwgaSlcIj48L3gtaWNvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1cGxvYWRCdG5UcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC94LWltYWdlLWdyb3VwPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICN1cGxvYWRCdG5UcGw+XHJcbiAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLWJ1dHRvbnNcIiBbY2xhc3MueC11cGxvYWQtYnV0dG9ucy10ZW1wbGF0ZV09XCJpc1RlbXBsYXRlVGV4dFwiIChjbGljayk9XCJ1cGxvYWRDbGljaygpXCI+XHJcbiAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZ2V0VGV4dFwiPlxyXG4gICAgICA8eC1idXR0b24gaWNvbj1cImZ0by11cGxvYWRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiB0eXBlPVwicHJpbWFyeVwiPnt7IGdldFRleHQgfX08L3gtYnV0dG9uPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -49,7 +49,7 @@ export class XUploadProperty extends XControlValueAccessor {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
/** @nocollapse */ XUploadProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XUploadProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
-
/** @nocollapse */ XUploadProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XUploadProperty, selector: "ng-component", inputs: { text: "text", action: "action", accept: "accept", type: "type", imgFallback: "imgFallback", imgCut: "imgCut", multiple: "multiple", download: "download", multipleModel: "multipleModel", filesTpl: "filesTpl", maxLimit: "maxLimit" }, outputs: { removeClick: "removeClick", uploadReady: "uploadReady", uploading: "uploading", uploadSuccess: "uploadSuccess", uploadError: "uploadError" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
52
|
+
/** @nocollapse */ XUploadProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XUploadProperty, selector: "ng-component", inputs: { text: "text", action: "action", accept: "accept", type: "type", imgFallback: "imgFallback", imgCut: "imgCut", multiple: "multiple", download: "download", multipleModel: "multipleModel", filesTpl: "filesTpl", maxLimit: "maxLimit", headers: "headers" }, outputs: { removeClick: "removeClick", uploadReady: "uploadReady", uploading: "uploading", uploadSuccess: "uploadSuccess", uploadError: "uploadError" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
53
53
|
__decorate([
|
|
54
54
|
XInputBoolean()
|
|
55
55
|
], XUploadProperty.prototype, "imgCut", void 0);
|
|
@@ -91,6 +91,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
91
91
|
type: Input
|
|
92
92
|
}], maxLimit: [{
|
|
93
93
|
type: Input
|
|
94
|
+
}], headers: [{
|
|
95
|
+
type: Input
|
|
94
96
|
}], removeClick: [{
|
|
95
97
|
type: Output
|
|
96
98
|
}], uploadReady: [{
|
|
@@ -108,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
108
110
|
* @decorator component
|
|
109
111
|
*/
|
|
110
112
|
export const XUploadPortalPrefix = 'x-upload-portal';
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnByb3BlcnR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdXBsb2FkL3VwbG9hZC5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGFBQWEsRUFBMkMsV0FBVyxFQUFXLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTlEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDO0FBQ3hDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQztBQUUvQjs7R0FFRztBQUVILE1BQU0sT0FBTyxlQUFnQixTQUFRLHFCQUFvQztJQUR6RTs7UUFpQkU7OztXQUdHO1FBQ00sU0FBSSxHQUFnQixNQUFNLENBQUM7UUF5Q3BDOzs7V0FHRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXdDLENBQUM7UUFDakY7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBQ3hEOzs7V0FHRztRQUNPLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBQ3REOzs7V0FHRztRQUNPLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUMxRDs7O1dBR0c7UUFDTyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7S0FDekQ7OytIQXRGWSxlQUFlO21IQUFmLGVBQWUsMGVBREwsRUFBRTtBQStCRztJQUFoQixhQUFhLEVBQUU7K0NBQW1CO0FBS2xCO0lBQWhCLGFBQWEsRUFBRTtpREFBcUI7QUFLd0I7SUFBNUQsV0FBVyxDQUFXLGFBQWEsRUFBRSxJQUFJLENBQUM7SUFBRSxhQUFhLEVBQUU7aURBQXFCO0FBS3RCO0lBQTFELFdBQVcsQ0FBdUIsYUFBYSxFQUFFLE9BQU8sQ0FBQztzREFBc0M7QUFVaEY7SUFBZixZQUFZLEVBQUU7aURBQW9COzJGQXZEakMsZUFBZTtrQkFEM0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OEJBTWhCLElBQUk7c0JBQVosS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQUtvQixNQUFNO3NCQUEvQixLQUFLO2dCQUtvQixRQUFRO3NCQUFqQyxLQUFLO2dCQUtnRSxRQUFRO3NCQUE3RSxLQUFLO2dCQUs4RCxhQUFhO3NCQUFoRixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS21CLFFBQVE7c0JBQWhDLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxTQUFTO3NCQUFsQixNQUFNO2dCQUtHLGFBQWE7c0JBQXRCLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTTs7QUFzRFQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWElucHV0Qm9vbGVhbiwgWEJvb2xlYW4sIFhUZW1wbGF0ZSwgWFBvc2l0aW9uLCBYQ29ybmVyLCBYV2l0aENvbmZpZywgWE51bWJlciwgWElucHV0TnVtYmVyIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG4vKipcclxuICogVXBsb2FkXHJcbiAqIEBzZWxlY3RvciB4LXVwbG9hZFxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhVcGxvYWRQcmVmaXggPSAneC11cGxvYWQnO1xyXG5jb25zdCBYX0NPTkZJR19OQU1FID0gJ3VwbG9hZCc7XHJcblxyXG4vKipcclxuICogVXBsb2FkIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYVXBsb2FkUHJvcGVydHkgZXh0ZW5kcyBYQ29udHJvbFZhbHVlQWNjZXNzb3I8WFVwbG9hZE5vZGVbXT4ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrmloflrZdcclxuICAgKiBAZW5fVVMgRGlzcGxheSB0ZXh0XHJcbiAgICovXHJcbiAgQElucHV0KCkgdGV4dD86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6K+35rGC5Zyw5Z2AXHJcbiAgICogQGVuX1VTIFJlcXVlc3QgYWRkcmVzc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFjdGlvbj86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5Lyg5paH5Lu257G75Z6L77yM5LiO5Y6f55Sf55qEIGlucHV0IGZpbGUg57uE5Lu25LiA6Ie0XHJcbiAgICogQGVuX1VTIFVwbG9hZCBmaWxlIHR5cGUsIGNvbnNpc3RlbnQgd2l0aCBuYXRpdmUgaW5wdXQgZmlsZSBjb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBhY2NlcHQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaWh+S7tuaYvuekuuexu+Wei1xyXG4gICAqIEBlbl9VUyBGaWxlIGRpc3BsYXkgdHlwZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHR5cGU6IFhVcGxvYWRUeXBlID0gJ2xpc3QnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlm77niYfnsbvlnovkuIvpnaLliqDovb3lpLHotKXmmL7npLpcclxuICAgKiBAZW5fVVMgUGhvdG8gdHlwZSBiZWxvdyBsb2FkaW5nIGZhaWxlZCBkaXNwbGF5XHJcbiAgICovXHJcbiAgQElucHV0KCkgaW1nRmFsbGJhY2s/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWbvueJh+WJquijgVxyXG4gICAqIEBlbl9VUyBQaWN0dXJlIGNyb3BwaW5nXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBpbWdDdXQ/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aSa5paH5Lu25LiK5LygXHJcbiAgICogQGVuX1VTIE11bHRpcGxlIGZpbGUgdXBsb2FkXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBtdWx0aXBsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDngrnlh7vkuIvovb1cclxuICAgKiBAZW5fVVMgY2xpY2sgZG93bmxvYWRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIHRydWUpIEBYSW5wdXRCb29sZWFuKCkgZG93bmxvYWQhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aSa5qyh5LiK5Lyg55qE5qih5byP77yMY292ZXIg6KaG55uW546w5pyJIGFkZCDnu6fnu63mt7vliqBcclxuICAgKiBAZW5fVVMgRm9yIG1hbnkgdXBsb2FkIG1vZGUsICdjb3ZlcicgY292ZXJzIHRoZSBleGlzdGluZywgJ2FkZCcgY29udGludWUgdG8gYWRkXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhVcGxvYWRNdWx0aXBsZU1vZGVsPihYX0NPTkZJR19OQU1FLCAnY292ZXInKSBtdWx0aXBsZU1vZGVsITogWFVwbG9hZE11bHRpcGxlTW9kZWw7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaWh+S7tuWIl+ihqOiHquWumuS5ieaYvuekuuaooeadv1xyXG4gICAqIEBlbl9VUyBGaWxlIGxpc3QgY3VzdG9tIGRpc3BsYXkgdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBmaWxlc1RwbD86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6ZmQ5Yi25Y2V5qyh5LiK5Lyg5paH5Lu25Liq5pWw77yM5Y+q5pyJ5byA5ZCv5aSa5paH5Lu25LiK5LygIG11bHRpcGxlIOaXtueUn+aViO+8jOm7mOiupOS4jeWBmumZkOWItlxyXG4gICAqIEBlbl9VUyBMaW1pdCB0aGUgbnVtYmVyIG9mIGZpbGVzIHVwbG9hZGVkIGZpbGVzLiBEbyBub3QgcmVzdHJpY3QgdGhlIGRlZmF1bHRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgbWF4TGltaXQ/OiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDorr7nva7kuIrkvKDnmoTor7fmsYLlpLTpg6hcclxuICAgKiBAZW5fVVMgU2V0IHRoZSB1cGxvYWQgcmVxdWVzdCBoZWFkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBoZWFkZXJzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Yig6Zmk5oyJ6ZKu55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIERlbGV0ZSBidXR0b24gZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmVtb3ZlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmlsZTogWFVwbG9hZE5vZGU7IGluZGV4OiBudW1iZXIgfT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5byA5aeL5LiK5Lyg5LqL5Lu2XHJcbiAgICogQGVuX1VTIFN0YXJ0IHVwbG9hZCBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB1cGxvYWRSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8WFVwbG9hZE5vZGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOato+WcqOS4iuS8oOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTdGFydCB1cGxvYWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdXBsb2FkaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxYVXBsb2FkTm9kZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5Lyg5oiQ5Yqf5LqL5Lu2XHJcbiAgICogQGVuX1VTIFN0YXJ0IHVwbG9hZCBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB1cGxvYWRTdWNjZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxYVXBsb2FkTm9kZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5Lyg5aSx6LSl5LqL5Lu2XHJcbiAgICogQGVuX1VTIFN0YXJ0IHVwbG9hZCBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB1cGxvYWRFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8WFVwbG9hZE5vZGU+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04gVXBsb2FkIOaVsOaNruWvueixoVxyXG4gKiBAZW5fVVMgVXBsb2FkIGRhdGEgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhVcGxvYWROb2RlIGV4dGVuZHMgRmlsZSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWcsOWdgFxyXG4gICAqIEBlbl9VUyBhZGRyZXNzXHJcbiAgICovXHJcbiAgdXJsPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnirbmgIFcclxuICAgKiBAZW5fVVMgc3RhdHVzXHJcbiAgICovXHJcbiAgc3RhdGU/OiBYU3RhdGVUeXBlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIrkvKDov5vluqZcclxuICAgKiBAZW5fVVMgVXBsb2FkIHByb2dyZXNzXHJcbiAgICovXHJcbiAgcGVyY2VudD86IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS4iuS8oOi/lOWbnuaVsOaNrlxyXG4gICAqIEBlbl9VUyBVcGxvYWQgYm9keVxyXG4gICAqL1xyXG4gIGJvZHk/OiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5paH5Lu254q25oCBXHJcbiAqIEBlbl9VUyBGaWxlIHN0YXR1c1xyXG4gKi9cclxuZXhwb3J0IHR5cGUgWFN0YXRlVHlwZSA9ICdyZWFkeScgfCAndXBsb2FkaW5nJyB8ICdzdWNjZXNzJyB8ICdlcnJvcic7XHJcblxyXG4vKipcclxuICogQHpoX0NOIOaWh+S7tuaYvuekuuexu+Wei1xyXG4gKiBAZW5fVVMgRmlsZSBkaXNwbGF5IHR5cGVcclxuICovXHJcbmV4cG9ydCB0eXBlIFhVcGxvYWRUeXBlID0gJ2xpc3QnIHwgJ2ltZyc7XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWkmuasoeS4iuS8oOeahOaooeW8j++8jGNvdmVyIOimhueblueOsOaciSBhZGQg57un57ut5re75YqgXHJcbiAqIEBlbl9VUyBGb3IgbWFueSB1cGxvYWQgbW9kZSwgJ2NvdmVyJyBjb3ZlcnMgdGhlIGV4aXN0aW5nLCAnYWRkJyBjb250aW51ZSB0byBhZGRcclxuICovXHJcbmV4cG9ydCB0eXBlIFhVcGxvYWRNdWx0aXBsZU1vZGVsID0gJ2NvdmVyJyB8ICdhZGQnO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliaroo4HnmoTmlrnkvY1cclxuICogQGVuX1VTIFRhaWxvcmVkIG9yaWVudGF0aW9uXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYVXBsb2FkQ3V0VHlwZSA9IFhQb3NpdGlvbiB8IFhDb3JuZXIgfCAnJztcclxuXHJcbi8qKlxyXG4gKiBVcGxvYWQgUG9ydGFsXHJcbiAqIEBzZWxlY3RvciB4LXVwbG9hZC1wb3J0YWxcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYVXBsb2FkUG9ydGFsUHJlZml4ID0gJ3gtdXBsb2FkLXBvcnRhbCc7XHJcbiJdfQ==
|
|
@@ -176,10 +176,10 @@ class XAnchorComponent extends XAnchorProperty {
|
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
/** @nocollapse */ XAnchorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XAnchorComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
179
|
-
/** @nocollapse */ XAnchorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XAnchorComponent, selector: "x-anchor", viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true, static: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #anchor class=\"x-anchor\" [ngClass]=\"classMap\">\r\n <div #content class=\"x-anchor-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <x-affix class=\"x-anchor-affix\" [top]=\"affixTop\">\r\n <div class=\"x-anchor-slider\" [style.height.px]=\"sliderHeight\">\r\n <x-slider\r\n [data]=\"sliderData\"\r\n layout=\"column\"\r\n [activatedIndex]=\"activatedIndex\"\r\n [nodeJustify]=\"justify\"\r\n [nodeTpl]=\"sliderNodeTpl\"\r\n (indexChange)=\"activatedChange($event)\"\r\n ></x-slider>\r\n </div>\r\n </x-affix>\r\n</div>\r\n\r\n<ng-template #sliderNodeTpl let-node=\"$node\">\r\n <span [style.padding-left.rem]=\"node.left - 1\">{{ node.label }}</span>\r\n</ng-template>\r\n", styles: [".x-anchor{margin:0;padding:0;display:flex}.x-anchor-content{flex:1}.x-anchor-affix{display:block}.x-anchor-slider{float:left;overflow:hidden}.x-anchor-slider:hover{overflow-y:auto}.x-anchor-right{flex-direction:row}.x-anchor-right .x-slider-column>.x-slider-scroll{overflow-y:auto}.x-anchor-right .x-slider-column>.x-slider-scroll>ul>li{border-left:.125rem solid var(--x-border)}.x-anchor-right .x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight{border:none;border-top-left-radius:0;border-bottom-left-radius:0;z-index:2;border-left:.125rem solid var(--x-primary)}.x-anchor-left{flex-direction:row-reverse}.x-anchor-left .x-slider-column>.x-slider-scroll{overflow-y:auto}.x-anchor-left .x-slider-column>.x-slider-scroll>ul>li{border-right:.125rem solid var(--x-border)}.x-anchor-left .x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight{border:none;border-top-right-radius:0;border-bottom-right-radius:0;z-index:2;border-right:.125rem solid var(--x-primary)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.XAffixComponent, selector: "x-affix" }, { kind: "component", type: i4.XSliderComponent, selector: "x-slider" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
179
|
+
/** @nocollapse */ XAnchorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XAnchorComponent, selector: "x-anchor", viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true, static: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #anchor class=\"x-anchor\" [ngClass]=\"classMap\">\r\n <div #content class=\"x-anchor-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <x-affix class=\"x-anchor-affix\" [top]=\"affixTop\">\r\n <div class=\"x-anchor-slider\" [style.height.px]=\"sliderHeight\">\r\n <x-slider\r\n [data]=\"sliderData\"\r\n layout=\"column\"\r\n [activatedIndex]=\"activatedIndex\"\r\n [nodeJustify]=\"justify\"\r\n [nodeTpl]=\"sliderNodeTpl\"\r\n (indexChange)=\"activatedChange($event)\"\r\n ></x-slider>\r\n </div>\r\n </x-affix>\r\n</div>\r\n\r\n<ng-template #sliderNodeTpl let-node=\"$node\">\r\n <span [style.padding-left.rem]=\"node.left - 1\">{{ node.label }}</span>\r\n</ng-template>\r\n", styles: [".x-anchor{margin:0;padding:0;display:flex}.x-anchor-content{flex:1}.x-anchor-affix{display:block}.x-anchor-slider{float:left;overflow:hidden}.x-anchor-slider:hover{overflow-y:auto}.x-anchor-right{flex-direction:row}.x-anchor-right .x-anchor-slider .x-slider-column>.x-slider-scroll{overflow-y:auto}.x-anchor-right .x-anchor-slider .x-slider-column>.x-slider-scroll>ul>li{border-left:.125rem solid var(--x-border)}.x-anchor-right .x-anchor-slider .x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight{border:none;border-top-left-radius:0;border-bottom-left-radius:0;z-index:2;border-left:.125rem solid var(--x-primary)}.x-anchor-left{flex-direction:row-reverse}.x-anchor-left .x-anchor-slider .x-slider-column>.x-slider-scroll{overflow-y:auto}.x-anchor-left .x-anchor-slider .x-slider-column>.x-slider-scroll>ul>li{border-right:.125rem solid var(--x-border)}.x-anchor-left .x-anchor-slider .x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight{border:none;border-top-right-radius:0;border-bottom-right-radius:0;z-index:2;border-right:.125rem solid var(--x-primary)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.XAffixComponent, selector: "x-affix" }, { kind: "component", type: i4.XSliderComponent, selector: "x-slider" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
180
180
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XAnchorComponent, decorators: [{
|
|
181
181
|
type: Component,
|
|
182
|
-
args: [{ selector: `${XAnchorPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #anchor class=\"x-anchor\" [ngClass]=\"classMap\">\r\n <div #content class=\"x-anchor-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <x-affix class=\"x-anchor-affix\" [top]=\"affixTop\">\r\n <div class=\"x-anchor-slider\" [style.height.px]=\"sliderHeight\">\r\n <x-slider\r\n [data]=\"sliderData\"\r\n layout=\"column\"\r\n [activatedIndex]=\"activatedIndex\"\r\n [nodeJustify]=\"justify\"\r\n [nodeTpl]=\"sliderNodeTpl\"\r\n (indexChange)=\"activatedChange($event)\"\r\n ></x-slider>\r\n </div>\r\n </x-affix>\r\n</div>\r\n\r\n<ng-template #sliderNodeTpl let-node=\"$node\">\r\n <span [style.padding-left.rem]=\"node.left - 1\">{{ node.label }}</span>\r\n</ng-template>\r\n", styles: [".x-anchor{margin:0;padding:0;display:flex}.x-anchor-content{flex:1}.x-anchor-affix{display:block}.x-anchor-slider{float:left;overflow:hidden}.x-anchor-slider:hover{overflow-y:auto}.x-anchor-right{flex-direction:row}.x-anchor-right .x-slider-column>.x-slider-scroll{overflow-y:auto}.x-anchor-right .x-slider-column>.x-slider-scroll>ul>li{border-left:.125rem solid var(--x-border)}.x-anchor-right .x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight{border:none;border-top-left-radius:0;border-bottom-left-radius:0;z-index:2;border-left:.125rem solid var(--x-primary)}.x-anchor-left{flex-direction:row-reverse}.x-anchor-left .x-slider-column>.x-slider-scroll{overflow-y:auto}.x-anchor-left .x-slider-column>.x-slider-scroll>ul>li{border-right:.125rem solid var(--x-border)}.x-anchor-left .x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight{border:none;border-top-right-radius:0;border-bottom-right-radius:0;z-index:2;border-right:.125rem solid var(--x-primary)}\n"] }]
|
|
182
|
+
args: [{ selector: `${XAnchorPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #anchor class=\"x-anchor\" [ngClass]=\"classMap\">\r\n <div #content class=\"x-anchor-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <x-affix class=\"x-anchor-affix\" [top]=\"affixTop\">\r\n <div class=\"x-anchor-slider\" [style.height.px]=\"sliderHeight\">\r\n <x-slider\r\n [data]=\"sliderData\"\r\n layout=\"column\"\r\n [activatedIndex]=\"activatedIndex\"\r\n [nodeJustify]=\"justify\"\r\n [nodeTpl]=\"sliderNodeTpl\"\r\n (indexChange)=\"activatedChange($event)\"\r\n ></x-slider>\r\n </div>\r\n </x-affix>\r\n</div>\r\n\r\n<ng-template #sliderNodeTpl let-node=\"$node\">\r\n <span [style.padding-left.rem]=\"node.left - 1\">{{ node.label }}</span>\r\n</ng-template>\r\n", styles: [".x-anchor{margin:0;padding:0;display:flex}.x-anchor-content{flex:1}.x-anchor-affix{display:block}.x-anchor-slider{float:left;overflow:hidden}.x-anchor-slider:hover{overflow-y:auto}.x-anchor-right{flex-direction:row}.x-anchor-right .x-anchor-slider .x-slider-column>.x-slider-scroll{overflow-y:auto}.x-anchor-right .x-anchor-slider .x-slider-column>.x-slider-scroll>ul>li{border-left:.125rem solid var(--x-border)}.x-anchor-right .x-anchor-slider .x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight{border:none;border-top-left-radius:0;border-bottom-left-radius:0;z-index:2;border-left:.125rem solid var(--x-primary)}.x-anchor-left{flex-direction:row-reverse}.x-anchor-left .x-anchor-slider .x-slider-column>.x-slider-scroll{overflow-y:auto}.x-anchor-left .x-anchor-slider .x-slider-column>.x-slider-scroll>ul>li{border-right:.125rem solid var(--x-border)}.x-anchor-left .x-anchor-slider .x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight{border:none;border-top-right-radius:0;border-bottom-right-radius:0;z-index:2;border-right:.125rem solid var(--x-primary)}\n"] }]
|
|
183
183
|
}], ctorParameters: function () {
|
|
184
184
|
return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
185
185
|
type: Inject,
|