Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/wpforms-.../assets/lite/js/integrat.../gutenber...
File: formselector.es5.js
FrontendModern = window.WPForms.FrontendModern;
[4000] Fix | Delete
FrontendModern.updateGBBlockPageIndicatorColor($form);
[4001] Fix | Delete
FrontendModern.updateGBBlockIconChoicesColor($form);
[4002] Fix | Delete
FrontendModern.updateGBBlockRatingColor($form);
[4003] Fix | Delete
},
[4004] Fix | Delete
/**
[4005] Fix | Delete
* Init Modern style Dropdown fields (<select>).
[4006] Fix | Delete
*
[4007] Fix | Delete
* @since 1.8.1
[4008] Fix | Delete
*
[4009] Fix | Delete
* @param {Object} detail Event details object.
[4010] Fix | Delete
*/
[4011] Fix | Delete
loadChoicesJS: function loadChoicesJS(detail) {
[4012] Fix | Delete
if (typeof window.Choices !== 'function') {
[4013] Fix | Delete
return;
[4014] Fix | Delete
}
[4015] Fix | Delete
var $form = $(detail.block.querySelector("#wpforms-".concat(detail.formId)));
[4016] Fix | Delete
$form.find('.choicesjs-select').each(function (idx, selectEl) {
[4017] Fix | Delete
var $el = $(selectEl);
[4018] Fix | Delete
if ($el.data('choice') === 'active') {
[4019] Fix | Delete
return;
[4020] Fix | Delete
}
[4021] Fix | Delete
var args = window.wpforms_choicesjs_config || {},
[4022] Fix | Delete
searchEnabled = $el.data('search-enabled'),
[4023] Fix | Delete
$field = $el.closest('.wpforms-field');
[4024] Fix | Delete
args.searchEnabled = 'undefined' !== typeof searchEnabled ? searchEnabled : true;
[4025] Fix | Delete
args.callbackOnInit = function () {
[4026] Fix | Delete
var self = this,
[4027] Fix | Delete
$element = $(self.passedElement.element),
[4028] Fix | Delete
$input = $(self.input.element),
[4029] Fix | Delete
sizeClass = $element.data('size-class');
[4030] Fix | Delete
[4031] Fix | Delete
// Add CSS-class for size.
[4032] Fix | Delete
if (sizeClass) {
[4033] Fix | Delete
$(self.containerOuter.element).addClass(sizeClass);
[4034] Fix | Delete
}
[4035] Fix | Delete
[4036] Fix | Delete
/**
[4037] Fix | Delete
* If a multiple select has selected choices - hide a placeholder text.
[4038] Fix | Delete
* In case if select is empty - we return placeholder text.
[4039] Fix | Delete
*/
[4040] Fix | Delete
if ($element.prop('multiple')) {
[4041] Fix | Delete
// On init event.
[4042] Fix | Delete
$input.data('placeholder', $input.attr('placeholder'));
[4043] Fix | Delete
if (self.getValue(true).length) {
[4044] Fix | Delete
$input.removeAttr('placeholder');
[4045] Fix | Delete
}
[4046] Fix | Delete
}
[4047] Fix | Delete
this.disable();
[4048] Fix | Delete
$field.find('.is-disabled').removeClass('is-disabled');
[4049] Fix | Delete
};
[4050] Fix | Delete
try {
[4051] Fix | Delete
var choicesInstance = new Choices(selectEl, args);
[4052] Fix | Delete
[4053] Fix | Delete
// Save Choices.js instance for future access.
[4054] Fix | Delete
$el.data('choicesjs', choicesInstance);
[4055] Fix | Delete
} catch (e) {} // eslint-disable-line no-empty
[4056] Fix | Delete
});
[4057] Fix | Delete
},
[4058] Fix | Delete
/**
[4059] Fix | Delete
* Initialize RichText field.
[4060] Fix | Delete
*
[4061] Fix | Delete
* @since 1.8.1
[4062] Fix | Delete
*
[4063] Fix | Delete
* @param {number} formId Form ID.
[4064] Fix | Delete
*/
[4065] Fix | Delete
initRichTextField: function initRichTextField(formId) {
[4066] Fix | Delete
// Set default tab to `Visual`.
[4067] Fix | Delete
$("#wpforms-".concat(formId, " .wp-editor-wrap")).removeClass('html-active').addClass('tmce-active');
[4068] Fix | Delete
},
[4069] Fix | Delete
/**
[4070] Fix | Delete
* Initialize Repeater field.
[4071] Fix | Delete
*
[4072] Fix | Delete
* @since 1.8.9
[4073] Fix | Delete
*
[4074] Fix | Delete
* @param {number} formId Form ID.
[4075] Fix | Delete
*/
[4076] Fix | Delete
initRepeaterField: function initRepeaterField(formId) {
[4077] Fix | Delete
var $rowButtons = $("#wpforms-".concat(formId, " .wpforms-field-repeater > .wpforms-field-repeater-display-rows .wpforms-field-repeater-display-rows-buttons"));
[4078] Fix | Delete
[4079] Fix | Delete
// Get the label height and set the button position.
[4080] Fix | Delete
$rowButtons.each(function () {
[4081] Fix | Delete
var $cont = $(this);
[4082] Fix | Delete
var $label = $cont.siblings('.wpforms-layout-column').find('.wpforms-field').first().find('.wpforms-field-label');
[4083] Fix | Delete
var labelStyle = window.getComputedStyle($label.get(0));
[4084] Fix | Delete
var margin = (labelStyle === null || labelStyle === void 0 ? void 0 : labelStyle.getPropertyValue('--wpforms-field-size-input-spacing')) || 0;
[4085] Fix | Delete
var height = $label.outerHeight() || 0;
[4086] Fix | Delete
var top = height + parseInt(margin, 10) + 10;
[4087] Fix | Delete
$cont.css({
[4088] Fix | Delete
top: top
[4089] Fix | Delete
});
[4090] Fix | Delete
});
[4091] Fix | Delete
[4092] Fix | Delete
// Init buttons and descriptions for each repeater in each form.
[4093] Fix | Delete
$(".wpforms-form[data-formid=\"".concat(formId, "\"]")).each(function () {
[4094] Fix | Delete
var $repeater = $(this).find('.wpforms-field-repeater');
[4095] Fix | Delete
$repeater.find('.wpforms-field-repeater-display-rows-buttons').addClass('wpforms-init');
[4096] Fix | Delete
$repeater.find('.wpforms-field-repeater-display-rows:last .wpforms-field-description').addClass('wpforms-init');
[4097] Fix | Delete
});
[4098] Fix | Delete
}
[4099] Fix | Delete
};
[4100] Fix | Delete
[4101] Fix | Delete
// Provide access to public functions/properties.
[4102] Fix | Delete
return app;
[4103] Fix | Delete
}(document, window, jQuery);
[4104] Fix | Delete
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJyZXR1cm4iLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJjYXRjaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZWplY3QiLCJfbmV4dCIsIl90aHJvdyIsImtleSIsImluZm8iLCJlcnJvciIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwiZXJyIiwidW5kZWZpbmVkIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCIsImRvY3VtZW50Iiwid2luZG93IiwiJCIsIl93cCIsIndwIiwiX3dwJHNlcnZlclNpZGVSZW5kZXIiLCJzZXJ2ZXJTaWRlUmVuZGVyIiwiU2VydmVyU2lkZVJlbmRlciIsImNvbXBvbmVudHMiLCJfd3AkZWxlbWVudCIsImVsZW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJjcmVhdGVJbnRlcnBvbGF0ZUVsZW1lbnQiLCJyZWdpc3RlckJsb2NrVHlwZSIsImJsb2NrcyIsIl9yZWYiLCJibG9ja0VkaXRvciIsImVkaXRvciIsIkluc3BlY3RvckNvbnRyb2xzIiwiUGFuZWxDb2xvclNldHRpbmdzIiwiX3dwJGNvbXBvbmVudHMiLCJTZWxlY3RDb250cm9sIiwiVG9nZ2xlQ29udHJvbCIsIlBhbmVsQm9keSIsIlBsYWNlaG9sZGVyIiwiX18iLCJpMThuIiwiX3dwZm9ybXNfZ3V0ZW5iZXJnX2ZvIiwid3Bmb3Jtc19ndXRlbmJlcmdfZm9ybV9zZWxlY3RvciIsInN0cmluZ3MiLCJkZWZhdWx0cyIsInNpemVzIiwidXJscyIsImlzUHJvIiwiaXNMaWNlbnNlQWN0aXZlIiwiZGVmYXVsdFN0eWxlU2V0dGluZ3MiLCJXUEZvcm1zRWR1Y2F0aW9uIiwiZm9ybUxpc3QiLCJmb3JtcyIsInRyaWdnZXJTZXJ2ZXJSZW5kZXIiLCIkcG9wdXAiLCJpc0ZldGNoaW5nIiwiZWwiLCJjb21tb25BdHRyaWJ1dGVzIiwiY2xpZW50SWQiLCJmb3JtSWQiLCJkaXNwbGF5VGl0bGUiLCJkaXNwbGF5RGVzYyIsInByZXZpZXciLCJ0aGVtZSIsInRoZW1lTmFtZSIsImxhYmVsU2l6ZSIsImxhYmVsQ29sb3IiLCJsYWJlbFN1YmxhYmVsQ29sb3IiLCJsYWJlbEVycm9yQ29sb3IiLCJwYWdlQnJlYWtDb2xvciIsImN1c3RvbUNzcyIsImNvcHlQYXN0ZUpzb25WYWx1ZSIsImN1c3RvbVN0eWxlc0hhbmRsZXJzIiwiZHJvcGRvd25UaW1lb3V0IiwiYXBwIiwicGFuZWxzIiwiaW5pdCIsImJsb2NrT3B0aW9ucyIsIiR3aW5kb3ciLCJlZHVjYXRpb24iLCJpbml0RGVmYXVsdHMiLCJyZWdpc3RlckJsb2NrIiwiaW5pdEpDb25maXJtIiwicmVhZHkiLCJldmVudHMiLCJvbiIsIl8iLCJkZWJvdW5jZSIsImJsb2NrRWRpdCIsImZvcm1Mb2FkZWQiLCJqY29uZmlybSIsImNsb3NlSWNvbiIsImJhY2tncm91bmREaXNtaXNzIiwiZXNjYXBlS2V5IiwiYW5pbWF0aW9uQm91bmNlIiwidXNlQm9vdHN0cmFwIiwiYm94V2lkdGgiLCJhbmltYXRlRnJvbUVsZW1lbnQiLCJnZXRGb3JtcyIsIl9jYWxsZWUiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwiYXBpRmV0Y2giLCJwYXRoIiwicm91dGVfbmFtZXNwYWNlIiwiY2FjaGUiLCJ0MCIsImNvbnNvbGUiLCJvcGVuQnVpbGRlclBvcHVwIiwiY2xpZW50SUQiLCJpc0VtcHR5T2JqZWN0IiwidG1wbCIsInBhcmVudCIsImFmdGVyIiwic2libGluZ3MiLCJ1cmwiLCJnZXRfc3RhcnRlZF91cmwiLCIkaWZyYW1lIiwiZmluZCIsImJ1aWxkZXJDbG9zZUJ1dHRvbkV2ZW50IiwiYXR0ciIsImZhZGVJbiIsIm9mZiIsImFjdGlvbiIsImZvcm1UaXRsZSIsIm5ld0Jsb2NrIiwiY3JlYXRlQmxvY2siLCJ0b1N0cmluZyIsIklEIiwicG9zdF90aXRsZSIsImRhdGEiLCJkaXNwYXRjaCIsInJlbW92ZUJsb2NrIiwiaW5zZXJ0QmxvY2tzIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImljb24iLCJnZXRJY29uIiwia2V5d29yZHMiLCJmb3JtX2tleXdvcmRzIiwiY2F0ZWdvcnkiLCJhdHRyaWJ1dGVzIiwiZ2V0QmxvY2tBdHRyaWJ1dGVzIiwic3VwcG9ydHMiLCJjdXN0b21DbGFzc05hbWUiLCJoYXNGb3JtcyIsImV4YW1wbGUiLCJlZGl0IiwicHJvcHMiLCJmb3JtT3B0aW9ucyIsImdldEZvcm1PcHRpb25zIiwiaGFuZGxlcnMiLCJnZXRTZXR0aW5nc0ZpZWxkc0hhbmRsZXJzIiwiaXNDbGllbnRJZEF0dHJVbmlxdWUiLCJzZXRBdHRyaWJ1dGVzIiwianN4IiwianN4UGFydHMiLCJnZXRNYWluU2V0dGluZ3MiLCJnZXRFbXB0eUZvcm1zUHJldmlldyIsInNpemVPcHRpb25zIiwiZ2V0U2l6ZU9wdGlvbnMiLCJpc0Zvcm1BdmFpbGFibGUiLCJnZXRCbG9ja1BsYWNlaG9sZGVyIiwibWF5YmVTdWJzY3JpYmVUb0Jsb2NrRXZlbnRzIiwiZ2V0U3R5bGVTZXR0aW5ncyIsImdldEJsb2NrRm9ybUNvbnRlbnQiLCJ1cGRhdGVDb3B5UGFzdGVDb250ZW50IiwidHJpZ2dlciIsImdldEJsb2NrUHJldmlldyIsInNhdmUiLCJfb2JqZWN0U3ByZWFkIiwiZ2V0Q29tbW9uQXR0cmlidXRlcyIsInNldFN0eWxlc0hhbmRsZXJzIiwiX3JlZjIiLCJOdW1iZXIiLCJzZXRUcmlnZ2VyU2VydmVyUmVuZGVyIiwiJGZsYWciLCJCb29sZWFuIiwic3Vic2NyaWJlclByb3BzIiwic3Vic2NyaWJlckhhbmRsZXJzIiwic3Vic2NyaWJlckJsb2NrT3B0aW9ucyIsImlkIiwic3Vic2NyaWJlckRlbGV0ZVRoZW1lIiwic3Vic2NyaWJlclVwZGF0ZVRoZW1lIiwic3Vic2NyaWJlclNldFRoZW1lIiwidGhlbWVTbHVnIiwidHJpZ2dlclByb3BzIiwiX3N1YnNjcmliZXJQcm9wcyRhdHRyIiwiX3N1YnNjcmliZXJCbG9ja09wdGlvIiwidGhlbWVzIiwic2V0QmxvY2tUaGVtZSIsInRoZW1lRGF0YSIsIl9zdWJzY3JpYmVyUHJvcHMkYXR0cjIiLCJfc3Vic2NyaWJlckJsb2NrT3B0aW8yIiwiYmxvY2siLCJfc3Vic2NyaWJlckJsb2NrT3B0aW8zIiwiYmFja2dyb3VuZCIsIm9uU2V0VGhlbWUiLCJwcmludEVtcHR5Rm9ybXNOb3RpY2UiLCJSZWFjdCIsImNsYXNzTmFtZSIsImZvcm1fc2V0dGluZ3MiLCJsYWJlbCIsImZvcm1fc2VsZWN0ZWQiLCJvcHRpb25zIiwib25DaGFuZ2UiLCJhdHRyQ2hhbmdlIiwiaHJlZiIsImZvcm1fdXJsIiwicmVwbGFjZSIsInJlbCIsInRhcmdldCIsImZvcm1fZWRpdCIsImVudHJpZXNfdXJsIiwiZm9ybV9lbnRyaWVzIiwic2hvd190aXRsZSIsImNoZWNrZWQiLCJzaG93X2Rlc2NyaXB0aW9uIiwicGFuZWxfbm90aWNlX2hlYWQiLCJwYW5lbF9ub3RpY2VfdGV4dCIsInBhbmVsX25vdGljZV9saW5rIiwicGFuZWxfbm90aWNlX2xpbmtfdGV4dCIsInN0eWxlIiwiZGlzcGxheSIsIm9uQ2xpY2siLCJnZXRMYWJlbFN0eWxlcyIsImdldFBhbmVsQ2xhc3MiLCJsYWJlbF9zdHlsZXMiLCJzaXplIiwic3R5bGVBdHRyQ2hhbmdlIiwiY29sb3JzIiwiX19leHBlcmltZW50YWxJc1JlbmRlcmVkSW5TaWRlYmFyIiwiZW5hYmxlQWxwaGEiLCJzaG93VGl0bGUiLCJjb2xvclNldHRpbmdzIiwic3VibGFiZWxfaGludHMiLCJlcnJvcl9tZXNzYWdlIiwiZ2V0UGFnZUluZGljYXRvclN0eWxlcyIsImhhc1BhZ2VCcmVhayIsImhhc1JhdGluZyIsImNvbmNhdCIsInBhZ2VfYnJlYWsiLCJyYXRpbmciLCJvdGhlcl9zdHlsZXMiLCJnZXRUaGVtZXNQYW5lbCIsInN0b2NrUGhvdG9zIiwiZ2V0RmllbGRTdHlsZXMiLCJnZXRCdXR0b25TdHlsZXMiLCJnZXRDb250YWluZXJTdHlsZXMiLCJnZXRCYWNrZ3JvdW5kU3R5bGVzIiwiZ2V0QmxvY2tDb250YWluZXIiLCJpbm5lckhUTUwiLCJibG9ja0hUTUwiLCJsb2FkZWRGb3JtSWQiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsInNyYyIsImJsb2NrX3ByZXZpZXdfdXJsIiwid2lkdGgiLCJhbHQiLCJibG9ja19lbXB0eV91cmwiLCJiIiwid3Bmb3Jtc19ndWlkZSIsImhlaWdodCIsImlzRm9ybU5vdEF2YWlsYWJsZSIsImxvZ29fdXJsIiwidGV4dEFsaWduIiwibWFyZ2luVG9wIiwiZm9ybV9ub3RfYXZhaWxhYmxlX21lc3NhZ2UiLCJfSlNPTiRwYXJzZSIsImN1cnJlbnRGb3JtIiwiZm9ybSIsInBhcnNlSW50IiwicG9zdF9jb250ZW50IiwiZmllbGRzIiwiSlNPTiIsInBhcnNlIiwic29tZSIsImZpZWxkIiwiX0pTT04kcGFyc2UyIiwiY3NzQ2xhc3MiLCJpc0Z1bGxTdHlsaW5nRW5hYmxlZCIsImdldENvbG9yUGFuZWxDbGFzcyIsImJvcmRlclN0eWxlIiwiaXNfbW9kZXJuX21hcmt1cCIsImlzX2Z1bGxfc3R5bGluZyIsImJsb2NrU2VsZWN0b3IiLCJxdWVyeVNlbGVjdG9yIiwiZWRpdG9yQ2FudmFzIiwiY29udGVudFdpbmRvdyIsInVwZGF0ZVByZXZpZXdDU1NWYXJWYWx1ZSIsImF0dHJpYnV0ZSIsImNvbnRhaW5lciIsInByb3BlcnR5IiwibGV0dGVyIiwidG9Mb3dlckNhc2UiLCJzZXRQcm9wZXJ0eSIsInRvZ2dsZUZpZWxkQm9yZGVyTm9uZUNTU1ZhclZhbHVlIiwibWF5YmVVcGRhdGVBY2NlbnRDb2xvciIsImJ1dHRvbkJvcmRlckNvbG9yIiwibWF5YmVTZXRCdXR0b25BbHRCYWNrZ3JvdW5kQ29sb3IiLCJtYXliZVNldEJ1dHRvbkFsdFRleHRDb2xvciIsImJ1dHRvblRleHRDb2xvciIsImJ1dHRvbkJhY2tncm91bmRDb2xvciIsInNldCIsImNvbnQiLCJXUEZvcm1zVXRpbHMiLCJjc3NDb2xvcnNVdGlscyIsImlzVHJhbnNwYXJlbnRDb2xvciIsImFsdENvbG9yIiwiZ2V0Q29udHJhc3RDb2xvciIsImNvbG9yIiwic2V0QXR0ciIsImluY2x1ZGVzIiwiX3ZhbHVlIiwic2V0QmxvY2tSdW50aW1lU3RhdGVWYXIiLCJ1cGRhdGVDdXN0b21UaGVtZUF0dHJpYnV0ZSIsIm1heWJlVG9nZ2xlRHJvcGRvd24iLCJfdGhpcyIsIm1lbnUiLCJjbGFzc2ljTWVudSIsImNsYXNzTGlzdCIsImFkZCIsInBhcmVudEVsZW1lbnQiLCJzaG93Q2xhc3NpY01lbnUiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0IiwidG9DbG9zZSIsInJlbW92ZSIsImhpZGVDbGFzc2ljTWVudSIsImNzc1RleHQiLCJxdWVyeVNlbGVjdG9yQWxsIiwib3B0aW9uIiwiY29udGVudCIsImF0dHMiLCJzZWxlY3QiLCJzdHJpbmdpZnkiLCJwYXN0ZVNldHRpbmdzIiwidHJpbSIsInBhc3RlQXR0cmlidXRlcyIsInBhcnNlVmFsaWRhdGVKc29uIiwiY3JlYXRlRXJyb3JOb3RpY2UiLCJjb3B5X3Bhc3RlX2Vycm9yIiwibWF5YmVDcmVhdGVDdXN0b21UaGVtZUZyb21BdHRyaWJ1dGVzIiwidmlld0JveCIsImZpbGwiLCJnZXRXUEZvcm1zQmxvY2tzIiwid3Bmb3Jtc0Jsb2NrcyIsImdldEJsb2NrcyIsImZpbHRlciIsImdldEJsb2NrUnVudGltZVN0YXRlVmFyIiwidmFyTmFtZSIsIl9ibG9ja3MkY2xpZW50SWQiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJ1bnNoaWZ0IiwiZm9ybV9zZWxlY3QiLCJzbWFsbCIsIm1lZGl1bSIsImxhcmdlIiwiZGF0YXNldCIsImluaXRMZWFkRm9ybVNldHRpbmdzIiwiJGZvcm0iLCIkcGFuZWwiLCJoYXNDbGFzcyIsImFkZENsYXNzIiwiY3NzIiwicmVtb3ZlQ2xhc3MiLCJkZXRhaWwiLCJ1cGRhdGVBY2NlbnRDb2xvcnMiLCJsb2FkQ2hvaWNlc0pTIiwiaW5pdFJpY2hUZXh0RmllbGQiLCJpbml0UmVwZWF0ZXJGaWVsZCIsImJsb2NrQ2xpY2siLCJjdXJyZW50VGFyZ2V0IiwiX3dpbmRvdyRXUEZvcm1zIiwiV1BGb3JtcyIsIkZyb250ZW5kTW9kZXJuIiwidXBkYXRlR0JCbG9ja1BhZ2VJbmRpY2F0b3JDb2xvciIsInVwZGF0ZUdCQmxvY2tJY29uQ2hvaWNlc0NvbG9yIiwidXBkYXRlR0JCbG9ja1JhdGluZ0NvbG9yIiwiQ2hvaWNlcyIsImVhY2giLCJpZHgiLCJzZWxlY3RFbCIsIiRlbCIsIndwZm9ybXNfY2hvaWNlc2pzX2NvbmZpZyIsInNlYXJjaEVuYWJsZWQiLCIkZmllbGQiLCJjbG9zZXN0IiwiY2FsbGJhY2tPbkluaXQiLCIkZWxlbWVudCIsInBhc3NlZEVsZW1lbnQiLCIkaW5wdXQiLCJpbnB1dCIsInNpemVDbGFzcyIsImNvbnRhaW5lck91dGVyIiwicHJvcCIsImdldFZhbHVlIiwicmVtb3ZlQXR0ciIsImRpc2FibGUiLCJjaG9pY2VzSW5zdGFuY2UiLCIkcm93QnV0dG9ucyIsIiRjb250IiwiJGxhYmVsIiwiZmlyc3QiLCJsYWJlbFN0eWxlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImdldCIsIm1hcmdpbiIsImdldFByb3BlcnR5VmFsdWUiLCJvdXRlckhlaWdodCIsInRvcCIsIiRyZXBlYXRlciIsImpRdWVyeSJdLCJzb3VyY2VzIjpbImNvbW1vbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgamNvbmZpcm0sIHdwZm9ybXNfZ3V0ZW5iZXJnX2Zvcm1fc2VsZWN0b3IsIENob2ljZXMsIEpTWCwgRE9NLCBXUEZvcm1zVXRpbHMgKi9cbi8qIGpzaGludCBlczM6IGZhbHNlLCBlc3ZlcnNpb246IDYgKi9cblxuLyoqXG4gKiBAcGFyYW0gc3RyaW5ncy5jb3B5X3Bhc3RlX2Vycm9yXG4gKiBAcGFyYW0gc3RyaW5ncy5lcnJvcl9tZXNzYWdlXG4gKiBAcGFyYW0gc3RyaW5ncy5mb3JtX2VkaXRcbiAqIEBwYXJhbSBzdHJpbmdzLmZvcm1fZW50cmllc1xuICogQHBhcmFtIHN0cmluZ3MuZm9ybV9rZXl3b3Jkc1xuICogQHBhcmFtIHN0cmluZ3MuZm9ybV9zZWxlY3RcbiAqIEBwYXJhbSBzdHJpbmdzLmZvcm1fc2VsZWN0ZWRcbiAqIEBwYXJhbSBzdHJpbmdzLmZvcm1fc2V0dGluZ3NcbiAqIEBwYXJhbSBzdHJpbmdzLmxhYmVsX3N0eWxlc1xuICogQHBhcmFtIHN0cmluZ3Mub3RoZXJfc3R5bGVzXG4gKiBAcGFyYW0gc3RyaW5ncy5wYWdlX2JyZWFrXG4gKiBAcGFyYW0gc3RyaW5ncy5wYW5lbF9ub3RpY2VfaGVhZFxuICogQHBhcmFtIHN0cmluZ3MucGFuZWxfbm90aWNlX2xpbmtcbiAqIEBwYXJhbSBzdHJpbmdzLnBhbmVsX25vdGljZV9saW5rX3RleHRcbiAqIEBwYXJhbSBzdHJpbmdzLnBhbmVsX25vdGljZV90ZXh0XG4gKiBAcGFyYW0gc3RyaW5ncy5zaG93X2Rlc2NyaXB0aW9uXG4gKiBAcGFyYW0gc3RyaW5ncy5zaG93X3RpdGxlXG4gKiBAcGFyYW0gc3RyaW5ncy5zdWJsYWJlbF9oaW50c1xuICogQHBhcmFtIHN0cmluZ3MuZm9ybV9ub3RfYXZhaWxhYmxlX21lc3NhZ2VcbiAqIEBwYXJhbSB1cmxzLmVudHJpZXNfdXJsXG4gKiBAcGFyYW0gdXJscy5mb3JtX3VybFxuICogQHBhcmFtIHdpbmRvdy53cGZvcm1zX2Nob2ljZXNqc19jb25maWdcbiAqIEBwYXJhbSB3cGZvcm1zX2VkdWNhdGlvbi51cGdyYWRlX2JvbnVzXG4gKiBAcGFyYW0gd3Bmb3Jtc19ndXRlbmJlcmdfZm9ybV9zZWxlY3Rvci5ibG9ja19lbXB0eV91cmxcbiAqIEBwYXJhbSB3cGZvcm1zX2d1dGVuYmVyZ19mb3JtX3NlbGVjdG9yLmJsb2NrX3ByZXZpZXdfdXJsXG4gKiBAcGFyYW0gd3Bmb3Jtc19ndXRlbmJlcmdfZm9ybV9zZWxlY3Rvci5nZXRfc3RhcnRlZF91cmxcbiAqIEBwYXJhbSB3cGZvcm1zX2d1dGVuYmVyZ19mb3JtX3NlbGVjdG9yLmlzX2Z1bGxfc3R5bGluZ1xuICogQHBhcmFtIHdwZm9ybXNfZ3V0ZW5iZXJnX2Zvcm1fc2VsZWN0b3IuaXNfbW9kZXJuX21hcmt1cFxuICogQHBhcmFtIHdwZm9ybXNfZ3V0ZW5iZXJnX2Zvcm1fc2VsZWN0b3IubG9nb191cmxcbiAqIEBwYXJhbSB3cGZvcm1zX2d1dGVuYmVyZ19mb3JtX3NlbGVjdG9yLndwZm9ybXNfZ3VpZGVcbiAqL1xuXG4vKipcbiAqIEd1dGVuYmVyZyBlZGl0b3IgYmxvY2suXG4gKlxuICogQ29tbW9uIG1vZHVsZS5cbiAqXG4gKiBAc2luY2UgMS44LjhcbiAqL1xuZXhwb3J0IGRlZmF1bHQgKCBmdW5jdGlvbiggZG9jdW1lbnQsIHdpbmRvdywgJCApIHtcblx0LyoqXG5cdCAqIFdQIGNvcmUgY29tcG9uZW50cy5cblx0ICpcblx0ICogQHNpbmNlIDEuOC44XG5cdCAqL1xuXHRjb25zdCB7IHNlcnZlclNpZGVSZW5kZXI6IFNlcnZlclNpZGVSZW5kZXIgPSB3cC5jb21wb25lbnRzLlNlcnZlclNpZGVSZW5kZXIgfSA9IHdwO1xuXHRjb25zdCB7IGNyZWF0ZUVsZW1lbnQsIEZyYWdtZW50LCBjcmVhdGVJbnRlcnBvbGF0ZUVsZW1lbnQgfSA9IHdwLmVsZW1lbnQ7XG5cdGNvbnN0IHsgcmVnaXN0ZXJCbG9ja1R5cGUgfSA9IHdwLmJsb2Nrcztcblx0Y29uc3QgeyBJbnNwZWN0b3JDb250cm9scywgUGFuZWxDb2xvclNldHRpbmdzIH0gPSB3cC5ibG9ja0VkaXRvciB8fCB3cC5lZGl0b3I7XG5cdGNvbnN0IHsgU2VsZWN0Q29udHJvbCwgVG9nZ2xlQ29udHJvbCwgUGFuZWxCb2R5LCBQbGFjZWhvbGRlciB9ID0gd3AuY29tcG9uZW50cztcblx0Y29uc3QgeyBfXyB9ID0gd3AuaTE4bjtcblxuXHQvKipcblx0ICogTG9jYWxpemVkIGRhdGEgYWxpYXNlcy5cblx0ICpcblx0ICogQHNpbmNlIDEuOC44XG5cdCAqL1xuXHRjb25zdCB7IHN0cmluZ3MsIGRlZmF1bHRzLCBzaXplcywgdXJscywgaXNQcm8sIGlzTGljZW5zZUFjdGl2ZSB9ID0gd3Bmb3Jtc19ndXRlbmJlcmdfZm9ybV9zZWxlY3Rvcjtcblx0Y29uc3QgZGVmYXVsdFN0eWxlU2V0dGluZ3MgPSBkZWZhdWx0cztcblxuXHQvLyBub2luc3BlY3Rpb24gSlNVbnVzZWRMb2NhbFN5bWJvbHNcblx0LyoqXG5cdCAqIFdQRm9ybXMgRWR1Y2F0aW9uIHNjcmlwdC5cblx0ICpcblx0ICogQHNpbmNlIDEuOC44XG5cdCAqL1xuXHRjb25zdCBXUEZvcm1zRWR1Y2F0aW9uID0gd2luZG93LldQRm9ybXNFZHVjYXRpb24gfHwge307IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcblxuXHQvKipcblx0ICogTGlzdCBvZiBmb3Jtcy5cblx0ICpcblx0ICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgbG9jYWxpemVkIGluIEZvcm1TZWxlY3Rvci5waHAuXG5cdCAqXG5cdCAqIEBzaW5jZSAxLjguNFxuXHQgKlxuXHQgKiBAdHlwZSB7T2JqZWN0fVxuXHQgKi9cblx0bGV0IGZvcm1MaXN0ID0gd3Bmb3Jtc19ndXRlbmJlcmdfZm9ybV9zZWxlY3Rvci5mb3JtcztcblxuXHQvKipcblx0ICogQmxvY2tzIHJ1bnRpbWUgZGF0YS5cblx0ICpcblx0ICogQHNpbmNlIDEuOC4xXG5cdCAqXG5cdCAqIEB0eXBlIHtPYmplY3R9XG5cdCAqL1xuXHRjb25zdCBibG9ja3MgPSB7fTtcblxuXHQvKipcblx0ICogV2hldGhlciBpdCBpcyBuZWVkZWQgdG8gdHJpZ2dlciBzZXJ2ZXIgcmVuZGVyaW5nLlxuXHQgKlxuXHQgKiBAc2luY2UgMS44LjFcblx0ICpcblx0ICogQHR5cGUge2Jvb2xlYW59XG5cdCAqL1xuXHRsZXQgdHJpZ2dlclNlcnZlclJlbmRlciA9IHRydWU7XG5cblx0LyoqXG5cdCAqIFBvcHVwIGNvbnRhaW5lci5cblx0ICpcblx0ICogQHNpbmNlIDEuOC4zXG5cdCAqXG5cdCAqIEB0eXBlIHtPYmplY3R9XG5cdCAqL1xuXHRsZXQgJHBvcHVwID0ge307XG5cblx0LyoqXG5cdCAqIFRyYWNrIGZldGNoIHN0YXR1cy5cblx0ICpcblx0ICogQHNpbmNlIDEuOC40XG5cdCAqXG5cdCAqIEB0eXBlIHtib29sZWFufVxuXHQgKi9cblx0bGV0IGlzRmV0Y2hpbmcgPSBmYWxzZTtcblxuXHQvKipcblx0ICogRWxlbWVudHMgaG9sZGVyLlxuXHQgKlxuXHQgKiBAc2luY2UgMS44Ljhcblx0ICpcblx0ICogQHR5cGUge09iamVjdH1cblx0ICovXG5cdGNvbnN0IGVsID0ge307XG5cblx0LyoqXG5cdCAqIENvbW1vbiBibG9jayBhdHRyaWJ1dGVzLlxuXHQgKlxuXHQgKiBAc2luY2UgMS44Ljhcblx0ICpcblx0ICogQHR5cGUge09iamVjdH1cblx0ICovXG5cdGxldCBjb21tb25BdHRyaWJ1dGVzID0ge1xuXHRcdGNsaWVudElkOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdGRlZmF1bHQ6ICcnLFxuXHRcdH0sXG5cdFx0Zm9ybUlkOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdGRlZmF1bHQ6IGRlZmF1bHRTdHlsZVNldHRpbmdzLmZvcm1JZCxcblx0XHR9LFxuXHRcdGRpc3BsYXlUaXRsZToge1xuXHRcdFx0dHlwZTogJ2Jvb2xlYW4nLFxuXHRcdFx0ZGVmYXVsdDogZGVmYXVsdFN0eWxlU2V0dGluZ3MuZGlzcGxheVRpdGxlLFxuXHRcdH0sXG5cdFx0ZGlzcGxheURlc2M6IHtcblx0XHRcdHR5cGU6ICdib29sZWFuJyxcblx0XHRcdGRlZmF1bHQ6IGRlZmF1bHRTdHlsZVNldHRpbmdzLmRpc3BsYXlEZXNjLFxuXHRcdH0sXG5cdFx0cHJldmlldzoge1xuXHRcdFx0dHlwZTogJ2Jvb2xlYW4nLFxuXHRcdH0sXG5cdFx0dGhlbWU6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdFx0ZGVmYXVsdDogZGVmYXVsdFN0eWxlU2V0dGluZ3MudGhlbWUsXG5cdFx0fSxcblx0XHR0aGVtZU5hbWU6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdFx0ZGVmYXVsdDogZGVmYXVsdFN0eWxlU2V0dGluZ3MudGhlbWVOYW1lLFxuXHRcdH0sXG5cdFx0bGFiZWxTaXplOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdGRlZmF1bHQ6IGRlZmF1bHRTdHlsZVNldHRpbmdzLmxhYmVsU2l6ZSxcblx0XHR9LFxuXHRcdGxhYmVsQ29sb3I6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdFx0ZGVmYXVsdDogZGVmYXVsdFN0eWxlU2V0dGluZ3MubGFiZWxDb2xvcixcblx0XHR9LFxuXHRcdGxhYmVsU3VibGFiZWxDb2xvcjoge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRkZWZhdWx0OiBkZWZhdWx0U3R5bGVTZXR0aW5ncy5sYWJlbFN1YmxhYmVsQ29sb3IsXG5cdFx0fSxcblx0XHRsYWJlbEVycm9yQ29sb3I6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdFx0ZGVmYXVsdDogZGVmYXVsdFN0eWxlU2V0dGluZ3MubGFiZWxFcnJvckNvbG9yLFxuXHRcdH0sXG5cdFx0cGFnZUJyZWFrQ29sb3I6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdFx0ZGVmYXVsdDogZGVmYXVsdFN0eWxlU2V0dGluZ3MucGFnZUJyZWFrQ29sb3IsXG5cdFx0fSxcblx0XHRjdXN0b21Dc3M6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdFx0ZGVmYXVsdDogZGVmYXVsdFN0eWxlU2V0dGluZ3MuY3VzdG9tQ3NzLFxuXHRcdH0sXG5cdFx0Y29weVBhc3RlSnNvblZhbHVlOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdGRlZmF1bHQ6IGRlZmF1bHRTdHlsZVNldHRpbmdzLmNvcHlQYXN0ZUpzb25WYWx1ZSxcblx0XHR9LFxuXHR9O1xuXG5cdC8qKlxuXHQgKiBIYW5kbGVycyBmb3IgY3VzdG9tIHN0eWxlcyBzZXR0aW5ncywgZGVmaW5lZCBvdXRzaWRlIHRoaXMgbW9kdWxlLlxuXHQgKlxuXHQgKiBAc2luY2UgMS44Ljhcblx0ICpcblx0ICogQHR5cGUge09iamVjdH1cblx0ICovXG5cdGxldCBjdXN0b21TdHlsZXNIYW5kbGVycyA9IHt9O1xuXG5cdC8qKlxuXHQgKiBEcm9wZG93biB0aW1lb3V0LlxuXHQgKlxuXHQgKiBAc2luY2UgMS44Ljhcblx0ICpcblx0ICogQHR5cGUge251bWJlcn1cblx0ICovXG5cdGxldCBkcm9wZG93blRpbWVvdXQ7XG5cblx0LyoqXG5cdCAqIFB1YmxpYyBmdW5jdGlvbnMgYW5kIHByb3BlcnRpZXMuXG5cdCAqXG5cdCAqIEBzaW5jZSAxLjguMVxuXHQgKlxuXHQgKiBAdHlwZSB7T2JqZWN0fVxuXHQgKi9cblx0Y29uc3QgYXBwID0ge1xuXG5cdFx0LyoqXG5cdFx0ICogUGFuZWwgbW9kdWxlcy5cblx0XHQgKlxuXHRcdCAqIEBzaW5jZSAxLjguOFxuXHRcdCAqXG5cdFx0ICogQHR5cGUge09iamVjdH1cblx0XHQgKi9cblx0XHRwYW5lbHM6IHt9LFxuXG5cdFx0LyoqXG5cdFx0ICogU3RhcnQgdGhlIGVuZ2luZS5cblx0XHQgKlxuXHRcdCAqIEBzaW5jZSAxLjguMVxuXHRcdCAqXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IGJsb2NrT3B0aW9ucyBCbG9jayBvcHRpb25zLlxuXHRcdCAqL1xuXHRcdGluaXQoIGJsb2NrT3B0aW9ucyApIHtcblx0XHRcdGVsLiR3aW5kb3cgPSAkKCB3aW5kb3cgKTtcblx0XHRcdGFwcC5wYW5lbHMgPSBibG9ja09wdGlvbnMucGFuZWxzO1xuXHRcdFx0YXBwLmVkdWNhdGlvbiA9IGJsb2NrT3B0aW9ucy5lZHVjYXRpb247XG5cblx0XHRcdGFwcC5pbml0RGVmYXVsdHMoIGJsb2NrT3B0aW9ucyApO1xuXHRcdFx0YXBwLnJlZ2lzdGVyQmxvY2soIGJsb2NrT3B0aW9ucyApO1xuXG5cdFx0XHRhcHAuaW5pdEpDb25maXJtKCk7XG5cblx0XHRcdCQoIGFwcC5yZWFkeSApO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBEb2N1bWVudCByZWFkeS5cblx0XHQgKlxuXHRcdCAqIEBzaW5jZSAxLjguMVxuXHRcdCAqL1xuXHRcdHJlYWR5KCkge1xuXHRcdFx0YXBwLmV2ZW50cygpO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBFdmVudHMuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44LjFcblx0XHQgKi9cblx0XHRldmVudHMoKSB7XG5cdFx0XHRlbC4kd2luZG93XG5cdFx0XHRcdC5vbiggJ3dwZm9ybXNGb3JtU2VsZWN0b3JFZGl0JywgXy5kZWJvdW5jZSggYXBwLmJsb2NrRWRpdCwgMjUwICkgKVxuXHRcdFx0XHQub24oICd3cGZvcm1zRm9ybVNlbGVjdG9yRm9ybUxvYWRlZCcsIF8uZGVib3VuY2UoIGFwcC5mb3JtTG9hZGVkLCAyNTAgKSApO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBJbml0IGpDb25maXJtLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC44XG5cdFx0ICovXG5cdFx0aW5pdEpDb25maXJtKCkge1xuXHRcdFx0Ly8ganF1ZXJ5LWNvbmZpcm0gZGVmYXVsdHMuXG5cdFx0XHRqY29uZmlybS5kZWZhdWx0cyA9IHtcblx0XHRcdFx0Y2xvc2VJY29uOiBmYWxzZSxcblx0XHRcdFx0YmFja2dyb3VuZERpc21pc3M6IGZhbHNlLFxuXHRcdFx0XHRlc2NhcGVLZXk6IHRydWUsXG5cdFx0XHRcdGFuaW1hdGlvbkJvdW5jZTogMSxcblx0XHRcdFx0dXNlQm9vdHN0cmFwOiBmYWxzZSxcblx0XHRcdFx0dGhlbWU6ICdtb2Rlcm4nLFxuXHRcdFx0XHRib3hXaWR0aDogJzQwMHB4Jyxcblx0XHRcdFx0YW5pbWF0ZUZyb21FbGVtZW50OiBmYWxzZSxcblx0XHRcdH07XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEdldCBhIGZyZXNoIGxpc3Qgb2YgZm9ybXMgdmlhIFJFU1QtQVBJLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC40XG5cdFx0ICpcblx0XHQgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLndvcmRwcmVzcy5vcmcvYmxvY2stZWRpdG9yL3JlZmVyZW5jZS1ndWlkZXMvcGFja2FnZXMvcGFja2FnZXMtYXBpLWZldGNoL1xuXHRcdCAqL1xuXHRcdGFzeW5jIGdldEZvcm1zKCkge1xuXHRcdFx0Ly8gSWYgYSBmZXRjaCBpcyBhbHJlYWR5IGluIHByb2dyZXNzLCBleGl0IHRoZSBmdW5jdGlvbi5cblx0XHRcdGlmICggaXNGZXRjaGluZyApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTZXQgdGhlIGZsYWcgdG8gdHJ1ZSBpbmRpY2F0aW5nIGEgZmV0Y2ggaXMgaW4gcHJvZ3Jlc3MuXG5cdFx0XHRpc0ZldGNoaW5nID0gdHJ1ZTtcblxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Ly8gRmV0Y2ggZm9ybXMuXG5cdFx0XHRcdGZvcm1MaXN0ID0gYXdhaXQgd3AuYXBpRmV0Y2goIHtcblx0XHRcdFx0XHRwYXRoOiB3cGZvcm1zX2d1dGVuYmVyZ19mb3JtX3NlbGVjdG9yLnJvdXRlX25hbWVzcGFjZSArICdmb3Jtcy8nLFxuXHRcdFx0XHRcdG1ldGhvZDogJ0dFVCcsXG5cdFx0XHRcdFx0Y2FjaGU6ICduby1jYWNoZScsXG5cdFx0XHRcdH0gKTtcblx0XHRcdH0gY2F0Y2ggKCBlcnJvciApIHtcblx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcblx0XHRcdFx0Y29uc29sZS5lcnJvciggZXJyb3IgKTtcblx0XHRcdH0gZmluYWxseSB7XG5cdFx0XHRcdGlzRmV0Y2hpbmcgPSBmYWxzZTtcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogT3BlbiBidWlsZGVyIHBvcHVwLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuNi4yXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge3N0cmluZ30gY2xpZW50SUQgQmxvY2sgQ2xpZW50IElELlxuXHRcdCAqL1xuXHRcdG9wZW5CdWlsZGVyUG9wdXAoIGNsaWVudElEICkge1xuXHRcdFx0aWYgKCAkLmlzRW1wdHlPYmplY3QoICRwb3B1cCApICkge1xuXHRcdFx0XHRjb25zdCB0bXBsID0gJCggJyN3cGZvcm1zLWd1dGVuYmVyZy1wb3B1cCcgKTtcblx0XHRcdFx0Y29uc3QgcGFyZW50ID0gJCggJyN3cHdyYXAnICk7XG5cblx0XHRcdFx0cGFyZW50LmFmdGVyKCB0bXBsICk7XG5cblx0XHRcdFx0JHBvcHVwID0gcGFyZW50LnNpYmxpbmdzKCAnI3dwZm9ybXMtZ3V0ZW5iZXJnLXBvcHVwJyApO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCB1cmwgPSB3cGZvcm1zX2d1dGVuYmVyZ19mb3JtX3NlbGVjdG9yLmdldF9zdGFydGVkX3VybCxcblx0XHRcdFx0JGlmcmFtZSA9ICRwb3B1cC5maW5kKCAnaWZyYW1lJyApO1xuXG5cdFx0XHRhcHAuYnVpbGRlckNsb3NlQnV0dG9uRXZlbnQoIGNsaWVudElEICk7XG5cdFx0XHQkaWZyYW1lLmF0dHIoICdzcmMnLCB1cmwgKTtcblx0XHRcdCRwb3B1cC5mYWRlSW4oKTtcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogQ2xvc2UgYnV0dG9uIChpbnNpZGUgdGhlIGZvcm0gYnVpbGRlcikgY2xpY2sgZXZlbnQuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44LjNcblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7c3RyaW5nfSBjbGllbnRJRCBCbG9jayBDbGllbnQgSUQuXG5cdFx0ICovXG5cdFx0YnVpbGRlckNsb3NlQnV0dG9uRXZlbnQoIGNsaWVudElEICkge1xuXHRcdFx0JHBvcHVwXG5cdFx0XHRcdC5vZmYoICd3cGZvcm1zQnVpbGRlckluUG9wdXBDbG9zZScgKVxuXHRcdFx0XHQub24oICd3cGZvcm1zQnVpbGRlckluUG9wdXBDbG9zZScsIGZ1bmN0aW9uKCBlLCBhY3Rpb24sIGZvcm1JZCwgZm9ybVRpdGxlICkge1xuXHRcdFx0XHRcdGlmICggYWN0aW9uICE9PSAnc2F2ZWQnIHx8ICEgZm9ybUlkICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIEluc2VydCBhIG5ldyBibG9jayB3aGVuIGEgbmV3IGZvcm0gaXMgY3JlYXRlZCBmcm9tIHRoZSBwb3B1cCB0byB1cGRhdGUgdGhlIGZvcm0gbGlzdCBhbmQgYXR0cmlidXRlcy5cblx0XHRcdFx0XHRjb25zdCBuZXdCbG9jayA9IHdwLmJsb2Nrcy5jcmVhdGVCbG9jayggJ3dwZm9ybXMvZm9ybS1zZWxlY3RvcicsIHtcblx0XHRcdFx0XHRcdGZvcm1JZDogZm9ybUlkLnRvU3RyaW5nKCksIC8vIEV4cGVjdHMgc3RyaW5nIHZhbHVlLCBtYWtlIHN1cmUgd2UgaW5zZXJ0IHN0cmluZy5cblx0XHRcdFx0XHR9ICk7XG5cblx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlXG5cdFx0XHRcdFx0Zm9ybUxpc3QgPSBbIHsgSUQ6IGZvcm1JZCwgcG9zdF90aXRsZTogZm9ybVRpdGxlIH0gXTtcblxuXHRcdFx0XHRcdC8vIEluc2VydCBhIG5ldyBibG9jay5cblx0XHRcdFx0XHR3cC5kYXRhLmRpc3BhdGNoKCAnY29yZS9ibG9jay1lZGl0b3InICkucmVtb3ZlQmxvY2soIGNsaWVudElEICk7XG5cdFx0XHRcdFx0d3AuZGF0YS5kaXNwYXRjaCggJ2NvcmUvYmxvY2stZWRpdG9yJyApLmluc2VydEJsb2NrcyggbmV3QmxvY2sgKTtcblx0XHRcdFx0fSApO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBSZWdpc3RlciBibG9jay5cblx0XHQgKlxuXHRcdCAqIEBzaW5jZSAxLjguMVxuXHRcdCAqXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IGJsb2NrT3B0aW9ucyBBZGRpdGlvbmFsIGJsb2NrIG9wdGlvbnMuXG5cdFx0ICovXG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1saW5lcy1wZXItZnVuY3Rpb25cblx0XHRyZWdpc3RlckJsb2NrKCBibG9ja09wdGlvbnMgKSB7XG5cdFx0XHRyZWdpc3RlckJsb2NrVHlwZSggJ3dwZm9ybXMvZm9ybS1zZWxlY3RvcicsIHtcblx0XHRcdFx0dGl0bGU6IHN0cmluZ3MudGl0bGUsXG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBzdHJpbmdzLmRlc2NyaXB0aW9uLFxuXHRcdFx0XHRpY29uOiBhcHAuZ2V0SWNvbigpLFxuXHRcdFx0XHRrZXl3b3Jkczogc3RyaW5ncy5mb3JtX2tleXdvcmRzLFxuXHRcdFx0XHRjYXRlZ29yeTogJ3dpZGdldHMnLFxuXHRcdFx0XHRhdHRyaWJ1dGVzOiBhcHAuZ2V0QmxvY2tBdHRyaWJ1dGVzKCksXG5cdFx0XHRcdHN1cHBvcnRzOiB7XG5cdFx0XHRcdFx0Y3VzdG9tQ2xhc3NOYW1lOiBhcHAuaGFzRm9ybXMoKSxcblx0XHRcdFx0fSxcblx0XHRcdFx0ZXhhbXBsZToge1xuXHRcdFx0XHRcdGF0dHJpYnV0ZXM6IHtcblx0XHRcdFx0XHRcdHByZXZpZXc6IHRydWUsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0fSxcblx0XHRcdFx0ZWRpdCggcHJvcHMgKSB7XG5cdFx0XHRcdFx0Y29uc3QgeyBhdHRyaWJ1dGVzIH0gPSBwcm9wcztcblx0XHRcdFx0XHRjb25zdCBmb3JtT3B0aW9ucyA9IGFwcC5nZXRGb3JtT3B0aW9ucygpO1xuXHRcdFx0XHRcdGNvbnN0IGhhbmRsZXJzID0gYXBwLmdldFNldHRpbmdzRmllbGRzSGFuZGxlcnMoIHByb3BzICk7XG5cblx0XHRcdFx0XHQvLyBTdG9yZSBibG9jayBjbGllbnRJZCBpbiBhdHRyaWJ1dGVzLlxuXHRcdFx0XHRcdGlmICggISBhdHRyaWJ1dGVzLmNsaWVudElkIHx8ICEgYXBwLmlzQ2xpZW50SWRBdHRyVW5pcXVlKCBwcm9wcyApICkge1xuXHRcdFx0XHRcdFx0Ly8gV2UganVzdCB3YW50IHRoZSBjbGllbnQgSUQgdG8gdXBkYXRlIG9uY2UuXG5cdFx0XHRcdFx0XHQvLyBUaGUgYmxvY2sgZWRpdG9yIGRvZXNuJ3QgaGF2ZSBhIGZpeGVkIGJsb2NrIElELCBzbyB3ZSBuZWVkIHRvIGdldCBpdCBvbiB0aGUgaW5pdGlhbCBsb2FkLCBidXQgb25seSBvbmNlLlxuXHRcdFx0XHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyggeyBjbGllbnRJZDogcHJvcHMuY2xpZW50SWQgfSApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIE1haW4gYmxvY2sgc2V0dGluZ3MuXG5cdFx0XHRcdFx0Y29uc3QganN4ID0gW1xuXHRcdFx0XHRcdFx0YXBwLmpzeFBhcnRzLmdldE1haW5TZXR0aW5ncyggYXR0cmlidXRlcywgaGFuZGxlcnMsIGZvcm1PcHRpb25zICksXG5cdFx0XHRcdFx0XTtcblxuXHRcdFx0XHRcdC8vIEJsb2NrIHByZXZpZXcgcGljdHVyZS5cblx0XHRcdFx0XHRpZiAoICEgYXBwLmhhc0Zvcm1zKCkgKSB7XG5cdFx0XHRcdFx0XHRqc3gucHVzaChcblx0XHRcdFx0XHRcdFx0YXBwLmpzeFBhcnRzLmdldEVtcHR5Rm9ybXNQcmV2aWV3KCBwcm9wcyApLFxuXHRcdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdFx0cmV0dXJuIGpzeDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRjb25zdCBzaXplT3B0aW9ucyA9IGFwcC5nZXRTaXplT3B0aW9ucygpO1xuXG5cdFx0XHRcdFx0Ly8gU2hvdyBwbGFjZWhvbGRlciB3aGVuIGZvcm0gaXMgbm90IGF2YWlsYWJsZSAodHJhc2hlZCwgZGVsZXRlZCBldGMuKS5cblx0XHRcdFx0XHRpZiAoIGF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlcy5mb3JtSWQgJiYgYXBwLmlzRm9ybUF2YWlsYWJsZSggYXR0cmlidXRlcy5mb3JtSWQgKSA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0XHQvLyBCbG9jayBwbGFjZWhvbGRlciAoZm9ybSBzZWxlY3RvcikuXG5cdFx0XHRcdFx0XHRqc3gucHVzaChcblx0XHRcdFx0XHRcdFx0YXBwLmpzeFBhcnRzLmdldEJsb2NrUGxhY2Vob2xkZXIoIHByb3BzLmF0dHJpYnV0ZXMsIGhhbmRsZXJzLCBmb3JtT3B0aW9ucyApLFxuXHRcdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdFx0cmV0dXJuIGpzeDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBGb3JtIHN0eWxlIHNldHRpbmdzICYgYmxvY2sgY29udGVudC5cblx0XHRcdFx0XHRpZiAoIGF0dHJpYnV0ZXMuZm9ybUlkICkge1xuXHRcdFx0XHRcdFx0Ly8gU3Vic2NyaWJlIHRvIGJsb2NrIGV2ZW50cy5cblx0XHRcdFx0XHRcdGFwcC5tYXliZVN1YnNjcmliZVRvQmxvY2tFdmVudHMoIHByb3BzLCBoYW5kbGVycywgYmxvY2tPcHRpb25zICk7XG5cblx0XHRcdFx0XHRcdGpzeC5wdXNoKFxuXHRcdFx0XHRcdFx0XHRhcHAuanN4UGFydHMuZ2V0U3R5bGVTZXR0aW5ncyggcHJvcHMsIGhhbmRsZXJzLCBzaXplT3B0aW9ucywgYmxvY2tPcHRpb25zICksXG5cdFx0XHRcdFx0XHRcdGFwcC5qc3hQYXJ0cy5nZXRCbG9ja0Zvcm1Db250ZW50KCBwcm9wcyApXG5cdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHRoYW5kbGVycy51cGRhdGVDb3B5UGFzdGVDb250ZW50KCk7XG5cblx0XHRcdFx0XHRcdGVsLiR3aW5kb3cudHJpZ2dlciggJ3dwZm9ybXNGb3JtU2VsZWN0b3JFZGl0JywgWyBwcm9wcyBdICk7XG5cblx0XHRcdFx0XHRcdHJldHVybiBqc3g7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gQmxvY2sgcHJldmlldyBwaWN0dXJlLlxuXHRcdFx0XHRcdGlmICggYXR0cmlidXRlcy5wcmV2aWV3ICkge1xuXHRcdFx0XHRcdFx0anN4LnB1c2goXG5cdFx0XHRcdFx0XHRcdGFwcC5qc3hQYXJ0cy5nZXRCbG9ja1ByZXZpZXcoKSxcblx0XHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRcdHJldHVybiBqc3g7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gQmxvY2sgcGxhY2Vob2xkZXIgKGZvcm0gc2VsZWN0b3IpLlxuXHRcdFx0XHRcdGpzeC5wdXNoKFxuXHRcdFx0XHRcdFx0YXBwLmpzeFBhcnRzLmdldEJsb2NrUGxhY2Vob2xkZXIoIHByb3BzLmF0dHJpYnV0ZXMsIGhhbmRsZXJzLCBmb3JtT3B0aW9ucyApLFxuXHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRyZXR1cm4ganN4O1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRzYXZlOiAoKSA9PiBudWxsLFxuXHRcdFx0fSApO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBJbml0IGRlZmF1bHQgc3R5bGUgc2V0dGluZ3MuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44LjFcblx0XHQgKiBAc2luY2UgMS44LjggQWRkZWQgYmxvY2tPcHRpb25zIHBhcmFtZXRlci5cblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBibG9ja09wdGlvbnMgQWRkaXRpb25hbCBibG9jayBvcHRpb25zLlxuXHRcdCAqL1xuXHRcdGluaXREZWZhdWx0cyggYmxvY2tPcHRpb25zID0ge30gKSB7XG5cdFx0XHRjb21tb25BdHRyaWJ1dGVzID0ge1xuXHRcdFx0XHQuLi5jb21tb25BdHRyaWJ1dGVzLFxuXHRcdFx0XHQuLi5ibG9ja09wdGlvbnMuZ2V0Q29tbW9uQXR0cmlidXRlcygpLFxuXHRcdFx0fTtcblx0XHRcdGN1c3RvbVN0eWxlc0hhbmRsZXJzID0gYmxvY2tPcHRpb25zLnNldFN0eWxlc0hhbmRsZXJzO1xuXG5cdFx0XHRbICdmb3JtSWQnLCAnY29weVBhc3RlSnNvblZhbHVlJyBdLmZvckVhY2goICgga2V5ICkgPT4gZGVsZXRlIGRlZmF1bHRTdHlsZVNldHRpbmdzWyBrZXkgXSApO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBDaGVjayBpZiB0aGUgc2l0ZSBoYXMgZm9ybXMuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44LjNcblx0XHQgKlxuXHRcdCAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgc2l0ZSBoYXMgYXQgbGVhc3Qgb25lIGZvcm0uXG5cdFx0ICovXG5cdFx0aGFzRm9ybXMoKSB7XG5cdFx0XHRyZXR1cm4gZm9ybUxpc3QubGVuZ3RoID4gMDtcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogQ2hlY2sgaWYgZm9ybSBpcyBhdmFpbGFibGUgdG8gYmUgcHJldmlld2VkLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC45XG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge251bWJlcn0gZm9ybUlkIEZvcm0gSUQuXG5cdFx0ICpcblx0XHQgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIGZvcm0gaXMgYXZhaWxhYmxlLlxuXHRcdCAqL1xuXHRcdGlzRm9ybUF2YWlsYWJsZSggZm9ybUlkICkge1xuXHRcdFx0cmV0dXJuIGZvcm1MaXN0LmZpbmQoICggeyBJRCB9ICkgPT4gSUQgPT09IE51bWJlciggZm9ybUlkICkgKSAhPT0gdW5kZWZpbmVkO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBTZXQgdHJpZ2dlclNlcnZlclJlbmRlciBmbGFnLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC44XG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge2Jvb2xlYW59ICRmbGFnIFRoZSB2YWx1ZSBvZiB0aGUgdHJpZ2dlclNlcnZlclJlbmRlciBmbGFnLlxuXHRcdCAqL1xuXHRcdHNldFRyaWdnZXJTZXJ2ZXJSZW5kZXIoICRmbGFnICkge1xuXHRcdFx0dHJpZ2dlclNlcnZlclJlbmRlciA9IEJvb2xlYW4oICRmbGFnICk7XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIE1heWJlIHN1YnNjcmliZSB0byBibG9jayBldmVudHMuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44Ljhcblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBzdWJzY3JpYmVyUHJvcHMgICAgICAgIFN1YnNjcmliZXIgYmxvY2sgcHJvcGVydGllcy5cblx0XHQgKiBAcGFyYW0ge09iamVjdH0gc3Vic2NyaWJlckhhbmRsZXJzICAgICBTdWJzY3JpYmVyIGJsb2NrIGV2ZW50IGhhbmRsZXJzLlxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBzdWJzY3JpYmVyQmxvY2tPcHRpb25zIFN1YnNjcmliZXIgYmxvY2sgb3B0aW9ucy5cblx0XHQgKi9cblx0XHRtYXliZVN1YnNjcmliZVRvQmxvY2tFdmVudHMoIHN1YnNjcmliZXJQcm9wcywgc3Vic2NyaWJlckhhbmRsZXJzLCBzdWJzY3JpYmVyQmxvY2tPcHRpb25zICkge1xuXHRcdFx0Y29uc3QgaWQgPSBzdWJzY3JpYmVyUHJvcHMuY2xpZW50SWQ7XG5cblx0XHRcdC8vIFVuc3Vic2NyaWJlIGZyb20gYmxvY2sgZXZlbnRzLlxuXHRcdFx0Ly8gVGhpcyBpcyBuZWVkZWQgdG8gYXZvaWQgbXVsdGlwbGUgc3Vic2NyaXB0aW9ucyB3aGVuIHRoZSBibG9jayBpcyByZS1yZW5kZXJlZC5cblx0XHRcdGVsLiR3aW5kb3dcblx0XHRcdFx0Lm9mZiggJ3dwZm9ybXNGb3JtU2VsZWN0b3JEZWxldGVUaGVtZS4nICsgaWQgKVxuXHRcdFx0XHQub2ZmKCAnd3Bmb3Jtc0Zvcm1TZWxlY3RvclVwZGF0ZVRoZW1lLicgKyBpZCApXG5cdFx0XHRcdC5vZmYoICd3cGZvcm1zRm9ybVNlbGVjdG9yU2V0VGhlbWUuJyArIGlkICk7XG5cblx0XHRcdC8vIFN1YnNjcmliZSB0byBibG9jayBldmVudHMuXG5cdFx0XHRlbC4kd2luZG93XG5cdFx0XHRcdC5vbiggJ3dwZm9ybXNGb3JtU2VsZWN0b3JEZWxldGVUaGVtZS4nICsgaWQsIGFwcC5zdWJzY3JpYmVyRGVsZXRlVGhlbWUoIHN1YnNjcmliZXJQcm9wcywgc3Vic2NyaWJlckJsb2NrT3B0aW9ucyApIClcblx0XHRcdFx0Lm9uKCAnd3Bmb3Jtc0Zvcm1TZWxlY3RvclVwZGF0ZVRoZW1lLicgKyBpZCwgYXBwLnN1YnNjcmliZXJVcGRhdGVUaGVtZSggc3Vic2NyaWJlclByb3BzLCBzdWJzY3JpYmVyQmxvY2tPcHRpb25zICkgKVxuXHRcdFx0XHQub24oICd3cGZvcm1zRm9ybVNlbGVjdG9yU2V0VGhlbWUuJyArIGlkLCBhcHAuc3Vic2NyaWJlclNldFRoZW1lKCBzdWJzY3JpYmVyUHJvcHMsIHN1YnNjcmliZXJCbG9ja09wdGlvbnMgKSApO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBCbG9jayBldmVudCBgd3Bmb3Jtc0Zvcm1TZWxlY3RvckRlbGV0ZVRoZW1lYCBoYW5kbGVyLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC44XG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge09iamVjdH0gc3Vic2NyaWJlclByb3BzICAgICAgICBTdWJzY3JpYmVyIGJsb2NrIHByb3BlcnRpZXNcblx0XHQgKiBAcGFyYW0ge09iamVjdH0gc3Vic2NyaWJlckJsb2NrT3B0aW9ucyBTdWJzY3JpYmVyIGJsb2NrIG9wdGlvbnMuXG5cdFx0ICpcblx0XHQgKiBAcmV0dXJuIHtGdW5jdGlvbn0gRXZlbnQgaGFuZGxlci5cblx0XHQgKi9cblx0XHRzdWJzY3JpYmVyRGVsZXRlVGhlbWUoIHN1YnNjcmliZXJQcm9wcywgc3Vic2NyaWJlckJsb2NrT3B0aW9ucyApIHtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZSwgdGhlbWVTbHVnLCB0cmlnZ2VyUHJvcHMgKSB7XG5cdFx0XHRcdGlmICggc3Vic2NyaWJlclByb3BzLmNsaWVudElkID09PSB0cmlnZ2VyUHJvcHMuY2xpZW50SWQgKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKCBzdWJzY3JpYmVyUHJvcHM/LmF0dHJpYnV0ZXM/LnRoZW1lICE9PSB0aGVtZVNsdWcgKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKCAhIHN1YnNjcmliZXJCbG9ja09wdGlvbnM/LnBhbmVscz8udGhlbWVzICkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFJlc2V0IHRoZW1lIHRvIGRlZmF1bHQgb25lLlxuXHRcdFx0XHRzdWJzY3JpYmVyQmxvY2tPcHRpb25zLnBhbmVscy50aGVtZXMuc2V0QmxvY2tUaGVtZSggc3Vic2NyaWJlclByb3BzLCAnZGVmYXVsdCcgKTtcblx0XHRcdH07XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEJsb2NrIGV2ZW50IGB3cGZvcm1zRm9ybVNlbGVjdG9yRGVsZXRlVGhlbWVgIGhhbmRsZXIuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44Ljhcblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBzdWJzY3JpYmVyUHJvcHMgICAgICAgIFN1YnNjcmliZXIgYmxvY2sgcHJvcGVydGllc1xuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBzdWJzY3JpYmVyQmxvY2tPcHRpb25zIFN1YnNjcmliZXIgYmxvY2sgb3B0aW9ucy5cblx0XHQgKlxuXHRcdCAqIEByZXR1cm4ge0Z1bmN0aW9ufSBFdmVudCBoYW5kbGVyLlxuXHRcdCAqL1xuXHRcdHN1YnNjcmliZXJVcGRhdGVUaGVtZSggc3Vic2NyaWJlclByb3BzLCBzdWJzY3JpYmVyQmxvY2tPcHRpb25zICkge1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlLCB0aGVtZVNsdWcsIHRoZW1lRGF0YSwgdHJpZ2dlclByb3BzICkge1xuXHRcdFx0XHRpZiAoIHN1YnNjcmliZXJQcm9wcy5jbGllbnRJZCA9PT0gdHJpZ2dlclByb3BzLmNsaWVudElkICkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICggc3Vic2NyaWJlclByb3BzPy5hdHRyaWJ1dGVzPy50aGVtZSAhPT0gdGhlbWVTbHVnICkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICggISBzdWJzY3JpYmVyQmxvY2tPcHRpb25zPy5wYW5lbHM/LnRoZW1lcyApIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBSZXNldCB0aGVtZSB0byBkZWZhdWx0IG9uZS5cblx0XHRcdFx0c3Vic2NyaWJlckJsb2NrT3B0aW9ucy5wYW5lbHMudGhlbWVzLnNldEJsb2NrVGhlbWUoIHN1YnNjcmliZXJQcm9wcywgdGhlbWVTbHVnICk7XG5cdFx0XHR9O1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBCbG9jayBldmVudCBgd3Bmb3Jtc0Zvcm1TZWxlY3RvclNldFRoZW1lYCBoYW5kbGVyLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC44XG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge09iamVjdH0gc3Vic2NyaWJlclByb3BzICAgICAgICBTdWJzY3JpYmVyIGJsb2NrIHByb3BlcnRpZXNcblx0XHQgKiBAcGFyYW0ge09iamVjdH0gc3Vic2NyaWJlckJsb2NrT3B0aW9ucyBTdWJzY3JpYmVyIGJsb2NrIG9wdGlvbnMuXG5cdFx0ICpcblx0XHQgKiBAcmV0dXJuIHtGdW5jdGlvbn0gRXZlbnQgaGFuZGxlci5cblx0XHQgKi9cblx0XHRzdWJzY3JpYmVyU2V0VGhlbWUoIHN1YnNjcmliZXJQcm9wcywgc3Vic2NyaWJlckJsb2NrT3B0aW9ucyApIHtcblx0XHRcdC8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZExvY2FsU3ltYm9sc1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlLCBibG9jaywgdGhlbWVTbHVnLCB0cmlnZ2VyUHJvcHMgKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcblx0XHRcdFx0aWYgKCBzdWJzY3JpYmVyUHJvcHMuY2xpZW50SWQgPT09IHRyaWdnZXJQcm9wcy5jbGllbnRJZCApIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoICEgc3Vic2NyaWJlckJsb2NrT3B0aW9ucz8ucGFuZWxzPy50aGVtZXMgKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gU2V0IHRoZW1lLlxuXHRcdFx0XHRzdWJzY3JpYmVyQmxvY2tPcHRpb25zLnBhbmVscy5iYWNrZ3JvdW5kLm9uU2V0VGhlbWUoIHN1YnNjcmliZXJQcm9wcyApO1xuXHRcdFx0fTtcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogQmxvY2sgSlNYIHBhcnRzLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC4xXG5cdFx0ICpcblx0XHQgKiBAdHlwZSB7T2JqZWN0fVxuXHRcdCAqL1xuXHRcdGpzeFBhcnRzOiB7XG5cblx0XHRcdC8qKlxuXHRcdFx0ICogR2V0IG1haW4gc2V0dGluZ3MgSlNYIGNvZGUuXG5cdFx0XHQgKlxuXHRcdFx0ICogQHNpbmNlIDEuOC4xXG5cdFx0XHQgKlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IGF0dHJpYnV0ZXMgIEJsb2NrIGF0dHJpYnV0ZXMuXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gaGFuZGxlcnMgICAgQmxvY2sgZXZlbnQgaGFuZGxlcnMuXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gZm9ybU9wdGlvbnMgRm9ybSBzZWxlY3RvciBvcHRpb25zLlxuXHRcdFx0ICpcblx0XHRcdCAqIEByZXR1cm4ge0pTWC5FbGVtZW50fSBNYWluIHNldHRpbmcgSlNYIGNvZGUuXG5cdFx0XHQgKi9cblx0XHRcdGdldE1haW5TZXR0aW5ncyggYXR0cmlidXRlcywgaGFuZGxlcnMsIGZvcm1PcHRpb25zICkge1xuXHRcdFx0XHRpZiAoICEgYXBwLmhhc0Zvcm1zKCkgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGFwcC5qc3hQYXJ0cy5wcmludEVtcHR5Rm9ybXNOb3RpY2UoIGF0dHJpYnV0ZXMuY2xpZW50SWQgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0PEluc3BlY3RvckNvbnRyb2xzIGtleT1cIndwZm9ybXMtZ3V0ZW5iZXJnLWZvcm0tc2VsZWN0b3ItaW5zcGVjdG9yLW1haW4tc2V0dGluZ3NcIj5cblx0XHRcdFx0XHRcdDxQYW5lbEJvZHkgY2xhc3NOYW1lPVwid3Bmb3Jtcy1ndXRlbmJlcmctcGFuZWwgd3Bmb3Jtcy1ndXRlbmJlcmctcGFuZWwtZm9ybS1zZXR0aW5nc1wiIHRpdGxlPXsgc3RyaW5ncy5mb3JtX3NldHRpbmdzIH0+XG5cdFx0XHRcdFx0XHRcdDxTZWxlY3RDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBzdHJpbmdzLmZvcm1fc2VsZWN0ZWQgfVxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgYXR0cmlidXRlcy5mb3JtSWQgfVxuXHRcdFx0XHRcdFx0XHRcdG9wdGlvbnM9eyBmb3JtT3B0aW9ucyB9XG5cdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyAoIHZhbHVlICkgPT4gaGFuZGxlcnMuYXR0ckNoYW5nZSggJ2Zvcm1JZCcsIHZhbHVlICkgfVxuXHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHR7IGF0dHJpYnV0ZXMuZm9ybUlkID8gKFxuXHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzTmFtZT1cIndwZm9ybXMtZ3V0ZW5iZXJnLWZvcm0tc2VsZWN0b3ItYWN0aW9uc1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGEgaHJlZj17IHVybHMuZm9ybV91cmwucmVwbGFjZSggJ3tJRH0nLCBhdHRyaWJ1dGVzLmZvcm1JZCApIH0gcmVsPVwibm9yZWZlcnJlclwiIHRhcmdldD1cIl9ibGFua1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7IHN0cmluZ3MuZm9ybV9lZGl0IH1cblx0XHRcdFx0XHRcdFx0XHRcdDwvYT5cblx0XHRcdFx0XHRcdFx0XHRcdHsgaXNQcm8gJiYgaXNMaWNlbnNlQWN0aXZlICYmIChcblx0XHRcdFx0XHRcdFx0XHRcdFx0PD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQmbmJzcDsmbmJzcDt8Jm5ic3A7Jm5ic3A7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGhyZWY9eyB1cmxzLmVudHJpZXNfdXJsLnJlcGxhY2UoICd7SUR9JywgYXR0cmlidXRlcy5mb3JtSWQgKSB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZWw9XCJub3JlZmVycmVyXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRhcmdldD1cIl9ibGFua1wiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Pnsgc3RyaW5ncy5mb3JtX2VudHJpZXMgfTwvYT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC8+XG5cdFx0XHRcdFx0XHRcdFx0XHQpIH1cblx0XHRcdFx0XHRcdFx0XHQ8L3A+XG5cdFx0XHRcdFx0XHRcdCkgOiBudWxsIH1cblx0XHRcdFx0XHRcdFx0PFRvZ2dsZUNvbnRyb2xcblx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IHN0cmluZ3Muc2hvd190aXRsZSB9XG5cdFx0XHRcdFx0XHRcdFx0Y2hlY2tlZD17IGF0dHJpYnV0ZXMuZGlzcGxheVRpdGxlIH1cblx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17ICggdmFsdWUgKSA9PiBoYW5kbGVycy5hdHRyQ2hhbmdlKCAnZGlzcGxheVRpdGxlJywgdmFsdWUgKSB9XG5cdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdDxUb2dnbGVDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9eyBzdHJpbmdzLnNob3dfZGVzY3JpcHRpb24gfVxuXHRcdFx0XHRcdFx0XHRcdGNoZWNrZWQ9eyBhdHRyaWJ1dGVzLmRpc3BsYXlEZXNjIH1cblx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17ICggdmFsdWUgKSA9PiBoYW5kbGVycy5hdHRyQ2hhbmdlKCAnZGlzcGxheURlc2MnLCB2YWx1ZSApIH1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0PHAgY2xhc3NOYW1lPVwid3Bmb3Jtcy1ndXRlbmJlcmctcGFuZWwtbm90aWNlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHN0cm9uZz57IHN0cmluZ3MucGFuZWxfbm90aWNlX2hlYWQgfTwvc3Ryb25nPlxuXHRcdFx0XHRcdFx0XHRcdHsgc3RyaW5ncy5wYW5lbF9ub3RpY2VfdGV4dCB9XG5cdFx0XHRcdFx0XHRcdFx0PGEgaHJlZj17IHN0cmluZ3MucGFuZWxfbm90aWNlX2xpbmsgfSByZWw9XCJub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+eyBzdHJpbmdzLnBhbmVsX25vdGljZV9saW5rX3RleHQgfTwvYT5cblx0XHRcdFx0XHRcdFx0PC9wPlxuXHRcdFx0XHRcdFx0PC9QYW5lbEJvZHk+XG5cdFx0XHRcdFx0PC9JbnNwZWN0b3JDb250cm9scz5cblx0XHRcdFx0KTtcblx0XHRcdH0sXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogUHJpbnQgZW1wdHkgZm9ybXMgbm90aWNlLlxuXHRcdFx0ICpcblx0XHRcdCAqIEBzaW5jZSAxLjguM1xuXHRcdFx0ICpcblx0XHRcdCAqIEBwYXJhbSB7c3RyaW5nfSBjbGllbnRJZCBCbG9jayBjbGllbnQgSUQuXG5cdFx0XHQgKlxuXHRcdFx0ICogQHJldHVybiB7SlNYLkVsZW1lbnR9IEZpZWxkIHN0eWxlcyBKU1ggY29kZS5cblx0XHRcdCAqL1xuXHRcdFx0cHJpbnRFbXB0eUZvcm1zTm90aWNlKCBjbGllbnRJZCApIHtcblx0XHRcdFx0cmV0dXJuIChcblx0XHRcdFx0XHQ8SW5zcGVjdG9yQ29udHJvbHMga2V5PVwid3Bmb3Jtcy1ndXRlbmJlcmctZm9ybS1zZWxlY3Rvci1pbnNwZWN0b3ItbWFpbi1zZXR0aW5nc1wiPlxuXHRcdFx0XHRcdFx0PFBhbmVsQm9keSBjbGFzc05hbWU9XCJ3cGZvcm1zLWd1dGVuYmVyZy1wYW5lbFwiIHRpdGxlPXsgc3RyaW5ncy5mb3JtX3NldHRpbmdzIH0+XG5cdFx0XHRcdFx0XHRcdDxwIGNsYXNzTmFtZT1cIndwZm9ybXMtZ3V0ZW5iZXJnLXBhbmVsLW5vdGljZSB3cGZvcm1zLXdhcm5pbmcgd3Bmb3Jtcy1lbXB0eS1mb3JtLW5vdGljZVwiIHN0eWxlPXsgeyBkaXNwbGF5OiAnYmxvY2snIH0gfT5cblx0XHRcdFx0XHRcdFx0XHQ8c3Ryb25nPnsgX18oICdZb3UgaGF2ZW7igJl0IGNyZWF0ZWQgYSBmb3JtLCB5ZXQhJywgJ3dwZm9ybXMtbGl0ZScgKSB9PC9zdHJvbmc+XG5cdFx0XHRcdFx0XHRcdFx0eyBfXyggJ1doYXQgYXJlIHlvdSB3YWl0aW5nIGZvcj8nLCAnd3Bmb3Jtcy1saXRlJyApIH1cblx0XHRcdFx0XHRcdFx0PC9wPlxuXHRcdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9XCJnZXQtc3RhcnRlZC1idXR0b24gY29tcG9uZW50cy1idXR0b24gaXMtc2Vjb25kYXJ5XCJcblx0XHRcdFx0XHRcdFx0XHRvbkNsaWNrPXtcblx0XHRcdFx0XHRcdFx0XHRcdCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0YXBwLm9wZW5CdWlsZGVyUG9wdXAoIGNsaWVudElkICk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0eyBfXyggJ0dldCBTdGFydGVkJywgJ3dwZm9ybXMtbGl0ZScgKSB9XG5cdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0XHRcdFx0PC9QYW5lbEJvZHk+XG5cdFx0XHRcdFx0PC9JbnNwZWN0b3JDb250cm9scz5cblx0XHRcdFx0KTtcblx0XHRcdH0sXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogR2V0IExhYmVsIHN0eWxlcyBKU1ggY29kZS5cblx0XHRcdCAqXG5cdFx0XHQgKiBAc2luY2UgMS44LjFcblx0XHRcdCAqXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgICAgICAgQmxvY2sgcHJvcGVydGllcy5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBoYW5kbGVycyAgICBCbG9jayBldmVudCBoYW5kbGVycy5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBzaXplT3B0aW9ucyBTaXplIHNlbGVjdG9yIG9wdGlvbnMuXG5cdFx0XHQgKlxuXHRcdFx0ICogQHJldHVybiB7T2JqZWN0fSBMYWJlbCBzdHlsZXMgSlNYIGNvZGUuXG5cdFx0XHQgKi9cblx0XHRcdGdldExhYmVsU3R5bGVzKCBwcm9wcywgaGFuZGxlcnMsIHNpemVPcHRpb25zICkge1xuXHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdDxQYW5lbEJvZHkgY2xhc3NOYW1lPXsgYXBwLmdldFBhbmVsQ2xhc3MoIHByb3BzICkgfSB0aXRsZT17IHN0cmluZ3MubGFiZWxfc3R5bGVzIH0+XG5cdFx0XHRcdFx0XHQ8U2VsZWN0Q29udHJvbFxuXHRcdFx0XHRcdFx0XHRsYWJlbD17IHN0cmluZ3Muc2l6ZSB9XG5cdFx0XHRcdFx0XHRcdHZhbHVlPXsgcHJvcHMuYXR0cmlidXRlcy5sYWJlbFNpemUgfVxuXHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJ3cGZvcm1zLWd1dGVuYmVyZy1mb3JtLXNlbGVjdG9yLWZpeC1ib3R0b20tbWFyZ2luXCJcblx0XHRcdFx0XHRcdFx0b3B0aW9ucz17IHNpemVPcHRpb25zIH1cblx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyAoIHZhbHVlICkgPT4gaGFuZGxlcnMuc3R5bGVBdHRyQ2hhbmdlKCAnbGFiZWxTaXplJywgdmFsdWUgKSB9XG5cdFx0XHRcdFx0XHQvPlxuXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cIndwZm9ybXMtZ3V0ZW5iZXJnLWZvcm0tc2VsZWN0b3ItY29sb3ItcGlja2VyXCI+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwid3Bmb3Jtcy1ndXRlbmJlcmctZm9ybS1zZWxlY3Rvci1jb250cm9sLWxhYmVsXCI+eyBzdHJpbmdzLmNvbG9ycyB9PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDxQYW5lbENvbG9yU2V0dGluZ3Ncblx0XHRcdFx0XHRcdFx0XHRfX2V4cGVyaW1lbnRhbElzUmVuZGVyZWRJblNpZGViYXJcblx0XHRcdFx0XHRcdFx0XHRlbmFibGVBbHBoYVxuXHRcdFx0XHRcdFx0XHRcdHNob3dUaXRsZT17IGZhbHNlIH1cblx0XHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJ3cGZvcm1zLWd1dGVuYmVyZy1mb3JtLXNlbGVjdG9yLWNvbG9yLXBhbmVsXCJcblx0XHRcdFx0XHRcdFx0XHRjb2xvclNldHRpbmdzPXsgW1xuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5sYWJlbENvbG9yLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZTogKCB2YWx1ZSApID0+IGhhbmRsZXJzLnN0eWxlQXR0ckNoYW5nZSggJ2xhYmVsQ29sb3InLCB2YWx1ZSApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRsYWJlbDogc3RyaW5ncy5sYWJlbCxcblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLmxhYmVsU3VibGFiZWxDb2xvcixcblx0XHRcdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U6ICggdmFsdWUgKSA9PiBoYW5kbGVycy5zdHlsZUF0dHJDaGFuZ2UoICdsYWJlbFN1YmxhYmVsQ29sb3InLCB2YWx1ZSApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRsYWJlbDogc3RyaW5ncy5zdWJsYWJlbF9oaW50cy5yZXBsYWNlKCAnJmFtcDsnLCAnJicgKSxcblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLmxhYmVsRXJyb3JDb2xvcixcblx0XHRcdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U6ICggdmFsdWUgKSA9PiBoYW5kbGVycy5zdHlsZUF0dHJDaGFuZ2UoICdsYWJlbEVycm9yQ29sb3InLCB2YWx1ZSApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRsYWJlbDogc3RyaW5ncy5lcnJvcl9tZXNzYWdlLFxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRdIH1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDwvUGFuZWxCb2R5PlxuXHRcdFx0XHQpO1xuXHRcdFx0fSxcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBHZXQgUGFnZSBJbmRpY2F0b3Igc3R5bGVzIEpTWCBjb2RlLlxuXHRcdFx0ICpcblx0XHRcdCAqIEBzaW5jZSAxLjguN1xuXHRcdFx0ICpcblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAgICBCbG9jayBwcm9wZXJ0aWVzLlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IGhhbmRsZXJzIEJsb2NrIGV2ZW50IGhhbmRsZXJzLlxuXHRcdFx0ICpcblx0XHRcdCAqIEByZXR1cm4ge09iamVjdH0gUGFnZSBJbmRpY2F0b3Igc3R5bGVzIEpTWCBjb2RlLlxuXHRcdFx0ICovXG5cdFx0XHRnZXRQYWdlSW5kaWNhdG9yU3R5bGVzKCBwcm9wcywgaGFuZGxlcnMgKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY29tcGxleGl0eVxuXHRcdFx0XHRjb25zdCBoYXNQYWdlQnJlYWsgPSBhcHAuaGFzUGFnZUJyZWFrKCBmb3JtTGlzdCwgcHJvcHMuYXR0cmlidXRlcy5mb3JtSWQgKTtcblx0XHRcdFx0Y29uc3QgaGFzUmF0aW5nID0gYXBwLmhhc1JhdGluZyggZm9ybUxpc3QsIHByb3BzLmF0dHJpYnV0ZXMuZm9ybUlkICk7XG5cblx0XHRcdFx0aWYgKCAhIGhhc1BhZ2VCcmVhayAmJiAhIGhhc1JhdGluZyApIHtcblx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGxldCBsYWJlbCA9ICcnO1xuXHRcdFx0XHRpZiAoIGhhc1BhZ2VCcmVhayAmJiBoYXNSYXRpbmcgKSB7XG5cdFx0XHRcdFx0bGFiZWwgPSBgJHsgc3RyaW5ncy5wYWdlX2JyZWFrIH0gLyAkeyBzdHJpbmdzLnJhdGluZyB9YDtcblx0XHRcdFx0fSBlbHNlIGlmICggaGFzUGFnZUJyZWFrICkge1xuXHRcdFx0XHRcdGxhYmVsID0gc3RyaW5ncy5wYWdlX2JyZWFrO1xuXHRcdFx0XHR9IGVsc2UgaWYgKCBoYXNSYXRpbmcgKSB7XG5cdFx0XHRcdFx0bGFiZWwgPSBzdHJpbmdzLnJhdGluZztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0PFBhbmVsQm9keSBjbGFzc05hbWU9eyBhcHAuZ2V0UGFuZWxDbGFzcyggcHJvcHMgKSB9IHRpdGxlPXsgc3RyaW5ncy5vdGhlcl9zdHlsZXMgfT5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwid3Bmb3Jtcy1ndXRlbmJlcmctZm9ybS1zZWxlY3Rvci1jb2xvci1waWNrZXJcIj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzc05hbWU9XCJ3cGZvcm1zLWd1dGVuYmVyZy1mb3JtLXNlbGVjdG9yLWNvbnRyb2wtbGFiZWxcIj57IHN0cmluZ3MuY29sb3JzIH08L2Rpdj5cblx0XHRcdFx0XHRcdFx0PFBhbmVsQ29sb3JTZXR0aW5nc1xuXHRcdFx0XHRcdFx0XHRcdF9fZXhwZXJpbWVudGFsSXNSZW5kZXJlZEluU2lkZWJhclxuXHRcdFx0XHRcdFx0XHRcdGVuYWJsZUFscGhhXG5cdFx0XHRcdFx0XHRcdFx0c2hvd1RpdGxlPXsgZmFsc2UgfVxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cIndwZm9ybXMtZ3V0ZW5iZXJnLWZvcm0tc2VsZWN0b3ItY29sb3ItcGFuZWxcIlxuXHRcdFx0XHRcdFx0XHRcdGNvbG9yU2V0dGluZ3M9eyBbXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLnBhZ2VCcmVha0NvbG9yLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZTogKCB2YWx1ZSApID0+IGhhbmRsZXJzLnN0eWxlQXR0ckNoYW5nZSggJ3BhZ2VCcmVha0NvbG9yJywgdmFsdWUgKSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0bGFiZWwsXG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdF0gfSAvPlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PC9QYW5lbEJvZHk+XG5cdFx0XHRcdCk7XG5cdFx0XHR9LFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIEdldCBzdHlsZSBzZXR0aW5ncyBKU1ggY29kZS5cblx0XHRcdCAqXG5cdFx0XHQgKiBAc2luY2UgMS44LjFcblx0XHRcdCAqXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgICAgICAgIEJsb2NrIHByb3BlcnRpZXMuXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gaGFuZGxlcnMgICAgIEJsb2NrIGV2ZW50IGhhbmRsZXJzLlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IHNpemVPcHRpb25zICBTaXplIHNlbGVjdG9yIG9wdGlvbnMuXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gYmxvY2tPcHRpb25zIEJsb2NrIG9wdGlvbnMgbG9hZGVkIGZyb20gZXh0ZXJuYWwgbW9kdWxlcy5cblx0XHRcdCAqXG5cdFx0XHQgKiBAcmV0dXJuIHtPYmplY3R9IEluc3BlY3RvciBjb250cm9scyBKU1ggY29kZS5cblx0XHRcdCAqL1xuXHRcdFx0Z2V0U3R5bGVTZXR0aW5ncyggcHJvcHMsIGhhbmRsZXJzLCBzaXplT3B0aW9ucywgYmxvY2tPcHRpb25zICkge1xuXHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdDxJbnNwZWN0b3JDb250cm9scyBrZXk9XCJ3cGZvcm1zLWd1dGVuYmVyZy1mb3JtLXNlbGVjdG9yLXN0eWxlLXNldHRpbmdzXCI+XG5cdFx0XHRcdFx0XHR7IGJsb2NrT3B0aW9ucy5nZXRUaGVtZXNQYW5lbCggcHJvcHMsIGFwcCwgYmxvY2tPcHRpb25zLnN0b2NrUGhvdG9zICkgfVxuXHRcdFx0XHRcdFx0eyBibG9ja09wdGlvbnMuZ2V0RmllbGRTdHlsZXMoIHByb3BzLCBoYW5kbGVycywgc2l6ZU9wdGlvbnMsIGFwcCApIH1cblx0XHRcdFx0XHRcdHsgYXBwLmpzeFBhcnRzLmdldExhYmVsU3R5bGVzKCBwcm9wcywgaGFuZGxlcnMsIHNpemVPcHRpb25zICkgfVxuXHRcdFx0XHRcdFx0eyBibG9ja09wdGlvbnMuZ2V0QnV0dG9uU3R5bGVzKCBwcm9wcywgaGFuZGxlcnMsIHNpemVPcHRpb25zLCBhcHAgKSB9XG5cdFx0XHRcdFx0XHR7IGJsb2NrT3B0aW9ucy5nZXRDb250YWluZXJTdHlsZXMoIHByb3BzLCBoYW5kbGVycywgYXBwICkgfVxuXHRcdFx0XHRcdFx0eyBibG9ja09wdGlvbnMuZ2V0QmFja2dyb3VuZFN0eWxlcyggcHJvcHMsIGhhbmRsZXJzLCBhcHAsIGJsb2NrT3B0aW9ucy5zdG9ja1Bob3RvcyApIH1cblx0XHRcdFx0XHRcdHsgYXBwLmpzeFBhcnRzLmdldFBhZ2VJbmRpY2F0b3JTdHlsZXMoIHByb3BzLCBoYW5kbGVycyApIH1cblx0XHRcdFx0XHQ8L0luc3BlY3RvckNvbnRyb2xzPlxuXHRcdFx0XHQpO1xuXHRcdFx0fSxcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBHZXQgYmxvY2sgY29udGVudCBKU1ggY29kZS5cblx0XHRcdCAqXG5cdFx0XHQgKiBAc2luY2UgMS44LjFcblx0XHRcdCAqXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgQmxvY2sgcHJvcGVydGllcy5cblx0XHRcdCAqXG5cdFx0XHQgKiBAcmV0dXJuIHtKU1guRWxlbWVudH0gQmxvY2sgY29udGVudCBKU1ggY29kZS5cblx0XHRcdCAqL1xuXHRcdFx0Z2V0QmxvY2tGb3JtQ29udGVudCggcHJvcHMgKSB7XG5cdFx0XHRcdGlmICggdHJpZ2dlclNlcnZlclJlbmRlciApIHtcblx0XHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdFx0PFNlcnZlclNpZGVSZW5kZXJcblx0XHRcdFx0XHRcdFx0a2V5PVwid3Bmb3Jtcy1ndXRlbmJlcmctZm9ybS1zZWxlY3Rvci1zZXJ2ZXItc2lkZS1yZW5kZXJlclwiXG5cdFx0XHRcdFx0XHRcdGJsb2NrPVwid3Bmb3Jtcy9mb3JtLXNlbGVjdG9yXCJcblx0XHRcdFx0XHRcdFx0YXR0cmlidXRlcz17IHByb3BzLmF0dHJpYnV0ZXMgfVxuXHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y29uc3QgY2xpZW50SWQgPSBwcm9wcy5jbGllbnRJZDtcblx0XHRcdFx0Y29uc3QgYmxvY2sgPSBhcHAuZ2V0QmxvY2tDb250YWluZXIoIHByb3BzICk7XG5cblx0XHRcdFx0Ly8gSW4gdGhlIGNhc2Ugb2YgZW1wdHkgY29udGVudCwgdXNlIHNlcnZlciBzaWRlIHJlbmRlcmVyLlxuXHRcdFx0XHQvLyBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgYmxvY2sgaXMgZHVwbGljYXRlZCBvciBjb252ZXJ0ZWQgdG8gYSByZXVzYWJsZSBibG9jay5cblx0XHRcdFx0aWYgKCAhIGJsb2NrPy5pbm5lckhUTUwgKSB7XG5cdFx0XHRcdFx0dHJpZ2dlclNlcnZlclJlbmRlciA9IHRydWU7XG5cblx0XHRcdFx0XHRyZXR1cm4gYXBwLmpzeFBhcnRzLmdldEJsb2NrRm9ybUNvbnRlbnQoIHByb3BzICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRibG9ja3NbIGNsaWVudElkIF0gPSBibG9ja3NbIGNsaWVudElkIF0gfHwge307XG5cdFx0XHRcdGJsb2Nrc1sgY2xpZW50SWQgXS5ibG9ja0hUTUwgPSBibG9jay5pbm5lckhUTUw7XG5cdFx0XHRcdGJsb2Nrc1sgY2xpZW50SWQgXS5sb2FkZWRGb3JtSWQgPSBwcm9wcy5hdHRyaWJ1dGVzLmZvcm1JZDtcblxuXHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdDxGcmFnbWVudCBrZXk9XCJ3cGZvcm1zLWd1dGVuYmVyZy1mb3JtLXNlbGVjdG9yLWZyYWdtZW50LWZvcm0taHRtbFwiPlxuXHRcdFx0XHRcdFx0PGRpdiBkYW5nZXJvdXNseVNldElubmVySFRNTD17IHsgX19odG1sOiBibG9ja3NbIGNsaWVudElkIF0uYmxvY2tIVE1MIH0gfSAvPlxuXHRcdFx0XHRcdDwvRnJhZ21lbnQ+XG5cdFx0XHRcdCk7XG5cdFx0XHR9LFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIEdldCBibG9jayBwcmV2aWV3IEpTWCBjb2RlLlxuXHRcdFx0ICpcblx0XHRcdCAqIEBzaW5jZSAxLjguMVxuXHRcdFx0ICpcblx0XHRcdCAqIEByZXR1cm4ge0pTWC5FbGVtZW50fSBCbG9jayBwcmV2aWV3IEpTWCBjb2RlLlxuXHRcdFx0ICovXG5cdFx0XHRnZXRCbG9ja1ByZXZpZXcoKSB7XG5cdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0PEZyYWdtZW50XG5cdFx0XHRcdFx0XHRrZXk9XCJ3cGZvcm1zLWd1dGVuYmVyZy1mb3JtLXNlbGVjdG9yLWZyYWdtZW50LWJsb2NrLXByZXZpZXdcIj5cblx0XHRcdFx0XHRcdDxpbWcgc3JjPXsgd3Bmb3Jtc19ndXRlbmJlcmdfZm9ybV9zZWxlY3Rvci5ibG9ja19wcmV2aWV3X3VybCB9IHN0eWxlPXsgeyB3aWR0aDogJzEwMCUnIH0gfSBhbHQ9XCJcIiAvPlxuXHRcdFx0XHRcdDwvRnJhZ21lbnQ+XG5cdFx0XHRcdCk7XG5cdFx0XHR9LFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIEdldCBibG9jayBlbXB0eSBKU1ggY29kZS5cblx0XHRcdCAqXG5cdFx0XHQgKiBAc2luY2UgMS44LjNcblx0XHRcdCAqXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgQmxvY2sgcHJvcGVydGllcy5cblx0XHRcdCAqIEByZXR1cm4ge0pTWC5FbGVtZW50fSBCbG9jayBlbXB0eSBKU1ggY29kZS5cblx0XHRcdCAqL1xuXHRcdFx0Z2V0RW1wdHlGb3Jtc1ByZXZpZXcoIHByb3BzICkge1xuXHRcdFx0XHRjb25zdCBjbGllbnRJZCA9IHByb3BzLmNsaWVudElkO1xuXG5cdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0PEZyYWdtZW50XG5cdFx0XHRcdFx0XHRrZXk9XCJ3cGZvcm1zLWd1dGVuYmVyZy1mb3JtLXNlbGVjdG9yLWZyYWdtZW50LWJsb2NrLWVtcHR5XCI+XG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cIndwZm9ybXMtbm8tZm9ybS1wcmV2aWV3XCI+XG5cdFx0XHRcdFx0XHRcdDxpbWcgc3JjPXsgd3Bmb3Jtc19ndXRlbmJlcmdfZm9ybV9zZWxlY3Rvci5ibG9ja19lbXB0eV91cmwgfSBhbHQ9XCJcIiAvPlxuXHRcdFx0XHRcdFx0XHQ8cD5cblx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRjcmVhdGVJbnRlcnBvbGF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdF9fKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdZb3UgY2FuIHVzZSA8Yj5XUEZvcm1zPC9iPiB0byBidWlsZCBjb250YWN0IGZvcm1zLCBzdXJ2ZXlzLCBwYXltZW50IGZvcm1zLCBhbmQgbW9yZSB3aXRoIGp1c3QgYSBmZXcgY2xpY2tzLicsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3dwZm9ybXMtbGl0ZSdcblx0XHRcdFx0XHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGI6IDxzdHJvbmcgLz4sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdDwvcD5cblx0XHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiZ2V0LXN0YXJ0ZWQtYnV0dG9uIGNvbXBvbmVudHMtYnV0dG9uIGlzLXByaW1hcnlcIlxuXHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s9e1xuXHRcdFx0XHRcdFx0XHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRhcHAub3BlbkJ1aWxkZXJQb3B1cCggY2xpZW50SWQgKTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHR7IF9fKCAnR2V0IFN0YXJ0ZWQnLCAnd3Bmb3Jtcy1saXRlJyApIH1cblx0XHRcdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdFx0XHRcdDxwIGNsYXNzTmFtZT1cImVtcHR5LWRlc2NcIj5cblx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRjcmVhdGVJbnRlcnBvbGF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdF9fKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdOZWVkIHNvbWUgaGVscD8gQ2hlY2sgb3V0IG91ciA8YT5jb21wcmVoZW5zaXZlIGd1aWRlLjwvYT4nLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd3cGZvcm1zLWxpdGUnXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganN4LWExMXkvYW5jaG9yLWhhcy1jb250ZW50XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0YTogPGEgaHJlZj17IHdwZm9ybXNfZ3V0ZW5iZXJnX2Zvcm1fc2VsZWN0b3Iud3Bmb3Jtc19ndWlkZSB9IHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiAvPixcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0PC9wPlxuXG5cdFx0XHRcdFx0XHRcdHsgLyogVGVtcGxhdGUgZm9yIHBvcHVwIHdpdGggYnVpbGRlciBpZnJhbWUgKi8gfVxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGlkPVwid3Bmb3Jtcy1ndXRlbmJlcmctcG9wdXBcIiBjbGFzc05hbWU9XCJ3cGZvcm1zLWJ1aWxkZXItcG9wdXBcIj5cblx0XHRcdFx0XHRcdFx0XHQ8aWZyYW1lIHNyYz1cImFib3V0OmJsYW5rXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIGlkPVwid3Bmb3Jtcy1idWlsZGVyLWlmcmFtZVwiIHRpdGxlPVwiV1BGb3JtcyBCdWlsZGVyIFBvcHVwXCI+PC9pZnJhbWU+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PC9GcmFnbWVudD5cblx0XHRcdFx0KTtcblx0XHRcdH0sXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogR2V0IGJsb2NrIHBsYWNlaG9sZGVyIChmb3JtIHNlbGVjdG9yKSBKU1ggY29kZS5cblx0XHRcdCAqXG5cdFx0XHQgKiBAc2luY2UgMS44LjFcblx0XHRcdCAqXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gYXR0cmlidXRlcyAgQmxvY2sgYXR0cmlidXRlcy5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBoYW5kbGVycyAgICBCbG9jayBldmVudCBoYW5kbGVycy5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBmb3JtT3B0aW9ucyBGb3JtIHNlbGVjdG9yIG9wdGlvbnMuXG5cdFx0XHQgKlxuXHRcdFx0ICogQHJldHVybiB7SlNYLkVsZW1lbnR9IEJsb2NrIHBsYWNlaG9sZGVyIEpTWCBjb2RlLlxuXHRcdFx0ICovXG5cdFx0XHRnZXRCbG9ja1BsYWNlaG9sZGVyKCBhdHRyaWJ1dGVzLCBoYW5kbGVycywgZm9ybU9wdGlvbnMgKSB7XG5cdFx0XHRcdGNvbnN0IGlzRm9ybU5vdEF2YWlsYWJsZSA9IGF0dHJpYnV0ZXMuZm9ybUlkICYmICEgYXBwLmlzRm9ybUF2YWlsYWJsZSggYXR0cmlidXRlcy5mb3JtSWQgKTtcblxuXHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdDxQbGFjZWhvbGRlclxuXHRcdFx0XHRcdFx0a2V5PVwid3Bmb3Jtcy1ndXRlbmJlcmctZm9ybS1zZWxlY3Rvci13cmFwXCJcblx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cIndwZm9ybXMtZ3V0ZW5iZXJnLWZvcm0tc2VsZWN0b3Itd3JhcFwiPlxuXHRcdFx0XHRcdFx0PGltZyBzcmM9eyB3cGZvcm1zX2d1dGVuYmVyZ19mb3JtX3NlbGVjdG9yLmxvZ29fdXJsIH0gYWx0PVwiXCIgLz5cblx0XHRcdFx0XHRcdHsgaXNGb3JtTm90QXZhaWxhYmxlICYmIChcblx0XHRcdFx0XHRcdFx0PHAgc3R5bGU9eyB7IHRleHRBbGlnbjogJ2NlbnRlcicsIG1hcmdpblRvcDogJzAnIH0gfT5cblx0XHRcdFx0XHRcdFx0XHR7IHN0cmluZ3MuZm9ybV9ub3RfYXZhaWxhYmxlX21lc3NhZ2UgfVxuXHRcdFx0XHRcdFx0XHQ8L3A+XG5cdFx0XHRcdFx0XHQpIH1cblx0XHRcdFx0XHRcdDxTZWxlY3RDb250cm9sXG5cdFx0XHRcdFx0XHRcdGtleT1cIndwZm9ybXMtZ3V0ZW5iZXJnLWZvcm0tc2VsZWN0b3Itc2VsZWN0LWNvbnRyb2xcIlxuXHRcdFx0XHRcdFx0XHR2YWx1ZT17IGF0dHJpYnV0ZXMuZm9ybUlkIH1cblx0XHRcdFx0XHRcdFx0b3B0aW9ucz17IGZvcm1PcHRpb25zIH1cblx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyAoIHZhbHVlICkgPT4gaGFuZGxlcnMuYXR0ckNoYW5nZSggJ2Zvcm1JZCcsIHZhbHVlICkgfVxuXHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHQ8L1BsYWNlaG9sZGVyPlxuXHRcdFx0XHQpO1xuXHRcdFx0fSxcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogRGV0ZXJtaW5lIGlmIHRoZSBmb3JtIGhhcyBhIFBhZ2UgQnJlYWsgZmllbGQuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44Ljdcblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSAgICAgICAgZm9ybXMgIFRoZSBmb3JtcycgZGF0YSBvYmplY3QuXG5cdFx0ICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBmb3JtSWQgRm9ybSBJRC5cblx0XHQgKlxuXHRcdCAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgd2hlbiB0aGUgZm9ybSBoYXMgYSBQYWdlIEJyZWFrIGZpZWxkLCBmYWxzZSBvdGhlcndpc2UuXG5cdFx0ICovXG5cdFx0aGFzUGFnZUJyZWFrKCBmb3JtcywgZm9ybUlkICkge1xuXHRcdFx0Y29uc3QgY3VycmVudEZvcm0gPSBmb3Jtcy5maW5kKCAoIGZvcm0gKSA9PiBwYXJzZUludCggZm9ybS5JRCwgMTAgKSA9PT0gcGFyc2VJbnQoIGZvcm1JZCwgMTAgKSApO1xuXG5cdFx0XHRpZiAoICEgY3VycmVudEZvcm0ucG9zdF9jb250ZW50ICkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGZpZWxkcyA9IEpTT04ucGFyc2UoIGN1cnJlbnRGb3JtLnBvc3RfY29udGVudCApPy5maWVsZHM7XG5cblx0XHRcdHJldHVybiBPYmplY3QudmFsdWVzKCBmaWVsZHMgKS5zb21lKCAoIGZpZWxkICkgPT4gZmllbGQudHlwZSA9PT0gJ3BhZ2VicmVhaycgKTtcblx0XHR9LFxuXG5cdFx0aGFzUmF0aW5nKCBmb3JtcywgZm9ybUlkICkge1xuXHRcdFx0Y29uc3QgY3VycmVudEZvcm0gPSBmb3Jtcy5maW5kKCAoIGZvcm0gKSA9PiBwYXJzZUludCggZm9ybS5JRCwgMTAgKSA9PT0gcGFyc2VJbnQoIGZvcm1JZCwgMTAgKSApO1xuXG5cdFx0XHRpZiAoICEgY3VycmVudEZvcm0ucG9zdF9jb250ZW50IHx8ICEgaXNQcm8gfHwgISBpc0xpY2Vuc2VBY3RpdmUgKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgZmllbGRzID0gSlNPTi5wYXJzZSggY3VycmVudEZvcm0ucG9zdF9jb250ZW50ICk/LmZpZWxkcztcblxuXHRcdFx0cmV0dXJuIE9iamVjdC52YWx1ZXMoIGZpZWxkcyApLnNvbWUoICggZmllbGQgKSA9PiBmaWVsZC50eXBlID09PSAncmF0aW5nJyApO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBHZXQgU3R5bGUgU2V0dGluZ3MgcGFuZWwgY2xhc3MuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44LjFcblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyBCbG9jayBwcm9wZXJ0aWVzLlxuXHRcdCAqXG5cdFx0ICogQHJldHVybiB7c3RyaW5nfSBTdHlsZSBTZXR0aW5ncyBwYW5lbCBjbGFzcy5cblx0XHQgKi9cblx0XHRnZXRQYW5lbENsYXNzKCBwcm9wcyApIHtcblx0XHRcdGxldCBjc3NDbGFzcyA9ICd3cGZvcm1zLWd1dGVuYmVyZy1wYW5lbCB3cGZvcm1zLWJsb2NrLXNldHRpbmdzLScgKyBwcm9wcy5jbGllbnRJZDtcblxuXHRcdFx0aWYgKCAhIGFwcC5pc0Z1bGxTdHlsaW5nRW5hYmxlZCgpICkge1xuXHRcdFx0XHRjc3NDbGFzcyArPSAnIGRpc2FibGVkX3BhbmVsJztcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGNzc0NsYXNzO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBHZXQgY29sb3IgcGFuZWwgc2V0dGluZ3MgQ1NTIGNsYXNzLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC44XG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge3N0cmluZ30gYm9yZGVyU3R5bGUgQm9yZGVyIHN0eWxlIHZhbHVlLlxuXHRcdCAqXG5cdFx0ICogQHJldHVybiB7c3RyaW5nfSBTdHlsZSBTZXR0aW5ncyBwYW5lbCBjbGFzcy5cblx0XHQgKi9cblx0XHRnZXRDb2xvclBhbmVsQ2xhc3MoIGJvcmRlclN0eWxlICkge1xuXHRcdFx0bGV0IGNzc0NsYXNzID0gJ3dwZm9ybXMtZ3V0ZW5iZXJnLWZvcm0tc2VsZWN0b3ItY29sb3ItcGFuZWwnO1xuXG5cdFx0XHRpZiAoIGJvcmRlclN0eWxlID09PSAnbm9uZScgKSB7XG5cdFx0XHRcdGNzc0NsYXNzICs9ICcgd3Bmb3Jtcy1ndXRlbmJlcmctZm9ybS1zZWxlY3Rvci1ib3JkZXItY29sb3ItZGlzYWJsZWQnO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gY3NzQ2xhc3M7XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIERldGVybWluZSB3aGV0aGVyIHRoZSBmdWxsIHN0eWxpbmcgaXMgZW5hYmxlZC5cblx0XHQgKlxuXHRcdCAqIEBzaW5jZSAxLjguMVxuXHRcdCAqXG5cdFx0ICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGUgZnVsbCBzdHlsaW5nIGlzIGVuYWJsZWQuXG5cdFx0ICovXG5cdFx0aXNGdWxsU3R5bGluZ0VuYWJsZWQoKSB7XG5cdFx0XHRyZXR1cm4gd3Bmb3Jtc19ndXRlbmJlcmdfZm9ybV9zZWxlY3Rvci5pc19tb2Rlcm5fbWFya3VwICYmIHdwZm9ybXNfZ3V0ZW5iZXJnX2Zvcm1fc2VsZWN0b3IuaXNfZnVsbF9zdHlsaW5nO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBHZXQgYmxvY2sgY29udGFpbmVyIERPTSBlbGVtZW50LlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC4xXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgQmxvY2sgcHJvcGVydGllcy5cblx0XHQgKlxuXHRcdCAqIEByZXR1cm4ge0VsZW1lbnR9IEJsb2NrIGNvbnRhaW5lci5cblx0XHQgKi9cblx0XHRnZXRCbG9ja0NvbnRhaW5lciggcHJvcHMgKSB7XG5cdFx0XHRjb25zdCBibG9ja1NlbGVjdG9yID0gYCNibG9jay0keyBwcm9wcy5jbGllbnRJZCB9ID4gZGl2YDtcblx0XHRcdGxldCBibG9jayA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIGJsb2NrU2VsZWN0b3IgKTtcblxuXHRcdFx0Ly8gRm9yIEZTRSAvIEd1dGVuYmVyZyBwbHVnaW4sIHdlIG5lZWQgdG8gdGFrZSBhIGxvb2sgaW5zaWRlIHRoZSBpZnJhbWUuXG5cdFx0XHRpZiAoICEgYmxvY2sgKSB7XG5cdFx0XHRcdGNvbnN0IGVkaXRvckNhbnZhcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoICdpZnJhbWVbbmFtZT1cImVkaXRvci1jYW52YXNcIl0nICk7XG5cblx0XHRcdFx0YmxvY2sgPSBlZGl0b3JDYW52YXM/LmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQucXVlcnlTZWxlY3RvciggYmxvY2tTZWxlY3RvciApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gYmxvY2s7XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIFVwZGF0ZSBDU1MgdmFyaWFibGUocykgdmFsdWUocykgb2YgdGhlIGdpdmVuIGF0dHJpYnV0ZSBmb3IgZ2l2ZW4gY29udGFpbmVyIG9uIHRoZSBwcmV2aWV3LlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC44XG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge3N0cmluZ30gIGF0dHJpYnV0ZSBTdHlsZSBhdHRyaWJ1dGU6IGZpZWxkLXNpemUsIGxhYmVsLXNpemUsIGJ1dHRvbi1zaXplLCBldGMuXG5cdFx0ICogQHBhcmFtIHtzdHJpbmd9ICB2YWx1ZSAgICAgUHJvcGVydHkgbmV3IHZhbHVlLlxuXHRcdCAqIEBwYXJhbSB7RWxlbWVudH0gY29udGFpbmVyIEZvcm0gY29udGFpbmVyLlxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSAgcHJvcHMgICAgIEJsb2NrIHByb3BlcnRpZXMuXG5cdFx0ICovXG5cdFx0dXBkYXRlUHJldmlld0NTU1ZhclZhbHVlKCBhdHRyaWJ1dGUsIHZhbHVlLCBjb250YWluZXIsIHByb3BzICkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGNvbXBsZXhpdHksIG1heC1saW5lcy1wZXItZnVuY3Rpb25cblx0XHRcdGlmICggISBjb250YWluZXIgfHwgISBhdHRyaWJ1dGUgKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgcHJvcGVydHkgPSBhdHRyaWJ1dGUucmVwbGFjZShcblx0XHRcdFx0L1tBLVpdL2csXG5cdFx0XHRcdCggbGV0dGVyICkgPT4gYC0keyBsZXR0ZXIudG9Mb3dlckNhc2UoKSB9YFxuXHRcdFx0KTtcblxuXHRcdFx0aWYgKCB0eXBlb2YgY3VzdG9tU3R5bGVzSGFuZGxlcnNbIHByb3BlcnR5IF0gPT09ICdmdW5jdGlvbicgKSB7XG5cdFx0XHRcdGN1c3RvbVN0eWxlc0hhbmRsZXJzWyBwcm9wZXJ0eSBdKCBjb250YWluZXIsIHZhbHVlICk7XG5cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRzd2l0Y2ggKCBwcm9wZXJ0eSApIHtcblx0XHRcdFx0Y2FzZSAnZmllbGQtc2l6ZSc6XG5cdFx0XHRcdGNhc2UgJ2xhYmVsLXNpemUnOlxuXHRcdFx0XHRjYXNlICdidXR0b24tc2l6ZSc6XG5cdFx0XHRcdGNhc2UgJ2NvbnRhaW5lci1zaGFkb3ctc2l6ZSc6XG5cdFx0XHRcdFx0Zm9yICggY29uc3Qga2V5IGluIHNpemVzWyBwcm9wZXJ0eSBdWyB2YWx1ZSBdICkge1xuXHRcdFx0XHRcdFx0Y29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KFxuXHRcdFx0XHRcdFx0XHRgLS13cGZvcm1zLSR7IHByb3BlcnR5IH0tJHsga2V5IH1gLFxuXHRcdFx0XHRcdFx0XHRzaXplc1sgcHJvcGVydHkgXVsgdmFsdWUgXVsga2V5IF0sXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlICdmaWVsZC1ib3JkZXItc3R5bGUnOlxuXHRcdFx0XHRcdGlmICggdmFsdWUgPT09ICdub25lJyApIHtcblx0XHRcdFx0XHRcdGFwcC50b2dnbGVGaWVsZEJvcmRlck5vbmVDU1NWYXJWYWx1ZSggY29udGFpbmVyLCB0cnVlICk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGFwcC50b2dnbGVGaWVsZEJvcmRlck5vbmVDU1NWYXJWYWx1ZSggY29udGFpbmVyLCBmYWxzZSApO1xuXHRcdFx0XHRcdFx0Y29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KCBgLS13cGZvcm1zLSR7IHByb3BlcnR5IH1gLCB2YWx1ZSApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlICdidXR0b24tYmFja2dyb3VuZC1jb2xvcic6XG5cdFx0XHRcdFx0YXBwLm1heWJlVXBkYXRlQWNjZW50Q29sb3IoIHByb3BzLmF0dHJpYnV0ZXMuYnV0dG9uQm9yZGVyQ29sb3IsIHZhbHVlLCBjb250YWluZXIgKTtcblx0XHRcdFx0XHR2YWx1ZSA9IGFwcC5tYXliZVNldEJ1dHRvbkFsdEJhY2tncm91bmRDb2xvciggdmFsdWUsIHByb3BzLmF0dHJpYnV0ZXMuYnV0dG9uQm9yZGVyQ29sb3IsIGNvbnRhaW5lciApO1xuXHRcdFx0XHRcdGFwcC5tYXliZVNldEJ1dHRvbkFsdFRleHRDb2xvciggcHJvcHMuYXR0cmlidXRlcy5idXR0b25UZXh0Q29sb3IsIHZhbHVlLCBwcm9wcy5hdHRyaWJ1dGVzLmJ1dHRvbkJvcmRlckNvbG9yLCBjb250YWluZXIgKTtcblx0XHRcdFx0XHRjb250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoIGAtLXdwZm9ybXMtJHsgcHJvcGVydHkgfWAsIHZhbHVlICk7XG5cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSAnYnV0dG9uLWJvcmRlci1jb2xvcic6XG5cdFx0XHRcdFx0YXBwLm1heWJlVXBkYXRlQWNjZW50Q29sb3IoIHZhbHVlLCBwcm9wcy5hdHRyaWJ1dGVzLmJ1dHRvbkJhY2tncm91bmRDb2xvciwgY29udGFpbmVyICk7XG5cdFx0XHRcdFx0YXBwLm1heWJlU2V0QnV0dG9uQWx0VGV4dENvbG9yKCBwcm9wcy5hdHRyaWJ1dGVzLmJ1dHRvblRleHRDb2xvciwgcHJvcHMuYXR0cmlidXRlcy5idXR0b25CYWNrZ3JvdW5kQ29sb3IsIHZhbHVlLCBjb250YWluZXIgKTtcblx0XHRcdFx0XHRjb250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoIGAtLXdwZm9ybXMtJHsgcHJvcGVydHkgfWAsIHZhbHVlICk7XG5cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSAnYnV0dG9uLXRleHQtY29sb3InOlxuXHRcdFx0XHRcdGFwcC5tYXliZVNldEJ1dHRvbkFsdFRleHRDb2xvciggdmFsdWUsIHByb3BzLmF0dHJpYnV0ZXMuYnV0dG9uQmFja2dyb3VuZENvbG9yLCBwcm9wcy5hdHRyaWJ1dGVzLmJ1dHRvbkJvcmRlckNvbG9yLCBjb250YWluZXIgKTtcblx0XHRcdFx0XHRjb250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoIGAtLXdwZm9ybXMtJHsgcHJvcGVydHkgfWAsIHZhbHVlICk7XG5cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRjb250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoIGAtLXdwZm9ybXMtJHsgcHJvcGVydHkgfWAsIHZhbHVlICk7XG5cdFx0XHRcdFx0Y29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KCBgLS13cGZvcm1zLSR7IHByb3BlcnR5IH0tc3BhcmVgLCB2YWx1ZSApO1xuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBTZXQvdW5zZXQgZmllbGQgYm9yZGVyIHZhcnMgaW4gY2FzZSBvZiBib3JkZXItc3R5bGUgaXMgbm9uZS5cblx0XHQgKlxuXHRcdCAqIEBzaW5jZSAxLjguOFxuXHRcdCAqXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9ICBjb250YWluZXIgRm9ybSBjb250YWluZXIuXG5cdFx0ICogQHBhcmFtIHtib29sZWFufSBzZXQgICAgICAgVHJ1ZSB3aGVuIHNldCwgZmFsc2Ugd2hlbiB1bnNldC5cblx0XHQgKi9cblx0XHR0b2dnbGVGaWVsZEJvcmRlck5vbmVDU1NWYXJWYWx1ZSggY29udGFpbmVyLCBzZXQgKSB7XG5cdFx0XHRjb25zdCBjb250ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoICdmb3JtJyApO1xuXG5cdFx0XHRpZiAoIHNldCApIHtcblx0XHRcdFx0Y29udC5zdHlsZS5zZXRQcm9wZXJ0eSggJy0td3Bmb3Jtcy1maWVsZC1ib3JkZXItc3R5bGUnLCAnc29saWQnICk7XG5cdFx0XHRcdGNvbnQuc3R5bGUuc2V0UHJvcGVydHkoICctLXdwZm9ybXMtZmllbGQtYm9yZGVyLXNpemUnLCAnMXB4JyApO1xuXHRcdFx0XHRjb250LnN0eWxlLnNldFByb3BlcnR5KCAnLS13cGZvcm1zLWZpZWxkLWJvcmRlci1jb2xvcicsICd0cmFuc3BhcmVudCcgKTtcblxuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnQuc3R5bGUuc2V0UHJvcGVydHkoICctLXdwZm9ybXMtZmllbGQtYm9yZGVyLXN0eWxlJywgbnVsbCApO1xuXHRcdFx0Y29udC5zdHlsZS5zZXRQcm9wZXJ0eSggJy0td3Bmb3Jtcy1maWVsZC1ib3JkZXItc2l6ZScsIG51bGwgKTtcblx0XHRcdGNvbnQuc3R5bGUuc2V0UHJvcGVydHkoICctLXdwZm9ybXMtZmllbGQtYm9yZGVyLWNvbG9yJywgbnVsbCApO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBNYXliZSBzZXQgdGhlIGJ1dHRvbidzIGFsdGVybmF0aXZlIGJhY2tncm91bmQgY29sb3IuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44Ljhcblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAgICAgICAgICAgICBBdHRyaWJ1dGUgdmFsdWUuXG5cdFx0ICogQHBhcmFtIHtzdHJpbmd9IGJ1dHRvbkJvcmRlckNvbG9yIEJ1dHRvbiBib3JkZXIgY29sb3IuXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IGNvbnRhaW5lciAgICAgICAgIEZvcm0gY29udGFpbmVyLlxuXHRcdCAqXG5cdFx0ICogQHJldHVybiB7c3RyaW5nfCp9IE5ldyBiYWNrZ3JvdW5kIGNvbG9yLlxuXHRcdCAqL1xuXHRcdG1heWJlU2V0QnV0dG9uQWx0QmFja2dyb3VuZENvbG9yKCB2YWx1ZSwgYnV0dG9uQm9yZGVyQ29sb3IsIGNvbnRhaW5lciApIHtcblx0XHRcdC8vIFNldHRpbmcgY3NzIHByb3BlcnR5IHZhbHVlIHRvIGNoaWxkIGBmb3JtYCBlbGVtZW50IG92ZXJyaWRlcyB0aGUgcGFyZW50IHByb3BlcnR5IHZhbHVlLlxuXHRcdFx0Y29uc3QgZm9ybSA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCAnZm9ybScgKTtcblxuXHRcdFx0Zm9ybS5zdHlsZS5zZXRQcm9wZXJ0eSggJy0td3Bmb3Jtcy1idXR0b24tYmFja2dyb3VuZC1jb2xvci1hbHQnLCB2YWx1ZSApO1xuXG5cdFx0XHRpZiAoIFdQRm9ybXNVdGlscy5jc3NDb2xvcnNVdGlscy5pc1RyYW5zcGFyZW50Q29sb3IoIHZhbHVlICkgKSB7XG5cdFx0XHRcdHJldHVybiBXUEZvcm1zVXRpbHMuY3NzQ29sb3JzVXRpbHMuaXNUcmFuc3BhcmVudENvbG9yKCBidXR0b25Cb3JkZXJDb2xvciApID8gZGVmYXVsdFN0eWxlU2V0dGluZ3MuYnV0dG9uQmFja2dyb3VuZENvbG9yIDogYnV0dG9uQm9yZGVyQ29sb3I7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogTWF5YmUgc2V0IHRoZSBidXR0b24ncyBhbHRlcm5hdGl2ZSB0ZXh0IGNvbG9yLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC44XG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZSB2YWx1ZS5cblx0XHQgKiBAcGFyYW0ge3N0cmluZ30gYnV0dG9uQmFja2dyb3VuZENvbG9yIEJ1dHRvbiBiYWNrZ3JvdW5kIGNvbG9yLlxuXHRcdCAqIEBwYXJhbSB7c3RyaW5nfSBidXR0b25Cb3JkZXJDb2xvciAgICAgQnV0dG9uIGJvcmRlciBjb2xvci5cblx0XHQgKiBAcGFyYW0ge09iamVjdH0gY29udGFpbmVyICAgICAgICAgICAgIEZvcm0gY29udGFpbmVyLlxuXHRcdCAqL1xuXHRcdG1heWJlU2V0QnV0dG9uQWx0VGV4dENvbG9yKCB2YWx1ZSwgYnV0dG9uQmFja2dyb3VuZENvbG9yLCBidXR0b25Cb3JkZXJDb2xvciwgY29udGFpbmVyICkge1xuXHRcdFx0Y29uc3QgZm9ybSA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCAnZm9ybScgKTtcblxuXHRcdFx0bGV0IGFsdENvbG9yID0gbnVsbDtcblxuXHRcdFx0dmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuXG5cdFx0XHRpZiAoXG5cdFx0XHRcdFdQRm9ybXNVdGlscy5jc3NDb2xvcnNVdGlscy5pc1RyYW5zcGFyZW50Q29sb3IoIHZhbHVlICkgfHxcblx0XHRcdFx0dmFsdWUgPT09IGJ1dHRvbkJhY2tncm91bmRDb2xvciB8fFxuXHRcdFx0XHQoXG5cdFx0XHRcdFx0V1BGb3Jtc1V0aWxzLmNzc0NvbG9yc1V0aWxzLmlzVHJhbnNwYXJlbnRDb2xvciggYnV0dG9uQmFja2dyb3VuZENvbG9yICkgJiZcblx0XHRcdFx0XHR2YWx1ZSA9PT0gYnV0dG9uQm9yZGVyQ29sb3Jcblx0XHRcdFx0KVxuXHRcdFx0KSB7XG5cdFx0XHRcdGFsdENvbG9yID0gV1BGb3Jtc1V0aWxzLmNzc0NvbG9yc1V0aWxzLmdldENvbnRyYXN0Q29sb3IoIGJ1dHRvbkJhY2tncm91bmRDb2xvciApO1xuXHRcdFx0fVxuXG5cdFx0XHRjb250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoIGAtLXdwZm9ybXMtYnV0dG9uLXRleHQtY29sb3ItYWx0YCwgdmFsdWUgKTtcblx0XHRcdGZvcm0uc3R5bGUuc2V0UHJvcGVydHkoIGAtLXdwZm9ybXMtYnV0dG9uLXRleHQtY29sb3ItYWx0YCwgYWx0Q29sb3IgKTtcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogTWF5YmUgdXBkYXRlIGFjY2VudCBjb2xvci5cblx0XHQgKlxuXHRcdCAqIEBzaW5jZSAxLjguOFxuXHRcdCAqXG5cdFx0ICogQHBhcmFtIHtzdHJpbmd9IGNvbG9yICAgICAgICAgICAgICAgICBDb2xvciB2YWx1ZS5cblx0XHQgKiBAcGFyYW0ge3N0cmluZ30gYnV0dG9uQmFja2dyb3VuZENvbG9yIEJ1dHRvbiBiYWNrZ3JvdW5kIGNvbG9yLlxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBjb250YWluZXIgICAgICAgICAgICAgRm9ybSBjb250YWluZXIuXG5cdFx0ICovXG5cdFx0bWF5YmVVcGRhdGVBY2NlbnRDb2xvciggY29sb3IsIGJ1dHRvbkJhY2tncm91bmRDb2xvciwgY29udGFpbmVyICkge1xuXHRcdFx0Ly8gU2V0dGluZyBjc3MgcHJvcGVydHkgdmFsdWUgdG8gY2hpbGQgYGZvcm1gIGVsZW1lbnQgb3ZlcnJpZGVzIHRoZSBwYXJlbnQgcHJvcGVydHkgdmFsdWUuXG5cdFx0XHRjb25zdCBmb3JtID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoICdmb3JtJyApO1xuXG5cdFx0XHQvLyBGYWxsYmFjayB0byBkZWZhdWx0IGNvbG9yIGlmIHRoZSBib3JkZXIgY29sb3IgaXMgdHJhbnNwYXJlbnQuXG5cdFx0XHRjb2xvciA9IFdQRm9ybXNVdGlscy5jc3NDb2xvcnNVdGlscy5pc1RyYW5zcGFyZW50Q29sb3IoIGNvbG9yICkgPyBkZWZhdWx0U3R5bGVTZXR0aW5ncy5idXR0b25CYWNrZ3JvdW5kQ29sb3IgOiBjb2xvcjtcblxuXHRcdFx0aWYgKCBXUEZvcm1zVXRpbHMuY3NzQ29sb3JzVXRpbHMuaXNUcmFuc3BhcmVudENvbG9yKCBidXR0b25CYWNrZ3JvdW5kQ29sb3IgKSApIHtcblx0XHRcdFx0Zm9ybS5zdHlsZS5zZXRQcm9wZXJ0eSggJy0td3Bmb3Jtcy1idXR0b24tYmFja2dyb3VuZC1jb2xvci1hbHQnLCAncmdiYSggMCwgMCwgMCwgMCApJyApO1xuXHRcdFx0XHRmb3JtLnN0eWxlLnNldFByb3BlcnR5KCAnLS13cGZvcm1zLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yJywgY29sb3IgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbnRhaW5lci5zdHlsZS5zZXRQcm9wZXJ0eSggJy0td3Bmb3Jtcy1idXR0b24tYmFja2dyb3VuZC1jb2xvci1hbHQnLCBidXR0b25CYWNrZ3JvdW5kQ29sb3IgKTtcblx0XHRcdFx0Zm9ybS5zdHlsZS5zZXRQcm9wZXJ0eSggJy0td3Bmb3Jtcy1idXR0b24tYmFja2dyb3VuZC1jb2xvci1hbHQnLCBudWxsICk7XG5cdFx0XHRcdGZvcm0uc3R5bGUuc2V0UHJvcGVydHkoICctLXdwZm9ybXMtYnV0dG9uLWJhY2tncm91bmQtY29sb3InLCBudWxsICk7XG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEdldCBzZXR0aW5ncyBmaWVsZHMgZXZlbnQgaGFuZGxlcnMuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44LjFcblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyBCbG9jayBwcm9wZXJ0aWVzLlxuXHRcdCAqXG5cdFx0ICogQHJldHVybiB7T2JqZWN0fSBPYmplY3QgdGhhdCBjb250YWlucyBldmVudCBoYW5kbGVycyBmb3IgdGhlIHNldHRpbmdzIGZpZWxkcy5cblx0XHQgKi9cblx0XHRnZXRTZXR0aW5nc0ZpZWxkc0hhbmRsZXJzKCBwcm9wcyApIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBtYXgtbGluZXMtcGVyLWZ1bmN0aW9uXG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHQvKipcblx0XHRcdFx0ICogRmllbGQgc3R5bGUgYXR0cmlidXRlIGNoYW5nZSBldmVudCBoYW5kbGVyLlxuXHRcdFx0XHQgKlxuXHRcdFx0XHQgKiBAc2luY2UgMS44LjFcblx0XHRcdFx0ICpcblx0XHRcdFx0ICogQHBhcmFtIHtzdHJpbmd9IGF0dHJpYnV0ZSBBdHRyaWJ1dGUgbmFtZS5cblx0XHRcdFx0ICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlICAgICBOZXcgYXR0cmlidXRlIHZhbHVlLlxuXHRcdFx0XHQgKi9cblx0XHRcdFx0c3R5bGVBdHRyQ2hhbmdlKCBhdHRyaWJ1dGUsIHZhbHVlICkge1xuXHRcdFx0XHRcdGNvbnN0IGJsb2NrID0gYXBwLmdldEJsb2NrQ29udGFpbmVyKCBwcm9wcyApLFxuXHRcdFx0XHRcdFx0Y29udGFpbmVyID0gYmxvY2sucXVlcnlTZWxlY3RvciggYCN3cGZvcm1zLSR7IHByb3BzLmF0dHJpYnV0ZXMuZm9ybUlkIH1gICksXG5cdFx0XHRcdFx0XHRzZXRBdHRyID0ge307XG5cblx0XHRcdFx0XHQvLyBVbnNldCB0aGUgY29sb3IgbWVhbnMgc2V0dGluZyB0aGUgdHJhbnNwYXJlbnQgY29sb3IuXG5cdFx0XHRcdFx0aWYgKCBhdHRyaWJ1dGUuaW5jbHVkZXMoICdDb2xvcicgKSApIHtcblx0XHRcdFx0XHRcdHZhbHVlID0gdmFsdWUgPz8gJ3JnYmEoIDAsIDAsIDAsIDAgKSc7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0YXBwLnVwZGF0ZVByZXZpZXdDU1NWYXJWYWx1ZSggYXR0cmlidXRlLCB2YWx1ZSwgY29udGFpbmVyLCBwcm9wcyApO1xuXG5cdFx0XHRcdFx0c2V0QXR0clsgYXR0cmlidXRlIF0gPSB2YWx1ZTtcblxuXHRcdFx0XHRcdGFwcC5zZXRCbG9ja1J1bnRpbWVTdGF0ZVZhciggcHJvcHMuY2xpZW50SWQsICdwcmV2QXR0cmlidXRlc1N0YXRlJywgcHJvcHMuYXR0cmlidXRlcyApO1xuXHRcdFx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoIHNldEF0dHIgKTtcblxuXHRcdFx0XHRcdHRyaWdnZXJTZXJ2ZXJSZW5kZXIgPSBmYWxzZTtcblxuXHRcdFx0XHRcdHRoaXMudXBkYXRlQ29weVBhc3RlQ29udGVudCgpO1xuXG5cdFx0XHRcdFx0YXBwLnBhbmVscy50aGVtZXMudXBkYXRlQ3VzdG9tVGhlbWVBdHRyaWJ1dGUoIGF0dHJpYnV0ZSwgdmFsdWUsIHByb3BzICk7XG5cblx0XHRcdFx0XHR0aGlzLm1heWJlVG9nZ2xlRHJvcGRvd24oIHByb3BzLCBhdHRyaWJ1dGUgKTtcblxuXHRcdFx0XHRcdC8vIFRyaWdnZXIgZXZlbnQgZm9yIGRldmVsb3BlcnMuXG5cdFx0XHRcdFx0ZWwuJHdpbmRvdy50cmlnZ2VyKCAnd3Bmb3Jtc0Zvcm1TZWxlY3RvclN0eWxlQXR0ckNoYW5nZScsIFsgYmxvY2ssIHByb3BzLCBhdHRyaWJ1dGUsIHZhbHVlIF0gKTtcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvKipcblx0XHRcdFx0ICogSGFuZGxlcyB0aGUgdG9nZ2xpbmcgb2YgdGhlIGRyb3Bkb3duIG1lbnUncyB2aXNpYmlsaXR5LlxuXHRcdFx0XHQgKlxuXHRcdFx0XHQgKiBAc2luY2UgMS44Ljhcblx0XHRcdFx0ICpcblx0XHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IHByb3BzICAgICBUaGUgYmxvY2sgcHJvcGVydGllcy5cblx0XHRcdFx0ICogQHBhcmFtIHtzdHJpbmd9IGF0dHJpYnV0ZSBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIGJlaW5nIGNoYW5nZWQuXG5cdFx0XHRcdCAqL1xuXHRcdFx0XHRtYXliZVRvZ2dsZURyb3Bkb3duKCBwcm9wcywgYXR0cmlidXRlICkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXNoYWRvd1xuXHRcdFx0XHRcdGNvbnN0IGZvcm1JZCA9IHByb3BzLmF0dHJpYnV0ZXMuZm9ybUlkO1xuXHRcdFx0XHRcdGNvbnN0IG1lbnUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCBgI3dwZm9ybXMtZm9ybS0keyBmb3JtSWQgfSAuY2hvaWNlc19fbGlzdC5jaG9pY2VzX19saXN0LS1kcm9wZG93bmAgKTtcblx0XHRcdFx0XHRjb25zdCBjbGFzc2ljTWVudSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIGAjd3Bmb3Jtcy1mb3JtLSR7IGZvcm1JZCB9IC53cGZvcm1zLWZpZWxkLXNlbGVjdC1zdHlsZS1jbGFzc2ljIHNlbGVjdGAgKTtcblxuXHRcdFx0XHRcdGlmICggYXR0cmlidXRlID09PSAnZmllbGRNZW51Q29sb3InICkge1xuXHRcdFx0XHRcdFx0aWYgKCBtZW51ICkge1xuXHRcdFx0XHRcdFx0XHRtZW51LmNsYXNzTGlzdC5hZGQoICdpcy1hY3RpdmUnICk7XG5cdFx0XHRcdFx0XHRcdG1lbnUucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCAnaXMtb3BlbicgKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuc2hvd0NsYXNzaWNNZW51KCBjbGFzc2ljTWVudSApO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRjbGVhclRpbWVvdXQoIGRyb3Bkb3duVGltZW91dCApO1xuXG5cdFx0XHRcdFx0XHRkcm9wZG93blRpbWVvdXQgPSBzZXRUaW1lb3V0KCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHRvQ2xvc2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCBgI3dwZm9ybXMtZm9ybS0keyBmb3JtSWQgfSAuY2hvaWNlc19fbGlzdC5jaG9pY2VzX19saXN0LS1kcm9wZG93bmAgKTtcblxuXHRcdFx0XHRcdFx0XHRpZiAoIHRvQ2xvc2UgKSB7XG5cdFx0XHRcdFx0XHRcdFx0dG9DbG9zZS5jbGFzc0xpc3QucmVtb3ZlKCAnaXMtYWN0aXZlJyApO1xuXHRcdFx0XHRcdFx0XHRcdHRvQ2xvc2UucGFyZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCAnaXMtb3BlbicgKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmhpZGVDbGFzc2ljTWVudSggZG9jdW1lbnQucXVlcnlTZWxlY3RvciggYCN3cGZvcm1zLWZvcm0tJHsgZm9ybUlkIH0gLndwZm9ybXMtZmllbGQtc2VsZWN0LXN0eWxlLWNsYXNzaWMgc2VsZWN0YCApICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0sIDUwMDAgKTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKCBtZW51ICkge1xuXHRcdFx0XHRcdFx0bWVudS5jbGFzc0xpc3QucmVtb3ZlKCAnaXMtYWN0aXZlJyApO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR0aGlzLmhpZGVDbGFzc2ljTWVudSggY2xhc3NpY01lbnUgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0LyoqXG5cdFx0XHRcdCAqIFNob3dzIHRoZSBjbGFzc2ljIG1lbnUuXG5cdFx0XHRcdCAqXG5cdFx0XHRcdCAqIEBzaW5jZSAxLjguOFxuXHRcdFx0XHQgKlxuXHRcdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gY2xhc3NpY01lbnUgVGhlIGNsYXNzaWMgbWVudS5cblx0XHRcdFx0ICovXG5cdFx0XHRcdHNob3dDbGFzc2ljTWVudSggY2xhc3NpY01lbnUgKSB7XG5cdFx0XHRcdFx0aWYgKCAhIGNsYXNzaWNNZW51ICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGNsYXNzaWNNZW51LnNpemUgPSAyO1xuXHRcdFx0XHRcdGNsYXNzaWNNZW51LnN0eWxlLmNzc1RleHQgPSAncGFkZGluZy10b3A6IDQwcHg7IHBhZGRpbmctaW5saW5lLWVuZDogMDsgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7IHBvc2l0aW9uOiByZWxhdGl2ZTsnO1xuXHRcdFx0XHRcdGNsYXNzaWNNZW51LnF1ZXJ5U2VsZWN0b3JBbGwoICdvcHRpb24nICkuZm9yRWFjaCggKCBvcHRpb24gKSA9PiB7XG5cdFx0XHRcdFx0XHRvcHRpb24uc3R5bGUuY3NzVGV4dCA9ICdib3JkZXItbGVmdDogMXB4IHNvbGlkICM4YzhmOTQ7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM4YzhmOTQ7IHBhZGRpbmc6IDAgMTBweDsgei1pbmRleDogOTk5OTk5OyBwb3NpdGlvbjogcmVsYXRpdmU7Jztcblx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdFx0Y2xhc3NpY01lbnUucXVlcnlTZWxlY3RvciggJ29wdGlvbjpsYXN0LWNoaWxkJyApLnN0eWxlLmNzc1RleHQgPSAnYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4OyBwYWRkaW5nOiAwIDEwcHg7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzhjOGY5NDsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzhjOGY5NDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4YzhmOTQ7IHotaW5kZXg6IDk5OTk5OTsgcG9zaXRpb246IHJlbGF0aXZlOyc7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0LyoqXG5cdFx0XHRcdCAqIEhpZGVzIHRoZSBjbGFzc2ljIG1lbnUuXG5cdFx0XHRcdCAqXG5cdFx0XHRcdCAqIEBzaW5jZSAxLjguOFxuXHRcdFx0XHQgKlxuXHRcdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gY2xhc3NpY01lbnUgVGhlIGNsYXNzaWMgbWVudS5cblx0XHRcdFx0ICovXG5cdFx0XHRcdGhpZGVDbGFzc2ljTWVudSggY2xhc3NpY01lbnUgKSB7XG5cdFx0XHRcdFx0aWYgKCAhIGNsYXNzaWNNZW51ICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGNsYXNzaWNNZW51LnNpemUgPSAwO1xuXHRcdFx0XHRcdGNsYXNzaWNNZW51LnN0eWxlLmNzc1RleHQgPSAncGFkZGluZy10b3A6IDA7IHBhZGRpbmctaW5saW5lLWVuZDogMjRweDsgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDEycHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsnO1xuXHRcdFx0XHRcdGNsYXNzaWNNZW51LnF1ZXJ5U2VsZWN0b3JBbGwoICdvcHRpb24nICkuZm9yRWFjaCggKCBvcHRpb24gKSA9PiB7XG5cdFx0XHRcdFx0XHRvcHRpb24uc3R5bGUuY3NzVGV4dCA9ICdib3JkZXI6IG5vbmU7Jztcblx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0LyoqXG5cdFx0XHRcdCAqIEZpZWxkIHJlZ3VsYXIgYXR0cmlidXRlIGNoYW5nZSBldmVudCBoYW5kbGVyLlxuXHRcdFx0XHQgKlxuXHRcdFx0XHQgKiBAc2luY2UgMS44LjFcblx0XHRcdFx0ICpcblx0XHRcdFx0ICogQHBhcmFtIHtzdHJpbmd9IGF0dHJpYnV0ZSBBdHRyaWJ1dGUgbmFtZS5cblx0XHRcdFx0ICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlICAgICBOZXcgYXR0cmlidXRlIHZhbHVlLlxuXHRcdFx0XHQgKi9cblx0XHRcdFx0YXR0ckNoYW5nZSggYXR0cmlidXRlLCB2YWx1ZSApIHtcblx0XHRcdFx0XHRjb25zdCBzZXRBdHRyID0ge307XG5cblx0XHRcdFx0XHRzZXRBdHRyWyBhdHRyaWJ1dGUgXSA9IHZhbHVlO1xuXG5cdFx0XHRcdFx0YXBwLnNldEJsb2NrUnVudGltZVN0YXRlVmFyKCBwcm9wcy5jbGllbnRJZCwgJ3ByZXZBdHRyaWJ1dGVzU3RhdGUnLCBwcm9wcy5hdHRyaWJ1dGVzICk7XG5cdFx0XHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyggc2V0QXR0ciApO1xuXG5cdFx0XHRcdFx0dHJpZ2dlclNlcnZlclJlbmRlciA9IHRydWU7XG5cblx0XHRcdFx0XHR0aGlzLnVwZGF0ZUNvcHlQYXN0ZUNvbnRlbnQoKTtcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvKipcblx0XHRcdFx0ICogVXBkYXRlIGNvbnRlbnQgb2YgdGhlIFwiQ29weS9QYXN0ZVwiIGZpZWxkcy5cblx0XHRcdFx0ICpcblx0XHRcdFx0ICogQHNpbmNlIDEuOC4xXG5cdFx0XHRcdCAqL1xuXHRcdFx0XHR1cGRhdGVDb3B5UGFzdGVDb250ZW50KCkge1xuXHRcdFx0XHRcdGNvbnN0IGNvbnRlbnQgPSB7fTtcblx0XHRcdFx0XHRjb25zdCBhdHRzID0gd3AuZGF0YS5zZWxlY3QoICdjb3JlL2Jsb2NrLWVkaXRvcicgKS5nZXRCbG9ja0F0dHJpYnV0ZXMoIHByb3BzLmNsaWVudElkICk7XG5cblx0XHRcdFx0XHRmb3IgKCBjb25zdCBrZXkgaW4gZGVmYXVsdFN0eWxlU2V0dGluZ3MgKSB7XG5cdFx0XHRcdFx0XHRjb250ZW50WyBrZXkgXSA9IGF0dHNbIGtleSBdO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoIHsgY29weVBhc3RlSnNvblZhbHVlOiBKU09OLnN0cmluZ2lmeSggY29udGVudCApIH0gKTtcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvKipcblx0XHRcdFx0ICogUGFzdGUgc2V0dGluZ3MgaGFuZGxlci5cblx0XHRcdFx0ICpcblx0XHRcdFx0ICogQHNpbmNlIDEuOC4xXG5cdFx0XHRcdCAqXG5cdFx0XHRcdCAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSBOZXcgYXR0cmlidXRlIHZhbHVlLlxuXHRcdFx0XHQgKi9cblx0XHRcdFx0cGFzdGVTZXR0aW5ncyggdmFsdWUgKSB7XG5cdFx0XHRcdFx0dmFsdWUgPSB2YWx1ZS50cmltKCk7XG5cblx0XHRcdFx0XHRjb25zdCBwYXN0ZUF0dHJpYnV0ZXMgPSBhcHAucGFyc2VWYWxpZGF0ZUpzb24oIHZhbHVlICk7XG5cblx0XHRcdFx0XHRpZiAoICEgcGFzdGVBdHRyaWJ1dGVzICkge1xuXHRcdFx0XHRcdFx0d3AuZGF0YS5kaXNwYXRjaCggJ2NvcmUvbm90aWNlcycgKS5jcmVhdGVFcnJvck5vdGljZShcblx0XHRcdFx0XHRcdFx0c3RyaW5ncy5jb3B5X3Bhc3RlX2Vycm9yLFxuXHRcdFx0XHRcdFx0XHR7IGlkOiAnd3Bmb3Jtcy1qc29uLXBhcnNlLWVycm9yJyB9XG5cdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUNvcHlQYXN0ZUNvbnRlbnQoKTtcblxuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHBhc3RlQXR0cmlidXRlcy5jb3B5UGFzdGVKc29uVmFsdWUgPSB2YWx1ZTtcblxuXHRcdFx0XHRcdGNvbnN0IHRoZW1lU2x1ZyA9IGFwcC5wYW5lbHMudGhlbWVzLm1heWJlQ3JlYXRlQ3VzdG9tVGhlbWVGcm9tQXR0cmlidXRlcyggcGFzdGVBdHRyaWJ1dGVzICk7XG5cblx0XHRcdFx0XHRhcHAuc2V0QmxvY2tSdW50aW1lU3RhdGVWYXIoIHByb3BzLmNsaWVudElkLCAncHJldkF0dHJpYnV0ZXNTdGF0ZScsIHByb3BzLmF0dHJpYnV0ZXMgKTtcblx0XHRcdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKCBwYXN0ZUF0dHJpYnV0ZXMgKTtcblx0XHRcdFx0XHRhcHAucGFuZWxzLnRoZW1lcy5zZXRCbG9ja1RoZW1lKCBwcm9wcywgdGhlbWVTbHVnICk7XG5cblx0XHRcdFx0XHR0cmlnZ2VyU2VydmVyUmVuZGVyID0gZmFsc2U7XG5cdFx0XHRcdH0sXG5cdFx0XHR9O1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBQYXJzZSBhbmQgdmFsaWRhdGUgSlNPTiBzdHJpbmcuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44LjFcblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSBKU09OIHN0cmluZy5cblx0XHQgKlxuXHRcdCAqIEByZXR1cm4ge2Jvb2xlYW58b2JqZWN0fSBQYXJzZWQgSlNPTiBvYmplY3QgT1IgZmFsc2Ugb24gZXJyb3IuXG5cdFx0ICovXG5cdFx0cGFyc2VWYWxpZGF0ZUpzb24oIHZhbHVlICkge1xuXHRcdFx0aWYgKCB0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnICkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cblx0XHRcdGxldCBhdHRzO1xuXG5cdFx0XHR0cnkge1xuXHRcdFx0XHRhdHRzID0gSlNPTi5wYXJzZSggdmFsdWUudHJpbSgpICk7XG5cdFx0XHR9IGNhdGNoICggZXJyb3IgKSB7XG5cdFx0XHRcdGF0dHMgPSBmYWxzZTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGF0dHM7XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEdldCBXUEZvcm1zIGljb24gRE9NIGVsZW1lbnQuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44LjFcblx0XHQgKlxuXHRcdCAqIEByZXR1cm4ge0RPTS5lbGVtZW50fSBXUEZvcm1zIGljb24gRE9NIGVsZW1lbnQuXG5cdFx0ICovXG5cdFx0Z2V0SWNvbigpIHtcblx0XHRcdHJldHVybiBjcmVhdGVFbGVtZW50KFxuXHRcdFx0XHQnc3ZnJyxcblx0XHRcdFx0eyB3aWR0aDogMjAsIGhlaWdodDogMjAsIHZpZXdCb3g6ICcwIDAgNjEyIDYxMicsIGNsYXNzTmFtZTogJ2Rhc2hpY29uJyB9LFxuXHRcdFx0XHRjcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdCdwYXRoJyxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRmaWxsOiAnY3VycmVudENvbG9yJyxcblx0XHRcdFx0XHRcdGQ6ICdNNTQ0LDBINjhDMzAuNDQ1LDAsMCwzMC40NDUsMCw2OHY0NzZjMCwzNy41NTYsMzAuNDQ1LDY4LDY4LDY4aDQ3NmMzNy41NTYsMCw2OC0zMC40NDQsNjgtNjhWNjggQzYxMiwzMC40NDUsNTgxLjU1NiwwLDU0NCwweiBNNDY0LjQ0LDY4TDM4Ny42LDEyMC4wMkwzMjMuMzQsNjhINDY0LjQ0eiBNMjg4LjY2LDY4bC02NC4yNiw1Mi4wMkwxNDcuNTYsNjhIMjg4LjY2eiBNNTQ0LDU0NEg2OCBWNjhoMjIuMWwxMzYsOTIuMTRsNzkuOS02NC42bDc5LjU2LDY0LjZsMTM2LTkyLjE0SDU0NFY1NDR6IE0xMTQuMjQsMjYzLjE2aDk1Ljg4di00OC4yOGgtOTUuODhWMjYzLjE2eiBNMTE0LjI0LDM2MC40aDk1Ljg4IHYtNDguNjJoLTk1Ljg4VjM2MC40eiBNMjQyLjc2LDM2MC40aDI1NXYtNDguNjJoLTI1NVYzNjAuNEwyNDIuNzYsMzYwLjR6IE0yNDIuNzYsMjYzLjE2aDI1NXYtNDguMjhoLTI1NVYyNjMuMTZMMjQyLjc2LDI2My4xNnogTTM2OC4yMiw0NTcuM2gxMjkuNTRWNDA4SDM2OC4yMlY0NTcuM3onLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdCksXG5cdFx0XHQpO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBHZXQgV1BGb3JtcyBibG9ja3MuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44Ljhcblx0XHQgKlxuXHRcdCAqIEByZXR1cm4ge0FycmF5fSBCbG9ja3MgYXJyYXkuXG5cdFx0ICovXG5cdFx0Z2V0V1BGb3Jtc0Jsb2NrcygpIHtcblx0XHRcdGNvbnN0IHdwZm9ybXNCbG9ja3MgPSB3cC5kYXRhLnNlbGVjdCggJ2NvcmUvYmxvY2stZWRpdG9yJyApLmdldEJsb2NrcygpO1xuXG5cdFx0XHRyZXR1cm4gd3Bmb3Jtc0Jsb2Nrcy5maWx0ZXIoICggcHJvcHMgKSA9PiB7XG5cdFx0XHRcdHJldHVybiBwcm9wcy5uYW1lID09PSAnd3Bmb3Jtcy9mb3JtLXNlbGVjdG9yJztcblx0XHRcdH0gKTtcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogR2V0IFdQRm9ybXMgYmxvY2tzLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC44XG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgQmxvY2sgcHJvcGVydGllcy5cblx0XHQgKlxuXHRcdCAqIEByZXR1cm4ge09iamVjdH0gQmxvY2sgYXR0cmlidXRlcy5cblx0XHQgKi9cblx0XHRpc0NsaWVudElkQXR0clVuaXF1ZSggcHJvcHMgKSB7XG5cdFx0XHRjb25zdCB3cGZvcm1zQmxvY2tzID0gYXBwLmdldFdQRm9ybXNCbG9ja3MoKTtcblxuXHRcdFx0Zm9yICggY29uc3Qga2V5IGluIHdwZm9ybXNCbG9ja3MgKSB7XG5cdFx0XHRcdC8vIFNraXAgdGhlIGN1cnJlbnQgYmxvY2suXG5cdFx0XHRcdGlmICggd3Bmb3Jtc0Jsb2Nrc1sga2V5IF0uY2xpZW50SWQgPT09IHByb3BzLmNsaWVudElkICkge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKCB3cGZvcm1zQmxvY2tzWyBrZXkgXS5hdHRyaWJ1dGVzLmNsaWVudElkID09PSBwcm9wcy5hdHRyaWJ1dGVzLmNsaWVudElkICkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogR2V0IGJsb2NrIGF0dHJpYnV0ZXMuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44LjFcblx0XHQgKlxuXHRcdCAqIEByZXR1cm4ge09iamVjdH0gQmxvY2sgYXR0cmlidXRlcy5cblx0XHQgKi9cblx0XHRnZXRCbG9ja0F0dHJpYnV0ZXMoKSB7XG5cdFx0XHRyZXR1cm4gY29tbW9uQXR0cmlidXRlcztcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogR2V0IGJsb2NrIHJ1bnRpbWUgc3RhdGUgdmFyaWFibGUuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44Ljhcblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7c3RyaW5nfSBjbGllbnRJZCBCbG9jayBjbGllbnQgSUQuXG5cdFx0ICogQHBhcmFtIHtzdHJpbmd9IHZhck5hbWUgIEJsb2NrIHJ1bnRpbWUgdmFyaWFibGUgbmFtZS5cblx0XHQgKlxuXHRcdCAqIEByZXR1cm4geyp9IEJsb2NrIHJ1bnRpbWUgc3RhdGUgdmFyaWFibGUgdmFsdWUuXG5cdFx0ICovXG5cdFx0Z2V0QmxvY2tSdW50aW1lU3RhdGVWYXIoIGNsaWVudElkLCB2YXJOYW1lICkge1xuXHRcdFx0cmV0dXJuIGJsb2Nrc1sgY2xpZW50SWQgXT8uWyB2YXJOYW1lIF07XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIFNldCBibG9jayBydW50aW1lIHN0YXRlIHZhcmlhYmxlIHZhbHVlLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC44XG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge3N0cmluZ30gY2xpZW50SWQgQmxvY2sgY2xpZW50IElELlxuXHRcdCAqIEBwYXJhbSB7c3RyaW5nfSB2YXJOYW1lICBCbG9jayBydW50aW1lIHN0YXRlIGtleS5cblx0XHQgKiBAcGFyYW0geyp9ICAgICAgdmFsdWUgICAgU3RhdGUgdmFyaWFibGUgdmFsdWUuXG5cdFx0ICpcblx0XHQgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIG9uIHN1Y2Nlc3MuXG5cdFx0ICovXG5cdFx0c2V0QmxvY2tSdW50aW1lU3RhdGVWYXIoIGNsaWVudElkLCB2YXJOYW1lLCB2YWx1ZSApIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBjb21wbGV4aXR5XG5cdFx0XHRpZiAoICEgY2xpZW50SWQgfHwgISB2YXJOYW1lICkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cblx0XHRcdGJsb2Nrc1sgY2xpZW50SWQgXSA9IGJsb2Nrc1sgY2xpZW50SWQgXSB8fCB7fTtcblx0XHRcdGJsb2Nrc1sgY2xpZW50SWQgXVsgdmFyTmFtZSBdID0gdmFsdWU7XG5cblx0XHRcdC8vIFByZXZlbnQgcmVmZXJlbmNpbmcgdG8gb2JqZWN0LlxuXHRcdFx0aWYgKCB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICEgQXJyYXkuaXNBcnJheSggdmFsdWUgKSAmJiB2YWx1ZSAhPT0gbnVsbCApIHtcblx0XHRcdFx0YmxvY2tzWyBjbGllbnRJZCBdWyB2YXJOYW1lIF0gPSB7IC4uLnZhbHVlIH07XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBHZXQgZm9ybSBzZWxlY3RvciBvcHRpb25zLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC4xXG5cdFx0ICpcblx0XHQgKiBAcmV0dXJuIHtBcnJheX0gRm9ybSBvcHRpb25zLlxuXHRcdCAqL1xuXHRcdGdldEZvcm1PcHRpb25zKCkge1xuXHRcdFx0Y29uc3QgZm9ybU9wdGlvbnMgPSBmb3JtTGlzdC5tYXAoICggdmFsdWUgKSA9PiAoXG5cdFx0XHRcdHsgdmFsdWU6IHZhbHVlLklELCBsYWJlbDogdmFsdWUucG9zdF90aXRsZSB9XG5cdFx0XHQpICk7XG5cblx0XHRcdGZvcm1PcHRpb25zLnVuc2hpZnQoIHsgdmFsdWU6ICcnLCBsYWJlbDogc3RyaW5ncy5mb3JtX3NlbGVjdCB9ICk7XG5cblx0XHRcdHJldHVybiBmb3JtT3B0aW9ucztcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogR2V0IHNpemUgc2VsZWN0b3Igb3B0aW9ucy5cblx0XHQgKlxuXHRcdCAqIEBzaW5jZSAxLjguMVxuXHRcdCAqXG5cdFx0ICogQHJldHVybiB7QXJyYXl9IFNpemUgb3B0aW9ucy5cblx0XHQgKi9cblx0XHRnZXRTaXplT3B0aW9ucygpIHtcblx0XHRcdHJldHVybiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRsYWJlbDogc3RyaW5ncy5zbWFsbCxcblx0XHRcdFx0XHR2YWx1ZTogJ3NtYWxsJyxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGxhYmVsOiBzdHJpbmdzLm1lZGl1bSxcblx0XHRcdFx0XHR2YWx1ZTogJ21lZGl1bScsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRsYWJlbDogc3RyaW5ncy5sYXJnZSxcblx0XHRcdFx0XHR2YWx1ZTogJ2xhcmdlJyxcblx0XHRcdFx0fSxcblx0XHRcdF07XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEV2ZW50IGB3cGZvcm1zRm9ybVNlbGVjdG9yRWRpdGAgaGFuZGxlci5cblx0XHQgKlxuXHRcdCAqIEBzaW5jZSAxLjguMVxuXHRcdCAqXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IGUgICAgIEV2ZW50IG9iamVjdC5cblx0XHQgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgQmxvY2sgcHJvcGVydGllcy5cblx0XHQgKi9cblx0XHRibG9ja0VkaXQoIGUsIHByb3BzICkge1xuXHRcdFx0Y29uc3QgYmxvY2sgPSBhcHAuZ2V0QmxvY2tDb250YWluZXIoIHByb3BzICk7XG5cblx0XHRcdGlmICggISBibG9jaz8uZGF0YXNldCApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRhcHAuaW5pdExlYWRGb3JtU2V0dGluZ3MoIGJsb2NrLnBhcmVudEVsZW1lbnQgKTtcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogSW5pdCBMZWFkIEZvcm0gU2V0dGluZ3MgcGFuZWxzLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC4xXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge0VsZW1lbnR9IGJsb2NrICAgICAgICAgQmxvY2sgZWxlbWVudC5cblx0XHQgKiBAcGFyYW0ge09iamVjdH0gIGJsb2NrLmRhdGFzZXQgQmxvY2sgZWxlbWVudC5cblx0XHQgKi9cblx0XHRpbml0TGVhZEZvcm1TZXR0aW5ncyggYmxvY2sgKSB7XG5cdFx0XHRpZiAoICEgYmxvY2s/LmRhdGFzZXQgKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCAhIGFwcC5pc0Z1bGxTdHlsaW5nRW5hYmxlZCgpICkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGNsaWVudElkID0gYmxvY2suZGF0YXNldC5ibG9jaztcblx0XHRcdGNvbnN0ICRmb3JtID0gJCggYmxvY2sucXVlcnlTZWxlY3RvciggJy53cGZvcm1zLWNvbnRhaW5lcicgKSApO1xuXHRcdFx0Y29uc3QgJHBhbmVsID0gJCggYC53cGZvcm1zLWJsb2NrLXNldHRpbmdzLSR7IGNsaWVudElkIH1gICk7XG5cblx0XHRcdGlmICggJGZvcm0uaGFzQ2xhc3MoICd3cGZvcm1zLWxlYWQtZm9ybXMtY29udGFpbmVyJyApICkge1xuXHRcdFx0XHQkcGFuZWxcblx0XHRcdFx0XHQuYWRkQ2xhc3MoICdkaXNhYmxlZF9wYW5lbCcgKVxuXHRcdFx0XHRcdC5maW5kKCAnLndwZm9ybXMtZ3V0ZW5iZXJnLXBhbmVsLW5vdGljZS53cGZvcm1zLWxlYWQtZm9ybS1ub3RpY2UnIClcblx0XHRcdFx0XHQuY3NzKCAnZGlzcGxheScsICdibG9jaycgKTtcblxuXHRcdFx0XHQkcGFuZWxcblx0XHRcdFx0XHQuZmluZCggJy53cGZvcm1zLWd1dGVuYmVyZy1wYW5lbC1ub3RpY2Uud3Bmb3Jtcy11c2UtbW9kZXJuLW5vdGljZScgKVxuXHRcdFx0XHRcdC5jc3MoICdkaXNwbGF5JywgJ25vbmUnICk7XG5cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQkcGFuZWxcblx0XHRcdFx0LnJlbW92ZUNsYXNzKCAnZGlzYWJsZWRfcGFuZWwnIClcblx0XHRcdFx0LmZpbmQoICcud3Bmb3Jtcy1ndXRlbmJlcmctcGFuZWwtbm90aWNlLndwZm9ybXMtbGVhZC1mb3JtLW5vdGljZScgKVxuXHRcdFx0XHQuY3NzKCAnZGlzcGxheScsICdub25lJyApO1xuXG5cdFx0XHQkcGFuZWxcblx0XHRcdFx0LmZpbmQoICcud3Bmb3Jtcy1ndXRlbmJlcmctcGFuZWwtbm90aWNlLndwZm9ybXMtdXNlLW1vZGVybi1ub3RpY2UnIClcblx0XHRcdFx0LmNzcyggJ2Rpc3BsYXknLCBudWxsICk7XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEV2ZW50IGB3cGZvcm1zRm9ybVNlbGVjdG9yRm9ybUxvYWRlZGAgaGFuZGxlci5cblx0XHQgKlxuXHRcdCAqIEBzaW5jZSAxLjguMVxuXHRcdCAqXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IGUgRXZlbnQgb2JqZWN0LlxuXHRcdCAqL1xuXHRcdGZvcm1Mb2FkZWQoIGUgKSB7XG5cdFx0XHRhcHAuaW5pdExlYWRGb3JtU2V0dGluZ3MoIGUuZGV0YWlsLmJsb2NrICk7XG5cdFx0XHRhcHAudXBkYXRlQWNjZW50Q29sb3JzKCBlLmRldGFpbCApO1xuXHRcdFx0YXBwLmxvYWRDaG9pY2VzSlMoIGUuZGV0YWlsICk7XG5cdFx0XHRhcHAuaW5pdFJpY2hUZXh0RmllbGQoIGUuZGV0YWlsLmZvcm1JZCApO1xuXHRcdFx0YXBwLmluaXRSZXBlYXRlckZpZWxkKCBlLmRldGFpbC5mb3JtSWQgKTtcblxuXHRcdFx0JCggZS5kZXRhaWwuYmxvY2sgKVxuXHRcdFx0XHQub2ZmKCAnY2xpY2snIClcblx0XHRcdFx0Lm9uKCAnY2xpY2snLCBhcHAuYmxvY2tDbGljayApO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBDbGljayBvbiB0aGUgYmxvY2sgZXZlbnQgaGFuZGxlci5cblx0XHQgKlxuXHRcdCAqIEBzaW5jZSAxLjguMVxuXHRcdCAqXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IGUgRXZlbnQgb2JqZWN0LlxuXHRcdCAqL1xuXHRcdGJsb2NrQ2xpY2soIGUgKSB7XG5cdFx0XHRhcHAuaW5pdExlYWRGb3JtU2V0dGluZ3MoIGUuY3VycmVudFRhcmdldCApO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBVcGRhdGUgYWNjZW50IGNvbG9ycyBvZiBzb21lIGZpZWxkcyBpbiBHQiBibG9jayBpbiBNb2Rlcm4gTWFya3VwIG1vZGUuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44LjFcblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBkZXRhaWwgRXZlbnQgZGV0YWlscyBvYmplY3QuXG5cdFx0ICovXG5cdFx0dXBkYXRlQWNjZW50Q29sb3JzKCBkZXRhaWwgKSB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdCEgd3Bmb3Jtc19ndXRlbmJlcmdfZm9ybV9zZWxlY3Rvci5pc19tb2Rlcm5fbWFya3VwIHx8XG5cdFx0XHRcdCEgd2luZG93LldQRm9ybXM/LkZyb250ZW5kTW9kZXJuIHx8XG5cdFx0XHRcdCEgZGV0YWlsPy5ibG9ja1xuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgJGZvcm0gPSAkKCBkZXRhaWwuYmxvY2sucXVlcnlTZWxlY3RvciggYCN3cGZvcm1zLSR7IGRldGFpbC5mb3JtSWQgfWAgKSApLFxuXHRcdFx0XHRGcm9udGVuZE1vZGVybiA9IHdpbmRvdy5XUEZvcm1zLkZyb250ZW5kTW9kZXJuO1xuXG5cdFx0XHRGcm9udGVuZE1vZGVybi51cGRhdGVHQkJsb2NrUGFnZUluZGljYXRvckNvbG9yKCAkZm9ybSApO1xuXHRcdFx0RnJvbnRlbmRNb2Rlcm4udXBkYXRlR0JCbG9ja0ljb25DaG9pY2VzQ29sb3IoICRmb3JtICk7XG5cdFx0XHRGcm9udGVuZE1vZGVybi51cGRhdGVHQkJsb2NrUmF0aW5nQ29sb3IoICRmb3JtICk7XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEluaXQgTW9kZXJuIHN0eWxlIERyb3Bkb3duIGZpZWxkcyAoPHNlbGVjdD4pLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC4xXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge09iamVjdH0gZGV0YWlsIEV2ZW50IGRldGFpbHMgb2JqZWN0LlxuXHRcdCAqL1xuXHRcdGxvYWRDaG9pY2VzSlMoIGRldGFpbCApIHtcblx0XHRcdGlmICggdHlwZW9mIHdpbmRvdy5DaG9pY2VzICE9PSAnZnVuY3Rpb24nICkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0ICRmb3JtID0gJCggZGV0YWlsLmJsb2NrLnF1ZXJ5U2VsZWN0b3IoIGAjd3Bmb3Jtcy0keyBkZXRhaWwuZm9ybUlkIH1gICkgKTtcblxuXHRcdFx0JGZvcm0uZmluZCggJy5jaG9pY2VzanMtc2VsZWN0JyApLmVhY2goIGZ1bmN0aW9uKCBpZHgsIHNlbGVjdEVsICkge1xuXHRcdFx0XHRjb25zdCAkZWwgPSAkKCBzZWxlY3RFbCApO1xuXG5cdFx0XHRcdGlmICggJGVsLmRhdGEoICdjaG9pY2UnICkgPT09ICdhY3RpdmUnICkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNvbnN0IGFyZ3MgPSB3aW5kb3cud3Bmb3Jtc19jaG9pY2VzanNfY29uZmlnIHx8IHt9LFxuXHRcdFx0XHRcdHNlYXJjaEVuYWJsZWQgPSAkZWwuZGF0YSggJ3NlYXJjaC1lbmFibGVkJyApLFxuXHRcdFx0XHRcdCRmaWVsZCA9ICRlbC5jbG9zZXN0KCAnLndwZm9ybXMtZmllbGQnICk7XG5cblx0XHRcdFx0YXJncy5zZWFyY2hFbmFibGVkID0gJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiBzZWFyY2hFbmFibGVkID8gc2VhcmNoRW5hYmxlZCA6IHRydWU7XG5cdFx0XHRcdGFyZ3MuY2FsbGJhY2tPbkluaXQgPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRjb25zdCBzZWxmID0gdGhpcyxcblx0XHRcdFx0XHRcdCRlbGVtZW50ID0gJCggc2VsZi5wYXNzZWRFbGVtZW50LmVsZW1lbnQgKSxcblx0XHRcdFx0XHRcdCRpbnB1dCA9ICQoIHNlbGYuaW5wdXQuZWxlbWVudCApLFxuXHRcdFx0XHRcdFx0c2l6ZUNsYXNzID0gJGVsZW1lbnQuZGF0YSggJ3NpemUtY2xhc3MnICk7XG5cblx0XHRcdFx0XHQvLyBBZGQgQ1NTLWNsYXNzIGZvciBzaXplLlxuXHRcdFx0XHRcdGlmICggc2l6ZUNsYXNzICkge1xuXHRcdFx0XHRcdFx0JCggc2VsZi5jb250YWluZXJPdXRlci5lbGVtZW50ICkuYWRkQ2xhc3MoIHNpemVDbGFzcyApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8qKlxuXHRcdFx0XHRcdCAqIElmIGEgbXVsdGlwbGUgc2VsZWN0IGhhcyBzZWxlY3RlZCBjaG9pY2VzIC0gaGlkZSBhIHBsYWNlaG9sZGVyIHRleHQuXG5cdFx0XHRcdFx0ICogSW4gY2FzZSBpZiBzZWxlY3QgaXMgZW1wdHkgLSB3ZSByZXR1cm4gcGxhY2Vob2xkZXIgdGV4dC5cblx0XHRcdFx0XHQgKi9cblx0XHRcdFx0XHRpZiAoICRlbGVtZW50LnByb3AoICdtdWx0aXBsZScgKSApIHtcblx0XHRcdFx0XHRcdC8vIE9uIGluaXQgZXZlbnQuXG5cdFx0XHRcdFx0XHQkaW5wdXQuZGF0YSggJ3BsYWNlaG9sZGVyJywgJGlucHV0LmF0dHIoICdwbGFjZWhvbGRlcicgKSApO1xuXG5cdFx0XHRcdFx0XHRpZiAoIHNlbGYuZ2V0VmFsdWUoIHRydWUgKS5sZW5ndGggKSB7XG5cdFx0XHRcdFx0XHRcdCRpbnB1dC5yZW1vdmVBdHRyKCAncGxhY2Vob2xkZXInICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0dGhpcy5kaXNhYmxlKCk7XG5cdFx0XHRcdFx0JGZpZWxkLmZpbmQoICcuaXMtZGlzYWJsZWQnICkucmVtb3ZlQ2xhc3MoICdpcy1kaXNhYmxlZCcgKTtcblx0XHRcdFx0fTtcblxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGNvbnN0IGNob2ljZXNJbnN0YW5jZSA9IG5ldyBDaG9pY2VzKCBzZWxlY3RFbCwgYXJncyApO1xuXG5cdFx0XHRcdFx0Ly8gU2F2ZSBDaG9pY2VzLmpzIGluc3RhbmNlIGZvciBmdXR1cmUgYWNjZXNzLlxuXHRcdFx0XHRcdCRlbC5kYXRhKCAnY2hvaWNlc2pzJywgY2hvaWNlc0luc3RhbmNlICk7XG5cdFx0XHRcdH0gY2F0Y2ggKCBlICkge30gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1lbXB0eVxuXHRcdFx0fSApO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBJbml0aWFsaXplIFJpY2hUZXh0IGZpZWxkLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC4xXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge251bWJlcn0gZm9ybUlkIEZvcm0gSUQuXG5cdFx0ICovXG5cdFx0aW5pdFJpY2hUZXh0RmllbGQoIGZvcm1JZCApIHtcblx0XHRcdC8vIFNldCBkZWZhdWx0IHRhYiB0byBgVmlzdWFsYC5cblx0XHRcdCQoIGAjd3Bmb3Jtcy0keyBmb3JtSWQgfSAud3AtZWRpdG9yLXdyYXBgICkucmVtb3ZlQ2xhc3MoICdodG1sLWFjdGl2ZScgKS5hZGRDbGFzcyggJ3RtY2UtYWN0aXZlJyApO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBJbml0aWFsaXplIFJlcGVhdGVyIGZpZWxkLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC45XG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge251bWJlcn0gZm9ybUlkIEZvcm0gSUQuXG5cdFx0ICovXG5cdFx0aW5pdFJlcGVhdGVyRmllbGQoIGZvcm1JZCApIHtcblx0XHRcdGNvbnN0ICRyb3dCdXR0b25zID0gJCggYCN3cGZvcm1zLSR7IGZvcm1JZCB9IC53cGZvcm1zLWZpZWxkLXJlcGVhdGVyID4gLndwZm9ybXMtZmllbGQtcmVwZWF0ZXItZGlzcGxheS1yb3dzIC53cGZvcm1zLWZpZWxkLXJlcGVhdGVyLWRpc3BsYXktcm93cy1idXR0b25zYCApO1xuXG5cdFx0XHQvLyBHZXQgdGhlIGxhYmVsIGhlaWdodCBhbmQgc2V0IHRoZSBidXR0b24gcG9zaXRpb24uXG5cdFx0XHQkcm93QnV0dG9ucy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0Y29uc3QgJGNvbnQgPSAkKCB0aGlzICk7XG5cdFx0XHRcdGNvbnN0ICRsYWJlbCA9ICRjb250LnNpYmxpbmdzKCAnLndwZm9ybXMtbGF5b3V0LWNvbHVtbicgKVxuXHRcdFx0XHRcdC5maW5kKCAnLndwZm9ybXMtZmllbGQnICkuZmlyc3QoKVxuXHRcdFx0XHRcdC5maW5kKCAnLndwZm9ybXMtZmllbGQtbGFiZWwnICk7XG5cdFx0XHRcdGNvbnN0IGxhYmVsU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSggJGxhYmVsLmdldCggMCApICk7XG5cdFx0XHRcdGNvbnN0IG1hcmdpbiA9IGxhYmVsU3R5bGU/LmdldFByb3BlcnR5VmFsdWUoICctLXdwZm9ybXMtZmllbGQtc2l6ZS1pbnB1dC1zcGFjaW5nJyApIHx8IDA7XG5cdFx0XHRcdGNvbnN0IGhlaWdodCA9ICRsYWJlbC5vdXRlckhlaWdodCgpIHx8IDA7XG5cdFx0XHRcdGNvbnN0IHRvcCA9IGhlaWdodCArIHBhcnNlSW50KCBtYXJnaW4sIDEwICkgKyAxMDtcblxuXHRcdFx0XHQkY29udC5jc3MoIHsgdG9wIH0gKTtcblx0XHRcdH0gKTtcblxuXHRcdFx0Ly8gSW5pdCBidXR0b25zIGFuZCBkZXNjcmlwdGlvbnMgZm9yIGVhY2ggcmVwZWF0ZXIgaW4gZWFjaCBmb3JtLlxuXHRcdFx0JCggYC53cGZvcm1zLWZvcm1bZGF0YS1mb3JtaWQ9XCIkeyBmb3JtSWQgfVwiXWAgKS5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0Y29uc3QgJHJlcGVhdGVyID0gJCggdGhpcyApLmZpbmQoICcud3Bmb3Jtcy1maWVsZC1yZXBlYXRlcicgKTtcblxuXHRcdFx0XHQkcmVwZWF0ZXIuZmluZCggJy53cGZvcm1zLWZpZWxkLXJlcGVhdGVyLWRpc3BsYXktcm93cy1idXR0b25zJyApLmFkZENsYXNzKCAnd3Bmb3Jtcy1pbml0JyApO1xuXHRcdFx0XHQkcmVwZWF0ZXIuZmluZCggJy53cGZvcm1zLWZpZWxkLXJlcGVhdGVyLWRpc3BsYXktcm93czpsYXN0IC53cGZvcm1zLWZpZWxkLWRlc2NyaXB0aW9uJyApLmFkZENsYXNzKCAnd3Bmb3Jtcy1pbml0JyApO1xuXHRcdFx0fSApO1xuXHRcdH0sXG5cdH07XG5cblx0Ly8gUHJvdmlkZSBhY2Nlc3MgdG8gcHVibGljIGZ1bmN0aW9ucy9wcm9wZXJ0aWVzLlxuXHRyZXR1cm4gYXBwO1xufSggZG9jdW1lbnQsIHdpbmRvdywgalF1ZXJ5ICkgKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OytDQUNBLHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBQyxDQUFBLFNBQUFDLENBQUEsRUFBQUQsQ0FBQSxPQUFBRSxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFBQyxDQUFBLEdBQUFILENBQUEsQ0FBQUksY0FBQSxFQUFBQyxDQUFBLEdBQUFKLE1BQUEsQ0FBQUssY0FBQSxjQUFBUCxDQUFBLEVBQUFE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
[4105] Fix | Delete
},{}],18:[function(require,module,exports){
[4106] Fix | Delete
"use strict";
[4107] Fix | Delete
[4108] Fix | Delete
Object.defineProperty(exports, "__esModule", {
[4109] Fix | Delete
value: true
[4110] Fix | Delete
});
[4111] Fix | Delete
exports.default = void 0;
[4112] Fix | Delete
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
[4113] Fix | Delete
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
[4114] Fix | Delete
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
[4115] Fix | Delete
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
[4116] Fix | Delete
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
[4117] Fix | Delete
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
[4118] Fix | Delete
/* global wpforms_gutenberg_form_selector */
[4119] Fix | Delete
/* jshint es3: false, esversion: 6 */
[4120] Fix | Delete
/**
[4121] Fix | Delete
* @param strings.border_color
[4122] Fix | Delete
* @param strings.border_style
[4123] Fix | Delete
* @param strings.border_width
[4124] Fix | Delete
* @param strings.container_styles
[4125] Fix | Delete
* @param strings.shadow_size
[4126] Fix | Delete
*/
[4127] Fix | Delete
/**
[4128] Fix | Delete
* Gutenberg editor block.
[4129] Fix | Delete
*
[4130] Fix | Delete
* Container styles panel module.
[4131] Fix | Delete
*
[4132] Fix | Delete
* @since 1.8.8
[4133] Fix | Delete
*/
[4134] Fix | Delete
var _default = exports.default = function ($) {
[4135] Fix | Delete
/**
[4136] Fix | Delete
* WP core components.
[4137] Fix | Delete
*
[4138] Fix | Delete
* @since 1.8.8
[4139] Fix | Delete
*/
[4140] Fix | Delete
var _ref = wp.blockEditor || wp.editor,
[4141] Fix | Delete
PanelColorSettings = _ref.PanelColorSettings;
[4142] Fix | Delete
var _wp$components = wp.components,
[4143] Fix | Delete
SelectControl = _wp$components.SelectControl,
[4144] Fix | Delete
PanelBody = _wp$components.PanelBody,
[4145] Fix | Delete
Flex = _wp$components.Flex,
[4146] Fix | Delete
FlexBlock = _wp$components.FlexBlock,
[4147] Fix | Delete
__experimentalUnitControl = _wp$components.__experimentalUnitControl;
[4148] Fix | Delete
var useState = wp.element.useState;
[4149] Fix | Delete
[4150] Fix | Delete
/**
[4151] Fix | Delete
* Localized data aliases.
[4152] Fix | Delete
*
[4153] Fix | Delete
* @since 1.8.8
[4154] Fix | Delete
*/
[4155] Fix | Delete
var _wpforms_gutenberg_fo = wpforms_gutenberg_form_selector,
[4156] Fix | Delete
strings = _wpforms_gutenberg_fo.strings,
[4157] Fix | Delete
defaults = _wpforms_gutenberg_fo.defaults,
[4158] Fix | Delete
isPro = _wpforms_gutenberg_fo.isPro,
[4159] Fix | Delete
isLicenseActive = _wpforms_gutenberg_fo.isLicenseActive;
[4160] Fix | Delete
[4161] Fix | Delete
/**
[4162] Fix | Delete
* Public functions and properties.
[4163] Fix | Delete
*
[4164] Fix | Delete
* @since 1.8.8
[4165] Fix | Delete
*
[4166] Fix | Delete
* @type {Object}
[4167] Fix | Delete
*/
[4168] Fix | Delete
var app = {
[4169] Fix | Delete
/**
[4170] Fix | Delete
* Start the engine.
[4171] Fix | Delete
*
[4172] Fix | Delete
* @since 1.8.8
[4173] Fix | Delete
*/
[4174] Fix | Delete
init: function init() {
[4175] Fix | Delete
$(app.ready);
[4176] Fix | Delete
},
[4177] Fix | Delete
/**
[4178] Fix | Delete
* Document ready.
[4179] Fix | Delete
*
[4180] Fix | Delete
* @since 1.8.8
[4181] Fix | Delete
*/
[4182] Fix | Delete
ready: function ready() {
[4183] Fix | Delete
app.events();
[4184] Fix | Delete
},
[4185] Fix | Delete
/**
[4186] Fix | Delete
* Events.
[4187] Fix | Delete
*
[4188] Fix | Delete
* @since 1.8.8
[4189] Fix | Delete
*/
[4190] Fix | Delete
events: function events() {},
[4191] Fix | Delete
/**
[4192] Fix | Delete
* Get block attributes.
[4193] Fix | Delete
*
[4194] Fix | Delete
* @since 1.8.8
[4195] Fix | Delete
*
[4196] Fix | Delete
* @return {Object} Block attributes.
[4197] Fix | Delete
*/
[4198] Fix | Delete
getBlockAttributes: function getBlockAttributes() {
[4199] Fix | Delete
return {
[4200] Fix | Delete
containerPadding: {
[4201] Fix | Delete
type: 'string',
[4202] Fix | Delete
default: defaults.containerPadding
[4203] Fix | Delete
},
[4204] Fix | Delete
containerBorderStyle: {
[4205] Fix | Delete
type: 'string',
[4206] Fix | Delete
default: defaults.containerBorderStyle
[4207] Fix | Delete
},
[4208] Fix | Delete
containerBorderWidth: {
[4209] Fix | Delete
type: 'string',
[4210] Fix | Delete
default: defaults.containerBorderWidth
[4211] Fix | Delete
},
[4212] Fix | Delete
containerBorderColor: {
[4213] Fix | Delete
type: 'string',
[4214] Fix | Delete
default: defaults.containerBorderColor
[4215] Fix | Delete
},
[4216] Fix | Delete
containerBorderRadius: {
[4217] Fix | Delete
type: 'string',
[4218] Fix | Delete
default: defaults.containerBorderRadius
[4219] Fix | Delete
},
[4220] Fix | Delete
containerShadowSize: {
[4221] Fix | Delete
type: 'string',
[4222] Fix | Delete
default: defaults.containerShadowSize
[4223] Fix | Delete
}
[4224] Fix | Delete
};
[4225] Fix | Delete
},
[4226] Fix | Delete
/**
[4227] Fix | Delete
* Get Container Styles panel JSX code.
[4228] Fix | Delete
*
[4229] Fix | Delete
* @since 1.8.8
[4230] Fix | Delete
*
[4231] Fix | Delete
* @param {Object} props Block properties.
[4232] Fix | Delete
* @param {Object} handlers Block handlers.
[4233] Fix | Delete
* @param {Object} formSelectorCommon Common form selector functions.
[4234] Fix | Delete
*
[4235] Fix | Delete
* @return {Object} Field styles JSX code.
[4236] Fix | Delete
*/
[4237] Fix | Delete
getContainerStyles: function getContainerStyles(props, handlers, formSelectorCommon) {
[4238] Fix | Delete
// eslint-disable-line max-lines-per-function, complexity
[4239] Fix | Delete
var _useState = useState(isPro && isLicenseActive),
[4240] Fix | Delete
_useState2 = _slicedToArray(_useState, 2),
[4241] Fix | Delete
isNotDisabled = _useState2[0],
[4242] Fix | Delete
_setIsNotDisabled = _useState2[1]; // eslint-disable-line react-hooks/rules-of-hooks, no-unused-vars
[4243] Fix | Delete
var _useState3 = useState(isPro),
[4244] Fix | Delete
_useState4 = _slicedToArray(_useState3, 2),
[4245] Fix | Delete
isProEnabled = _useState4[0],
[4246] Fix | Delete
_setIsProEnabled = _useState4[1]; // eslint-disable-line react-hooks/rules-of-hooks, no-unused-vars
[4247] Fix | Delete
[4248] Fix | Delete
var cssClass = formSelectorCommon.getPanelClass(props);
[4249] Fix | Delete
if (!isNotDisabled) {
[4250] Fix | Delete
cssClass += ' wpforms-gutenberg-panel-disabled';
[4251] Fix | Delete
}
[4252] Fix | Delete
return /*#__PURE__*/React.createElement(PanelBody, {
[4253] Fix | Delete
className: cssClass,
[4254] Fix | Delete
title: strings.container_styles
[4255] Fix | Delete
}, /*#__PURE__*/React.createElement("div", {
[4256] Fix | Delete
// eslint-disable-line jsx-a11y/no-static-element-interactions
[4257] Fix | Delete
className: "wpforms-gutenberg-form-selector-panel-body",
[4258] Fix | Delete
onClick: function onClick(event) {
[4259] Fix | Delete
if (isNotDisabled) {
[4260] Fix | Delete
return;
[4261] Fix | Delete
}
[4262] Fix | Delete
event.stopPropagation();
[4263] Fix | Delete
if (!isProEnabled) {
[4264] Fix | Delete
return formSelectorCommon.education.showProModal('container', strings.container_styles);
[4265] Fix | Delete
}
[4266] Fix | Delete
formSelectorCommon.education.showLicenseModal('container', strings.container_styles, 'container-styles');
[4267] Fix | Delete
},
[4268] Fix | Delete
onKeyDown: function onKeyDown(event) {
[4269] Fix | Delete
if (isNotDisabled) {
[4270] Fix | Delete
return;
[4271] Fix | Delete
}
[4272] Fix | Delete
event.stopPropagation();
[4273] Fix | Delete
if (!isProEnabled) {
[4274] Fix | Delete
return formSelectorCommon.education.showProModal('container', strings.container_styles);
[4275] Fix | Delete
}
[4276] Fix | Delete
formSelectorCommon.education.showLicenseModal('container', strings.container_styles, 'container-styles');
[4277] Fix | Delete
}
[4278] Fix | Delete
}, /*#__PURE__*/React.createElement(Flex, {
[4279] Fix | Delete
gap: 4,
[4280] Fix | Delete
align: "flex-start",
[4281] Fix | Delete
className: "wpforms-gutenberg-form-selector-flex",
[4282] Fix | Delete
justify: "space-between"
[4283] Fix | Delete
}, /*#__PURE__*/React.createElement(FlexBlock, null, /*#__PURE__*/React.createElement(__experimentalUnitControl, {
[4284] Fix | Delete
label: strings.padding,
[4285] Fix | Delete
tabIndex: isNotDisabled ? 0 : -1,
[4286] Fix | Delete
value: props.attributes.containerPadding,
[4287] Fix | Delete
min: 0,
[4288] Fix | Delete
isUnitSelectTabbable: isNotDisabled,
[4289] Fix | Delete
onChange: function onChange(value) {
[4290] Fix | Delete
return handlers.styleAttrChange('containerPadding', value);
[4291] Fix | Delete
}
[4292] Fix | Delete
})), /*#__PURE__*/React.createElement(FlexBlock, null, /*#__PURE__*/React.createElement(SelectControl, {
[4293] Fix | Delete
label: strings.border_style,
[4294] Fix | Delete
tabIndex: isNotDisabled ? 0 : -1,
[4295] Fix | Delete
value: props.attributes.containerBorderStyle,
[4296] Fix | Delete
options: [{
[4297] Fix | Delete
label: strings.none,
[4298] Fix | Delete
value: 'none'
[4299] Fix | Delete
}, {
[4300] Fix | Delete
label: strings.solid,
[4301] Fix | Delete
value: 'solid'
[4302] Fix | Delete
}, {
[4303] Fix | Delete
label: strings.dotted,
[4304] Fix | Delete
value: 'dotted'
[4305] Fix | Delete
}, {
[4306] Fix | Delete
label: strings.dashed,
[4307] Fix | Delete
value: 'dashed'
[4308] Fix | Delete
}, {
[4309] Fix | Delete
label: strings.double,
[4310] Fix | Delete
value: 'double'
[4311] Fix | Delete
}],
[4312] Fix | Delete
onChange: function onChange(value) {
[4313] Fix | Delete
return handlers.styleAttrChange('containerBorderStyle', value);
[4314] Fix | Delete
}
[4315] Fix | Delete
}))), /*#__PURE__*/React.createElement(Flex, {
[4316] Fix | Delete
gap: 4,
[4317] Fix | Delete
align: "flex-start",
[4318] Fix | Delete
className: "wpforms-gutenberg-form-selector-flex",
[4319] Fix | Delete
justify: "space-between"
[4320] Fix | Delete
}, /*#__PURE__*/React.createElement(FlexBlock, null, /*#__PURE__*/React.createElement(__experimentalUnitControl, {
[4321] Fix | Delete
label: strings.border_width,
[4322] Fix | Delete
tabIndex: isNotDisabled ? 0 : -1,
[4323] Fix | Delete
value: props.attributes.containerBorderStyle === 'none' ? '' : props.attributes.containerBorderWidth,
[4324] Fix | Delete
min: 0,
[4325] Fix | Delete
disabled: props.attributes.containerBorderStyle === 'none',
[4326] Fix | Delete
isUnitSelectTabbable: isNotDisabled,
[4327] Fix | Delete
onChange: function onChange(value) {
[4328] Fix | Delete
return handlers.styleAttrChange('containerBorderWidth', value);
[4329] Fix | Delete
}
[4330] Fix | Delete
})), /*#__PURE__*/React.createElement(FlexBlock, null, /*#__PURE__*/React.createElement(__experimentalUnitControl, {
[4331] Fix | Delete
label: strings.border_radius,
[4332] Fix | Delete
tabIndex: isNotDisabled ? 0 : -1,
[4333] Fix | Delete
value: props.attributes.containerBorderRadius,
[4334] Fix | Delete
min: 0,
[4335] Fix | Delete
isUnitSelectTabbable: isNotDisabled,
[4336] Fix | Delete
onChange: function onChange(value) {
[4337] Fix | Delete
return handlers.styleAttrChange('containerBorderRadius', value);
[4338] Fix | Delete
}
[4339] Fix | Delete
}))), /*#__PURE__*/React.createElement(Flex, {
[4340] Fix | Delete
gap: 4,
[4341] Fix | Delete
align: "flex-start",
[4342] Fix | Delete
className: "wpforms-gutenberg-form-selector-flex",
[4343] Fix | Delete
justify: "space-between"
[4344] Fix | Delete
}, /*#__PURE__*/React.createElement(FlexBlock, null, /*#__PURE__*/React.createElement(SelectControl, {
[4345] Fix | Delete
label: strings.shadow_size,
[4346] Fix | Delete
tabIndex: isNotDisabled ? 0 : -1,
[4347] Fix | Delete
value: props.attributes.containerShadowSize,
[4348] Fix | Delete
options: [{
[4349] Fix | Delete
label: strings.none,
[4350] Fix | Delete
value: 'none'
[4351] Fix | Delete
}, {
[4352] Fix | Delete
label: strings.small,
[4353] Fix | Delete
value: 'small'
[4354] Fix | Delete
}, {
[4355] Fix | Delete
label: strings.medium,
[4356] Fix | Delete
value: 'medium'
[4357] Fix | Delete
}, {
[4358] Fix | Delete
label: strings.large,
[4359] Fix | Delete
value: 'large'
[4360] Fix | Delete
}],
[4361] Fix | Delete
onChange: function onChange(value) {
[4362] Fix | Delete
return handlers.styleAttrChange('containerShadowSize', value);
[4363] Fix | Delete
}
[4364] Fix | Delete
}))), /*#__PURE__*/React.createElement(Flex, {
[4365] Fix | Delete
gap: 4,
[4366] Fix | Delete
align: "flex-start",
[4367] Fix | Delete
className: "wpforms-gutenberg-form-selector-flex",
[4368] Fix | Delete
justify: "space-between"
[4369] Fix | Delete
}, /*#__PURE__*/React.createElement(FlexBlock, null, /*#__PURE__*/React.createElement("div", {
[4370] Fix | Delete
className: "wpforms-gutenberg-form-selector-control-label"
[4371] Fix | Delete
}, strings.colors), /*#__PURE__*/React.createElement(PanelColorSettings, {
[4372] Fix | Delete
__experimentalIsRenderedInSidebar: true,
[4373] Fix | Delete
enableAlpha: true,
[4374] Fix | Delete
showTitle: false,
[4375] Fix | Delete
tabIndex: isNotDisabled ? 0 : -1,
[4376] Fix | Delete
className: props.attributes.containerBorderStyle === 'none' ? 'wpforms-gutenberg-form-selector-color-panel wpforms-gutenberg-form-selector-color-panel-disabled' : 'wpforms-gutenberg-form-selector-color-panel',
[4377] Fix | Delete
colorSettings: [{
[4378] Fix | Delete
value: props.attributes.containerBorderColor,
[4379] Fix | Delete
onChange: function onChange(value) {
[4380] Fix | Delete
if (!isNotDisabled) {
[4381] Fix | Delete
return;
[4382] Fix | Delete
}
[4383] Fix | Delete
handlers.styleAttrChange('containerBorderColor', value);
[4384] Fix | Delete
},
[4385] Fix | Delete
label: strings.border_color
[4386] Fix | Delete
}]
[4387] Fix | Delete
})))));
[4388] Fix | Delete
}
[4389] Fix | Delete
};
[4390] Fix | Delete
return app;
[4391] Fix | Delete
}(jQuery);
[4392] Fix | Delete
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwiJCIsIl9yZWYiLCJ3cCIsImJsb2NrRWRpdG9yIiwiZWRpdG9yIiwiUGFuZWxDb2xvclNldHRpbmdzIiwiX3dwJGNvbXBvbmVudHMiLCJjb21wb25lbnRzIiwiU2VsZWN0Q29udHJvbCIsIlBhbmVsQm9keSIsIkZsZXgiLCJGbGV4QmxvY2siLCJfX2V4cGVyaW1lbnRhbFVuaXRDb250cm9sIiwidXNlU3RhdGUiLCJlbGVtZW50IiwiX3dwZm9ybXNfZ3V0ZW5iZXJnX2ZvIiwid3Bmb3Jtc19ndXRlbmJlcmdfZm9ybV9zZWxlY3RvciIsInN0cmluZ3MiLCJkZWZhdWx0cyIsImlzUHJvIiwiaXNMaWNlbnNlQWN0aXZlIiwiYXBwIiwiaW5pdCIsInJlYWR5IiwiZXZlbnRzIiwiZ2V0QmxvY2tBdHRyaWJ1dGVzIiwiY29udGFpbmVyUGFkZGluZyIsInR5cGUiLCJjb250YWluZXJCb3JkZXJTdHlsZSIsImNvbnRhaW5lckJvcmRlcldpZHRoIiwiY29udGFpbmVyQm9yZGVyQ29sb3IiLCJjb250YWluZXJCb3JkZXJSYWRpdXMiLCJjb250YWluZXJTaGFkb3dTaXplIiwiZ2V0Q29udGFpbmVyU3R5bGVzIiwicHJvcHMiLCJoYW5kbGVycyIsImZvcm1TZWxlY3RvckNvbW1vbiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzTm90RGlzYWJsZWQiLCJfc2V0SXNOb3REaXNhYmxlZCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaXNQcm9FbmFibGVkIiwiX3NldElzUHJvRW5hYmxlZCIsImNzc0NsYXNzIiwiZ2V0UGFuZWxDbGFzcyIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInRpdGxlIiwiY29udGFpbmVyX3N0eWxlcyIsIm9uQ2xpY2siLCJldmVudCIsInN0b3BQcm9wYWdhdGlvbiIsImVkdWNhdGlvbiIsInNob3dQcm9Nb2RhbCIsInNob3dMaWNlbnNlTW9kYWwiLCJvbktleURvd24iLCJnYXAiLCJhbGlnbiIsImp1c3RpZnkiLCJsYWJlbCIsInBhZGRpbmciLCJ0YWJJbmRleCIsInZhbHVlIiwiYXR0cmlidXRlcyIsIm1pbiIsImlzVW5pdFNlbGVjdFRhYmJhYmxlIiwib25DaGFuZ2UiLCJzdHlsZUF0dHJDaGFuZ2UiLCJib3JkZXJfc3R5bGUiLCJvcHRpb25zIiwibm9uZSIsInNvbGlkIiwiZG90dGVkIiwiZGFzaGVkIiwiZG91YmxlIiwiYm9yZGVyX3dpZHRoIiwiZGlzYWJsZWQiLCJib3JkZXJfcmFkaXVzIiwic2hhZG93X3NpemUiLCJzbWFsbCIsIm1lZGl1bSIsImxhcmdlIiwiY29sb3JzIiwiX19leHBlcmltZW50YWxJc1JlbmRlcmVkSW5TaWRlYmFyIiwiZW5hYmxlQWxwaGEiLCJzaG93VGl0bGUiLCJjb2xvclNldHRpbmdzIiwiYm9yZGVyX2NvbG9yIiwialF1ZXJ5Il0sInNvdXJjZXMiOlsiY29udGFpbmVyLXN0eWxlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgd3Bmb3Jtc19ndXRlbmJlcmdfZm9ybV9zZWxlY3RvciAqL1xuLyoganNoaW50IGVzMzogZmFsc2UsIGVzdmVyc2lvbjogNiAqL1xuXG4vKipcbiAqIEBwYXJhbSBzdHJpbmdzLmJvcmRlcl9jb2xvclxuICogQHBhcmFtIHN0cmluZ3MuYm9yZGVyX3N0eWxlXG4gKiBAcGFyYW0gc3RyaW5ncy5ib3JkZXJfd2lkdGhcbiAqIEBwYXJhbSBzdHJpbmdzLmNvbnRhaW5lcl9zdHlsZXNcbiAqIEBwYXJhbSBzdHJpbmdzLnNoYWRvd19zaXplXG4gKi9cblxuLyoqXG4gKiBHdXRlbmJlcmcgZWRpdG9yIGJsb2NrLlxuICpcbiAqIENvbnRhaW5lciBzdHlsZXMgcGFuZWwgbW9kdWxlLlxuICpcbiAqIEBzaW5jZSAxLjguOFxuICovXG5leHBvcnQgZGVmYXVsdCAoICggJCApID0+IHtcblx0LyoqXG5cdCAqIFdQIGNvcmUgY29tcG9uZW50cy5cblx0ICpcblx0ICogQHNpbmNlIDEuOC44XG5cdCAqL1xuXHRjb25zdCB7IFBhbmVsQ29sb3JTZXR0aW5ncyB9ID0gd3AuYmxvY2tFZGl0b3IgfHwgd3AuZWRpdG9yO1xuXHRjb25zdCB7IFNlbGVjdENvbnRyb2wsIFBhbmVsQm9keSwgRmxleCwgRmxleEJsb2NrLCBfX2V4cGVyaW1lbnRhbFVuaXRDb250cm9sIH0gPSB3cC5jb21wb25lbnRzO1xuXHRjb25zdCB7IHVzZVN0YXRlIH0gPSB3cC5lbGVtZW50O1xuXG5cdC8qKlxuXHQgKiBMb2NhbGl6ZWQgZGF0YSBhbGlhc2VzLlxuXHQgKlxuXHQgKiBAc2luY2UgMS44Ljhcblx0ICovXG5cdGNvbnN0IHsgc3RyaW5ncywgZGVmYXVsdHMsIGlzUHJvLCBpc0xpY2Vuc2VBY3RpdmUgfSA9IHdwZm9ybXNfZ3V0ZW5iZXJnX2Zvcm1fc2VsZWN0b3I7XG5cblx0LyoqXG5cdCAqIFB1YmxpYyBmdW5jdGlvbnMgYW5kIHByb3BlcnRpZXMuXG5cdCAqXG5cdCAqIEBzaW5jZSAxLjguOFxuXHQgKlxuXHQgKiBAdHlwZSB7T2JqZWN0fVxuXHQgKi9cblx0Y29uc3QgYXBwID0ge1xuXHRcdC8qKlxuXHRcdCAqIFN0YXJ0IHRoZSBlbmdpbmUuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44Ljhcblx0XHQgKi9cblx0XHRpbml0KCkge1xuXHRcdFx0JCggYXBwLnJlYWR5ICk7XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIERvY3VtZW50IHJlYWR5LlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC44XG5cdFx0ICovXG5cdFx0cmVhZHkoKSB7XG5cdFx0XHRhcHAuZXZlbnRzKCk7XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEV2ZW50cy5cblx0XHQgKlxuXHRcdCAqIEBzaW5jZSAxLjguOFxuXHRcdCAqL1xuXHRcdGV2ZW50cygpIHtcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogR2V0IGJsb2NrIGF0dHJpYnV0ZXMuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44Ljhcblx0XHQgKlxuXHRcdCAqIEByZXR1cm4ge09iamVjdH0gQmxvY2sgYXR0cmlidXRlcy5cblx0XHQgKi9cblx0XHRnZXRCbG9ja0F0dHJpYnV0ZXMoKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRjb250YWluZXJQYWRkaW5nOiB7XG5cdFx0XHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRcdFx0ZGVmYXVsdDogZGVmYXVsdHMuY29udGFpbmVyUGFkZGluZyxcblx0XHRcdFx0fSxcblx0XHRcdFx0Y29udGFpbmVyQm9yZGVyU3R5bGU6IHtcblx0XHRcdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdFx0XHRkZWZhdWx0OiBkZWZhdWx0cy5jb250YWluZXJCb3JkZXJTdHlsZSxcblx0XHRcdFx0fSxcblx0XHRcdFx0Y29udGFpbmVyQm9yZGVyV2lkdGg6IHtcblx0XHRcdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdFx0XHRkZWZhdWx0OiBkZWZhdWx0cy5jb250YWluZXJCb3JkZXJXaWR0aCxcblx0XHRcdFx0fSxcblx0XHRcdFx0Y29udGFpbmVyQm9yZGVyQ29sb3I6IHtcblx0XHRcdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdFx0XHRkZWZhdWx0OiBkZWZhdWx0cy5jb250YWluZXJCb3JkZXJDb2xvcixcblx0XHRcdFx0fSxcblx0XHRcdFx0Y29udGFpbmVyQm9yZGVyUmFkaXVzOiB7XG5cdFx0XHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRcdFx0ZGVmYXVsdDogZGVmYXVsdHMuY29udGFpbmVyQm9yZGVyUmFkaXVzLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRjb250YWluZXJTaGFkb3dTaXplOiB7XG5cdFx0XHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRcdFx0ZGVmYXVsdDogZGVmYXVsdHMuY29udGFpbmVyU2hhZG93U2l6ZSxcblx0XHRcdFx0fSxcblx0XHRcdH07XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEdldCBDb250YWluZXIgU3R5bGVzIHBhbmVsIEpTWCBjb2RlLlxuXHRcdCAqXG5cdFx0ICogQHNpbmNlIDEuOC44XG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgICAgICAgICAgICAgIEJsb2NrIHByb3BlcnRpZXMuXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IGhhbmRsZXJzICAgICAgICAgICBCbG9jayBoYW5kbGVycy5cblx0XHQgKiBAcGFyYW0ge09iamVjdH0gZm9ybVNlbGVjdG9yQ29tbW9uIENvbW1vbiBmb3JtIHNlbGVjdG9yIGZ1bmN0aW9ucy5cblx0XHQgKlxuXHRcdCAqIEByZXR1cm4ge09iamVjdH0gRmllbGQgc3R5bGVzIEpTWCBjb2RlLlxuXHRcdCAqL1xuXHRcdGdldENvbnRhaW5lclN0eWxlcyggcHJvcHMsIGhhbmRsZXJzLCBmb3JtU2VsZWN0b3JDb21tb24gKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbWF4LWxpbmVzLXBlci1mdW5jdGlvbiwgY29tcGxleGl0eVxuXHRcdFx0Y29uc3QgWyBpc05vdERpc2FibGVkLCBfc2V0SXNOb3REaXNhYmxlZCBdID0gdXNlU3RhdGUoIGlzUHJvICYmIGlzTGljZW5zZUFjdGl2ZSApOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzLCBuby11bnVzZWQtdmFyc1xuXHRcdFx0Y29uc3QgWyBpc1Byb0VuYWJsZWQsIF9zZXRJc1Byb0VuYWJsZWQgXSA9IHVzZVN0YXRlKCBpc1BybyApOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzLCBuby11bnVzZWQtdmFyc1xuXG5cdFx0XHRsZXQgY3NzQ2xhc3MgPSBmb3JtU2VsZWN0b3JDb21tb24uZ2V0UGFuZWxDbGFzcyggcHJvcHMgKTtcblxuXHRcdFx0aWYgKCAhIGlzTm90RGlzYWJsZWQgKSB7XG5cdFx0XHRcdGNzc0NsYXNzICs9ICcgd3Bmb3Jtcy1ndXRlbmJlcmctcGFuZWwtZGlzYWJsZWQnO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8UGFuZWxCb2R5IGNsYXNzTmFtZT17IGNzc0NsYXNzIH0gdGl0bGU9eyBzdHJpbmdzLmNvbnRhaW5lcl9zdHlsZXMgfT5cblx0XHRcdFx0XHQ8ZGl2IC8vIGVzbGludC1kaXNhYmxlLWxpbmUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zXG5cdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJ3cGZvcm1zLWd1dGVuYmVyZy1mb3JtLXNlbGVjdG9yLXBhbmVsLWJvZHlcIlxuXHRcdFx0XHRcdFx0b25DbGljaz17ICggZXZlbnQgKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmICggaXNOb3REaXNhYmxlZCApIHtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuXHRcdFx0XHRcdFx0XHRpZiAoICEgaXNQcm9FbmFibGVkICkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBmb3JtU2VsZWN0b3JDb21tb24uZWR1Y2F0aW9uLnNob3dQcm9Nb2RhbCggJ2NvbnRhaW5lcicsIHN0cmluZ3MuY29udGFpbmVyX3N0eWxlcyApO1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0Zm9ybVNlbGVjdG9yQ29tbW9uLmVkdWNhdGlvbi5zaG93TGljZW5zZU1vZGFsKCAnY29udGFpbmVyJywgc3RyaW5ncy5jb250YWluZXJfc3R5bGVzLCAnY29udGFpbmVyLXN0eWxlcycgKTtcblx0XHRcdFx0XHRcdH0gfVxuXHRcdFx0XHRcdFx0b25LZXlEb3duPXsgKCBldmVudCApID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKCBpc05vdERpc2FibGVkICkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG5cdFx0XHRcdFx0XHRcdGlmICggISBpc1Byb0VuYWJsZWQgKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGZvcm1TZWxlY3RvckNvbW1vbi5lZHVjYXRpb24uc2hvd1Byb01vZGFsKCAnY29udGFpbmVyJywgc3RyaW5ncy5jb250YWluZXJfc3R5bGVzICk7XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRmb3JtU2VsZWN0b3JDb21tb24uZWR1Y2F0aW9uLnNob3dMaWNlbnNlTW9kYWwoICdjb250YWluZXInLCBzdHJpbmdzLmNvbnRhaW5lcl9zdHlsZXMsICdjb250YWluZXItc3R5bGVzJyApO1xuXHRcdFx0XHRcdFx0fSB9XG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0PEZsZXggZ2FwPXsgNCB9IGFsaWduPVwiZmxleC1zdGFydFwiIGNsYXNzTmFtZT1cIndwZm9ybXMtZ3V0ZW5iZXJnLWZvcm0tc2VsZWN0b3ItZmxleFwiIGp1c3RpZnk9XCJzcGFjZS1iZXR3ZWVuXCI+XG5cdFx0XHRcdFx0XHRcdDxGbGV4QmxvY2s+XG5cdFx0XHRcdFx0XHRcdFx0PF9fZXhwZXJpbWVudGFsVW5pdENvbnRyb2xcblx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsPXsgc3RyaW5ncy5wYWRkaW5nIH1cblx0XHRcdFx0XHRcdFx0XHRcdHRhYkluZGV4PXsgaXNOb3REaXNhYmxlZCA/IDAgOiAtMSB9XG5cdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17IHByb3BzLmF0dHJpYnV0ZXMuY29udGFpbmVyUGFkZGluZyB9XG5cdFx0XHRcdFx0XHRcdFx0XHRtaW49eyAwIH1cblx0XHRcdFx0XHRcdFx0XHRcdGlzVW5pdFNlbGVjdFRhYmJhYmxlPXsgaXNOb3REaXNhYmxlZCB9XG5cdFx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17ICggdmFsdWUgKSA9PiBoYW5kbGVycy5zdHlsZUF0dHJDaGFuZ2UoICdjb250YWluZXJQYWRkaW5nJywgdmFsdWUgKSB9XG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0PC9GbGV4QmxvY2s+XG5cdFx0XHRcdFx0XHRcdDxGbGV4QmxvY2s+XG5cdFx0XHRcdFx0XHRcdFx0PFNlbGVjdENvbnRyb2xcblx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsPXsgc3RyaW5ncy5ib3JkZXJfc3R5bGUgfVxuXHRcdFx0XHRcdFx0XHRcdFx0dGFiSW5kZXg9eyBpc05vdERpc2FibGVkID8gMCA6IC0xIH1cblx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgcHJvcHMuYXR0cmlidXRlcy5jb250YWluZXJCb3JkZXJTdHlsZSB9XG5cdFx0XHRcdFx0XHRcdFx0XHRvcHRpb25zPXsgW1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR7IGxhYmVsOiBzdHJpbmdzLm5vbmUsIHZhbHVlOiAnbm9uZScgfSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0eyBsYWJlbDogc3RyaW5ncy5zb2xpZCwgdmFsdWU6ICdzb2xpZCcgfSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0eyBsYWJlbDogc3RyaW5ncy5kb3R0ZWQsIHZhbHVlOiAnZG90dGVkJyB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7IGxhYmVsOiBzdHJpbmdzLmRhc2hlZCwgdmFsdWU6ICdkYXNoZWQnIH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHsgbGFiZWw6IHN0cmluZ3MuZG91YmxlLCB2YWx1ZTogJ2RvdWJsZScgfSxcblx0XHRcdFx0XHRcdFx0XHRcdF0gfVxuXHRcdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U9eyAoIHZhbHVlICkgPT4gaGFuZGxlcnMuc3R5bGVBdHRyQ2hhbmdlKCAnY29udGFpbmVyQm9yZGVyU3R5bGUnLCB2YWx1ZSApIH1cblx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHQ8L0ZsZXhCbG9jaz5cblx0XHRcdFx0XHRcdDwvRmxleD5cblx0XHRcdFx0XHRcdDxGbGV4IGdhcD17IDQgfSBhbGlnbj1cImZsZXgtc3RhcnRcIiBjbGFzc05hbWU9XCJ3cGZvcm1zLWd1dGVuYmVyZy1mb3JtLXNlbGVjdG9yLWZsZXhcIiBqdXN0aWZ5PVwic3BhY2UtYmV0d2VlblwiPlxuXHRcdFx0XHRcdFx0XHQ8RmxleEJsb2NrPlxuXHRcdFx0XHRcdFx0XHRcdDxfX2V4cGVyaW1lbnRhbFVuaXRDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IHN0cmluZ3MuYm9yZGVyX3dpZHRoIH1cblx0XHRcdFx0XHRcdFx0XHRcdHRhYkluZGV4PXsgaXNOb3REaXNhYmxlZCA/IDAgOiAtMSB9XG5cdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17IHByb3BzLmF0dHJpYnV0ZXMuY29udGFpbmVyQm9yZGVyU3R5bGUgPT09ICdub25lJyA/ICcnIDogcHJvcHMuYXR0cmlidXRlcy5jb250YWluZXJCb3JkZXJXaWR0aCB9XG5cdFx0XHRcdFx0XHRcdFx0XHRtaW49eyAwIH1cblx0XHRcdFx0XHRcdFx0XHRcdGRpc2FibGVkPXsgcHJvcHMuYXR0cmlidXRlcy5jb250YWluZXJCb3JkZXJTdHlsZSA9PT0gJ25vbmUnIH1cblx0XHRcdFx0XHRcdFx0XHRcdGlzVW5pdFNlbGVjdFRhYmJhYmxlPXsgaXNOb3REaXNhYmxlZCB9XG5cdFx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17ICggdmFsdWUgKSA9PiBoYW5kbGVycy5zdHlsZUF0dHJDaGFuZ2UoICdjb250YWluZXJCb3JkZXJXaWR0aCcsIHZhbHVlICkgfVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdDwvRmxleEJsb2NrPlxuXHRcdFx0XHRcdFx0XHQ8RmxleEJsb2NrPlxuXHRcdFx0XHRcdFx0XHRcdDxfX2V4cGVyaW1lbnRhbFVuaXRDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IHN0cmluZ3MuYm9yZGVyX3JhZGl1cyB9XG5cdFx0XHRcdFx0XHRcdFx0XHR0YWJJbmRleD17IGlzTm90RGlzYWJsZWQgPyAwIDogLTEgfVxuXHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU9eyBwcm9wcy5hdHRyaWJ1dGVzLmNvbnRhaW5lckJvcmRlclJhZGl1cyB9XG5cdFx0XHRcdFx0XHRcdFx0XHRtaW49eyAwIH1cblx0XHRcdFx0XHRcdFx0XHRcdGlzVW5pdFNlbGVjdFRhYmJhYmxlPXsgaXNOb3REaXNhYmxlZCB9XG5cdFx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17ICggdmFsdWUgKSA9PiBoYW5kbGVycy5zdHlsZUF0dHJDaGFuZ2UoICdjb250YWluZXJCb3JkZXJSYWRpdXMnLCB2YWx1ZSApIH1cblx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHQ8L0ZsZXhCbG9jaz5cblx0XHRcdFx0XHRcdDwvRmxleD5cblx0XHRcdFx0XHRcdDxGbGV4IGdhcD17IDQgfSBhbGlnbj1cImZsZXgtc3RhcnRcIiBjbGFzc05hbWU9XCJ3cGZvcm1zLWd1dGVuYmVyZy1mb3JtLXNlbGVjdG9yLWZsZXhcIiBqdXN0aWZ5PVwic3BhY2UtYmV0d2VlblwiPlxuXHRcdFx0XHRcdFx0XHQ8RmxleEJsb2NrPlxuXHRcdFx0XHRcdFx0XHRcdDxTZWxlY3RDb250cm9sXG5cdFx0XHRcdFx0XHRcdFx0XHRsYWJlbD17IHN0cmluZ3Muc2hhZG93X3NpemUgfVxuXHRcdFx0XHRcdFx0XHRcdFx0dGFiSW5kZXg9eyBpc05vdERpc2FibGVkID8gMCA6IC0xIH1cblx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlPXsgcHJvcHMuYXR0cmlidXRlcy5jb250YWluZXJTaGFkb3dTaXplIH1cblx0XHRcdFx0XHRcdFx0XHRcdG9wdGlvbnM9eyBbXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHsgbGFiZWw6IHN0cmluZ3Mubm9uZSwgdmFsdWU6ICdub25lJyB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7IGxhYmVsOiBzdHJpbmdzLnNtYWxsLCB2YWx1ZTogJ3NtYWxsJyB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7IGxhYmVsOiBzdHJpbmdzLm1lZGl1bSwgdmFsdWU6ICdtZWRpdW0nIH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHsgbGFiZWw6IHN0cmluZ3MubGFyZ2UsIHZhbHVlOiAnbGFyZ2UnIH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRdIH1cblx0XHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgKCB2YWx1ZSApID0+IGhhbmRsZXJzLnN0eWxlQXR0ckNoYW5nZSggJ2NvbnRhaW5lclNoYWRvd1NpemUnLCB2YWx1ZSApIH1cblx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHQ8L0ZsZXhCbG9jaz5cblx0XHRcdFx0XHRcdDwvRmxleD5cblx0XHRcdFx0XHRcdDxGbGV4IGdhcD17IDQgfSBhbGlnbj1cImZsZXgtc3RhcnRcIiBjbGFzc05hbWU9XCJ3cGZvcm1zLWd1dGVuYmVyZy1mb3JtLXNlbGVjdG9yLWZsZXhcIiBqdXN0aWZ5PVwic3BhY2UtYmV0d2VlblwiPlxuXHRcdFx0XHRcdFx0XHQ8RmxleEJsb2NrPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwid3Bmb3Jtcy1ndXRlbmJlcmctZm9ybS1zZWxlY3Rvci1jb250cm9sLWxhYmVsXCI+eyBzdHJpbmdzLmNvbG9ycyB9PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PFBhbmVsQ29sb3JTZXR0aW5nc1xuXHRcdFx0XHRcdFx0XHRcdFx0X19leHBlcmltZW50YWxJc1JlbmRlcmVkSW5TaWRlYmFyXG5cdFx0XHRcdFx0XHRcdFx0XHRlbmFibGVBbHBoYVxuXHRcdFx0XHRcdFx0XHRcdFx0c2hvd1RpdGxlPXsgZmFsc2UgfVxuXHRcdFx0XHRcdFx0XHRcdFx0dGFiSW5kZXg9eyBpc05vdERpc2FibGVkID8gMCA6IC0xIH1cblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT17IHByb3BzLmF0dHJpYnV0ZXMuY29udGFpbmVyQm9yZGVyU3R5bGUgPT09ICdub25lJyA/ICd3cGZvcm1zLWd1dGVuYmVyZy1mb3JtLXNlbGVjdG9yLWNvbG9yLXBhbmVsIHdwZm9ybXMtZ3V0ZW5iZXJnLWZvcm0tc2VsZWN0b3ItY29sb3ItcGFuZWwtZGlzYWJsZWQnIDogJ3dwZm9ybXMtZ3V0ZW5iZXJnLWZvcm0tc2VsZWN0b3ItY29sb3ItcGFuZWwnIH1cblx0XHRcdFx0XHRcdFx0XHRcdGNvbG9yU2V0dGluZ3M9eyBbXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5jb250YWluZXJCb3JkZXJDb2xvcixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZTogKCB2YWx1ZSApID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggISBpc05vdERpc2FibGVkICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRoYW5kbGVycy5zdHlsZUF0dHJDaGFuZ2UoICdjb250YWluZXJCb3JkZXJDb2xvcicsIHZhbHVlICk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsYWJlbDogc3RyaW5ncy5ib3JkZXJfY29sb3IsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRdIH1cblx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHQ8L0ZsZXhCbG9jaz5cblx0XHRcdFx0XHRcdDwvRmxleD5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9QYW5lbEJvZHk+XG5cdFx0XHQpO1xuXHRcdH0sXG5cdH07XG5cblx0cmV0dXJuIGFwcDtcbn0gKSggalF1ZXJ5ICk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FPaUIsVUFBRUMsQ0FBQyxFQUFNO0VBQ3pCO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7RUFDQyxJQUFBQyxJQUFBLEdBQStCQyxFQUFFLENBQUNDLFdBQVcsSUFBSUQsRUFBRSxDQUFDRSxNQUFNO0lBQWxEQyxrQkFBa0IsR0FBQUosSUFBQSxDQUFsQkksa0JBQWtC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
[4393] Fix | Delete
},{}],19:[function(require,module,exports){
[4394] Fix | Delete
"use strict";
[4395] Fix | Delete
[4396] Fix | Delete
Object.defineProperty(exports, "__esModule", {
[4397] Fix | Delete
value: true
[4398] Fix | Delete
});
[4399] Fix | Delete
exports.default = void 0;
[4400] Fix | Delete
/* global wpforms_education, WPFormsEducation */
[4401] Fix | Delete
/**
[4402] Fix | Delete
* WPForms Education Modal module.
[4403] Fix | Delete
*
[4404] Fix | Delete
* @since 1.8.8
[4405] Fix | Delete
*/
[4406] Fix | Delete
var _default = exports.default = function ($) {
[4407] Fix | Delete
/**
[4408] Fix | Delete
* Public functions and properties.
[4409] Fix | Delete
*
[4410] Fix | Delete
* @since 1.8.8
[4411] Fix | Delete
*
[4412] Fix | Delete
* @type {Object}
[4413] Fix | Delete
*/
[4414] Fix | Delete
var app = {
[4415] Fix | Delete
/**
[4416] Fix | Delete
* Open educational popup for users with no Pro license.
[4417] Fix | Delete
*
[4418] Fix | Delete
* @since 1.8.8
[4419] Fix | Delete
*
[4420] Fix | Delete
* @param {string} panel Panel slug.
[4421] Fix | Delete
* @param {string} feature Feature name.
[4422] Fix | Delete
*/
[4423] Fix | Delete
showProModal: function showProModal(panel, feature) {
[4424] Fix | Delete
var type = 'pro';
[4425] Fix | Delete
var message = wpforms_education.upgrade[type].message_plural.replace(/%name%/g, feature);
[4426] Fix | Delete
var utmContent = {
[4427] Fix | Delete
container: 'Upgrade to Pro - Container Styles',
[4428] Fix | Delete
background: 'Upgrade to Pro - Background Styles',
[4429] Fix | Delete
themes: 'Upgrade to Pro - Themes'
[4430] Fix | Delete
};
[4431] Fix | Delete
$.alert({
[4432] Fix | Delete
backgroundDismiss: true,
[4433] Fix | Delete
title: feature + ' ' + wpforms_education.upgrade[type].title_plural,
[4434] Fix | Delete
icon: 'fa fa-lock',
[4435] Fix | Delete
content: message,
[4436] Fix | Delete
boxWidth: '550px',
[4437] Fix | Delete
theme: 'modern,wpforms-education',
[4438] Fix | Delete
closeIcon: true,
[4439] Fix | Delete
onOpenBefore: function onOpenBefore() {
[4440] Fix | Delete
// eslint-disable-line object-shorthand
[4441] Fix | Delete
this.$btnc.after('<div class="discount-note">' + wpforms_education.upgrade_bonus + '</div>');
[4442] Fix | Delete
this.$btnc.after(wpforms_education.upgrade[type].doc.replace(/%25name%25/g, 'AP - ' + feature));
[4443] Fix | Delete
this.$body.find('.jconfirm-content').addClass('lite-upgrade');
[4444] Fix | Delete
},
[4445] Fix | Delete
buttons: {
[4446] Fix | Delete
confirm: {
[4447] Fix | Delete
text: wpforms_education.upgrade[type].button,
[4448] Fix | Delete
btnClass: 'btn-confirm',
[4449] Fix | Delete
keys: ['enter'],
[4450] Fix | Delete
action: function action() {
[4451] Fix | Delete
window.open(WPFormsEducation.core.getUpgradeURL(utmContent[panel], type), '_blank');
[4452] Fix | Delete
WPFormsEducation.core.upgradeModalThankYou(type);
[4453] Fix | Delete
}
[4454] Fix | Delete
}
[4455] Fix | Delete
}
[4456] Fix | Delete
});
[4457] Fix | Delete
},
[4458] Fix | Delete
/**
[4459] Fix | Delete
* Open license modal.
[4460] Fix | Delete
*
[4461] Fix | Delete
* @since 1.8.8
[4462] Fix | Delete
*
[4463] Fix | Delete
* @param {string} feature Feature name.
[4464] Fix | Delete
* @param {string} fieldName Field name.
[4465] Fix | Delete
* @param {string} utmContent UTM content.
[4466] Fix | Delete
*/
[4467] Fix | Delete
showLicenseModal: function showLicenseModal(feature, fieldName, utmContent) {
[4468] Fix | Delete
WPFormsEducation.proCore.licenseModal(feature, fieldName, utmContent);
[4469] Fix | Delete
}
[4470] Fix | Delete
};
[4471] Fix | Delete
return app;
[4472] Fix | Delete
}(jQuery);
[4473] Fix | Delete
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwiJCIsImFwcCIsInNob3dQcm9Nb2RhbCIsInBhbmVsIiwiZmVhdHVyZSIsInR5cGUiLCJtZXNzYWdlIiwid3Bmb3Jtc19lZHVjYXRpb24iLCJ1cGdyYWRlIiwibWVzc2FnZV9wbHVyYWwiLCJyZXBsYWNlIiwidXRtQ29udGVudCIsImNvbnRhaW5lciIsImJhY2tncm91bmQiLCJ0aGVtZXMiLCJhbGVydCIsImJhY2tncm91bmREaXNtaXNzIiwidGl0bGUiLCJ0aXRsZV9wbHVyYWwiLCJpY29uIiwiY29udGVudCIsImJveFdpZHRoIiwidGhlbWUiLCJjbG9zZUljb24iLCJvbk9wZW5CZWZvcmUiLCIkYnRuYyIsImFmdGVyIiwidXBncmFkZV9ib251cyIsImRvYyIsIiRib2R5IiwiZmluZCIsImFkZENsYXNzIiwiYnV0dG9ucyIsImNvbmZpcm0iLCJ0ZXh0IiwiYnV0dG9uIiwiYnRuQ2xhc3MiLCJrZXlzIiwiYWN0aW9uIiwid2luZG93Iiwib3BlbiIsIldQRm9ybXNFZHVjYXRpb24iLCJjb3JlIiwiZ2V0VXBncmFkZVVSTCIsInVwZ3JhZGVNb2RhbFRoYW5rWW91Iiwic2hvd0xpY2Vuc2VNb2RhbCIsImZpZWxkTmFtZSIsInByb0NvcmUiLCJsaWNlbnNlTW9kYWwiLCJqUXVlcnkiXSwic291cmNlcyI6WyJlZHVjYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIHdwZm9ybXNfZWR1Y2F0aW9uLCBXUEZvcm1zRWR1Y2F0aW9uICovXG5cbi8qKlxuICogV1BGb3JtcyBFZHVjYXRpb24gTW9kYWwgbW9kdWxlLlxuICpcbiAqIEBzaW5jZSAxLjguOFxuICovXG5leHBvcnQgZGVmYXVsdCAoICggJCApID0+IHtcblx0LyoqXG5cdCAqIFB1YmxpYyBmdW5jdGlvbnMgYW5kIHByb3BlcnRpZXMuXG5cdCAqXG5cdCAqIEBzaW5jZSAxLjguOFxuXHQgKlxuXHQgKiBAdHlwZSB7T2JqZWN0fVxuXHQgKi9cblx0Y29uc3QgYXBwID0ge1xuXHRcdC8qKlxuXHRcdCAqIE9wZW4gZWR1Y2F0aW9uYWwgcG9wdXAgZm9yIHVzZXJzIHdpdGggbm8gUHJvIGxpY2Vuc2UuXG5cdFx0ICpcblx0XHQgKiBAc2luY2UgMS44Ljhcblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7c3RyaW5nfSBwYW5lbCAgIFBhbmVsIHNsdWcuXG5cdFx0ICogQHBhcmFtIHtzdHJpbmd9IGZlYXR1cmUgRmVhdHVyZSBuYW1lLlxuXHRcdCAqL1xuXHRcdHNob3dQcm9Nb2RhbCggcGFuZWwsIGZlYXR1cmUgKSB7XG5cdFx0XHRjb25zdCB0eXBlID0gJ3Bybyc7XG5cdFx0XHRjb25zdCBtZXNzYWdlID0gd3Bmb3Jtc19lZHVjYXRpb24udXBncmFkZVsgdHlwZSBdLm1lc3NhZ2VfcGx1cmFsLnJlcGxhY2UoIC8lbmFtZSUvZywgZmVhdHVyZSApO1xuXHRcdFx0Y29uc3QgdXRtQ29udGVudCA9IHtcblx0XHRcdFx0Y29udGFpbmVyOiAnVXBncmFkZSB0byBQcm8gLSBDb250YWluZXIgU3R5bGVzJyxcblx0XHRcdFx0YmFja2dyb3VuZDogJ1VwZ3JhZGUgdG8gUHJvIC0gQmFja2dyb3VuZCBTdHlsZXMnLFxuXHRcdFx0XHR0aGVtZXM6ICdVcGdyYWRlIHRvIFBybyAtIFRoZW1lcycsXG5cdFx0XHR9O1xuXG5cdFx0XHQkLmFsZXJ0KCB7XG5cdFx0XHRcdGJhY2tncm91bmREaXNtaXNzOiB0cnVlLFxuXHRcdFx0XHR0aXRsZTogZmVhdHVyZSArICcgJyArIHdwZm9ybXNfZWR1Y2F0aW9uLnVwZ3JhZGVbIHR5cGUgXS50aXRsZV9wbHVyYWwsXG5cdFx0XHRcdGljb246ICdmYSBmYS1sb2NrJyxcblx0XHRcdFx0Y29udGVudDogbWVzc2FnZSxcblx0XHRcdFx0Ym94V2lkdGg6ICc1NTBweCcsXG5cdFx0XHRcdHRoZW1lOiAnbW9kZXJuLHdwZm9ybXMtZWR1Y2F0aW9uJyxcblx0XHRcdFx0Y2xvc2VJY29uOiB0cnVlLFxuXHRcdFx0XHRvbk9wZW5CZWZvcmU6IGZ1bmN0aW9uKCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG9iamVjdC1zaG9ydGhhbmRcblx0XHRcdFx0XHR0aGlzLiRidG5jLmFmdGVyKCAnPGRpdiBjbGFzcz1cImRpc2NvdW50LW5vdGVcIj4nICsgd3Bmb3Jtc19lZHVjYXRpb24udXBncmFkZV9ib251cyArICc8L2Rpdj4nICk7XG5cdFx0XHRcdFx0dGhpcy4kYnRuYy5hZnRlciggd3Bmb3Jtc19lZHVjYXRpb24udXBncmFkZVsgdHlwZSBdLmRvYy5yZXBsYWNlKCAvJTI1bmFtZSUyNS9nLCAnQVAgLSAnICsgZmVhdHVyZSApICk7XG5cdFx0XHRcdFx0dGhpcy4kYm9keS5maW5kKCAnLmpjb25maXJtLWNvbnRlbnQnICkuYWRkQ2xhc3MoICdsaXRlLXVwZ3JhZGUnICk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGJ1dHRvbnM6IHtcblx0XHRcdFx0XHRjb25maXJtOiB7XG5cdFx0XHRcdFx0XHR0ZXh0OiB3cGZvcm1zX2VkdWNhdGlvbi51cGdyYWRlWyB0eXBlIF0uYnV0dG9uLFxuXHRcdFx0XHRcdFx0YnRuQ2xhc3M6ICdidG4tY29uZmlybScsXG5cdFx0XHRcdFx0XHRrZXlzOiBbICdlbnRlcicgXSxcblx0XHRcdFx0XHRcdGFjdGlvbjogKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHR3aW5kb3cub3BlbiggV1BGb3Jtc0VkdWNhdGlvbi5jb3JlLmdldFVwZ3JhZGVVUkwoIHV0bUNvbnRlbnRbIHBhbmVsIF0sIHR5cGUgKSwgJ19ibGFuaycgKTtcblx0XHRcdFx0XHRcdFx0V1BGb3Jtc0VkdWNhdGlvbi5jb3JlLnVwZ3JhZGVNb2RhbFRoYW5rWW91KCB0eXBlICk7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdH0sXG5cdFx0XHR9ICk7XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIE9wZW4gbGljZW5zZSBtb2RhbC5cblx0XHQgKlxuXHRcdCAqIEBzaW5jZSAxLjguOFxuXHRcdCAqXG5cdFx0ICogQHBhcmFtIHtzdHJpbmd9IGZlYXR1cmUgICAgRmVhdHVyZSBuYW1lLlxuXHRcdCAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZE5hbWUgIEZpZWxkIG5hbWUuXG5cdFx0ICogQHBhcmFtIHtzdHJpbmd9IHV0bUNvbnRlbnQgVVRNIGNvbnRlbnQuXG5cdFx0ICovXG5cdFx0c2hvd0xpY2Vuc2VNb2RhbCggZmVhdHVyZSwgZmllbGROYW1lLCB1dG1Db250ZW50ICkge1xuXHRcdFx0V1BGb3Jtc0VkdWNhdGlvbi5wcm9Db3JlLmxpY2Vuc2VNb2RhbCggZmVhdHVyZSwgZmllbGROYW1lLCB1dG1Db250ZW50ICk7XG5cdFx0fSxcblx0fTtcblxuXHRyZXR1cm4gYXBwO1xufSApKCBqUXVlcnkgKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FLaUIsVUFBRUMsQ0FBQyxFQUFNO0VBQ3pCO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0MsSUFBTUMsR0FBRyxHQUFHO0lBQ1g7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNFQyxZQUFZLFdBQUFBLGFBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFHO01BQzlCLElBQU1DLElBQUksR0FBRyxLQUFLO01BQ2xCLElBQU1DLE9BQU8sR0FBR0MsaUJBQWlCLENBQUNDLE9BQU8sQ0FBRUgsSUFBSSxDQUFFLENBQUNJLGNBQWMsQ0FBQ0MsT0FBTyxDQUFFLFNBQVMsRUFBRU4sT0FBUSxDQUFDO01BQzlGLElBQU1PLFVBQVUsR0FBRztRQUNsQkMsU0FBUyxFQUFFLG1DQUFtQztRQUM5Q0MsVUFBVSxFQUFFLG9DQUFvQztRQUNoREMsTUFBTSxFQUFFO01BQ1QsQ0FBQztNQUVEZCxDQUFDLENBQUNlLEtBQUssQ0FBRTtRQUNSQyxpQkFBaUIsRUFBRSxJQUFJO1FBQ3ZCQyxLQUFLLEVBQUViLE9BQU8sR0FBRyxHQUFHLEdBQUdHLGlCQUFpQixDQUFDQyxPQUFPLENBQUVILElBQUksQ0FBRSxDQUFDYSxZQUFZO1FBQ3JFQyxJQUFJLEVBQUUsWUFBWTtRQUNsQkMsT0FBTyxFQUFFZCxPQUFPO1FBQ2hCZSxRQUFRLEVBQUUsT0FBTztRQUNqQkMsS0FBSyxFQUFFLDBCQUEwQjtRQUNqQ0MsU0FBUyxFQUFFLElBQUk7UUFDZkMsWUFBWSxFQUFFLFNBQUFBLGFBQUEsRUFBVztVQUFFO1VBQzFCLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxLQUFLLENBQUUsNkJBQTZCLEdBQUduQixpQkFBaUIsQ0FBQ29CLGFBQWEsR0FBRyxRQUFTLENBQUM7VUFDOUYsSUFBSSxDQUFDRixLQUFLLENBQUNDLEtBQUssQ0FBRW5CLGlCQUFpQixDQUFDQyxPQUFPLENBQUVILElBQUksQ0FBRSxDQUFDdUIsR0FBRyxDQUFDbEIsT0FBTyxDQUFFLGFBQWEsRUFBRSxPQUFPLEdBQUdOLE9BQVEsQ0FBRSxDQUFDO1VBQ3JHLElBQUksQ0FBQ3lCLEtBQUssQ0FBQ0MsSUFBSSxDQUFFLG1CQUFvQixDQUFDLENBQUNDLFFBQVEsQ0FBRSxjQUFlLENBQUM7UUFDbEUsQ0FBQztRQUNEQyxPQUFPLEVBQUU7VUFDUkMsT0FBTyxFQUFFO1lBQ1JDLElBQUksRUFBRTNCLGlCQUFpQixDQUFDQyxPQUFPLENBQUVILElBQUksQ0FBRSxDQUFDOEIsTUFBTTtZQUM5Q0MsUUFBUSxFQUFFLGFBQWE7WUFDdkJDLElBQUksRUFBRSxDQUFFLE9BQU8sQ0FBRTtZQUNqQkMsTUFBTSxFQUFFLFNBQUFBLE9BQUEsRUFBTTtjQUNiQyxNQUFNLENBQUNDLElBQUksQ0FBRUMsZ0JBQWdCLENBQUNDLElBQUksQ0FBQ0MsYUFBYSxDQUFFaEMsVUFBVSxDQUFFUixLQUFLLENBQUUsRUFBRUUsSUFBSyxDQUFDLEVBQUUsUUFBUyxDQUFDO2NBQ3pGb0MsZ0JBQWdCLENBQUNDLElBQUksQ0FBQ0Usb0JBQW9CLENBQUV2QyxJQUFLLENBQUM7WUFDbkQ7VUFDRDtRQUNEO01BQ0QsQ0FBRSxDQUFDO0lBQ0osQ0FBQztJQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNFd0MsZ0JBQWdCLFdBQUFBLGlCQUFFekMsT0FBTyxFQUFFMEMsU0FBUyxFQUFFbkMsVUFBVSxFQUFHO01BQ2xEOEIsZ0JBQWdCLENBQUNNLE9BQU8sQ0FBQ0MsWUFBWSxDQUFFNUMsT0FBTyxFQUFFMEMsU0FBUyxFQUFFbkMsVUFBVyxDQUFDO0lBQ3hFO0VBQ0QsQ0FBQztFQUVELE9BQU9WLEdBQUc7QUFDWCxDQUFDLENBQUlnRCxNQUFPLENBQUMifQ==
[4474] Fix | Delete
},{}],20:[function(require,module,exports){
[4475] Fix | Delete
"use strict";
[4476] Fix | Delete
[4477] Fix | Delete
Object.defineProperty(exports, "__esModule", {
[4478] Fix | Delete
value: true
[4479] Fix | Delete
});
[4480] Fix | Delete
exports.default = void 0;
[4481] Fix | Delete
/* global wpforms_gutenberg_form_selector */
[4482] Fix | Delete
/* jshint es3: false, esversion: 6 */
[4483] Fix | Delete
/**
[4484] Fix | Delete
* @param strings.field_styles
[4485] Fix | Delete
* @param strings.lead_forms_panel_notice_head
[4486] Fix | Delete
* @param strings.lead_forms_panel_notice_text
[4487] Fix | Delete
* @param strings.learn_more
[4488] Fix | Delete
* @param strings.use_modern_notice_head
[4489] Fix | Delete
* @param strings.use_modern_notice_link
[4490] Fix | Delete
* @param strings.use_modern_notice_text
[4491] Fix | Delete
*/
[4492] Fix | Delete
/**
[4493] Fix | Delete
* Gutenberg editor block.
[4494] Fix | Delete
*
[4495] Fix | Delete
* Field styles panel module.
[4496] Fix | Delete
*
[4497] Fix | Delete
* @since 1.8.8
[4498] Fix | Delete
*/
[4499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function