ca-components 1.7.85 → 1.7.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/ca-input-address-dropdown/ca-input-address-dropdown.component.mjs +5 -1
- package/esm2022/lib/components/ca-map/ca-map.component.mjs +6 -6
- package/esm2022/lib/components/ca-map/utils/helpers/map-marker-icon.helper.mjs +2 -2
- package/esm2022/lib/components/ca-pickup-delivery-block/ca-pickup-delivery-block.component.mjs +5 -3
- package/fesm2022/ca-components.mjs +14 -8
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/components/ca-pickup-delivery-block/ca-pickup-delivery-block.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -39,7 +39,7 @@ export class MapMarkerIconHelper {
|
|
|
39
39
|
static { this.getMilesMarkerElement = (stopNumber, stopType, labelName, index) => {
|
|
40
40
|
const markerElement = document.createElement('div');
|
|
41
41
|
const markerSvg = MapMarkerIconHelper.getMilesMarkerSvg(stopNumber, stopType);
|
|
42
|
-
markerElement.classList.add('miles-icon');
|
|
42
|
+
markerElement.classList.add('miles-icon', 'position-relative');
|
|
43
43
|
markerElement.innerHTML = markerSvg;
|
|
44
44
|
if (index !== null)
|
|
45
45
|
markerElement.id = 'milesMarker-' + index;
|
|
@@ -247,4 +247,4 @@ export class MapMarkerIconHelper {
|
|
|
247
247
|
return markerSvg;
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLW1hcmtlci1pY29uLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLW1hcC91dGlscy9oZWxwZXJzL21hcC1tYXJrZXItaWNvbi5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRCxRQUFRO0FBQ1IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxELGFBQWE7QUFDYixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE1BQU0sT0FBTyxtQkFBbUI7YUFDckIsNEJBQXVCLEdBQUcsQ0FDN0IsVUFBa0IsRUFDbEIsUUFBZ0IsRUFDaEIsYUFBdUIsRUFDdkIsV0FBcUIsRUFDckIsU0FBa0IsRUFDbEIsWUFBc0IsRUFDdEIsa0JBQTRCLEVBQzVCLEtBQWMsRUFDSCxFQUFFO1FBQ2IsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwRCxJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFFbkIsSUFDSTtZQUNJLG1CQUFtQixDQUFDLFFBQVE7WUFDNUIsbUJBQW1CLENBQUMsTUFBTTtZQUMxQixtQkFBbUIsQ0FBQyxJQUFJO1lBQ3hCLG1CQUFtQixDQUFDLE1BQU07WUFDMUIsbUJBQW1CLENBQUMsT0FBTztTQUM5QixDQUFDLFFBQVEsQ0FBQyxRQUErQixDQUFDO1lBQzNDLFlBQVk7WUFFWixTQUFTLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDOztZQUVuRCxTQUFTLEdBQUcsbUJBQW1CLENBQUMsb0JBQW9CLENBQ2hELFVBQVUsRUFDVixRQUFRLEVBQ1IsYUFBYSxFQUNiLFdBQVcs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QUFDO1FBRU4sTUFBTSxxQkFBcUIsR0FDdkIsbUJBQW1CLENBQUMseUJBQXlCLENBQ3pDLG1CQUFtQixDQUFDLEtBQUssQ0FDNUIsQ0FBQztRQUVOLE1BQU0sZ0JBQWdCLEdBQUc7a0dBQ2lFLGtCQUFrQixhQUFhLHFCQUFxQjs7OzttR0FJbkQsa0JBQWtCO2lEQUNwRSxhQUFhOzs7Ozs7Ozs7Ozs7OzJDQWFuQixDQUFDO1FBRXBDLE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFvQixFQUFFLFFBQWtCO1FBQ3hELElBQUksZUFBZSxHQUFHLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztRQUVyRCxJQUFJLFFBQVE7WUFBRSxlQUFlLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDO2FBQ3pELElBQUksVUFBVTtZQUFFLGVBQWUsR0FBRyxZQUFZLENBQUMsa0JBQWtCLENBQUM7UUFFdkUsT0FBTyxlQUFlLENBQUM7SUFDM0IsQ0FBQztJQUNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FDbkIsS0FBYSxFQUNiLFVBQW9CLEVBQ3BCLFlBQXNCO1FBRXRCLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDekQsTUFBTSxTQUFTLEdBQUc7Ozs7aUVBSXVDLFdBQVc7Ozs7Ozs7Ozs7Ozt3Q0FZcEMsS0FBSzs7O3duTEFJWCxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FDL0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrQkF3QkMsQ0FBQztRQUV4QixNQUFNLGVBQWUsR0FDakIsMENBQTBDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb25zdGFudHNcbmltcG9ydCB7IE1hcE9wdGlvbnNDb25zdGFudHMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG4vLyBFbnVtc1xuaW1wb3J0IHsgTWFwTWFya2VyU3RyaW5nRW51bSB9IGZyb20gJy4uLy4uL2VudW1zJztcblxuLy8gU3ZnIFJvdXRlc1xuaW1wb3J0IHsgTWFwU3ZnUm91dGVzIH0gZnJvbSAnLi4vc3ZnLXJvdXRlcyc7XG5cbmV4cG9ydCBjbGFzcyBNYXBNYXJrZXJJY29uSGVscGVyIHtcbiAgICBzdGF0aWMgZ2V0Um91dGluZ01hcmtlckVsZW1lbnQgPSAoXG4gICAgICAgIHN0b3BOdW1iZXI6IG51bWJlcixcbiAgICAgICAgc3RvcFR5cGU6IHN0cmluZyxcbiAgICAgICAgaXNTdG9wQ2hlY2tlZD86IGJvb2xlYW4sXG4gICAgICAgIGlzTGlnaHRNb2RlPzogYm9vbGVhbixcbiAgICAgICAgbGFiZWxOYW1lPzogc3RyaW5nLFxuICAgICAgICBpc0ljb25NYXJrZXI/OiBib29sZWFuLFxuICAgICAgICBpc1Nob3dMYWJlbE9uSG92ZXI/OiBib29sZWFuLFxuICAgICAgICBpbmRleD86IG51bWJlclxuICAgICk6IEhUTUxFbGVtZW50ID0+IHtcbiAgICAgICAgY29uc3QgbWFya2VyRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICAgIGxldCBtYXJrZXJTdmcgPSAnJztcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgTWFwTWFya2VyU3RyaW5nRW51bS5ERUFESEVBRCxcbiAgICAgICAgICAgICAgICBNYXBNYXJrZXJTdHJpbmdFbnVtLlJFUEFJUixcbiAgICAgICAgICAgICAgICBNYXBNYXJrZXJTdHJpbmdFbnVtLkZVRUwsXG4gICAgICAgICAgICAgICAgTWFwTWFya2VyU3RyaW5nRW51bS5UT1dJTkcsXG4gICAgICAgICAgICAgICAgTWFwTWFya2VyU3RyaW5nRW51bS5QQVJLSU5HLFxuICAgICAgICAgICAgXS5pbmNsdWRlcyhzdG9wVHlwZSBhcyBNYXBNYXJrZXJTdHJpbmdFbnVtKSAmJlxuICAgICAgICAgICAgaXNJY29uTWFya2VyXG4gICAgICAgIClcbiAgICAgICAgICAgIG1hcmtlclN2ZyA9IHRoaXMuZ2V0Um91dGluZ01hcmtlckljb25Tdmcoc3RvcFR5cGUpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBtYXJrZXJTdmcgPSBNYXBNYXJrZXJJY29uSGVscGVyLmdldFJvdXRpbmdNYXJrZXJJY29uKFxuICAgICAgICAgICAgICAgIHN0b3BOdW1iZXIsXG4gICAgICAgICAgICAgICAgc3RvcFR5cGUsXG4gICAgICAgICAgICAgICAgaXNTdG9wQ2hlY2tlZCxcbiAgICAgICAgICAgICAgICBpc0xpZ2h0TW9kZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICBtYXJrZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3JvdXRpbmctaWNvbicpO1xuICAgICAgICBtYXJrZXJFbGVtZW50LmlubmVySFRNTCA9IG1hcmtlclN2ZztcblxuICAgICAgICBpZiAoaW5kZXggIT09IG51bGwpIG1hcmtlckVsZW1lbnQuaWQgPSAncm91dGluZ01hcmtlci0nICsgaW5kZXg7XG5cbiAgICAgICAgaWYgKGxhYmVsTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgbWFya2VyTGFiZWxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICBtYXJrZXJMYWJlbEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbWFya2VyLWxhYmVsJyk7XG4gICAgICAgICAgICBjb25zdCBtYXJrZXJMYWJlbFRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIG1hcmtlckxhYmVsVGV4dC5jbGFzc0xpc3QuYWRkKCdtYXJrZXItbGFiZWwtdGV4dCcpO1xuICAgICAgICAgICAgbWFya2VyTGFiZWxUZXh0LmlubmVySFRNTCA9IGxhYmVsTmFtZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgbWFya2VyTGFiZWxFbGVtZW50LmFwcGVuZENoaWxkKG1hcmtlckxhYmVsVGV4dCk7XG4gICAgICAgICAgICBtYXJrZXJFbGVtZW50LmFwcGVuZENoaWxkKG1hcmtlckxhYmVsRWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmIChpc1Nob3dMYWJlbE9uSG92ZXIpXG4gICAgICAgICAgICAgICAgbWFya2VyRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdzaG93LWxhYmVsLW9uLWhvdmVyJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWFya2VyRWxlbWVudDtcbiAgICB9O1xuXG4gICAgc3RhdGljIGdldE1pbGVzTWFya2VyRWxlbWVudCA9IChcbiAgICAgICAgc3RvcE51bWJlcjogbnVtYmVyLFxuICAgICAgICBzdG9wVHlwZTogc3RyaW5nLFxuICAgICAgICBsYWJlbE5hbWU/OiBzdHJpbmcsXG4gICAgICAgIGluZGV4PzogbnVtYmVyLFxuICAgICk6IEhUTUxFbGVtZW50ID0+IHtcbiAgICAgICAgY29uc3QgbWFya2VyRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICAgIGNvbnN0IG1hcmtlclN2ZyA9IE1hcE1hcmtlckljb25IZWxwZXIuZ2V0TWlsZXNNYXJrZXJTdmcoXG4gICAgICAgICAgICBzdG9wTnVtYmVyLFxuICAgICAgICAgICAgc3RvcFR5cGVcbiAgICAgICAgKTtcblxuICAgICAgICBtYXJrZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ21pbGVzLWljb24nKTtcbiAgICAgICAgbWFya2VyRWxlbWVudC5pbm5lckhUTUwgPSBtYXJrZXJTdmc7XG5cbiAgICAgICAgaWYgKGluZGV4ICE9PSBudWxsKSBtYXJrZXJFbGVtZW50LmlkID0gJ21pbGVzTWFya2VyLScgKyBpbmRleDtcblxuICAgICAgICBpZiAobGFiZWxOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBtYXJrZXJMYWJlbEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIG1hcmtlckxhYmVsRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdtYXJrZXItbGFiZWwnLCAncGUtbm9uZScpO1xuICAgICAgICAgICAgY29uc3QgbWFya2VyTGFiZWxUZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICBtYXJrZXJMYWJlbFRleHQuY2xhc3NMaXN0LmFkZChcbiAgICAgICAgICAgICAgICAnbWFya2VyLWxhYmVsLXRleHQnLFxuICAgICAgICAgICAgICAgICd0ZXh0LWNvbG9yLWJsYWNrLTInXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWFya2VyTGFiZWxUZXh0LmlubmVySFRNTCA9IGxhYmVsTmFtZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgbWFya2VyTGFiZWxFbGVtZW50LmFwcGVuZENoaWxkKG1hcmtlckxhYmVsVGV4dCk7XG4gICAgICAgICAgICBtYXJrZXJFbGVtZW50LmFwcGVuZENoaWxkKG1hcmtlckxhYmVsRWxlbWVudCk7XG4gICAgICAgICAgICBtYXJrZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3Nob3ctbGFiZWwtb24taG92ZXInKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYXJrZXJFbGVtZW50O1xuICAgIH07XG5cbiAgICBzdGF0aWMgZ2V0Um91dGluZ01hcmtlckljb24gPSAoXG4gICAgICAgIHN0b3BOdW1iZXI6IG51bWJlcixcbiAgICAgICAgc3RvcFR5cGU6IHN0cmluZyxcbiAgICAgICAgaXNTdG9wQ2hlY2tlZD86IGJvb2xlYW4sXG4gICAgICAgIGlzTGlnaHRNb2RlPzogYm9vbGVhblxuICAgICk6IHN0cmluZyA9PiB7XG4gICAgICAgIGlmICghaXNTdG9wQ2hlY2tlZCkge1xuICAgICAgICAgICAgY29uc3QgbWFya2VyU3ZnID0gdGhpcy5nZXRSb3V0aW5nTWFya2VyU3ZnKFxuICAgICAgICAgICAgICAgIHN0b3BOdW1iZXIsXG4gICAgICAgICAgICAgICAgc3RvcFR5cGUsXG4gICAgICAgICAgICAgICAgaXNMaWdodE1vZGVcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHJldHVybiBtYXJrZXJTdmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyU3ZnID0gdGhpcy5nZXRSb3V0aW5nQ2hlY2tlZE1hcmtlclN2ZyhcbiAgICAgICAgICAgICAgICBzdG9wVHlwZSxcbiAgICAgICAgICAgICAgICBpc0xpZ2h0TW9kZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcmV0dXJuIGNoZWNrZWRNYXJrZXJTdmc7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgc3RhdGljIGdldFJvdXRpbmdNYXJrZXJTdmcgPSAoXG4gICAgICAgIHN0b3BOdW1iZXI6IG51bWJlcixcbiAgICAgICAgc3RvcFR5cGU6IHN0cmluZyxcbiAgICAgICAgaXNMaWdodE1vZGU/OiBib29sZWFuXG4gICAgKTogc3RyaW5nID0+IHtcbiAgICAgICAgY29uc3QgbWFya2VyQ29sb3IgPSBpc0xpZ2h0TW9kZVxuICAgICAgICAgICAgPyBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0xJR0hUX0NPTE9SU1tcbiAgICAgICAgICAgICAgICAgIHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0xJR0hUX0NPTE9SU1xuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICA6IE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfREFSS19DT0xPUlNbXG4gICAgICAgICAgICAgICAgICBzdG9wVHlwZSBhcyBrZXlvZiB0eXBlb2YgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9EQVJLX0NPTE9SU1xuICAgICAgICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IG1hcmtlck91dGxpbmVDb2xvciA9XG4gICAgICAgICAgICBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX09VVExJTkVfQ09MT1JTW1xuICAgICAgICAgICAgICAgIGlzTGlnaHRNb2RlXG4gICAgICAgICAgICAgICAgICAgID8gTWFwTWFya2VyU3RyaW5nRW51bS5XSElURVxuICAgICAgICAgICAgICAgICAgICA6IChzdG9wVHlwZSBhcyBrZXlvZiB0eXBlb2YgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9PVVRMSU5FX0NPTE9SUylcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgbWFya2VyRG90Q29sb3IgPVxuICAgICAgICAgICAgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9ET1RfQ09MT1JTW1xuICAgICAgICAgICAgICAgIGlzTGlnaHRNb2RlXG4gICAgICAgICAgICAgICAgICAgID8gTWFwTWFya2VyU3RyaW5nRW51bS5MSUdIVFxuICAgICAgICAgICAgICAgICAgICA6IE1hcE1hcmtlclN0cmluZ0VudW0uREFSS1xuICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBtYXJrZXJTdmcgPSBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMzXCIgdmlld0JveD1cIjAgMCAzMCAzM1wiIGZpbGw9XCJub25lXCIgY2xhc3M9XCJtYXJrZXItc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwic2hhZG93LWNpcmNsZVwiIGN4PVwiMTVcIiBjeT1cIjI5XCIgcj1cIjNcIiBmaWxsPVwiJHttYXJrZXJDb2xvcn1cIiBzdHJva2U9XCIke21hcmtlckRvdENvbG9yfVwiIHN0cm9rZS13aWR0aD1cIjJcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8yNDA2MF81OTA5MClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI2IDE0Ljk3MzJDMjUuOTk5MSAxNi43NzE1IDI1LjU1NTQgMTguNTQyIDI0LjcwOCAyMC4xMjg5QzIzLjg2MDYgMjEuNzE1NyAyMi42MzU1IDIzLjA3MDIgMjEuMTQwNSAyNC4wNzMyQzIxLjExNjUgMjQuMDkxMiAyMC43NjA5IDI0LjMxMDIgMjAuNjIwNyAyNC40MDIyQzE3LjI0ODUgMjYuNTQyMiAxNS44OTU0IDI3Ljk4NzIgMTUuMzUwNSAyOC44MDIyQzE1LjI4NTkgMjguODk5MSAxNS4xODU0IDI4Ljk2NjUgMTUuMDcxMiAyOC45ODk3QzE0Ljk1NjkgMjkuMDEyOSAxNC44MzgxIDI4Ljk5MDEgMTQuNzQwNiAyOC45MjYyQzE0LjY5MTYgMjguODkzMiAxNC42NDk0IDI4Ljg1MTEgMTQuNjE2NCAyOC44MDIyQzE0LjA3MTYgMjcuOTkxMiAxMi43MTM1IDI2LjU0NjIgOS4zNDYyNiAyNC40MDIyQzkuMTkzMDIgMjQuMzA3MiA4Ljg1MTUgMjQuMDkxMiA4LjgyNjQ2IDI0LjA3MzJDNy4yNTY1NiAyMy4wMTAzIDUuOTg4NiAyMS41NjAxIDUuMTQ1NzIgMTkuODYzNUM0LjMwMjg1IDE4LjE2NjkgMy45MTM2OCAxNi4yODE1IDQuMDE2MDMgMTQuMzkwNEM0LjExODM3IDEyLjQ5OTMgNC43MDg3NCAxMC42NjY3IDUuNzI5ODEgOS4wNzA3QzYuNzUwODggNy40NzQ2NiA4LjE2Nzk2IDYuMTY5MzYgOS44NDM0MiA1LjI4MTU1QzExLjUxODkgNC4zOTM3NSAxMy4zOTU4IDMuOTUzNjEgMTUuMjkyIDQuMDAzODdDMTcuMTg4MSA0LjA1NDEzIDE5LjAzOSA0LjU5MzEgMjAuNjY0OSA1LjU2ODQyQzIyLjI5MDggNi41NDM3NCAyMy42MzY1IDcuOTIyMjggMjQuNTcxMyA5LjU3MDE3QzI1LjUwNjIgMTEuMjE4MSAyNS45OTgzIDEzLjA3OTMgMjYgMTQuOTczMlpcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIke21hcmtlck91dGxpbmVDb2xvcn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwib3V0c2lkZS1jaXJjbGVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY3g9XCIxNVwiIGN5PVwiMTVcIiByPVwiOVwiIGZpbGw9XCIke21hcmtlckNvbG9yfVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0IHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBpZD1cIl80XCIgZGF0YS1uYW1lPVwiNFwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxNSAxNilcIiBmaWxsPVwiI2ZmZlwiIGZvbnQtc2l6ZT1cIjExXCIgZm9udC1mYW1pbHk9XCJNb250c2VycmF0LCBzYW5zLXNlcmlmXCIgZm9udC13ZWlnaHQ9XCI3MDBcIiBkb21pbmFudC1iYXNlbGluZT1cIm1pZGRsZVwiIHRleHQtYW5jaG9yPVwibWlkZGxlXCIgeT1cIjBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHNwYW4+JHtzdG9wTnVtYmVyID8/IDB9PC90c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMjQwNjBfNTkwOTBcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMyLjk5ODVcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjJcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMTUgMFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18yNDA2MF81OTA5MFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNDA2MF81OTA5MFwiIHJlc3VsdD1cInNoYXBlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPmA7XG5cbiAgICAgICAgcmV0dXJuIG1hcmtlclN2ZztcbiAgICB9O1xuXG4gICAgc3RhdGljIGdldE1pbGVzTWFya2VyU3ZnID0gKFxuICAgICAgICBzdG9wTnVtYmVyOiBudW1iZXIsXG4gICAgICAgIHN0b3BUeXBlOiBzdHJpbmdcbiAgICApOiBzdHJpbmcgPT4ge1xuICAgICAgICBjb25zdCBtYXJrZXJDb2xvciA9XG4gICAgICAgICAgICBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0xJR0hUX0NPTE9SU1tcbiAgICAgICAgICAgICAgICBzdG9wVHlwZSBhcyBrZXlvZiB0eXBlb2YgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9MSUdIVF9DT0xPUlNcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgbWFya2VyU3ZnUGF0aCA9XG4gICAgICAgICAgICBNYXBPcHRpb25zQ29uc3RhbnRzLk1JTEVTX01BUktFUl9JQ09OX1BBVEhTW1xuICAgICAgICAgICAgICAgIHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLk1JTEVTX01BUktFUl9JQ09OX1BBVEhTXG4gICAgICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IG1hcmtlclN2ZyA9IGA8c3ZnIHdpZHRoPVwiMzRcIiBoZWlnaHQ9XCIzNFwiIHZpZXdCb3g9XCIwIDAgMzQgMzRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cIm1hcmtlci1zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTE0NzlfNjg1NilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPVwid2hpdGUtY2lyY2xlXCIgeD1cIjZcIiB5PVwiNlwiIHdpZHRoPVwiMjJcIiBoZWlnaHQ9XCIyMlwiIHJ4PVwiMTFcIiBmaWxsPVwid2hpdGVcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz1cImluc2lkZS1jaXJjbGVcIiB4PVwiOFwiIHk9XCI4XCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgcng9XCI5XCJmaWxsPVwiJHttYXJrZXJDb2xvcn1cIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cIm1hcmtlci1wYXRoXCIgZD1cIiR7bWFya2VyU3ZnUGF0aH1cIiBmaWxsPVwid2hpdGVcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dCBjbGFzcz1cIm1hcmtlci1udW1iZXJcIiBmaWxsPVwid2hpdGVcIiBmb250LXNpemU9XCIxMVwiIGZvbnQtZmFtaWx5PVwiTW9udHNlcnJhdCwgc2Fucy1zZXJpZlwiIGZvbnQtd2VpZ2h0PVwiNzAwXCIgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiB4PVwiNTAlXCIgeT1cIjUwJVwiIGR5PVwiLjM1ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHNwYW4+JHtzdG9wTnVtYmVyID8/IDB9PC90c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMTE0NzlfNjg1NlwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjM0XCIgaGVpZ2h0PVwiMzRcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiM1wiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW4yPVwiaGFyZEFscGhhXCIgb3BlcmF0b3I9XCJvdXRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMyAwXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTIyNF85MjgyXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTIyNF85MjgyXCIgcmVzdWx0PVwic2hhcGVcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPmA7XG5cbiAgICAgICAgcmV0dXJuIG1hcmtlclN2ZztcbiAgICB9O1xuXG4gICAgc3RhdGljIGdldFJvdXRpbmdDaGVja2VkTWFya2VyU3ZnID0gKFxuICAgICAgICBzdG9wVHlwZTogc3RyaW5nLFxuICAgICAgICBpc0xpZ2h0TW9kZT86IGJvb2xlYW5cbiAgICApID0+IHtcbiAgICAgICAgY29uc3QgY2hlY2tlZE1hcmtlckNvbG9yID0gaXNMaWdodE1vZGVcbiAgICAgICAgICAgID8gTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9MSUdIVF9DT0xPUlNbXG4gICAgICAgICAgICAgICAgICBzdG9wVHlwZSBhcyBrZXlvZiB0eXBlb2YgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9MSUdIVF9DT0xPUlNcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgOiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0RBUktfQ09MT1JTW1xuICAgICAgICAgICAgICAgICAgc3RvcFR5cGUgYXMga2V5b2YgdHlwZW9mIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfREFSS19DT0xPUlNcbiAgICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyT3V0bGluZUNvbG9yID1cbiAgICAgICAgICAgIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfT1VUTElORV9DT0xPUlNbXG4gICAgICAgICAgICAgICAgaXNMaWdodE1vZGVcbiAgICAgICAgICAgICAgICAgICAgPyBNYXBNYXJrZXJTdHJpbmdFbnVtLldISVRFXG4gICAgICAgICAgICAgICAgICAgIDogKHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX09VVExJTkVfQ09MT1JTKVxuICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyRG90Q29sb3IgPVxuICAgICAgICAgICAgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9ET1RfQ09MT1JTW1xuICAgICAgICAgICAgICAgIGlzTGlnaHRNb2RlXG4gICAgICAgICAgICAgICAgICAgID8gTWFwTWFya2VyU3RyaW5nRW51bS5MSUdIVFxuICAgICAgICAgICAgICAgICAgICA6IE1hcE1hcmtlclN0cmluZ0VudW0uREFSS1xuICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyU3ZnID0gYDxzdmcgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMzXCIgdmlld0JveD1cIjAgMCAzMCAzM1wiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTVcIiBjeT1cIjI5XCIgcj1cIjNcIiBmaWxsPVwiJHtjaGVja2VkTWFya2VyQ29sb3J9XCIgc3Ryb2tlPVwiJHtjaGVja2VkTWFya2VyRG90Q29sb3J9XCIgc3Ryb2tlLXdpZHRoPVwiMlwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTgwNTVfMzQyMzgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNiAxNC45NzMyQzI1Ljk5OTEgMTYuNzcxNSAyNS41NTU0IDE4LjU0MiAyNC43MDggMjAuMTI4OUMyMy44NjA2IDIxLjcxNTcgMjIuNjM1NSAyMy4wNzAyIDIxLjE0MDUgMjQuMDczMkMyMS4xMTY1IDI0LjA5MTIgMjAuNzYwOSAyNC4zMTAyIDIwLjYyMDcgMjQuNDAyMkMxNy4yNDg1IDI2LjU0MjIgMTUuODk1NCAyNy45ODcyIDE1LjM1MDUgMjguODAyMkMxNS4yODU5IDI4Ljg5OTEgMTUuMTg1NCAyOC45NjY1IDE1LjA3MTIgMjguOTg5N0MxNC45NTY5IDI5LjAxMjkgMTQuODM4MSAyOC45OTAxIDE0Ljc0MDYgMjguOTI2MkMxNC42OTE2IDI4Ljg5MzIgMTQuNjQ5NCAyOC44NTExIDE0LjYxNjQgMjguODAyMkMxNC4wNzE2IDI3Ljk5MTIgMTIuNzEzNSAyNi41NDYyIDkuMzQ2MjYgMjQuNDAyMkM5LjE5MzAyIDI0LjMwNzIgOC44NTE1IDI0LjA5MTIgOC44MjY0NiAyNC4wNzMyQzcuMjU2NTYgMjMuMDEwMyA1Ljk4ODYgMjEuNTYwMSA1LjE0NTcyIDE5Ljg2MzVDNC4zMDI4NSAxOC4xNjY5IDMuOTEzNjggMTYuMjgxNSA0LjAxNjAzIDE0LjM5MDRDNC4xMTgzNyAxMi40OTkzIDQuNzA4NzQgMTAuNjY2NyA1LjcyOTgxIDkuMDcwN0M2Ljc1MDg4IDcuNDc0NjYgOC4xNjc5NiA2LjE2OTM2IDkuODQzNDIgNS4yODE1NUMxMS41MTg5IDQuMzkzNzUgMTMuMzk1OCAzLjk1MzYxIDE1LjI5MiA0LjAwMzg3QzE3LjE4ODEgNC4wNTQxMyAxOS4wMzkgNC41OTMxIDIwLjY2NDkgNS41Njg0MkMyMi4yOTA4IDYuNTQzNzQgMjMuNjM2NSA3LjkyMjI4IDI0LjU3MTMgOS41NzAxN0MyNS41MDYyIDExLjIxODEgMjUuOTk4MyAxMy4wNzkzIDI2IDE0Ljk3MzJaXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiJHtjaGVja2VkTWFya2VyT3V0bGluZUNvbG9yfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTVcIiBjeT1cIjE1XCIgcj1cIjlcIiBmaWxsPVwiJHtjaGVja2VkTWFya2VyQ29sb3J9XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEzLjA0NjIgMTkuMDQ3N0w5LjcxMjkxIDE1LjcxNDRDOS42NTcxOCAxNS42NTg3IDkuNjEyOTcgMTUuNTkyNSA5LjU4MjggMTUuNTE5N0M5LjU1MjY0IDE1LjQ0NjkgOS41MzcxMSAxNS4zNjg5IDkuNTM3MTEgMTUuMjkwMUM5LjUzNzExIDE1LjIxMTIgOS41NTI2NCAxNS4xMzMyIDkuNTgyOCAxNS4wNjA0QzkuNjEyOTcgMTQuOTg3NiA5LjY1NzE4IDE0LjkyMTQgOS43MTI5MSAxNC44NjU3TDEwLjU2MjkgMTQuMDE4NEMxMC42MTg2IDEzLjk2MjcgMTAuNjg0OCAxMy45MTg0IDEwLjc1NzYgMTMuODg4M0MxMC44MzA0IDEzLjg1ODEgMTAuOTA4NCAxMy44NDI2IDEwLjk4NzIgMTMuODQyNkMxMS4wNjYxIDEzLjg0MjYgMTEuMTQ0MSAxMy44NTgxIDExLjIxNjkgMTMuODg4M0MxMS4yODk3IDEzLjkxODQgMTEuMzU1OSAxMy45NjI3IDExLjQxMTYgMTQuMDE4NEwxMy40NzAyIDE2LjA3NzFMMTguNTg2OSAxMC45NTcxQzE4LjY0MjYgMTAuOTAxMyAxOC43MDg4IDEwLjg1NzEgMTguNzgxNiAxMC44MjY5QzE4Ljg1NDQgMTAuNzk2OCAxOC45MzI0IDEwLjc4MTIgMTkuMDExMiAxMC43ODEyQzE5LjA5MDEgMTAuNzgxMiAxOS4xNjgxIDEwLjc5NjggMTkuMjQwOSAxMC44MjY5QzE5LjMxMzcgMTAuODU3MSAxOS4zNzk5IDEwLjkwMTMgMTkuNDM1NiAxMC45NTcxTDIwLjI4NDIgMTEuODA1N0MyMC4zNCAxMS44NjE0IDIwLjM4NDIgMTEuOTI3NiAyMC40MTQ0IDEyLjAwMDRDMjAuNDQ0NSAxMi4wNzMyIDIwLjQ2MDEgMTIuMTUxMiAyMC40NjAxIDEyLjIzMDFDMjAuNDYwMSAxMi4zMDg5IDIwLjQ0NDUgMTIuMzg2OSAyMC40MTQ0IDEyLjQ1OTdDMjAuMzg0MiAxMi41MzI1IDIwLjM0IDEyLjU5ODcgMjAuMjg0MiAxMi42NTQ0TDEzLjg5NDkgMTkuMDQ1MUMxMy44MzkyIDE5LjEwMDggMTMuNzczIDE5LjE0NSAxMy43MDAyIDE5LjE3NTJDMTMuNjI3NCAxOS4yMDUzIDEzLjU0OTQgMTkuMjIwOSAxMy40NzA2IDE5LjIyMDlDMTMuMzkxOCAxOS4yMjA5IDEzLjMxMzcgMTkuMjA1MyAxMy4yNDA5IDE5LjE3NTJDMTMuMTY4MSAxOS4xNDUgMTMuMTAyIDE5LjEwMDggMTMuMDQ2MiAxOS4wNDUxVjE5LjA0NzdaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE4MDU1XzM0MjM4XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzMi45OTg1XCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMlwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjE1IDBcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE4MDU1XzM0MjM4XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xODA1NV8zNDIzOFwiIHJlc3VsdD1cInNoYXBlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5gO1xuXG4gICAgICAgIHJldHVybiBjaGVja2VkTWFya2VyU3ZnO1xuICAgIH07XG5cbiAgICBzdGF0aWMgZ2V0Um91dGluZ01hcmtlckljb25TdmcgPSAoc3RvcFR5cGU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gICAgICAgIGNvbnN0IG1hcmtlclN2Z1BhdGggPVxuICAgICAgICAgICAgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9JQ09OX1BBVEhTW1xuICAgICAgICAgICAgICAgIHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0lDT05fUEFUSFNcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgY2hlY2tlZE1hcmtlckNvbG9yID1cbiAgICAgICAgICAgIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfTElHSFRfQ09MT1JTW1xuICAgICAgICAgICAgICAgIHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0xJR0hUX0NPTE9SU1xuICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyT3V0bGluZUNvbG9yID1cbiAgICAgICAgICAgIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfT1VUTElORV9DT0xPUlNbXG4gICAgICAgICAgICAgICAgTWFwTWFya2VyU3RyaW5nRW51bS5XSElURVxuICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyRG90Q29sb3IgPVxuICAgICAgICAgICAgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9ET1RfQ09MT1JTW1xuICAgICAgICAgICAgICAgIE1hcE1hcmtlclN0cmluZ0VudW0uTElHSFRcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3Qgcm91dGluZ01hcmtlclN2ZyA9IGA8c3ZnIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzM1wiIHZpZXdCb3g9XCIwIDAgMzAgMzNcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cIm1hcmtlci1zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cInNoYWRvdy1jaXJjbGVcIiBjeD1cIjE1XCIgY3k9XCIyOVwiIHI9XCIzXCIgZmlsbD1cIiR7Y2hlY2tlZE1hcmtlckNvbG9yfVwiIHN0cm9rZT1cIiR7Y2hlY2tlZE1hcmtlckRvdENvbG9yfVwiIHN0cm9rZS13aWR0aD1cIjJcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzkyNjhfNzk4MzQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNiAxNC45NzMyQzI1Ljk5OTEgMTYuNzcxNSAyNS41NTU0IDE4LjU0MiAyNC43MDggMjAuMTI4OUMyMy44NjA2IDIxLjcxNTcgMjIuNjM1NSAyMy4wNzAyIDIxLjE0MDUgMjQuMDczMkMyMS4xMTY1IDI0LjA5MTIgMjAuNzYwOSAyNC4zMTAyIDIwLjYyMDcgMjQuNDAyMkMxNy4yNDg1IDI2LjU0MjIgMTUuODk1NCAyNy45ODcyIDE1LjM1MDUgMjguODAyMkMxNS4yODU5IDI4Ljg5OTEgMTUuMTg1NCAyOC45NjY1IDE1LjA3MTIgMjguOTg5N0MxNC45NTY5IDI5LjAxMjkgMTQuODM4MSAyOC45OTAxIDE0Ljc0MDYgMjguOTI2MkMxNC42OTE2IDI4Ljg5MzIgMTQuNjQ5NCAyOC44NTExIDE0LjYxNjQgMjguODAyMkMxNC4wNzE2IDI3Ljk5MTIgMTIuNzEzNSAyNi41NDYyIDkuMzQ2MjYgMjQuNDAyMkM5LjE5MzAyIDI0LjMwNzIgOC44NTE1IDI0LjA5MTIgOC44MjY0NiAyNC4wNzMyQzcuMjU2NTYgMjMuMDEwMyA1Ljk4ODYgMjEuNTYwMSA1LjE0NTcyIDE5Ljg2MzVDNC4zMDI4NSAxOC4xNjY5IDMuOTEzNjggMTYuMjgxNSA0LjAxNjAzIDE0LjM5MDRDNC4xMTgzNyAxMi40OTkzIDQuNzA4NzQgMTAuNjY2NyA1LjcyOTgxIDkuMDcwN0M2Ljc1MDg4IDcuNDc0NjYgOC4xNjc5NiA2LjE2OTM2IDkuODQzNDIgNS4yODE1NUMxMS41MTg5IDQuMzkzNzUgMTMuMzk1OCAzLjk1MzYxIDE1LjI5MiA0LjAwMzg3QzE3LjE4ODEgNC4wNTQxMyAxOS4wMzkgNC41OTMxIDIwLjY2NDkgNS41Njg0MkMyMi4yOTA4IDYuNTQzNzQgMjMuNjM2NSA3LjkyMjI4IDI0LjU3MTMgOS41NzAxN0MyNS41MDYyIDExLjIxODEgMjUuOTk4MyAxMy4wNzkzIDI2IDE0Ljk3MzJaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJvdXRzaWRlLWNpcmNsZVwiIGN4PVwiMTVcIiBjeT1cIjE1XCIgcj1cIjlcIiBmaWxsPVwiJHtjaGVja2VkTWFya2VyQ29sb3J9XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiJHttYXJrZXJTdmdQYXRofVwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF85MjY4Xzc5ODM0XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzMi45OTg1XCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMlwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjE1IDBcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzkyNjhfNzk4MzRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzkyNjhfNzk4MzRcIiByZXN1bHQ9XCJzaGFwZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+YDtcblxuICAgICAgICByZXR1cm4gcm91dGluZ01hcmtlclN2ZztcbiAgICB9O1xuXG4gICAgc3RhdGljIGdldE1hcE1hcmtlcihpc0Zhdm9yaXRlPzogYm9vbGVhbiwgaXNDbG9zZWQ/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IG1hcmtlckljb25Sb3V0ZSA9IE1hcFN2Z1JvdXRlcy5kZWZhdWx0TWFya2VySWNvbjtcblxuICAgICAgICBpZiAoaXNDbG9zZWQpIG1hcmtlckljb25Sb3V0ZSA9IE1hcFN2Z1JvdXRlcy5jbG9zZWRNYXJrZXJJY29uO1xuICAgICAgICBlbHNlIGlmIChpc0Zhdm9yaXRlKSBtYXJrZXJJY29uUm91dGUgPSBNYXBTdmdSb3V0ZXMuZmF2b3JpdGVNYXJrZXJJY29uO1xuXG4gICAgICAgIHJldHVybiBtYXJrZXJJY29uUm91dGU7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRDbHVzdGVyTWFya2VyKFxuICAgICAgICBjb3VudDogbnVtYmVyLFxuICAgICAgICBpc1NlbGVjdGVkPzogYm9vbGVhbixcbiAgICAgICAgaXNGdWVsTWFya2VyPzogYm9vbGVhblxuICAgICk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG1hcmtlckNvbG9yID0gaXNGdWVsTWFya2VyID8gJyM2NjkyRjEnIDogJyNGQUIxNUMnO1xuICAgICAgICBjb25zdCBtYXJrZXJTdmcgPSBgPHN2ZyBjbGFzcz1cIm1hcmtlci1zdmdcIiB3aWR0aD1cIjUyXCIgaGVpZ2h0PVwiNTJcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzI2MzFfMjc0MTA0KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjE0XCIgZmlsbD1cIiR7bWFya2VyQ29sb3J9XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJfNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLW5hbWU9XCI0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgyNiAyNylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNmZmZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplPVwiMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9XCJNb250c2VycmF0LCBzYW5zLXNlcmlmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0PVwiNzAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWluYW50LWJhc2VsaW5lPVwibWlkZGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYW5jaG9yPVwibWlkZGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRzcGFuPiAke2NvdW50fSA8L3RzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxnIG9wYWNpdHk9XCIwLjdcIiBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjFfZF8yNjMxXzI3NDEwNClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMzYuNzgxIDcuNjUwMDJMMzUuNDYxIDkuODkzMDJDMzUuMzcwNSAxMC4wNTAyIDM1LjM0NDYgMTAuMjM2MyAzNS4zODg2IDEwLjQxMjJDMzUuNDMyNiAxMC41ODgxIDM1LjU0MzIgMTAuNzQgMzUuNjk3IDEwLjgzNkMzNy44OTE3IDEyLjI0MDkgMzkuNzU1NSAxNC4xMDUxIDQxLjE2IDE2LjNDNDEuMjU2IDE2LjQ1MzggNDEuNDA4IDE2LjU2NDQgNDEuNTgzOCAxNi42MDg0QzQxLjc1OTcgMTYuNjUyNCA0MS45NDU4IDE2LjYyNjUgNDIuMTAzIDE2LjUzNkw0NC4zNDYgMTUuMjE2QzQ0LjQyNzUgMTUuMTY5MSA0NC40OTg4IDE1LjEwNjEgNDQuNTU1NCAxNS4wMzFDNDQuNjEyMSAxNC45NTU5IDQ0LjY1MyAxNC44NzAyIDQ0LjY3NTggMTQuNzc4OUM0NC42OTg2IDE0LjY4NzYgNDQuNzAyNyAxNC41OTI2IDQ0LjY4OCAxNC40OTk3QzQ0LjY3MzIgMTQuNDA2OCA0NC42Mzk5IDE0LjMxNzggNDQuNTkgMTQuMjM4QzQyLjg0MjYgMTEuNDg2NyA0MC41MTAzIDkuMTU0MzYgMzcuNzU5IDcuNDA3MDJDMzcuNjc5MiA3LjM1NzA5IDM3LjU5MDIgNy4zMjM3NiAzNy40OTczIDcuMzA5MDFDMzcuNDA0NCA3LjI5NDI3IDM3LjMwOTQgNy4yOTg0IDM3LjIxODEgNy4zMjExOEMzNy4xMjY4IDcuMzQzOTYgMzcuMDQxMSA3LjM4NDkxIDM2Ljk2NiA3LjQ0MTU4QzM2Ljg5MDkgNy40OTgyNSAzNi44Mjc5IDcuNTY4NDggMzYuNzgxIDcuNjUwMDJaTTQ2LjYwMSAyMC42NTFMNDQuMDczIDIxLjMwOUM0My44OTg1IDIxLjM1NjIgNDMuNzQ5IDIxLjQ2OSA0My42NTU4IDIxLjYyMzlDNDMuNTYyNiAyMS43Nzg4IDQzLjUzMjkgMjEuOTYzNyA0My41NzMgMjIuMTRDNDQuMTM0MyAyNC42ODI3IDQ0LjEzNDMgMjcuMzE3MyA0My41NzMgMjkuODZDNDMuNTMyOSAzMC4wMzYzIDQzLjU2MjYgMzAuMjIxMiA0My42NTU4IDMwLjM3NjFDNDMuNzQ5IDMwLjUzMSA0My44OTg1IDMwLjY0MzkgNDQuMDczIDMwLjY5MUw0Ni42MDEgMzEuMzQ5QzQ2LjY5MTcgMzEuMzczNSA0Ni43ODY0IDMxLjM3OTQgNDYuODc5NSAzMS4zNjY1QzQ2Ljk3MjUgMzEuMzUzNiA0Ny4wNjIxIDMxLjMyMjEgNDcuMTQyNyAzMS4yNzM4QzQ3LjIyMzMgMzEuMjI1NiA0Ny4yOTM0IDMxLjE2MTYgNDcuMzQ4OCAzMS4wODU3QzQ3LjQwNDEgMzEuMDA5OCA0Ny40NDM3IDMwLjkyMzUgNDcuNDY1IDMwLjgzMkM0OC4xNzMgMjcuNjQ5NiA0OC4xNzMgMjQuMzUwNCA0Ny40NjUgMjEuMTY4QzQ3LjQ0MzcgMjEuMDc2NSA0Ny40MDQxIDIwLjk5MDIgNDcuMzQ4OCAyMC45MTQzQzQ3LjI5MzQgMjAuODM4NCA0Ny4yMjMzIDIwLjc3NDQgNDcuMTQyNyAyMC43MjYyQzQ3LjA2MjEgMjAuNjc4IDQ2Ljk3MjUgMjAuNjQ2NCA0Ni44Nzk1IDIwLjYzMzVDNDYuNzg2NCAyMC42MjA2IDQ2LjY5MTcgMjAuNjI2NiA0Ni42MDEgMjAuNjUxWk0zMC42OTYgNDQuMDc5QzMwLjY1MDIgNDMuOTAzNyAzMC41Mzc2IDQzLjc1MzIgMzAuMzgyMyA0My42NTk4QzMwLjIyNyA0My41NjYzIDMwLjA0MTQgNDMuNTM3NCAyOS44NjUgNDMuNTc5QzI3LjMxOTIgNDQuMTM5NyAyNC42ODE4IDQ0LjEzOTcgMjIuMTM2IDQzLjU3OUMyMS45NTk3IDQzLjUzODkgMjEuNzc0OCA0My41Njg2IDIxLjYxOTkgNDMuNjYxOEMyMS40NjUgNDMuNzU1IDIxLjM1MjEgNDMuOTA0NSAyMS4zMDUgNDQuMDc5TDIwLjY0NyA0Ni42QzIwLjYyMjUgNDYuNjkwNyAyMC42MTY2IDQ2Ljc4NTQgMjAuNjI5NSA0Ni44Nzg1QzIwLjY0MjQgNDYuOTcxNiAyMC42NzM5IDQ3LjA2MTEgMjAuNzIyMiA0Ny4xNDE3QzIwLjc3MDQgNDcuMjIyMyAyMC44MzQ0IDQ3LjI5MjQgMjAuOTEwMyA0Ny4zNDc4QzIwLjk4NjIgNDcuNDAzMiAyMS4wNzI1IDQ3LjQ0MjcgMjEuMTY0IDQ3LjQ2NEMyNC4zNDcxIDQ4LjE3MiAyNy42NDY5IDQ4LjE3MiAzMC44MyA0Ny40NjRDMzAuOTIxNCA0Ny40NDI3IDMxLjAwNzYgNDcuNDAzMiAzMS4wODM0IDQ3LjM0NzlDMzEuMTU5MiA0Ny4yOTI2IDMxLjIyMzEgNDcuMjIyNiAzMS4yNzE0IDQ3LjE0MjFDMzEuMzE5NiA0Ny4wNjE2IDMxLjM1MTIgNDYuOTcyMiAzMS4zNjQxIDQ2Ljg3OTJDMzEuMzc3MSA0Ni43ODYzIDMxLjM3MTMgNDYuNjkxNyAzMS4zNDcgNDYuNjAxTDMwLjY5NiA0NC4wNzlaTTE1LjIxIDcuNjQ5MDJDMTUuMTYzIDcuNTY3NjIgMTUuMTAwMiA3LjQ5NjUxIDE1LjAyNTEgNy40Mzk5M0MxNC45NTAxIDcuMzgzMzUgMTQuODY0NCA3LjM0MjQ1IDE0Ljc3MzMgNy4zMTk2OEMxNC42ODIxIDcuMjk2OTEgMTQuNTg3MyA3LjI5MjczIDE0LjQ5NDUgNy4zMDczOUMxNC40MDE2IDcuMzIyMDUgMTQuMzEyNyA3LjM1NTI2IDE0LjIzMyA3LjQwNTAyQzExLjQ3NDIgOS4xNDU0MyA5LjEzODQyIDExLjQ3OTUgNy4zOTU5OSAxNC4yMzdDNy4zNDYyMyAxNC4zMTY3IDcuMzEzMDMgMTQuNDA1NyA3LjI5ODM3IDE0LjQ5ODVDNy4yODM3MSAxNC41OTEzIDcuMjg3ODkgMTQuNjg2MSA3LjMxMDY2IDE0Ljc3NzNDNy4zMzM0MyAxNC44Njg1IDcuMzc0MzIgMTQuOTU0MSA3LjQzMDkgMTUuMDI5MkM3LjQ4NzQ4IDE1LjEwNDIgNy41NTg1OSAxNS4xNjcxIDcuNjM5OTkgMTUuMjE0TDkuODg1OTkgMTYuNTMzQzEwLjA0MzYgMTYuNjI0NiAxMC4yMzA4IDE2LjY1MTEgMTAuNDA3NiAxNi42MDY4QzEwLjU4NDUgMTYuNTYyNiAxMC43MzcxIDE2LjQ1MTEgMTAuODMzIDE2LjI5NkMxMi4yMzcgMTQuMTAyMSAxNC4xMDEgMTIuMjM5NCAxNi4yOTYgMTAuODM3QzE2LjQ1MSAxMC43NDExIDE2LjU2MjUgMTAuNTg4NSAxNi42MDY4IDEwLjQxMTZDMTYuNjUxMSAxMC4yMzQ4IDE2LjYyNDYgMTAuMDQ3NiAxNi41MzMgOS44OTAwMkwxNS4yMSA3LjY0OTAyWk03LjkwOTk5IDIxLjMwOEw1LjM5NTk5IDIwLjY1MkM1LjMwNTI4IDIwLjYyNzQgNS4yMTA1MyAyMC42MjEzIDUuMTE3NDEgMjAuNjM0MUM1LjAyNDI4IDIwLjY0NjggNC45MzQ2OCAyMC42NzgyIDQuODUzOTYgMjAuNzI2NEM0Ljc3MzIzIDIwLjc3NDYgNC43MDMwMyAyMC44Mzg1IDQuNjQ3NTQgMjAuOTE0M0M0LjU5MjA1IDIwLjk5MDIgNC41NTI0MiAyMS4wNzY1IDQuNTMwOTkgMjEuMTY4QzMuODIzIDI0LjM1MDQgMy44MjMgMjcuNjQ5NiA0LjUzMDk5IDMwLjgzMkM0LjU1MjMxIDMwLjkyMzUgNC41OTE4NCAzMS4wMDk4IDQuNjQ3MjEgMzEuMDg1N0M0LjcwMjU4IDMxLjE2MTYgNC43NzI2NyAzMS4yMjU2IDQuODUzMyAzMS4yNzM4QzQuOTMzOTIgMzEuMzIyMSA1LjAyMzQzIDMxLjM1MzYgNS4xMTY1IDMxLjM2NjVDNS4yMDk1NiAzMS4zNzk0IDUuMzA0MjggMzEuMzczNSA1LjM5NDk5IDMxLjM0OUw3LjkyMjk5IDMwLjY5MUM4LjA5NzUxIDMwLjY0MzkgOC4yNDcwMiAzMC41MzEgOC4zNDAyMiAzMC4zNzYxQzguNDMzNDIgMzAuMjIxMiA4LjQ2MzA4IDMwLjAzNjMgOC40MjI5OSAyOS44NkM4LjEzOTkyIDI4LjU5MjggNy45OTY3MyAyNy4yOTg0IDcuOTk1OTkgMjZDNy45OTU5MyAyNC43MDI3IDguMTM0MzkgMjMuNDA5IDguNDA4OTkgMjIuMTQxQzguNDQ5NjYgMjEuOTY0NSA4LjQyMDI4IDIxLjc3OSA4LjMyNzAzIDIxLjYyMzdDOC4yMzM3OSAyMS40NjgzIDguMDg0OTQgMjEuMzU1MiA3LjkwOTk5IDIxLjMwOFpNOS44ODg5OSAzNS40NjVMNy42NDU5OSAzNi43ODVDNy41NjQ0NiAzNi44MzIgNy40OTMyMiAzNi44OTQ5IDcuNDM2NTUgMzYuOTdDNy4zNzk4OCAzNy4wNDUxIDcuMzM4OTMgMzcuMTMwOSA3LjMxNjE2IDM3LjIyMjJDNy4yOTMzOCAzNy4zMTM1IDcuMjg5MjQgMzcuNDA4NCA3LjMwMzk5IDM3LjUwMTNDNy4zMTg3NCAzNy41OTQzIDcuMzUyMDcgMzcuNjgzMyA3LjQwMTk5IDM3Ljc2M0M5LjE0OTMzIDQwLjUxNDMgMTEuNDgxNyA0Mi44NDY3IDE0LjIzMyA0NC41OTRDMTQuMzEyNyA0NC42NDM5IDE0LjQwMTcgNDQuNjc3MyAxNC40OTQ3IDQ0LjY5MkMxNC41ODc2IDQ0LjcwNjggMTQuNjgyNiA0NC43MDI2IDE0Ljc3MzggNDQuNjc5OUMxNC44NjUxIDQ0LjY1NzEgMTQuOTUwOSA0NC42MTYxIDE1LjAyNiA0NC41NTk1QzE1LjEwMTEgNDQuNTAyOCAxNS4xNjQgNDQuNDMxNiAxNS4yMTEgNDQuMzVMMTYuNTMxIDQyLjEwN0MxNi42MjE0IDQxLjk0OTkgMTYuNjQ3NCA0MS43NjM4IDE2LjYwMzQgNDEuNTg3OUMxNi41NTk0IDQxLjQxMiAxNi40NDg4IDQxLjI2IDE2LjI5NSA0MS4xNjRDMTQuMTAwMyAzOS43NTkyIDEyLjIzNjUgMzcuODk1IDEwLjgzMiAzNS43QzEwLjczNiAzNS41NDYyIDEwLjU4NCAzNS40MzU3IDEwLjQwODEgMzUuMzkxNkMxMC4yMzIyIDM1LjM0NzYgMTAuMDQ2MSAzNS4zNzQ2IDkuODg4OTkgMzUuNDY1Wk00MS4xNiAzNS43QzM5Ljc1NTIgMzcuODk1MSAzNy44OTEgMzkuNzU5MyAzNS42OTYgNDEuMTY0QzM1LjU0MjIgNDEuMjYgMzUuNDMxNiA0MS40MTIgMzUuMzg3NiA0MS41ODc5QzM1LjM0MzYgNDEuNzYzOCAzNS4zNjk1IDQxLjk0OTkgMzUuNDYgNDIuMTA3TDM2Ljc4IDQ0LjM1QzM2LjgyNyA0NC40MzE2IDM2Ljg4OTkgNDQuNTAyOCAzNi45NjUgNDQuNTU5NUMzNy4wNDAxIDQ0LjYxNjEgMzcuMTI1OCA0NC42NTcxIDM3LjIxNzEgNDQuNjc5OUMzNy4zMDg0IDQ0LjcwMjYgMzcuNDAzNCA0NC43MDY4IDM3LjQ5NjMgNDQuNjkyQzM3LjU4OTIgNDQuNjc3MyAzNy42NzgyIDQ0LjY0MzkgMzcuNzU4IDQ0LjU5NEM0MC41MDkzIDQyLjg0NjcgNDIuODQxNiA0MC41MTQzIDQ0LjU4OSAzNy43NjNDNDQuNjM4OSAzNy42ODMzIDQ0LjY3MjIgMzcuNTk0MyA0NC42ODcgMzcuNTAxM0M0NC43MDE3IDM3LjQwODQgNDQuNjk3NiAzNy4zMTM1IDQ0LjY3NDggMzcuMjIyMkM0NC42NTIxIDM3LjEzMDkgNDQuNjExMSAzNy4wNDUxIDQ0LjU1NDQgMzYuOTdDNDQuNDk3OCAzNi44OTQ5IDQ0LjQyNjUgMzYuODMyIDQ0LjM0NSAzNi43ODVMNDIuMTAyIDM1LjQ2NUM0MS45NDQ4IDM1LjM3NDYgNDEuNzU4NyAzNS4zNDg2IDQxLjU4MjggMzUuMzkyNkM0MS40MDcgMzUuNDM2NyA0MS4yNTUgMzUuNTQ3MiA0MS4xNTkgMzUuNzAxTTI1Ljk5NiA0LjAwMDAyQzI0LjM3MDcgMy45OTc5OCAyMi43NTAxIDQuMTc2MDcgMjEuMTY0IDQuNTMxMDJDMjEuMDcyNSA0LjU1MjQ0IDIwLjk4NjIgNC41OTIwOCAyMC45MTAzIDQuNjQ3NTdDMjAuODM0NCA0LjcwMzA1IDIwLjc3MDUgNC43NzMyNSAyMC43MjI0IDQuODUzOThDMjAuNjc0MiA0LjkzNDcxIDIwLjY0MjggNS4wMjQzMSAyMC42MyA1LjExNzQzQzIwLjYxNzMgNS4yMTA1NiAyMC42MjM0IDUuMzA1MyAyMC42NDggNS4zOTYwMkwyMS4zMDQgNy45MTIwMkMyMS4zNTExIDguMDg2OTYgMjEuNDY0MyA4LjIzNjgxIDIxLjYxOTYgOC4zMzAwNkMyMS43NzUgOC40MjMzIDIxLjk2MDQgOC40NTI2OCAyMi4xMzcgOC40MTIwMkMyMy40MDUgOC4xMzc3NSAyNC42OTg3IDcuOTk5NjMgMjUuOTk2IDguMDAwMDJDMjcuMjk3MSA3Ljk5OTA3IDI4LjU5NDQgOC4xMzk5IDI5Ljg2NSA4LjQyMDAyQzMwLjA0MTQgOC40NjE2OCAzMC4yMjcgOC40MzI2OSAzMC4zODIzIDguMzM5MjZDMzAuNTM3NiA4LjI0NTgzIDMwLjY1MDIgOC4wOTUzNiAzMC42OTYgNy45MjAwMkwzMS4zNDcgNS4zOTMwMkMzMS4zNzEzIDUuMzAyMzcgMzEuMzc3MSA1LjIwNzc2IDMxLjM2NDEgNS4xMTQ4MUMzMS4zNTEyIDUuMDIxODYgMzEuMzE5NiA0LjkzMjQ3IDMxLjI3MTQgNC44NTE5NkMzMS4yMjMxIDQuNzcxNDUgMzEuMTU5MiA0LjcwMTQ2IDMxLjA4MzQgNC42NDYxNUMzMS4wMDc2IDQuNTkwODQgMzAuOTIxNCA0LjU1MTM1IDMwLjgzIDQuNTMwMDJDMjkuMjQzMSA0LjE3NTgxIDI3LjYyMTkgMy45OTgwNiAyNS45OTYgNC4wMDAwMlpcIiBmaWxsPVwiJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkID8gbWFya2VyQ29sb3IgOiAnI0ZGRkZGRidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzI2MzFfMjc0MTA0XCIgeD1cIjZcIiB5PVwiNlwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIyXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4xNSAwXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjYzMV8yNzQxMDRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNjMxXzI3NDEwNFwiIHJlc3VsdD1cInNoYXBlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMV9kXzI2MzFfMjc0MTA0XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNTEuOTk2MVwiIGhlaWdodD1cIjUxLjk5NVwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIyXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4xNSAwXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjYzMV8yNzQxMDRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNjMxXzI3NDEwNFwiIHJlc3VsdD1cInNoYXBlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPmA7XG5cbiAgICAgICAgY29uc3QgbWFya2VySWNvblJvdXRlID1cbiAgICAgICAgICAgICdkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtODtiYXNlNjQsJyArIGJ0b2EobWFya2VyU3ZnKTtcblxuICAgICAgICByZXR1cm4gbWFya2VyU3ZnO1xuICAgIH1cbn1cbiJdfQ==
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLW1hcmtlci1pY29uLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLW1hcC91dGlscy9oZWxwZXJzL21hcC1tYXJrZXItaWNvbi5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRCxRQUFRO0FBQ1IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxELGFBQWE7QUFDYixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE1BQU0sT0FBTyxtQkFBbUI7YUFDckIsNEJBQXVCLEdBQUcsQ0FDN0IsVUFBa0IsRUFDbEIsUUFBZ0IsRUFDaEIsYUFBdUIsRUFDdkIsV0FBcUIsRUFDckIsU0FBa0IsRUFDbEIsWUFBc0IsRUFDdEIsa0JBQTRCLEVBQzVCLEtBQWMsRUFDSCxFQUFFO1FBQ2IsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwRCxJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFFbkIsSUFDSTtZQUNJLG1CQUFtQixDQUFDLFFBQVE7WUFDNUIsbUJBQW1CLENBQUMsTUFBTTtZQUMxQixtQkFBbUIsQ0FBQyxJQUFJO1lBQ3hCLG1CQUFtQixDQUFDLE1BQU07WUFDMUIsbUJBQW1CLENBQUMsT0FBTztTQUM5QixDQUFDLFFBQVEsQ0FBQyxRQUErQixDQUFDO1lBQzNDLFlBQVk7WUFFWixTQUFTLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDOztZQUVuRCxTQUFTLEdBQUcsbUJBQW1CLENBQUMsb0JBQW9CLENBQ2hELFVBQVUsRUFDVixRQUFRLEVBQ1IsYUFBYSxFQUNiLFdBQVcs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S0FBSyxDQUM1QixDQUFDO1FBRU4sTUFBTSxxQkFBcUIsR0FDdkIsbUJBQW1CLENBQUMseUJBQXlCLENBQ3pDLG1CQUFtQixDQUFDLEtBQUssQ0FDNUIsQ0FBQztRQUVOLE1BQU0sZ0JBQWdCLEdBQUc7a0dBQ2lFLGtCQUFrQixhQUFhLHFCQUFxQjs7OzttR0FJbkQsa0JBQWtCO2lEQUNwRSxhQUFhOzs7Ozs7Ozs7Ozs7OzJDQWFuQixDQUFDO1FBRXBDLE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFvQixFQUFFLFFBQWtCO1FBQ3hELElBQUksZUFBZSxHQUFHLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztRQUVyRCxJQUFJLFFBQVE7WUFBRSxlQUFlLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDO2FBQ3pELElBQUksVUFBVTtZQUFFLGVBQWUsR0FBRyxZQUFZLENBQUMsa0JBQWtCLENBQUM7UUFFdkUsT0FBTyxlQUFlLENBQUM7SUFDM0IsQ0FBQztJQUNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FDbkIsS0FBYSxFQUNiLFVBQW9CLEVBQ3BCLFlBQXNCO1FBRXRCLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDekQsTUFBTSxTQUFTLEdBQUc7Ozs7aUVBSXVDLFdBQVc7Ozs7Ozs7Ozs7Ozt3Q0FZcEMsS0FBSzs7O3duTEFJWCxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FDL0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrQkF3QkMsQ0FBQztRQUV4QixNQUFNLGVBQWUsR0FDakIsMENBQTBDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb25zdGFudHNcbmltcG9ydCB7IE1hcE9wdGlvbnNDb25zdGFudHMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG4vLyBFbnVtc1xuaW1wb3J0IHsgTWFwTWFya2VyU3RyaW5nRW51bSB9IGZyb20gJy4uLy4uL2VudW1zJztcblxuLy8gU3ZnIFJvdXRlc1xuaW1wb3J0IHsgTWFwU3ZnUm91dGVzIH0gZnJvbSAnLi4vc3ZnLXJvdXRlcyc7XG5cbmV4cG9ydCBjbGFzcyBNYXBNYXJrZXJJY29uSGVscGVyIHtcbiAgICBzdGF0aWMgZ2V0Um91dGluZ01hcmtlckVsZW1lbnQgPSAoXG4gICAgICAgIHN0b3BOdW1iZXI6IG51bWJlcixcbiAgICAgICAgc3RvcFR5cGU6IHN0cmluZyxcbiAgICAgICAgaXNTdG9wQ2hlY2tlZD86IGJvb2xlYW4sXG4gICAgICAgIGlzTGlnaHRNb2RlPzogYm9vbGVhbixcbiAgICAgICAgbGFiZWxOYW1lPzogc3RyaW5nLFxuICAgICAgICBpc0ljb25NYXJrZXI/OiBib29sZWFuLFxuICAgICAgICBpc1Nob3dMYWJlbE9uSG92ZXI/OiBib29sZWFuLFxuICAgICAgICBpbmRleD86IG51bWJlclxuICAgICk6IEhUTUxFbGVtZW50ID0+IHtcbiAgICAgICAgY29uc3QgbWFya2VyRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICAgIGxldCBtYXJrZXJTdmcgPSAnJztcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgTWFwTWFya2VyU3RyaW5nRW51bS5ERUFESEVBRCxcbiAgICAgICAgICAgICAgICBNYXBNYXJrZXJTdHJpbmdFbnVtLlJFUEFJUixcbiAgICAgICAgICAgICAgICBNYXBNYXJrZXJTdHJpbmdFbnVtLkZVRUwsXG4gICAgICAgICAgICAgICAgTWFwTWFya2VyU3RyaW5nRW51bS5UT1dJTkcsXG4gICAgICAgICAgICAgICAgTWFwTWFya2VyU3RyaW5nRW51bS5QQVJLSU5HLFxuICAgICAgICAgICAgXS5pbmNsdWRlcyhzdG9wVHlwZSBhcyBNYXBNYXJrZXJTdHJpbmdFbnVtKSAmJlxuICAgICAgICAgICAgaXNJY29uTWFya2VyXG4gICAgICAgIClcbiAgICAgICAgICAgIG1hcmtlclN2ZyA9IHRoaXMuZ2V0Um91dGluZ01hcmtlckljb25Tdmcoc3RvcFR5cGUpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBtYXJrZXJTdmcgPSBNYXBNYXJrZXJJY29uSGVscGVyLmdldFJvdXRpbmdNYXJrZXJJY29uKFxuICAgICAgICAgICAgICAgIHN0b3BOdW1iZXIsXG4gICAgICAgICAgICAgICAgc3RvcFR5cGUsXG4gICAgICAgICAgICAgICAgaXNTdG9wQ2hlY2tlZCxcbiAgICAgICAgICAgICAgICBpc0xpZ2h0TW9kZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICBtYXJrZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3JvdXRpbmctaWNvbicpO1xuICAgICAgICBtYXJrZXJFbGVtZW50LmlubmVySFRNTCA9IG1hcmtlclN2ZztcblxuICAgICAgICBpZiAoaW5kZXggIT09IG51bGwpIG1hcmtlckVsZW1lbnQuaWQgPSAncm91dGluZ01hcmtlci0nICsgaW5kZXg7XG5cbiAgICAgICAgaWYgKGxhYmVsTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgbWFya2VyTGFiZWxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICBtYXJrZXJMYWJlbEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbWFya2VyLWxhYmVsJyk7XG4gICAgICAgICAgICBjb25zdCBtYXJrZXJMYWJlbFRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIG1hcmtlckxhYmVsVGV4dC5jbGFzc0xpc3QuYWRkKCdtYXJrZXItbGFiZWwtdGV4dCcpO1xuICAgICAgICAgICAgbWFya2VyTGFiZWxUZXh0LmlubmVySFRNTCA9IGxhYmVsTmFtZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgbWFya2VyTGFiZWxFbGVtZW50LmFwcGVuZENoaWxkKG1hcmtlckxhYmVsVGV4dCk7XG4gICAgICAgICAgICBtYXJrZXJFbGVtZW50LmFwcGVuZENoaWxkKG1hcmtlckxhYmVsRWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmIChpc1Nob3dMYWJlbE9uSG92ZXIpXG4gICAgICAgICAgICAgICAgbWFya2VyRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdzaG93LWxhYmVsLW9uLWhvdmVyJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWFya2VyRWxlbWVudDtcbiAgICB9O1xuXG4gICAgc3RhdGljIGdldE1pbGVzTWFya2VyRWxlbWVudCA9IChcbiAgICAgICAgc3RvcE51bWJlcjogbnVtYmVyLFxuICAgICAgICBzdG9wVHlwZTogc3RyaW5nLFxuICAgICAgICBsYWJlbE5hbWU/OiBzdHJpbmcsXG4gICAgICAgIGluZGV4PzogbnVtYmVyLFxuICAgICk6IEhUTUxFbGVtZW50ID0+IHtcbiAgICAgICAgY29uc3QgbWFya2VyRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICAgIGNvbnN0IG1hcmtlclN2ZyA9IE1hcE1hcmtlckljb25IZWxwZXIuZ2V0TWlsZXNNYXJrZXJTdmcoXG4gICAgICAgICAgICBzdG9wTnVtYmVyLFxuICAgICAgICAgICAgc3RvcFR5cGVcbiAgICAgICAgKTtcblxuICAgICAgICBtYXJrZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ21pbGVzLWljb24nLCAncG9zaXRpb24tcmVsYXRpdmUnKTtcbiAgICAgICAgbWFya2VyRWxlbWVudC5pbm5lckhUTUwgPSBtYXJrZXJTdmc7XG5cbiAgICAgICAgaWYgKGluZGV4ICE9PSBudWxsKSBtYXJrZXJFbGVtZW50LmlkID0gJ21pbGVzTWFya2VyLScgKyBpbmRleDtcblxuICAgICAgICBpZiAobGFiZWxOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBtYXJrZXJMYWJlbEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIG1hcmtlckxhYmVsRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdtYXJrZXItbGFiZWwnLCAncGUtbm9uZScpO1xuICAgICAgICAgICAgY29uc3QgbWFya2VyTGFiZWxUZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICBtYXJrZXJMYWJlbFRleHQuY2xhc3NMaXN0LmFkZChcbiAgICAgICAgICAgICAgICAnbWFya2VyLWxhYmVsLXRleHQnLFxuICAgICAgICAgICAgICAgICd0ZXh0LWNvbG9yLWJsYWNrLTInXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWFya2VyTGFiZWxUZXh0LmlubmVySFRNTCA9IGxhYmVsTmFtZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgbWFya2VyTGFiZWxFbGVtZW50LmFwcGVuZENoaWxkKG1hcmtlckxhYmVsVGV4dCk7XG4gICAgICAgICAgICBtYXJrZXJFbGVtZW50LmFwcGVuZENoaWxkKG1hcmtlckxhYmVsRWxlbWVudCk7XG4gICAgICAgICAgICBtYXJrZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3Nob3ctbGFiZWwtb24taG92ZXInKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYXJrZXJFbGVtZW50O1xuICAgIH07XG5cbiAgICBzdGF0aWMgZ2V0Um91dGluZ01hcmtlckljb24gPSAoXG4gICAgICAgIHN0b3BOdW1iZXI6IG51bWJlcixcbiAgICAgICAgc3RvcFR5cGU6IHN0cmluZyxcbiAgICAgICAgaXNTdG9wQ2hlY2tlZD86IGJvb2xlYW4sXG4gICAgICAgIGlzTGlnaHRNb2RlPzogYm9vbGVhblxuICAgICk6IHN0cmluZyA9PiB7XG4gICAgICAgIGlmICghaXNTdG9wQ2hlY2tlZCkge1xuICAgICAgICAgICAgY29uc3QgbWFya2VyU3ZnID0gdGhpcy5nZXRSb3V0aW5nTWFya2VyU3ZnKFxuICAgICAgICAgICAgICAgIHN0b3BOdW1iZXIsXG4gICAgICAgICAgICAgICAgc3RvcFR5cGUsXG4gICAgICAgICAgICAgICAgaXNMaWdodE1vZGVcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHJldHVybiBtYXJrZXJTdmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyU3ZnID0gdGhpcy5nZXRSb3V0aW5nQ2hlY2tlZE1hcmtlclN2ZyhcbiAgICAgICAgICAgICAgICBzdG9wVHlwZSxcbiAgICAgICAgICAgICAgICBpc0xpZ2h0TW9kZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcmV0dXJuIGNoZWNrZWRNYXJrZXJTdmc7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgc3RhdGljIGdldFJvdXRpbmdNYXJrZXJTdmcgPSAoXG4gICAgICAgIHN0b3BOdW1iZXI6IG51bWJlcixcbiAgICAgICAgc3RvcFR5cGU6IHN0cmluZyxcbiAgICAgICAgaXNMaWdodE1vZGU/OiBib29sZWFuXG4gICAgKTogc3RyaW5nID0+IHtcbiAgICAgICAgY29uc3QgbWFya2VyQ29sb3IgPSBpc0xpZ2h0TW9kZVxuICAgICAgICAgICAgPyBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0xJR0hUX0NPTE9SU1tcbiAgICAgICAgICAgICAgICAgIHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0xJR0hUX0NPTE9SU1xuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICA6IE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfREFSS19DT0xPUlNbXG4gICAgICAgICAgICAgICAgICBzdG9wVHlwZSBhcyBrZXlvZiB0eXBlb2YgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9EQVJLX0NPTE9SU1xuICAgICAgICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IG1hcmtlck91dGxpbmVDb2xvciA9XG4gICAgICAgICAgICBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX09VVExJTkVfQ09MT1JTW1xuICAgICAgICAgICAgICAgIGlzTGlnaHRNb2RlXG4gICAgICAgICAgICAgICAgICAgID8gTWFwTWFya2VyU3RyaW5nRW51bS5XSElURVxuICAgICAgICAgICAgICAgICAgICA6IChzdG9wVHlwZSBhcyBrZXlvZiB0eXBlb2YgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9PVVRMSU5FX0NPTE9SUylcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgbWFya2VyRG90Q29sb3IgPVxuICAgICAgICAgICAgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9ET1RfQ09MT1JTW1xuICAgICAgICAgICAgICAgIGlzTGlnaHRNb2RlXG4gICAgICAgICAgICAgICAgICAgID8gTWFwTWFya2VyU3RyaW5nRW51bS5MSUdIVFxuICAgICAgICAgICAgICAgICAgICA6IE1hcE1hcmtlclN0cmluZ0VudW0uREFSS1xuICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBtYXJrZXJTdmcgPSBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMzXCIgdmlld0JveD1cIjAgMCAzMCAzM1wiIGZpbGw9XCJub25lXCIgY2xhc3M9XCJtYXJrZXItc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwic2hhZG93LWNpcmNsZVwiIGN4PVwiMTVcIiBjeT1cIjI5XCIgcj1cIjNcIiBmaWxsPVwiJHttYXJrZXJDb2xvcn1cIiBzdHJva2U9XCIke21hcmtlckRvdENvbG9yfVwiIHN0cm9rZS13aWR0aD1cIjJcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8yNDA2MF81OTA5MClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI2IDE0Ljk3MzJDMjUuOTk5MSAxNi43NzE1IDI1LjU1NTQgMTguNTQyIDI0LjcwOCAyMC4xMjg5QzIzLjg2MDYgMjEuNzE1NyAyMi42MzU1IDIzLjA3MDIgMjEuMTQwNSAyNC4wNzMyQzIxLjExNjUgMjQuMDkxMiAyMC43NjA5IDI0LjMxMDIgMjAuNjIwNyAyNC40MDIyQzE3LjI0ODUgMjYuNTQyMiAxNS44OTU0IDI3Ljk4NzIgMTUuMzUwNSAyOC44MDIyQzE1LjI4NTkgMjguODk5MSAxNS4xODU0IDI4Ljk2NjUgMTUuMDcxMiAyOC45ODk3QzE0Ljk1NjkgMjkuMDEyOSAxNC44MzgxIDI4Ljk5MDEgMTQuNzQwNiAyOC45MjYyQzE0LjY5MTYgMjguODkzMiAxNC42NDk0IDI4Ljg1MTEgMTQuNjE2NCAyOC44MDIyQzE0LjA3MTYgMjcuOTkxMiAxMi43MTM1IDI2LjU0NjIgOS4zNDYyNiAyNC40MDIyQzkuMTkzMDIgMjQuMzA3MiA4Ljg1MTUgMjQuMDkxMiA4LjgyNjQ2IDI0LjA3MzJDNy4yNTY1NiAyMy4wMTAzIDUuOTg4NiAyMS41NjAxIDUuMTQ1NzIgMTkuODYzNUM0LjMwMjg1IDE4LjE2NjkgMy45MTM2OCAxNi4yODE1IDQuMDE2MDMgMTQuMzkwNEM0LjExODM3IDEyLjQ5OTMgNC43MDg3NCAxMC42NjY3IDUuNzI5ODEgOS4wNzA3QzYuNzUwODggNy40NzQ2NiA4LjE2Nzk2IDYuMTY5MzYgOS44NDM0MiA1LjI4MTU1QzExLjUxODkgNC4zOTM3NSAxMy4zOTU4IDMuOTUzNjEgMTUuMjkyIDQuMDAzODdDMTcuMTg4MSA0LjA1NDEzIDE5LjAzOSA0LjU5MzEgMjAuNjY0OSA1LjU2ODQyQzIyLjI5MDggNi41NDM3NCAyMy42MzY1IDcuOTIyMjggMjQuNTcxMyA5LjU3MDE3QzI1LjUwNjIgMTEuMjE4MSAyNS45OTgzIDEzLjA3OTMgMjYgMTQuOTczMlpcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIke21hcmtlck91dGxpbmVDb2xvcn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwib3V0c2lkZS1jaXJjbGVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY3g9XCIxNVwiIGN5PVwiMTVcIiByPVwiOVwiIGZpbGw9XCIke21hcmtlckNvbG9yfVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0IHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBpZD1cIl80XCIgZGF0YS1uYW1lPVwiNFwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxNSAxNilcIiBmaWxsPVwiI2ZmZlwiIGZvbnQtc2l6ZT1cIjExXCIgZm9udC1mYW1pbHk9XCJNb250c2VycmF0LCBzYW5zLXNlcmlmXCIgZm9udC13ZWlnaHQ9XCI3MDBcIiBkb21pbmFudC1iYXNlbGluZT1cIm1pZGRsZVwiIHRleHQtYW5jaG9yPVwibWlkZGxlXCIgeT1cIjBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHNwYW4+JHtzdG9wTnVtYmVyID8/IDB9PC90c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMjQwNjBfNTkwOTBcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMyLjk5ODVcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjJcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMTUgMFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18yNDA2MF81OTA5MFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNDA2MF81OTA5MFwiIHJlc3VsdD1cInNoYXBlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPmA7XG5cbiAgICAgICAgcmV0dXJuIG1hcmtlclN2ZztcbiAgICB9O1xuXG4gICAgc3RhdGljIGdldE1pbGVzTWFya2VyU3ZnID0gKFxuICAgICAgICBzdG9wTnVtYmVyOiBudW1iZXIsXG4gICAgICAgIHN0b3BUeXBlOiBzdHJpbmdcbiAgICApOiBzdHJpbmcgPT4ge1xuICAgICAgICBjb25zdCBtYXJrZXJDb2xvciA9XG4gICAgICAgICAgICBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0xJR0hUX0NPTE9SU1tcbiAgICAgICAgICAgICAgICBzdG9wVHlwZSBhcyBrZXlvZiB0eXBlb2YgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9MSUdIVF9DT0xPUlNcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgbWFya2VyU3ZnUGF0aCA9XG4gICAgICAgICAgICBNYXBPcHRpb25zQ29uc3RhbnRzLk1JTEVTX01BUktFUl9JQ09OX1BBVEhTW1xuICAgICAgICAgICAgICAgIHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLk1JTEVTX01BUktFUl9JQ09OX1BBVEhTXG4gICAgICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IG1hcmtlclN2ZyA9IGA8c3ZnIHdpZHRoPVwiMzRcIiBoZWlnaHQ9XCIzNFwiIHZpZXdCb3g9XCIwIDAgMzQgMzRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cIm1hcmtlci1zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTE0NzlfNjg1NilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPVwid2hpdGUtY2lyY2xlXCIgeD1cIjZcIiB5PVwiNlwiIHdpZHRoPVwiMjJcIiBoZWlnaHQ9XCIyMlwiIHJ4PVwiMTFcIiBmaWxsPVwid2hpdGVcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz1cImluc2lkZS1jaXJjbGVcIiB4PVwiOFwiIHk9XCI4XCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgcng9XCI5XCJmaWxsPVwiJHttYXJrZXJDb2xvcn1cIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cIm1hcmtlci1wYXRoXCIgZD1cIiR7bWFya2VyU3ZnUGF0aH1cIiBmaWxsPVwid2hpdGVcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dCBjbGFzcz1cIm1hcmtlci1udW1iZXJcIiBmaWxsPVwid2hpdGVcIiBmb250LXNpemU9XCIxMVwiIGZvbnQtZmFtaWx5PVwiTW9udHNlcnJhdCwgc2Fucy1zZXJpZlwiIGZvbnQtd2VpZ2h0PVwiNzAwXCIgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiB4PVwiNTAlXCIgeT1cIjUwJVwiIGR5PVwiLjM1ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHNwYW4+JHtzdG9wTnVtYmVyID8/IDB9PC90c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMTE0NzlfNjg1NlwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjM0XCIgaGVpZ2h0PVwiMzRcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiM1wiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW4yPVwiaGFyZEFscGhhXCIgb3BlcmF0b3I9XCJvdXRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMyAwXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTIyNF85MjgyXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTIyNF85MjgyXCIgcmVzdWx0PVwic2hhcGVcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPmA7XG5cbiAgICAgICAgcmV0dXJuIG1hcmtlclN2ZztcbiAgICB9O1xuXG4gICAgc3RhdGljIGdldFJvdXRpbmdDaGVja2VkTWFya2VyU3ZnID0gKFxuICAgICAgICBzdG9wVHlwZTogc3RyaW5nLFxuICAgICAgICBpc0xpZ2h0TW9kZT86IGJvb2xlYW5cbiAgICApID0+IHtcbiAgICAgICAgY29uc3QgY2hlY2tlZE1hcmtlckNvbG9yID0gaXNMaWdodE1vZGVcbiAgICAgICAgICAgID8gTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9MSUdIVF9DT0xPUlNbXG4gICAgICAgICAgICAgICAgICBzdG9wVHlwZSBhcyBrZXlvZiB0eXBlb2YgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9MSUdIVF9DT0xPUlNcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgOiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0RBUktfQ09MT1JTW1xuICAgICAgICAgICAgICAgICAgc3RvcFR5cGUgYXMga2V5b2YgdHlwZW9mIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfREFSS19DT0xPUlNcbiAgICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyT3V0bGluZUNvbG9yID1cbiAgICAgICAgICAgIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfT1VUTElORV9DT0xPUlNbXG4gICAgICAgICAgICAgICAgaXNMaWdodE1vZGVcbiAgICAgICAgICAgICAgICAgICAgPyBNYXBNYXJrZXJTdHJpbmdFbnVtLldISVRFXG4gICAgICAgICAgICAgICAgICAgIDogKHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX09VVExJTkVfQ09MT1JTKVxuICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyRG90Q29sb3IgPVxuICAgICAgICAgICAgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9ET1RfQ09MT1JTW1xuICAgICAgICAgICAgICAgIGlzTGlnaHRNb2RlXG4gICAgICAgICAgICAgICAgICAgID8gTWFwTWFya2VyU3RyaW5nRW51bS5MSUdIVFxuICAgICAgICAgICAgICAgICAgICA6IE1hcE1hcmtlclN0cmluZ0VudW0uREFSS1xuICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyU3ZnID0gYDxzdmcgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMzXCIgdmlld0JveD1cIjAgMCAzMCAzM1wiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTVcIiBjeT1cIjI5XCIgcj1cIjNcIiBmaWxsPVwiJHtjaGVja2VkTWFya2VyQ29sb3J9XCIgc3Ryb2tlPVwiJHtjaGVja2VkTWFya2VyRG90Q29sb3J9XCIgc3Ryb2tlLXdpZHRoPVwiMlwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTgwNTVfMzQyMzgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNiAxNC45NzMyQzI1Ljk5OTEgMTYuNzcxNSAyNS41NTU0IDE4LjU0MiAyNC43MDggMjAuMTI4OUMyMy44NjA2IDIxLjcxNTcgMjIuNjM1NSAyMy4wNzAyIDIxLjE0MDUgMjQuMDczMkMyMS4xMTY1IDI0LjA5MTIgMjAuNzYwOSAyNC4zMTAyIDIwLjYyMDcgMjQuNDAyMkMxNy4yNDg1IDI2LjU0MjIgMTUuODk1NCAyNy45ODcyIDE1LjM1MDUgMjguODAyMkMxNS4yODU5IDI4Ljg5OTEgMTUuMTg1NCAyOC45NjY1IDE1LjA3MTIgMjguOTg5N0MxNC45NTY5IDI5LjAxMjkgMTQuODM4MSAyOC45OTAxIDE0Ljc0MDYgMjguOTI2MkMxNC42OTE2IDI4Ljg5MzIgMTQuNjQ5NCAyOC44NTExIDE0LjYxNjQgMjguODAyMkMxNC4wNzE2IDI3Ljk5MTIgMTIuNzEzNSAyNi41NDYyIDkuMzQ2MjYgMjQuNDAyMkM5LjE5MzAyIDI0LjMwNzIgOC44NTE1IDI0LjA5MTIgOC44MjY0NiAyNC4wNzMyQzcuMjU2NTYgMjMuMDEwMyA1Ljk4ODYgMjEuNTYwMSA1LjE0NTcyIDE5Ljg2MzVDNC4zMDI4NSAxOC4xNjY5IDMuOTEzNjggMTYuMjgxNSA0LjAxNjAzIDE0LjM5MDRDNC4xMTgzNyAxMi40OTkzIDQuNzA4NzQgMTAuNjY2NyA1LjcyOTgxIDkuMDcwN0M2Ljc1MDg4IDcuNDc0NjYgOC4xNjc5NiA2LjE2OTM2IDkuODQzNDIgNS4yODE1NUMxMS41MTg5IDQuMzkzNzUgMTMuMzk1OCAzLjk1MzYxIDE1LjI5MiA0LjAwMzg3QzE3LjE4ODEgNC4wNTQxMyAxOS4wMzkgNC41OTMxIDIwLjY2NDkgNS41Njg0MkMyMi4yOTA4IDYuNTQzNzQgMjMuNjM2NSA3LjkyMjI4IDI0LjU3MTMgOS41NzAxN0MyNS41MDYyIDExLjIxODEgMjUuOTk4MyAxMy4wNzkzIDI2IDE0Ljk3MzJaXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiJHtjaGVja2VkTWFya2VyT3V0bGluZUNvbG9yfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTVcIiBjeT1cIjE1XCIgcj1cIjlcIiBmaWxsPVwiJHtjaGVja2VkTWFya2VyQ29sb3J9XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEzLjA0NjIgMTkuMDQ3N0w5LjcxMjkxIDE1LjcxNDRDOS42NTcxOCAxNS42NTg3IDkuNjEyOTcgMTUuNTkyNSA5LjU4MjggMTUuNTE5N0M5LjU1MjY0IDE1LjQ0NjkgOS41MzcxMSAxNS4zNjg5IDkuNTM3MTEgMTUuMjkwMUM5LjUzNzExIDE1LjIxMTIgOS41NTI2NCAxNS4xMzMyIDkuNTgyOCAxNS4wNjA0QzkuNjEyOTcgMTQuOTg3NiA5LjY1NzE4IDE0LjkyMTQgOS43MTI5MSAxNC44NjU3TDEwLjU2MjkgMTQuMDE4NEMxMC42MTg2IDEzLjk2MjcgMTAuNjg0OCAxMy45MTg0IDEwLjc1NzYgMTMuODg4M0MxMC44MzA0IDEzLjg1ODEgMTAuOTA4NCAxMy44NDI2IDEwLjk4NzIgMTMuODQyNkMxMS4wNjYxIDEzLjg0MjYgMTEuMTQ0MSAxMy44NTgxIDExLjIxNjkgMTMuODg4M0MxMS4yODk3IDEzLjkxODQgMTEuMzU1OSAxMy45NjI3IDExLjQxMTYgMTQuMDE4NEwxMy40NzAyIDE2LjA3NzFMMTguNTg2OSAxMC45NTcxQzE4LjY0MjYgMTAuOTAxMyAxOC43MDg4IDEwLjg1NzEgMTguNzgxNiAxMC44MjY5QzE4Ljg1NDQgMTAuNzk2OCAxOC45MzI0IDEwLjc4MTIgMTkuMDExMiAxMC43ODEyQzE5LjA5MDEgMTAuNzgxMiAxOS4xNjgxIDEwLjc5NjggMTkuMjQwOSAxMC44MjY5QzE5LjMxMzcgMTAuODU3MSAxOS4zNzk5IDEwLjkwMTMgMTkuNDM1NiAxMC45NTcxTDIwLjI4NDIgMTEuODA1N0MyMC4zNCAxMS44NjE0IDIwLjM4NDIgMTEuOTI3NiAyMC40MTQ0IDEyLjAwMDRDMjAuNDQ0NSAxMi4wNzMyIDIwLjQ2MDEgMTIuMTUxMiAyMC40NjAxIDEyLjIzMDFDMjAuNDYwMSAxMi4zMDg5IDIwLjQ0NDUgMTIuMzg2OSAyMC40MTQ0IDEyLjQ1OTdDMjAuMzg0MiAxMi41MzI1IDIwLjM0IDEyLjU5ODcgMjAuMjg0MiAxMi42NTQ0TDEzLjg5NDkgMTkuMDQ1MUMxMy44MzkyIDE5LjEwMDggMTMuNzczIDE5LjE0NSAxMy43MDAyIDE5LjE3NTJDMTMuNjI3NCAxOS4yMDUzIDEzLjU0OTQgMTkuMjIwOSAxMy40NzA2IDE5LjIyMDlDMTMuMzkxOCAxOS4yMjA5IDEzLjMxMzcgMTkuMjA1MyAxMy4yNDA5IDE5LjE3NTJDMTMuMTY4MSAxOS4xNDUgMTMuMTAyIDE5LjEwMDggMTMuMDQ2MiAxOS4wNDUxVjE5LjA0NzdaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE4MDU1XzM0MjM4XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzMi45OTg1XCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMlwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjE1IDBcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE4MDU1XzM0MjM4XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xODA1NV8zNDIzOFwiIHJlc3VsdD1cInNoYXBlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5gO1xuXG4gICAgICAgIHJldHVybiBjaGVja2VkTWFya2VyU3ZnO1xuICAgIH07XG5cbiAgICBzdGF0aWMgZ2V0Um91dGluZ01hcmtlckljb25TdmcgPSAoc3RvcFR5cGU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gICAgICAgIGNvbnN0IG1hcmtlclN2Z1BhdGggPVxuICAgICAgICAgICAgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9JQ09OX1BBVEhTW1xuICAgICAgICAgICAgICAgIHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0lDT05fUEFUSFNcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgY2hlY2tlZE1hcmtlckNvbG9yID1cbiAgICAgICAgICAgIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfTElHSFRfQ09MT1JTW1xuICAgICAgICAgICAgICAgIHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0xJR0hUX0NPTE9SU1xuICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyT3V0bGluZUNvbG9yID1cbiAgICAgICAgICAgIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfT1VUTElORV9DT0xPUlNbXG4gICAgICAgICAgICAgICAgTWFwTWFya2VyU3RyaW5nRW51bS5XSElURVxuICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyRG90Q29sb3IgPVxuICAgICAgICAgICAgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9ET1RfQ09MT1JTW1xuICAgICAgICAgICAgICAgIE1hcE1hcmtlclN0cmluZ0VudW0uTElHSFRcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3Qgcm91dGluZ01hcmtlclN2ZyA9IGA8c3ZnIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzM1wiIHZpZXdCb3g9XCIwIDAgMzAgMzNcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cIm1hcmtlci1zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cInNoYWRvdy1jaXJjbGVcIiBjeD1cIjE1XCIgY3k9XCIyOVwiIHI9XCIzXCIgZmlsbD1cIiR7Y2hlY2tlZE1hcmtlckNvbG9yfVwiIHN0cm9rZT1cIiR7Y2hlY2tlZE1hcmtlckRvdENvbG9yfVwiIHN0cm9rZS13aWR0aD1cIjJcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzkyNjhfNzk4MzQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNiAxNC45NzMyQzI1Ljk5OTEgMTYuNzcxNSAyNS41NTU0IDE4LjU0MiAyNC43MDggMjAuMTI4OUMyMy44NjA2IDIxLjcxNTcgMjIuNjM1NSAyMy4wNzAyIDIxLjE0MDUgMjQuMDczMkMyMS4xMTY1IDI0LjA5MTIgMjAuNzYwOSAyNC4zMTAyIDIwLjYyMDcgMjQuNDAyMkMxNy4yNDg1IDI2LjU0MjIgMTUuODk1NCAyNy45ODcyIDE1LjM1MDUgMjguODAyMkMxNS4yODU5IDI4Ljg5OTEgMTUuMTg1NCAyOC45NjY1IDE1LjA3MTIgMjguOTg5N0MxNC45NTY5IDI5LjAxMjkgMTQuODM4MSAyOC45OTAxIDE0Ljc0MDYgMjguOTI2MkMxNC42OTE2IDI4Ljg5MzIgMTQuNjQ5NCAyOC44NTExIDE0LjYxNjQgMjguODAyMkMxNC4wNzE2IDI3Ljk5MTIgMTIuNzEzNSAyNi41NDYyIDkuMzQ2MjYgMjQuNDAyMkM5LjE5MzAyIDI0LjMwNzIgOC44NTE1IDI0LjA5MTIgOC44MjY0NiAyNC4wNzMyQzcuMjU2NTYgMjMuMDEwMyA1Ljk4ODYgMjEuNTYwMSA1LjE0NTcyIDE5Ljg2MzVDNC4zMDI4NSAxOC4xNjY5IDMuOTEzNjggMTYuMjgxNSA0LjAxNjAzIDE0LjM5MDRDNC4xMTgzNyAxMi40OTkzIDQuNzA4NzQgMTAuNjY2NyA1LjcyOTgxIDkuMDcwN0M2Ljc1MDg4IDcuNDc0NjYgOC4xNjc5NiA2LjE2OTM2IDkuODQzNDIgNS4yODE1NUMxMS41MTg5IDQuMzkzNzUgMTMuMzk1OCAzLjk1MzYxIDE1LjI5MiA0LjAwMzg3QzE3LjE4ODEgNC4wNTQxMyAxOS4wMzkgNC41OTMxIDIwLjY2NDkgNS41Njg0MkMyMi4yOTA4IDYuNTQzNzQgMjMuNjM2NSA3LjkyMjI4IDI0LjU3MTMgOS41NzAxN0MyNS41MDYyIDExLjIxODEgMjUuOTk4MyAxMy4wNzkzIDI2IDE0Ljk3MzJaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJvdXRzaWRlLWNpcmNsZVwiIGN4PVwiMTVcIiBjeT1cIjE1XCIgcj1cIjlcIiBmaWxsPVwiJHtjaGVja2VkTWFya2VyQ29sb3J9XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiJHttYXJrZXJTdmdQYXRofVwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF85MjY4Xzc5ODM0XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzMi45OTg1XCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMlwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjE1IDBcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzkyNjhfNzk4MzRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzkyNjhfNzk4MzRcIiByZXN1bHQ9XCJzaGFwZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+YDtcblxuICAgICAgICByZXR1cm4gcm91dGluZ01hcmtlclN2ZztcbiAgICB9O1xuXG4gICAgc3RhdGljIGdldE1hcE1hcmtlcihpc0Zhdm9yaXRlPzogYm9vbGVhbiwgaXNDbG9zZWQ/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IG1hcmtlckljb25Sb3V0ZSA9IE1hcFN2Z1JvdXRlcy5kZWZhdWx0TWFya2VySWNvbjtcblxuICAgICAgICBpZiAoaXNDbG9zZWQpIG1hcmtlckljb25Sb3V0ZSA9IE1hcFN2Z1JvdXRlcy5jbG9zZWRNYXJrZXJJY29uO1xuICAgICAgICBlbHNlIGlmIChpc0Zhdm9yaXRlKSBtYXJrZXJJY29uUm91dGUgPSBNYXBTdmdSb3V0ZXMuZmF2b3JpdGVNYXJrZXJJY29uO1xuXG4gICAgICAgIHJldHVybiBtYXJrZXJJY29uUm91dGU7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRDbHVzdGVyTWFya2VyKFxuICAgICAgICBjb3VudDogbnVtYmVyLFxuICAgICAgICBpc1NlbGVjdGVkPzogYm9vbGVhbixcbiAgICAgICAgaXNGdWVsTWFya2VyPzogYm9vbGVhblxuICAgICk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG1hcmtlckNvbG9yID0gaXNGdWVsTWFya2VyID8gJyM2NjkyRjEnIDogJyNGQUIxNUMnO1xuICAgICAgICBjb25zdCBtYXJrZXJTdmcgPSBgPHN2ZyBjbGFzcz1cIm1hcmtlci1zdmdcIiB3aWR0aD1cIjUyXCIgaGVpZ2h0PVwiNTJcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzI2MzFfMjc0MTA0KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjE0XCIgZmlsbD1cIiR7bWFya2VyQ29sb3J9XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJfNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLW5hbWU9XCI0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgyNiAyNylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNmZmZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplPVwiMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk9XCJNb250c2VycmF0LCBzYW5zLXNlcmlmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0PVwiNzAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWluYW50LWJhc2VsaW5lPVwibWlkZGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYW5jaG9yPVwibWlkZGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRzcGFuPiAke2NvdW50fSA8L3RzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxnIG9wYWNpdHk9XCIwLjdcIiBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjFfZF8yNjMxXzI3NDEwNClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMzYuNzgxIDcuNjUwMDJMMzUuNDYxIDkuODkzMDJDMzUuMzcwNSAxMC4wNTAyIDM1LjM0NDYgMTAuMjM2MyAzNS4zODg2IDEwLjQxMjJDMzUuNDMyNiAxMC41ODgxIDM1LjU0MzIgMTAuNzQgMzUuNjk3IDEwLjgzNkMzNy44OTE3IDEyLjI0MDkgMzkuNzU1NSAxNC4xMDUxIDQxLjE2IDE2LjNDNDEuMjU2IDE2LjQ1MzggNDEuNDA4IDE2LjU2NDQgNDEuNTgzOCAxNi42MDg0QzQxLjc1OTcgMTYuNjUyNCA0MS45NDU4IDE2LjYyNjUgNDIuMTAzIDE2LjUzNkw0NC4zNDYgMTUuMjE2QzQ0LjQyNzUgMTUuMTY5MSA0NC40OTg4IDE1LjEwNjEgNDQuNTU1NCAxNS4wMzFDNDQuNjEyMSAxNC45NTU5IDQ0LjY1MyAxNC44NzAyIDQ0LjY3NTggMTQuNzc4OUM0NC42OTg2IDE0LjY4NzYgNDQuNzAyNyAxNC41OTI2IDQ0LjY4OCAxNC40OTk3QzQ0LjY3MzIgMTQuNDA2OCA0NC42Mzk5IDE0LjMxNzggNDQuNTkgMTQuMjM4QzQyLjg0MjYgMTEuNDg2NyA0MC41MTAzIDkuMTU0MzYgMzcuNzU5IDcuNDA3MDJDMzcuNjc5MiA3LjM1NzA5IDM3LjU5MDIgNy4zMjM3NiAzNy40OTczIDcuMzA5MDFDMzcuNDA0NCA3LjI5NDI3IDM3LjMwOTQgNy4yOTg0IDM3LjIxODEgNy4zMjExOEMzNy4xMjY4IDcuMzQzOTYgMzcuMDQxMSA3LjM4NDkxIDM2Ljk2NiA3LjQ0MTU4QzM2Ljg5MDkgNy40OTgyNSAzNi44Mjc5IDcuNTY4NDggMzYuNzgxIDcuNjUwMDJaTTQ2LjYwMSAyMC42NTFMNDQuMDczIDIxLjMwOUM0My44OTg1IDIxLjM1NjIgNDMuNzQ5IDIxLjQ2OSA0My42NTU4IDIxLjYyMzlDNDMuNTYyNiAyMS43Nzg4IDQzLjUzMjkgMjEuOTYzNyA0My41NzMgMjIuMTRDNDQuMTM0MyAyNC42ODI3IDQ0LjEzNDMgMjcuMzE3MyA0My41NzMgMjkuODZDNDMuNTMyOSAzMC4wMzYzIDQzLjU2MjYgMzAuMjIxMiA0My42NTU4IDMwLjM3NjFDNDMuNzQ5IDMwLjUzMSA0My44OTg1IDMwLjY0MzkgNDQuMDczIDMwLjY5MUw0Ni42MDEgMzEuMzQ5QzQ2LjY5MTcgMzEuMzczNSA0Ni43ODY0IDMxLjM3OTQgNDYuODc5NSAzMS4zNjY1QzQ2Ljk3MjUgMzEuMzUzNiA0Ny4wNjIxIDMxLjMyMjEgNDcuMTQyNyAzMS4yNzM4QzQ3LjIyMzMgMzEuMjI1NiA0Ny4yOTM0IDMxLjE2MTYgNDcuMzQ4OCAzMS4wODU3QzQ3LjQwNDEgMzEuMDA5OCA0Ny40NDM3IDMwLjkyMzUgNDcuNDY1IDMwLjgzMkM0OC4xNzMgMjcuNjQ5NiA0OC4xNzMgMjQuMzUwNCA0Ny40NjUgMjEuMTY4QzQ3LjQ0MzcgMjEuMDc2NSA0Ny40MDQxIDIwLjk5MDIgNDcuMzQ4OCAyMC45MTQzQzQ3LjI5MzQgMjAuODM4NCA0Ny4yMjMzIDIwLjc3NDQgNDcuMTQyNyAyMC43MjYyQzQ3LjA2MjEgMjAuNjc4IDQ2Ljk3MjUgMjAuNjQ2NCA0Ni44Nzk1IDIwLjYzMzVDNDYuNzg2NCAyMC42MjA2IDQ2LjY5MTcgMjAuNjI2NiA0Ni42MDEgMjAuNjUxWk0zMC42OTYgNDQuMDc5QzMwLjY1MDIgNDMuOTAzNyAzMC41Mzc2IDQzLjc1MzIgMzAuMzgyMyA0My42NTk4QzMwLjIyNyA0My41NjYzIDMwLjA0MTQgNDMuNTM3NCAyOS44NjUgNDMuNTc5QzI3LjMxOTIgNDQuMTM5NyAyNC42ODE4IDQ0LjEzOTcgMjIuMTM2IDQzLjU3OUMyMS45NTk3IDQzLjUzODkgMjEuNzc0OCA0My41Njg2IDIxLjYxOTkgNDMuNjYxOEMyMS40NjUgNDMuNzU1IDIxLjM1MjEgNDMuOTA0NSAyMS4zMDUgNDQuMDc5TDIwLjY0NyA0Ni42QzIwLjYyMjUgNDYuNjkwNyAyMC42MTY2IDQ2Ljc4NTQgMjAuNjI5NSA0Ni44Nzg1QzIwLjY0MjQgNDYuOTcxNiAyMC42NzM5IDQ3LjA2MTEgMjAuNzIyMiA0Ny4xNDE3QzIwLjc3MDQgNDcuMjIyMyAyMC44MzQ0IDQ3LjI5MjQgMjAuOTEwMyA0Ny4zNDc4QzIwLjk4NjIgNDcuNDAzMiAyMS4wNzI1IDQ3LjQ0MjcgMjEuMTY0IDQ3LjQ2NEMyNC4zNDcxIDQ4LjE3MiAyNy42NDY5IDQ4LjE3MiAzMC44MyA0Ny40NjRDMzAuOTIxNCA0Ny40NDI3IDMxLjAwNzYgNDcuNDAzMiAzMS4wODM0IDQ3LjM0NzlDMzEuMTU5MiA0Ny4yOTI2IDMxLjIyMzEgNDcuMjIyNiAzMS4yNzE0IDQ3LjE0MjFDMzEuMzE5NiA0Ny4wNjE2IDMxLjM1MTIgNDYuOTcyMiAzMS4zNjQxIDQ2Ljg3OTJDMzEuMzc3MSA0Ni43ODYzIDMxLjM3MTMgNDYuNjkxNyAzMS4zNDcgNDYuNjAxTDMwLjY5NiA0NC4wNzlaTTE1LjIxIDcuNjQ5MDJDMTUuMTYzIDcuNTY3NjIgMTUuMTAwMiA3LjQ5NjUxIDE1LjAyNTEgNy40Mzk5M0MxNC45NTAxIDcuMzgzMzUgMTQuODY0NCA3LjM0MjQ1IDE0Ljc3MzMgNy4zMTk2OEMxNC42ODIxIDcuMjk2OTEgMTQuNTg3MyA3LjI5MjczIDE0LjQ5NDUgNy4zMDczOUMxNC40MDE2IDcuMzIyMDUgMTQuMzEyNyA3LjM1NTI2IDE0LjIzMyA3LjQwNTAyQzExLjQ3NDIgOS4xNDU0MyA5LjEzODQyIDExLjQ3OTUgNy4zOTU5OSAxNC4yMzdDNy4zNDYyMyAxNC4zMTY3IDcuMzEzMDMgMTQuNDA1NyA3LjI5ODM3IDE0LjQ5ODVDNy4yODM3MSAxNC41OTEzIDcuMjg3ODkgMTQuNjg2MSA3LjMxMDY2IDE0Ljc3NzNDNy4zMzM0MyAxNC44Njg1IDcuMzc0MzIgMTQuOTU0MSA3LjQzMDkgMTUuMDI5MkM3LjQ4NzQ4IDE1LjEwNDIgNy41NTg1OSAxNS4xNjcxIDcuNjM5OTkgMTUuMjE0TDkuODg1OTkgMTYuNTMzQzEwLjA0MzYgMTYuNjI0NiAxMC4yMzA4IDE2LjY1MTEgMTAuNDA3NiAxNi42MDY4QzEwLjU4NDUgMTYuNTYyNiAxMC43MzcxIDE2LjQ1MTEgMTAuODMzIDE2LjI5NkMxMi4yMzcgMTQuMTAyMSAxNC4xMDEgMTIuMjM5NCAxNi4yOTYgMTAuODM3QzE2LjQ1MSAxMC43NDExIDE2LjU2MjUgMTAuNTg4NSAxNi42MDY4IDEwLjQxMTZDMTYuNjUxMSAxMC4yMzQ4IDE2LjYyNDYgMTAuMDQ3NiAxNi41MzMgOS44OTAwMkwxNS4yMSA3LjY0OTAyWk03LjkwOTk5IDIxLjMwOEw1LjM5NTk5IDIwLjY1MkM1LjMwNTI4IDIwLjYyNzQgNS4yMTA1MyAyMC42MjEzIDUuMTE3NDEgMjAuNjM0MUM1LjAyNDI4IDIwLjY0NjggNC45MzQ2OCAyMC42NzgyIDQuODUzOTYgMjAuNzI2NEM0Ljc3MzIzIDIwLjc3NDYgNC43MDMwMyAyMC44Mzg1IDQuNjQ3NTQgMjAuOTE0M0M0LjU5MjA1IDIwLjk5MDIgNC41NTI0MiAyMS4wNzY1IDQuNTMwOTkgMjEuMTY4QzMuODIzIDI0LjM1MDQgMy44MjMgMjcuNjQ5NiA0LjUzMDk5IDMwLjgzMkM0LjU1MjMxIDMwLjkyMzUgNC41OTE4NCAzMS4wMDk4IDQuNjQ3MjEgMzEuMDg1N0M0LjcwMjU4IDMxLjE2MTYgNC43NzI2NyAzMS4yMjU2IDQuODUzMyAzMS4yNzM4QzQuOTMzOTIgMzEuMzIyMSA1LjAyMzQzIDMxLjM1MzYgNS4xMTY1IDMxLjM2NjVDNS4yMDk1NiAzMS4zNzk0IDUuMzA0MjggMzEuMzczNSA1LjM5NDk5IDMxLjM0OUw3LjkyMjk5IDMwLjY5MUM4LjA5NzUxIDMwLjY0MzkgOC4yNDcwMiAzMC41MzEgOC4zNDAyMiAzMC4zNzYxQzguNDMzNDIgMzAuMjIxMiA4LjQ2MzA4IDMwLjAzNjMgOC40MjI5OSAyOS44NkM4LjEzOTkyIDI4LjU5MjggNy45OTY3MyAyNy4yOTg0IDcuOTk1OTkgMjZDNy45OTU5MyAyNC43MDI3IDguMTM0MzkgMjMuNDA5IDguNDA4OTkgMjIuMTQxQzguNDQ5NjYgMjEuOTY0NSA4LjQyMDI4IDIxLjc3OSA4LjMyNzAzIDIxLjYyMzdDOC4yMzM3OSAyMS40NjgzIDguMDg0OTQgMjEuMzU1MiA3LjkwOTk5IDIxLjMwOFpNOS44ODg5OSAzNS40NjVMNy42NDU5OSAzNi43ODVDNy41NjQ0NiAzNi44MzIgNy40OTMyMiAzNi44OTQ5IDcuNDM2NTUgMzYuOTdDNy4zNzk4OCAzNy4wNDUxIDcuMzM4OTMgMzcuMTMwOSA3LjMxNjE2IDM3LjIyMjJDNy4yOTMzOCAzNy4zMTM1IDcuMjg5MjQgMzcuNDA4NCA3LjMwMzk5IDM3LjUwMTNDNy4zMTg3NCAzNy41OTQzIDcuMzUyMDcgMzcuNjgzMyA3LjQwMTk5IDM3Ljc2M0M5LjE0OTMzIDQwLjUxNDMgMTEuNDgxNyA0Mi44NDY3IDE0LjIzMyA0NC41OTRDMTQuMzEyNyA0NC42NDM5IDE0LjQwMTcgNDQuNjc3MyAxNC40OTQ3IDQ0LjY5MkMxNC41ODc2IDQ0LjcwNjggMTQuNjgyNiA0NC43MDI2IDE0Ljc3MzggNDQuNjc5OUMxNC44NjUxIDQ0LjY1NzEgMTQuOTUwOSA0NC42MTYxIDE1LjAyNiA0NC41NTk1QzE1LjEwMTEgNDQuNTAyOCAxNS4xNjQgNDQuNDMxNiAxNS4yMTEgNDQuMzVMMTYuNTMxIDQyLjEwN0MxNi42MjE0IDQxLjk0OTkgMTYuNjQ3NCA0MS43NjM4IDE2LjYwMzQgNDEuNTg3OUMxNi41NTk0IDQxLjQxMiAxNi40NDg4IDQxLjI2IDE2LjI5NSA0MS4xNjRDMTQuMTAwMyAzOS43NTkyIDEyLjIzNjUgMzcuODk1IDEwLjgzMiAzNS43QzEwLjczNiAzNS41NDYyIDEwLjU4NCAzNS40MzU3IDEwLjQwODEgMzUuMzkxNkMxMC4yMzIyIDM1LjM0NzYgMTAuMDQ2MSAzNS4zNzQ2IDkuODg4OTkgMzUuNDY1Wk00MS4xNiAzNS43QzM5Ljc1NTIgMzcuODk1MSAzNy44OTEgMzkuNzU5MyAzNS42OTYgNDEuMTY0QzM1LjU0MjIgNDEuMjYgMzUuNDMxNiA0MS40MTIgMzUuMzg3NiA0MS41ODc5QzM1LjM0MzYgNDEuNzYzOCAzNS4zNjk1IDQxLjk0OTkgMzUuNDYgNDIuMTA3TDM2Ljc4IDQ0LjM1QzM2LjgyNyA0NC40MzE2IDM2Ljg4OTkgNDQuNTAyOCAzNi45NjUgNDQuNTU5NUMzNy4wNDAxIDQ0LjYxNjEgMzcuMTI1OCA0NC42NTcxIDM3LjIxNzEgNDQuNjc5OUMzNy4zMDg0IDQ0LjcwMjYgMzcuNDAzNCA0NC43MDY4IDM3LjQ5NjMgNDQuNjkyQzM3LjU4OTIgNDQuNjc3MyAzNy42NzgyIDQ0LjY0MzkgMzcuNzU4IDQ0LjU5NEM0MC41MDkzIDQyLjg0NjcgNDIuODQxNiA0MC41MTQzIDQ0LjU4OSAzNy43NjNDNDQuNjM4OSAzNy42ODMzIDQ0LjY3MjIgMzcuNTk0MyA0NC42ODcgMzcuNTAxM0M0NC43MDE3IDM3LjQwODQgNDQuNjk3NiAzNy4zMTM1IDQ0LjY3NDggMzcuMjIyMkM0NC42NTIxIDM3LjEzMDkgNDQuNjExMSAzNy4wNDUxIDQ0LjU1NDQgMzYuOTdDNDQuNDk3OCAzNi44OTQ5IDQ0LjQyNjUgMzYuODMyIDQ0LjM0NSAzNi43ODVMNDIuMTAyIDM1LjQ2NUM0MS45NDQ4IDM1LjM3NDYgNDEuNzU4NyAzNS4zNDg2IDQxLjU4MjggMzUuMzkyNkM0MS40MDcgMzUuNDM2NyA0MS4yNTUgMzUuNTQ3MiA0MS4xNTkgMzUuNzAxTTI1Ljk5NiA0LjAwMDAyQzI0LjM3MDcgMy45OTc5OCAyMi43NTAxIDQuMTc2MDcgMjEuMTY0IDQuNTMxMDJDMjEuMDcyNSA0LjU1MjQ0IDIwLjk4NjIgNC41OTIwOCAyMC45MTAzIDQuNjQ3NTdDMjAuODM0NCA0LjcwMzA1IDIwLjc3MDUgNC43NzMyNSAyMC43MjI0IDQuODUzOThDMjAuNjc0MiA0LjkzNDcxIDIwLjY0MjggNS4wMjQzMSAyMC42MyA1LjExNzQzQzIwLjYxNzMgNS4yMTA1NiAyMC42MjM0IDUuMzA1MyAyMC42NDggNS4zOTYwMkwyMS4zMDQgNy45MTIwMkMyMS4zNTExIDguMDg2OTYgMjEuNDY0MyA4LjIzNjgxIDIxLjYxOTYgOC4zMzAwNkMyMS43NzUgOC40MjMzIDIxLjk2MDQgOC40NTI2OCAyMi4xMzcgOC40MTIwMkMyMy40MDUgOC4xMzc3NSAyNC42OTg3IDcuOTk5NjMgMjUuOTk2IDguMDAwMDJDMjcuMjk3MSA3Ljk5OTA3IDI4LjU5NDQgOC4xMzk5IDI5Ljg2NSA4LjQyMDAyQzMwLjA0MTQgOC40NjE2OCAzMC4yMjcgOC40MzI2OSAzMC4zODIzIDguMzM5MjZDMzAuNTM3NiA4LjI0NTgzIDMwLjY1MDIgOC4wOTUzNiAzMC42OTYgNy45MjAwMkwzMS4zNDcgNS4zOTMwMkMzMS4zNzEzIDUuMzAyMzcgMzEuMzc3MSA1LjIwNzc2IDMxLjM2NDEgNS4xMTQ4MUMzMS4zNTEyIDUuMDIxODYgMzEuMzE5NiA0LjkzMjQ3IDMxLjI3MTQgNC44NTE5NkMzMS4yMjMxIDQuNzcxNDUgMzEuMTU5MiA0LjcwMTQ2IDMxLjA4MzQgNC42NDYxNUMzMS4wMDc2IDQuNTkwODQgMzAuOTIxNCA0LjU1MTM1IDMwLjgzIDQuNTMwMDJDMjkuMjQzMSA0LjE3NTgxIDI3LjYyMTkgMy45OTgwNiAyNS45OTYgNC4wMDAwMlpcIiBmaWxsPVwiJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkID8gbWFya2VyQ29sb3IgOiAnI0ZGRkZGRidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzI2MzFfMjc0MTA0XCIgeD1cIjZcIiB5PVwiNlwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIyXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4xNSAwXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjYzMV8yNzQxMDRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNjMxXzI3NDEwNFwiIHJlc3VsdD1cInNoYXBlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMV9kXzI2MzFfMjc0MTA0XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNTEuOTk2MVwiIGhlaWdodD1cIjUxLjk5NVwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIyXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4xNSAwXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjYzMV8yNzQxMDRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNjMxXzI3NDEwNFwiIHJlc3VsdD1cInNoYXBlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPmA7XG5cbiAgICAgICAgY29uc3QgbWFya2VySWNvblJvdXRlID1cbiAgICAgICAgICAgICdkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtODtiYXNlNjQsJyArIGJ0b2EobWFya2VyU3ZnKTtcblxuICAgICAgICByZXR1cm4gbWFya2VyU3ZnO1xuICAgIH1cbn1cbiJdfQ==
|