@vizzly/dashboard 0.14.4-dev-8252b10a001b6d371cf542597333bfa8f0f1ed5a → 0.14.4-dev-28ace990f8935dcd353f0b09527a2a1b32940e13
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/dist/charts/src/v2/components/Axis/AxisBottom.d.ts +16 -0
- package/dist/charts/src/v2/components/Axis/AxisLeft.d.ts +14 -0
- package/dist/charts/src/v2/components/Axis/shared.d.ts +2 -0
- package/dist/charts/src/v2/components/ChartWrapper/ChartWrapper.d.ts +9 -0
- package/dist/charts/src/v2/components/GoalLine/GoalLines.d.ts +11 -0
- package/dist/charts/src/v2/components/GridRows/GridRows.d.ts +10 -0
- package/dist/charts/src/v2/components/RadarChart/Grid.d.ts +3 -0
- package/dist/charts/src/v2/components/RadarChart/MiddleLine.d.ts +3 -0
- package/dist/charts/src/v2/components/RadarChart/Polygons.d.ts +3 -0
- package/dist/charts/src/v2/components/RadarChart/RadarChart.d.ts +3 -0
- package/dist/charts/src/v2/components/RadarChart/index.d.ts +1 -0
- package/dist/charts/src/v2/components/RadarChart/types.d.ts +33 -0
- package/dist/charts/src/v2/index.d.ts +1 -0
- package/dist/charts/src/v2/utils/buildMargin.d.ts +2 -1
- package/dist/dashboard.cjs.development.js +311 -322
- package/dist/dashboard.cjs.production.min.js +1 -1
- package/dist/dashboard.esm.js +312 -320
- package/dist/shared-logic/src/BarChartV2/types.d.ts +3 -15
- package/dist/shared-logic/src/ChartsV2/types.d.ts +16 -0
- package/dist/shared-logic/src/LineChartV2/types.d.ts +3 -15
- package/dist/shared-logic/src/RadarChart/types.d.ts +60 -0
- package/package.json +1 -1
|
@@ -57,12 +57,13 @@ var windowSize = require('@react-hook/window-size');
|
|
|
57
57
|
var copy = _interopDefault(require('copy-to-clipboard'));
|
|
58
58
|
var html2canvas = _interopDefault(require('html2canvas'));
|
|
59
59
|
var jsPDF = _interopDefault(require('jspdf'));
|
|
60
|
-
var text$3 = require('@visx/text');
|
|
61
|
-
var axis = require('@visx/axis');
|
|
62
|
-
var grid = require('@visx/grid');
|
|
63
60
|
var clipPath = require('@visx/clip-path');
|
|
64
61
|
var event = require('@visx/event');
|
|
65
62
|
var d3Array = require('@visx/vendor/d3-array');
|
|
63
|
+
var axis = require('@visx/axis');
|
|
64
|
+
var text$3 = require('@visx/text');
|
|
65
|
+
var grid = require('@visx/grid');
|
|
66
|
+
require('@visx/point');
|
|
66
67
|
var WaterfallChart$4 = require('./charts/src/v2/components/WaterfallChart');
|
|
67
68
|
var VisibilitySensor = _interopDefault(require('react-visibility-sensor'));
|
|
68
69
|
var ExcelJS = _interopDefault(require('exceljs'));
|
|
@@ -40947,72 +40948,6 @@ var Legend$1 = function Legend(_ref) {
|
|
|
40947
40948
|
});
|
|
40948
40949
|
};
|
|
40949
40950
|
|
|
40950
|
-
var GoalLine = function GoalLine(_ref) {
|
|
40951
|
-
var goalLine = _ref.goalLine,
|
|
40952
|
-
innerWidth = _ref.innerWidth,
|
|
40953
|
-
y = _ref.y,
|
|
40954
|
-
margin = _ref.margin;
|
|
40955
|
-
var textRef = React.useRef(null);
|
|
40956
|
-
var _useState = React.useState(0),
|
|
40957
|
-
labelWidth = _useState[0],
|
|
40958
|
-
setLabelWidth = _useState[1];
|
|
40959
|
-
React.useEffect(function () {
|
|
40960
|
-
if (textRef.current) {
|
|
40961
|
-
var bbox = textRef.current.getBBox();
|
|
40962
|
-
setLabelWidth(bbox.width + 16);
|
|
40963
|
-
}
|
|
40964
|
-
}, [goalLine.formattedValue]);
|
|
40965
|
-
var height = 16;
|
|
40966
|
-
var triangleWidth = 8;
|
|
40967
|
-
return jsxRuntime.jsxs("g", {
|
|
40968
|
-
style: {
|
|
40969
|
-
position: 'relative'
|
|
40970
|
-
},
|
|
40971
|
-
children: [jsxRuntime.jsx(shape.Line, {
|
|
40972
|
-
from: {
|
|
40973
|
-
x: margin.left,
|
|
40974
|
-
y: margin.top + y
|
|
40975
|
-
},
|
|
40976
|
-
to: {
|
|
40977
|
-
x: margin.left + innerWidth,
|
|
40978
|
-
y: margin.top + y
|
|
40979
|
-
},
|
|
40980
|
-
stroke: goalLine.color,
|
|
40981
|
-
strokeDasharray: goalLine.strokeStyle == 'dashed' ? goalLine.strokeWidth * 2.5 + "," + goalLine.strokeWidth * 2.5 : undefined,
|
|
40982
|
-
strokeWidth: goalLine.strokeWidth,
|
|
40983
|
-
strokeLinecap: "round",
|
|
40984
|
-
shapeRendering: "smooth"
|
|
40985
|
-
}), jsxRuntime.jsxs("g", {
|
|
40986
|
-
transform: "translate(" + (margin.left + innerWidth - labelWidth) + "," + (y + margin.top + height / 2) + ")",
|
|
40987
|
-
children: [jsxRuntime.jsx("path", {
|
|
40988
|
-
d: "M 0,0\n l " + -triangleWidth + "," + -height / 2 + " \n l " + triangleWidth + "," + -height / 2 + " \n h " + labelWidth + " \n a 3,3 0 0 1 3,3 \n v " + (height - 6) + " \n a 3,3 0 0 1 -3,3 \n h " + -labelWidth + " z",
|
|
40989
|
-
fill: goalLine.color
|
|
40990
|
-
}), jsxRuntime.jsx("text", {
|
|
40991
|
-
ref: textRef,
|
|
40992
|
-
x: labelWidth / 2,
|
|
40993
|
-
y: -1,
|
|
40994
|
-
dy: -4,
|
|
40995
|
-
textAnchor: "middle",
|
|
40996
|
-
fontFamily: "Arial, sans-serif",
|
|
40997
|
-
fontSize: 9,
|
|
40998
|
-
fill: '#fff',
|
|
40999
|
-
children: goalLine.formattedValue
|
|
41000
|
-
})]
|
|
41001
|
-
})]
|
|
41002
|
-
});
|
|
41003
|
-
};
|
|
41004
|
-
|
|
41005
|
-
/*
|
|
41006
|
-
const strokeWidth = 2;
|
|
41007
|
-
const height = 16;
|
|
41008
|
-
const triangleWidth = 8;
|
|
41009
|
-
|
|
41010
|
-
|
|
41011
|
-
|
|
41012
|
-
|
|
41013
|
-
|
|
41014
|
-
*/
|
|
41015
|
-
|
|
41016
40951
|
var ASSUMED_AVERAGE_CHAR_WIDTH = 8.8;
|
|
41017
40952
|
function calculateWordWidth(word, avgCharWidth) {
|
|
41018
40953
|
if (avgCharWidth === void 0) {
|
|
@@ -41103,25 +41038,250 @@ function useFlattenedData(xScaleKey, xScaleDataType, chart) {
|
|
|
41103
41038
|
}, [chart.data, xScaleKey, xScaleDataType, chart.y.keys]);
|
|
41104
41039
|
}
|
|
41105
41040
|
|
|
41106
|
-
var
|
|
41107
|
-
|
|
41041
|
+
var GoalLine = function GoalLine(_ref) {
|
|
41042
|
+
var goalLine = _ref.goalLine,
|
|
41043
|
+
innerWidth = _ref.innerWidth,
|
|
41044
|
+
y = _ref.y,
|
|
41045
|
+
margin = _ref.margin;
|
|
41046
|
+
var textRef = React.useRef(null);
|
|
41047
|
+
var _useState = React.useState(0),
|
|
41048
|
+
labelWidth = _useState[0],
|
|
41049
|
+
setLabelWidth = _useState[1];
|
|
41050
|
+
React.useEffect(function () {
|
|
41051
|
+
if (textRef.current) {
|
|
41052
|
+
var bbox = textRef.current.getBBox();
|
|
41053
|
+
setLabelWidth(bbox.width + 16);
|
|
41054
|
+
}
|
|
41055
|
+
}, [goalLine.formattedValue]);
|
|
41056
|
+
var height = 16;
|
|
41057
|
+
var triangleWidth = 8;
|
|
41058
|
+
return jsxRuntime.jsxs("g", {
|
|
41059
|
+
style: {
|
|
41060
|
+
position: 'relative'
|
|
41061
|
+
},
|
|
41062
|
+
children: [jsxRuntime.jsx(shape.Line, {
|
|
41063
|
+
from: {
|
|
41064
|
+
x: margin.left,
|
|
41065
|
+
y: margin.top + y
|
|
41066
|
+
},
|
|
41067
|
+
to: {
|
|
41068
|
+
x: margin.left + innerWidth,
|
|
41069
|
+
y: margin.top + y
|
|
41070
|
+
},
|
|
41071
|
+
stroke: goalLine.color,
|
|
41072
|
+
strokeDasharray: goalLine.strokeStyle == 'dashed' ? goalLine.strokeWidth * 2.5 + "," + goalLine.strokeWidth * 2.5 : undefined,
|
|
41073
|
+
strokeWidth: goalLine.strokeWidth,
|
|
41074
|
+
strokeLinecap: "round",
|
|
41075
|
+
shapeRendering: "smooth"
|
|
41076
|
+
}), jsxRuntime.jsxs("g", {
|
|
41077
|
+
transform: "translate(" + (margin.left + innerWidth - labelWidth) + "," + (y + margin.top + height / 2) + ")",
|
|
41078
|
+
children: [jsxRuntime.jsx("path", {
|
|
41079
|
+
d: "M 0,0\n l " + -triangleWidth + "," + -height / 2 + " \n l " + triangleWidth + "," + -height / 2 + " \n h " + labelWidth + " \n a 3,3 0 0 1 3,3 \n v " + (height - 6) + " \n a 3,3 0 0 1 -3,3 \n h " + -labelWidth + " z",
|
|
41080
|
+
fill: goalLine.color
|
|
41081
|
+
}), jsxRuntime.jsx("text", {
|
|
41082
|
+
ref: textRef,
|
|
41083
|
+
x: labelWidth / 2,
|
|
41084
|
+
y: -1,
|
|
41085
|
+
dy: -4,
|
|
41086
|
+
textAnchor: "middle",
|
|
41087
|
+
fontFamily: "Arial, sans-serif",
|
|
41088
|
+
fontSize: 9,
|
|
41089
|
+
fill: '#fff',
|
|
41090
|
+
children: goalLine.formattedValue
|
|
41091
|
+
})]
|
|
41092
|
+
})]
|
|
41093
|
+
});
|
|
41094
|
+
};
|
|
41095
|
+
|
|
41096
|
+
/*
|
|
41097
|
+
const strokeWidth = 2;
|
|
41098
|
+
const height = 16;
|
|
41099
|
+
const triangleWidth = 8;
|
|
41100
|
+
|
|
41101
|
+
|
|
41102
|
+
|
|
41103
|
+
|
|
41104
|
+
|
|
41105
|
+
*/
|
|
41106
|
+
|
|
41107
|
+
var shouldUpdate$1 = function shouldUpdate(previousProps, nextProps) {
|
|
41108
|
+
return JSON.stringify(previousProps) == JSON.stringify(nextProps);
|
|
41109
|
+
};
|
|
41110
|
+
var GoalLines = function GoalLines(_ref) {
|
|
41111
|
+
var goalLines = _ref.goalLines,
|
|
41112
|
+
margin = _ref.margin,
|
|
41113
|
+
y = _ref.y,
|
|
41114
|
+
width = _ref.width;
|
|
41115
|
+
return jsxRuntime.jsx(React.Fragment, {
|
|
41116
|
+
children: goalLines.map(function (goalLine) {
|
|
41117
|
+
return jsxRuntime.jsx(GoalLine, {
|
|
41118
|
+
innerWidth: width,
|
|
41119
|
+
y: y(goalLine.value),
|
|
41120
|
+
goalLine: goalLine,
|
|
41121
|
+
margin: margin
|
|
41122
|
+
}, goalLine.value);
|
|
41123
|
+
})
|
|
41124
|
+
});
|
|
41125
|
+
};
|
|
41126
|
+
var GoalLines$1 = /*#__PURE__*/React.memo(GoalLines, shouldUpdate$1);
|
|
41127
|
+
|
|
41108
41128
|
var AXIS_TITLE_STYLES = {
|
|
41109
41129
|
opacity: '0.75',
|
|
41110
41130
|
fontWeight: 'bold'
|
|
41111
41131
|
};
|
|
41112
41132
|
|
|
41113
|
-
|
|
41114
|
-
|
|
41115
|
-
|
|
41116
|
-
|
|
41117
|
-
|
|
41118
|
-
|
|
41119
|
-
|
|
41120
|
-
|
|
41121
|
-
|
|
41133
|
+
var _excluded$e = ["formattedValue"];
|
|
41134
|
+
var AxisBottom = function AxisBottom(_ref) {
|
|
41135
|
+
var _x$ticks;
|
|
41136
|
+
var x = _ref.x,
|
|
41137
|
+
margin = _ref.margin,
|
|
41138
|
+
themeCSS = _ref.themeCSS,
|
|
41139
|
+
show = _ref.show,
|
|
41140
|
+
removeStroke = _ref.removeStroke,
|
|
41141
|
+
xScaleDataType = _ref.xScaleDataType,
|
|
41142
|
+
xScale = _ref.xScale,
|
|
41143
|
+
height = _ref.height;
|
|
41144
|
+
var tickFormat = React.useCallback(function (value) {
|
|
41145
|
+
var tick = null;
|
|
41146
|
+
if (xScaleDataType === 'date_time' && value instanceof Date) {
|
|
41147
|
+
var matchingTickValue = x.ticks.find(function (tickValue) {
|
|
41148
|
+
return tickValue.scaleValue && new Date(tickValue.scaleValue).valueOf() === value.valueOf();
|
|
41149
|
+
});
|
|
41150
|
+
tick = matchingTickValue || null;
|
|
41151
|
+
} else {
|
|
41152
|
+
var _matchingTickValue = x.ticks.find(function (tickValue) {
|
|
41153
|
+
return tickValue.scaleValue === value;
|
|
41154
|
+
});
|
|
41155
|
+
tick = _matchingTickValue || null;
|
|
41156
|
+
}
|
|
41157
|
+
if (tick) {
|
|
41158
|
+
if (tick.formattedValue) {
|
|
41159
|
+
return tick.formattedValue;
|
|
41160
|
+
}
|
|
41161
|
+
return tick.value.toString();
|
|
41162
|
+
}
|
|
41163
|
+
return '';
|
|
41164
|
+
}, [x.ticks, xScaleDataType]);
|
|
41165
|
+
if (!show) return null;
|
|
41166
|
+
if (!xScale) return null;
|
|
41167
|
+
return jsxRuntime.jsx(axis.AxisBottom, {
|
|
41168
|
+
label: x.title || undefined,
|
|
41169
|
+
labelProps: {
|
|
41170
|
+
style: AXIS_TITLE_STYLES
|
|
41171
|
+
},
|
|
41172
|
+
labelOffset: margin.bottomTitleOffset,
|
|
41173
|
+
hideTicks: true,
|
|
41174
|
+
top: height,
|
|
41175
|
+
scale: xScale,
|
|
41176
|
+
tickFormat: tickFormat,
|
|
41177
|
+
tickValues: ((_x$ticks = x.ticks) == null ? void 0 : _x$ticks.length) > 0 ? x.ticks.map(function (tick) {
|
|
41178
|
+
return (tick == null ? void 0 : tick.scaleValue) !== null ? tick == null ? void 0 : tick.scaleValue : 0;
|
|
41179
|
+
}) : undefined,
|
|
41180
|
+
tickComponent: function tickComponent(_ref2) {
|
|
41181
|
+
var formattedValue = _ref2.formattedValue,
|
|
41182
|
+
tickProps = _objectWithoutPropertiesLoose(_ref2, _excluded$e);
|
|
41183
|
+
return jsxRuntime.jsx(text$3.Text, _extends({
|
|
41184
|
+
style: themeCSS.labels
|
|
41185
|
+
}, tickProps, {
|
|
41186
|
+
children: formattedValue
|
|
41187
|
+
}));
|
|
41188
|
+
},
|
|
41189
|
+
stroke: themeCSS.axis.stroke,
|
|
41190
|
+
strokeWidth: removeStroke ? 0 : 1
|
|
41191
|
+
});
|
|
41192
|
+
};
|
|
41193
|
+
|
|
41194
|
+
var _excluded$f = ["formattedValue"];
|
|
41195
|
+
var AxisLeft = function AxisLeft(_ref) {
|
|
41196
|
+
var show = _ref.show,
|
|
41197
|
+
y = _ref.y,
|
|
41198
|
+
margin = _ref.margin,
|
|
41199
|
+
themeCSS = _ref.themeCSS,
|
|
41200
|
+
yScale = _ref.yScale,
|
|
41201
|
+
ticks = _ref.ticks,
|
|
41202
|
+
stroke = _ref.stroke;
|
|
41203
|
+
var tickFormat = React.useCallback(function (value) {
|
|
41204
|
+
var item = y.ticks.filter(function (tick) {
|
|
41205
|
+
return tick.value === value;
|
|
41206
|
+
})[0];
|
|
41207
|
+
if (item) {
|
|
41208
|
+
if (item.formattedValue) {
|
|
41209
|
+
return item.formattedValue;
|
|
41210
|
+
} else {
|
|
41211
|
+
return item.value.toString();
|
|
41212
|
+
}
|
|
41213
|
+
} else {
|
|
41214
|
+
return '';
|
|
41215
|
+
}
|
|
41216
|
+
}, [y.ticks]);
|
|
41217
|
+
if (!show) return null;
|
|
41218
|
+
return jsxRuntime.jsx(axis.AxisLeft, {
|
|
41219
|
+
labelOffset: margin.leftTitleOffset,
|
|
41220
|
+
label: y.title || undefined,
|
|
41221
|
+
labelProps: {
|
|
41222
|
+
style: AXIS_TITLE_STYLES
|
|
41223
|
+
},
|
|
41224
|
+
hideTicks: true,
|
|
41225
|
+
left: 0,
|
|
41226
|
+
top: 0,
|
|
41227
|
+
scale: yScale,
|
|
41228
|
+
tickFormat: tickFormat,
|
|
41229
|
+
tickValues: ticks,
|
|
41230
|
+
tickComponent: function tickComponent(_ref2) {
|
|
41231
|
+
var formattedValue = _ref2.formattedValue,
|
|
41232
|
+
tickProps = _objectWithoutPropertiesLoose(_ref2, _excluded$f);
|
|
41233
|
+
return jsxRuntime.jsx(text$3.Text, _extends({
|
|
41234
|
+
width: 10,
|
|
41235
|
+
style: themeCSS.labels
|
|
41236
|
+
}, tickProps, {
|
|
41237
|
+
children: formattedValue
|
|
41238
|
+
}));
|
|
41239
|
+
},
|
|
41240
|
+
stroke: stroke != null ? stroke : 'transparent'
|
|
41241
|
+
});
|
|
41242
|
+
};
|
|
41243
|
+
|
|
41244
|
+
var GridRows = function GridRows(_ref) {
|
|
41245
|
+
var ticks = _ref.ticks,
|
|
41246
|
+
yScale = _ref.yScale,
|
|
41247
|
+
removeStroke = _ref.removeStroke,
|
|
41248
|
+
width = _ref.width,
|
|
41249
|
+
height = _ref.height,
|
|
41250
|
+
themeCSS = _ref.themeCSS;
|
|
41251
|
+
return jsxRuntime.jsx(grid.GridRows, {
|
|
41252
|
+
tickValues: ticks.length > 0 ? ticks : undefined,
|
|
41253
|
+
scale: yScale,
|
|
41254
|
+
width: width,
|
|
41255
|
+
height: height,
|
|
41256
|
+
pointerEvents: "none",
|
|
41257
|
+
strokeDasharray: "0.5 5",
|
|
41258
|
+
strokeWidth: removeStroke ? 0 : 2,
|
|
41259
|
+
lineStyle: {
|
|
41260
|
+
strokeLinecap: 'round',
|
|
41261
|
+
stroke: themeCSS.grid.stroke
|
|
41262
|
+
}
|
|
41263
|
+
});
|
|
41264
|
+
};
|
|
41265
|
+
|
|
41266
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__$7() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
41267
|
+
var ChartWrapper$1 = function ChartWrapper(props) {
|
|
41268
|
+
return jsxRuntime.jsx("svg", {
|
|
41269
|
+
width: props.width,
|
|
41270
|
+
height: props.height - (props.showLegend ? 40 : 0),
|
|
41271
|
+
onMouseMove: props.onMouseMove,
|
|
41272
|
+
onMouseLeave: props.onMouseLeave,
|
|
41273
|
+
className: /*#__PURE__*/css$1.css( {
|
|
41274
|
+
name: "fx4tbw-ChartWrapper",
|
|
41275
|
+
styles: "display:block;label:ChartWrapper;",
|
|
41276
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXJ0V3JhcHBlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0JpQiIsImZpbGUiOiJDaGFydFdyYXBwZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY3NzJztcblxuZXhwb3J0IGNvbnN0IENoYXJ0V3JhcHBlciA9IChwcm9wczoge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgc2hvd0xlZ2VuZDogYm9vbGVhbjtcbiAgb25Nb3VzZU1vdmU/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxTVkdTVkdFbGVtZW50PjtcbiAgb25Nb3VzZUxlYXZlPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8U1ZHU1ZHRWxlbWVudD47XG59KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgd2lkdGg9e3Byb3BzLndpZHRofVxuICAgICAgaGVpZ2h0PXtwcm9wcy5oZWlnaHQgLSAocHJvcHMuc2hvd0xlZ2VuZCA/IDQwIDogMCl9XG4gICAgICBvbk1vdXNlTW92ZT17cHJvcHMub25Nb3VzZU1vdmV9XG4gICAgICBvbk1vdXNlTGVhdmU9e3Byb3BzLm9uTW91c2VMZWF2ZX1cbiAgICAgIGNsYXNzTmFtZT17Y3NzKHsgZGlzcGxheTogJ2Jsb2NrJyB9KX1cbiAgICA+XG4gICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgPC9zdmc+XG4gICk7XG59O1xuIl19 */",
|
|
41277
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$7
|
|
41278
|
+
}),
|
|
41279
|
+
children: props.children
|
|
41280
|
+
});
|
|
41281
|
+
};
|
|
41122
41282
|
|
|
41123
41283
|
var LineChart$5 = function LineChart(_ref) {
|
|
41124
|
-
var _theme$axis
|
|
41284
|
+
var _theme$axis;
|
|
41125
41285
|
var chart = _ref.chart,
|
|
41126
41286
|
options = _ref.options,
|
|
41127
41287
|
theme = _ref.theme,
|
|
@@ -41191,21 +41351,6 @@ var LineChart$5 = function LineChart(_ref) {
|
|
|
41191
41351
|
});
|
|
41192
41352
|
}, [innerHeight, chart.y]);
|
|
41193
41353
|
var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart);
|
|
41194
|
-
var goalLines = React.useMemo(function () {
|
|
41195
|
-
return chart.goalLines.map(function (goalLine) {
|
|
41196
|
-
return jsxRuntime.jsx(GoalLine, {
|
|
41197
|
-
innerWidth: innerWidth,
|
|
41198
|
-
y: yScale(goalLine.value),
|
|
41199
|
-
goalLine: goalLine,
|
|
41200
|
-
margin: {
|
|
41201
|
-
top: margin.top,
|
|
41202
|
-
left: margin.left,
|
|
41203
|
-
right: margin.right,
|
|
41204
|
-
bottom: margin.bottom
|
|
41205
|
-
}
|
|
41206
|
-
}, goalLine.value);
|
|
41207
|
-
});
|
|
41208
|
-
}, [chart.goalLines, margin, innerWidth, yScale]);
|
|
41209
41354
|
var handleMouseMove = React.useCallback(function (event) {
|
|
41210
41355
|
if (!xKey || !xScaleKey || xScale === null) return;
|
|
41211
41356
|
var tooltipData = getTooltipData({
|
|
@@ -41232,112 +41377,39 @@ var LineChart$5 = function LineChart(_ref) {
|
|
|
41232
41377
|
return Number(tick.value);
|
|
41233
41378
|
});
|
|
41234
41379
|
return jsxRuntime.jsxs(React__default.Fragment, {
|
|
41235
|
-
children: [jsxRuntime.jsxs(
|
|
41380
|
+
children: [jsxRuntime.jsxs(ChartWrapper$1, {
|
|
41236
41381
|
width: width,
|
|
41237
|
-
height: height
|
|
41382
|
+
height: height,
|
|
41383
|
+
showLegend: options.showLegend,
|
|
41238
41384
|
onMouseMove: handleMouseMove,
|
|
41239
41385
|
onMouseLeave: handleMouseLeave,
|
|
41240
|
-
style: {
|
|
41241
|
-
display: 'block'
|
|
41242
|
-
},
|
|
41243
41386
|
children: [jsxRuntime.jsxs(group.Group, {
|
|
41244
41387
|
left: margin.left,
|
|
41245
41388
|
top: margin.top,
|
|
41246
|
-
children: [jsxRuntime.jsx(
|
|
41247
|
-
|
|
41248
|
-
|
|
41389
|
+
children: [jsxRuntime.jsx(GridRows, {
|
|
41390
|
+
ticks: yTickValues,
|
|
41391
|
+
yScale: yScale,
|
|
41249
41392
|
width: innerWidth,
|
|
41250
41393
|
height: innerHeight,
|
|
41251
|
-
|
|
41252
|
-
|
|
41253
|
-
|
|
41254
|
-
|
|
41255
|
-
|
|
41256
|
-
|
|
41257
|
-
|
|
41258
|
-
|
|
41259
|
-
|
|
41260
|
-
|
|
41261
|
-
|
|
41262
|
-
|
|
41263
|
-
|
|
41264
|
-
|
|
41265
|
-
|
|
41266
|
-
|
|
41267
|
-
|
|
41268
|
-
|
|
41269
|
-
|
|
41270
|
-
// if chart.x.scale.key !== chart.x.key, use tickValue.scaleValue NOT tickValuevalue
|
|
41271
|
-
var matchingTickValue = chart.x.ticks.find(function (tickValue) {
|
|
41272
|
-
return tickValue.scaleValue && new Date(tickValue.scaleValue).valueOf() === value.valueOf();
|
|
41273
|
-
});
|
|
41274
|
-
tick = matchingTickValue || null;
|
|
41275
|
-
} else {
|
|
41276
|
-
var _matchingTickValue = chart.x.ticks.find(function (tickValue) {
|
|
41277
|
-
return tickValue.scaleValue === value;
|
|
41278
|
-
});
|
|
41279
|
-
tick = _matchingTickValue || null;
|
|
41280
|
-
}
|
|
41281
|
-
if (tick) {
|
|
41282
|
-
if (tick.formattedValue) {
|
|
41283
|
-
return tick.formattedValue;
|
|
41284
|
-
} else {
|
|
41285
|
-
return tick.value.toString();
|
|
41286
|
-
}
|
|
41287
|
-
} else {
|
|
41288
|
-
return ''; // ?
|
|
41289
|
-
}
|
|
41290
|
-
},
|
|
41291
|
-
tickValues: chart.x.ticks.length > 0 ? chart.x.ticks.map(function (tick) {
|
|
41292
|
-
return tick.scaleValue !== null ? tick.scaleValue : 0;
|
|
41293
|
-
}) : undefined,
|
|
41294
|
-
tickComponent: function tickComponent(_ref2) {
|
|
41295
|
-
var formattedValue = _ref2.formattedValue,
|
|
41296
|
-
tickProps = _objectWithoutPropertiesLoose(_ref2, _excluded$e);
|
|
41297
|
-
return jsxRuntime.jsx(text$3.Text, _extends({
|
|
41298
|
-
style: themeCSS.labels
|
|
41299
|
-
}, tickProps, {
|
|
41300
|
-
children: formattedValue
|
|
41301
|
-
}));
|
|
41302
|
-
},
|
|
41303
|
-
stroke: themeCSS.axis.stroke,
|
|
41304
|
-
strokeWidth: options.removeStroke ? 0 : 1
|
|
41305
|
-
}), options.axis.showYAxisLabels && jsxRuntime.jsx(axis.AxisLeft, {
|
|
41306
|
-
labelOffset: margin.leftTitleOffset,
|
|
41307
|
-
label: chart.y.title || undefined,
|
|
41308
|
-
labelProps: {
|
|
41309
|
-
style: AXIS_TITLE_STYLES
|
|
41310
|
-
},
|
|
41311
|
-
hideTicks: true,
|
|
41312
|
-
left: 0,
|
|
41313
|
-
top: 0,
|
|
41314
|
-
scale: yScale,
|
|
41315
|
-
tickFormat: function tickFormat(value) {
|
|
41316
|
-
var item = chart.y.ticks.filter(function (tick) {
|
|
41317
|
-
return tick.value === value;
|
|
41318
|
-
})[0];
|
|
41319
|
-
if (item) {
|
|
41320
|
-
if (item.formattedValue) {
|
|
41321
|
-
return item.formattedValue;
|
|
41322
|
-
} else {
|
|
41323
|
-
return item.value.toString();
|
|
41324
|
-
}
|
|
41325
|
-
} else {
|
|
41326
|
-
return '';
|
|
41327
|
-
}
|
|
41328
|
-
},
|
|
41329
|
-
tickValues: yTickValues,
|
|
41330
|
-
tickComponent: function tickComponent(_ref3) {
|
|
41331
|
-
var formattedValue = _ref3.formattedValue,
|
|
41332
|
-
tickProps = _objectWithoutPropertiesLoose(_ref3, _excluded2$4);
|
|
41333
|
-
return jsxRuntime.jsx(text$3.Text, _extends({
|
|
41334
|
-
width: 10,
|
|
41335
|
-
style: themeCSS.labels
|
|
41336
|
-
}, tickProps, {
|
|
41337
|
-
children: formattedValue
|
|
41338
|
-
}));
|
|
41339
|
-
},
|
|
41340
|
-
stroke: (_theme$axis$stroke = theme == null || (_theme$axis = theme.axis) == null ? void 0 : _theme$axis.stroke) != null ? _theme$axis$stroke : 'transparent'
|
|
41394
|
+
removeStroke: options.removeStroke,
|
|
41395
|
+
themeCSS: themeCSS
|
|
41396
|
+
}), jsxRuntime.jsx(AxisBottom, {
|
|
41397
|
+
x: chart.x,
|
|
41398
|
+
margin: margin,
|
|
41399
|
+
themeCSS: themeCSS,
|
|
41400
|
+
show: options.axis.showXAxisLabels,
|
|
41401
|
+
removeStroke: options.removeStroke,
|
|
41402
|
+
xScaleDataType: xScaleDataType,
|
|
41403
|
+
xScale: xScale,
|
|
41404
|
+
height: innerHeight
|
|
41405
|
+
}), jsxRuntime.jsx(AxisLeft, {
|
|
41406
|
+
show: options.axis.showYAxisLabels,
|
|
41407
|
+
y: chart.y,
|
|
41408
|
+
margin: margin,
|
|
41409
|
+
themeCSS: themeCSS,
|
|
41410
|
+
yScale: yScale,
|
|
41411
|
+
ticks: yTickValues,
|
|
41412
|
+
stroke: theme == null || (_theme$axis = theme.axis) == null ? void 0 : _theme$axis.stroke
|
|
41341
41413
|
}), jsxRuntime.jsxs(group.Group, {
|
|
41342
41414
|
children: [chart.y.keys.map(function (yKey) {
|
|
41343
41415
|
var _chart$lines$filter$;
|
|
@@ -41467,7 +41539,14 @@ var LineChart$5 = function LineChart(_ref) {
|
|
|
41467
41539
|
return null;
|
|
41468
41540
|
}
|
|
41469
41541
|
})]
|
|
41470
|
-
}),
|
|
41542
|
+
}), jsxRuntime.jsx(GoalLines$1, {
|
|
41543
|
+
goalLines: chart.goalLines,
|
|
41544
|
+
y: function y(d) {
|
|
41545
|
+
return yScale(d);
|
|
41546
|
+
},
|
|
41547
|
+
margin: margin,
|
|
41548
|
+
width: innerWidth
|
|
41549
|
+
})]
|
|
41471
41550
|
}), options.showLegend && jsxRuntime.jsx(Legend$1, {
|
|
41472
41551
|
legendItems: chart.lines,
|
|
41473
41552
|
visibleYKeys: visibleYKeys,
|
|
@@ -41515,20 +41594,14 @@ function getBarFill(bars, conditionalFormattingRules, barKey, barValues) {
|
|
|
41515
41594
|
return fill;
|
|
41516
41595
|
}
|
|
41517
41596
|
|
|
41518
|
-
|
|
41519
|
-
_excluded2$5 = ["formattedValue"];
|
|
41520
|
-
function _EMOTION_STRINGIFIED_CSS_ERROR__$7() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
41521
|
-
var AXIS_TITLE_STYLES$1 = {
|
|
41522
|
-
opacity: '0.75',
|
|
41523
|
-
fontWeight: 'bold'
|
|
41524
|
-
};
|
|
41597
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__$8() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
41525
41598
|
var BAR_RADIUS = 2;
|
|
41526
41599
|
var PADDING = {
|
|
41527
41600
|
paddingOuter: 0.05,
|
|
41528
41601
|
paddingInner: 0.3
|
|
41529
41602
|
};
|
|
41530
41603
|
var BarChart$5 = function BarChart(_ref) {
|
|
41531
|
-
var
|
|
41604
|
+
var _theme$axis;
|
|
41532
41605
|
var chart = _ref.chart,
|
|
41533
41606
|
width = _ref.width,
|
|
41534
41607
|
height = _ref.height,
|
|
@@ -41601,21 +41674,6 @@ var BarChart$5 = function BarChart(_ref) {
|
|
|
41601
41674
|
return undefined;
|
|
41602
41675
|
}, [xScale, yScaleKeys, options.stacked, xScaleDataType]);
|
|
41603
41676
|
var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart);
|
|
41604
|
-
var goalLines = React.useMemo(function () {
|
|
41605
|
-
return chart.goalLines.map(function (goalLine) {
|
|
41606
|
-
return jsxRuntime.jsx(GoalLine, {
|
|
41607
|
-
innerWidth: innerWidth,
|
|
41608
|
-
y: yScale(goalLine.value),
|
|
41609
|
-
goalLine: goalLine,
|
|
41610
|
-
margin: {
|
|
41611
|
-
top: margin.top,
|
|
41612
|
-
left: margin.left,
|
|
41613
|
-
right: margin.right,
|
|
41614
|
-
bottom: margin.bottom
|
|
41615
|
-
}
|
|
41616
|
-
}, goalLine.value);
|
|
41617
|
-
});
|
|
41618
|
-
}, [chart.goalLines, margin, innerWidth, yScale]);
|
|
41619
41677
|
var handleMouseMove = React.useCallback(function (event) {
|
|
41620
41678
|
if (!xKey || !xScaleKey || xScale === null) return;
|
|
41621
41679
|
var tooltipData = getTooltipData({
|
|
@@ -41661,115 +41719,39 @@ var BarChart$5 = function BarChart(_ref) {
|
|
|
41661
41719
|
return Number(tick.value);
|
|
41662
41720
|
});
|
|
41663
41721
|
return jsxRuntime.jsxs(React.Fragment, {
|
|
41664
|
-
children: [jsxRuntime.jsxs(
|
|
41722
|
+
children: [jsxRuntime.jsxs(ChartWrapper$1, {
|
|
41665
41723
|
width: width,
|
|
41666
|
-
height: height
|
|
41724
|
+
height: height,
|
|
41667
41725
|
onMouseMove: handleMouseMove,
|
|
41668
41726
|
onMouseLeave: handleMouseLeave,
|
|
41669
|
-
|
|
41670
|
-
display: 'block'
|
|
41671
|
-
},
|
|
41727
|
+
showLegend: options.showLegend,
|
|
41672
41728
|
children: [jsxRuntime.jsxs(group.Group, {
|
|
41673
41729
|
left: margin.left,
|
|
41674
41730
|
top: margin.top,
|
|
41675
|
-
children: [jsxRuntime.jsx(
|
|
41676
|
-
|
|
41677
|
-
|
|
41731
|
+
children: [jsxRuntime.jsx(GridRows, {
|
|
41732
|
+
ticks: yTickValues,
|
|
41733
|
+
yScale: yScale,
|
|
41678
41734
|
width: innerWidth,
|
|
41679
41735
|
height: innerHeight,
|
|
41680
|
-
|
|
41681
|
-
|
|
41682
|
-
|
|
41683
|
-
|
|
41684
|
-
|
|
41685
|
-
|
|
41686
|
-
|
|
41687
|
-
|
|
41688
|
-
|
|
41689
|
-
|
|
41690
|
-
|
|
41691
|
-
|
|
41692
|
-
|
|
41693
|
-
|
|
41694
|
-
|
|
41695
|
-
|
|
41696
|
-
,
|
|
41697
|
-
|
|
41698
|
-
|
|
41699
|
-
var tick = null;
|
|
41700
|
-
if (xScaleDataType === 'date_time' && value instanceof Date) {
|
|
41701
|
-
// if chart.x.scale.key !== chart.x.key, use tickValue.scaleValue NOT tickValuevalue
|
|
41702
|
-
var matchingTickValue = chart.x.ticks.find(function (tickValue) {
|
|
41703
|
-
return tickValue.scaleValue && new Date(tickValue.scaleValue).valueOf() === value.valueOf();
|
|
41704
|
-
});
|
|
41705
|
-
tick = matchingTickValue || null;
|
|
41706
|
-
} else {
|
|
41707
|
-
var _chart$x;
|
|
41708
|
-
var _matchingTickValue = chart == null || (_chart$x = chart.x) == null ? void 0 : _chart$x.ticks.find(function (tickValue) {
|
|
41709
|
-
return ((tickValue == null ? void 0 : tickValue.scaleValue) !== null ? tickValue == null ? void 0 : tickValue.scaleValue : 0) === value;
|
|
41710
|
-
});
|
|
41711
|
-
tick = _matchingTickValue || null;
|
|
41712
|
-
}
|
|
41713
|
-
if (tick) {
|
|
41714
|
-
if (tick.formattedValue) {
|
|
41715
|
-
return tick.formattedValue;
|
|
41716
|
-
} else {
|
|
41717
|
-
return tick.value.toString();
|
|
41718
|
-
}
|
|
41719
|
-
} else {
|
|
41720
|
-
return ''; // ?
|
|
41721
|
-
}
|
|
41722
|
-
},
|
|
41723
|
-
tickValues: (chart == null || (_chart$x2 = chart.x) == null || (_chart$x2 = _chart$x2.ticks) == null ? void 0 : _chart$x2.length) > 0 ? chart.x.ticks.map(function (tick) {
|
|
41724
|
-
return (tick == null ? void 0 : tick.scaleValue) !== null ? tick == null ? void 0 : tick.scaleValue : 0;
|
|
41725
|
-
}) : undefined,
|
|
41726
|
-
tickComponent: function tickComponent(_ref2) {
|
|
41727
|
-
var formattedValue = _ref2.formattedValue,
|
|
41728
|
-
tickProps = _objectWithoutPropertiesLoose(_ref2, _excluded$f);
|
|
41729
|
-
return jsxRuntime.jsx(text$3.Text, _extends({
|
|
41730
|
-
style: themeCSS.labels
|
|
41731
|
-
}, tickProps, {
|
|
41732
|
-
children: formattedValue
|
|
41733
|
-
}));
|
|
41734
|
-
},
|
|
41735
|
-
stroke: themeCSS.axis.stroke,
|
|
41736
|
-
strokeWidth: options.removeStroke ? 0 : 1
|
|
41737
|
-
}), options.axis.showYAxisLabels && jsxRuntime.jsx(axis.AxisLeft, {
|
|
41738
|
-
labelOffset: margin.leftTitleOffset,
|
|
41739
|
-
label: chart.y.title || undefined,
|
|
41740
|
-
labelProps: {
|
|
41741
|
-
style: AXIS_TITLE_STYLES$1
|
|
41742
|
-
},
|
|
41743
|
-
hideTicks: true,
|
|
41744
|
-
left: 0,
|
|
41745
|
-
top: 0,
|
|
41746
|
-
scale: yScale,
|
|
41747
|
-
tickFormat: function tickFormat(value) {
|
|
41748
|
-
var item = chart.y.ticks.filter(function (tick) {
|
|
41749
|
-
return tick.value === value;
|
|
41750
|
-
})[0];
|
|
41751
|
-
if (item) {
|
|
41752
|
-
if (item.formattedValue) {
|
|
41753
|
-
return item.formattedValue;
|
|
41754
|
-
} else {
|
|
41755
|
-
return item.value.toString();
|
|
41756
|
-
}
|
|
41757
|
-
} else {
|
|
41758
|
-
return '';
|
|
41759
|
-
}
|
|
41760
|
-
},
|
|
41761
|
-
tickValues: yTickValues,
|
|
41762
|
-
tickComponent: function tickComponent(_ref3) {
|
|
41763
|
-
var formattedValue = _ref3.formattedValue,
|
|
41764
|
-
tickProps = _objectWithoutPropertiesLoose(_ref3, _excluded2$5);
|
|
41765
|
-
return jsxRuntime.jsx(text$3.Text, _extends({
|
|
41766
|
-
width: 10,
|
|
41767
|
-
style: themeCSS.labels
|
|
41768
|
-
}, tickProps, {
|
|
41769
|
-
children: formattedValue
|
|
41770
|
-
}));
|
|
41771
|
-
},
|
|
41772
|
-
stroke: (_theme$axis$stroke = theme == null || (_theme$axis = theme.axis) == null ? void 0 : _theme$axis.stroke) != null ? _theme$axis$stroke : 'transparent'
|
|
41736
|
+
removeStroke: options.removeStroke,
|
|
41737
|
+
themeCSS: themeCSS
|
|
41738
|
+
}), jsxRuntime.jsx(AxisBottom, {
|
|
41739
|
+
x: chart.x,
|
|
41740
|
+
margin: margin,
|
|
41741
|
+
themeCSS: themeCSS,
|
|
41742
|
+
show: options.axis.showXAxisLabels,
|
|
41743
|
+
removeStroke: options.removeStroke,
|
|
41744
|
+
xScaleDataType: xScaleDataType,
|
|
41745
|
+
xScale: xScale,
|
|
41746
|
+
height: innerHeight
|
|
41747
|
+
}), jsxRuntime.jsx(AxisLeft, {
|
|
41748
|
+
show: options.axis.showYAxisLabels,
|
|
41749
|
+
y: chart.y,
|
|
41750
|
+
margin: margin,
|
|
41751
|
+
themeCSS: themeCSS,
|
|
41752
|
+
yScale: yScale,
|
|
41753
|
+
ticks: yTickValues,
|
|
41754
|
+
stroke: theme == null || (_theme$axis = theme.axis) == null ? void 0 : _theme$axis.stroke
|
|
41773
41755
|
}), jsxRuntime.jsxs(group.Group, {
|
|
41774
41756
|
children: [!options.stacked && jsxRuntime.jsx(shape.BarGroup, {
|
|
41775
41757
|
data: dataFlattened,
|
|
@@ -41869,7 +41851,14 @@ var BarChart$5 = function BarChart(_ref) {
|
|
|
41869
41851
|
pointerEvents: "none",
|
|
41870
41852
|
opacity: 0.8
|
|
41871
41853
|
})
|
|
41872
|
-
}),
|
|
41854
|
+
}), jsxRuntime.jsx(GoalLines$1, {
|
|
41855
|
+
goalLines: chart.goalLines,
|
|
41856
|
+
y: function y(d) {
|
|
41857
|
+
return yScale(d);
|
|
41858
|
+
},
|
|
41859
|
+
margin: margin,
|
|
41860
|
+
width: innerWidth
|
|
41861
|
+
})]
|
|
41873
41862
|
}), options.showLegend && jsxRuntime.jsx(Legend$1, {
|
|
41874
41863
|
legendItems: chart.bars,
|
|
41875
41864
|
visibleYKeys: chart.bars.map(function (legendItem) {
|
|
@@ -41917,8 +41906,8 @@ var Bar = function Bar(props) {
|
|
|
41917
41906
|
className: props.enableHover ? /*#__PURE__*/css$1.css( {
|
|
41918
41907
|
name: "4nk3o1-Bar",
|
|
41919
41908
|
styles: "cursor:pointer;label:Bar;",
|
|
41920
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhckNoYXJ0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4ZHFDIiwiZmlsZSI6IkJhckNoYXJ0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhckNoYXJ0UmVwcmVzZW50YXRpb24gfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0JhckNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQ2hhcnRUaGVtZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSAnQHZpc3gvZ3JvdXAnO1xuaW1wb3J0IHsgZ2V0Q2hhcnRUaGVtZUNTUywgZ2V0VG9vbHRpcERhdGEgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBBeGlzTGVmdCwgQXhpc0JvdHRvbSB9IGZyb20gJ0B2aXN4L2F4aXMnO1xuaW1wb3J0IHsgR3JpZFJvd3MgfSBmcm9tICdAdmlzeC9ncmlkJztcbmltcG9ydCB7IEZyYWdtZW50LCB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnLi4vVG9vbHRpcCc7XG5pbXBvcnQgeyB1c2VUb29sdGlwIH0gZnJvbSAnQHZpc3gvdG9vbHRpcCc7XG5pbXBvcnQgeyBMZWdlbmQgfSBmcm9tICcuLi9MZWdlbmQnO1xuaW1wb3J0IHsgR29hbExpbmUgfSBmcm9tICcuLi9Hb2FsTGluZSc7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnQHZpc3gvdGV4dCc7XG5pbXBvcnQgeyBCYXJHcm91cCwgQmFyU3RhY2ssIExpbmUgfSBmcm9tICdAdmlzeC9zaGFwZSc7XG5pbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvRmllbGQvdHlwZXMnO1xuaW1wb3J0IHsgc2NhbGVMaW5lYXIsIHNjYWxlQmFuZCB9IGZyb20gJ0B2aXN4L3NjYWxlJztcbmltcG9ydCB7IGdldEJhckZpbGwgfSBmcm9tICcuL2dldEJhckZpbGwnO1xuaW1wb3J0IHsgYnVpbGRNYXJnaW4gfSBmcm9tICcuLi8uLi91dGlscy9idWlsZE1hcmdpbic7XG5pbXBvcnQgeyBDaGFydE9uVmlld0NsaWNrLCBEYXRhSXRlbSwgVGljayB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgbGlnaHRlbkNvbG9yIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbG9yLmZ1bmN0aW9ucyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jc3MnO1xuaW1wb3J0IHsgQmFyR3JvdXBCYXIsIEJhckdyb3VwIGFzIEJhckdyb3VwVHlwZSB9IGZyb20gJ0B2aXN4L3NoYXBlL2xpYi90eXBlcyc7XG5pbXBvcnQgeyB1c2VGbGF0dGVuZWREYXRhIH0gZnJvbSAnLi4vaG9va3MvdXNlRmxhdHRlbmVkRGF0YSc7XG5cbi8vIE5lZWQgdG8gbG9vayBhdCB1cGRhdGluZyBCYXJDaGFydCB0byB1c2UgdGhpcyB0eXBlIG1ldGhvZCBvZiByZW5kZXJpbmcgLSBodHRwczovL2NvZGVzYW5kYm94LmlvL3Avc2FuZGJveC92aXN4LWJhci1jaGFydC1qOXNtcGo/ZmlsZT0lMkZFeGFtcGxlLnRzeFxuLy8gQ3VycmVudGx5IGl0J3MgdXNpbmcgU3RhY2tlZCBDaGFydCB3aGljaCBpc24ndCB0ZWNobmljYWxseSBjb3JyZWN0XG5cbmNvbnN0IEFYSVNfVElUTEVfU1RZTEVTOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0geyBvcGFjaXR5OiAnMC43NScsIGZvbnRXZWlnaHQ6ICdib2xkJyB9O1xuXG5leHBvcnQgdHlwZSBCYXJDaGFydFByb3BzID0ge1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgdGhlbWU/OiBDaGFydFRoZW1lO1xuICBjaGFydDogQmFyQ2hhcnRSZXByZXNlbnRhdGlvbjtcbiAgb3B0aW9uczoge1xuICAgIHN0YWNrZWQ6IGJvb2xlYW47XG4gICAgc2hvd1JvdW5kZWRUb3RhbDogYm9vbGVhbjtcbiAgICBzaG93TGVnZW5kOiBib29sZWFuO1xuICAgIHJlbW92ZVN0cm9rZTogYm9vbGVhbjtcbiAgICBheGlzOiB7XG4gICAgICBzaG93WEF4aXNMYWJlbHM6IGJvb2xlYW47XG4gICAgICBzaG93WUF4aXNMYWJlbHM6IGJvb2xlYW47XG4gICAgfTtcbiAgfTtcbiAgb25DbGljazogKHBhcmFtczogQ2hhcnRPblZpZXdDbGljaykgPT4gdm9pZDtcbiAgZW5hYmxlSG92ZXI/OiBib29sZWFuO1xufTtcblxuY29uc3QgQkFSX1JBRElVUyA9IDI7XG5cbmNvbnN0IFBBRERJTkcgPSB7XG4gIHBhZGRpbmdPdXRlcjogMC4wNSxcbiAgcGFkZGluZ0lubmVyOiAwLjMsXG59O1xuXG5leHBvcnQgY29uc3QgQmFyQ2hhcnQgPSAoeyBjaGFydCwgd2lkdGgsIGhlaWdodCwgb3B0aW9ucywgdGhlbWUsIG9uQ2xpY2ssIGVuYWJsZUhvdmVyIH06IEJhckNoYXJ0UHJvcHMpID0+IHtcbiAgY29uc3QgeyB0b29sdGlwT3BlbiwgdG9vbHRpcExlZnQgPSAwLCB0b29sdGlwVG9wID0gMCwgdG9vbHRpcERhdGEsIGhpZGVUb29sdGlwLCBzaG93VG9vbHRpcCB9ID0gdXNlVG9vbHRpcDx7XG4gICAgW2tleUlkOiBzdHJpbmddOiBEYXRhSXRlbTtcbiAgfSB8IG51bGw+KCk7XG5cbiAgY29uc3QgbWFyZ2luID0gYnVpbGRNYXJnaW4oY2hhcnQueS50aWNrcywgb3B0aW9ucy5heGlzLnNob3dZQXhpc0xhYmVscywgY2hhcnQueS50aXRsZSAhPSBudWxsLCBjaGFydC54LnRpdGxlICE9IG51bGwpO1xuXG4gIC8vIGNvbnN0IFt2aXNpYmxlWUtleXMsIHNldFZpc2libGVZS2V5c10gPSB1c2VTdGF0ZShjaGFydC5iYXJzLm1hcCgobGVnZW5kSXRlbSkgPT4gbGVnZW5kSXRlbS55S2V5KSk7XG5cbiAgY29uc3QgaW5uZXJXaWR0aCA9IHdpZHRoIC0gbWFyZ2luLmxlZnQgLSBtYXJnaW4ucmlnaHQ7XG4gIGNvbnN0IGlubmVySGVpZ2h0ID0gaGVpZ2h0IC0gbWFyZ2luLnRvcCAtIG1hcmdpbi5ib3R0b20gLSAob3B0aW9ucy5zaG93TGVnZW5kID8gNDAgOiAwKTtcbiAgY29uc3QgeEtleSA9IGNoYXJ0Lngua2V5O1xuICBjb25zdCB4U2NhbGVLZXkgPSBjaGFydC54LnNjYWxlLmtleTtcbiAgY29uc3QgeVNjYWxlS2V5cyA9IGNoYXJ0Lnkua2V5cztcbiAgY29uc3QgeFNjYWxlRGF0YVR5cGU6IERhdGFUeXBlID0gY2hhcnQueC5zY2FsZS5kYXRhVHlwZTtcblxuICBjb25zdCB4U2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoeFNjYWxlRGF0YVR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gc2NhbGVCYW5kPHN0cmluZz4oe1xuICAgICAgICByYW5nZTogWzAsIGlubmVyV2lkdGhdLFxuICAgICAgICBkb21haW46IHhTY2FsZUtleVxuICAgICAgICAgID8gWy4uLmNoYXJ0LmRhdGEubWFwKGQgPT4gKGRbeFNjYWxlS2V5XSAmJiBkW3hTY2FsZUtleV0udmFsdWUgIT09IG51bGwgPyBTdHJpbmcoZFt4U2NhbGVLZXldLnZhbHVlKSA6ICcnKSldXG4gICAgICAgICAgOiBbXSxcbiAgICAgICAgLi4uUEFERElORyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh4U2NhbGVEYXRhVHlwZSA9PT0gJ2RhdGVfdGltZScgJiYgeFNjYWxlS2V5KSB7XG4gICAgICByZXR1cm4gc2NhbGVCYW5kPERhdGU+KHtcbiAgICAgICAgcmFuZ2U6IFswLCBpbm5lcldpZHRoXSxcbiAgICAgICAgZG9tYWluOiBjaGFydC5kYXRhLm1hcChkID0+IG5ldyBEYXRlKGRbeFNjYWxlS2V5XS52YWx1ZSBhcyBzdHJpbmcpKSxcbiAgICAgICAgLi4uUEFERElORyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh4U2NhbGVEYXRhVHlwZSA9PT0gJ251bWJlcicgJiYgeFNjYWxlS2V5KSB7XG4gICAgICByZXR1cm4gc2NhbGVCYW5kPG51bWJlcj4oe1xuICAgICAgICByYW5nZTogWzAsIGlubmVyV2lkdGhdLFxuICAgICAgICBkb21haW46IGNoYXJ0LmRhdGEubWFwKGQgPT4gKGRbeFNjYWxlS2V5XSAmJiBkW3hTY2FsZUtleV0udmFsdWUgIT09IG51bGwgPyBOdW1iZXIoZFt4U2NhbGVLZXldLnZhbHVlKSA6IDApKSxcbiAgICAgICAgLi4uUEFERElORyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9LCBbaW5uZXJXaWR0aCwgY2hhcnQueCwgY2hhcnQuZGF0YV0pO1xuXG4gIGNvbnN0IHlTY2FsZSA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIHNjYWxlTGluZWFyPG51bWJlcj4oe1xuICAgICAgICByYW5nZTogW2lubmVySGVpZ2h0LCAwXSxcbiAgICAgICAgZG9tYWluOlxuICAgICAgICAgIGNoYXJ0Lnkuc2NhbGUub3JkZXJpbmcgPT09ICdhc2MnXG4gICAgICAgICAgICA/IFtjaGFydC55LnNjYWxlLm1pbiBhcyBudW1iZXIsIGNoYXJ0Lnkuc2NhbGUubWF4IGFzIG51bWJlcl1cbiAgICAgICAgICAgIDogW2NoYXJ0Lnkuc2NhbGUubWF4IGFzIG51bWJlciwgY2hhcnQueS5zY2FsZS5taW4gYXMgbnVtYmVyXSxcbiAgICAgICAgbmljZTogdHJ1ZSxcbiAgICAgICAgcm91bmQ6IHRydWUsXG4gICAgICB9KSxcbiAgICBbaW5uZXJIZWlnaHQsIGNoYXJ0LnldXG4gICk7XG5cbiAgY29uc3QgaW5uZXJYU2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIW9wdGlvbnMuc3RhY2tlZCAmJiB4U2NhbGUgJiYgJ2JhbmR3aWR0aCcgaW4geFNjYWxlKSB7XG4gICAgICByZXR1cm4gc2NhbGVCYW5kPHN0cmluZz4oe1xuICAgICAgICByYW5nZTogWzAsIHhTY2FsZT8uYmFuZHdpZHRoKCldLFxuICAgICAgICBkb21haW46IHlTY2FsZUtleXMsXG4gICAgICAgIHBhZGRpbmc6IDAuMSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0sIFt4U2NhbGUsIHlTY2FsZUtleXMsIG9wdGlvbnMuc3RhY2tlZCwgeFNjYWxlRGF0YVR5cGVdKTtcblxuICBjb25zdCBkYXRhRmxhdHRlbmVkID0gdXNlRmxhdHRlbmVkRGF0YTxCYXJDaGFydFJlcHJlc2VudGF0aW9uPih4U2NhbGVLZXksIHhTY2FsZURhdGFUeXBlLCBjaGFydCk7XG5cbiAgY29uc3QgZ29hbExpbmVzID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgY2hhcnQuZ29hbExpbmVzLm1hcChnb2FsTGluZSA9PiAoXG4gICAgICAgIDxHb2FsTGluZVxuICAgICAgICAgIGtleT17Z29hbExpbmUudmFsdWV9XG4gICAgICAgICAgaW5uZXJXaWR0aD17aW5uZXJXaWR0aH1cbiAgICAgICAgICB5PXt5U2NhbGUoZ29hbExpbmUudmFsdWUpfVxuICAgICAgICAgIGdvYWxMaW5lPXtnb2FsTGluZX1cbiAgICAgICAgICBtYXJnaW49e3tcbiAgICAgICAgICAgIHRvcDogbWFyZ2luLnRvcCxcbiAgICAgICAgICAgIGxlZnQ6IG1hcmdpbi5sZWZ0LFxuICAgICAgICAgICAgcmlnaHQ6IG1hcmdpbi5yaWdodCxcbiAgICAgICAgICAgIGJvdHRvbTogbWFyZ2luLmJvdHRvbSxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKSksXG4gICAgW2NoYXJ0LmdvYWxMaW5lcywgbWFyZ2luLCBpbm5lcldpZHRoLCB5U2NhbGVdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlTW91c2VNb3ZlID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PFNWR0VsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAoIXhLZXkgfHwgIXhTY2FsZUtleSB8fCB4U2NhbGUgPT09IG51bGwpIHJldHVybjtcblxuICAgICAgY29uc3QgdG9vbHRpcERhdGEgPSBnZXRUb29sdGlwRGF0YSh7XG4gICAgICAgIGRhdGE6IGNoYXJ0LmRhdGEsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBtYXJnaW4sXG4gICAgICAgIHhTY2FsZUtleSxcbiAgICAgICAgeFNjYWxlRGF0YVR5cGUsXG4gICAgICAgIHhPcmRlcmluZzogY2hhcnQueC5zY2FsZS5vcmRlcmluZyxcbiAgICAgICAgeFNjYWxlLFxuICAgICAgICBjaGFydFR5cGU6ICdiYXInLFxuICAgICAgfSk7XG5cbiAgICAgIHNob3dUb29sdGlwKHtcbiAgICAgICAgdG9vbHRpcExlZnQ6IHRvb2x0aXBEYXRhPy50b29sdGlwTGVmdCxcbiAgICAgICAgdG9vbHRpcFRvcDogdG9vbHRpcERhdGE/LnRvb2x0aXBUb3AsXG4gICAgICAgIHRvb2x0aXBEYXRhOiB0b29sdGlwRGF0YT8udG9vbHRpcERhdGEsXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtzaG93VG9vbHRpcCwgeFNjYWxlLCBtYXJnaW4sIHhLZXksIHhTY2FsZUtleSwgeFNjYWxlRGF0YVR5cGUsIGNoYXJ0Lnguc2NhbGUub3JkZXJpbmcsIGNoYXJ0LmRhdGFdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlTW91c2VMZWF2ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBoaWRlVG9vbHRpcCgpO1xuICB9LCBbaGlkZVRvb2x0aXBdKTtcblxuICBjb25zdCBoYW5kbGVPbkJhckNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PFNWR1JlY3RFbGVtZW50LCBNb3VzZUV2ZW50PiwgYmFyR3JvdXA6IEJhckdyb3VwVHlwZTxzdHJpbmc+LCBiYXI6IEJhckdyb3VwQmFyPHN0cmluZz4pID0+IHtcbiAgICAgIG9uQ2xpY2soe1xuICAgICAgICBjbGlja2VkVmFsdWU6IHtcbiAgICAgICAgICBpbmRleDogYmFyR3JvdXAuaW5kZXgsXG4gICAgICAgICAgeToge1xuICAgICAgICAgICAga2V5OiBiYXIua2V5LFxuICAgICAgICAgICAgdmFsdWU6IGJhci52YWx1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHg6IHtcbiAgICAgICAgICAgIC4uLmNoYXJ0LngudGlja3NbYmFyR3JvdXAuaW5kZXhdLFxuICAgICAgICAgICAgdmFsdWU6IGNoYXJ0LmRhdGFbYmFyR3JvdXAuaW5kZXhdW3hLZXldLnZhbHVlID8/ICcnLFxuICAgICAgICAgICAga2V5OiB4S2V5LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNsaWNrRXZlbnQ6IGV2ZW50LFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBbb25DbGljaywgY2hhcnQuZGF0YSwgeEtleV1cbiAgKTtcblxuICBjb25zdCB0aGVtZUNTUyA9IHVzZU1lbW8oKCkgPT4gZ2V0Q2hhcnRUaGVtZUNTUyh0aGVtZSksIFt0aGVtZV0pO1xuXG4gIGNvbnN0IHlUaWNrVmFsdWVzID0gY2hhcnQueS50aWNrcy5tYXAodGljayA9PiBOdW1iZXIodGljay52YWx1ZSkpO1xuXG4gIHJldHVybiAoXG4gICAgPEZyYWdtZW50PlxuICAgICAgey8qIHdpZHRoL2hlaWdodCAxMDAlIHJlcXVpcmVkIG9yIHVzZVBhcmVudFNpemUoKSBjb250aW51b3VzbHkgc2NhbGVzIGFzIHBhcmVudCBlbGVtZW50IGhhcyBubyBzcGVjaWZpZWQgaGVpZ2h0ICovfVxuICAgICAgPHN2Z1xuICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgIGhlaWdodD17aGVpZ2h0IC0gKG9wdGlvbnMuc2hvd0xlZ2VuZCA/IDQwIDogMCl9XG4gICAgICAgIG9uTW91c2VNb3ZlPXtoYW5kbGVNb3VzZU1vdmV9XG4gICAgICAgIG9uTW91c2VMZWF2ZT17aGFuZGxlTW91c2VMZWF2ZX1cbiAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogJ2Jsb2NrJyB9fVxuICAgICAgPlxuICAgICAgICA8R3JvdXAgbGVmdD17bWFyZ2luLmxlZnR9IHRvcD17bWFyZ2luLnRvcH0+XG4gICAgICAgICAgPEdyaWRSb3dzXG4gICAgICAgICAgICB0aWNrVmFsdWVzPXt5VGlja1ZhbHVlcy5sZW5ndGggPiAwID8geVRpY2tWYWx1ZXMgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBzY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgd2lkdGg9e2lubmVyV2lkdGh9XG4gICAgICAgICAgICBoZWlnaHQ9e2lubmVySGVpZ2h0fVxuICAgICAgICAgICAgcG9pbnRlckV2ZW50cz1cIm5vbmVcIlxuICAgICAgICAgICAgc3Ryb2tlRGFzaGFycmF5PVwiMC41IDVcIlxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg9e29wdGlvbnMucmVtb3ZlU3Ryb2tlID8gMCA6IDJ9XG4gICAgICAgICAgICBsaW5lU3R5bGU9e3tcbiAgICAgICAgICAgICAgc3Ryb2tlTGluZWNhcDogJ3JvdW5kJyxcbiAgICAgICAgICAgICAgc3Ryb2tlOiB0aGVtZUNTUy5ncmlkLnN0cm9rZSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7b3B0aW9ucy5heGlzLnNob3dYQXhpc0xhYmVscyAmJiAoXG4gICAgICAgICAgICA8QXhpc0JvdHRvbVxuICAgICAgICAgICAgICBsYWJlbD17Y2hhcnQueC50aXRsZSB8fCB1bmRlZmluZWR9XG4gICAgICAgICAgICAgIGxhYmVsUHJvcHM9e3sgc3R5bGU6IEFYSVNfVElUTEVfU1RZTEVTIH19XG4gICAgICAgICAgICAgIGxhYmVsT2Zmc2V0PXttYXJnaW4uYm90dG9tVGl0bGVPZmZzZXR9XG4gICAgICAgICAgICAgIGhpZGVUaWNrc1xuICAgICAgICAgICAgICB0b3A9e2lubmVySGVpZ2h0fVxuICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgIHNjYWxlPXt4U2NhbGV9XG4gICAgICAgICAgICAgIHRpY2tGb3JtYXQ9e3ZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdGljazogVGljazxEYXRlIHwgc3RyaW5nIHwgbnVtYmVyPiB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnZGF0ZV90aW1lJyAmJiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICAgIC8vIGlmIGNoYXJ0Lnguc2NhbGUua2V5ICE9PSBjaGFydC54LmtleSwgdXNlIHRpY2tWYWx1ZS5zY2FsZVZhbHVlIE5PVCB0aWNrVmFsdWV2YWx1ZVxuICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdUaWNrVmFsdWUgPSBjaGFydC54LnRpY2tzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIHRpY2tWYWx1ZSA9PiB0aWNrVmFsdWUuc2NhbGVWYWx1ZSAmJiBuZXcgRGF0ZSh0aWNrVmFsdWUuc2NhbGVWYWx1ZSkudmFsdWVPZigpID09PSB2YWx1ZS52YWx1ZU9mKClcbiAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgIHRpY2sgPSBtYXRjaGluZ1RpY2tWYWx1ZSB8fCBudWxsO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1RpY2tWYWx1ZSA9IGNoYXJ0Py54Py50aWNrcy5maW5kKFxuICAgICAgICAgICAgICAgICAgICB0aWNrVmFsdWUgPT4gKHRpY2tWYWx1ZT8uc2NhbGVWYWx1ZSAhPT0gbnVsbCA/IHRpY2tWYWx1ZT8uc2NhbGVWYWx1ZSA6IDApID09PSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIHRpY2sgPSBtYXRjaGluZ1RpY2tWYWx1ZSB8fCBudWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aWNrKSB7XG4gICAgICAgICAgICAgICAgICBpZiAodGljay5mb3JtYXR0ZWRWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGljay5mb3JtYXR0ZWRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aWNrLnZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiAnJzsgLy8gP1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgdGlja1ZhbHVlcz17XG4gICAgICAgICAgICAgICAgY2hhcnQ/Lng/LnRpY2tzPy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgICA/IGNoYXJ0LngudGlja3MubWFwKHRpY2sgPT4gKHRpY2s/LnNjYWxlVmFsdWUgIT09IG51bGwgPyB0aWNrPy5zY2FsZVZhbHVlIDogMCkpXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRpY2tDb21wb25lbnQ9eyh7IGZvcm1hdHRlZFZhbHVlLCAuLi50aWNrUHJvcHMgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxUZXh0IHN0eWxlPXt0aGVtZUNTUy5sYWJlbHN9IHsuLi50aWNrUHJvcHN9PlxuICAgICAgICAgICAgICAgICAge2Zvcm1hdHRlZFZhbHVlfVxuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgc3Ryb2tlPXt0aGVtZUNTUy5heGlzLnN0cm9rZX1cbiAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9e29wdGlvbnMucmVtb3ZlU3Ryb2tlID8gMCA6IDF9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge29wdGlvbnMuYXhpcy5zaG93WUF4aXNMYWJlbHMgJiYgKFxuICAgICAgICAgICAgPEF4aXNMZWZ0XG4gICAgICAgICAgICAgIGxhYmVsT2Zmc2V0PXttYXJnaW4ubGVmdFRpdGxlT2Zmc2V0fVxuICAgICAgICAgICAgICBsYWJlbD17Y2hhcnQueS50aXRsZSB8fCB1bmRlZmluZWR9XG4gICAgICAgICAgICAgIGxhYmVsUHJvcHM9e3sgc3R5bGU6IEFYSVNfVElUTEVfU1RZTEVTIH19XG4gICAgICAgICAgICAgIGhpZGVUaWNrc1xuICAgICAgICAgICAgICBsZWZ0PXswfVxuICAgICAgICAgICAgICB0b3A9ezB9XG4gICAgICAgICAgICAgIHNjYWxlPXt5U2NhbGV9XG4gICAgICAgICAgICAgIHRpY2tGb3JtYXQ9e3ZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gY2hhcnQueS50aWNrcy5maWx0ZXIodGljayA9PiB0aWNrLnZhbHVlID09PSB2YWx1ZSlbMF07XG5cbiAgICAgICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uZm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZm9ybWF0dGVkVmFsdWU7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS52YWx1ZS50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICB0aWNrVmFsdWVzPXt5VGlja1ZhbHVlc31cbiAgICAgICAgICAgICAgdGlja0NvbXBvbmVudD17KHsgZm9ybWF0dGVkVmFsdWUsIC4uLnRpY2tQcm9wcyB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPFRleHQgd2lkdGg9ezEwfSBzdHlsZT17dGhlbWVDU1MubGFiZWxzfSB7Li4udGlja1Byb3BzfT5cbiAgICAgICAgICAgICAgICAgIHtmb3JtYXR0ZWRWYWx1ZX1cbiAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHN0cm9rZT17dGhlbWU/LmF4aXM/LnN0cm9rZSA/PyAndHJhbnNwYXJlbnQnfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxHcm91cD5cbiAgICAgICAgICAgIHshb3B0aW9ucy5zdGFja2VkICYmIChcbiAgICAgICAgICAgICAgPEJhckdyb3VwXG4gICAgICAgICAgICAgICAgZGF0YT17ZGF0YUZsYXR0ZW5lZH1cbiAgICAgICAgICAgICAgICBrZXlzPXt5U2NhbGVLZXlzfVxuICAgICAgICAgICAgICAgIGhlaWdodD17aW5uZXJIZWlnaHR9XG4gICAgICAgICAgICAgICAgeDA9e2QgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgY29uc3QgeFZhbHVlID0gZFt4U2NhbGVLZXldO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoeFNjYWxlRGF0YVR5cGUgPT09ICdzdHJpbmcnKSByZXR1cm4geFZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICBjb25zdCB4VmFsdWVBZGp1c3RlZCA9XG4gICAgICAgICAgICAgICAgICAgIHhTY2FsZURhdGFUeXBlID09PSAnZGF0ZV90aW1lJ1xuICAgICAgICAgICAgICAgICAgICAgID8gbmV3IERhdGUoeFZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgIDogeFNjYWxlRGF0YVR5cGUgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgICAgICAgPyBOdW1iZXIoeFZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgIDogU3RyaW5nKHhWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICByZXR1cm4geFZhbHVlQWRqdXN0ZWQ7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgeDBTY2FsZT17eFNjYWxlfVxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICB4MVNjYWxlPXtpbm5lclhTY2FsZX1cbiAgICAgICAgICAgICAgICB5U2NhbGU9e3lTY2FsZX1cbiAgICAgICAgICAgICAgICBjb2xvcj17KCkgPT4gJyd9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7YmFyR3JvdXBzID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBiYXJHcm91cHMubWFwKGJhckdyb3VwID0+IChcbiAgICAgICAgICAgICAgICAgICAgPEdyb3VwIGtleT17YGJhci1ncm91cC0ke2Jhckdyb3VwLmluZGV4fS0ke2Jhckdyb3VwLngwfWB9IGxlZnQ9e2Jhckdyb3VwLngwfT5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFyR3JvdXAuYmFycy5tYXAoYmFyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiYXIudmFsdWUgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJhci5oZWlnaHQgPCAwIHx8IGJhci53aWR0aCA8IDApIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YGJhci1ncm91cC1iYXItJHtiYXJHcm91cC5pbmRleH0tJHtiYXIuaW5kZXh9LSR7YmFyLnZhbHVlfS0ke2Jhci5rZXl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4PXtiYXIueH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5PXtiYXIueX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17YmFyLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17YmFyLmhlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPXtnZXRCYXJGaWxsKGNoYXJ0LmJhcnMsIGNoYXJ0LmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzLCBiYXIua2V5LCBiYXIudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gaGFuZGxlT25CYXJDbGljayhlLCBiYXJHcm91cCwgYmFyKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVIb3Zlcj17ZW5hYmxlSG92ZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9CYXJHcm91cD5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHsvKiBIb3cgdG8gd2UgZ2V0ICdzY2FsZVZhbHVlJyBoZXJlPyBXaWxsIHdlIG5lZWQgdG8gc3RhcnQgc3RvcmluZyBzY2FsZUtleSBhcyB3ZWxsIGFzIHhLZXk/ICovfVxuICAgICAgICAgICAge29wdGlvbnMuc3RhY2tlZCAmJiAoXG4gICAgICAgICAgICAgIDxCYXJTdGFja1xuICAgICAgICAgICAgICAgIHg9e2QgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgY29uc3QgeFZhbHVlID0gZFt4U2NhbGVLZXldO1xuICAgICAgICAgICAgICAgICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnc3RyaW5nJykgcmV0dXJuIHhWYWx1ZTtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgeFZhbHVlQWRqdXN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICB4U2NhbGVEYXRhVHlwZSA9PT0gJ2RhdGVfdGltZSdcbiAgICAgICAgICAgICAgICAgICAgICA/IG5ldyBEYXRlKHhWYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICA6IHhTY2FsZURhdGFUeXBlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgICAgICAgID8gTnVtYmVyKHhWYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICA6IFN0cmluZyh4VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHhWYWx1ZUFkanVzdGVkO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHhTY2FsZT17eFNjYWxlfVxuICAgICAgICAgICAgICAgIHlTY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgICAgIGRhdGE9e2RhdGFGbGF0dGVuZWR9XG4gICAgICAgICAgICAgICAga2V5cz17Y2hhcnQueS5rZXlzfVxuICAgICAgICAgICAgICAgIGNvbG9yPXsoKSA9PiAnJ31cbiAgICAgICAgICAgICAgICBoZWlnaHQ9e2lubmVySGVpZ2h0fVxuICAgICAgICAgICAgICAgIHdpZHRoPXtpbm5lcldpZHRofVxuICAgICAgICAgICAgICAgIG9mZnNldD1cIm5vbmVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhclN0YWNrcyA9PlxuICAgICAgICAgICAgICAgICAgYmFyU3RhY2tzLm1hcChiYXJTdGFjayA9PlxuICAgICAgICAgICAgICAgICAgICBiYXJTdGFjay5iYXJzLm1hcChiYXIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChiYXIuaGVpZ2h0IDwgMykgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgQkFSX1BBRERJTkcgPSAxLjU7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YGJhci1zdGFjay0ke2JhclN0YWNrLmluZGV4fS0ke2Jhci5pbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB4PXtiYXIueH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgeT17YmFyLnl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXtiYXIud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17YmFyLmhlaWdodCAtIEJBUl9QQURESU5HfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPXtnZXRCYXJGaWxsKGNoYXJ0LmJhcnMsIGNoYXJ0LmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzLCBiYXIua2V5LCBiYXIuYmFyLmRhdGEpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICByeD17QkFSX1JBRElVU31cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvQmFyU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvR3JvdXA+XG4gICAgICAgIDwvR3JvdXA+XG4gICAgICAgIHsvKiAtLS0tLSBUT09MVElQIENST1NTSEFJUiAtLS0tLSAqL31cbiAgICAgICAge3Rvb2x0aXBEYXRhICYmIChcbiAgICAgICAgICA8Zz5cbiAgICAgICAgICAgIDxMaW5lXG4gICAgICAgICAgICAgIGZyb209e3sgeDogdG9vbHRpcExlZnQsIHk6IG1hcmdpbi50b3AgfX1cbiAgICAgICAgICAgICAgdG89e3sgeDogdG9vbHRpcExlZnQsIHk6IGlubmVySGVpZ2h0ICsgbWFyZ2luLnRvcCB9fVxuICAgICAgICAgICAgICBzdHJva2U9eycjYWFhJ31cbiAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezJ9XG4gICAgICAgICAgICAgIHBvaW50ZXJFdmVudHM9XCJub25lXCJcbiAgICAgICAgICAgICAgb3BhY2l0eT17MC44fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2c+XG4gICAgICAgICl9XG4gICAgICAgIHsvKiAtLS0tLSBHT0FMIExJTkVTIC0tLS0tLSAqL31cbiAgICAgICAge2dvYWxMaW5lc31cbiAgICAgIDwvc3ZnPlxuICAgICAgey8qIC0tLS0tIExFR0VORCAtLS0tLSAqL31cbiAgICAgIHtvcHRpb25zLnNob3dMZWdlbmQgJiYgKFxuICAgICAgICA8TGVnZW5kXG4gICAgICAgICAgbGVnZW5kSXRlbXM9e2NoYXJ0LmJhcnN9XG4gICAgICAgICAgdmlzaWJsZVlLZXlzPXtjaGFydC5iYXJzLm1hcChsZWdlbmRJdGVtID0+IGxlZ2VuZEl0ZW0ueUtleSl9XG4gICAgICAgICAgc2V0VmlzaWJsZVlLZXlzPXsoKSA9PiB7fX1cbiAgICAgICAgICBrZXlzPXtjaGFydC5rZXlzfVxuICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzPXtjaGFydC5jb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlc31cbiAgICAgICAgICBtYXJnaW5MZWZ0PXttYXJnaW4ubGVmdCAtIG1hcmdpbi5sZWZ0VGl0bGVPZmZzZXR9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAgey8qIC0tLS0tIFRPT0xUSVAgLS0tLS0gKi99XG4gICAgICB7dG9vbHRpcE9wZW4gJiYgdG9vbHRpcERhdGEgJiYgeEtleSAmJiAoXG4gICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgdG9vbHRpcERhdGE9e3Rvb2x0aXBEYXRhfVxuICAgICAgICAgIHRvb2x0aXBMZWZ0PXt0b29sdGlwTGVmdH1cbiAgICAgICAgICB0b29sdGlwVG9wPXt0b29sdGlwVG9wfVxuICAgICAgICAgIHhLZXk9e3hLZXl9XG4gICAgICAgICAga2V5cz17Y2hhcnQua2V5c31cbiAgICAgICAgICB2aXNpYmxlWUtleXM9e2NoYXJ0LmJhcnMubWFwKGxlZ2VuZEl0ZW0gPT4gbGVnZW5kSXRlbS55S2V5KX1cbiAgICAgICAgICB5S2V5cz17Y2hhcnQueS5rZXlzfVxuICAgICAgICAgIGxlZ2VuZEl0ZW1zPXtjaGFydC5iYXJzfVxuICAgICAgICAgIHNob3dSb3VuZGVkVG90YWw9e29wdGlvbnMuc2hvd1JvdW5kZWRUb3RhbH1cbiAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcz17Y2hhcnQuY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXN9XG4gICAgICAgICAgdGhlbWU9e3RoZW1lQ1NTLnBvcG92ZXJNZW51c31cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9GcmFnbWVudD5cbiAgKTtcbn07XG5cbmNvbnN0IEJhciA9IChwcm9wczoge1xuICBvbkNsaWNrOiAoZTogUmVhY3QuTW91c2VFdmVudDxTVkdSZWN0RWxlbWVudCwgTW91c2VFdmVudD4pID0+IHZvaWQ7XG4gIGZpbGw/OiBzdHJpbmc7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAga2V5OiBzdHJpbmc7XG4gIGVuYWJsZUhvdmVyPzogYm9vbGVhbjtcbn0pID0+IHtcbiAgY29uc3QgW2ZpbGxDb2xvciwgc2V0RmlsbENvbG9yXSA9IHVzZVN0YXRlKHByb3BzLmZpbGwpO1xuICByZXR1cm4gKFxuICAgIDxyZWN0XG4gICAgICBrZXk9e3Byb3BzLmtleX1cbiAgICAgIHg9e3Byb3BzLnh9XG4gICAgICB5PXtwcm9wcy55fVxuICAgICAgd2lkdGg9e3Byb3BzLndpZHRofVxuICAgICAgaGVpZ2h0PXtwcm9wcy5oZWlnaHR9XG4gICAgICBmaWxsPXtmaWxsQ29sb3J9XG4gICAgICByeD17QkFSX1JBRElVU31cbiAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICBvbk1vdXNlRW50ZXI9eygpID0+IHByb3BzLmVuYWJsZUhvdmVyICYmIHNldEZpbGxDb2xvcihsaWdodGVuQ29sb3IocHJvcHMuZmlsbCwgMC44KSl9XG4gICAgICBvbk1vdXNlTGVhdmU9eygpID0+IHByb3BzLmVuYWJsZUhvdmVyICYmIHNldEZpbGxDb2xvcihwcm9wcy5maWxsKX1cbiAgICAgIGNsYXNzTmFtZT17cHJvcHMuZW5hYmxlSG92ZXIgPyBjc3MoeyBjdXJzb3I6ICdwb2ludGVyJyB9KSA6ICcnfVxuICAgIC8+XG4gICk7XG59O1xuIl19 */",
|
|
41921
|
-
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$
|
|
41909
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhckNoYXJ0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1WXFDIiwiZmlsZSI6IkJhckNoYXJ0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhckNoYXJ0UmVwcmVzZW50YXRpb24gfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0JhckNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQ2hhcnRUaGVtZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSAnQHZpc3gvZ3JvdXAnO1xuaW1wb3J0IHsgZ2V0Q2hhcnRUaGVtZUNTUywgZ2V0VG9vbHRpcERhdGEgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBGcmFnbWVudCwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJy4uL1Rvb2x0aXAnO1xuaW1wb3J0IHsgdXNlVG9vbHRpcCB9IGZyb20gJ0B2aXN4L3Rvb2x0aXAnO1xuaW1wb3J0IHsgTGVnZW5kIH0gZnJvbSAnLi4vTGVnZW5kJztcbmltcG9ydCB7IEJhckdyb3VwLCBCYXJTdGFjaywgTGluZSB9IGZyb20gJ0B2aXN4L3NoYXBlJztcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9GaWVsZC90eXBlcyc7XG5pbXBvcnQgeyBzY2FsZUxpbmVhciwgc2NhbGVCYW5kIH0gZnJvbSAnQHZpc3gvc2NhbGUnO1xuaW1wb3J0IHsgZ2V0QmFyRmlsbCB9IGZyb20gJy4vZ2V0QmFyRmlsbCc7XG5pbXBvcnQgeyBidWlsZE1hcmdpbiB9IGZyb20gJy4uLy4uL3V0aWxzL2J1aWxkTWFyZ2luJztcbmltcG9ydCB7IENoYXJ0T25WaWV3Q2xpY2ssIERhdGFJdGVtLCBUaWNrIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9DaGFydHNWMi90eXBlcyc7XG5pbXBvcnQgeyBsaWdodGVuQ29sb3IgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29sb3IuZnVuY3Rpb25zJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBCYXJHcm91cEJhciwgQmFyR3JvdXAgYXMgQmFyR3JvdXBUeXBlIH0gZnJvbSAnQHZpc3gvc2hhcGUvbGliL3R5cGVzJztcbmltcG9ydCB7IHVzZUZsYXR0ZW5lZERhdGEgfSBmcm9tICcuLi9ob29rcy91c2VGbGF0dGVuZWREYXRhJztcbmltcG9ydCBHb2FsTGluZXMgZnJvbSAnLi4vR29hbExpbmUvR29hbExpbmVzJztcbmltcG9ydCB7IEF4aXNCb3R0b20gfSBmcm9tICcuLi9BeGlzL0F4aXNCb3R0b20nO1xuaW1wb3J0IHsgQXhpc0xlZnQgfSBmcm9tICcuLi9BeGlzL0F4aXNMZWZ0JztcbmltcG9ydCB7IEdyaWRSb3dzIH0gZnJvbSAnLi4vR3JpZFJvd3MvR3JpZFJvd3MnO1xuaW1wb3J0IHsgQ2hhcnRXcmFwcGVyIH0gZnJvbSAnLi4vQ2hhcnRXcmFwcGVyL0NoYXJ0V3JhcHBlcic7XG5cbi8vIE5lZWQgdG8gbG9vayBhdCB1cGRhdGluZyBCYXJDaGFydCB0byB1c2UgdGhpcyB0eXBlIG1ldGhvZCBvZiByZW5kZXJpbmcgLSBodHRwczovL2NvZGVzYW5kYm94LmlvL3Avc2FuZGJveC92aXN4LWJhci1jaGFydC1qOXNtcGo/ZmlsZT0lMkZFeGFtcGxlLnRzeFxuLy8gQ3VycmVudGx5IGl0J3MgdXNpbmcgU3RhY2tlZCBDaGFydCB3aGljaCBpc24ndCB0ZWNobmljYWxseSBjb3JyZWN0XG5cbmV4cG9ydCB0eXBlIEJhckNoYXJ0UHJvcHMgPSB7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICB0aGVtZT86IENoYXJ0VGhlbWU7XG4gIGNoYXJ0OiBCYXJDaGFydFJlcHJlc2VudGF0aW9uO1xuICBvcHRpb25zOiB7XG4gICAgc3RhY2tlZDogYm9vbGVhbjtcbiAgICBzaG93Um91bmRlZFRvdGFsOiBib29sZWFuO1xuICAgIHNob3dMZWdlbmQ6IGJvb2xlYW47XG4gICAgcmVtb3ZlU3Ryb2tlOiBib29sZWFuO1xuICAgIGF4aXM6IHtcbiAgICAgIHNob3dYQXhpc0xhYmVsczogYm9vbGVhbjtcbiAgICAgIHNob3dZQXhpc0xhYmVsczogYm9vbGVhbjtcbiAgICB9O1xuICB9O1xuICBvbkNsaWNrOiAocGFyYW1zOiBDaGFydE9uVmlld0NsaWNrKSA9PiB2b2lkO1xuICBlbmFibGVIb3Zlcj86IGJvb2xlYW47XG59O1xuXG5jb25zdCBCQVJfUkFESVVTID0gMjtcblxuY29uc3QgUEFERElORyA9IHtcbiAgcGFkZGluZ091dGVyOiAwLjA1LFxuICBwYWRkaW5nSW5uZXI6IDAuMyxcbn07XG5cbmV4cG9ydCBjb25zdCBCYXJDaGFydCA9ICh7IGNoYXJ0LCB3aWR0aCwgaGVpZ2h0LCBvcHRpb25zLCB0aGVtZSwgb25DbGljaywgZW5hYmxlSG92ZXIgfTogQmFyQ2hhcnRQcm9wcykgPT4ge1xuICBjb25zdCB7IHRvb2x0aXBPcGVuLCB0b29sdGlwTGVmdCA9IDAsIHRvb2x0aXBUb3AgPSAwLCB0b29sdGlwRGF0YSwgaGlkZVRvb2x0aXAsIHNob3dUb29sdGlwIH0gPSB1c2VUb29sdGlwPHtcbiAgICBba2V5SWQ6IHN0cmluZ106IERhdGFJdGVtO1xuICB9IHwgbnVsbD4oKTtcblxuICBjb25zdCBtYXJnaW4gPSBidWlsZE1hcmdpbihjaGFydC55LnRpY2tzLCBvcHRpb25zLmF4aXMuc2hvd1lBeGlzTGFiZWxzLCBjaGFydC55LnRpdGxlICE9IG51bGwsIGNoYXJ0LngudGl0bGUgIT0gbnVsbCk7XG5cbiAgLy8gY29uc3QgW3Zpc2libGVZS2V5cywgc2V0VmlzaWJsZVlLZXlzXSA9IHVzZVN0YXRlKGNoYXJ0LmJhcnMubWFwKChsZWdlbmRJdGVtKSA9PiBsZWdlbmRJdGVtLnlLZXkpKTtcblxuICBjb25zdCBpbm5lcldpZHRoID0gd2lkdGggLSBtYXJnaW4ubGVmdCAtIG1hcmdpbi5yaWdodDtcbiAgY29uc3QgaW5uZXJIZWlnaHQgPSBoZWlnaHQgLSBtYXJnaW4udG9wIC0gbWFyZ2luLmJvdHRvbSAtIChvcHRpb25zLnNob3dMZWdlbmQgPyA0MCA6IDApO1xuICBjb25zdCB4S2V5ID0gY2hhcnQueC5rZXk7XG4gIGNvbnN0IHhTY2FsZUtleSA9IGNoYXJ0Lnguc2NhbGUua2V5O1xuICBjb25zdCB5U2NhbGVLZXlzID0gY2hhcnQueS5rZXlzO1xuICBjb25zdCB4U2NhbGVEYXRhVHlwZTogRGF0YVR5cGUgPSBjaGFydC54LnNjYWxlLmRhdGFUeXBlO1xuXG4gIGNvbnN0IHhTY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICh4U2NhbGVEYXRhVHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8c3RyaW5nPih7XG4gICAgICAgIHJhbmdlOiBbMCwgaW5uZXJXaWR0aF0sXG4gICAgICAgIGRvbWFpbjogeFNjYWxlS2V5XG4gICAgICAgICAgPyBbLi4uY2hhcnQuZGF0YS5tYXAoZCA9PiAoZFt4U2NhbGVLZXldICYmIGRbeFNjYWxlS2V5XS52YWx1ZSAhPT0gbnVsbCA/IFN0cmluZyhkW3hTY2FsZUtleV0udmFsdWUpIDogJycpKV1cbiAgICAgICAgICA6IFtdLFxuICAgICAgICAuLi5QQURESU5HLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnZGF0ZV90aW1lJyAmJiB4U2NhbGVLZXkpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8RGF0ZT4oe1xuICAgICAgICByYW5nZTogWzAsIGlubmVyV2lkdGhdLFxuICAgICAgICBkb21haW46IGNoYXJ0LmRhdGEubWFwKGQgPT4gbmV3IERhdGUoZFt4U2NhbGVLZXldLnZhbHVlIGFzIHN0cmluZykpLFxuICAgICAgICAuLi5QQURESU5HLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnbnVtYmVyJyAmJiB4U2NhbGVLZXkpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8bnVtYmVyPih7XG4gICAgICAgIHJhbmdlOiBbMCwgaW5uZXJXaWR0aF0sXG4gICAgICAgIGRvbWFpbjogY2hhcnQuZGF0YS5tYXAoZCA9PiAoZFt4U2NhbGVLZXldICYmIGRbeFNjYWxlS2V5XS52YWx1ZSAhPT0gbnVsbCA/IE51bWJlcihkW3hTY2FsZUtleV0udmFsdWUpIDogMCkpLFxuICAgICAgICAuLi5QQURESU5HLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH0sIFtpbm5lcldpZHRoLCBjaGFydC54LCBjaGFydC5kYXRhXSk7XG5cbiAgY29uc3QgeVNjYWxlID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgc2NhbGVMaW5lYXI8bnVtYmVyPih7XG4gICAgICAgIHJhbmdlOiBbaW5uZXJIZWlnaHQsIDBdLFxuICAgICAgICBkb21haW46XG4gICAgICAgICAgY2hhcnQueS5zY2FsZS5vcmRlcmluZyA9PT0gJ2FzYydcbiAgICAgICAgICAgID8gW2NoYXJ0Lnkuc2NhbGUubWluIGFzIG51bWJlciwgY2hhcnQueS5zY2FsZS5tYXggYXMgbnVtYmVyXVxuICAgICAgICAgICAgOiBbY2hhcnQueS5zY2FsZS5tYXggYXMgbnVtYmVyLCBjaGFydC55LnNjYWxlLm1pbiBhcyBudW1iZXJdLFxuICAgICAgICBuaWNlOiB0cnVlLFxuICAgICAgICByb3VuZDogdHJ1ZSxcbiAgICAgIH0pLFxuICAgIFtpbm5lckhlaWdodCwgY2hhcnQueV1cbiAgKTtcblxuICBjb25zdCBpbm5lclhTY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghb3B0aW9ucy5zdGFja2VkICYmIHhTY2FsZSAmJiAnYmFuZHdpZHRoJyBpbiB4U2NhbGUpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8c3RyaW5nPih7XG4gICAgICAgIHJhbmdlOiBbMCwgeFNjYWxlPy5iYW5kd2lkdGgoKV0sXG4gICAgICAgIGRvbWFpbjogeVNjYWxlS2V5cyxcbiAgICAgICAgcGFkZGluZzogMC4xLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSwgW3hTY2FsZSwgeVNjYWxlS2V5cywgb3B0aW9ucy5zdGFja2VkLCB4U2NhbGVEYXRhVHlwZV0pO1xuXG4gIGNvbnN0IGRhdGFGbGF0dGVuZWQgPSB1c2VGbGF0dGVuZWREYXRhPEJhckNoYXJ0UmVwcmVzZW50YXRpb24+KHhTY2FsZUtleSwgeFNjYWxlRGF0YVR5cGUsIGNoYXJ0KTtcblxuICBjb25zdCBoYW5kbGVNb3VzZU1vdmUgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8U1ZHRWxlbWVudD4pID0+IHtcbiAgICAgIGlmICgheEtleSB8fCAheFNjYWxlS2V5IHx8IHhTY2FsZSA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICBjb25zdCB0b29sdGlwRGF0YSA9IGdldFRvb2x0aXBEYXRhKHtcbiAgICAgICAgZGF0YTogY2hhcnQuZGF0YSxcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIG1hcmdpbixcbiAgICAgICAgeFNjYWxlS2V5LFxuICAgICAgICB4U2NhbGVEYXRhVHlwZSxcbiAgICAgICAgeE9yZGVyaW5nOiBjaGFydC54LnNjYWxlLm9yZGVyaW5nLFxuICAgICAgICB4U2NhbGUsXG4gICAgICAgIGNoYXJ0VHlwZTogJ2JhcicsXG4gICAgICB9KTtcblxuICAgICAgc2hvd1Rvb2x0aXAoe1xuICAgICAgICB0b29sdGlwTGVmdDogdG9vbHRpcERhdGE/LnRvb2x0aXBMZWZ0LFxuICAgICAgICB0b29sdGlwVG9wOiB0b29sdGlwRGF0YT8udG9vbHRpcFRvcCxcbiAgICAgICAgdG9vbHRpcERhdGE6IHRvb2x0aXBEYXRhPy50b29sdGlwRGF0YSxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW3Nob3dUb29sdGlwLCB4U2NhbGUsIG1hcmdpbiwgeEtleSwgeFNjYWxlS2V5LCB4U2NhbGVEYXRhVHlwZSwgY2hhcnQueC5zY2FsZS5vcmRlcmluZywgY2hhcnQuZGF0YV1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVNb3VzZUxlYXZlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGhpZGVUb29sdGlwKCk7XG4gIH0sIFtoaWRlVG9vbHRpcF0pO1xuXG4gIGNvbnN0IGhhbmRsZU9uQmFyQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8U1ZHUmVjdEVsZW1lbnQsIE1vdXNlRXZlbnQ+LCBiYXJHcm91cDogQmFyR3JvdXBUeXBlPHN0cmluZz4sIGJhcjogQmFyR3JvdXBCYXI8c3RyaW5nPikgPT4ge1xuICAgICAgb25DbGljayh7XG4gICAgICAgIGNsaWNrZWRWYWx1ZToge1xuICAgICAgICAgIGluZGV4OiBiYXJHcm91cC5pbmRleCxcbiAgICAgICAgICB5OiB7XG4gICAgICAgICAgICBrZXk6IGJhci5rZXksXG4gICAgICAgICAgICB2YWx1ZTogYmFyLnZhbHVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeDoge1xuICAgICAgICAgICAgLi4uY2hhcnQueC50aWNrc1tiYXJHcm91cC5pbmRleF0sXG4gICAgICAgICAgICB2YWx1ZTogY2hhcnQuZGF0YVtiYXJHcm91cC5pbmRleF1beEtleV0udmFsdWUgPz8gJycsXG4gICAgICAgICAgICBrZXk6IHhLZXksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xpY2tFdmVudDogZXZlbnQsXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtvbkNsaWNrLCBjaGFydC5kYXRhLCB4S2V5XVxuICApO1xuXG4gIGNvbnN0IHRoZW1lQ1NTID0gdXNlTWVtbygoKSA9PiBnZXRDaGFydFRoZW1lQ1NTKHRoZW1lKSwgW3RoZW1lXSk7XG5cbiAgY29uc3QgeVRpY2tWYWx1ZXMgPSBjaGFydC55LnRpY2tzLm1hcCh0aWNrID0+IE51bWJlcih0aWNrLnZhbHVlKSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RnJhZ21lbnQ+XG4gICAgICB7Lyogd2lkdGgvaGVpZ2h0IDEwMCUgcmVxdWlyZWQgb3IgdXNlUGFyZW50U2l6ZSgpIGNvbnRpbnVvdXNseSBzY2FsZXMgYXMgcGFyZW50IGVsZW1lbnQgaGFzIG5vIHNwZWNpZmllZCBoZWlnaHQgKi99XG4gICAgICA8Q2hhcnRXcmFwcGVyXG4gICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgaGVpZ2h0PXtoZWlnaHR9XG4gICAgICAgIG9uTW91c2VNb3ZlPXtoYW5kbGVNb3VzZU1vdmV9XG4gICAgICAgIG9uTW91c2VMZWF2ZT17aGFuZGxlTW91c2VMZWF2ZX1cbiAgICAgICAgc2hvd0xlZ2VuZD17b3B0aW9ucy5zaG93TGVnZW5kfVxuICAgICAgPlxuICAgICAgICA8R3JvdXAgbGVmdD17bWFyZ2luLmxlZnR9IHRvcD17bWFyZ2luLnRvcH0+XG4gICAgICAgICAgPEdyaWRSb3dzXG4gICAgICAgICAgICB0aWNrcz17eVRpY2tWYWx1ZXN9XG4gICAgICAgICAgICB5U2NhbGU9e3lTY2FsZX1cbiAgICAgICAgICAgIHdpZHRoPXtpbm5lcldpZHRofVxuICAgICAgICAgICAgaGVpZ2h0PXtpbm5lckhlaWdodH1cbiAgICAgICAgICAgIHJlbW92ZVN0cm9rZT17b3B0aW9ucy5yZW1vdmVTdHJva2V9XG4gICAgICAgICAgICB0aGVtZUNTUz17dGhlbWVDU1N9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QXhpc0JvdHRvbVxuICAgICAgICAgICAgeD17Y2hhcnQueH1cbiAgICAgICAgICAgIG1hcmdpbj17bWFyZ2lufVxuICAgICAgICAgICAgdGhlbWVDU1M9e3RoZW1lQ1NTfVxuICAgICAgICAgICAgc2hvdz17b3B0aW9ucy5heGlzLnNob3dYQXhpc0xhYmVsc31cbiAgICAgICAgICAgIHJlbW92ZVN0cm9rZT17b3B0aW9ucy5yZW1vdmVTdHJva2V9XG4gICAgICAgICAgICB4U2NhbGVEYXRhVHlwZT17eFNjYWxlRGF0YVR5cGV9XG4gICAgICAgICAgICB4U2NhbGU9e3hTY2FsZX1cbiAgICAgICAgICAgIGhlaWdodD17aW5uZXJIZWlnaHR9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QXhpc0xlZnRcbiAgICAgICAgICAgIHNob3c9e29wdGlvbnMuYXhpcy5zaG93WUF4aXNMYWJlbHN9XG4gICAgICAgICAgICB5PXtjaGFydC55fVxuICAgICAgICAgICAgbWFyZ2luPXttYXJnaW59XG4gICAgICAgICAgICB0aGVtZUNTUz17dGhlbWVDU1N9XG4gICAgICAgICAgICB5U2NhbGU9e3lTY2FsZX1cbiAgICAgICAgICAgIHRpY2tzPXt5VGlja1ZhbHVlc31cbiAgICAgICAgICAgIHN0cm9rZT17dGhlbWU/LmF4aXM/LnN0cm9rZX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxHcm91cD5cbiAgICAgICAgICAgIHshb3B0aW9ucy5zdGFja2VkICYmIChcbiAgICAgICAgICAgICAgPEJhckdyb3VwXG4gICAgICAgICAgICAgICAgZGF0YT17ZGF0YUZsYXR0ZW5lZH1cbiAgICAgICAgICAgICAgICBrZXlzPXt5U2NhbGVLZXlzfVxuICAgICAgICAgICAgICAgIGhlaWdodD17aW5uZXJIZWlnaHR9XG4gICAgICAgICAgICAgICAgeDA9e2QgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgY29uc3QgeFZhbHVlID0gZFt4U2NhbGVLZXldO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoeFNjYWxlRGF0YVR5cGUgPT09ICdzdHJpbmcnKSByZXR1cm4geFZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICBjb25zdCB4VmFsdWVBZGp1c3RlZCA9XG4gICAgICAgICAgICAgICAgICAgIHhTY2FsZURhdGFUeXBlID09PSAnZGF0ZV90aW1lJ1xuICAgICAgICAgICAgICAgICAgICAgID8gbmV3IERhdGUoeFZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgIDogeFNjYWxlRGF0YVR5cGUgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgICAgICAgPyBOdW1iZXIoeFZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgIDogU3RyaW5nKHhWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICByZXR1cm4geFZhbHVlQWRqdXN0ZWQ7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgeDBTY2FsZT17eFNjYWxlfVxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICB4MVNjYWxlPXtpbm5lclhTY2FsZX1cbiAgICAgICAgICAgICAgICB5U2NhbGU9e3lTY2FsZX1cbiAgICAgICAgICAgICAgICBjb2xvcj17KCkgPT4gJyd9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7YmFyR3JvdXBzID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBiYXJHcm91cHMubWFwKGJhckdyb3VwID0+IChcbiAgICAgICAgICAgICAgICAgICAgPEdyb3VwIGtleT17YGJhci1ncm91cC0ke2Jhckdyb3VwLmluZGV4fS0ke2Jhckdyb3VwLngwfWB9IGxlZnQ9e2Jhckdyb3VwLngwfT5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFyR3JvdXAuYmFycy5tYXAoYmFyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiYXIudmFsdWUgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJhci5oZWlnaHQgPCAwIHx8IGJhci53aWR0aCA8IDApIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YGJhci1ncm91cC1iYXItJHtiYXJHcm91cC5pbmRleH0tJHtiYXIuaW5kZXh9LSR7YmFyLnZhbHVlfS0ke2Jhci5rZXl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4PXtiYXIueH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5PXtiYXIueX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17YmFyLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17YmFyLmhlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPXtnZXRCYXJGaWxsKGNoYXJ0LmJhcnMsIGNoYXJ0LmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzLCBiYXIua2V5LCBiYXIudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gaGFuZGxlT25CYXJDbGljayhlLCBiYXJHcm91cCwgYmFyKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVIb3Zlcj17ZW5hYmxlSG92ZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9CYXJHcm91cD5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHsvKiBIb3cgdG8gd2UgZ2V0ICdzY2FsZVZhbHVlJyBoZXJlPyBXaWxsIHdlIG5lZWQgdG8gc3RhcnQgc3RvcmluZyBzY2FsZUtleSBhcyB3ZWxsIGFzIHhLZXk/ICovfVxuICAgICAgICAgICAge29wdGlvbnMuc3RhY2tlZCAmJiAoXG4gICAgICAgICAgICAgIDxCYXJTdGFja1xuICAgICAgICAgICAgICAgIHg9e2QgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgY29uc3QgeFZhbHVlID0gZFt4U2NhbGVLZXldO1xuICAgICAgICAgICAgICAgICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnc3RyaW5nJykgcmV0dXJuIHhWYWx1ZTtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgeFZhbHVlQWRqdXN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICB4U2NhbGVEYXRhVHlwZSA9PT0gJ2RhdGVfdGltZSdcbiAgICAgICAgICAgICAgICAgICAgICA/IG5ldyBEYXRlKHhWYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICA6IHhTY2FsZURhdGFUeXBlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgICAgICAgID8gTnVtYmVyKHhWYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICA6IFN0cmluZyh4VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHhWYWx1ZUFkanVzdGVkO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHhTY2FsZT17eFNjYWxlfVxuICAgICAgICAgICAgICAgIHlTY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgICAgIGRhdGE9e2RhdGFGbGF0dGVuZWR9XG4gICAgICAgICAgICAgICAga2V5cz17Y2hhcnQueS5rZXlzfVxuICAgICAgICAgICAgICAgIGNvbG9yPXsoKSA9PiAnJ31cbiAgICAgICAgICAgICAgICBoZWlnaHQ9e2lubmVySGVpZ2h0fVxuICAgICAgICAgICAgICAgIHdpZHRoPXtpbm5lcldpZHRofVxuICAgICAgICAgICAgICAgIG9mZnNldD1cIm5vbmVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhclN0YWNrcyA9PlxuICAgICAgICAgICAgICAgICAgYmFyU3RhY2tzLm1hcChiYXJTdGFjayA9PlxuICAgICAgICAgICAgICAgICAgICBiYXJTdGFjay5iYXJzLm1hcChiYXIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChiYXIuaGVpZ2h0IDwgMykgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgQkFSX1BBRERJTkcgPSAxLjU7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YGJhci1zdGFjay0ke2JhclN0YWNrLmluZGV4fS0ke2Jhci5pbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB4PXtiYXIueH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgeT17YmFyLnl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXtiYXIud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17YmFyLmhlaWdodCAtIEJBUl9QQURESU5HfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPXtnZXRCYXJGaWxsKGNoYXJ0LmJhcnMsIGNoYXJ0LmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzLCBiYXIua2V5LCBiYXIuYmFyLmRhdGEpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICByeD17QkFSX1JBRElVU31cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvQmFyU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvR3JvdXA+XG4gICAgICAgIDwvR3JvdXA+XG4gICAgICAgIHsvKiAtLS0tLSBUT09MVElQIENST1NTSEFJUiAtLS0tLSAqL31cbiAgICAgICAge3Rvb2x0aXBEYXRhICYmIChcbiAgICAgICAgICA8Zz5cbiAgICAgICAgICAgIDxMaW5lXG4gICAgICAgICAgICAgIGZyb209e3sgeDogdG9vbHRpcExlZnQsIHk6IG1hcmdpbi50b3AgfX1cbiAgICAgICAgICAgICAgdG89e3sgeDogdG9vbHRpcExlZnQsIHk6IGlubmVySGVpZ2h0ICsgbWFyZ2luLnRvcCB9fVxuICAgICAgICAgICAgICBzdHJva2U9eycjYWFhJ31cbiAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezJ9XG4gICAgICAgICAgICAgIHBvaW50ZXJFdmVudHM9XCJub25lXCJcbiAgICAgICAgICAgICAgb3BhY2l0eT17MC44fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2c+XG4gICAgICAgICl9XG4gICAgICAgIHsvKiAtLS0tLSBHT0FMIExJTkVTIC0tLS0tLSAqL31cbiAgICAgICAgPEdvYWxMaW5lcyBnb2FsTGluZXM9e2NoYXJ0LmdvYWxMaW5lc30geT17ZCA9PiB5U2NhbGUoZCl9IG1hcmdpbj17bWFyZ2lufSB3aWR0aD17aW5uZXJXaWR0aH0gLz5cbiAgICAgIDwvQ2hhcnRXcmFwcGVyPlxuICAgICAgey8qIC0tLS0tIExFR0VORCAtLS0tLSAqL31cbiAgICAgIHtvcHRpb25zLnNob3dMZWdlbmQgJiYgKFxuICAgICAgICA8TGVnZW5kXG4gICAgICAgICAgbGVnZW5kSXRlbXM9e2NoYXJ0LmJhcnN9XG4gICAgICAgICAgdmlzaWJsZVlLZXlzPXtjaGFydC5iYXJzLm1hcChsZWdlbmRJdGVtID0+IGxlZ2VuZEl0ZW0ueUtleSl9XG4gICAgICAgICAgc2V0VmlzaWJsZVlLZXlzPXsoKSA9PiB7fX1cbiAgICAgICAgICBrZXlzPXtjaGFydC5rZXlzfVxuICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzPXtjaGFydC5jb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlc31cbiAgICAgICAgICBtYXJnaW5MZWZ0PXttYXJnaW4ubGVmdCAtIG1hcmdpbi5sZWZ0VGl0bGVPZmZzZXR9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAgey8qIC0tLS0tIFRPT0xUSVAgLS0tLS0gKi99XG4gICAgICB7dG9vbHRpcE9wZW4gJiYgdG9vbHRpcERhdGEgJiYgeEtleSAmJiAoXG4gICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgdG9vbHRpcERhdGE9e3Rvb2x0aXBEYXRhfVxuICAgICAgICAgIHRvb2x0aXBMZWZ0PXt0b29sdGlwTGVmdH1cbiAgICAgICAgICB0b29sdGlwVG9wPXt0b29sdGlwVG9wfVxuICAgICAgICAgIHhLZXk9e3hLZXl9XG4gICAgICAgICAga2V5cz17Y2hhcnQua2V5c31cbiAgICAgICAgICB2aXNpYmxlWUtleXM9e2NoYXJ0LmJhcnMubWFwKGxlZ2VuZEl0ZW0gPT4gbGVnZW5kSXRlbS55S2V5KX1cbiAgICAgICAgICB5S2V5cz17Y2hhcnQueS5rZXlzfVxuICAgICAgICAgIGxlZ2VuZEl0ZW1zPXtjaGFydC5iYXJzfVxuICAgICAgICAgIHNob3dSb3VuZGVkVG90YWw9e29wdGlvbnMuc2hvd1JvdW5kZWRUb3RhbH1cbiAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcz17Y2hhcnQuY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXN9XG4gICAgICAgICAgdGhlbWU9e3RoZW1lQ1NTLnBvcG92ZXJNZW51c31cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9GcmFnbWVudD5cbiAgKTtcbn07XG5cbmNvbnN0IEJhciA9IChwcm9wczoge1xuICBvbkNsaWNrOiAoZTogUmVhY3QuTW91c2VFdmVudDxTVkdSZWN0RWxlbWVudCwgTW91c2VFdmVudD4pID0+IHZvaWQ7XG4gIGZpbGw/OiBzdHJpbmc7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAga2V5OiBzdHJpbmc7XG4gIGVuYWJsZUhvdmVyPzogYm9vbGVhbjtcbn0pID0+IHtcbiAgY29uc3QgW2ZpbGxDb2xvciwgc2V0RmlsbENvbG9yXSA9IHVzZVN0YXRlKHByb3BzLmZpbGwpO1xuICByZXR1cm4gKFxuICAgIDxyZWN0XG4gICAgICBrZXk9e3Byb3BzLmtleX1cbiAgICAgIHg9e3Byb3BzLnh9XG4gICAgICB5PXtwcm9wcy55fVxuICAgICAgd2lkdGg9e3Byb3BzLndpZHRofVxuICAgICAgaGVpZ2h0PXtwcm9wcy5oZWlnaHR9XG4gICAgICBmaWxsPXtmaWxsQ29sb3J9XG4gICAgICByeD17QkFSX1JBRElVU31cbiAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICBvbk1vdXNlRW50ZXI9eygpID0+IHByb3BzLmVuYWJsZUhvdmVyICYmIHNldEZpbGxDb2xvcihsaWdodGVuQ29sb3IocHJvcHMuZmlsbCwgMC44KSl9XG4gICAgICBvbk1vdXNlTGVhdmU9eygpID0+IHByb3BzLmVuYWJsZUhvdmVyICYmIHNldEZpbGxDb2xvcihwcm9wcy5maWxsKX1cbiAgICAgIGNsYXNzTmFtZT17cHJvcHMuZW5hYmxlSG92ZXIgPyBjc3MoeyBjdXJzb3I6ICdwb2ludGVyJyB9KSA6ICcnfVxuICAgIC8+XG4gICk7XG59O1xuIl19 */",
|
|
41910
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$8
|
|
41922
41911
|
}) : ''
|
|
41923
41912
|
}, props.key);
|
|
41924
41913
|
};
|