@unovis/angular 1.5.1-ql.2 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/lib/README.md +1 -1
- package/dist/lib/bundles/unovis-angular.umd.js +25 -9
- package/dist/lib/bundles/unovis-angular.umd.js.map +1 -1
- package/dist/lib/components/axis/axis.component.d.ts +1 -1
- package/dist/lib/components/donut/donut.component.d.ts +5 -1
- package/dist/lib/components/graph/graph.component.d.ts +20 -2
- package/dist/lib/components/line/line.component.d.ts +6 -1
- package/dist/lib/esm2015/components/axis/axis.component.js +1 -1
- package/dist/lib/esm2015/components/donut/donut.component.js +8 -4
- package/dist/lib/esm2015/components/graph/graph.component.js +14 -4
- package/dist/lib/esm2015/components/line/line.component.js +6 -4
- package/dist/lib/fesm2015/unovis-angular.js +25 -9
- package/dist/lib/fesm2015/unovis-angular.js.map +1 -1
- package/dist/lib/package.json +2 -2
- package/package.json +2 -2
|
@@ -76,7 +76,7 @@ export declare class VisAxisComponent<Datum> implements AxisConfigInterface<Datu
|
|
|
76
76
|
* Default: `250` */
|
|
77
77
|
minMaxTicksOnlyWhenWidthIsLess?: number;
|
|
78
78
|
/** Tick label formatter function. Default: `undefined` */
|
|
79
|
-
tickFormat?: ((tick: number
|
|
79
|
+
tickFormat?: ((tick: number, i: number, ticks: number[]) => string) | ((tick: Date, i: number, ticks: Date[]) => string);
|
|
80
80
|
/** Explicitly set tick values. Default: `undefined` */
|
|
81
81
|
tickValues?: number[];
|
|
82
82
|
/** Set the approximate number of axis ticks (will be passed to D3's axis constructor). Default: `undefined` */
|
|
@@ -84,6 +84,10 @@ export declare class VisDonutComponent<Datum> implements DonutConfigInterface<Da
|
|
|
84
84
|
showBackground?: boolean;
|
|
85
85
|
/** Background angle range. When undefined, the value will be taken from `angleRange`. Default: `undefined` */
|
|
86
86
|
backgroundAngleRange?: [number, number];
|
|
87
|
+
/** Central label and sub-label horizontal offset in pixels. Default: `undefined` */
|
|
88
|
+
centralLabelOffsetX?: number;
|
|
89
|
+
/** Central label and sub-label vertical offset in pixels. Default: `undefined` */
|
|
90
|
+
centralLabelOffsetY?: number;
|
|
87
91
|
data: Datum[];
|
|
88
92
|
component: Donut<Datum> | undefined;
|
|
89
93
|
componentContainer: ContainerCore | undefined;
|
|
@@ -91,5 +95,5 @@ export declare class VisDonutComponent<Datum> implements DonutConfigInterface<Da
|
|
|
91
95
|
ngOnChanges(changes: SimpleChanges): void;
|
|
92
96
|
private getConfig;
|
|
93
97
|
static ɵfac: i0.ɵɵFactoryDeclaration<VisDonutComponent<any>, never>;
|
|
94
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<VisDonutComponent<any>, "vis-donut", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "id": "id"; "value": "value"; "angleRange": "angleRange"; "padAngle": "padAngle"; "sortFunction": "sortFunction"; "cornerRadius": "cornerRadius"; "color": "color"; "radius": "radius"; "arcWidth": "arcWidth"; "centralLabel": "centralLabel"; "centralSubLabel": "centralSubLabel"; "centralSubLabelWrap": "centralSubLabelWrap"; "showEmptySegments": "showEmptySegments"; "emptySegmentAngle": "emptySegmentAngle"; "showBackground": "showBackground"; "backgroundAngleRange": "backgroundAngleRange"; "data": "data"; }, {}, never, never>;
|
|
98
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VisDonutComponent<any>, "vis-donut", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "id": "id"; "value": "value"; "angleRange": "angleRange"; "padAngle": "padAngle"; "sortFunction": "sortFunction"; "cornerRadius": "cornerRadius"; "color": "color"; "radius": "radius"; "arcWidth": "arcWidth"; "centralLabel": "centralLabel"; "centralSubLabel": "centralSubLabel"; "centralSubLabelWrap": "centralSubLabelWrap"; "showEmptySegments": "showEmptySegments"; "emptySegmentAngle": "emptySegmentAngle"; "showBackground": "showBackground"; "backgroundAngleRange": "backgroundAngleRange"; "centralLabelOffsetX": "centralLabelOffsetX"; "centralLabelOffsetY": "centralLabelOffsetY"; "data": "data"; }, {}, never, never>;
|
|
95
99
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AfterViewInit, SimpleChanges } from '@angular/core';
|
|
2
|
-
import { Graph, GraphConfigInterface, ContainerCore, GraphInputNode, GraphInputLink, VisEventType, VisEventCallback, GraphLayoutType, StringAccessor, GraphForceLayoutSettings, GraphDagreLayoutSetting, GenericAccessor, GraphElkLayoutSettings, NumericAccessor, GraphLinkStyle, GraphLinkArrowStyle, ColorAccessor, BooleanAccessor, GraphCircleLabel, GraphNodeShape, TrimMode,
|
|
2
|
+
import { Graph, GraphConfigInterface, ContainerCore, GraphInputNode, GraphInputLink, VisEventType, VisEventCallback, GraphLayoutType, StringAccessor, GraphForceLayoutSettings, GraphDagreLayoutSetting, GenericAccessor, GraphElkLayoutSettings, GraphNode, NumericAccessor, GraphLinkStyle, GraphLinkArrowStyle, ColorAccessor, BooleanAccessor, GraphCircleLabel, GraphLink, GraphNodeShape, TrimMode, GraphNodeSelectionHighlightMode, GraphPanelConfig, GraphInputData, GraphDataModel } from '@unovis/ts';
|
|
3
|
+
import { ElkShape } from 'elkjs';
|
|
3
4
|
import { Selection } from 'd3-selection';
|
|
4
5
|
import { D3DragEvent } from 'd3-drag';
|
|
5
6
|
import { D3ZoomEvent, ZoomTransform } from 'd3-zoom';
|
|
@@ -122,6 +123,11 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
|
|
|
122
123
|
* E.g.: `[n => n.group, n => n.subGroup]`.
|
|
123
124
|
* Default: `undefined` */
|
|
124
125
|
layoutElkNodeGroups?: StringAccessor<N>[];
|
|
126
|
+
/** A function to be called per graph node to get the ELK shape object.
|
|
127
|
+
* This enables you to provide custom node dimensions (through the `width` and `height` properties)
|
|
128
|
+
* and coordinates (through the `x` and `y` properties) if needed.
|
|
129
|
+
* Default: `undefined` */
|
|
130
|
+
layoutElkGetNodeShape?: (d: GraphNode<N, L>, i: number) => ElkShape;
|
|
125
131
|
/** Link width accessor function ot constant value. Default: `1` */
|
|
126
132
|
linkWidth?: NumericAccessor<L>;
|
|
127
133
|
/** Link style accessor function or constant value. Default: `GraphLinkStyle.Solid` */
|
|
@@ -152,6 +158,12 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
|
|
|
152
158
|
* `1.5` - very curve.
|
|
153
159
|
* Default: `0` */
|
|
154
160
|
linkCurvature?: NumericAccessor<L>;
|
|
161
|
+
/** Highlight links on hover. Default: `true` */
|
|
162
|
+
linkHighlightOnHover?: boolean;
|
|
163
|
+
/** Offset [x,y] in pixels from the source node's center point where the link should start. Default: `undefined` */
|
|
164
|
+
linkSourcePointOffset?: GenericAccessor<[number, number], GraphLink<N, L>>;
|
|
165
|
+
/** Offset [x,y] in pixels from the target node's center point where the link should end. Default: `undefined` */
|
|
166
|
+
linkTargetPointOffset?: GenericAccessor<[number, number], GraphLink<N, L>>;
|
|
155
167
|
/** Set selected link by its unique id. Default: `undefined` */
|
|
156
168
|
selectedLinkId?: number | string;
|
|
157
169
|
/** Node size accessor function or constant value. Default: `30` */
|
|
@@ -249,6 +261,12 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
|
|
|
249
261
|
onNodeSelectionDrag?: (selectedNodes: GraphNode<N, L>[], event: D3DragEvent<SVGGElement, GraphNode<N, L>, unknown>) => void;
|
|
250
262
|
/** Callback function to be called when the graph rendering is complete. Default: `undefined` */
|
|
251
263
|
onRenderComplete?: (g: Selection<SVGGElement, unknown, null, undefined>, nodes: GraphNode<N, L>[], links: GraphLink<N, L>[], config: GraphConfigInterface<N, L>, duration: number, zoomLevel: number, width: number, height: number) => void;
|
|
264
|
+
/** Determines whether the component should update when new data is provided.
|
|
265
|
+
* This function takes the previous and new data as parameters and returns a boolean
|
|
266
|
+
* indicating whether the update should proceed. Useful for fine-grained control over
|
|
267
|
+
* update behavior when your data has a complex nested structure.
|
|
268
|
+
* By default the `isEqual` function from Unovis will be used to do the comparison. */
|
|
269
|
+
shouldDataUpdate?: (prevData: GraphInputData<N, L>, nextData: GraphInputData<N, L>, datamodel: GraphDataModel<N, L, GraphNode<N, L>, GraphLink<N, L>>) => boolean;
|
|
252
270
|
data: {
|
|
253
271
|
nodes: N[];
|
|
254
272
|
links?: L[];
|
|
@@ -259,5 +277,5 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
|
|
|
259
277
|
ngOnChanges(changes: SimpleChanges): void;
|
|
260
278
|
private getConfig;
|
|
261
279
|
static ɵfac: i0.ɵɵFactoryDeclaration<VisGraphComponent<any, any>, never>;
|
|
262
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<VisGraphComponent<any, any>, "vis-graph", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "zoomScaleExtent": "zoomScaleExtent"; "disableZoom": "disableZoom"; "zoomEventFilter": "zoomEventFilter"; "disableDrag": "disableDrag"; "disableBrush": "disableBrush"; "zoomThrottledUpdateNodeThreshold": "zoomThrottledUpdateNodeThreshold"; "layoutType": "layoutType"; "layoutAutofit": "layoutAutofit"; "layoutAutofitTolerance": "layoutAutofitTolerance"; "layoutNonConnectedAside": "layoutNonConnectedAside"; "layoutNodeGroup": "layoutNodeGroup"; "layoutGroupOrder": "layoutGroupOrder"; "layoutParallelNodesPerColumn": "layoutParallelNodesPerColumn"; "layoutParallelNodeSubGroup": "layoutParallelNodeSubGroup"; "layoutParallelSubGroupsPerRow": "layoutParallelSubGroupsPerRow"; "layoutParallelGroupSpacing": "layoutParallelGroupSpacing"; "layoutParallelSortConnectionsByGroup": "layoutParallelSortConnectionsByGroup"; "forceLayoutSettings": "forceLayoutSettings"; "dagreLayoutSettings": "dagreLayoutSettings"; "layoutElkSettings": "layoutElkSettings"; "layoutElkNodeGroups": "layoutElkNodeGroups"; "linkWidth": "linkWidth"; "linkStyle": "linkStyle"; "linkBandWidth": "linkBandWidth"; "linkArrow": "linkArrow"; "linkStroke": "linkStroke"; "linkDisabled": "linkDisabled"; "linkFlow": "linkFlow"; "linkFlowAnimDuration": "linkFlowAnimDuration"; "linkFlowParticleSize": "linkFlowParticleSize"; "linkLabel": "linkLabel"; "linkLabelShiftFromCenter": "linkLabelShiftFromCenter"; "linkNeighborSpacing": "linkNeighborSpacing"; "linkCurvature": "linkCurvature"; "selectedLinkId": "selectedLinkId"; "nodeSize": "nodeSize"; "nodeStrokeWidth": "nodeStrokeWidth"; "nodeShape": "nodeShape"; "nodeGaugeValue": "nodeGaugeValue"; "nodeGaugeFill": "nodeGaugeFill"; "nodeGaugeAnimDuration": "nodeGaugeAnimDuration"; "nodeIcon": "nodeIcon"; "nodeIconSize": "nodeIconSize"; "nodeLabel": "nodeLabel"; "nodeLabelTrim": "nodeLabelTrim"; "nodeLabelTrimMode": "nodeLabelTrimMode"; "nodeLabelTrimLength": "nodeLabelTrimLength"; "nodeSubLabel": "nodeSubLabel"; "nodeSubLabelTrim": "nodeSubLabelTrim"; "nodeSubLabelTrimMode": "nodeSubLabelTrimMode"; "nodeSubLabelTrimLength": "nodeSubLabelTrimLength"; "nodeSideLabels": "nodeSideLabels"; "nodeBottomIcon": "nodeBottomIcon"; "nodeDisabled": "nodeDisabled"; "nodeFill": "nodeFill"; "nodeStroke": "nodeStroke"; "nodeSort": "nodeSort"; "nodeEnterPosition": "nodeEnterPosition"; "nodeEnterScale": "nodeEnterScale"; "nodeExitPosition": "nodeExitPosition"; "nodeExitScale": "nodeExitScale"; "nodeEnterCustomRenderFunction": "nodeEnterCustomRenderFunction"; "nodeUpdateCustomRenderFunction": "nodeUpdateCustomRenderFunction"; "nodePartialUpdateCustomRenderFunction": "nodePartialUpdateCustomRenderFunction"; "nodeExitCustomRenderFunction": "nodeExitCustomRenderFunction"; "nodeOnZoomCustomRenderFunction": "nodeOnZoomCustomRenderFunction"; "nodeSelectionHighlightMode": "nodeSelectionHighlightMode"; "selectedNodeId": "selectedNodeId"; "selectedNodeIds": "selectedNodeIds"; "panels": "panels"; "onNodeDragStart": "onNodeDragStart"; "onNodeDrag": "onNodeDrag"; "onNodeDragEnd": "onNodeDragEnd"; "onZoom": "onZoom"; "onZoomStart": "onZoomStart"; "onZoomEnd": "onZoomEnd"; "onLayoutCalculated": "onLayoutCalculated"; "onNodeSelectionBrush": "onNodeSelectionBrush"; "onNodeSelectionDrag": "onNodeSelectionDrag"; "onRenderComplete": "onRenderComplete"; "data": "data"; }, {}, never, never>;
|
|
280
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VisGraphComponent<any, any>, "vis-graph", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "zoomScaleExtent": "zoomScaleExtent"; "disableZoom": "disableZoom"; "zoomEventFilter": "zoomEventFilter"; "disableDrag": "disableDrag"; "disableBrush": "disableBrush"; "zoomThrottledUpdateNodeThreshold": "zoomThrottledUpdateNodeThreshold"; "layoutType": "layoutType"; "layoutAutofit": "layoutAutofit"; "layoutAutofitTolerance": "layoutAutofitTolerance"; "layoutNonConnectedAside": "layoutNonConnectedAside"; "layoutNodeGroup": "layoutNodeGroup"; "layoutGroupOrder": "layoutGroupOrder"; "layoutParallelNodesPerColumn": "layoutParallelNodesPerColumn"; "layoutParallelNodeSubGroup": "layoutParallelNodeSubGroup"; "layoutParallelSubGroupsPerRow": "layoutParallelSubGroupsPerRow"; "layoutParallelGroupSpacing": "layoutParallelGroupSpacing"; "layoutParallelSortConnectionsByGroup": "layoutParallelSortConnectionsByGroup"; "forceLayoutSettings": "forceLayoutSettings"; "dagreLayoutSettings": "dagreLayoutSettings"; "layoutElkSettings": "layoutElkSettings"; "layoutElkNodeGroups": "layoutElkNodeGroups"; "layoutElkGetNodeShape": "layoutElkGetNodeShape"; "linkWidth": "linkWidth"; "linkStyle": "linkStyle"; "linkBandWidth": "linkBandWidth"; "linkArrow": "linkArrow"; "linkStroke": "linkStroke"; "linkDisabled": "linkDisabled"; "linkFlow": "linkFlow"; "linkFlowAnimDuration": "linkFlowAnimDuration"; "linkFlowParticleSize": "linkFlowParticleSize"; "linkLabel": "linkLabel"; "linkLabelShiftFromCenter": "linkLabelShiftFromCenter"; "linkNeighborSpacing": "linkNeighborSpacing"; "linkCurvature": "linkCurvature"; "linkHighlightOnHover": "linkHighlightOnHover"; "linkSourcePointOffset": "linkSourcePointOffset"; "linkTargetPointOffset": "linkTargetPointOffset"; "selectedLinkId": "selectedLinkId"; "nodeSize": "nodeSize"; "nodeStrokeWidth": "nodeStrokeWidth"; "nodeShape": "nodeShape"; "nodeGaugeValue": "nodeGaugeValue"; "nodeGaugeFill": "nodeGaugeFill"; "nodeGaugeAnimDuration": "nodeGaugeAnimDuration"; "nodeIcon": "nodeIcon"; "nodeIconSize": "nodeIconSize"; "nodeLabel": "nodeLabel"; "nodeLabelTrim": "nodeLabelTrim"; "nodeLabelTrimMode": "nodeLabelTrimMode"; "nodeLabelTrimLength": "nodeLabelTrimLength"; "nodeSubLabel": "nodeSubLabel"; "nodeSubLabelTrim": "nodeSubLabelTrim"; "nodeSubLabelTrimMode": "nodeSubLabelTrimMode"; "nodeSubLabelTrimLength": "nodeSubLabelTrimLength"; "nodeSideLabels": "nodeSideLabels"; "nodeBottomIcon": "nodeBottomIcon"; "nodeDisabled": "nodeDisabled"; "nodeFill": "nodeFill"; "nodeStroke": "nodeStroke"; "nodeSort": "nodeSort"; "nodeEnterPosition": "nodeEnterPosition"; "nodeEnterScale": "nodeEnterScale"; "nodeExitPosition": "nodeExitPosition"; "nodeExitScale": "nodeExitScale"; "nodeEnterCustomRenderFunction": "nodeEnterCustomRenderFunction"; "nodeUpdateCustomRenderFunction": "nodeUpdateCustomRenderFunction"; "nodePartialUpdateCustomRenderFunction": "nodePartialUpdateCustomRenderFunction"; "nodeExitCustomRenderFunction": "nodeExitCustomRenderFunction"; "nodeOnZoomCustomRenderFunction": "nodeOnZoomCustomRenderFunction"; "nodeSelectionHighlightMode": "nodeSelectionHighlightMode"; "selectedNodeId": "selectedNodeId"; "selectedNodeIds": "selectedNodeIds"; "panels": "panels"; "onNodeDragStart": "onNodeDragStart"; "onNodeDrag": "onNodeDrag"; "onNodeDragEnd": "onNodeDragEnd"; "onZoom": "onZoom"; "onZoomStart": "onZoomStart"; "onZoomEnd": "onZoomEnd"; "onLayoutCalculated": "onLayoutCalculated"; "onNodeSelectionBrush": "onNodeSelectionBrush"; "onNodeSelectionDrag": "onNodeSelectionDrag"; "onRenderComplete": "onRenderComplete"; "shouldDataUpdate": "shouldDataUpdate"; "data": "data"; }, {}, never, never>;
|
|
263
281
|
}
|
|
@@ -86,6 +86,11 @@ export declare class VisLineComponent<Datum> implements LineConfigInterface<Datu
|
|
|
86
86
|
highlightOnHover?: boolean;
|
|
87
87
|
/** Optional link cursor. Default: `null` */
|
|
88
88
|
cursor?: StringAccessor<Datum[]>;
|
|
89
|
+
/** Enable interpolated line where data points are missing or fallbackValue is used.
|
|
90
|
+
* You can customize the line's appearance with `--vis-line-gapfill-stroke-dasharray`
|
|
91
|
+
* and `--vis-line-gapfill-stroke-opacity` CSS variables.
|
|
92
|
+
* Default: `false` */
|
|
93
|
+
interpolateMissingData: boolean;
|
|
89
94
|
data: Datum[];
|
|
90
95
|
component: Line<Datum> | undefined;
|
|
91
96
|
componentContainer: ContainerCore | undefined;
|
|
@@ -93,5 +98,5 @@ export declare class VisLineComponent<Datum> implements LineConfigInterface<Datu
|
|
|
93
98
|
ngOnChanges(changes: SimpleChanges): void;
|
|
94
99
|
private getConfig;
|
|
95
100
|
static ɵfac: i0.ɵɵFactoryDeclaration<VisLineComponent<any>, never>;
|
|
96
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<VisLineComponent<any>, "vis-line", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "x": "x"; "y": "y"; "id": "id"; "color": "color"; "xScale": "xScale"; "yScale": "yScale"; "excludeFromDomainCalculation": "excludeFromDomainCalculation"; "curveType": "curveType"; "lineWidth": "lineWidth"; "lineDashArray": "lineDashArray"; "fallbackValue": "fallbackValue"; "highlightOnHover": "highlightOnHover"; "cursor": "cursor"; "data": "data"; }, {}, never, never>;
|
|
101
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VisLineComponent<any>, "vis-line", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "x": "x"; "y": "y"; "id": "id"; "color": "color"; "xScale": "xScale"; "yScale": "yScale"; "excludeFromDomainCalculation": "excludeFromDomainCalculation"; "curveType": "curveType"; "lineWidth": "lineWidth"; "lineDashArray": "lineDashArray"; "fallbackValue": "fallbackValue"; "highlightOnHover": "highlightOnHover"; "cursor": "cursor"; "interpolateMissingData": "interpolateMissingData"; "data": "data"; }, {}, never, never>;
|
|
97
102
|
}
|
|
@@ -100,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
100
100
|
}], data: [{
|
|
101
101
|
type: Input
|
|
102
102
|
}] } });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9heGlzL2F4aXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxJQUFJLEdBVUwsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRM0MsTUFBTSxPQUFPLGdCQUFnQjtJQTBJM0IsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRWxELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FB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Ly8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQXhpcyxcbiAgQXhpc0NvbmZpZ0ludGVyZmFjZSxcbiAgQ29udGFpbmVyQ29yZSxcbiAgVmlzRXZlbnRUeXBlLFxuICBWaXNFdmVudENhbGxiYWNrLFxuICBQb3NpdGlvbixcbiAgQXhpc1R5cGUsXG4gIEZpdE1vZGUsXG4gIFRyaW1Nb2RlLFxuICBUZXh0QWxpZ24sXG59IGZyb20gJ0B1bm92aXMvdHMnXG5pbXBvcnQgeyBWaXNYWUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy1heGlzJyxcbiAgdGVtcGxhdGU6ICcnLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBWaXNYWUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IFZpc0F4aXNDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFZpc0F4aXNDb21wb25lbnQ8RGF0dW0+IGltcGxlbWVudHMgQXhpc0NvbmZpZ0ludGVyZmFjZTxEYXR1bT4sIEFmdGVyVmlld0luaXQge1xuICAvKiogQW5pbWF0aW9uIGR1cmF0aW9uIG9mIHRoZSBkYXRhIHVwZGF0ZSB0cmFuc2l0aW9ucyBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQ6IGA2MDBgICovXG4gIEBJbnB1dCgpIGR1cmF0aW9uPzogbnVtYmVyXG5cbiAgLyoqIEV2ZW50cyBjb25maWd1cmF0aW9uLiBBbiBvYmplY3QgY29udGFpbmluZyBwcm9wZXJ0aWVzIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtzZWxlY3RvclN0cmluZ106IHtcbiAgICogICAgIFxcW2V2ZW50VHlwZV06IGNhbGxiYWNrRnVuY3Rpb25cbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IHtcbiAgICogICAgY2xpY2s6IChkKSA9PiBjb25zb2xlLmxvZyhcIkNsaWNrZWQgQXJlYVwiLCBkKVxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBldmVudHM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbZXZlbnRUeXBlIGluIFZpc0V2ZW50VHlwZV0/OiBWaXNFdmVudENhbGxiYWNrXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBZb3UgY2FuIHNldCBldmVyeSBTVkcgYW5kIEhUTUwgdmlzdWFsaXphdGlvbiBvYmplY3QgdG8gaGF2ZSBhIGN1c3RvbSBET00gYXR0cmlidXRlcywgd2hpY2ggaXMgdXNlZnVsXG4gICAqIHdoZW4geW91IHdhbnQgdG8gZG8gdW5pdCBvciBlbmQtdG8tZW5kIHRlc3RpbmcuIEF0dHJpYnV0ZXMgY29uZmlndXJhdGlvbiBvYmplY3QgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtzZWxlY3RvclN0cmluZ106IHtcbiAgICogICAgIFxcW2F0dHJpYnV0ZU5hbWVdOiBhdHRyaWJ1dGUgY29uc3RhbnQgdmFsdWUgb3IgYWNjZXNzb3IgZnVuY3Rpb25cbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IHtcbiAgICogICAgXCJ0ZXN0LXZhbHVlXCI6IGQgPT4gZC52YWx1ZVxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBhdHRyaWJ1dGVzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2F0dHI6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCAoKGRhdHVtOiBhbnkpID0+IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pO1xuICAgIH07XG4gIH1cblxuICAvKiogQXhpcyBwb3NpdGlvbjogYFBvc2l0aW9uLlRvcGAsIGBQb3NpdGlvbi5Cb3R0b21gLCBgUG9zaXRpb24uUmlnaHRgIG9yIGBQb3NpdGlvbi5MZWZ0YC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgcG9zaXRpb24/OiBQb3NpdGlvbiB8IHN0cmluZ1xuXG4gIC8qKiBBeGlzIHR5cGU6IGBBeGlzVHlwZS5YYCBvciBgQXhpc1R5cGUuWWAgKi9cbiAgQElucHV0KCkgdHlwZT86IEF4aXNUeXBlIHwgc3RyaW5nXG5cbiAgLyoqIEV4dGVuZCB0aGUgYXhpcyBkb21haW4gbGluZSB0byBiZSBmdWxsIHdpZHRoIG9yIGZ1bGwgaGVpZ2h0LiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgZnVsbFNpemU/OiBib29sZWFuXG5cbiAgLyoqIEF4aXMgbGFiZWwuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nXG5cbiAgLyoqIEZvbnQgc2l6ZSBvZiB0aGUgYXhpcyBsYWJlbCBhcyBDU1Mgc3RyaW5nLiBEZWZhdWx0OiBgbnVsbGAgKi9cbiAgQElucHV0KCkgbGFiZWxGb250U2l6ZT86IHN0cmluZyB8IG51bGxcblxuICAvKiogRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXhpcyBhbmQgdGhlIGxhYmVsIGluIHBpeGVscy4gRGVmYXVsdDogYDhgICovXG4gIEBJbnB1dCgpIGxhYmVsTWFyZ2luPzogbnVtYmVyXG5cbiAgLyoqIEZvbnQgY29sb3Igb2YgdGhlIGF4aXMgbGFiZWwgYXMgQ1NTIHN0cmluZy4gRGVmYXVsdDogYG51bGxgICovXG4gIEBJbnB1dCgpIGxhYmVsQ29sb3I/OiBzdHJpbmcgfCBudWxsXG5cbiAgLyoqIFNldHMgd2hldGhlciB0byBkcmF3IHRoZSBncmlkIGxpbmVzIG9yIG5vdC4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGdyaWRMaW5lPzogYm9vbGVhblxuXG4gIC8qKiBTZXRzIHdoZXRoZXIgdG8gZHJhdyB0aGUgdGljayBsaW5lcyBvciBub3QuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSB0aWNrTGluZT86IGJvb2xlYW5cblxuICAvKiogU2V0cyB3aGV0aGVyIHRvIGRyYXcgdGhlIGRvbWFpbiBsaW5lIG9yIG5vdC4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGRvbWFpbkxpbmU/OiBib29sZWFuXG5cbiAgLyoqIERyYXcgb25seSB0aGUgbWluIGFuZCBtYXggYXhpcyB0aWNrcy4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBtaW5NYXhUaWNrc09ubHk/OiBib29sZWFuXG5cbiAgLyoqIERyYXcgb25seSB0aGUgbWluIGFuZCBtYXggYXhpcyB0aWNrcywgd2hlbiB0aGUgY2hhcnRcbiAgICogd2lkdGggaXMgbGVzcyB0aGFuIHRoZSBzcGVjaWZpZWQgdmFsdWUuXG4gICAqIERlZmF1bHQ6IGAyNTBgICovXG4gIEBJbnB1dCgpIG1pbk1heFRpY2tzT25seVdoZW5XaWR0aElzTGVzcz86IG51bWJlclxuXG4gIC8qKiBUaWNrIGxhYmVsIGZvcm1hdHRlciBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgdGlja0Zvcm1hdD86ICgodGljazogbnVtYmVyIHwgRGF0ZSwgaTogbnVtYmVyLCB0aWNrczogbnVtYmVyW10gfCBEYXRlW10pID0+IHN0cmluZylcblxuICAvKiogRXhwbGljaXRseSBzZXQgdGljayB2YWx1ZXMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHRpY2tWYWx1ZXM/OiBudW1iZXJbXVxuXG4gIC8qKiBTZXQgdGhlIGFwcHJveGltYXRlIG51bWJlciBvZiBheGlzIHRpY2tzICh3aWxsIGJlIHBhc3NlZCB0byBEMydzIGF4aXMgY29uc3RydWN0b3IpLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBudW1UaWNrcz86IG51bWJlclxuXG4gIC8qKiBUaWNrIHRleHQgZml0IG1vZGU6IGBGaXRNb2RlLldyYXBgIG9yIGBGaXRNb2RlLlRyaW1gLiBEZWZhdWx0OiBgRml0TW9kZS5XcmFwYC4gKi9cbiAgQElucHV0KCkgdGlja1RleHRGaXRNb2RlPzogRml0TW9kZSB8IHN0cmluZ1xuXG4gIC8qKiBNYXhpbXVtIHdpZHRoIGluIHBpeGVscyBmb3IgdGhlIHRpY2sgdGV4dCB0byBiZSB3cmFwcGVkIG9yIHRyaW1tZWQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHRpY2tUZXh0V2lkdGg/OiBudW1iZXJcblxuICAvKiogVGljayB0ZXh0IHdyYXBwaW5nIHNlcGFyYXRvci4gU3RyaW5nIG9yIGFycmF5IG9mIHN0cmluZ3MuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHRpY2tUZXh0U2VwYXJhdG9yPzogc3RyaW5nIHwgc3RyaW5nW11cblxuICAvKiogRm9yY2Ugd29yZCBicmVhayBmb3IgdGlja3Mgd2hlbiB0aGV5IGRvbid0IGZpdC4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSB0aWNrVGV4dEZvcmNlV29yZEJyZWFrPzogYm9vbGVhblxuXG4gIC8qKiBUaWNrIHRleHQgdHJpbSBtb2RlOiBgVHJpbU1vZGUuU3RhcnRgLCBgVHJpbU1vZGUuTWlkZGxlYCBvciBgVHJpbU1vZGUuRW5kYC4gRGVmYXVsdDogYFRyaW1Nb2RlLk1pZGRsZWAgKi9cbiAgQElucHV0KCkgdGlja1RleHRUcmltVHlwZT86IFRyaW1Nb2RlIHwgc3RyaW5nXG5cbiAgLyoqIEZvbnQgc2l6ZSBvZiB0aGUgdGljayB0ZXh0IGFzIENTUyBzdHJpbmcuIERlZmF1bHQ6IGBudWxsYCAqL1xuICBASW5wdXQoKSB0aWNrVGV4dEZvbnRTaXplPzogc3RyaW5nIHwgbnVsbFxuXG4gIC8qKiBUZXh0IGFsaWdubWVudCBmb3IgdGlja3M6IGBUZXh0QWxpZ24uTGVmdGAsIGBUZXh0QWxpZ24uQ2VudGVyYCBvciBgVGV4dEFsaWduLlJpZ2h0YC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgdGlja1RleHRBbGlnbj86IFRleHRBbGlnbiB8IHN0cmluZ1xuXG4gIC8qKiBGb250IGNvbG9yIG9mIHRoZSB0aWNrIHRleHQgYXMgQ1NTIHN0cmluZy4gRGVmYXVsdDogYG51bGxgICovXG4gIEBJbnB1dCgpIHRpY2tUZXh0Q29sb3I/OiBzdHJpbmcgfCBudWxsXG5cbiAgLyoqIFRleHQgcm90YXRpb24gYW5nbGUgZm9yIHRpY2tzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB0aWNrVGV4dEFuZ2xlPzogbnVtYmVyXG5cbiAgLyoqIEhpZGUgdGljayBsYWJlbHMgdGhhdCBvdmVybGFwIHdpdGggZWFjaCBvdGhlci5cbiAgICogVG8gZGVmaW5lIG92ZXJsYXBwaW5nLCBhIHNpbXBsZSBib3VuZGluZyBib3ggY29sbGlzaW9uIGRldGVjdGlvbiBhbGdvcml0aG0gaXMgdXNlZC5cbiAgICogV2hpY2ggbWVhbnMgdGhlIHJlc3VsdCB3b24ndCBiZSBhY2N1cmF0ZSB3aGVuIGB0aWNrVGV4dEFuZ2xlYCBpcyBzcGVjaWZpZWQuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHRpY2tUZXh0SGlkZU92ZXJsYXBwaW5nPzogYm9vbGVhblxuXG4gIC8qKiBUaGUgc3BhY2luZyBpbiBwaXhlbHMgYmV0d2VlbiB0aGUgdGljayBhbmQgaXQncyBsYWJlbC4gRGVmYXVsdDogYDhgICovXG4gIEBJbnB1dCgpIHRpY2tQYWRkaW5nPzogbnVtYmVyXG4gIEBJbnB1dCgpIGRhdGE6IERhdHVtW11cblxuICBjb21wb25lbnQ6IEF4aXM8RGF0dW0+IHwgdW5kZWZpbmVkXG4gIHB1YmxpYyBjb21wb25lbnRDb250YWluZXI6IENvbnRhaW5lckNvcmUgfCB1bmRlZmluZWRcblxuICBuZ0FmdGVyVmlld0luaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IEF4aXM8RGF0dW0+KHRoaXMuZ2V0Q29uZmlnKCkpXG5cbiAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudC5zZXREYXRhKHRoaXMuZGF0YSlcbiAgICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzIChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuZGF0YSkgeyB0aGlzLmNvbXBvbmVudD8uc2V0RGF0YSh0aGlzLmRhdGEpIH1cbiAgICB0aGlzLmNvbXBvbmVudD8uc2V0Q29uZmlnKHRoaXMuZ2V0Q29uZmlnKCkpXG4gICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gIH1cblxuICBwcml2YXRlIGdldENvbmZpZyAoKTogQXhpc0NvbmZpZ0ludGVyZmFjZTxEYXR1bT4ge1xuICAgIGNvbnN0IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgcG9zaXRpb24sIHR5cGUsIGZ1bGxTaXplLCBsYWJlbCwgbGFiZWxGb250U2l6ZSwgbGFiZWxNYXJnaW4sIGxhYmVsQ29sb3IsIGdyaWRMaW5lLCB0aWNrTGluZSwgZG9tYWluTGluZSwgbWluTWF4VGlja3NPbmx5LCBtaW5NYXhUaWNrc09ubHlXaGVuV2lkdGhJc0xlc3MsIHRpY2tGb3JtYXQsIHRpY2tWYWx1ZXMsIG51bVRpY2tzLCB0aWNrVGV4dEZpdE1vZGUsIHRpY2tUZXh0V2lkdGgsIHRpY2tUZXh0U2VwYXJhdG9yLCB0aWNrVGV4dEZvcmNlV29yZEJyZWFrLCB0aWNrVGV4dFRyaW1UeXBlLCB0aWNrVGV4dEZvbnRTaXplLCB0aWNrVGV4dEFsaWduLCB0aWNrVGV4dENvbG9yLCB0aWNrVGV4dEFuZ2xlLCB0aWNrVGV4dEhpZGVPdmVybGFwcGluZywgdGlja1BhZGRpbmcgfSA9IHRoaXNcbiAgICBjb25zdCBjb25maWcgPSB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIHBvc2l0aW9uLCB0eXBlLCBmdWxsU2l6ZSwgbGFiZWwsIGxhYmVsRm9udFNpemUsIGxhYmVsTWFyZ2luLCBsYWJlbENvbG9yLCBncmlkTGluZSwgdGlja0xpbmUsIGRvbWFpbkxpbmUsIG1pbk1heFRpY2tzT25seSwgbWluTWF4VGlja3NPbmx5V2hlbldpZHRoSXNMZXNzLCB0aWNrRm9ybWF0LCB0aWNrVmFsdWVzLCBudW1UaWNrcywgdGlja1RleHRGaXRNb2RlLCB0aWNrVGV4dFdpZHRoLCB0aWNrVGV4dFNlcGFyYXRvciwgdGlja1RleHRGb3JjZVdvcmRCcmVhaywgdGlja1RleHRUcmltVHlwZSwgdGlja1RleHRGb250U2l6ZSwgdGlja1RleHRBbGlnbiwgdGlja1RleHRDb2xvciwgdGlja1RleHRBbmdsZSwgdGlja1RleHRIaWRlT3ZlcmxhcHBpbmcsIHRpY2tQYWRkaW5nIH1cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY29uZmlnKSBhcyAoa2V5b2YgQXhpc0NvbmZpZ0ludGVyZmFjZTxEYXR1bT4pW11cbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsgaWYgKGNvbmZpZ1trZXldID09PSB1bmRlZmluZWQpIGRlbGV0ZSBjb25maWdba2V5XSB9KVxuXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG59XG4iXX0=
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9heGlzL2F4aXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxJQUFJLEdBVUwsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRM0MsTUFBTSxPQUFPLGdCQUFnQjtJQTBJM0IsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRWxELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FB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Ly8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQXhpcyxcbiAgQXhpc0NvbmZpZ0ludGVyZmFjZSxcbiAgQ29udGFpbmVyQ29yZSxcbiAgVmlzRXZlbnRUeXBlLFxuICBWaXNFdmVudENhbGxiYWNrLFxuICBQb3NpdGlvbixcbiAgQXhpc1R5cGUsXG4gIEZpdE1vZGUsXG4gIFRyaW1Nb2RlLFxuICBUZXh0QWxpZ24sXG59IGZyb20gJ0B1bm92aXMvdHMnXG5pbXBvcnQgeyBWaXNYWUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy1heGlzJyxcbiAgdGVtcGxhdGU6ICcnLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBWaXNYWUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IFZpc0F4aXNDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFZpc0F4aXNDb21wb25lbnQ8RGF0dW0+IGltcGxlbWVudHMgQXhpc0NvbmZpZ0ludGVyZmFjZTxEYXR1bT4sIEFmdGVyVmlld0luaXQge1xuICAvKiogQW5pbWF0aW9uIGR1cmF0aW9uIG9mIHRoZSBkYXRhIHVwZGF0ZSB0cmFuc2l0aW9ucyBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQ6IGA2MDBgICovXG4gIEBJbnB1dCgpIGR1cmF0aW9uPzogbnVtYmVyXG5cbiAgLyoqIEV2ZW50cyBjb25maWd1cmF0aW9uLiBBbiBvYmplY3QgY29udGFpbmluZyBwcm9wZXJ0aWVzIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtzZWxlY3RvclN0cmluZ106IHtcbiAgICogICAgIFxcW2V2ZW50VHlwZV06IGNhbGxiYWNrRnVuY3Rpb25cbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IHtcbiAgICogICAgY2xpY2s6IChkKSA9PiBjb25zb2xlLmxvZyhcIkNsaWNrZWQgQXJlYVwiLCBkKVxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBldmVudHM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbZXZlbnRUeXBlIGluIFZpc0V2ZW50VHlwZV0/OiBWaXNFdmVudENhbGxiYWNrXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBZb3UgY2FuIHNldCBldmVyeSBTVkcgYW5kIEhUTUwgdmlzdWFsaXphdGlvbiBvYmplY3QgdG8gaGF2ZSBhIGN1c3RvbSBET00gYXR0cmlidXRlcywgd2hpY2ggaXMgdXNlZnVsXG4gICAqIHdoZW4geW91IHdhbnQgdG8gZG8gdW5pdCBvciBlbmQtdG8tZW5kIHRlc3RpbmcuIEF0dHJpYnV0ZXMgY29uZmlndXJhdGlvbiBvYmplY3QgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtzZWxlY3RvclN0cmluZ106IHtcbiAgICogICAgIFxcW2F0dHJpYnV0ZU5hbWVdOiBhdHRyaWJ1dGUgY29uc3RhbnQgdmFsdWUgb3IgYWNjZXNzb3IgZnVuY3Rpb25cbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IHtcbiAgICogICAgXCJ0ZXN0LXZhbHVlXCI6IGQgPT4gZC52YWx1ZVxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBhdHRyaWJ1dGVzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2F0dHI6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCAoKGRhdHVtOiBhbnkpID0+IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pO1xuICAgIH07XG4gIH1cblxuICAvKiogQXhpcyBwb3NpdGlvbjogYFBvc2l0aW9uLlRvcGAsIGBQb3NpdGlvbi5Cb3R0b21gLCBgUG9zaXRpb24uUmlnaHRgIG9yIGBQb3NpdGlvbi5MZWZ0YC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgcG9zaXRpb24/OiBQb3NpdGlvbiB8IHN0cmluZ1xuXG4gIC8qKiBBeGlzIHR5cGU6IGBBeGlzVHlwZS5YYCBvciBgQXhpc1R5cGUuWWAgKi9cbiAgQElucHV0KCkgdHlwZT86IEF4aXNUeXBlIHwgc3RyaW5nXG5cbiAgLyoqIEV4dGVuZCB0aGUgYXhpcyBkb21haW4gbGluZSB0byBiZSBmdWxsIHdpZHRoIG9yIGZ1bGwgaGVpZ2h0LiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgZnVsbFNpemU/OiBib29sZWFuXG5cbiAgLyoqIEF4aXMgbGFiZWwuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nXG5cbiAgLyoqIEZvbnQgc2l6ZSBvZiB0aGUgYXhpcyBsYWJlbCBhcyBDU1Mgc3RyaW5nLiBEZWZhdWx0OiBgbnVsbGAgKi9cbiAgQElucHV0KCkgbGFiZWxGb250U2l6ZT86IHN0cmluZyB8IG51bGxcblxuICAvKiogRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXhpcyBhbmQgdGhlIGxhYmVsIGluIHBpeGVscy4gRGVmYXVsdDogYDhgICovXG4gIEBJbnB1dCgpIGxhYmVsTWFyZ2luPzogbnVtYmVyXG5cbiAgLyoqIEZvbnQgY29sb3Igb2YgdGhlIGF4aXMgbGFiZWwgYXMgQ1NTIHN0cmluZy4gRGVmYXVsdDogYG51bGxgICovXG4gIEBJbnB1dCgpIGxhYmVsQ29sb3I/OiBzdHJpbmcgfCBudWxsXG5cbiAgLyoqIFNldHMgd2hldGhlciB0byBkcmF3IHRoZSBncmlkIGxpbmVzIG9yIG5vdC4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGdyaWRMaW5lPzogYm9vbGVhblxuXG4gIC8qKiBTZXRzIHdoZXRoZXIgdG8gZHJhdyB0aGUgdGljayBsaW5lcyBvciBub3QuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSB0aWNrTGluZT86IGJvb2xlYW5cblxuICAvKiogU2V0cyB3aGV0aGVyIHRvIGRyYXcgdGhlIGRvbWFpbiBsaW5lIG9yIG5vdC4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGRvbWFpbkxpbmU/OiBib29sZWFuXG5cbiAgLyoqIERyYXcgb25seSB0aGUgbWluIGFuZCBtYXggYXhpcyB0aWNrcy4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBtaW5NYXhUaWNrc09ubHk/OiBib29sZWFuXG5cbiAgLyoqIERyYXcgb25seSB0aGUgbWluIGFuZCBtYXggYXhpcyB0aWNrcywgd2hlbiB0aGUgY2hhcnRcbiAgICogd2lkdGggaXMgbGVzcyB0aGFuIHRoZSBzcGVjaWZpZWQgdmFsdWUuXG4gICAqIERlZmF1bHQ6IGAyNTBgICovXG4gIEBJbnB1dCgpIG1pbk1heFRpY2tzT25seVdoZW5XaWR0aElzTGVzcz86IG51bWJlclxuXG4gIC8qKiBUaWNrIGxhYmVsIGZvcm1hdHRlciBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgdGlja0Zvcm1hdD86ICgodGljazogbnVtYmVyLCBpOiBudW1iZXIsIHRpY2tzOiBudW1iZXJbXSkgPT4gc3RyaW5nKSB8ICgodGljazogRGF0ZSwgaTogbnVtYmVyLCB0aWNrczogRGF0ZVtdKSA9PiBzdHJpbmcpXG5cbiAgLyoqIEV4cGxpY2l0bHkgc2V0IHRpY2sgdmFsdWVzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB0aWNrVmFsdWVzPzogbnVtYmVyW11cblxuICAvKiogU2V0IHRoZSBhcHByb3hpbWF0ZSBudW1iZXIgb2YgYXhpcyB0aWNrcyAod2lsbCBiZSBwYXNzZWQgdG8gRDMncyBheGlzIGNvbnN0cnVjdG9yKS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbnVtVGlja3M/OiBudW1iZXJcblxuICAvKiogVGljayB0ZXh0IGZpdCBtb2RlOiBgRml0TW9kZS5XcmFwYCBvciBgRml0TW9kZS5UcmltYC4gRGVmYXVsdDogYEZpdE1vZGUuV3JhcGAuICovXG4gIEBJbnB1dCgpIHRpY2tUZXh0Rml0TW9kZT86IEZpdE1vZGUgfCBzdHJpbmdcblxuICAvKiogTWF4aW11bSB3aWR0aCBpbiBwaXhlbHMgZm9yIHRoZSB0aWNrIHRleHQgdG8gYmUgd3JhcHBlZCBvciB0cmltbWVkLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB0aWNrVGV4dFdpZHRoPzogbnVtYmVyXG5cbiAgLyoqIFRpY2sgdGV4dCB3cmFwcGluZyBzZXBhcmF0b3IuIFN0cmluZyBvciBhcnJheSBvZiBzdHJpbmdzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB0aWNrVGV4dFNlcGFyYXRvcj86IHN0cmluZyB8IHN0cmluZ1tdXG5cbiAgLyoqIEZvcmNlIHdvcmQgYnJlYWsgZm9yIHRpY2tzIHdoZW4gdGhleSBkb24ndCBmaXQuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgdGlja1RleHRGb3JjZVdvcmRCcmVhaz86IGJvb2xlYW5cblxuICAvKiogVGljayB0ZXh0IHRyaW0gbW9kZTogYFRyaW1Nb2RlLlN0YXJ0YCwgYFRyaW1Nb2RlLk1pZGRsZWAgb3IgYFRyaW1Nb2RlLkVuZGAuIERlZmF1bHQ6IGBUcmltTW9kZS5NaWRkbGVgICovXG4gIEBJbnB1dCgpIHRpY2tUZXh0VHJpbVR5cGU/OiBUcmltTW9kZSB8IHN0cmluZ1xuXG4gIC8qKiBGb250IHNpemUgb2YgdGhlIHRpY2sgdGV4dCBhcyBDU1Mgc3RyaW5nLiBEZWZhdWx0OiBgbnVsbGAgKi9cbiAgQElucHV0KCkgdGlja1RleHRGb250U2l6ZT86IHN0cmluZyB8IG51bGxcblxuICAvKiogVGV4dCBhbGlnbm1lbnQgZm9yIHRpY2tzOiBgVGV4dEFsaWduLkxlZnRgLCBgVGV4dEFsaWduLkNlbnRlcmAgb3IgYFRleHRBbGlnbi5SaWdodGAuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHRpY2tUZXh0QWxpZ24/OiBUZXh0QWxpZ24gfCBzdHJpbmdcblxuICAvKiogRm9udCBjb2xvciBvZiB0aGUgdGljayB0ZXh0IGFzIENTUyBzdHJpbmcuIERlZmF1bHQ6IGBudWxsYCAqL1xuICBASW5wdXQoKSB0aWNrVGV4dENvbG9yPzogc3RyaW5nIHwgbnVsbFxuXG4gIC8qKiBUZXh0IHJvdGF0aW9uIGFuZ2xlIGZvciB0aWNrcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgdGlja1RleHRBbmdsZT86IG51bWJlclxuXG4gIC8qKiBIaWRlIHRpY2sgbGFiZWxzIHRoYXQgb3ZlcmxhcCB3aXRoIGVhY2ggb3RoZXIuXG4gICAqIFRvIGRlZmluZSBvdmVybGFwcGluZywgYSBzaW1wbGUgYm91bmRpbmcgYm94IGNvbGxpc2lvbiBkZXRlY3Rpb24gYWxnb3JpdGhtIGlzIHVzZWQuXG4gICAqIFdoaWNoIG1lYW5zIHRoZSByZXN1bHQgd29uJ3QgYmUgYWNjdXJhdGUgd2hlbiBgdGlja1RleHRBbmdsZWAgaXMgc3BlY2lmaWVkLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB0aWNrVGV4dEhpZGVPdmVybGFwcGluZz86IGJvb2xlYW5cblxuICAvKiogVGhlIHNwYWNpbmcgaW4gcGl4ZWxzIGJldHdlZW4gdGhlIHRpY2sgYW5kIGl0J3MgbGFiZWwuIERlZmF1bHQ6IGA4YCAqL1xuICBASW5wdXQoKSB0aWNrUGFkZGluZz86IG51bWJlclxuICBASW5wdXQoKSBkYXRhOiBEYXR1bVtdXG5cbiAgY29tcG9uZW50OiBBeGlzPERhdHVtPiB8IHVuZGVmaW5lZFxuICBwdWJsaWMgY29tcG9uZW50Q29udGFpbmVyOiBDb250YWluZXJDb3JlIHwgdW5kZWZpbmVkXG5cbiAgbmdBZnRlclZpZXdJbml0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudCA9IG5ldyBBeGlzPERhdHVtPih0aGlzLmdldENvbmZpZygpKVxuXG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5jb21wb25lbnQuc2V0RGF0YSh0aGlzLmRhdGEpXG4gICAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmRhdGEpIHsgdGhpcy5jb21wb25lbnQ/LnNldERhdGEodGhpcy5kYXRhKSB9XG4gICAgdGhpcy5jb21wb25lbnQ/LnNldENvbmZpZyh0aGlzLmdldENvbmZpZygpKVxuICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25maWcgKCk6IEF4aXNDb25maWdJbnRlcmZhY2U8RGF0dW0+IHtcbiAgICBjb25zdCB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIHBvc2l0aW9uLCB0eXBlLCBmdWxsU2l6ZSwgbGFiZWwsIGxhYmVsRm9udFNpemUsIGxhYmVsTWFyZ2luLCBsYWJlbENvbG9yLCBncmlkTGluZSwgdGlja0xpbmUsIGRvbWFpbkxpbmUsIG1pbk1heFRpY2tzT25seSwgbWluTWF4VGlja3NPbmx5V2hlbldpZHRoSXNMZXNzLCB0aWNrRm9ybWF0LCB0aWNrVmFsdWVzLCBudW1UaWNrcywgdGlja1RleHRGaXRNb2RlLCB0aWNrVGV4dFdpZHRoLCB0aWNrVGV4dFNlcGFyYXRvciwgdGlja1RleHRGb3JjZVdvcmRCcmVhaywgdGlja1RleHRUcmltVHlwZSwgdGlja1RleHRGb250U2l6ZSwgdGlja1RleHRBbGlnbiwgdGlja1RleHRDb2xvciwgdGlja1RleHRBbmdsZSwgdGlja1RleHRIaWRlT3ZlcmxhcHBpbmcsIHRpY2tQYWRkaW5nIH0gPSB0aGlzXG4gICAgY29uc3QgY29uZmlnID0geyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCBwb3NpdGlvbiwgdHlwZSwgZnVsbFNpemUsIGxhYmVsLCBsYWJlbEZvbnRTaXplLCBsYWJlbE1hcmdpbiwgbGFiZWxDb2xvciwgZ3JpZExpbmUsIHRpY2tMaW5lLCBkb21haW5MaW5lLCBtaW5NYXhUaWNrc09ubHksIG1pbk1heFRpY2tzT25seVdoZW5XaWR0aElzTGVzcywgdGlja0Zvcm1hdCwgdGlja1ZhbHVlcywgbnVtVGlja3MsIHRpY2tUZXh0Rml0TW9kZSwgdGlja1RleHRXaWR0aCwgdGlja1RleHRTZXBhcmF0b3IsIHRpY2tUZXh0Rm9yY2VXb3JkQnJlYWssIHRpY2tUZXh0VHJpbVR5cGUsIHRpY2tUZXh0Rm9udFNpemUsIHRpY2tUZXh0QWxpZ24sIHRpY2tUZXh0Q29sb3IsIHRpY2tUZXh0QW5nbGUsIHRpY2tUZXh0SGlkZU92ZXJsYXBwaW5nLCB0aWNrUGFkZGluZyB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykgYXMgKGtleW9mIEF4aXNDb25maWdJbnRlcmZhY2U8RGF0dW0+KVtdXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7IGlmIChjb25maWdba2V5XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgY29uZmlnW2tleV0gfSlcblxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuIl19
|
|
@@ -21,8 +21,8 @@ export class VisDonutComponent {
|
|
|
21
21
|
(_c = this.componentContainer) === null || _c === void 0 ? void 0 : _c.render();
|
|
22
22
|
}
|
|
23
23
|
getConfig() {
|
|
24
|
-
const { duration, events, attributes, id, value, angleRange, padAngle, sortFunction, cornerRadius, color, radius, arcWidth, centralLabel, centralSubLabel, centralSubLabelWrap, showEmptySegments, emptySegmentAngle, showBackground, backgroundAngleRange } = this;
|
|
25
|
-
const config = { duration, events, attributes, id, value, angleRange, padAngle, sortFunction, cornerRadius, color, radius, arcWidth, centralLabel, centralSubLabel, centralSubLabelWrap, showEmptySegments, emptySegmentAngle, showBackground, backgroundAngleRange };
|
|
24
|
+
const { duration, events, attributes, id, value, angleRange, padAngle, sortFunction, cornerRadius, color, radius, arcWidth, centralLabel, centralSubLabel, centralSubLabelWrap, showEmptySegments, emptySegmentAngle, showBackground, backgroundAngleRange, centralLabelOffsetX, centralLabelOffsetY } = this;
|
|
25
|
+
const config = { duration, events, attributes, id, value, angleRange, padAngle, sortFunction, cornerRadius, color, radius, arcWidth, centralLabel, centralSubLabel, centralSubLabelWrap, showEmptySegments, emptySegmentAngle, showBackground, backgroundAngleRange, centralLabelOffsetX, centralLabelOffsetY };
|
|
26
26
|
const keys = Object.keys(config);
|
|
27
27
|
keys.forEach(key => { if (config[key] === undefined)
|
|
28
28
|
delete config[key]; });
|
|
@@ -30,7 +30,7 @@ export class VisDonutComponent {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
VisDonutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisDonutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
-
VisDonutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisDonutComponent, selector: "vis-donut", inputs: { duration: "duration", events: "events", attributes: "attributes", id: "id", value: "value", angleRange: "angleRange", padAngle: "padAngle", sortFunction: "sortFunction", cornerRadius: "cornerRadius", color: "color", radius: "radius", arcWidth: "arcWidth", centralLabel: "centralLabel", centralSubLabel: "centralSubLabel", centralSubLabelWrap: "centralSubLabelWrap", showEmptySegments: "showEmptySegments", emptySegmentAngle: "emptySegmentAngle", showBackground: "showBackground", backgroundAngleRange: "backgroundAngleRange", data: "data" }, providers: [{ provide: VisCoreComponent, useExisting: VisDonutComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
|
|
33
|
+
VisDonutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisDonutComponent, selector: "vis-donut", inputs: { duration: "duration", events: "events", attributes: "attributes", id: "id", value: "value", angleRange: "angleRange", padAngle: "padAngle", sortFunction: "sortFunction", cornerRadius: "cornerRadius", color: "color", radius: "radius", arcWidth: "arcWidth", centralLabel: "centralLabel", centralSubLabel: "centralSubLabel", centralSubLabelWrap: "centralSubLabelWrap", showEmptySegments: "showEmptySegments", emptySegmentAngle: "emptySegmentAngle", showBackground: "showBackground", backgroundAngleRange: "backgroundAngleRange", centralLabelOffsetX: "centralLabelOffsetX", centralLabelOffsetY: "centralLabelOffsetY", data: "data" }, providers: [{ provide: VisCoreComponent, useExisting: VisDonutComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
|
|
34
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisDonutComponent, decorators: [{
|
|
35
35
|
type: Component,
|
|
36
36
|
args: [{
|
|
@@ -77,7 +77,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
77
77
|
type: Input
|
|
78
78
|
}], backgroundAngleRange: [{
|
|
79
79
|
type: Input
|
|
80
|
+
}], centralLabelOffsetX: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], centralLabelOffsetY: [{
|
|
83
|
+
type: Input
|
|
80
84
|
}], data: [{
|
|
81
85
|
type: Input
|
|
82
86
|
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9udXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZG9udXQvZG9udXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFBRSxLQUFLLEVBQXVHLE1BQU0sWUFBWSxDQUFBO0FBQ3ZJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRN0MsTUFBTSxPQUFPLGlCQUFpQjtJQTBHNUIsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRW5ELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDblEsTUFBTSxNQUFNLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxDQUFBO1FBQ3JRLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUEwQyxDQUFBO1FBQ3pFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTO1lBQUUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUUxRSxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7OytHQWhJVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw0a0JBRmpCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLENBQUMsK0NBRmhFLEVBQUU7NEZBSUQsaUJBQWlCO2tCQU43QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUUsRUFBRTtvQkFDWixnREFBZ0Q7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsbUJBQW1CLEVBQUUsQ0FBQztpQkFDM0U7OEJBR1UsUUFBUTtzQkFBaEIsS0FBSztnQkFtQkcsTUFBTTtzQkFBZCxLQUFLO2dCQXdCRyxVQUFVO3NCQUFsQixLQUFLO2dCQU9HLEVBQUU7c0JBQVYsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFJRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUtHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vICEhISBUaGlzIGNvZGUgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLiBZb3Ugc2hvdWxkIG5vdCBjaGFuZ2UgaXQgISEhXG5pbXBvcnQgeyBDb21wb25lbnQsIEFmdGVyVmlld0luaXQsIElucHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IERvbnV0LCBEb251dENvbmZpZ0ludGVyZmFjZSwgQ29udGFpbmVyQ29yZSwgVmlzRXZlbnRUeXBlLCBWaXNFdmVudENhbGxiYWNrLCBOdW1lcmljQWNjZXNzb3IsIENvbG9yQWNjZXNzb3IgfSBmcm9tICdAdW5vdmlzL3RzJ1xuaW1wb3J0IHsgVmlzQ29yZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy1kb251dCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVmlzQ29yZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IFZpc0RvbnV0Q29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNEb251dENvbXBvbmVudDxEYXR1bT4gaW1wbGVtZW50cyBEb251dENvbmZpZ0ludGVyZmFjZTxEYXR1bT4sIEFmdGVyVmlld0luaXQge1xuICAvKiogQW5pbWF0aW9uIGR1cmF0aW9uIG9mIHRoZSBkYXRhIHVwZGF0ZSB0cmFuc2l0aW9ucyBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQ6IGA2MDBgICovXG4gIEBJbnB1dCgpIGR1cmF0aW9uPzogbnVtYmVyXG5cbiAgLyoqIEV2ZW50cyBjb25maWd1cmF0aW9uLiBBbiBvYmplY3QgY29udGFpbmluZyBwcm9wZXJ0aWVzIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtzZWxlY3RvclN0cmluZ106IHtcbiAgICogICAgIFxcW2V2ZW50VHlwZV06IGNhbGxiYWNrRnVuY3Rpb25cbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IHtcbiAgICogICAgY2xpY2s6IChkKSA9PiBjb25zb2xlLmxvZyhcIkNsaWNrZWQgQXJlYVwiLCBkKVxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBldmVudHM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbZXZlbnRUeXBlIGluIFZpc0V2ZW50VHlwZV0/OiBWaXNFdmVudENhbGxiYWNrXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBZb3UgY2FuIHNldCBldmVyeSBTVkcgYW5kIEhUTUwgdmlzdWFsaXphdGlvbiBvYmplY3QgdG8gaGF2ZSBhIGN1c3RvbSBET00gYXR0cmlidXRlcywgd2hpY2ggaXMgdXNlZnVsXG4gICAqIHdoZW4geW91IHdhbnQgdG8gZG8gdW5pdCBvciBlbmQtdG8tZW5kIHRlc3RpbmcuIEF0dHJpYnV0ZXMgY29uZmlndXJhdGlvbiBvYmplY3QgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtzZWxlY3RvclN0cmluZ106IHtcbiAgICogICAgIFxcW2F0dHJpYnV0ZU5hbWVdOiBhdHRyaWJ1dGUgY29uc3RhbnQgdmFsdWUgb3IgYWNjZXNzb3IgZnVuY3Rpb25cbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IHtcbiAgICogICAgXCJ0ZXN0LXZhbHVlXCI6IGQgPT4gZC52YWx1ZVxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBhdHRyaWJ1dGVzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2F0dHI6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCAoKGRhdHVtOiBhbnkpID0+IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pO1xuICAgIH07XG4gIH1cblxuICAvKiogQWNjZXNzb3IgZnVuY3Rpb24gZm9yIGdldHRpbmcgdGhlIHVuaXF1ZSBkYXRhIHJlY29yZCBpZC4gVXNlZCBmb3IgbW9yZSBwZXJzaXN0ZW50IGRhdGEgdXBkYXRlcy4gRGVmYXVsdDogYChkLCBpKSA9PiBkLmlkID8/IGlgICovXG4gIEBJbnB1dCgpIGlkPzogKChkOiBEYXR1bSwgaTogbnVtYmVyLCAuLi5yZXN0KSA9PiBzdHJpbmcgfCBudW1iZXIpXG5cbiAgLyoqIFZhbHVlIGFjY2Vzc29yIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB2YWx1ZTogTnVtZXJpY0FjY2Vzc29yPERhdHVtPlxuXG4gIC8qKiBEaWFncmFtIGFuZ2xlIHJhbmdlLiBEZWZhdWx0OiBgWzAsIDIgKiBNYXRoLlBJXWAgKi9cbiAgQElucHV0KCkgYW5nbGVSYW5nZT86IFtudW1iZXIsIG51bWJlcl1cblxuICAvKiogUGFkIGFuZ2xlLiBEZWZhdWx0OiBgMGAgKi9cbiAgQElucHV0KCkgcGFkQW5nbGU/OiBudW1iZXJcblxuICAvKiogQ3VzdG9tIHNvcnQgZnVuY3Rpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHNvcnRGdW5jdGlvbj86IChhOiBEYXR1bSwgYjogRGF0dW0pID0+IG51bWJlclxuXG4gIC8qKiBDb3JuZXIgUmFkaXVzLiBEZWZhdWx0OiBgMGAgKi9cbiAgQElucHV0KCkgY29ybmVyUmFkaXVzPzogbnVtYmVyXG5cbiAgLyoqIENvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBjb2xvcj86IENvbG9yQWNjZXNzb3I8RGF0dW0+XG5cbiAgLyoqIEV4cGxpY2l0bHkgc2V0IHRoZSBkb251dCBvdXRlciByYWRpdXMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHJhZGl1cz86IG51bWJlclxuXG4gIC8qKiBBcmMgd2lkdGggaW4gcGl4ZWxzLiBTZXQgdG8gYDBgIGlmIHlvdSB3YW50IHRvIGhhdmUgYSBwaWUgY2hhcnQuIERlZmF1bHQ6IGAyMGAgKi9cbiAgQElucHV0KCkgYXJjV2lkdGg/OiBudW1iZXJcblxuICAvKiogQ2VudHJhbCBsYWJlbCBhY2Nlc3NvciBmdW5jdGlvbiBvciB0ZXh0LiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBjZW50cmFsTGFiZWw/OiBzdHJpbmdcblxuICAvKiogQ2VudHJhbCBzdWItbGFiZWwgYWNjZXNzb3IgZnVuY3Rpb24gb3IgdGV4dC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgY2VudHJhbFN1YkxhYmVsPzogc3RyaW5nXG5cbiAgLyoqIEVuYWJsZXMgd3JhcHBpbmcgZm9yIHRoZSBzdWItbGFiZWwuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBjZW50cmFsU3ViTGFiZWxXcmFwPzogYm9vbGVhblxuXG4gIC8qKiBXaGVuIHRydWUsIHRoZSBjb21wb25lbnQgd2lsbCBkaXNwbGF5IGVtcHR5IHNlZ21lbnRzICh0aGUgb25lcyB0aGF0IGhhdmUgYDBgIHZhbHVlcykgYXMgdGlueSBzbGljZXMuXG4gICAqIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgc2hvd0VtcHR5U2VnbWVudHM/OiBib29sZWFuXG5cbiAgLyoqIEFuZ3VsYXIgc2l6ZSBmb3IgZW1wdHkgc2VnbWVudHMgaW4gcmFkaWFucy4gRGVmYXVsdDogYDAuNSAqIE1hdGguUEkgLyAxODBgICovXG4gIEBJbnB1dCgpIGVtcHR5U2VnbWVudEFuZ2xlPzogbnVtYmVyXG5cbiAgLyoqIFNob3cgZG9udXQgYmFja2dyb3VuZC4gVGhlIGNvbG9yIGlzIGNvbmZpZ3VyYWJsZSB2aWFcbiAgICogdGhlIGAtLXZpcy1kb251dC1iYWNrZ3JvdW5kLWNvbG9yYCBhbmQgYC0tdmlzLWRhcmstZG9udXQtYmFja2dyb3VuZC1jb2xvcmAgQ1NTIHZhcmlhYmxlcy5cbiAgICogRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIHNob3dCYWNrZ3JvdW5kPzogYm9vbGVhblxuXG4gIC8qKiBCYWNrZ3JvdW5kIGFuZ2xlIHJhbmdlLiBXaGVuIHVuZGVmaW5lZCwgdGhlIHZhbHVlIHdpbGwgYmUgdGFrZW4gZnJvbSBgYW5nbGVSYW5nZWAuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGJhY2tncm91bmRBbmdsZVJhbmdlPzogW251bWJlciwgbnVtYmVyXVxuICBASW5wdXQoKSBkYXRhOiBEYXR1bVtdXG5cbiAgY29tcG9uZW50OiBEb251dDxEYXR1bT4gfCB1bmRlZmluZWRcbiAgcHVibGljIGNvbXBvbmVudENvbnRhaW5lcjogQ29udGFpbmVyQ29yZSB8IHVuZGVmaW5lZFxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCAoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnQgPSBuZXcgRG9udXQ8RGF0dW0+KHRoaXMuZ2V0Q29uZmlnKCkpXG5cbiAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudC5zZXREYXRhKHRoaXMuZGF0YSlcbiAgICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzIChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuZGF0YSkgeyB0aGlzLmNvbXBvbmVudD8uc2V0RGF0YSh0aGlzLmRhdGEpIH1cbiAgICB0aGlzLmNvbXBvbmVudD8uc2V0Q29uZmlnKHRoaXMuZ2V0Q29uZmlnKCkpXG4gICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gIH1cblxuICBwcml2YXRlIGdldENvbmZpZyAoKTogRG9udXRDb25maWdJbnRlcmZhY2U8RGF0dW0+IHtcbiAgICBjb25zdCB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIGlkLCB2YWx1ZSwgYW5nbGVSYW5nZSwgcGFkQW5nbGUsIHNvcnRGdW5jdGlvbiwgY29ybmVyUmFkaXVzLCBjb2xvciwgcmFkaXVzLCBhcmNXaWR0aCwgY2VudHJhbExhYmVsLCBjZW50cmFsU3ViTGFiZWwsIGNlbnRyYWxTdWJMYWJlbFdyYXAsIHNob3dFbXB0eVNlZ21lbnRzLCBlbXB0eVNlZ21lbnRBbmdsZSwgc2hvd0JhY2tncm91bmQsIGJhY2tncm91bmRBbmdsZVJhbmdlIH0gPSB0aGlzXG4gICAgY29uc3QgY29uZmlnID0geyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCBpZCwgdmFsdWUsIGFuZ2xlUmFuZ2UsIHBhZEFuZ2xlLCBzb3J0RnVuY3Rpb24sIGNvcm5lclJhZGl1cywgY29sb3IsIHJhZGl1cywgYXJjV2lkdGgsIGNlbnRyYWxMYWJlbCwgY2VudHJhbFN1YkxhYmVsLCBjZW50cmFsU3ViTGFiZWxXcmFwLCBzaG93RW1wdHlTZWdtZW50cywgZW1wdHlTZWdtZW50QW5nbGUsIHNob3dCYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kQW5nbGVSYW5nZSB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykgYXMgKGtleW9mIERvbnV0Q29uZmlnSW50ZXJmYWNlPERhdHVtPilbXVxuICAgIGtleXMuZm9yRWFjaChrZXkgPT4geyBpZiAoY29uZmlnW2tleV0gPT09IHVuZGVmaW5lZCkgZGVsZXRlIGNvbmZpZ1trZXldIH0pXG5cbiAgICByZXR1cm4gY29uZmlnXG4gIH1cbn1cbiJdfQ==
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9udXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZG9udXQvZG9udXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFBRSxLQUFLLEVBQXVHLE1BQU0sWUFBWSxDQUFBO0FBQ3ZJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRN0MsTUFBTSxPQUFPLGlCQUFpQjtJQWdINUIsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRW5ELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDN1MsTUFBTSxNQUFNLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxDQUFBO1FBQy9TLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUEwQyxDQUFBO1FBQ3pFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTO1lBQUUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUUxRSxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7OytHQXRJVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixvcUJBRmpCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLENBQUMsK0NBRmhFLEVBQUU7NEZBSUQsaUJBQWlCO2tCQU43QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUUsRUFBRTtvQkFDWixnREFBZ0Q7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsbUJBQW1CLEVBQUUsQ0FBQztpQkFDM0U7OEJBR1UsUUFBUTtzQkFBaEIsS0FBSztnQkFtQkcsTUFBTTtzQkFBZCxLQUFLO2dCQXdCRyxVQUFVO3NCQUFsQixLQUFLO2dCQU9HLEVBQUU7c0JBQVYsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFJRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUtHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRG9udXQsIERvbnV0Q29uZmlnSW50ZXJmYWNlLCBDb250YWluZXJDb3JlLCBWaXNFdmVudFR5cGUsIFZpc0V2ZW50Q2FsbGJhY2ssIE51bWVyaWNBY2Nlc3NvciwgQ29sb3JBY2Nlc3NvciB9IGZyb20gJ0B1bm92aXMvdHMnXG5pbXBvcnQgeyBWaXNDb3JlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmlzLWRvbnV0JyxcbiAgdGVtcGxhdGU6ICcnLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBWaXNDb3JlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogVmlzRG9udXRDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFZpc0RvbnV0Q29tcG9uZW50PERhdHVtPiBpbXBsZW1lbnRzIERvbnV0Q29uZmlnSW50ZXJmYWNlPERhdHVtPiwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIGRhdGEgdXBkYXRlIHRyYW5zaXRpb25zIGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdDogYDYwMGAgKi9cbiAgQElucHV0KCkgZHVyYXRpb24/OiBudW1iZXJcblxuICAvKiogRXZlbnRzIGNvbmZpZ3VyYXRpb24uIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbZXZlbnRUeXBlXTogY2FsbGJhY2tGdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBjbGljazogKGQpID0+IGNvbnNvbGUubG9nKFwiQ2xpY2tlZCBBcmVhXCIsIGQpXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGV2ZW50cz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFtldmVudFR5cGUgaW4gVmlzRXZlbnRUeXBlXT86IFZpc0V2ZW50Q2FsbGJhY2tcbiAgICB9O1xuICB9XG5cbiAgLyoqIFlvdSBjYW4gc2V0IGV2ZXJ5IFNWRyBhbmQgSFRNTCB2aXN1YWxpemF0aW9uIG9iamVjdCB0byBoYXZlIGEgY3VzdG9tIERPTSBhdHRyaWJ1dGVzLCB3aGljaCBpcyB1c2VmdWxcbiAgICogd2hlbiB5b3Ugd2FudCB0byBkbyB1bml0IG9yIGVuZC10by1lbmQgdGVzdGluZy4gQXR0cmlidXRlcyBjb25maWd1cmF0aW9uIG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbYXR0cmlidXRlTmFtZV06IGF0dHJpYnV0ZSBjb25zdGFudCB2YWx1ZSBvciBhY2Nlc3NvciBmdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBcInRlc3QtdmFsdWVcIjogZCA9PiBkLnZhbHVlXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGF0dHJpYnV0ZXM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbYXR0cjogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8ICgoZGF0dW06IGFueSkgPT4gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbik7XG4gICAgfTtcbiAgfVxuXG4gIC8qKiBBY2Nlc3NvciBmdW5jdGlvbiBmb3IgZ2V0dGluZyB0aGUgdW5pcXVlIGRhdGEgcmVjb3JkIGlkLiBVc2VkIGZvciBtb3JlIHBlcnNpc3RlbnQgZGF0YSB1cGRhdGVzLiBEZWZhdWx0OiBgKGQsIGkpID0+IGQuaWQgPz8gaWAgKi9cbiAgQElucHV0KCkgaWQ/OiAoKGQ6IERhdHVtLCBpOiBudW1iZXIsIC4uLnJlc3QpID0+IHN0cmluZyB8IG51bWJlcilcblxuICAvKiogVmFsdWUgYWNjZXNzb3IgZnVuY3Rpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHZhbHVlOiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+XG5cbiAgLyoqIERpYWdyYW0gYW5nbGUgcmFuZ2UuIERlZmF1bHQ6IGBbMCwgMiAqIE1hdGguUEldYCAqL1xuICBASW5wdXQoKSBhbmdsZVJhbmdlPzogW251bWJlciwgbnVtYmVyXVxuXG4gIC8qKiBQYWQgYW5nbGUuIERlZmF1bHQ6IGAwYCAqL1xuICBASW5wdXQoKSBwYWRBbmdsZT86IG51bWJlclxuXG4gIC8qKiBDdXN0b20gc29ydCBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc29ydEZ1bmN0aW9uPzogKGE6IERhdHVtLCBiOiBEYXR1bSkgPT4gbnVtYmVyXG5cbiAgLyoqIENvcm5lciBSYWRpdXMuIERlZmF1bHQ6IGAwYCAqL1xuICBASW5wdXQoKSBjb3JuZXJSYWRpdXM/OiBudW1iZXJcblxuICAvKiogQ29sb3IgYWNjZXNzb3IgZnVuY3Rpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGNvbG9yPzogQ29sb3JBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogRXhwbGljaXRseSBzZXQgdGhlIGRvbnV0IG91dGVyIHJhZGl1cy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgcmFkaXVzPzogbnVtYmVyXG5cbiAgLyoqIEFyYyB3aWR0aCBpbiBwaXhlbHMuIFNldCB0byBgMGAgaWYgeW91IHdhbnQgdG8gaGF2ZSBhIHBpZSBjaGFydC4gRGVmYXVsdDogYDIwYCAqL1xuICBASW5wdXQoKSBhcmNXaWR0aD86IG51bWJlclxuXG4gIC8qKiBDZW50cmFsIGxhYmVsIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIHRleHQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGNlbnRyYWxMYWJlbD86IHN0cmluZ1xuXG4gIC8qKiBDZW50cmFsIHN1Yi1sYWJlbCBhY2Nlc3NvciBmdW5jdGlvbiBvciB0ZXh0LiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBjZW50cmFsU3ViTGFiZWw/OiBzdHJpbmdcblxuICAvKiogRW5hYmxlcyB3cmFwcGluZyBmb3IgdGhlIHN1Yi1sYWJlbC4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGNlbnRyYWxTdWJMYWJlbFdyYXA/OiBib29sZWFuXG5cbiAgLyoqIFdoZW4gdHJ1ZSwgdGhlIGNvbXBvbmVudCB3aWxsIGRpc3BsYXkgZW1wdHkgc2VnbWVudHMgKHRoZSBvbmVzIHRoYXQgaGF2ZSBgMGAgdmFsdWVzKSBhcyB0aW55IHNsaWNlcy5cbiAgICogRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBzaG93RW1wdHlTZWdtZW50cz86IGJvb2xlYW5cblxuICAvKiogQW5ndWxhciBzaXplIGZvciBlbXB0eSBzZWdtZW50cyBpbiByYWRpYW5zLiBEZWZhdWx0OiBgMC41ICogTWF0aC5QSSAvIDE4MGAgKi9cbiAgQElucHV0KCkgZW1wdHlTZWdtZW50QW5nbGU/OiBudW1iZXJcblxuICAvKiogU2hvdyBkb251dCBiYWNrZ3JvdW5kLiBUaGUgY29sb3IgaXMgY29uZmlndXJhYmxlIHZpYVxuICAgKiB0aGUgYC0tdmlzLWRvbnV0LWJhY2tncm91bmQtY29sb3JgIGFuZCBgLS12aXMtZGFyay1kb251dC1iYWNrZ3JvdW5kLWNvbG9yYCBDU1MgdmFyaWFibGVzLlxuICAgKiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgc2hvd0JhY2tncm91bmQ/OiBib29sZWFuXG5cbiAgLyoqIEJhY2tncm91bmQgYW5nbGUgcmFuZ2UuIFdoZW4gdW5kZWZpbmVkLCB0aGUgdmFsdWUgd2lsbCBiZSB0YWtlbiBmcm9tIGBhbmdsZVJhbmdlYC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgYmFja2dyb3VuZEFuZ2xlUmFuZ2U/OiBbbnVtYmVyLCBudW1iZXJdXG5cbiAgLyoqIENlbnRyYWwgbGFiZWwgYW5kIHN1Yi1sYWJlbCBob3Jpem9udGFsIG9mZnNldCBpbiBwaXhlbHMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGNlbnRyYWxMYWJlbE9mZnNldFg/OiBudW1iZXJcblxuICAvKiogQ2VudHJhbCBsYWJlbCBhbmQgc3ViLWxhYmVsIHZlcnRpY2FsIG9mZnNldCBpbiBwaXhlbHMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGNlbnRyYWxMYWJlbE9mZnNldFk/OiBudW1iZXJcbiAgQElucHV0KCkgZGF0YTogRGF0dW1bXVxuXG4gIGNvbXBvbmVudDogRG9udXQ8RGF0dW0+IHwgdW5kZWZpbmVkXG4gIHB1YmxpYyBjb21wb25lbnRDb250YWluZXI6IENvbnRhaW5lckNvcmUgfCB1bmRlZmluZWRcblxuICBuZ0FmdGVyVmlld0luaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IERvbnV0PERhdHVtPih0aGlzLmdldENvbmZpZygpKVxuXG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5jb21wb25lbnQuc2V0RGF0YSh0aGlzLmRhdGEpXG4gICAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmRhdGEpIHsgdGhpcy5jb21wb25lbnQ/LnNldERhdGEodGhpcy5kYXRhKSB9XG4gICAgdGhpcy5jb21wb25lbnQ/LnNldENvbmZpZyh0aGlzLmdldENvbmZpZygpKVxuICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25maWcgKCk6IERvbnV0Q29uZmlnSW50ZXJmYWNlPERhdHVtPiB7XG4gICAgY29uc3QgeyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCBpZCwgdmFsdWUsIGFuZ2xlUmFuZ2UsIHBhZEFuZ2xlLCBzb3J0RnVuY3Rpb24sIGNvcm5lclJhZGl1cywgY29sb3IsIHJhZGl1cywgYXJjV2lkdGgsIGNlbnRyYWxMYWJlbCwgY2VudHJhbFN1YkxhYmVsLCBjZW50cmFsU3ViTGFiZWxXcmFwLCBzaG93RW1wdHlTZWdtZW50cywgZW1wdHlTZWdtZW50QW5nbGUsIHNob3dCYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kQW5nbGVSYW5nZSwgY2VudHJhbExhYmVsT2Zmc2V0WCwgY2VudHJhbExhYmVsT2Zmc2V0WSB9ID0gdGhpc1xuICAgIGNvbnN0IGNvbmZpZyA9IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgaWQsIHZhbHVlLCBhbmdsZVJhbmdlLCBwYWRBbmdsZSwgc29ydEZ1bmN0aW9uLCBjb3JuZXJSYWRpdXMsIGNvbG9yLCByYWRpdXMsIGFyY1dpZHRoLCBjZW50cmFsTGFiZWwsIGNlbnRyYWxTdWJMYWJlbCwgY2VudHJhbFN1YkxhYmVsV3JhcCwgc2hvd0VtcHR5U2VnbWVudHMsIGVtcHR5U2VnbWVudEFuZ2xlLCBzaG93QmFja2dyb3VuZCwgYmFja2dyb3VuZEFuZ2xlUmFuZ2UsIGNlbnRyYWxMYWJlbE9mZnNldFgsIGNlbnRyYWxMYWJlbE9mZnNldFkgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjb25maWcpIGFzIChrZXlvZiBEb251dENvbmZpZ0ludGVyZmFjZTxEYXR1bT4pW11cbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsgaWYgKGNvbmZpZ1trZXldID09PSB1bmRlZmluZWQpIGRlbGV0ZSBjb25maWdba2V5XSB9KVxuXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG59XG4iXX0=
|
|
@@ -21,8 +21,8 @@ export class VisGraphComponent {
|
|
|
21
21
|
(_c = this.componentContainer) === null || _c === void 0 ? void 0 : _c.render();
|
|
22
22
|
}
|
|
23
23
|
getConfig() {
|
|
24
|
-
const { duration, events, attributes, zoomScaleExtent, disableZoom, zoomEventFilter, disableDrag, disableBrush, zoomThrottledUpdateNodeThreshold, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, linkCurvature, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, nodeEnterCustomRenderFunction, nodeUpdateCustomRenderFunction, nodePartialUpdateCustomRenderFunction, nodeExitCustomRenderFunction, nodeOnZoomCustomRenderFunction, nodeSelectionHighlightMode, selectedNodeId, selectedNodeIds, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onZoomStart, onZoomEnd, onLayoutCalculated, onNodeSelectionBrush, onNodeSelectionDrag, onRenderComplete } = this;
|
|
25
|
-
const config = { duration, events, attributes, zoomScaleExtent, disableZoom, zoomEventFilter, disableDrag, disableBrush, zoomThrottledUpdateNodeThreshold, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, linkCurvature, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, nodeEnterCustomRenderFunction, nodeUpdateCustomRenderFunction, nodePartialUpdateCustomRenderFunction, nodeExitCustomRenderFunction, nodeOnZoomCustomRenderFunction, nodeSelectionHighlightMode, selectedNodeId, selectedNodeIds, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onZoomStart, onZoomEnd, onLayoutCalculated, onNodeSelectionBrush, onNodeSelectionDrag, onRenderComplete };
|
|
24
|
+
const { duration, events, attributes, zoomScaleExtent, disableZoom, zoomEventFilter, disableDrag, disableBrush, zoomThrottledUpdateNodeThreshold, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, layoutElkGetNodeShape, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, linkCurvature, linkHighlightOnHover, linkSourcePointOffset, linkTargetPointOffset, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, nodeEnterCustomRenderFunction, nodeUpdateCustomRenderFunction, nodePartialUpdateCustomRenderFunction, nodeExitCustomRenderFunction, nodeOnZoomCustomRenderFunction, nodeSelectionHighlightMode, selectedNodeId, selectedNodeIds, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onZoomStart, onZoomEnd, onLayoutCalculated, onNodeSelectionBrush, onNodeSelectionDrag, onRenderComplete, shouldDataUpdate } = this;
|
|
25
|
+
const config = { duration, events, attributes, zoomScaleExtent, disableZoom, zoomEventFilter, disableDrag, disableBrush, zoomThrottledUpdateNodeThreshold, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, layoutElkGetNodeShape, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, linkCurvature, linkHighlightOnHover, linkSourcePointOffset, linkTargetPointOffset, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, nodeEnterCustomRenderFunction, nodeUpdateCustomRenderFunction, nodePartialUpdateCustomRenderFunction, nodeExitCustomRenderFunction, nodeOnZoomCustomRenderFunction, nodeSelectionHighlightMode, selectedNodeId, selectedNodeIds, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onZoomStart, onZoomEnd, onLayoutCalculated, onNodeSelectionBrush, onNodeSelectionDrag, onRenderComplete, shouldDataUpdate };
|
|
26
26
|
const keys = Object.keys(config);
|
|
27
27
|
keys.forEach(key => { if (config[key] === undefined)
|
|
28
28
|
delete config[key]; });
|
|
@@ -30,7 +30,7 @@ export class VisGraphComponent {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
VisGraphComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisGraphComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
-
VisGraphComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisGraphComponent, selector: "vis-graph", inputs: { duration: "duration", events: "events", attributes: "attributes", zoomScaleExtent: "zoomScaleExtent", disableZoom: "disableZoom", zoomEventFilter: "zoomEventFilter", disableDrag: "disableDrag", disableBrush: "disableBrush", zoomThrottledUpdateNodeThreshold: "zoomThrottledUpdateNodeThreshold", layoutType: "layoutType", layoutAutofit: "layoutAutofit", layoutAutofitTolerance: "layoutAutofitTolerance", layoutNonConnectedAside: "layoutNonConnectedAside", layoutNodeGroup: "layoutNodeGroup", layoutGroupOrder: "layoutGroupOrder", layoutParallelNodesPerColumn: "layoutParallelNodesPerColumn", layoutParallelNodeSubGroup: "layoutParallelNodeSubGroup", layoutParallelSubGroupsPerRow: "layoutParallelSubGroupsPerRow", layoutParallelGroupSpacing: "layoutParallelGroupSpacing", layoutParallelSortConnectionsByGroup: "layoutParallelSortConnectionsByGroup", forceLayoutSettings: "forceLayoutSettings", dagreLayoutSettings: "dagreLayoutSettings", layoutElkSettings: "layoutElkSettings", layoutElkNodeGroups: "layoutElkNodeGroups", linkWidth: "linkWidth", linkStyle: "linkStyle", linkBandWidth: "linkBandWidth", linkArrow: "linkArrow", linkStroke: "linkStroke", linkDisabled: "linkDisabled", linkFlow: "linkFlow", linkFlowAnimDuration: "linkFlowAnimDuration", linkFlowParticleSize: "linkFlowParticleSize", linkLabel: "linkLabel", linkLabelShiftFromCenter: "linkLabelShiftFromCenter", linkNeighborSpacing: "linkNeighborSpacing", linkCurvature: "linkCurvature", selectedLinkId: "selectedLinkId", nodeSize: "nodeSize", nodeStrokeWidth: "nodeStrokeWidth", nodeShape: "nodeShape", nodeGaugeValue: "nodeGaugeValue", nodeGaugeFill: "nodeGaugeFill", nodeGaugeAnimDuration: "nodeGaugeAnimDuration", nodeIcon: "nodeIcon", nodeIconSize: "nodeIconSize", nodeLabel: "nodeLabel", nodeLabelTrim: "nodeLabelTrim", nodeLabelTrimMode: "nodeLabelTrimMode", nodeLabelTrimLength: "nodeLabelTrimLength", nodeSubLabel: "nodeSubLabel", nodeSubLabelTrim: "nodeSubLabelTrim", nodeSubLabelTrimMode: "nodeSubLabelTrimMode", nodeSubLabelTrimLength: "nodeSubLabelTrimLength", nodeSideLabels: "nodeSideLabels", nodeBottomIcon: "nodeBottomIcon", nodeDisabled: "nodeDisabled", nodeFill: "nodeFill", nodeStroke: "nodeStroke", nodeSort: "nodeSort", nodeEnterPosition: "nodeEnterPosition", nodeEnterScale: "nodeEnterScale", nodeExitPosition: "nodeExitPosition", nodeExitScale: "nodeExitScale", nodeEnterCustomRenderFunction: "nodeEnterCustomRenderFunction", nodeUpdateCustomRenderFunction: "nodeUpdateCustomRenderFunction", nodePartialUpdateCustomRenderFunction: "nodePartialUpdateCustomRenderFunction", nodeExitCustomRenderFunction: "nodeExitCustomRenderFunction", nodeOnZoomCustomRenderFunction: "nodeOnZoomCustomRenderFunction", nodeSelectionHighlightMode: "nodeSelectionHighlightMode", selectedNodeId: "selectedNodeId", selectedNodeIds: "selectedNodeIds", panels: "panels", onNodeDragStart: "onNodeDragStart", onNodeDrag: "onNodeDrag", onNodeDragEnd: "onNodeDragEnd", onZoom: "onZoom", onZoomStart: "onZoomStart", onZoomEnd: "onZoomEnd", onLayoutCalculated: "onLayoutCalculated", onNodeSelectionBrush: "onNodeSelectionBrush", onNodeSelectionDrag: "onNodeSelectionDrag", onRenderComplete: "onRenderComplete", data: "data" }, providers: [{ provide: VisCoreComponent, useExisting: VisGraphComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
|
|
33
|
+
VisGraphComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisGraphComponent, selector: "vis-graph", inputs: { duration: "duration", events: "events", attributes: "attributes", zoomScaleExtent: "zoomScaleExtent", disableZoom: "disableZoom", zoomEventFilter: "zoomEventFilter", disableDrag: "disableDrag", disableBrush: "disableBrush", zoomThrottledUpdateNodeThreshold: "zoomThrottledUpdateNodeThreshold", layoutType: "layoutType", layoutAutofit: "layoutAutofit", layoutAutofitTolerance: "layoutAutofitTolerance", layoutNonConnectedAside: "layoutNonConnectedAside", layoutNodeGroup: "layoutNodeGroup", layoutGroupOrder: "layoutGroupOrder", layoutParallelNodesPerColumn: "layoutParallelNodesPerColumn", layoutParallelNodeSubGroup: "layoutParallelNodeSubGroup", layoutParallelSubGroupsPerRow: "layoutParallelSubGroupsPerRow", layoutParallelGroupSpacing: "layoutParallelGroupSpacing", layoutParallelSortConnectionsByGroup: "layoutParallelSortConnectionsByGroup", forceLayoutSettings: "forceLayoutSettings", dagreLayoutSettings: "dagreLayoutSettings", layoutElkSettings: "layoutElkSettings", layoutElkNodeGroups: "layoutElkNodeGroups", layoutElkGetNodeShape: "layoutElkGetNodeShape", linkWidth: "linkWidth", linkStyle: "linkStyle", linkBandWidth: "linkBandWidth", linkArrow: "linkArrow", linkStroke: "linkStroke", linkDisabled: "linkDisabled", linkFlow: "linkFlow", linkFlowAnimDuration: "linkFlowAnimDuration", linkFlowParticleSize: "linkFlowParticleSize", linkLabel: "linkLabel", linkLabelShiftFromCenter: "linkLabelShiftFromCenter", linkNeighborSpacing: "linkNeighborSpacing", linkCurvature: "linkCurvature", linkHighlightOnHover: "linkHighlightOnHover", linkSourcePointOffset: "linkSourcePointOffset", linkTargetPointOffset: "linkTargetPointOffset", selectedLinkId: "selectedLinkId", nodeSize: "nodeSize", nodeStrokeWidth: "nodeStrokeWidth", nodeShape: "nodeShape", nodeGaugeValue: "nodeGaugeValue", nodeGaugeFill: "nodeGaugeFill", nodeGaugeAnimDuration: "nodeGaugeAnimDuration", nodeIcon: "nodeIcon", nodeIconSize: "nodeIconSize", nodeLabel: "nodeLabel", nodeLabelTrim: "nodeLabelTrim", nodeLabelTrimMode: "nodeLabelTrimMode", nodeLabelTrimLength: "nodeLabelTrimLength", nodeSubLabel: "nodeSubLabel", nodeSubLabelTrim: "nodeSubLabelTrim", nodeSubLabelTrimMode: "nodeSubLabelTrimMode", nodeSubLabelTrimLength: "nodeSubLabelTrimLength", nodeSideLabels: "nodeSideLabels", nodeBottomIcon: "nodeBottomIcon", nodeDisabled: "nodeDisabled", nodeFill: "nodeFill", nodeStroke: "nodeStroke", nodeSort: "nodeSort", nodeEnterPosition: "nodeEnterPosition", nodeEnterScale: "nodeEnterScale", nodeExitPosition: "nodeExitPosition", nodeExitScale: "nodeExitScale", nodeEnterCustomRenderFunction: "nodeEnterCustomRenderFunction", nodeUpdateCustomRenderFunction: "nodeUpdateCustomRenderFunction", nodePartialUpdateCustomRenderFunction: "nodePartialUpdateCustomRenderFunction", nodeExitCustomRenderFunction: "nodeExitCustomRenderFunction", nodeOnZoomCustomRenderFunction: "nodeOnZoomCustomRenderFunction", nodeSelectionHighlightMode: "nodeSelectionHighlightMode", selectedNodeId: "selectedNodeId", selectedNodeIds: "selectedNodeIds", panels: "panels", onNodeDragStart: "onNodeDragStart", onNodeDrag: "onNodeDrag", onNodeDragEnd: "onNodeDragEnd", onZoom: "onZoom", onZoomStart: "onZoomStart", onZoomEnd: "onZoomEnd", onLayoutCalculated: "onLayoutCalculated", onNodeSelectionBrush: "onNodeSelectionBrush", onNodeSelectionDrag: "onNodeSelectionDrag", onRenderComplete: "onRenderComplete", shouldDataUpdate: "shouldDataUpdate", data: "data" }, providers: [{ provide: VisCoreComponent, useExisting: VisGraphComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
|
|
34
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisGraphComponent, decorators: [{
|
|
35
35
|
type: Component,
|
|
36
36
|
args: [{
|
|
@@ -87,6 +87,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
87
87
|
type: Input
|
|
88
88
|
}], layoutElkNodeGroups: [{
|
|
89
89
|
type: Input
|
|
90
|
+
}], layoutElkGetNodeShape: [{
|
|
91
|
+
type: Input
|
|
90
92
|
}], linkWidth: [{
|
|
91
93
|
type: Input
|
|
92
94
|
}], linkStyle: [{
|
|
@@ -113,6 +115,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
113
115
|
type: Input
|
|
114
116
|
}], linkCurvature: [{
|
|
115
117
|
type: Input
|
|
118
|
+
}], linkHighlightOnHover: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], linkSourcePointOffset: [{
|
|
121
|
+
type: Input
|
|
122
|
+
}], linkTargetPointOffset: [{
|
|
123
|
+
type: Input
|
|
116
124
|
}], selectedLinkId: [{
|
|
117
125
|
type: Input
|
|
118
126
|
}], nodeSize: [{
|
|
@@ -205,7 +213,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
205
213
|
type: Input
|
|
206
214
|
}], onRenderComplete: [{
|
|
207
215
|
type: Input
|
|
216
|
+
}], shouldDataUpdate: [{
|
|
217
|
+
type: Input
|
|
208
218
|
}], data: [{
|
|
209
219
|
type: Input
|
|
210
220
|
}] } });
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZ3JhcGgvZ3JhcGguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxLQUFLLEdBeUJOLE1BQU0sWUFBWSxDQUFBO0FBS25CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRN0MsTUFBTSxPQUFPLGlCQUFpQjtJQTJVNUIsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRWxELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVB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Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLDZCQUE2QjtzQkFBckMsS0FBSztnQkFHRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBUUcscUNBQXFDO3NCQUE3QyxLQUFLO2dCQUdHLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFHRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBR0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgR3JhcGgsXG4gIEdyYXBoQ29uZmlnSW50ZXJmYWNlLFxuICBDb250YWluZXJDb3JlLFxuICBHcmFwaElucHV0Tm9kZSxcbiAgR3JhcGhJbnB1dExpbmssXG4gIFZpc0V2ZW50VHlwZSxcbiAgVmlzRXZlbnRDYWxsYmFjayxcbiAgR3JhcGhMYXlvdXRUeXBlLFxuICBTdHJpbmdBY2Nlc3NvcixcbiAgR3JhcGhGb3JjZUxheW91dFNldHRpbmdzLFxuICBHcmFwaERhZ3JlTGF5b3V0U2V0dGluZyxcbiAgR2VuZXJpY0FjY2Vzc29yLFxuICBHcmFwaEVsa0xheW91dFNldHRpbmdzLFxuICBOdW1lcmljQWNjZXNzb3IsXG4gIEdyYXBoTGlua1N0eWxlLFxuICBHcmFwaExpbmtBcnJvd1N0eWxlLFxuICBDb2xvckFjY2Vzc29yLFxuICBCb29sZWFuQWNjZXNzb3IsXG4gIEdyYXBoQ2lyY2xlTGFiZWwsXG4gIEdyYXBoTm9kZVNoYXBlLFxuICBUcmltTW9kZSxcbiAgR3JhcGhOb2RlLFxuICBHcmFwaE5vZGVTZWxlY3Rpb25IaWdobGlnaHRNb2RlLFxuICBHcmFwaFBhbmVsQ29uZmlnLFxuICBHcmFwaExpbmssXG59IGZyb20gJ0B1bm92aXMvdHMnXG5pbXBvcnQgeyBTZWxlY3Rpb24gfSBmcm9tICdkMy1zZWxlY3Rpb24nXG5pbXBvcnQgeyBEM0RyYWdFdmVudCB9IGZyb20gJ2QzLWRyYWcnXG5pbXBvcnQgeyBEM1pvb21FdmVudCwgWm9vbVRyYW5zZm9ybSB9IGZyb20gJ2QzLXpvb20nXG5pbXBvcnQgeyBEM0JydXNoRXZlbnQgfSBmcm9tICdkMy1icnVzaCdcbmltcG9ydCB7IFZpc0NvcmVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2aXMtZ3JhcGgnLFxuICB0ZW1wbGF0ZTogJycsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFZpc0NvcmVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBWaXNHcmFwaENvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzR3JhcGhDb21wb25lbnQ8TiBleHRlbmRzIEdyYXBoSW5wdXROb2RlLCBMIGV4dGVuZHMgR3JhcGhJbnB1dExpbms+IGltcGxlbWVudHMgR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIEFmdGVyVmlld0luaXQge1xuICAvKiogQW5pbWF0aW9uIGR1cmF0aW9uIG9mIHRoZSBkYXRhIHVwZGF0ZSB0cmFuc2l0aW9ucyBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQ6IGA2MDBgICovXG4gIEBJbnB1dCgpIGR1cmF0aW9uPzogbnVtYmVyXG5cbiAgLyoqIEV2ZW50cyBjb25maWd1cmF0aW9uLiBBbiBvYmplY3QgY29udGFpbmluZyBwcm9wZXJ0aWVzIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtzZWxlY3RvclN0cmluZ106IHtcbiAgICogICAgIFxcW2V2ZW50VHlwZV06IGNhbGxiYWNrRnVuY3Rpb25cbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IHtcbiAgICogICAgY2xpY2s6IChkKSA9PiBjb25zb2xlLmxvZyhcIkNsaWNrZWQgQXJlYVwiLCBkKVxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBldmVudHM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbZXZlbnRUeXBlIGluIFZpc0V2ZW50VHlwZV0/OiBWaXNFdmVudENhbGxiYWNrXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBZb3UgY2FuIHNldCBldmVyeSBTVkcgYW5kIEhUTUwgdmlzdWFsaXphdGlvbiBvYmplY3QgdG8gaGF2ZSBhIGN1c3RvbSBET00gYXR0cmlidXRlcywgd2hpY2ggaXMgdXNlZnVsXG4gICAqIHdoZW4geW91IHdhbnQgdG8gZG8gdW5pdCBvciBlbmQtdG8tZW5kIHRlc3RpbmcuIEF0dHJpYnV0ZXMgY29uZmlndXJhdGlvbiBvYmplY3QgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtzZWxlY3RvclN0cmluZ106IHtcbiAgICogICAgIFxcW2F0dHJpYnV0ZU5hbWVdOiBhdHRyaWJ1dGUgY29uc3RhbnQgdmFsdWUgb3IgYWNjZXNzb3IgZnVuY3Rpb25cbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IHtcbiAgICogICAgXCJ0ZXN0LXZhbHVlXCI6IGQgPT4gZC52YWx1ZVxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBhdHRyaWJ1dGVzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2F0dHI6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCAoKGRhdHVtOiBhbnkpID0+IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pO1xuICAgIH07XG4gIH1cblxuICAvKiogWm9vbSBsZXZlbCBjb25zdHJhaW50cy4gRGVmYXVsdDogWzAuMzUsIDEuMjVdICovXG4gIEBJbnB1dCgpIHpvb21TY2FsZUV4dGVudD86IFtudW1iZXIsIG51bWJlcl1cblxuICAvKiogRGlzYWJsZSB6b29taW5nLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGRpc2FibGVab29tPzogYm9vbGVhblxuXG4gIC8qKiBDdXN0b20gWm9vbSBldmVudCBmaWx0ZXIgdG8gYmV0dGVyIGNvbnRyb2wgd2hpY2ggYWN0aW9ucyBzaG91bGQgdHJpZ2dlciB6b29taW5nLlxuICAgKiBMZWFybiBtb3JlOiBodHRwczovL2QzanMub3JnL2QzLXpvb20jem9vbV9maWx0ZXIuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHpvb21FdmVudEZpbHRlcj86IChldmVudDogUG9pbnRlckV2ZW50KSA9PiBib29sZWFuXG5cbiAgLyoqIERpc2FibGUgbm9kZSBkcmFnZ2luZy4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBkaXNhYmxlRHJhZz86IGJvb2xlYW5cblxuICAvKiogRGlzYWJsZSBicnVzaCBmb3IgbXVsdGlwbGUgbm9kZSBzZWxlY3Rpb24uIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgZGlzYWJsZUJydXNoPzogYm9vbGVhblxuXG4gIC8qKiBJbnRlcnZhbCB0byByZS1yZW5kZXIgdGhlIGdyYXBoIHdoZW4gem9vbWluZy4gRGVmYXVsdDogYDEwMGAgKi9cbiAgQElucHV0KCkgem9vbVRocm90dGxlZFVwZGF0ZU5vZGVUaHJlc2hvbGQ/OiBudW1iZXJcblxuICAvKiogVHlwZSBvZiB0aGUgZ3JhcGggbGF5b3V0LiBEZWZhdWx0OiBgR3JhcGhMYXlvdXRUeXBlLkZvcmNlYCAqL1xuICBASW5wdXQoKSBsYXlvdXRUeXBlPzogR3JhcGhMYXlvdXRUeXBlIHwgc3RyaW5nXG5cbiAgLyoqIEZpdCB0aGUgZ3JhcGggdG8gY29udGFpbmVyIG9uIGRhdGEgb3IgY29uZmlnIHVwZGF0ZXMsIG9yIG9uIGNvbnRhaW5lciByZXNpemUuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBsYXlvdXRBdXRvZml0PzogYm9vbGVhblxuXG4gIC8qKiBUb2xlcmFuY2UgY29uc3RhbnQgZGVmaW5pbmcgd2hldGhlciB0aGUgZ3JhcGggc2hvdWxkIGJlIGZpdHRlZCB0byBjb250YWluZXJcbiAgICogKG9uIGRhdGEgb3IgY29uZmlnIHVwZGF0ZSwgb3IgY29udGFpbmVyIHJlc2l6ZSkgYWZ0ZXIgYSB6b29tIC8gcGFuIGludGVyYWN0aW9uIG9yIG5vdC5cbiAgICogYDBgIOKAlCBTdG9wIGZpdHRpbmcgYWZ0ZXIgYW55IHBhbiBvciB6b29tXG4gICAqIGBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlgIOKAlCBBbHdheXMgZml0XG4gICAqIERlZmF1bHQ6IGA4LjBgICovXG4gIEBJbnB1dCgpIGxheW91dEF1dG9maXRUb2xlcmFuY2U/OiBudW1iZXJcblxuICAvKiogUGxhY2Ugbm9uLWNvbm5lY3RlZCBub2RlcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBncmFwaC4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBsYXlvdXROb25Db25uZWN0ZWRBc2lkZT86IGJvb2xlYW5cblxuICAvKiogTm9kZSBncm91cCBhY2Nlc3NvciBmdW5jdGlvbi5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAsIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5Db25jZW50cmljYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLmdyb3VwYCAqL1xuICBASW5wdXQoKSBsYXlvdXROb2RlR3JvdXA/OiBTdHJpbmdBY2Nlc3NvcjxOPlxuXG4gIC8qKiBPcmRlciBvZiB0aGUgbGF5b3V0IGdyb3Vwcy5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAsIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5Db25jZW50cmljYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgW11gICovXG4gIEBJbnB1dCgpIGxheW91dEdyb3VwT3JkZXI/OiBzdHJpbmdbXVxuXG4gIC8qKiBTZXRzIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gYSBzdWItZ3JvdXAgYWZ0ZXIgd2hpY2ggdGhleSdsbCBjb250aW51ZSBvbiB0aGUgbmV4dCBjb2x1bW4gKG9yIHJvdyBpZiBgbGF5b3V0VHlwZWAgaXNcbiAgICogYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgKS5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgNmAgKi9cbiAgQElucHV0KCkgbGF5b3V0UGFyYWxsZWxOb2Rlc1BlckNvbHVtbj86IG51bWJlclxuXG4gIC8qKiBOb2RlIHN1Yi1ncm91cCBhY2Nlc3NvciBmdW5jdGlvbi5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLnN1Ymdyb3VwYCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbE5vZGVTdWJHcm91cD86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE51bWJlciBvZiBzdWItZ3JvdXBzIHBlciByb3cgKG9yIGNvbHVtbiBpZiBgbGF5b3V0VHlwZWAgaXMgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgKSBpbiBhIGdyb3VwLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGAxYCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbFN1Ykdyb3Vwc1BlclJvdz86IG51bWJlclxuXG4gIC8qKiBTcGFjaW5nIGJldHdlZW4gZ3JvdXBzLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxheW91dFBhcmFsbGVsR3JvdXBTcGFjaW5nPzogbnVtYmVyXG5cbiAgLyoqIFNldCBhIGdyb3VwIGJ5IG5hbWUgdG8gaGF2ZSBwcmlvcml0eSBpbiBzb3J0aW5nIHRoZSBncmFwaCBsaW5rcy5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbFNvcnRDb25uZWN0aW9uc0J5R3JvdXA/OiBzdHJpbmdcblxuICAvKiogRm9yY2UgTGF5b3V0IHNldHRpbmdzLCBzZWUgdGhlIGBkMy1mb3JjZWAgcGFja2FnZSBmb3IgbW9yZSBkZXRhaWxzICovXG4gIEBJbnB1dCgpIGZvcmNlTGF5b3V0U2V0dGluZ3M/OiBHcmFwaEZvcmNlTGF5b3V0U2V0dGluZ3M8TiwgTD5cblxuICAvKiogRGFyZ2UgTGF5b3V0IHNldHRpbmdzLCBzZWUgdGhlIGBkYWdyZWpzYCBwYWNrYWdlXG4gICAqIGZvciBtb3JlIGRldGFpbHM6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYWdyZWpzL2RhZ3JlL3dpa2kjY29uZmlndXJpbmctdGhlLWxheW91dCAqL1xuICBASW5wdXQoKSBkYWdyZUxheW91dFNldHRpbmdzPzogR3JhcGhEYWdyZUxheW91dFNldHRpbmdcblxuICAvKiogRUxLIGxheW91dCBvcHRpb25zLCBzZWUgdGhlIGBlbGtqc2AgcGFja2FnZSBmb3IgbW9yZSBkZXRhaWxzOiBodHRwczovL2dpdGh1Yi5jb20va2llbGVyL2Vsa2pzLlxuICAgKiBJZiB5b3Ugd2FudCB0byBzcGVjaWZ5IGN1c3RvbSBsYXlvdXQgb3B0aW9uIGZvciBlYWNoIG5vZGUgZ3JvdXAsIHlvdSBjYW4gcHJvdmlkZSBhbiBhY2Nlc3NvciBmdW5jdGlvbiB0aGF0XG4gICAqIHJlY2VpdmVzIGdyb3VwIG5hbWUgKCdyb290JyBmb3IgdGhlIHRvcC1sZXZlbCBjb25maWd1cmF0aW9uKSBhcyB0aGUgZmlyc3QgYXJndW1lbnQgYW5kIHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmdcbiAgICogbGF5b3V0IG9wdGlvbnMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxheW91dEVsa1NldHRpbmdzPzogR2VuZXJpY0FjY2Vzc29yPEdyYXBoRWxrTGF5b3V0U2V0dGluZ3MsIHN0cmluZz4gfCB1bmRlZmluZWRcblxuICAvKiogQXJyYXkgb2YgYWNjZXNzb3IgZnVuY3Rpb25zIHRvIGRlZmluZSBuZXN0ZWQgbm9kZSBncm91cHMgZm9yIHRoZSBFTEsgTGF5ZXJlZCBsYXlvdXQuXG4gICAqIEUuZy46IGBbbiA9PiBuLmdyb3VwLCBuID0+IG4uc3ViR3JvdXBdYC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGF5b3V0RWxrTm9kZUdyb3Vwcz86IFN0cmluZ0FjY2Vzc29yPE4+W11cblxuICAvKiogTGluayB3aWR0aCBhY2Nlc3NvciBmdW5jdGlvbiBvdCBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYDFgICovXG4gIEBJbnB1dCgpIGxpbmtXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIHN0eWxlIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgR3JhcGhMaW5rU3R5bGUuU29saWRgICovXG4gIEBJbnB1dCgpIGxpbmtTdHlsZT86IEdlbmVyaWNBY2Nlc3NvcjxHcmFwaExpbmtTdHlsZSwgTD5cblxuICAvKiogTGluayBiYW5kIHdpZHRoIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgMGAgKi9cbiAgQElucHV0KCkgbGlua0JhbmRXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIGFycm93IGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsaW5rQXJyb3c/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhMaW5rQXJyb3dTdHlsZSB8IHN0cmluZyB8IGJvb2xlYW4sIEw+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIExpbmsgc3Ryb2tlIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsaW5rU3Ryb2tlPzogQ29sb3JBY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIGRpc2FibGVkIHN0YXRlIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGxpbmtEaXNhYmxlZD86IEJvb2xlYW5BY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIGZsb3cgYW5pbWF0aW9uIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGxpbmtGbG93PzogQm9vbGVhbkFjY2Vzc29yPEw+XG5cbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgZmxvdyAodHJhZmZpYykgY2lyY2xlcy4gRGVmYXVsdDogYDIwMDAwYCAqL1xuICBASW5wdXQoKSBsaW5rRmxvd0FuaW1EdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBTaXplIG9mIHRoZSBtb3ZpbmcgcGFydGljbGVzIHRoYXQgcmVwcmVzZW50IHRyYWZmaWMgZmxvdy4gRGVmYXVsdDogYDJgICovXG4gIEBJbnB1dCgpIGxpbmtGbG93UGFydGljbGVTaXplPzogbnVtYmVyXG5cbiAgLyoqIExpbmsgbGFiZWwgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxpbmtMYWJlbD86IEdlbmVyaWNBY2Nlc3NvcjxHcmFwaENpcmNsZUxhYmVsIHwgR3JhcGhDaXJjbGVMYWJlbFtdLCBMPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTaGlmdCBsYWJlbCBhbG9uZyB0aGUgbGluayBjZW50ZXIgYSBsaXR0bGUgYml0IHRvIGF2b2lkIG92ZXJsYXAgd2l0aCB0aGUgbGluayBhcnJvdy4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGxpbmtMYWJlbFNoaWZ0RnJvbUNlbnRlcj86IEJvb2xlYW5BY2Nlc3NvcjxMPlxuXG4gIC8qKiBTcGFjaW5nIGJldHdlZW4gbmVpZ2hib3JpbmcgbGlua3MuIERlZmF1bHQ6IGA4YCAqL1xuICBASW5wdXQoKSBsaW5rTmVpZ2hib3JTcGFjaW5nPzogbnVtYmVyXG5cbiAgLyoqIEN1cnZhdHVyZSBvZiB0aGUgbGluay4gUmVjb21tZW5kZWQgdmFsdWUgcmFuZ2U6IFswOjEuNV0uXG4gICAqIGAwYCAtIHN0cmFpZ2h0IGxpbmUsXG4gICAqIGAxYCAtIG5pY2UgY3VydmF0dXJlLFxuICAgKiBgMS41YCAtIHZlcnkgY3VydmUuXG4gICAqIERlZmF1bHQ6IGAwYCAqL1xuICBASW5wdXQoKSBsaW5rQ3VydmF0dXJlPzogTnVtZXJpY0FjY2Vzc29yPEw+XG5cbiAgLyoqIFNldCBzZWxlY3RlZCBsaW5rIGJ5IGl0cyB1bmlxdWUgaWQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkTGlua0lkPzogbnVtYmVyIHwgc3RyaW5nXG5cbiAgLyoqIE5vZGUgc2l6ZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYDMwYCAqL1xuICBASW5wdXQoKSBub2RlU2l6ZT86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIHN0cm9rZSB3aWR0aCBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYDNgICovXG4gIEBJbnB1dCgpIG5vZGVTdHJva2VXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIHNoYXBlIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgR3JhcGhOb2RlU2hhcGUuQ2lyY2xlYCAqL1xuICBASW5wdXQoKSBub2RlU2hhcGU/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhOb2RlU2hhcGUgfCBzdHJpbmcsIE4+XG5cbiAgLyoqIE5vZGUgZ2F1Z2Ugb3V0bGluZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZSBpbiB0aGUgcmFuZ2UgWzAsMTAwXS4gRGVmYXVsdDogYDBgICovXG4gIEBJbnB1dCgpIG5vZGVHYXVnZVZhbHVlPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgZ2F1Z2Ugb3V0bGluZSBmaWxsIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlR2F1Z2VGaWxsPzogQ29sb3JBY2Nlc3NvcjxOPlxuXG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIG5vZGUgZ2F1Z2Ugb3V0bGluZS4gRGVmYXVsdDogYDE1MDBgICovXG4gIEBJbnB1dCgpIG5vZGVHYXVnZUFuaW1EdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBOb2RlIGNlbnRyYWwgaWNvbiBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYG5vZGUgPT4gbm9kZS5pY29uYCAqL1xuICBASW5wdXQoKSBub2RlSWNvbj86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgY2VudHJhbCBpY29uIHNpemUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVJY29uU2l6ZT86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIGxhYmVsIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLmxhYmVsYCAqL1xuICBASW5wdXQoKSBub2RlTGFiZWw/OiBTdHJpbmdBY2Nlc3NvcjxOPlxuXG4gIC8qKiBEZWZpbmVzIHdoZXRoZXIgdG8gdHJpbSB0aGUgbm9kZSBsYWJlbHMgb3Igbm90LiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgbm9kZUxhYmVsVHJpbT86IEJvb2xlYW5BY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIGxhYmVsIHRyaW1taW5nIG1vZGUuIERlZmF1bHQ6IGBUcmltTW9kZS5NaWRkbGVgICovXG4gIEBJbnB1dCgpIG5vZGVMYWJlbFRyaW1Nb2RlPzogR2VuZXJpY0FjY2Vzc29yPFRyaW1Nb2RlIHwgc3RyaW5nLCBOPlxuXG4gIC8qKiBOb2RlIGxhYmVsIG1heGltdW0gYWxsb3dlZCB0ZXh0IGxlbmd0aCBhYm92ZSB3aGljaCB0aGUgbGFiZWwgd2lsbCBiZSB0cmltbWVkLiBEZWZhdWx0OiBgMTVgICovXG4gIEBJbnB1dCgpIG5vZGVMYWJlbFRyaW1MZW5ndGg/OiBOdW1lcmljQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBzdWItbGFiZWwgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWU6IERlZmF1bHQ6IGAnJ2AgKi9cbiAgQElucHV0KCkgbm9kZVN1YkxhYmVsPzogU3RyaW5nQWNjZXNzb3I8Tj5cblxuICAvKiogRGVmaW5lcyB3aGV0aGVyIHRvIHRyaW0gdGhlIG5vZGUgc3ViLWxhYmVscyBvciBub3QuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBub2RlU3ViTGFiZWxUcmltPzogQm9vbGVhbkFjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgc3ViLWxhYmVsIHRyaW1taW5nIG1vZGUuIERlZmF1bHQ6IGBUcmltTW9kZS5NaWRkbGVgICovXG4gIEBJbnB1dCgpIG5vZGVTdWJMYWJlbFRyaW1Nb2RlPzogR2VuZXJpY0FjY2Vzc29yPFRyaW1Nb2RlIHwgc3RyaW5nLCBOPlxuXG4gIC8qKiBOb2RlIHN1Yi1sYWJlbCBtYXhpbXVtIGFsbG93ZWQgdGV4dCBsZW5ndGggYWJvdmUgd2hpY2ggdGhlIGxhYmVsIHdpbGwgYmUgdHJpbW1lZC4gRGVmYXVsdDogYDE1YCAqL1xuICBASW5wdXQoKSBub2RlU3ViTGFiZWxUcmltTGVuZ3RoPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgY2lyY3VsYXIgc2lkZSBsYWJlbHMgYWNjZXNzb3IgZnVuY3Rpb24uIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGFuIGFycmF5IG9mIEdyYXBoQ2lyY2xlTGFiZWwgb2JqZWN0cy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZVNpZGVMYWJlbHM/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhDaXJjbGVMYWJlbFtdLCBOPlxuXG4gIC8qKiBOb2RlIGJvdHRvbSBpY29uIGFjY2Vzc29yIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlQm90dG9tSWNvbj86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgZGlzYWJsZWQgc3RhdGUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgbm9kZURpc2FibGVkPzogQm9vbGVhbkFjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgZmlsbCBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYG5vZGUgPT4gbm9kZS5maWxsYCAqL1xuICBASW5wdXQoKSBub2RlRmlsbD86IENvbG9yQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBzdHJva2UgY29sb3IgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBub2RlID0+IG5vZGUuc3Ryb2tlYCAqL1xuICBASW5wdXQoKSBub2RlU3Ryb2tlPzogQ29sb3JBY2Nlc3NvcjxOPlxuXG4gIC8qKiBTb3J0aW5nIGZ1bmN0aW9uIHRvIGRldGVybWluZSBub2RlIHBsYWNlbWVudC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZVNvcnQ/OiAoKGE6IE4sIGI6IE4pID0+IG51bWJlcilcblxuICAvKiogU3BlY2lmeSB0aGUgaW5pdGlhbCBwb3NpdGlvbiBmb3IgZW50ZXJpbmcgbm9kZXMgYXMgW3gsIHldLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlRW50ZXJQb3NpdGlvbj86IEdlbmVyaWNBY2Nlc3NvcjxbbnVtYmVyLCBudW1iZXJdLCBOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTcGVjaWZ5IHRoZSBpbml0aWFsIHNjYWxlIGZvciBlbnRlcmluZyBub2RlcyBpbiB0aGUgcmFuZ2UgWzAsMV0uIERlZmF1bHQ6IGAwLjc1YCAqL1xuICBASW5wdXQoKSBub2RlRW50ZXJTY2FsZT86IE51bWVyaWNBY2Nlc3NvcjxOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTcGVjaWZ5IHRoZSBkZXN0aW5hdGlvbiBwb3NpdGlvbiBmb3IgZXhpdGluZyBub2RlcyBhcyBbeCwgeV0uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVFeGl0UG9zaXRpb24/OiBHZW5lcmljQWNjZXNzb3I8W251bWJlciwgbnVtYmVyXSwgTj4gfCB1bmRlZmluZWRcblxuICAvKiogU3BlY2lmeSB0aGUgZGVzdGluYXRpb24gc2NhbGUgZm9yIGV4aXRpbmcgbm9kZXMgaW4gdGhlIHJhbmdlIFswLDFdLiBEZWZhdWx0OiBgMC43NWAgKi9cbiAgQElucHV0KCkgbm9kZUV4aXRTY2FsZT86IE51bWVyaWNBY2Nlc3NvcjxOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBDdXN0b20gXCJlbnRlclwiIGZ1bmN0aW9uIGZvciBub2RlIHJlbmRlcmluZy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZUVudGVyQ3VzdG9tUmVuZGVyRnVuY3Rpb24/OiAoZGF0dW06IEdyYXBoTm9kZTxOLCBMPiwgbm9kZUdyb3VwRWxlbWVudFNlbGVjdGlvbjogU2VsZWN0aW9uPFNWR0dFbGVtZW50LCBHcmFwaE5vZGU8TiwgTD4sIG51bGwsIHVua25vd24+LCBjb25maWc6IEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+LCBkdXJhdGlvbjogbnVtYmVyLCB6b29tTGV2ZWw6IG51bWJlcikgPT4gdm9pZFxuXG4gIC8qKiBDdXN0b20gXCJ1cGRhdGVcIiBmdW5jdGlvbiBmb3Igbm9kZSByZW5kZXJpbmcuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbj86IChkYXR1bTogR3JhcGhOb2RlPE4sIEw+LCBub2RlR3JvdXBFbGVtZW50U2VsZWN0aW9uOiBTZWxlY3Rpb248U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgbnVsbCwgdW5rbm93bj4sIGNvbmZpZzogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIGR1cmF0aW9uOiBudW1iZXIsIHpvb21MZXZlbDogbnVtYmVyKSA9PiB2b2lkXG5cbiAgLyoqIEN1c3RvbSBwYXJ0aWFsIFwidXBkYXRlXCIgZnVuY3Rpb24gZm9yIG5vZGUgcmVuZGVyaW5nIHdoaWNoIHdpbGwgYmUgdHJpZ2dlcmVkIGFmdGVyIHRoZSBmb2xsb3dpbmcgZXZlbnRzOlxuICAgKiAtIEZ1bGwgbm9kZSB1cGRhdGUgKGBub2RlVXBkYXRlQ3VzdG9tUmVuZGVyRnVuY3Rpb25gKTtcbiAgICogLSBCYWNrZ3JvdW5kIGNsaWNrO1xuICAgKiAtIE5vZGUgYW5kIExpbmsgbW91c2VvdmVyIGFuZCBtb3VzZW91dDtcbiAgICogLSBOb2RlIGJydXNoaW5nLFxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlUGFydGlhbFVwZGF0ZUN1c3RvbVJlbmRlckZ1bmN0aW9uPzogKGRhdHVtOiBHcmFwaE5vZGU8TiwgTD4sIG5vZGVHcm91cEVsZW1lbnRTZWxlY3Rpb246IFNlbGVjdGlvbjxTVkdHRWxlbWVudCwgR3JhcGhOb2RlPE4sIEw+LCBudWxsLCB1bmtub3duPiwgY29uZmlnOiBHcmFwaENvbmZpZ0ludGVyZmFjZTxOLCBMPiwgZHVyYXRpb246IG51bWJlciwgem9vbUxldmVsOiBudW1iZXIpID0+IHZvaWRcblxuICAvKiogQ3VzdG9tIFwiZXhpdFwiIGZ1bmN0aW9uIGZvciBub2RlIHJlbmRlcmluZy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZUV4aXRDdXN0b21SZW5kZXJGdW5jdGlvbj86IChkYXR1bTogR3JhcGhOb2RlPE4sIEw+LCBub2RlR3JvdXBFbGVtZW50U2VsZWN0aW9uOiBTZWxlY3Rpb248U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgbnVsbCwgdW5rbm93bj4sIGNvbmZpZzogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIGR1cmF0aW9uOiBudW1iZXIsIHpvb21MZXZlbDogbnVtYmVyKSA9PiB2b2lkXG5cbiAgLyoqIEN1c3RvbSByZW5kZXIgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCB3aGlsZSB6b29taW5nIC8gcGFubmluZyB0aGUgZ3JhcGguIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVPblpvb21DdXN0b21SZW5kZXJGdW5jdGlvbj86IChkYXR1bTogR3JhcGhOb2RlPE4sIEw+LCBub2RlR3JvdXBFbGVtZW50U2VsZWN0aW9uOiBTZWxlY3Rpb248U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgbnVsbCwgdW5rbm93bj4sIGNvbmZpZzogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIHpvb21MZXZlbDogbnVtYmVyKSA9PiB2b2lkXG5cbiAgLyoqIERlZmluZSB0aGUgbW9kZSBmb3IgaGlnaGxpZ2h0aW5nIHNlbGVjdGVkIG5vZGVzIGluIHRoZSBncmFwaC4gRGVmYXVsdDogYEdyYXBoTm9kZVNlbGVjdGlvbkhpZ2hsaWdodE1vZGUuR3JleW91dE5vbkNvbm5lY3RlZGAgKi9cbiAgQElucHV0KCkgbm9kZVNlbGVjdGlvbkhpZ2hsaWdodE1vZGU/OiBHcmFwaE5vZGVTZWxlY3Rpb25IaWdobGlnaHRNb2RlXG5cbiAgLyoqIFNldCBzZWxlY3RlZCBub2RlIGJ5IHVuaXF1ZSBpZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWROb2RlSWQ/OiBudW1iZXIgfCBzdHJpbmdcblxuICAvKiogU2V0IHNlbGVjdGVkIG5vZGVzIGJ5IHVuaXF1ZSBpZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWROb2RlSWRzPzogbnVtYmVyW10gfCBzdHJpbmdbXVxuXG4gIC8qKiBQYW5lbHMgY29uZmlndXJhdGlvbi4gQW4gYXJyYXkgb2YgYEdyYXBoUGFuZWxDb25maWdgIG9iamVjdHMuIERlZmF1bHQ6IGBbXWAgKi9cbiAgQElucHV0KCkgcGFuZWxzPzogR3JhcGhQYW5lbENvbmZpZ1tdIHwgdW5kZWZpbmVkXG5cbiAgLyoqIEdyYXBoIG5vZGUgZHJhZyBzdGFydCBjYWxsYmFjayBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25Ob2RlRHJhZ1N0YXJ0PzogKG46IEdyYXBoTm9kZTxOLCBMPiwgZXZlbnQ6IEQzRHJhZ0V2ZW50PFNWR0dFbGVtZW50LCBHcmFwaE5vZGU8TiwgTD4sIHVua25vd24+KSA9PiB2b2lkIHwgdW5kZWZpbmVkXG5cbiAgLyoqIEdyYXBoIG5vZGUgZHJhZyBjYWxsYmFjayBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25Ob2RlRHJhZz86IChuOiBHcmFwaE5vZGU8TiwgTD4sIGV2ZW50OiBEM0RyYWdFdmVudDxTVkdHRWxlbWVudCwgR3JhcGhOb2RlPE4sIEw+LCB1bmtub3duPikgPT4gdm9pZCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBHcmFwaCBub2RlIGRyYWcgZW5kIGNhbGxiYWNrIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbk5vZGVEcmFnRW5kPzogKG46IEdyYXBoTm9kZTxOLCBMPiwgZXZlbnQ6IEQzRHJhZ0V2ZW50PFNWR0dFbGVtZW50LCBHcmFwaE5vZGU8TiwgTD4sIHVua25vd24+KSA9PiB2b2lkIHwgdW5kZWZpbmVkXG5cbiAgLyoqIFpvb20gZXZlbnQgY2FsbGJhY2suIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG9uWm9vbT86ICh6b29tU2NhbGU6IG51bWJlciwgem9vbVNjYWxlRXh0ZW50OiBbbnVtYmVyLCBudW1iZXJdLCBldmVudDogRDNab29tRXZlbnQ8U1ZHR0VsZW1lbnQsIHVua25vd24+IHwgdW5kZWZpbmVkLCB0cmFuc2Zvcm06IFpvb21UcmFuc2Zvcm0pID0+IHZvaWRcblxuICAvKiogWm9vbSBzdGFydCBldmVudCBjYWxsYmFjay4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25ab29tU3RhcnQ/OiAoem9vbVNjYWxlOiBudW1iZXIsIHpvb21TY2FsZUV4dGVudDogW251bWJlciwgbnVtYmVyXSwgZXZlbnQ6IEQzWm9vbUV2ZW50PFNWR0dFbGVtZW50LCB1bmtub3duPiB8IHVuZGVmaW5lZCwgdHJhbnNmb3JtOiBab29tVHJhbnNmb3JtKSA9PiB2b2lkXG5cbiAgLyoqIFpvb20gZW5kIGV2ZW50IGNhbGxiYWNrLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvblpvb21FbmQ/OiAoem9vbVNjYWxlOiBudW1iZXIsIHpvb21TY2FsZUV4dGVudDogW251bWJlciwgbnVtYmVyXSwgZXZlbnQ6IEQzWm9vbUV2ZW50PFNWR0dFbGVtZW50LCB1bmtub3duPiB8IHVuZGVmaW5lZCwgdHJhbnNmb3JtOiBab29tVHJhbnNmb3JtKSA9PiB2b2lkXG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBncmFwaCBsYXlvdXQgaXMgY2FsY3VsYXRlZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25MYXlvdXRDYWxjdWxhdGVkPzogKG5vZGVzOiBHcmFwaE5vZGU8TiwgTD5bXSwgbGlua3M6IEdyYXBoTGluazxOLCBMPltdKSA9PiB2b2lkXG5cbiAgLyoqIEdyYXBoIG5vZGUgc2VsZWN0aW9uIGJydXNoIGNhbGxiYWNrIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbk5vZGVTZWxlY3Rpb25CcnVzaD86IChzZWxlY3RlZE5vZGVzOiBHcmFwaE5vZGU8TiwgTD5bXSwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxTVkdHRWxlbWVudD4gfCB1bmRlZmluZWQpID0+IHZvaWRcblxuICAvKiogR3JhcGggbXVsdGlwbGUgbm9kZSBkcmFnIGNhbGxiYWNrIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbk5vZGVTZWxlY3Rpb25EcmFnPzogKHNlbGVjdGVkTm9kZXM6IEdyYXBoTm9kZTxOLCBMPltdLCBldmVudDogRDNEcmFnRXZlbnQ8U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgdW5rbm93bj4pID0+IHZvaWRcblxuICAvKiogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGdyYXBoIHJlbmRlcmluZyBpcyBjb21wbGV0ZS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25SZW5kZXJDb21wbGV0ZT86IChnOiBTZWxlY3Rpb248U1ZHR0VsZW1lbnQsIHVua25vd24sIG51bGwsIHVuZGVmaW5lZD4sIG5vZGVzOiBHcmFwaE5vZGU8TiwgTD5bXSwgbGlua3M6IEdyYXBoTGluazxOLCBMPltdLCBjb25maWc6IEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+LCBkdXJhdGlvbjogbnVtYmVyLCB6b29tTGV2ZWw6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpID0+IHZvaWRcbiAgQElucHV0KCkgZGF0YTogeyBub2RlczogTltdOyBsaW5rcz86IExbXSB9XG5cbiAgY29tcG9uZW50OiBHcmFwaDxOLCBMPiB8IHVuZGVmaW5lZFxuICBwdWJsaWMgY29tcG9uZW50Q29udGFpbmVyOiBDb250YWluZXJDb3JlIHwgdW5kZWZpbmVkXG5cbiAgbmdBZnRlclZpZXdJbml0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudCA9IG5ldyBHcmFwaDxOLCBMPih0aGlzLmdldENvbmZpZygpKVxuXG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5jb21wb25lbnQuc2V0RGF0YSh0aGlzLmRhdGEpXG4gICAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmRhdGEpIHsgdGhpcy5jb21wb25lbnQ/LnNldERhdGEodGhpcy5kYXRhKSB9XG4gICAgdGhpcy5jb21wb25lbnQ/LnNldENvbmZpZyh0aGlzLmdldENvbmZpZygpKVxuICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25maWcgKCk6IEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+IHtcbiAgICBjb25zdCB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIHpvb21TY2FsZUV4dGVudCwgZGlzYWJsZVpvb20sIHpvb21FdmVudEZpbHRlciwgZGlzYWJsZURyYWcsIGRpc2FibGVCcnVzaCwgem9vbVRocm90dGxlZFVwZGF0ZU5vZGVUaHJlc2hvbGQsIGxheW91dFR5cGUsIGxheW91dEF1dG9maXQsIGxheW91dEF1dG9maXRUb2xlcmFuY2UsIGxheW91dE5vbkNvbm5lY3RlZEFzaWRlLCBsYXlvdXROb2RlR3JvdXAsIGxheW91dEdyb3VwT3JkZXIsIGxheW91dFBhcmFsbGVsTm9kZXNQZXJDb2x1bW4sIGxheW91dFBhcmFsbGVsTm9kZVN1Ykdyb3VwLCBsYXlvdXRQYXJhbGxlbFN1Ykdyb3Vwc1BlclJvdywgbGF5b3V0UGFyYWxsZWxHcm91cFNwYWNpbmcsIGxheW91dFBhcmFsbGVsU29ydENvbm5lY3Rpb25zQnlHcm91cCwgZm9yY2VMYXlvdXRTZXR0aW5ncywgZGFncmVMYXlvdXRTZXR0aW5ncywgbGF5b3V0RWxrU2V0dGluZ3MsIGxheW91dEVsa05vZGVHcm91cHMsIGxpbmtXaWR0aCwgbGlua1N0eWxlLCBsaW5rQmFuZFdpZHRoLCBsaW5rQXJyb3csIGxpbmtTdHJva2UsIGxpbmtEaXNhYmxlZCwgbGlua0Zsb3csIGxpbmtGbG93QW5pbUR1cmF0aW9uLCBsaW5rRmxvd1BhcnRpY2xlU2l6ZSwgbGlua0xhYmVsLCBsaW5rTGFiZWxTaGlmdEZyb21DZW50ZXIsIGxpbmtOZWlnaGJvclNwYWNpbmcsIGxpbmtDdXJ2YXR1cmUsIHNlbGVjdGVkTGlua0lkLCBub2RlU2l6ZSwgbm9kZVN0cm9rZVdpZHRoLCBub2RlU2hhcGUsIG5vZGVHYXVnZVZhbHVlLCBub2RlR2F1Z2VGaWxsLCBub2RlR2F1Z2VBbmltRHVyYXRpb24sIG5vZGVJY29uLCBub2RlSWNvblNpemUsIG5vZGVMYWJlbCwgbm9kZUxhYmVsVHJpbSwgbm9kZUxhYmVsVHJpbU1vZGUsIG5vZGVMYWJlbFRyaW1MZW5ndGgsIG5vZGVTdWJMYWJlbCwgbm9kZVN1YkxhYmVsVHJpbSwgbm9kZVN1YkxhYmVsVHJpbU1vZGUsIG5vZGVTdWJMYWJlbFRyaW1MZW5ndGgsIG5vZGVTaWRlTGFiZWxzLCBub2RlQm90dG9tSWNvbiwgbm9kZURpc2FibGVkLCBub2RlRmlsbCwgbm9kZVN0cm9rZSwgbm9kZVNvcnQsIG5vZGVFbnRlclBvc2l0aW9uLCBub2RlRW50ZXJTY2FsZSwgbm9kZUV4aXRQb3NpdGlvbiwgbm9kZUV4aXRTY2FsZSwgbm9kZUVudGVyQ3VzdG9tUmVuZGVyRnVuY3Rpb24sIG5vZGVVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZVBhcnRpYWxVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZUV4aXRDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZU9uWm9vbUN1c3RvbVJlbmRlckZ1bmN0aW9uLCBub2RlU2VsZWN0aW9uSGlnaGxpZ2h0TW9kZSwgc2VsZWN0ZWROb2RlSWQsIHNlbGVjdGVkTm9kZUlkcywgcGFuZWxzLCBvbk5vZGVEcmFnU3RhcnQsIG9uTm9kZURyYWcsIG9uTm9kZURyYWdFbmQsIG9uWm9vbSwgb25ab29tU3RhcnQsIG9uWm9vbUVuZCwgb25MYXlvdXRDYWxjdWxhdGVkLCBvbk5vZGVTZWxlY3Rpb25CcnVzaCwgb25Ob2RlU2VsZWN0aW9uRHJhZywgb25SZW5kZXJDb21wbGV0ZSB9ID0gdGhpc1xuICAgIGNvbnN0IGNvbmZpZyA9IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgem9vbVNjYWxlRXh0ZW50LCBkaXNhYmxlWm9vbSwgem9vbUV2ZW50RmlsdGVyLCBkaXNhYmxlRHJhZywgZGlzYWJsZUJydXNoLCB6b29tVGhyb3R0bGVkVXBkYXRlTm9kZVRocmVzaG9sZCwgbGF5b3V0VHlwZSwgbGF5b3V0QXV0b2ZpdCwgbGF5b3V0QXV0b2ZpdFRvbGVyYW5jZSwgbGF5b3V0Tm9uQ29ubmVjdGVkQXNpZGUsIGxheW91dE5vZGVHcm91cCwgbGF5b3V0R3JvdXBPcmRlciwgbGF5b3V0UGFyYWxsZWxOb2Rlc1BlckNvbHVtbiwgbGF5b3V0UGFyYWxsZWxOb2RlU3ViR3JvdXAsIGxheW91dFBhcmFsbGVsU3ViR3JvdXBzUGVyUm93LCBsYXlvdXRQYXJhbGxlbEdyb3VwU3BhY2luZywgbGF5b3V0UGFyYWxsZWxTb3J0Q29ubmVjdGlvbnNCeUdyb3VwLCBmb3JjZUxheW91dFNldHRpbmdzLCBkYWdyZUxheW91dFNldHRpbmdzLCBsYXlvdXRFbGtTZXR0aW5ncywgbGF5b3V0RWxrTm9kZUdyb3VwcywgbGlua1dpZHRoLCBsaW5rU3R5bGUsIGxpbmtCYW5kV2lkdGgsIGxpbmtBcnJvdywgbGlua1N0cm9rZSwgbGlua0Rpc2FibGVkLCBsaW5rRmxvdywgbGlua0Zsb3dBbmltRHVyYXRpb24sIGxpbmtGbG93UGFydGljbGVTaXplLCBsaW5rTGFiZWwsIGxpbmtMYWJlbFNoaWZ0RnJvbUNlbnRlciwgbGlua05laWdoYm9yU3BhY2luZywgbGlua0N1cnZhdHVyZSwgc2VsZWN0ZWRMaW5rSWQsIG5vZGVTaXplLCBub2RlU3Ryb2tlV2lkdGgsIG5vZGVTaGFwZSwgbm9kZUdhdWdlVmFsdWUsIG5vZGVHYXVnZUZpbGwsIG5vZGVHYXVnZUFuaW1EdXJhdGlvbiwgbm9kZUljb24sIG5vZGVJY29uU2l6ZSwgbm9kZUxhYmVsLCBub2RlTGFiZWxUcmltLCBub2RlTGFiZWxUcmltTW9kZSwgbm9kZUxhYmVsVHJpbUxlbmd0aCwgbm9kZVN1YkxhYmVsLCBub2RlU3ViTGFiZWxUcmltLCBub2RlU3ViTGFiZWxUcmltTW9kZSwgbm9kZVN1YkxhYmVsVHJpbUxlbmd0aCwgbm9kZVNpZGVMYWJlbHMsIG5vZGVCb3R0b21JY29uLCBub2RlRGlzYWJsZWQsIG5vZGVGaWxsLCBub2RlU3Ryb2tlLCBub2RlU29ydCwgbm9kZUVudGVyUG9zaXRpb24sIG5vZGVFbnRlclNjYWxlLCBub2RlRXhpdFBvc2l0aW9uLCBub2RlRXhpdFNjYWxlLCBub2RlRW50ZXJDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZVVwZGF0ZUN1c3RvbVJlbmRlckZ1bmN0aW9uLCBub2RlUGFydGlhbFVwZGF0ZUN1c3RvbVJlbmRlckZ1bmN0aW9uLCBub2RlRXhpdEN1c3RvbVJlbmRlckZ1bmN0aW9uLCBub2RlT25ab29tQ3VzdG9tUmVuZGVyRnVuY3Rpb24sIG5vZGVTZWxlY3Rpb25IaWdobGlnaHRNb2RlLCBzZWxlY3RlZE5vZGVJZCwgc2VsZWN0ZWROb2RlSWRzLCBwYW5lbHMsIG9uTm9kZURyYWdTdGFydCwgb25Ob2RlRHJhZywgb25Ob2RlRHJhZ0VuZCwgb25ab29tLCBvblpvb21TdGFydCwgb25ab29tRW5kLCBvbkxheW91dENhbGN1bGF0ZWQsIG9uTm9kZVNlbGVjdGlvbkJydXNoLCBvbk5vZGVTZWxlY3Rpb25EcmFnLCBvblJlbmRlckNvbXBsZXRlIH1cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY29uZmlnKSBhcyAoa2V5b2YgR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4pW11cbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsgaWYgKGNvbmZpZ1trZXldID09PSB1bmRlZmluZWQpIGRlbGV0ZSBjb25maWdba2V5XSB9KVxuXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG59XG4iXX0=
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZ3JhcGgvZ3JhcGguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxLQUFLLEdBMkJOLE1BQU0sWUFBWSxDQUFBO0FBTW5CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRN0MsTUFBTSxPQUFPLGlCQUFpQjtJQWlXNUIsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRWxELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxnQ0FBZ0MsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSw0QkFBNEIsRUFBRSwwQkFBMEIsRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBRSxvQ0FBb0MsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsNkJBQTZCLEVBQUUsOEJBQThCLEVBQUUscUNBQXFDLEVBQUUsNEJBQTRCLEVBQUUsOEJBQThCLEVBQUUsMEJBQTBCLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDdmxELE1BQU0sTUFBTSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxnQ0FBZ0MsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSw0QkFBNEIsRUFBRSwwQkFBMEIsRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBRSxvQ0FBb0MsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsNkJBQTZCLEVBQUUsOEJBQThCLEVBQUUscUNBQXFDLEVBQUUsNEJBQTRCLEVBQUUsOEJBQThCLEVBQUUsMEJBQTBCLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQTtRQUN6bEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQXlDLENBQUE7UUFDeEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVM7WUFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTFFLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQzs7K0dBdlhVLGlCQUFpQjttR0FBakIsaUJBQWlCLDgzR0FGakIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQywrQ0FGaEUsRUFBRTs0RkFJRCxpQkFBaUI7a0JBTjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGdEQUFnRDtvQkFDaEQsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxtQkFBbUIsRUFBRSxDQUFDO2lCQUMzRTs4QkFHVSxRQUFRO3NCQUFoQixLQUFLO2dCQW1CRyxNQUFNO3NCQUFkLEtBQUs7Z0JBd0JHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdHLGdDQUFnQztzQkFBeEMsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBT0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUdHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFLRyxlQUFlO3NCQUF2QixLQUFLO2dCQUtHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFNRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBS0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUtHLDZCQUE2QjtzQkFBckMsS0FBSztnQkFLRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBS0csb0NBQW9DO3NCQUE1QyxLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFJRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBTUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUtHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFNRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBR0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFPRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFHRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBR0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUdHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyw2QkFBNkI7c0JBQXJDLEtBQUs7Z0JBR0csOEJBQThCO3NCQUF0QyxLQUFLO2dCQVFHLHFDQUFxQztzQkFBN0MsS0FBSztnQkFHRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBR0csOEJBQThCO3NCQUF0QyxLQUFLO2dCQUdHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLE1BQU07c0JBQWQsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUdHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQU9HLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAhISEgVGhpcyBjb2RlIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC4gWW91IHNob3VsZCBub3QgY2hhbmdlIGl0ICEhIVxuaW1wb3J0IHsgQ29tcG9uZW50LCBBZnRlclZpZXdJbml0LCBJbnB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBHcmFwaCxcbiAgR3JhcGhDb25maWdJbnRlcmZhY2UsXG4gIENvbnRhaW5lckNvcmUsXG4gIEdyYXBoSW5wdXROb2RlLFxuICBHcmFwaElucHV0TGluayxcbiAgVmlzRXZlbnRUeXBlLFxuICBWaXNFdmVudENhbGxiYWNrLFxuICBHcmFwaExheW91dFR5cGUsXG4gIFN0cmluZ0FjY2Vzc29yLFxuICBHcmFwaEZvcmNlTGF5b3V0U2V0dGluZ3MsXG4gIEdyYXBoRGFncmVMYXlvdXRTZXR0aW5nLFxuICBHZW5lcmljQWNjZXNzb3IsXG4gIEdyYXBoRWxrTGF5b3V0U2V0dGluZ3MsXG4gIEdyYXBoTm9kZSxcbiAgTnVtZXJpY0FjY2Vzc29yLFxuICBHcmFwaExpbmtTdHlsZSxcbiAgR3JhcGhMaW5rQXJyb3dTdHlsZSxcbiAgQ29sb3JBY2Nlc3NvcixcbiAgQm9vbGVhbkFjY2Vzc29yLFxuICBHcmFwaENpcmNsZUxhYmVsLFxuICBHcmFwaExpbmssXG4gIEdyYXBoTm9kZVNoYXBlLFxuICBUcmltTW9kZSxcbiAgR3JhcGhOb2RlU2VsZWN0aW9uSGlnaGxpZ2h0TW9kZSxcbiAgR3JhcGhQYW5lbENvbmZpZyxcbiAgR3JhcGhJbnB1dERhdGEsXG4gIEdyYXBoRGF0YU1vZGVsLFxufSBmcm9tICdAdW5vdmlzL3RzJ1xuaW1wb3J0IHsgRWxrU2hhcGUgfSBmcm9tICdlbGtqcydcbmltcG9ydCB7IFNlbGVjdGlvbiB9IGZyb20gJ2QzLXNlbGVjdGlvbidcbmltcG9ydCB7IEQzRHJhZ0V2ZW50IH0gZnJvbSAnZDMtZHJhZydcbmltcG9ydCB7IEQzWm9vbUV2ZW50LCBab29tVHJhbnNmb3JtIH0gZnJvbSAnZDMtem9vbSdcbmltcG9ydCB7IEQzQnJ1c2hFdmVudCB9IGZyb20gJ2QzLWJydXNoJ1xuaW1wb3J0IHsgVmlzQ29yZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy1ncmFwaCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVmlzQ29yZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IFZpc0dyYXBoQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNHcmFwaENvbXBvbmVudDxOIGV4dGVuZHMgR3JhcGhJbnB1dE5vZGUsIEwgZXh0ZW5kcyBHcmFwaElucHV0TGluaz4gaW1wbGVtZW50cyBHcmFwaENvbmZpZ0ludGVyZmFjZTxOLCBMPiwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIGRhdGEgdXBkYXRlIHRyYW5zaXRpb25zIGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdDogYDYwMGAgKi9cbiAgQElucHV0KCkgZHVyYXRpb24/OiBudW1iZXJcblxuICAvKiogRXZlbnRzIGNvbmZpZ3VyYXRpb24uIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbZXZlbnRUeXBlXTogY2FsbGJhY2tGdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBjbGljazogKGQpID0+IGNvbnNvbGUubG9nKFwiQ2xpY2tlZCBBcmVhXCIsIGQpXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGV2ZW50cz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFtldmVudFR5cGUgaW4gVmlzRXZlbnRUeXBlXT86IFZpc0V2ZW50Q2FsbGJhY2tcbiAgICB9O1xuICB9XG5cbiAgLyoqIFlvdSBjYW4gc2V0IGV2ZXJ5IFNWRyBhbmQgSFRNTCB2aXN1YWxpemF0aW9uIG9iamVjdCB0byBoYXZlIGEgY3VzdG9tIERPTSBhdHRyaWJ1dGVzLCB3aGljaCBpcyB1c2VmdWxcbiAgICogd2hlbiB5b3Ugd2FudCB0byBkbyB1bml0IG9yIGVuZC10by1lbmQgdGVzdGluZy4gQXR0cmlidXRlcyBjb25maWd1cmF0aW9uIG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbYXR0cmlidXRlTmFtZV06IGF0dHJpYnV0ZSBjb25zdGFudCB2YWx1ZSBvciBhY2Nlc3NvciBmdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBcInRlc3QtdmFsdWVcIjogZCA9PiBkLnZhbHVlXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGF0dHJpYnV0ZXM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbYXR0cjogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8ICgoZGF0dW06IGFueSkgPT4gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbik7XG4gICAgfTtcbiAgfVxuXG4gIC8qKiBab29tIGxldmVsIGNvbnN0cmFpbnRzLiBEZWZhdWx0OiBbMC4zNSwgMS4yNV0gKi9cbiAgQElucHV0KCkgem9vbVNjYWxlRXh0ZW50PzogW251bWJlciwgbnVtYmVyXVxuXG4gIC8qKiBEaXNhYmxlIHpvb21pbmcuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgZGlzYWJsZVpvb20/OiBib29sZWFuXG5cbiAgLyoqIEN1c3RvbSBab29tIGV2ZW50IGZpbHRlciB0byBiZXR0ZXIgY29udHJvbCB3aGljaCBhY3Rpb25zIHNob3VsZCB0cmlnZ2VyIHpvb21pbmcuXG4gICAqIExlYXJuIG1vcmU6IGh0dHBzOi8vZDNqcy5vcmcvZDMtem9vbSN6b29tX2ZpbHRlci5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgem9vbUV2ZW50RmlsdGVyPzogKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IGJvb2xlYW5cblxuICAvKiogRGlzYWJsZSBub2RlIGRyYWdnaW5nLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGRpc2FibGVEcmFnPzogYm9vbGVhblxuXG4gIC8qKiBEaXNhYmxlIGJydXNoIGZvciBtdWx0aXBsZSBub2RlIHNlbGVjdGlvbi4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBkaXNhYmxlQnJ1c2g/OiBib29sZWFuXG5cbiAgLyoqIEludGVydmFsIHRvIHJlLXJlbmRlciB0aGUgZ3JhcGggd2hlbiB6b29taW5nLiBEZWZhdWx0OiBgMTAwYCAqL1xuICBASW5wdXQoKSB6b29tVGhyb3R0bGVkVXBkYXRlTm9kZVRocmVzaG9sZD86IG51bWJlclxuXG4gIC8qKiBUeXBlIG9mIHRoZSBncmFwaCBsYXlvdXQuIERlZmF1bHQ6IGBHcmFwaExheW91dFR5cGUuRm9yY2VgICovXG4gIEBJbnB1dCgpIGxheW91dFR5cGU/OiBHcmFwaExheW91dFR5cGUgfCBzdHJpbmdcblxuICAvKiogRml0IHRoZSBncmFwaCB0byBjb250YWluZXIgb24gZGF0YSBvciBjb25maWcgdXBkYXRlcywgb3Igb24gY29udGFpbmVyIHJlc2l6ZS4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGxheW91dEF1dG9maXQ/OiBib29sZWFuXG5cbiAgLyoqIFRvbGVyYW5jZSBjb25zdGFudCBkZWZpbmluZyB3aGV0aGVyIHRoZSBncmFwaCBzaG91bGQgYmUgZml0dGVkIHRvIGNvbnRhaW5lclxuICAgKiAob24gZGF0YSBvciBjb25maWcgdXBkYXRlLCBvciBjb250YWluZXIgcmVzaXplKSBhZnRlciBhIHpvb20gLyBwYW4gaW50ZXJhY3Rpb24gb3Igbm90LlxuICAgKiBgMGAg4oCUIFN0b3AgZml0dGluZyBhZnRlciBhbnkgcGFuIG9yIHpvb21cbiAgICogYE51bWJlci5QT1NJVElWRV9JTkZJTklUWWAg4oCUIEFsd2F5cyBmaXRcbiAgICogRGVmYXVsdDogYDguMGAgKi9cbiAgQElucHV0KCkgbGF5b3V0QXV0b2ZpdFRvbGVyYW5jZT86IG51bWJlclxuXG4gIC8qKiBQbGFjZSBub24tY29ubmVjdGVkIG5vZGVzIGF0IHRoZSBib3R0b20gb2YgdGhlIGdyYXBoLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGxheW91dE5vbkNvbm5lY3RlZEFzaWRlPzogYm9vbGVhblxuXG4gIC8qKiBOb2RlIGdyb3VwIGFjY2Vzc29yIGZ1bmN0aW9uLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCwgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGFuZCBgR3JhcGhMYXlvdXRUeXBlLkNvbmNlbnRyaWNgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGBub2RlID0+IG5vZGUuZ3JvdXBgICovXG4gIEBJbnB1dCgpIGxheW91dE5vZGVHcm91cD86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE9yZGVyIG9mIHRoZSBsYXlvdXQgZ3JvdXBzLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCwgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGFuZCBgR3JhcGhMYXlvdXRUeXBlLkNvbmNlbnRyaWNgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGBbXWAgKi9cbiAgQElucHV0KCkgbGF5b3V0R3JvdXBPcmRlcj86IHN0cmluZ1tdXG5cbiAgLyoqIFNldHMgdGhlIG51bWJlciBvZiBub2RlcyBpbiBhIHN1Yi1ncm91cCBhZnRlciB3aGljaCB0aGV5J2xsIGNvbnRpbnVlIG9uIHRoZSBuZXh0IGNvbHVtbiAob3Igcm93IGlmIGBsYXlvdXRUeXBlYCBpc1xuICAgKiBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsSG9yaXpvbnRhbGApLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGA2YCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbE5vZGVzUGVyQ29sdW1uPzogbnVtYmVyXG5cbiAgLyoqIE5vZGUgc3ViLWdyb3VwIGFjY2Vzc29yIGZ1bmN0aW9uLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGBub2RlID0+IG5vZGUuc3ViZ3JvdXBgICovXG4gIEBJbnB1dCgpIGxheW91dFBhcmFsbGVsTm9kZVN1Ykdyb3VwPzogU3RyaW5nQWNjZXNzb3I8Tj5cblxuICAvKiogTnVtYmVyIG9mIHN1Yi1ncm91cHMgcGVyIHJvdyAob3IgY29sdW1uIGlmIGBsYXlvdXRUeXBlYCBpcyBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsSG9yaXpvbnRhbGApIGluIGEgZ3JvdXAuXG4gICAqIE9ubHkgZm9yIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxgIGFuZCBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsSG9yaXpvbnRhbGAgbGF5b3V0cy5cbiAgICogRGVmYXVsdDogYDFgICovXG4gIEBJbnB1dCgpIGxheW91dFBhcmFsbGVsU3ViR3JvdXBzUGVyUm93PzogbnVtYmVyXG5cbiAgLyoqIFNwYWNpbmcgYmV0d2VlbiBncm91cHMuXG4gICAqIE9ubHkgZm9yIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxgIGFuZCBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsSG9yaXpvbnRhbGAgbGF5b3V0cy5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGF5b3V0UGFyYWxsZWxHcm91cFNwYWNpbmc/OiBudW1iZXJcblxuICAvKiogU2V0IGEgZ3JvdXAgYnkgbmFtZSB0byBoYXZlIHByaW9yaXR5IGluIHNvcnRpbmcgdGhlIGdyYXBoIGxpbmtzLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxheW91dFBhcmFsbGVsU29ydENvbm5lY3Rpb25zQnlHcm91cD86IHN0cmluZ1xuXG4gIC8qKiBGb3JjZSBMYXlvdXQgc2V0dGluZ3MsIHNlZSB0aGUgYGQzLWZvcmNlYCBwYWNrYWdlIGZvciBtb3JlIGRldGFpbHMgKi9cbiAgQElucHV0KCkgZm9yY2VMYXlvdXRTZXR0aW5ncz86IEdyYXBoRm9yY2VMYXlvdXRTZXR0aW5nczxOLCBMPlxuXG4gIC8qKiBEYXJnZSBMYXlvdXQgc2V0dGluZ3MsIHNlZSB0aGUgYGRhZ3JlanNgIHBhY2thZ2VcbiAgICogZm9yIG1vcmUgZGV0YWlsczogaHR0cHM6Ly9naXRodWIuY29tL2RhZ3JlanMvZGFncmUvd2lraSNjb25maWd1cmluZy10aGUtbGF5b3V0ICovXG4gIEBJbnB1dCgpIGRhZ3JlTGF5b3V0U2V0dGluZ3M/OiBHcmFwaERhZ3JlTGF5b3V0U2V0dGluZ1xuXG4gIC8qKiBFTEsgbGF5b3V0IG9wdGlvbnMsIHNlZSB0aGUgYGVsa2pzYCBwYWNrYWdlIGZvciBtb3JlIGRldGFpbHM6IGh0dHBzOi8vZ2l0aHViLmNvbS9raWVsZXIvZWxranMuXG4gICAqIElmIHlvdSB3YW50IHRvIHNwZWNpZnkgY3VzdG9tIGxheW91dCBvcHRpb24gZm9yIGVhY2ggbm9kZSBncm91cCwgeW91IGNhbiBwcm92aWRlIGFuIGFjY2Vzc29yIGZ1bmN0aW9uIHRoYXRcbiAgICogcmVjZWl2ZXMgZ3JvdXAgbmFtZSAoJ3Jvb3QnIGZvciB0aGUgdG9wLWxldmVsIGNvbmZpZ3VyYXRpb24pIGFzIHRoZSBmaXJzdCBhcmd1bWVudCBhbmQgcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZ1xuICAgKiBsYXlvdXQgb3B0aW9ucy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGF5b3V0RWxrU2V0dGluZ3M/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhFbGtMYXlvdXRTZXR0aW5ncywgc3RyaW5nPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBBcnJheSBvZiBhY2Nlc3NvciBmdW5jdGlvbnMgdG8gZGVmaW5lIG5lc3RlZCBub2RlIGdyb3VwcyBmb3IgdGhlIEVMSyBMYXllcmVkIGxheW91dC5cbiAgICogRS5nLjogYFtuID0+IG4uZ3JvdXAsIG4gPT4gbi5zdWJHcm91cF1gLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsYXlvdXRFbGtOb2RlR3JvdXBzPzogU3RyaW5nQWNjZXNzb3I8Tj5bXVxuXG4gIC8qKiBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBwZXIgZ3JhcGggbm9kZSB0byBnZXQgdGhlIEVMSyBzaGFwZSBvYmplY3QuXG4gICAqIFRoaXMgZW5hYmxlcyB5b3UgdG8gcHJvdmlkZSBjdXN0b20gbm9kZSBkaW1lbnNpb25zICh0aHJvdWdoIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBwcm9wZXJ0aWVzKVxuICAgKiBhbmQgY29vcmRpbmF0ZXMgKHRocm91Z2ggdGhlIGB4YCBhbmQgYHlgIHByb3BlcnRpZXMpIGlmIG5lZWRlZC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGF5b3V0RWxrR2V0Tm9kZVNoYXBlPzogKGQ6IEdyYXBoTm9kZTxOLCBMPiwgaTogbnVtYmVyKSA9PiBFbGtTaGFwZVxuXG4gIC8qKiBMaW5rIHdpZHRoIGFjY2Vzc29yIGZ1bmN0aW9uIG90IGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgMWAgKi9cbiAgQElucHV0KCkgbGlua1dpZHRoPzogTnVtZXJpY0FjY2Vzc29yPEw+XG5cbiAgLyoqIExpbmsgc3R5bGUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBHcmFwaExpbmtTdHlsZS5Tb2xpZGAgKi9cbiAgQElucHV0KCkgbGlua1N0eWxlPzogR2VuZXJpY0FjY2Vzc29yPEdyYXBoTGlua1N0eWxlLCBMPlxuXG4gIC8qKiBMaW5rIGJhbmQgd2lkdGggYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGAwYCAqL1xuICBASW5wdXQoKSBsaW5rQmFuZFdpZHRoPzogTnVtZXJpY0FjY2Vzc29yPEw+XG5cbiAgLyoqIExpbmsgYXJyb3cgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxpbmtBcnJvdz86IEdlbmVyaWNBY2Nlc3NvcjxHcmFwaExpbmtBcnJvd1N0eWxlIHwgc3RyaW5nIHwgYm9vbGVhbiwgTD4gfCB1bmRlZmluZWRcblxuICAvKiogTGluayBzdHJva2UgY29sb3IgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxpbmtTdHJva2U/OiBDb2xvckFjY2Vzc29yPEw+XG5cbiAgLyoqIExpbmsgZGlzYWJsZWQgc3RhdGUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgbGlua0Rpc2FibGVkPzogQm9vbGVhbkFjY2Vzc29yPEw+XG5cbiAgLyoqIExpbmsgZmxvdyBhbmltYXRpb24gYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgbGlua0Zsb3c/OiBCb29sZWFuQWNjZXNzb3I8TD5cblxuICAvKiogQW5pbWF0aW9uIGR1cmF0aW9uIG9mIHRoZSBmbG93ICh0cmFmZmljKSBjaXJjbGVzLiBEZWZhdWx0OiBgMjAwMDBgICovXG4gIEBJbnB1dCgpIGxpbmtGbG93QW5pbUR1cmF0aW9uPzogbnVtYmVyXG5cbiAgLyoqIFNpemUgb2YgdGhlIG1vdmluZyBwYXJ0aWNsZXMgdGhhdCByZXByZXNlbnQgdHJhZmZpYyBmbG93LiBEZWZhdWx0OiBgMmAgKi9cbiAgQElucHV0KCkgbGlua0Zsb3dQYXJ0aWNsZVNpemU/OiBudW1iZXJcblxuICAvKiogTGluayBsYWJlbCBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGlua0xhYmVsPzogR2VuZXJpY0FjY2Vzc29yPEdyYXBoQ2lyY2xlTGFiZWwgfCBHcmFwaENpcmNsZUxhYmVsW10sIEw+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIFNoaWZ0IGxhYmVsIGFsb25nIHRoZSBsaW5rIGNlbnRlciBhIGxpdHRsZSBiaXQgdG8gYXZvaWQgb3ZlcmxhcCB3aXRoIHRoZSBsaW5rIGFycm93LiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgbGlua0xhYmVsU2hpZnRGcm9tQ2VudGVyPzogQm9vbGVhbkFjY2Vzc29yPEw+XG5cbiAgLyoqIFNwYWNpbmcgYmV0d2VlbiBuZWlnaGJvcmluZyBsaW5rcy4gRGVmYXVsdDogYDhgICovXG4gIEBJbnB1dCgpIGxpbmtOZWlnaGJvclNwYWNpbmc/OiBudW1iZXJcblxuICAvKiogQ3VydmF0dXJlIG9mIHRoZSBsaW5rLiBSZWNvbW1lbmRlZCB2YWx1ZSByYW5nZTogWzA6MS41XS5cbiAgICogYDBgIC0gc3RyYWlnaHQgbGluZSxcbiAgICogYDFgIC0gbmljZSBjdXJ2YXR1cmUsXG4gICAqIGAxLjVgIC0gdmVyeSBjdXJ2ZS5cbiAgICogRGVmYXVsdDogYDBgICovXG4gIEBJbnB1dCgpIGxpbmtDdXJ2YXR1cmU/OiBOdW1lcmljQWNjZXNzb3I8TD5cblxuICAvKiogSGlnaGxpZ2h0IGxpbmtzIG9uIGhvdmVyLiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgbGlua0hpZ2hsaWdodE9uSG92ZXI/OiBib29sZWFuXG5cbiAgLyoqIE9mZnNldCBbeCx5XSBpbiBwaXhlbHMgZnJvbSB0aGUgc291cmNlIG5vZGUncyBjZW50ZXIgcG9pbnQgd2hlcmUgdGhlIGxpbmsgc2hvdWxkIHN0YXJ0LiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsaW5rU291cmNlUG9pbnRPZmZzZXQ/OiBHZW5lcmljQWNjZXNzb3I8W251bWJlciwgbnVtYmVyXSwgR3JhcGhMaW5rPE4sIEw+PlxuXG4gIC8qKiBPZmZzZXQgW3gseV0gaW4gcGl4ZWxzIGZyb20gdGhlIHRhcmdldCBub2RlJ3MgY2VudGVyIHBvaW50IHdoZXJlIHRoZSBsaW5rIHNob3VsZCBlbmQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxpbmtUYXJnZXRQb2ludE9mZnNldD86IEdlbmVyaWNBY2Nlc3NvcjxbbnVtYmVyLCBudW1iZXJdLCBHcmFwaExpbms8TiwgTD4+XG5cbiAgLyoqIFNldCBzZWxlY3RlZCBsaW5rIGJ5IGl0cyB1bmlxdWUgaWQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkTGlua0lkPzogbnVtYmVyIHwgc3RyaW5nXG5cbiAgLyoqIE5vZGUgc2l6ZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYDMwYCAqL1xuICBASW5wdXQoKSBub2RlU2l6ZT86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIHN0cm9rZSB3aWR0aCBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYDNgICovXG4gIEBJbnB1dCgpIG5vZGVTdHJva2VXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIHNoYXBlIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgR3JhcGhOb2RlU2hhcGUuQ2lyY2xlYCAqL1xuICBASW5wdXQoKSBub2RlU2hhcGU/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhOb2RlU2hhcGUgfCBzdHJpbmcsIE4+XG5cbiAgLyoqIE5vZGUgZ2F1Z2Ugb3V0bGluZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZSBpbiB0aGUgcmFuZ2UgWzAsMTAwXS4gRGVmYXVsdDogYDBgICovXG4gIEBJbnB1dCgpIG5vZGVHYXVnZVZhbHVlPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgZ2F1Z2Ugb3V0bGluZSBmaWxsIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlR2F1Z2VGaWxsPzogQ29sb3JBY2Nlc3NvcjxOPlxuXG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIG5vZGUgZ2F1Z2Ugb3V0bGluZS4gRGVmYXVsdDogYDE1MDBgICovXG4gIEBJbnB1dCgpIG5vZGVHYXVnZUFuaW1EdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBOb2RlIGNlbnRyYWwgaWNvbiBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYG5vZGUgPT4gbm9kZS5pY29uYCAqL1xuICBASW5wdXQoKSBub2RlSWNvbj86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgY2VudHJhbCBpY29uIHNpemUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVJY29uU2l6ZT86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIGxhYmVsIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLmxhYmVsYCAqL1xuICBASW5wdXQoKSBub2RlTGFiZWw/OiBTdHJpbmdBY2Nlc3NvcjxOPlxuXG4gIC8qKiBEZWZpbmVzIHdoZXRoZXIgdG8gdHJpbSB0aGUgbm9kZSBsYWJlbHMgb3Igbm90LiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgbm9kZUxhYmVsVHJpbT86IEJvb2xlYW5BY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIGxhYmVsIHRyaW1taW5nIG1vZGUuIERlZmF1bHQ6IGBUcmltTW9kZS5NaWRkbGVgICovXG4gIEBJbnB1dCgpIG5vZGVMYWJlbFRyaW1Nb2RlPzogR2VuZXJpY0FjY2Vzc29yPFRyaW1Nb2RlIHwgc3RyaW5nLCBOPlxuXG4gIC8qKiBOb2RlIGxhYmVsIG1heGltdW0gYWxsb3dlZCB0ZXh0IGxlbmd0aCBhYm92ZSB3aGljaCB0aGUgbGFiZWwgd2lsbCBiZSB0cmltbWVkLiBEZWZhdWx0OiBgMTVgICovXG4gIEBJbnB1dCgpIG5vZGVMYWJlbFRyaW1MZW5ndGg/OiBOdW1lcmljQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBzdWItbGFiZWwgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWU6IERlZmF1bHQ6IGAnJ2AgKi9cbiAgQElucHV0KCkgbm9kZVN1YkxhYmVsPzogU3RyaW5nQWNjZXNzb3I8Tj5cblxuICAvKiogRGVmaW5lcyB3aGV0aGVyIHRvIHRyaW0gdGhlIG5vZGUgc3ViLWxhYmVscyBvciBub3QuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBub2RlU3ViTGFiZWxUcmltPzogQm9vbGVhbkFjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgc3ViLWxhYmVsIHRyaW1taW5nIG1vZGUuIERlZmF1bHQ6IGBUcmltTW9kZS5NaWRkbGVgICovXG4gIEBJbnB1dCgpIG5vZGVTdWJMYWJlbFRyaW1Nb2RlPzogR2VuZXJpY0FjY2Vzc29yPFRyaW1Nb2RlIHwgc3RyaW5nLCBOPlxuXG4gIC8qKiBOb2RlIHN1Yi1sYWJlbCBtYXhpbXVtIGFsbG93ZWQgdGV4dCBsZW5ndGggYWJvdmUgd2hpY2ggdGhlIGxhYmVsIHdpbGwgYmUgdHJpbW1lZC4gRGVmYXVsdDogYDE1YCAqL1xuICBASW5wdXQoKSBub2RlU3ViTGFiZWxUcmltTGVuZ3RoPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgY2lyY3VsYXIgc2lkZSBsYWJlbHMgYWNjZXNzb3IgZnVuY3Rpb24uIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGFuIGFycmF5IG9mIEdyYXBoQ2lyY2xlTGFiZWwgb2JqZWN0cy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZVNpZGVMYWJlbHM/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhDaXJjbGVMYWJlbFtdLCBOPlxuXG4gIC8qKiBOb2RlIGJvdHRvbSBpY29uIGFjY2Vzc29yIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlQm90dG9tSWNvbj86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgZGlzYWJsZWQgc3RhdGUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgbm9kZURpc2FibGVkPzogQm9vbGVhbkFjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgZmlsbCBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYG5vZGUgPT4gbm9kZS5maWxsYCAqL1xuICBASW5wdXQoKSBub2RlRmlsbD86IENvbG9yQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBzdHJva2UgY29sb3IgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBub2RlID0+IG5vZGUuc3Ryb2tlYCAqL1xuICBASW5wdXQoKSBub2RlU3Ryb2tlPzogQ29sb3JBY2Nlc3NvcjxOPlxuXG4gIC8qKiBTb3J0aW5nIGZ1bmN0aW9uIHRvIGRldGVybWluZSBub2RlIHBsYWNlbWVudC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZVNvcnQ/OiAoKGE6IE4sIGI6IE4pID0+IG51bWJlcilcblxuICAvKiogU3BlY2lmeSB0aGUgaW5pdGlhbCBwb3NpdGlvbiBmb3IgZW50ZXJpbmcgbm9kZXMgYXMgW3gsIHldLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlRW50ZXJQb3NpdGlvbj86IEdlbmVyaWNBY2Nlc3NvcjxbbnVtYmVyLCBudW1iZXJdLCBOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTcGVjaWZ5IHRoZSBpbml0aWFsIHNjYWxlIGZvciBlbnRlcmluZyBub2RlcyBpbiB0aGUgcmFuZ2UgWzAsMV0uIERlZmF1bHQ6IGAwLjc1YCAqL1xuICBASW5wdXQoKSBub2RlRW50ZXJTY2FsZT86IE51bWVyaWNBY2Nlc3NvcjxOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTcGVjaWZ5IHRoZSBkZXN0aW5hdGlvbiBwb3NpdGlvbiBmb3IgZXhpdGluZyBub2RlcyBhcyBbeCwgeV0uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVFeGl0UG9zaXRpb24/OiBHZW5lcmljQWNjZXNzb3I8W251bWJlciwgbnVtYmVyXSwgTj4gfCB1bmRlZmluZWRcblxuICAvKiogU3BlY2lmeSB0aGUgZGVzdGluYXRpb24gc2NhbGUgZm9yIGV4aXRpbmcgbm9kZXMgaW4gdGhlIHJhbmdlIFswLDFdLiBEZWZhdWx0OiBgMC43NWAgKi9cbiAgQElucHV0KCkgbm9kZUV4aXRTY2FsZT86IE51bWVyaWNBY2Nlc3NvcjxOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBDdXN0b20gXCJlbnRlclwiIGZ1bmN0aW9uIGZvciBub2RlIHJlbmRlcmluZy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZUVudGVyQ3VzdG9tUmVuZGVyRnVuY3Rpb24/OiAoZGF0dW06IEdyYXBoTm9kZTxOLCBMPiwgbm9kZUdyb3VwRWxlbWVudFNlbGVjdGlvbjogU2VsZWN0aW9uPFNWR0dFbGVtZW50LCBHcmFwaE5vZGU8TiwgTD4sIG51bGwsIHVua25vd24+LCBjb25maWc6IEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+LCBkdXJhdGlvbjogbnVtYmVyLCB6b29tTGV2ZWw6IG51bWJlcikgPT4gdm9pZFxuXG4gIC8qKiBDdXN0b20gXCJ1cGRhdGVcIiBmdW5jdGlvbiBmb3Igbm9kZSByZW5kZXJpbmcuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbj86IChkYXR1bTogR3JhcGhOb2RlPE4sIEw+LCBub2RlR3JvdXBFbGVtZW50U2VsZWN0aW9uOiBTZWxlY3Rpb248U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgbnVsbCwgdW5rbm93bj4sIGNvbmZpZzogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIGR1cmF0aW9uOiBudW1iZXIsIHpvb21MZXZlbDogbnVtYmVyKSA9PiB2b2lkXG5cbiAgLyoqIEN1c3RvbSBwYXJ0aWFsIFwidXBkYXRlXCIgZnVuY3Rpb24gZm9yIG5vZGUgcmVuZGVyaW5nIHdoaWNoIHdpbGwgYmUgdHJpZ2dlcmVkIGFmdGVyIHRoZSBmb2xsb3dpbmcgZXZlbnRzOlxuICAgKiAtIEZ1bGwgbm9kZSB1cGRhdGUgKGBub2RlVXBkYXRlQ3VzdG9tUmVuZGVyRnVuY3Rpb25gKTtcbiAgICogLSBCYWNrZ3JvdW5kIGNsaWNrO1xuICAgKiAtIE5vZGUgYW5kIExpbmsgbW91c2VvdmVyIGFuZCBtb3VzZW91dDtcbiAgICogLSBOb2RlIGJydXNoaW5nLFxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlUGFydGlhbFVwZGF0ZUN1c3RvbVJlbmRlckZ1bmN0aW9uPzogKGRhdHVtOiBHcmFwaE5vZGU8TiwgTD4sIG5vZGVHcm91cEVsZW1lbnRTZWxlY3Rpb246IFNlbGVjdGlvbjxTVkdHRWxlbWVudCwgR3JhcGhOb2RlPE4sIEw+LCBudWxsLCB1bmtub3duPiwgY29uZmlnOiBHcmFwaENvbmZpZ0ludGVyZmFjZTxOLCBMPiwgZHVyYXRpb246IG51bWJlciwgem9vbUxldmVsOiBudW1iZXIpID0+IHZvaWRcblxuICAvKiogQ3VzdG9tIFwiZXhpdFwiIGZ1bmN0aW9uIGZvciBub2RlIHJlbmRlcmluZy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZUV4aXRDdXN0b21SZW5kZXJGdW5jdGlvbj86IChkYXR1bTogR3JhcGhOb2RlPE4sIEw+LCBub2RlR3JvdXBFbGVtZW50U2VsZWN0aW9uOiBTZWxlY3Rpb248U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgbnVsbCwgdW5rbm93bj4sIGNvbmZpZzogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIGR1cmF0aW9uOiBudW1iZXIsIHpvb21MZXZlbDogbnVtYmVyKSA9PiB2b2lkXG5cbiAgLyoqIEN1c3RvbSByZW5kZXIgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCB3aGlsZSB6b29taW5nIC8gcGFubmluZyB0aGUgZ3JhcGguIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVPblpvb21DdXN0b21SZW5kZXJGdW5jdGlvbj86IChkYXR1bTogR3JhcGhOb2RlPE4sIEw+LCBub2RlR3JvdXBFbGVtZW50U2VsZWN0aW9uOiBTZWxlY3Rpb248U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgbnVsbCwgdW5rbm93bj4sIGNvbmZpZzogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIHpvb21MZXZlbDogbnVtYmVyKSA9PiB2b2lkXG5cbiAgLyoqIERlZmluZSB0aGUgbW9kZSBmb3IgaGlnaGxpZ2h0aW5nIHNlbGVjdGVkIG5vZGVzIGluIHRoZSBncmFwaC4gRGVmYXVsdDogYEdyYXBoTm9kZVNlbGVjdGlvbkhpZ2hsaWdodE1vZGUuR3JleW91dE5vbkNvbm5lY3RlZGAgKi9cbiAgQElucHV0KCkgbm9kZVNlbGVjdGlvbkhpZ2hsaWdodE1vZGU/OiBHcmFwaE5vZGVTZWxlY3Rpb25IaWdobGlnaHRNb2RlXG5cbiAgLyoqIFNldCBzZWxlY3RlZCBub2RlIGJ5IHVuaXF1ZSBpZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWROb2RlSWQ/OiBudW1iZXIgfCBzdHJpbmdcblxuICAvKiogU2V0IHNlbGVjdGVkIG5vZGVzIGJ5IHVuaXF1ZSBpZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWROb2RlSWRzPzogbnVtYmVyW10gfCBzdHJpbmdbXVxuXG4gIC8qKiBQYW5lbHMgY29uZmlndXJhdGlvbi4gQW4gYXJyYXkgb2YgYEdyYXBoUGFuZWxDb25maWdgIG9iamVjdHMuIERlZmF1bHQ6IGBbXWAgKi9cbiAgQElucHV0KCkgcGFuZWxzPzogR3JhcGhQYW5lbENvbmZpZ1tdIHwgdW5kZWZpbmVkXG5cbiAgLyoqIEdyYXBoIG5vZGUgZHJhZyBzdGFydCBjYWxsYmFjayBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25Ob2RlRHJhZ1N0YXJ0PzogKG46IEdyYXBoTm9kZTxOLCBMPiwgZXZlbnQ6IEQzRHJhZ0V2ZW50PFNWR0dFbGVtZW50LCBHcmFwaE5vZGU8TiwgTD4sIHVua25vd24+KSA9PiB2b2lkIHwgdW5kZWZpbmVkXG5cbiAgLyoqIEdyYXBoIG5vZGUgZHJhZyBjYWxsYmFjayBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25Ob2RlRHJhZz86IChuOiBHcmFwaE5vZGU8TiwgTD4sIGV2ZW50OiBEM0RyYWdFdmVudDxTVkdHRWxlbWVudCwgR3JhcGhOb2RlPE4sIEw+LCB1bmtub3duPikgPT4gdm9pZCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBHcmFwaCBub2RlIGRyYWcgZW5kIGNhbGxiYWNrIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbk5vZGVEcmFnRW5kPzogKG46IEdyYXBoTm9kZTxOLCBMPiwgZXZlbnQ6IEQzRHJhZ0V2ZW50PFNWR0dFbGVtZW50LCBHcmFwaE5vZGU8TiwgTD4sIHVua25vd24+KSA9PiB2b2lkIHwgdW5kZWZpbmVkXG5cbiAgLyoqIFpvb20gZXZlbnQgY2FsbGJhY2suIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG9uWm9vbT86ICh6b29tU2NhbGU6IG51bWJlciwgem9vbVNjYWxlRXh0ZW50OiBbbnVtYmVyLCBudW1iZXJdLCBldmVudDogRDNab29tRXZlbnQ8U1ZHR0VsZW1lbnQsIHVua25vd24+IHwgdW5kZWZpbmVkLCB0cmFuc2Zvcm06IFpvb21UcmFuc2Zvcm0pID0+IHZvaWRcblxuICAvKiogWm9vbSBzdGFydCBldmVudCBjYWxsYmFjay4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25ab29tU3RhcnQ/OiAoem9vbVNjYWxlOiBudW1iZXIsIHpvb21TY2FsZUV4dGVudDogW251bWJlciwgbnVtYmVyXSwgZXZlbnQ6IEQzWm9vbUV2ZW50PFNWR0dFbGVtZW50LCB1bmtub3duPiB8IHVuZGVmaW5lZCwgdHJhbnNmb3JtOiBab29tVHJhbnNmb3JtKSA9PiB2b2lkXG5cbiAgLyoqIFpvb20gZW5kIGV2ZW50IGNhbGxiYWNrLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvblpvb21FbmQ/OiAoem9vbVNjYWxlOiBudW1iZXIsIHpvb21TY2FsZUV4dGVudDogW251bWJlciwgbnVtYmVyXSwgZXZlbnQ6IEQzWm9vbUV2ZW50PFNWR0dFbGVtZW50LCB1bmtub3duPiB8IHVuZGVmaW5lZCwgdHJhbnNmb3JtOiBab29tVHJhbnNmb3JtKSA9PiB2b2lkXG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBncmFwaCBsYXlvdXQgaXMgY2FsY3VsYXRlZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25MYXlvdXRDYWxjdWxhdGVkPzogKG5vZGVzOiBHcmFwaE5vZGU8TiwgTD5bXSwgbGlua3M6IEdyYXBoTGluazxOLCBMPltdKSA9PiB2b2lkXG5cbiAgLyoqIEdyYXBoIG5vZGUgc2VsZWN0aW9uIGJydXNoIGNhbGxiYWNrIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbk5vZGVTZWxlY3Rpb25CcnVzaD86IChzZWxlY3RlZE5vZGVzOiBHcmFwaE5vZGU8TiwgTD5bXSwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxTVkdHRWxlbWVudD4gfCB1bmRlZmluZWQpID0+IHZvaWRcblxuICAvKiogR3JhcGggbXVsdGlwbGUgbm9kZSBkcmFnIGNhbGxiYWNrIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbk5vZGVTZWxlY3Rpb25EcmFnPzogKHNlbGVjdGVkTm9kZXM6IEdyYXBoTm9kZTxOLCBMPltdLCBldmVudDogRDNEcmFnRXZlbnQ8U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgdW5rbm93bj4pID0+IHZvaWRcblxuICAvKiogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGdyYXBoIHJlbmRlcmluZyBpcyBjb21wbGV0ZS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25SZW5kZXJDb21wbGV0ZT86IChnOiBTZWxlY3Rpb248U1ZHR0VsZW1lbnQsIHVua25vd24sIG51bGwsIHVuZGVmaW5lZD4sIG5vZGVzOiBHcmFwaE5vZGU8TiwgTD5bXSwgbGlua3M6IEdyYXBoTGluazxOLCBMPltdLCBjb25maWc6IEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+LCBkdXJhdGlvbjogbnVtYmVyLCB6b29tTGV2ZWw6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpID0+IHZvaWRcblxuICAvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZSB3aGVuIG5ldyBkYXRhIGlzIHByb3ZpZGVkLlxuICAgKiBUaGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBwcmV2aW91cyBhbmQgbmV3IGRhdGEgYXMgcGFyYW1ldGVycyBhbmQgcmV0dXJucyBhIGJvb2xlYW5cbiAgICogaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB1cGRhdGUgc2hvdWxkIHByb2NlZWQuIFVzZWZ1bCBmb3IgZmluZS1ncmFpbmVkIGNvbnRyb2wgb3ZlclxuICAgKiB1cGRhdGUgYmVoYXZpb3Igd2hlbiB5b3VyIGRhdGEgaGFzIGEgY29tcGxleCBuZXN0ZWQgc3RydWN0dXJlLlxuICAgKiBCeSBkZWZhdWx0IHRoZSBgaXNFcXVhbGAgZnVuY3Rpb24gZnJvbSBVbm92aXMgd2lsbCBiZSB1c2VkIHRvIGRvIHRoZSBjb21wYXJpc29uLiAqL1xuICBASW5wdXQoKSBzaG91bGREYXRhVXBkYXRlPzogKHByZXZEYXRhOiBHcmFwaElucHV0RGF0YTxOLCBMPiwgbmV4dERhdGE6IEdyYXBoSW5wdXREYXRhPE4sIEw+LCBkYXRhbW9kZWw6IEdyYXBoRGF0YU1vZGVsPE4sIEwsIEdyYXBoTm9kZTxOLCBMPiwgR3JhcGhMaW5rPE4sIEw+PikgPT4gYm9vbGVhblxuICBASW5wdXQoKSBkYXRhOiB7IG5vZGVzOiBOW107IGxpbmtzPzogTFtdIH1cblxuICBjb21wb25lbnQ6IEdyYXBoPE4sIEw+IHwgdW5kZWZpbmVkXG4gIHB1YmxpYyBjb21wb25lbnRDb250YWluZXI6IENvbnRhaW5lckNvcmUgfCB1bmRlZmluZWRcblxuICBuZ0FmdGVyVmlld0luaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IEdyYXBoPE4sIEw+KHRoaXMuZ2V0Q29uZmlnKCkpXG5cbiAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudC5zZXREYXRhKHRoaXMuZGF0YSlcbiAgICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzIChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuZGF0YSkgeyB0aGlzLmNvbXBvbmVudD8uc2V0RGF0YSh0aGlzLmRhdGEpIH1cbiAgICB0aGlzLmNvbXBvbmVudD8uc2V0Q29uZmlnKHRoaXMuZ2V0Q29uZmlnKCkpXG4gICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gIH1cblxuICBwcml2YXRlIGdldENvbmZpZyAoKTogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4ge1xuICAgIGNvbnN0IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgem9vbVNjYWxlRXh0ZW50LCBkaXNhYmxlWm9vbSwgem9vbUV2ZW50RmlsdGVyLCBkaXNhYmxlRHJhZywgZGlzYWJsZUJydXNoLCB6b29tVGhyb3R0bGVkVXBkYXRlTm9kZVRocmVzaG9sZCwgbGF5b3V0VHlwZSwgbGF5b3V0QXV0b2ZpdCwgbGF5b3V0QXV0b2ZpdFRvbGVyYW5jZSwgbGF5b3V0Tm9uQ29ubmVjdGVkQXNpZGUsIGxheW91dE5vZGVHcm91cCwgbGF5b3V0R3JvdXBPcmRlciwgbGF5b3V0UGFyYWxsZWxOb2Rlc1BlckNvbHVtbiwgbGF5b3V0UGFyYWxsZWxOb2RlU3ViR3JvdXAsIGxheW91dFBhcmFsbGVsU3ViR3JvdXBzUGVyUm93LCBsYXlvdXRQYXJhbGxlbEdyb3VwU3BhY2luZywgbGF5b3V0UGFyYWxsZWxTb3J0Q29ubmVjdGlvbnNCeUdyb3VwLCBmb3JjZUxheW91dFNldHRpbmdzLCBkYWdyZUxheW91dFNldHRpbmdzLCBsYXlvdXRFbGtTZXR0aW5ncywgbGF5b3V0RWxrTm9kZUdyb3VwcywgbGF5b3V0RWxrR2V0Tm9kZVNoYXBlLCBsaW5rV2lkdGgsIGxpbmtTdHlsZSwgbGlua0JhbmRXaWR0aCwgbGlua0Fycm93LCBsaW5rU3Ryb2tlLCBsaW5rRGlzYWJsZWQsIGxpbmtGbG93LCBsaW5rRmxvd0FuaW1EdXJhdGlvbiwgbGlua0Zsb3dQYXJ0aWNsZVNpemUsIGxpbmtMYWJlbCwgbGlua0xhYmVsU2hpZnRGcm9tQ2VudGVyLCBsaW5rTmVpZ2hib3JTcGFjaW5nLCBsaW5rQ3VydmF0dXJlLCBsaW5rSGlnaGxpZ2h0T25Ib3ZlciwgbGlua1NvdXJjZVBvaW50T2Zmc2V0LCBsaW5rVGFyZ2V0UG9pbnRPZmZzZXQsIHNlbGVjdGVkTGlua0lkLCBub2RlU2l6ZSwgbm9kZVN0cm9rZVdpZHRoLCBub2RlU2hhcGUsIG5vZGVHYXVnZVZhbHVlLCBub2RlR2F1Z2VGaWxsLCBub2RlR2F1Z2VBbmltRHVyYXRpb24sIG5vZGVJY29uLCBub2RlSWNvblNpemUsIG5vZGVMYWJlbCwgbm9kZUxhYmVsVHJpbSwgbm9kZUxhYmVsVHJpbU1vZGUsIG5vZGVMYWJlbFRyaW1MZW5ndGgsIG5vZGVTdWJMYWJlbCwgbm9kZVN1YkxhYmVsVHJpbSwgbm9kZVN1YkxhYmVsVHJpbU1vZGUsIG5vZGVTdWJMYWJlbFRyaW1MZW5ndGgsIG5vZGVTaWRlTGFiZWxzLCBub2RlQm90dG9tSWNvbiwgbm9kZURpc2FibGVkLCBub2RlRmlsbCwgbm9kZVN0cm9rZSwgbm9kZVNvcnQsIG5vZGVFbnRlclBvc2l0aW9uLCBub2RlRW50ZXJTY2FsZSwgbm9kZUV4aXRQb3NpdGlvbiwgbm9kZUV4aXRTY2FsZSwgbm9kZUVudGVyQ3VzdG9tUmVuZGVyRnVuY3Rpb24sIG5vZGVVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZVBhcnRpYWxVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZUV4aXRDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZU9uWm9vbUN1c3RvbVJlbmRlckZ1bmN0aW9uLCBub2RlU2VsZWN0aW9uSGlnaGxpZ2h0TW9kZSwgc2VsZWN0ZWROb2RlSWQsIHNlbGVjdGVkTm9kZUlkcywgcGFuZWxzLCBvbk5vZGVEcmFnU3RhcnQsIG9uTm9kZURyYWcsIG9uTm9kZURyYWdFbmQsIG9uWm9vbSwgb25ab29tU3RhcnQsIG9uWm9vbUVuZCwgb25MYXlvdXRDYWxjdWxhdGVkLCBvbk5vZGVTZWxlY3Rpb25CcnVzaCwgb25Ob2RlU2VsZWN0aW9uRHJhZywgb25SZW5kZXJDb21wbGV0ZSwgc2hvdWxkRGF0YVVwZGF0ZSB9ID0gdGhpc1xuICAgIGNvbnN0IGNvbmZpZyA9IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgem9vbVNjYWxlRXh0ZW50LCBkaXNhYmxlWm9vbSwgem9vbUV2ZW50RmlsdGVyLCBkaXNhYmxlRHJhZywgZGlzYWJsZUJydXNoLCB6b29tVGhyb3R0bGVkVXBkYXRlTm9kZVRocmVzaG9sZCwgbGF5b3V0VHlwZSwgbGF5b3V0QXV0b2ZpdCwgbGF5b3V0QXV0b2ZpdFRvbGVyYW5jZSwgbGF5b3V0Tm9uQ29ubmVjdGVkQXNpZGUsIGxheW91dE5vZGVHcm91cCwgbGF5b3V0R3JvdXBPcmRlciwgbGF5b3V0UGFyYWxsZWxOb2Rlc1BlckNvbHVtbiwgbGF5b3V0UGFyYWxsZWxOb2RlU3ViR3JvdXAsIGxheW91dFBhcmFsbGVsU3ViR3JvdXBzUGVyUm93LCBsYXlvdXRQYXJhbGxlbEdyb3VwU3BhY2luZywgbGF5b3V0UGFyYWxsZWxTb3J0Q29ubmVjdGlvbnNCeUdyb3VwLCBmb3JjZUxheW91dFNldHRpbmdzLCBkYWdyZUxheW91dFNldHRpbmdzLCBsYXlvdXRFbGtTZXR0aW5ncywgbGF5b3V0RWxrTm9kZUdyb3VwcywgbGF5b3V0RWxrR2V0Tm9kZVNoYXBlLCBsaW5rV2lkdGgsIGxpbmtTdHlsZSwgbGlua0JhbmRXaWR0aCwgbGlua0Fycm93LCBsaW5rU3Ryb2tlLCBsaW5rRGlzYWJsZWQsIGxpbmtGbG93LCBsaW5rRmxvd0FuaW1EdXJhdGlvbiwgbGlua0Zsb3dQYXJ0aWNsZVNpemUsIGxpbmtMYWJlbCwgbGlua0xhYmVsU2hpZnRGcm9tQ2VudGVyLCBsaW5rTmVpZ2hib3JTcGFjaW5nLCBsaW5rQ3VydmF0dXJlLCBsaW5rSGlnaGxpZ2h0T25Ib3ZlciwgbGlua1NvdXJjZVBvaW50T2Zmc2V0LCBsaW5rVGFyZ2V0UG9pbnRPZmZzZXQsIHNlbGVjdGVkTGlua0lkLCBub2RlU2l6ZSwgbm9kZVN0cm9rZVdpZHRoLCBub2RlU2hhcGUsIG5vZGVHYXVnZVZhbHVlLCBub2RlR2F1Z2VGaWxsLCBub2RlR2F1Z2VBbmltRHVyYXRpb24sIG5vZGVJY29uLCBub2RlSWNvblNpemUsIG5vZGVMYWJlbCwgbm9kZUxhYmVsVHJpbSwgbm9kZUxhYmVsVHJpbU1vZGUsIG5vZGVMYWJlbFRyaW1MZW5ndGgsIG5vZGVTdWJMYWJlbCwgbm9kZVN1YkxhYmVsVHJpbSwgbm9kZVN1YkxhYmVsVHJpbU1vZGUsIG5vZGVTdWJMYWJlbFRyaW1MZW5ndGgsIG5vZGVTaWRlTGFiZWxzLCBub2RlQm90dG9tSWNvbiwgbm9kZURpc2FibGVkLCBub2RlRmlsbCwgbm9kZVN0cm9rZSwgbm9kZVNvcnQsIG5vZGVFbnRlclBvc2l0aW9uLCBub2RlRW50ZXJTY2FsZSwgbm9kZUV4aXRQb3NpdGlvbiwgbm9kZUV4aXRTY2FsZSwgbm9kZUVudGVyQ3VzdG9tUmVuZGVyRnVuY3Rpb24sIG5vZGVVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZVBhcnRpYWxVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZUV4aXRDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZU9uWm9vbUN1c3RvbVJlbmRlckZ1bmN0aW9uLCBub2RlU2VsZWN0aW9uSGlnaGxpZ2h0TW9kZSwgc2VsZWN0ZWROb2RlSWQsIHNlbGVjdGVkTm9kZUlkcywgcGFuZWxzLCBvbk5vZGVEcmFnU3RhcnQsIG9uTm9kZURyYWcsIG9uTm9kZURyYWdFbmQsIG9uWm9vbSwgb25ab29tU3RhcnQsIG9uWm9vbUVuZCwgb25MYXlvdXRDYWxjdWxhdGVkLCBvbk5vZGVTZWxlY3Rpb25CcnVzaCwgb25Ob2RlU2VsZWN0aW9uRHJhZywgb25SZW5kZXJDb21wbGV0ZSwgc2hvdWxkRGF0YVVwZGF0ZSB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykgYXMgKGtleW9mIEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+KVtdXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7IGlmIChjb25maWdba2V5XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgY29uZmlnW2tleV0gfSlcblxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuIl19
|