@mintplayer/ng-bootstrap 15.25.0 → 15.25.3
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/dock/src/dock/dock.component.d.ts +4 -1
- package/dock/src/dock-panel-header/dock-panel-header.component.d.ts +5 -4
- package/dock/src/index.d.ts +1 -0
- package/dock/src/panes/content-pane.d.ts +1 -0
- package/dock/src/panes/dock-pane.d.ts +1 -0
- package/dock/src/panes/document-host-pane.d.ts +1 -0
- package/dock/src/panes/floating-pane.d.ts +2 -1
- package/dock/src/panes/split-pane.d.ts +1 -0
- package/dock/src/panes/tab-group-pane.d.ts +1 -0
- package/dock/src/services/dock/dock.service.d.ts +14 -0
- package/dock/src/services/index.d.ts +1 -0
- package/esm2020/dock/src/dock/dock.component.mjs +14 -2
- package/esm2020/dock/src/dock-panel-header/dock-panel-header.component.mjs +202 -96
- package/esm2020/dock/src/index.mjs +2 -1
- package/esm2020/dock/src/panes/content-pane.mjs +4 -1
- package/esm2020/dock/src/panes/dock-pane.mjs +1 -1
- package/esm2020/dock/src/panes/document-host-pane.mjs +4 -1
- package/esm2020/dock/src/panes/floating-pane.mjs +7 -2
- package/esm2020/dock/src/panes/split-pane.mjs +4 -1
- package/esm2020/dock/src/panes/tab-group-pane.mjs +4 -1
- package/esm2020/dock/src/services/dock/dock.service.mjs +56 -0
- package/esm2020/dock/src/services/index.mjs +2 -0
- package/esm2020/resizable/src/resize-glyph/resize-glyph.directive.mjs +1 -1
- package/fesm2015/mintplayer-ng-bootstrap-dock.mjs +291 -111
- package/fesm2015/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
- package/fesm2015/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
- package/fesm2020/mintplayer-ng-bootstrap-dock.mjs +289 -111
- package/fesm2020/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
- package/fesm2020/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
- package/package.json +2 -2
- package/resizable/src/resize-glyph/resize-glyph.directive.d.ts +1 -1
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { OnDestroy, QueryList } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, Subject } from 'rxjs';
|
|
2
|
+
import { BehaviorSubject, Observable, Subject } from 'rxjs';
|
|
3
|
+
import { Parentified } from '@mintplayer/parentify';
|
|
3
4
|
import { BsDockPanelComponent } from '../dock-panel/dock-panel.component';
|
|
4
5
|
import { BsDockLayout } from '../interfaces/dock-layout';
|
|
5
6
|
import { BsDockPaneRendererComponent } from '../dock-pane-renderer/dock-pane-renderer.component';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export declare class BsDockComponent implements OnDestroy {
|
|
8
9
|
constructor();
|
|
10
|
+
private paneCache?;
|
|
9
11
|
panels$: BehaviorSubject<BsDockPanelComponent[]>;
|
|
10
12
|
set panels(value: QueryList<BsDockPanelComponent>);
|
|
11
13
|
layout$: BehaviorSubject<BsDockLayout>;
|
|
@@ -15,6 +17,7 @@ export declare class BsDockComponent implements OnDestroy {
|
|
|
15
17
|
set floatingPanes(value: QueryList<BsDockPaneRendererComponent>);
|
|
16
18
|
positionAbsolute: boolean;
|
|
17
19
|
positionPx: number;
|
|
20
|
+
parentifiedLayout$: Observable<Parentified<BsDockLayout>>;
|
|
18
21
|
destroyed$: Subject<unknown>;
|
|
19
22
|
ngOnDestroy(): void;
|
|
20
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<BsDockComponent, never>;
|
|
@@ -2,20 +2,21 @@ import { ElementRef } from '@angular/core';
|
|
|
2
2
|
import { BsDockPanelComponent } from '../dock-panel/dock-panel.component';
|
|
3
3
|
import { BsDockComponent } from '../dock/dock.component';
|
|
4
4
|
import { BsDockPane } from '../panes/dock-pane';
|
|
5
|
-
import { RemoveFromPaneResult } from '../interfaces/remove-from-pane-result';
|
|
6
5
|
import { DragOperation } from '../interfaces/drag-operation';
|
|
6
|
+
import { BsDockService } from '../services/dock/dock.service';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export declare class BsDockPanelHeaderComponent {
|
|
9
9
|
private dockPanel;
|
|
10
10
|
private dock;
|
|
11
|
+
private dockService;
|
|
11
12
|
private element;
|
|
12
|
-
constructor(dockPanel: BsDockPanelComponent, dock: BsDockComponent, element: ElementRef<HTMLElement>);
|
|
13
|
+
constructor(dockPanel: BsDockPanelComponent, dock: BsDockComponent, dockService: BsDockService, element: ElementRef<HTMLElement>);
|
|
13
14
|
isMouseDown: boolean;
|
|
14
15
|
dragOperation?: DragOperation;
|
|
15
|
-
|
|
16
|
+
isDragging: boolean;
|
|
16
17
|
onMouseDown(ev: MouseEvent): void;
|
|
17
18
|
onMouseMove(ev: MouseEvent): void;
|
|
18
|
-
|
|
19
|
+
removeFromPaneBis(host: BsDockPane, pane: BsDockPane): void;
|
|
19
20
|
onMouseUp(ev: Event): void;
|
|
20
21
|
dBlock: boolean;
|
|
21
22
|
static ɵfac: i0.ɵɵFactoryDeclaration<BsDockPanelHeaderComponent, never>;
|
package/dock/src/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { BsDockPane } from "./dock-pane";
|
|
2
2
|
import { Point } from "../interfaces/point";
|
|
3
3
|
import { Size } from "../interfaces/size";
|
|
4
|
-
export declare class BsFloatingPane {
|
|
4
|
+
export declare class BsFloatingPane extends BsDockPane {
|
|
5
5
|
constructor(data?: Partial<BsFloatingPane>);
|
|
6
6
|
pane?: BsDockPane;
|
|
7
7
|
size?: Size;
|
|
8
8
|
location?: Point;
|
|
9
|
+
get isEmpty(): boolean;
|
|
9
10
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BsDockPane } from '../../panes/dock-pane';
|
|
2
|
+
import { BsDockLayout } from '../../interfaces/dock-layout';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class BsDockService {
|
|
5
|
+
buildTraces(layout: BsDockLayout): PaneTraceResult[];
|
|
6
|
+
private buildTracesPrivate;
|
|
7
|
+
private getChildPanes;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BsDockService, never>;
|
|
9
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<BsDockService>;
|
|
10
|
+
}
|
|
11
|
+
export interface PaneTraceResult {
|
|
12
|
+
trace: BsDockPane[];
|
|
13
|
+
finished: boolean;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './dock/dock.service';
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { Component, ContentChildren, ViewChildren, Input, QueryList, HostBinding } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, Subject, takeUntil } from 'rxjs';
|
|
2
|
+
import { BehaviorSubject, map, Subject, takeUntil } from 'rxjs';
|
|
3
|
+
import { deepClone } from '@mintplayer/parentify';
|
|
3
4
|
import { BsDockPanelComponent } from '../dock-panel/dock-panel.component';
|
|
4
5
|
import { BsTabGroupPane } from '../panes/tab-group-pane';
|
|
5
6
|
import { BsDocumentHost } from '../panes/document-host-pane';
|
|
7
|
+
import { BsContentPane } from '../panes/content-pane';
|
|
8
|
+
import { BsFloatingPane } from '../panes/floating-pane';
|
|
9
|
+
import { BsSplitPane } from '../panes/split-pane';
|
|
6
10
|
import * as i0 from "@angular/core";
|
|
7
11
|
import * as i1 from "@angular/common";
|
|
8
12
|
import * as i2 from "../dock-pane-renderer/dock-pane-renderer.component";
|
|
@@ -30,6 +34,14 @@ export class BsDockComponent {
|
|
|
30
34
|
.subscribe((floating) => {
|
|
31
35
|
floating.forEach((panel) => panel.moveToOverlay());
|
|
32
36
|
});
|
|
37
|
+
this.parentifiedLayout$ = this.layout$.pipe(map(layout => {
|
|
38
|
+
const clone = deepClone(layout, true,
|
|
39
|
+
// []
|
|
40
|
+
[BsContentPane, BsDocumentHost, BsFloatingPane, BsSplitPane, BsTabGroupPane], true, this.paneCache);
|
|
41
|
+
this.paneCache = clone.cache;
|
|
42
|
+
return clone.result;
|
|
43
|
+
}));
|
|
44
|
+
this.parentifiedLayout$.pipe(takeUntil(this.destroyed$)).subscribe(console.log);
|
|
33
45
|
}
|
|
34
46
|
set panels(value) {
|
|
35
47
|
this.panels$.next(value.toArray());
|
|
@@ -77,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
77
89
|
type: HostBinding,
|
|
78
90
|
args: ['style.right']
|
|
79
91
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2svZG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2svZG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGVBQWUsRUFBbUMsR0FBRyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFN0csT0FBTyxFQUFlLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFRbEQsTUFBTSxPQUFPLGVBQWU7SUFDMUI7UUF1Q0EsZ0JBQWdCO1FBQ2hCLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBeUIsRUFBRSxDQUFDLENBQUM7UUFhMUQsWUFBWTtRQUVaLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBZ0MsRUFBRSxDQUFDLENBQUM7UUFNbkUscUJBQWdCLEdBQUcsSUFBSSxDQUFD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QVc7dUJBQUMsWUFBWTs7c0JBQ3hCLFdBQVc7dUJBQUMsY0FBYzs7c0JBQzFCLFdBQVc7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBWaWV3Q2hpbGRyZW4sIElucHV0LCBPbkRlc3Ryb3ksIFF1ZXJ5TGlzdCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgY29tYmluZUxhdGVzdEFsbCwgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBQYXJlbnRpZmllZCwgZGVlcENsb25lIH0gZnJvbSAnQG1pbnRwbGF5ZXIvcGFyZW50aWZ5JztcbmltcG9ydCB7IEJzRG9ja1BhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vZG9jay1wYW5lbC9kb2NrLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFUGFuZVR5cGUgfSBmcm9tICcuLi9lbnVtcy9wYW5lLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBCc0RvY2tMYXlvdXQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RvY2stbGF5b3V0JztcbmltcG9ydCB7IEJzVGFiR3JvdXBQYW5lIH0gZnJvbSAnLi4vcGFuZXMvdGFiLWdyb3VwLXBhbmUnO1xuaW1wb3J0IHsgQnNEb2N1bWVudEhvc3QgfSBmcm9tICcuLi9wYW5lcy9kb2N1bWVudC1ob3N0LXBhbmUnO1xuaW1wb3J0IHsgQnNDb250ZW50UGFuZSB9IGZyb20gJy4uL3BhbmVzL2NvbnRlbnQtcGFuZSc7XG5pbXBvcnQgeyBCc0Zsb2F0aW5nUGFuZSB9IGZyb20gJy4uL3BhbmVzL2Zsb2F0aW5nLXBhbmUnO1xuaW1wb3J0IHsgQnNTcGxpdFBhbmUgfSBmcm9tICcuLi9wYW5lcy9zcGxpdC1wYW5lJztcbmltcG9ydCB7IEJzRG9ja1BhbmVSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uL2RvY2stcGFuZS1yZW5kZXJlci9kb2NrLXBhbmUtcmVuZGVyZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtZG9jaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2NrLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jay5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJzRG9ja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IHRhYnMgPSBuZXcgQnNUYWJHcm91cFBhbmUoKTtcbiAgICBjb25zdCBkb2NIb3N0ID0gbmV3IEJzRG9jdW1lbnRIb3N0KCk7XG4gICAgZG9jSG9zdC5yb290UGFuZSA9IHRhYnM7XG5cbiAgICB0aGlzLmxheW91dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJzRG9ja0xheW91dD4oe1xuICAgICAgcm9vdFBhbmU6IGRvY0hvc3QsXG4gICAgICBmbG9hdGluZ1BhbmVzOiBbXVxuICAgIH0pO1xuXG4gICAgLy8gY29tYmluZUxhdGVzdChbdGhpcy5sYXlvdXQkLCB0aGlzLnBhbmVscyRdKVxuICAgIC8vICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgLy8gICAuc3Vic2NyaWJlKChbbGF5b3V0LCBwYW5lbHNdKSA9PiB7XG4gICAgICAgIFxuICAgIC8vICAgfSlcblxuICAgIHRoaXMuZmxvYXRpbmckLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKChmbG9hdGluZykgPT4ge1xuICAgICAgICBmbG9hdGluZy5mb3JFYWNoKChwYW5lbCkgPT4gcGFuZWwubW92ZVRvT3ZlcmxheSgpKTtcbiAgICAgIH0pO1xuICAgICAgXG4gICAgdGhpcy5wYXJlbnRpZmllZExheW91dCQgPSB0aGlzLmxheW91dCQucGlwZShtYXAobGF5b3V0ID0+IHtcbiAgICAgIGNvbnN0IGNsb25lID0gZGVlcENsb25lKFxuICAgICAgICBsYXlvdXQsIHRydWUsXG4gICAgICAgIC8vIFtdXG4gICAgICAgIFtCc0NvbnRlbnRQYW5lLCBCc0RvY3VtZW50SG9zdCwgQnNGbG9hdGluZ1BhbmUsIEJzU3BsaXRQYW5lLCBCc1RhYkdyb3VwUGFuZV0sXG4gICAgICAgIHRydWUsXG4gICAgICAgIHRoaXMucGFuZUNhY2hlKTtcblxuICAgICAgdGhpcy5wYW5lQ2FjaGUgPSBjbG9uZS5jYWNoZTtcblxuICAgICAgcmV0dXJuIGNsb25lLnJlc3VsdDtcbiAgICB9KSk7XG5cbiAgICB0aGlzLnBhcmVudGlmaWVkTGF5b3V0JC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoY29uc29sZS5sb2cpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYW5lQ2FjaGU/OiBNYXA8YW55LCBhbnk+O1xuXG4gIC8vI3JlZ2lvbiBQYW5lbHNcbiAgcGFuZWxzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnNEb2NrUGFuZWxDb21wb25lbnRbXT4oW10pO1xuICBAQ29udGVudENoaWxkcmVuKEJzRG9ja1BhbmVsQ29tcG9uZW50KSBzZXQgcGFuZWxzKHZhbHVlOiBRdWVyeUxpc3Q8QnNEb2NrUGFuZWxDb21wb25lbnQ+KSB7XG4gICAgdGhpcy5wYW5lbHMkLm5leHQodmFsdWUudG9BcnJheSgpKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cbiAgLy8jcmVnaW9uIExheW91dFxuICBsYXlvdXQkOiBCZWhhdmlvclN1YmplY3Q8QnNEb2NrTGF5b3V0PjtcbiAgcHVibGljIGdldCBsYXlvdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMubGF5b3V0JC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGxheW91dCh2YWx1ZTogQnNEb2NrTGF5b3V0KSB7XG4gICAgdGhpcy5sYXlvdXQkLm5leHQodmFsdWUpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIGZsb2F0aW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnNEb2NrUGFuZVJlbmRlcmVyQ29tcG9uZW50W10+KFtdKTtcbiAgQFZpZXdDaGlsZHJlbignZmxvYXRpbmcnKSBzZXQgZmxvYXRpbmdQYW5lcyh2YWx1ZTogUXVlcnlMaXN0PEJzRG9ja1BhbmVSZW5kZXJlckNvbXBvbmVudD4pIHtcbiAgICB0aGlzLmZsb2F0aW5nJC5uZXh0KHZhbHVlLnRvQXJyYXkoKSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnBvc2l0aW9uLWFic29sdXRlJylcbiAgcG9zaXRpb25BYnNvbHV0ZSA9IHRydWU7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS50b3AnKVxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmxlZnQnKVxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJvdHRvbScpXG4gIEBIb3N0QmluZGluZygnc3R5bGUucmlnaHQnKVxuICBwb3NpdGlvblB4ID0gMDtcblxuICBwYXJlbnRpZmllZExheW91dCQ6IE9ic2VydmFibGU8UGFyZW50aWZpZWQ8QnNEb2NrTGF5b3V0Pj47XG5cbiAgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0KCk7XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZmxvYXRpbmckLnZhbHVlLmZvckVhY2gocGFuZWwgPT4gcGFuZWwuZGlzcG9zZU92ZXJsYXkoKSk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIobGF5b3V0JCB8IGFzeW5jKSBhcyBsYXlvdXRcIj5cbiAgICA8YnMtZG9jay1wYW5lLXJlbmRlcmVyIFtsYXlvdXRdPVwibGF5b3V0LnJvb3RQYW5lXCI+PC9icy1kb2NrLXBhbmUtcmVuZGVyZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYW5lIG9mIGxheW91dC5mbG9hdGluZ1BhbmVzXCI+XG4gICAgICAgIDxicy1kb2NrLXBhbmUtcmVuZGVyZXIgI2Zsb2F0aW5nICpuZ0lmPVwicGFuZS5wYW5lXCIgW2xheW91dF09XCJwYW5lXCI+PC9icy1kb2NrLXBhbmUtcmVuZGVyZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbjwhLS0gPGJzLXNwbGl0dGVyPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYW5lbCBvZiAocGFuZWxzJCB8IGFzeW5jKVwiPlxuICAgICAgICA8YnMtc3BsaXQtcGFuZWw+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJwYW5lbC5wb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2JzLXNwbGl0LXBhbmVsPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9icy1zcGxpdHRlcj4gLS0+XG4iXX0=
|