').append($close);\n }\n }\n $body.on('click', '.icon-picker-close, .icon-picker-overlay', function (e) {\n e.preventDefault();\n base.closePicker($brick, jquery__WEBPACK_IMPORTED_MODULE_0___default()(base.iconSet), base.settings.mode);\n }).on('mouseenter mouseleave', '.icon-picker-close', function (e) {\n if (e.type === 'mouseenter') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).addClass(close);\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).removeClass(close);\n }\n });\n }\n }, {\n key: \"makeLaunchers\",\n value: function makeLaunchers($brick) {\n var base = this;\n var dataIconSets = $brick.data('iconsets');\n var iconSet;\n if (typeof dataIconSets === 'undefined') {\n dataIconSets = base.settings.iconSets;\n }\n for (iconSet in dataIconSets) {\n if (dataIconSets.hasOwnProperty(iconSet)) {\n $brick.append('
' + dataIconSets[iconSet] + ' ');\n }\n }\n $brick.find('.launch-icons').on('click', function (e) {\n e.preventDefault();\n var $self = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var theseIcons = $self.data('icons');\n base.iconSetName = theseIcons;\n base.iconSet = '.' + theseIcons + '-set';\n\n // Initialize picker\n base.iconPick($brick);\n\n // Show icon picker\n base.showPicker($brick, jquery__WEBPACK_IMPORTED_MODULE_0___default()(base.iconSet), base.settings.mode);\n });\n }\n }, {\n key: \"iconPick\",\n value: function iconPick($brick) {\n var base = this;\n var highlight = 'icon-highlight ' + base.settings.classes.highlight;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(base.iconSet).on('click', 'li', function (e) {\n e.preventDefault();\n var $icon = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var icon = $icon.data(base.settings.save);\n\n // Mark as selected\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-selected').removeClass('icon-selected');\n $icon.addClass('icon-selected');\n if (base.$field.data('format') === 'short') {\n icon = icon.slice(6);\n }\n\n // Save icon value to field\n base.$field.val(icon);\n\n // Close icon picker\n if (base.settings.closeOnPick) {\n base.closePicker($brick, $icon.closest(base.iconSet), base.settings.mode);\n }\n\n // Set preview\n base.setPreview($icon.data('class'));\n\n // Broadcast event passing the selected icon.\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').trigger('iconselected.queryloop', icon);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(base.iconSet).on('mouseenter mouseleave', 'li', function (e) {\n if (e.type === 'mouseenter') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).addClass(highlight);\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).removeClass(highlight);\n }\n });\n }\n }, {\n key: \"showPicker\",\n value: function showPicker($brick, $icons, mode) {\n if (mode === 'inline') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-set').removeClass('ip-inline-open');\n $brick.find($icons).toggleClass('ip-inline-open');\n } else if (mode === 'dialog') {\n $brick.find('.icon-picker-close').addClass('make-visible');\n $brick.find('.icon-picker-overlay').addClass('make-visible');\n $icons.addClass('dialog-open');\n }\n $icons.find('.icon-selected').removeClass('icon-selected');\n var selectedIcon = this.$field.val().replace(' ', '.');\n if (selectedIcon !== '') {\n if (this.settings.save === 'class') {\n $icons.find('.' + selectedIcon).addClass('icon-selected');\n } else {\n $icons.find('[data-code=\"' + selectedIcon + '\"]').addClass('icon-selected');\n }\n }\n // Broadcast event when the picker is shown passing the picker mode.\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').trigger('iconpickershow.queryloop', mode);\n }\n }, {\n key: \"closePicker\",\n value: function closePicker($brick, $icons, mode) {\n // Remove event so they don't fire from a different picker\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.iconSet).off('click', 'li');\n if (mode === 'inline') {\n $brick.find($icons).removeClass('ip-inline-open');\n } else if (mode === 'dialog') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-picker-close, .icon-picker-overlay').removeClass('make-visible');\n }\n // Broadcast event when the picker is closed passing the picker mode.\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').trigger('iconpickerclose.queryloop', mode);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-set').removeClass('dialog-open');\n }\n }, {\n key: \"setPreview\",\n value: function setPreview(preview) {\n var $preview = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.element).find('.icon-preview');\n $preview.addClass('icon-preview-on').find('i').removeClass().addClass(this.iconSetName).addClass(preview);\n $preview.find('a').show();\n }\n }]);\n}();\n/* Grav */\n// extend $ with 3rd party QL Icon Picker\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().fn).qlIconPicker = function (options) {\n this.each(function () {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default().data(this, 'plugin_qlIconPicker')) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default().data(this, 'plugin_qlIconPicker', new QL_Icon_Picker(this, options));\n }\n });\n return this;\n};\nvar IconpickerField = /*#__PURE__*/function () {\n function IconpickerField(options) {\n var _this = this;\n _classCallCheck(this, IconpickerField);\n this.items = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n this.options = Object.assign({}, this.defaults, options);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-iconpicker]').each(function (index, element) {\n return _this.addItem(element);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', this._onAddedNodes.bind(this));\n }\n return _createClass(IconpickerField, [{\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target /* , record, instance */) {\n var _this2 = this;\n var fields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-grav-iconpicker]');\n if (!fields.length) {\n return;\n }\n fields.each(function (index, field) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n if (!~_this2.items.index(field)) {\n _this2.addItem(field);\n }\n });\n }\n }, {\n key: \"addItem\",\n value: function addItem(element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n this.items = this.items.add(element);\n element.find('.icon-picker').qlIconPicker({\n 'save': 'class'\n });\n\n // hack to remove extra icon sets that are just copies\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-set:not(:first)').remove();\n }\n }]);\n}();\n\nvar Instance = new IconpickerField();\n\n// Fix to close the dialog when clicking outside\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var match = '.icon-set.dialog-open, .launch-icons[data-icons]';\n if (!target.is(match) && !target.closest(match).length) {\n var dialogs = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-set.dialog-open');\n\n // skip if there's no dialog open\n if (dialogs.length) {\n dialogs.each(function (index, dialog) {\n var picker = jquery__WEBPACK_IMPORTED_MODULE_0___default()(dialog).siblings('.icon-picker');\n var data = picker.data('plugin_qlIconPicker');\n data.closePicker(picker, jquery__WEBPACK_IMPORTED_MODULE_0___default()(data.iconSet), data.settings.mode);\n });\n }\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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SUFBSWdHLE9BQU8sQ0FBQ2pELE1BQU0sRUFBRTtNQUNoQmlELE9BQU8sQ0FBQ3RCLElBQUksQ0FBQyxVQUFDTSxLQUFLLEVBQUVpQixNQUFNLEVBQUs7UUFDNUIsSUFBTUMsTUFBTSxHQUFHbEcsNkNBQUMsQ0FBQ2lHLE1BQU0sQ0FBQyxDQUFDRSxRQUFRLENBQUMsY0FBYyxDQUFDO1FBQ2pELElBQU1qRixJQUFJLEdBQUdnRixNQUFNLENBQUNoRixJQUFJLENBQUMscUJBQXFCLENBQUM7UUFDL0NBLElBQUksQ0FBQzhCLFdBQVcsQ0FBQ2tELE1BQU0sRUFBRWxHLDZDQUFDLENBQUNrQixJQUFJLENBQUNaLE9BQU8sQ0FBQyxFQUFFWSxJQUFJLENBQUNULFFBQVEsQ0FBQ2tDLElBQUksQ0FBQztNQUNqRSxDQUFDLENBQUM7SUFDTjtFQUNKO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9mb3Jtcy9maWVsZHMvaWNvbnBpY2tlci5qcz81ZDQxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbi8qIEljb24gUGlja2VyIGJ5IFF1ZXJ5TG9vcFxuICogQXV0aG9yOiBAZWxpb3JpdmVyb1xuICogVVJMOiBodHRwOi8vcXVlcnlsb29wLmNvbS9cbiAqIExpY2Vuc2U6IEdQTHYyXG4gKi9cblxudmFyIGRlZmF1bHRzID0ge1xuICAgICdtb2RlJzogJ2RpYWxvZycsIC8vIHNob3cgb3ZlcmxheSAnZGlhbG9nJyBwYW5lbCBvciBzbGlkZSBkb3duICdpbmxpbmUnIHBhbmVsXG4gICAgJ2Nsb3NlT25QaWNrJzogdHJ1ZSwgLy8gd2hldGhlciB0byBjbG9zZSBwYW5lbCBhZnRlciBwaWNraW5nIG9yICdubydcbiAgICAnc2F2ZSc6ICdjbGFzcycsIC8vIHNhdmUgaWNvbiAnY2xhc3MnIG9yICdjb2RlJ1xuICAgICdzaXplJzogJycsXG4gICAgJ2NsYXNzZXMnOiB7XG4gICAgICAgICdsYXVuY2hlcic6ICcnLCAvLyBleHRyYSBjbGFzc2VzIGZvciBsYXVuY2hlciBidXR0b25zXG4gICAgICAgICdjbGVhcic6ICdyZW1vdmUtdGltZXMnLCAvLyBleHRyYSBjbGFzc2VzIGZvciBidXR0b24gdGhhdCByZW1vdmVzIHByZXZpZXcgYW5kIGNsZWFycyBmaWVsZFxuICAgICAgICAnaGlnaGxpZ2h0JzogJycsIC8vIGV4dHJhIGNsYXNzZXMgd2hlbiBoaWdobGlnaHRpbmcgYW4gaWNvblxuICAgICAgICAnY2xvc2UnOiAnJyAvLyBleHRyYSBjbGFzc2VzIGZvciBjbG9zZSBidXR0b25cbiAgICB9LFxuICAgICdpY29uU2V0cyc6IHsgLy8gZXhhbXBsZSBkYXRhIHN0cnVjdHVyZS4gVXNlZCB0byBzcGVjaWZ5IHdoaWNoIGxhdW5jaGVycyB3aWxsIGJlIGNyZWF0ZWRcbiAgICAgICAgJ2dlbmVyaWNvbic6ICdHZW5lcmljb24nLCAvLyBjcmVhdGUgYSBsYXVuY2hlciB0byBwaWNrIGdlbmVyaWNvbiBpY29uc1xuICAgICAgICAnZmEnOiAnRm9udEF3ZXNvbWUnIC8vIGNyZWF0ZSBhIGxhdW5jaGVyIHRvIHBpY2sgZm9udGF3ZXNvbWUgaWNvbnNcbiAgICB9XG59O1xuXG5jbGFzcyBRTF9JY29uX1BpY2tlciB7XG5cbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuaWNvblNldCA9ICcnO1xuICAgICAgICB0aGlzLmljb25TZXROYW1lID0gJyc7XG4gICAgICAgIHRoaXMuJGZpZWxkID0gJyc7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSAkLmV4dGVuZCh7fSwgZGVmYXVsdHMsIG9wdGlvbnMpO1xuICAgICAgICB0aGlzLl9kZWZhdWx0cyA9IGRlZmF1bHRzO1xuICAgICAgICB0aGlzLmluaXQoKTtcbiAgICB9XG5cbiAgICBpbml0KCkge1xuICAgICAgICB2YXIgJGJyaWNrID0gJCh0aGlzLmVsZW1lbnQpO1xuICAgICAgICB2YXIgcGlja2VySWQgPSAkYnJpY2suZGF0YSgncGlja2VyaWQnKTtcbiAgICAgICAgdmFyICRwcmV2aWV3ID0gJCgnPGRpdiBjbGFzcz1cImljb24tcHJldmlldyBpY29uLXByZXZpZXctJyArIHBpY2tlcklkICsgJ1wiIC8+Jyk7XG5cbiAgICAgICAgdGhpcy4kZmllbGQgPSAkYnJpY2suZmluZCgnaW5wdXQnKTtcblxuICAgICAgICAvLyBBZGQgcHJldmlldyBhcmVhXG4gICAgICAgIHRoaXMubWFrZVByZXZpZXcoJGJyaWNrLCBwaWNrZXJJZCwgJHByZXZpZXcpO1xuXG4gICAgICAgIC8vIE1ha2UgYnV0dG9uIHRvIGNsZWFyIGZpZWxkIGFuZCByZW1vdmUgcHJldmlld1xuICAgICAgICB0aGlzLm1ha2VDbGVhcihwaWNrZXJJZCwgJHByZXZpZXcpO1xuXG4gICAgICAgIC8vIE1ha2UgYnV0dG9ucyB0aGF0IG9wZW4gdGhlIHBhbmVsIG9mIGljb25zXG4gICAgICAgIHRoaXMubWFrZUxhdW5jaGVycygkYnJpY2ssIHBpY2tlcklkKTtcblxuICAgICAgICAvLyBQcmVwYXJlIGRpc3BsYXkgc3R5bGVzLCBpbmxpbmUgYW5kIGRpYWxvZ1xuICAgICAgICB0aGlzLm1ha2VEaXNwbGF5KCRicmljayk7XG4gICAgfVxuXG4gICAgbWFrZVByZXZpZXcoJGJyaWNrLCBwaWNrZXJJZCwgJHByZXZpZXcpIHtcbiAgICAgICAgdmFyICRpY29uID0gJCgnPGkgLz4nKTtcbiAgICAgICAgdmFyIGljb25WYWx1ZSA9IHRoaXMuJGZpZWxkLnZhbCgpO1xuXG4gICAgICAgICRwcmV2aWV3LnByZXBlbmRUbygkYnJpY2spO1xuICAgICAgICAkaWNvbi5wcmVwZW5kVG8oJHByZXZpZXcpO1xuICAgICAgICBpZiAoaWNvblZhbHVlICE9PSAnJykge1xuICAgICAgICAgICAgJHByZXZpZXcuYWRkQ2xhc3MoJ2ljb24tcHJldmlldy1vbicpO1xuICAgICAgICAgICAgJGljb24uYWRkQ2xhc3MoaWNvblZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1ha2VDbGVhcihwaWNrZXJJZCwgJHByZXZpZXcpIHtcbiAgICAgICAgdmFyIGJhc2UgPSB0aGlzO1xuICAgICAgICB2YXIgJGNsZWFyID0gJCgnPGEgY2xhc3M9XCJyZW1vdmUtaWNvbiAnICsgYmFzZS5zZXR0aW5ncy5jbGFzc2VzLmNsZWFyICsgJ1wiIC8+Jyk7XG5cbiAgICAgICAgLy8gSGlkZSBidXR0b24gdG8gcmVtb3ZlIGljb24gYW5kIHByZXZpZXcgYW5kIGFwcGVuZCBpdCB0byBwcmV2aWV3IGFyZWFcbiAgICAgICAgJGNsZWFyLmhpZGUoKS5wcmVwZW5kVG8oJHByZXZpZXcpO1xuICAgICAgICAvLyBJZiB0aGVyZSdzIGEgaWNvbiBzYXZlZCBpbiB0aGUgZmllbGQsIHNob3cgcmVtb3ZlIGljb24gYnV0dG9uXG4gICAgICAgIGlmIChiYXNlLiRmaWVsZC52YWwoKSAhPT0gJycpIHtcbiAgICAgICAgICAgICRjbGVhci5zaG93KCk7XG4gICAgICAgIH1cblxuICAgICAgICAkcHJldmlldy5vbignY2xpY2snLCAnLnJlbW92ZS1pY29uJywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgYmFzZS4kZmllbGQudmFsKCcnKTtcbiAgICAgICAgICAgICRwcmV2aWV3LnJlbW92ZUNsYXNzKCdpY29uLXByZXZpZXctb24nKS5maW5kKCdpJykucmVtb3ZlQ2xhc3MoKTtcbiAgICAgICAgICAgICQodGhpcykuaGlkZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBtYWtlRGlzcGxheSgkYnJpY2spIHtcbiAgICAgICAgdmFyIGJhc2UgPSB0aGlzO1xuICAgICAgICB2YXIgY2xvc2UgPSBiYXNlLnNldHRpbmdzLmNsYXNzZXMuY2xvc2U7XG4gICAgICAgIHZhciAkYm9keSA9ICQoJ2JvZHknKTtcblxuICAgICAgICB2YXIgJGNsb3NlID0gJCgnPGEgaHJlZj1cIiNcIiBjbGFzcz1cImljb24tcGlja2VyLWNsb3NlXCIvPicpO1xuXG4gICAgICAgIGlmIChiYXNlLnNldHRpbmdzLm1vZGUgPT09ICdpbmxpbmUnKSB7XG4gICAgICAgICAgICAkYnJpY2suZmluZCgnLmljb24tc2V0JykuYXBwZW5kKCRjbG9zZSkucmVtb3ZlQ2xhc3MoJ2RpYWxvZycpLmFkZENsYXNzKCdpcC1pbmxpbmUgJyArIGJhc2Uuc2V0dGluZ3Muc2l6ZSkucGFyZW50KCkuYWRkQ2xhc3MoJ2ljb24tc2V0LXdyYXAnKTtcbiAgICAgICAgfSBlbHNlIGlmIChiYXNlLnNldHRpbmdzLm1vZGUgPT09ICdkaWFsb2cnKSB7XG4gICAgICAgICAgICAkKCcuaWNvbi1zZXQnKS5hZGRDbGFzcygnZGlhbG9nICcgKyBiYXNlLnNldHRpbmdzLnNpemUpO1xuICAgICAgICAgICAgaWYgKCQoJy5pY29uLXBpY2tlci1vdmVybGF5JykubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgICAgICAgICAkYm9keS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJpY29uLXBpY2tlci1vdmVybGF5XCIvPicpLmFwcGVuZCgkY2xvc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICRib2R5XG4gICAgICAgICAgICAub24oJ2NsaWNrJywgJy5pY29uLXBpY2tlci1jbG9zZSwgLmljb24tcGlja2VyLW92ZXJsYXknLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJhc2UuY2xvc2VQaWNrZXIoJGJyaWNrLCAkKGJhc2UuaWNvblNldCksIGJhc2Uuc2V0dGluZ3MubW9kZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLm9uKCdtb3VzZWVudGVyIG1vdXNlbGVhdmUnLCAnLmljb24tcGlja2VyLWNsb3NlJywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIGlmIChlLnR5cGUgPT09ICdtb3VzZWVudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKGNsb3NlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKGNsb3NlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBtYWtlTGF1bmNoZXJzKCRicmljaykge1xuICAgICAgICB2YXIgYmFzZSA9IHRoaXM7XG4gICAgICAgIHZhciBkYXRhSWNvblNldHMgPSAkYnJpY2suZGF0YSgnaWNvbnNldHMnKTtcbiAgICAgICAgdmFyIGljb25TZXQ7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhSWNvblNldHMgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBkYXRhSWNvblNldHMgPSBiYXNlLnNldHRpbmdzLmljb25TZXRzO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaWNvblNldCBpbiBkYXRhSWNvblNldHMpIHtcbiAgICAgICAgICAgIGlmIChkYXRhSWNvblNldHMuaGFzT3duUHJvcGVydHkoaWNvblNldCkpIHtcbiAgICAgICAgICAgICAgICAkYnJpY2suYXBwZW5kKCc8YSBjbGFzcz1cImxhdW5jaC1pY29ucyBidXR0b24gJyArIGJhc2Uuc2V0dGluZ3MuY2xhc3Nlcy5sYXVuY2hlciArICdcIiBkYXRhLWljb25zPVwiJyArIGljb25TZXQgKyAnXCI+JyArIGRhdGFJY29uU2V0c1tpY29uU2V0XSArICc8L2E+Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAkYnJpY2suZmluZCgnLmxhdW5jaC1pY29ucycpLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcyk7XG4gICAgICAgICAgICB2YXIgdGhlc2VJY29ucyA9ICRzZWxmLmRhdGEoJ2ljb25zJyk7XG5cbiAgICAgICAgICAgIGJhc2UuaWNvblNldE5hbWUgPSB0aGVzZUljb25zO1xuICAgICAgICAgICAgYmFzZS5pY29uU2V0ID0gJy4nICsgdGhlc2VJY29ucyArICctc2V0JztcblxuICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSBwaWNrZXJcbiAgICAgICAgICAgIGJhc2UuaWNvblBpY2soJGJyaWNrKTtcblxuICAgICAgICAgICAgLy8gU2hvdyBpY29uIHBpY2tlclxuICAgICAgICAgICAgYmFzZS5zaG93UGlja2VyKCRicmljaywgJChiYXNlLmljb25TZXQpLCBiYXNlLnNldHRpbmdzLm1vZGUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpY29uUGljaygkYnJpY2spIHtcbiAgICAgICAgdmFyIGJhc2UgPSB0aGlzO1xuICAgICAgICB2YXIgaGlnaGxpZ2h0ID0gJ2ljb24taGlnaGxpZ2h0ICcgKyBiYXNlLnNldHRpbmdzLmNsYXNzZXMuaGlnaGxpZ2h0O1xuXG4gICAgICAgICQoYmFzZS5pY29uU2V0KS5vbignY2xpY2snLCAnbGknLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB2YXIgJGljb24gPSAkKHRoaXMpO1xuICAgICAgICAgICAgdmFyIGljb24gPSAkaWNvbi5kYXRhKGJhc2Uuc2V0dGluZ3Muc2F2ZSk7XG5cbiAgICAgICAgICAgIC8vIE1hcmsgYXMgc2VsZWN0ZWRcbiAgICAgICAgICAgICQoJy5pY29uLXNlbGVjdGVkJykucmVtb3ZlQ2xhc3MoJ2ljb24tc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgICRpY29uLmFkZENsYXNzKCdpY29uLXNlbGVjdGVkJyk7XG4gICAgICAgICAgICBpZiAoYmFzZS4kZmllbGQuZGF0YSgnZm9ybWF0JykgPT09ICdzaG9ydCcpIHtcbiAgICAgICAgICAgICAgICBpY29uID0gaWNvbi5zbGljZSg2KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2F2ZSBpY29uIHZhbHVlIHRvIGZpZWxkXG4gICAgICAgICAgICBiYXNlLiRmaWVsZC52YWwoaWNvbik7XG5cbiAgICAgICAgICAgIC8vIENsb3NlIGljb24gcGlja2VyXG4gICAgICAgICAgICBpZiAoYmFzZS5zZXR0aW5ncy5jbG9zZU9uUGljaykge1xuICAgICAgICAgICAgICAgIGJhc2UuY2xvc2VQaWNrZXIoJGJyaWNrLCAkaWNvbi5jbG9zZXN0KGJhc2UuaWNvblNldCksIGJhc2Uuc2V0dGluZ3MubW9kZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNldCBwcmV2aWV3XG4gICAgICAgICAgICBiYXNlLnNldFByZXZpZXcoJGljb24uZGF0YSgnY2xhc3MnKSk7XG5cbiAgICAgICAgICAgIC8vIEJyb2FkY2FzdCBldmVudCBwYXNzaW5nIHRoZSBzZWxlY3RlZCBpY29uLlxuICAgICAgICAgICAgJCgnYm9keScpLnRyaWdnZXIoJ2ljb25zZWxlY3RlZC5xdWVyeWxvb3AnLCBpY29uKTtcbiAgICAgICAgfSk7XG4gICAgICAgICQoYmFzZS5pY29uU2V0KS5vbignbW91c2VlbnRlciBtb3VzZWxlYXZlJywgJ2xpJywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgaWYgKGUudHlwZSA9PT0gJ21vdXNlZW50ZXInKSB7XG4gICAgICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhoaWdobGlnaHQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKGhpZ2hsaWdodCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dQaWNrZXIoJGJyaWNrLCAkaWNvbnMsIG1vZGUpIHtcbiAgICAgICAgaWYgKG1vZGUgPT09ICdpbmxpbmUnKSB7XG4gICAgICAgICAgICAkKCcuaWNvbi1zZXQnKS5yZW1vdmVDbGFzcygnaXAtaW5saW5lLW9wZW4nKTtcbiAgICAgICAgICAgICRicmljay5maW5kKCRpY29ucykudG9nZ2xlQ2xhc3MoJ2lwLWlubGluZS1vcGVuJyk7XG4gICAgICAgIH0gZWxzZSBpZiAobW9kZSA9PT0gJ2RpYWxvZycpIHtcbiAgICAgICAgICAgICRicmljay5maW5kKCcuaWNvbi1waWNrZXItY2xvc2UnKS5hZGRDbGFzcygnbWFrZS12aXNpYmxlJyk7XG4gICAgICAgICAgICAkYnJpY2suZmluZCgnLmljb24tcGlja2VyLW92ZXJsYXknKS5hZGRDbGFzcygnbWFrZS12aXNpYmxlJyk7XG4gICAgICAgICAgICAkaWNvbnMuYWRkQ2xhc3MoJ2RpYWxvZy1vcGVuJyk7XG4gICAgICAgIH1cblxuICAgICAgICAkaWNvbnMuZmluZCgnLmljb24tc2VsZWN0ZWQnKS5yZW1vdmVDbGFzcygnaWNvbi1zZWxlY3RlZCcpO1xuICAgICAgICB2YXIgc2VsZWN0ZWRJY29uID0gdGhpcy4kZmllbGQudmFsKCkucmVwbGFjZSgnICcsICcuJyk7XG4gICAgICAgIGlmIChzZWxlY3RlZEljb24gIT09ICcnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zYXZlID09PSAnY2xhc3MnKSB7XG4gICAgICAgICAgICAgICAgJGljb25zLmZpbmQoJy4nICsgc2VsZWN0ZWRJY29uKS5hZGRDbGFzcygnaWNvbi1zZWxlY3RlZCcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaWNvbnMuZmluZCgnW2RhdGEtY29kZT1cIicgKyBzZWxlY3RlZEljb24gKyAnXCJdJykuYWRkQ2xhc3MoJ2ljb24tc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBCcm9hZGNhc3QgZXZlbnQgd2hlbiB0aGUgcGlja2VyIGlzIHNob3duIHBhc3NpbmcgdGhlIHBpY2tlciBtb2RlLlxuICAgICAgICAkKCdib2R5JykudHJpZ2dlcignaWNvbnBpY2tlcnNob3cucXVlcnlsb29wJywgbW9kZSk7XG4gICAgfVxuXG4gICAgY2xvc2VQaWNrZXIoJGJyaWNrLCAkaWNvbnMsIG1vZGUpIHtcbiAgICAgICAgLy8gUmVtb3ZlIGV2ZW50IHNvIHRoZXkgZG9uJ3QgZmlyZSBmcm9tIGEgZGlmZmVyZW50IHBpY2tlclxuICAgICAgICAkKHRoaXMuaWNvblNldCkub2ZmKCdjbGljaycsICdsaScpO1xuXG4gICAgICAgIGlmIChtb2RlID09PSAnaW5saW5lJykge1xuICAgICAgICAgICAgJGJyaWNrLmZpbmQoJGljb25zKS5yZW1vdmVDbGFzcygnaXAtaW5saW5lLW9wZW4nKTtcbiAgICAgICAgfSBlbHNlIGlmIChtb2RlID09PSAnZGlhbG9nJykge1xuICAgICAgICAgICAgJCgnLmljb24tcGlja2VyLWNsb3NlLCAuaWNvbi1waWNrZXItb3ZlcmxheScpLnJlbW92ZUNsYXNzKCdtYWtlLXZpc2libGUnKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBCcm9hZGNhc3QgZXZlbnQgd2hlbiB0aGUgcGlja2VyIGlzIGNsb3NlZCBwYXNzaW5nIHRoZSBwaWNrZXIgbW9kZS5cbiAgICAgICAgJCgnYm9keScpLnRyaWdnZXIoJ2ljb25waWNrZXJjbG9zZS5xdWVyeWxvb3AnLCBtb2RlKTtcbiAgICAgICAgJCgnLmljb24tc2V0JykucmVtb3ZlQ2xhc3MoJ2RpYWxvZy1vcGVuJyk7XG4gICAgfVxuXG4gICAgc2V0UHJldmlldyhwcmV2aWV3KSB7XG4gICAgICAgIHZhciAkcHJldmlldyA9ICQodGhpcy5lbGVtZW50KS5maW5kKCcuaWNvbi1wcmV2aWV3Jyk7XG5cbiAgICAgICAgJHByZXZpZXcuYWRkQ2xhc3MoJ2ljb24tcHJldmlldy1vbicpLmZpbmQoJ2knKS5yZW1vdmVDbGFzcygpXG4gICAgICAgICAgICAuYWRkQ2xhc3ModGhpcy5pY29uU2V0TmFtZSlcbiAgICAgICAgICAgIC5hZGRDbGFzcyhwcmV2aWV3KTtcbiAgICAgICAgJHByZXZpZXcuZmluZCgnYScpLnNob3coKTtcbiAgICB9XG59XG5cbi8qIEdyYXYgKi9cbi8vIGV4dGVuZCAkIHdpdGggM3JkIHBhcnR5IFFMIEljb24gUGlja2VyXG4kLmZuLnFsSWNvblBpY2tlciA9IGZ1bmN0aW9uKG9wdGlvbnMpIHtcbiAgICB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICghJC5kYXRhKHRoaXMsICdwbHVnaW5fcWxJY29uUGlja2VyJykpIHtcbiAgICAgICAgICAgICQuZGF0YSh0aGlzLCAncGx1Z2luX3FsSWNvblBpY2tlcicsIG5ldyBRTF9JY29uX1BpY2tlcih0aGlzLCBvcHRpb25zKSk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSWNvbnBpY2tlckZpZWxkIHtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5pdGVtcyA9ICQoKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5kZWZhdWx0cywgb3B0aW9ucyk7XG5cbiAgICAgICAgJCgnW2RhdGEtZ3Jhdi1pY29ucGlja2VyXScpLmVhY2goKGluZGV4LCBlbGVtZW50KSA9PiB0aGlzLmFkZEl0ZW0oZWxlbWVudCkpO1xuICAgICAgICAkKCdib2R5Jykub24oJ211dGF0aW9uLl9ncmF2JywgdGhpcy5fb25BZGRlZE5vZGVzLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIF9vbkFkZGVkTm9kZXMoZXZlbnQsIHRhcmdldC8qICwgcmVjb3JkLCBpbnN0YW5jZSAqLykge1xuICAgICAgICBsZXQgZmllbGRzID0gJCh0YXJnZXQpLmZpbmQoJ1tkYXRhLWdyYXYtaWNvbnBpY2tlcl0nKTtcbiAgICAgICAgaWYgKCFmaWVsZHMubGVuZ3RoKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGZpZWxkcy5lYWNoKChpbmRleCwgZmllbGQpID0+IHtcbiAgICAgICAgICAgIGZpZWxkID0gJChmaWVsZCk7XG4gICAgICAgICAgICBpZiAoIX50aGlzLml0ZW1zLmluZGV4KGZpZWxkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkSXRlbShmaWVsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZEl0ZW0oZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50ID0gJChlbGVtZW50KTtcbiAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuYWRkKGVsZW1lbnQpO1xuICAgICAgICBlbGVtZW50LmZpbmQoJy5pY29uLXBpY2tlcicpLnFsSWNvblBpY2tlcih7XG4gICAgICAgICAgICAnc2F2ZSc6ICdjbGFzcydcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gaGFjayB0byByZW1vdmUgZXh0cmEgaWNvbiBzZXRzIHRoYXQgYXJlIGp1c3QgY29waWVzXG4gICAgICAgICQoJy5pY29uLXNldDpub3QoOmZpcnN0KScpLnJlbW92ZSgpO1xuICAgIH1cbn1cblxuZXhwb3J0IGxldCBJbnN0YW5jZSA9IG5ldyBJY29ucGlja2VyRmllbGQoKTtcblxuLy8gRml4IHRvIGNsb3NlIHRoZSBkaWFsb2cgd2hlbiBjbGlja2luZyBvdXRzaWRlXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAoZXZlbnQpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgY29uc3QgbWF0Y2ggPSAnLmljb24tc2V0LmRpYWxvZy1vcGVuLCAubGF1bmNoLWljb25zW2RhdGEtaWNvbnNdJztcbiAgICBpZiAoIXRhcmdldC5pcyhtYXRjaCkgJiYgIXRhcmdldC5jbG9zZXN0KG1hdGNoKS5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZGlhbG9ncyA9ICQoJy5pY29uLXNldC5kaWFsb2ctb3BlbicpO1xuXG4gICAgICAgIC8vIHNraXAgaWYgdGhlcmUncyBubyBkaWFsb2cgb3BlblxuICAgICAgICBpZiAoZGlhbG9ncy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGRpYWxvZ3MuZWFjaCgoaW5kZXgsIGRpYWxvZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBpY2tlciA9ICQoZGlhbG9nKS5zaWJsaW5ncygnLmljb24tcGlja2VyJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHBpY2tlci5kYXRhKCdwbHVnaW5fcWxJY29uUGlja2VyJyk7XG4gICAgICAgICAgICAgICAgZGF0YS5jbG9zZVBpY2tlcihwaWNrZXIsICQoZGF0YS5pY29uU2V0KSwgZGF0YS5zZXR0aW5ncy5tb2RlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufSk7XG4iXSwibmFtZXMiOlsiJCIsImRlZmF1bHRzIiwiUUxfSWNvbl9QaWNrZXIiLCJlbGVtZW50Iiwib3B0aW9ucyIsIl9jbGFzc0NhbGxDaGVjayIsImljb25TZXQiLCJpY29uU2V0TmFtZSIsIiRmaWVsZCIsInNldHRpbmdzIiwiZXh0ZW5kIiwiX2RlZmF1bHRzIiwiaW5pdCIsIl9jcmVhdGVDbGFzcyIsImtleSIsInZhbHVlIiwiJGJyaWNrIiwicGlja2VySWQiLCJkYXRhIiwiJHByZXZpZXciLCJmaW5kIiwibWFrZVByZXZpZXciLCJtYWtlQ2xlYXIiLCJtYWtlTGF1bmNoZXJzIiwibWFrZURpc3BsYXkiLCIkaWNvbiIsImljb25WYWx1ZSIsInZhbCIsInByZXBlbmRUbyIsImFkZENsYXNzIiwiYmFzZSIsIiRjbGVhciIsImNsYXNzZXMiLCJjbGVhciIsImhpZGUiLCJzaG93Iiwib24iLCJlIiwicHJldmVudERlZmF1bHQiLCJyZW1vdmVDbGFzcyIsImNsb3NlIiwiJGJvZHkiLCIkY2xvc2UiLCJtb2RlIiwiYXBwZW5kIiwic2l6ZSIsInBhcmVudCIsImxlbmd0aCIsImNsb3NlUGlja2VyIiwidHlwZSIsImRhdGFJY29uU2V0cyIsImljb25TZXRzIiwiaGFzT3duUHJvcGVydHkiLCJsYXVuY2hlciIsIiRzZWxmIiwidGhlc2VJY29ucyIsImljb25QaWNrIiwic2hvd1BpY2tlciIsImhpZ2hsaWdodCIsImljb24iLCJzYXZlIiwic2xpY2UiLCJjbG9zZU9uUGljayIsImNsb3Nlc3QiLCJzZXRQcmV2aWV3IiwidHJpZ2dlciIsIiRpY29ucyIsInRvZ2dsZUNsYXNzIiwic2VsZWN0ZWRJY29uIiwicmVwbGFjZSIsIm9mZiIsInByZXZpZXciLCJmbiIsInFsSWNvblBpY2tlciIsImVhY2giLCJJY29ucGlja2VyRmllbGQiLCJfdGhpcyIsIml0ZW1zIiwiT2JqZWN0IiwiYXNzaWduIiwiaW5kZXgiLCJhZGRJdGVtIiwiX29uQWRkZWROb2RlcyIsImJpbmQiLCJldmVudCIsInRhcmdldCIsIl90aGlzMiIsImZpZWxkcyIsImZpZWxkIiwiYWRkIiwicmVtb3ZlIiwiZGVmYXVsdCIsIkluc3RhbmNlIiwiZG9jdW1lbnQiLCJtYXRjaCIsImlzIiwiZGlhbG9ncyIsImRpYWxvZyIsInBpY2tlciIsInNpYmxpbmdzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/iconpicker.js\n\n}");
/***/ }),
/***/ "./app/forms/fields/indeterminate.js":
/*!*******************************************!*\
!*** ./app/forms/fields/indeterminate.js ***!
\*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\ndocument.addEventListener('click', function (event) {\n if (document.querySelector('#pages-filters')) {\n return true;\n }\n var wrapper = event.target.closest('.checkboxes.indeterminate');\n if (wrapper) {\n event.preventDefault();\n var checkbox = wrapper.querySelector('input[type=\"checkbox\"]:not([disabled])');\n var checkStatus = wrapper.dataset._checkStatus;\n wrapper.classList.remove('status-checked', 'status-unchecked', 'status-indeterminate');\n switch (checkStatus) {\n // checked, going indeterminate\n case '1':\n wrapper.dataset._checkStatus = '2';\n checkbox.indeterminate = true;\n checkbox.checked = false;\n checkbox.value = 0;\n wrapper.classList.add('status-indeterminate');\n break;\n\n // indeterminate, going unchecked\n case '2':\n wrapper.dataset._checkStatus = '0';\n checkbox.indeterminate = false;\n checkbox.checked = false;\n checkbox.value = '';\n wrapper.classList.add('status-unchecked');\n break;\n\n // unchecked, going checked\n case '0':\n default:\n wrapper.dataset._checkStatus = '1';\n checkbox.indeterminate = false;\n checkbox.checked = true;\n checkbox.value = 1;\n wrapper.classList.add('status-checked');\n break;\n }\n\n // const input = new CustomEvent('input', { detail: { target: checkbox }});\n // document.dispatchEvent(input);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(checkbox).trigger('input');\n }\n});\n(document.querySelectorAll('input[type=\"checkbox\"][indeterminate=\"true\"]') || []).forEach(function (input) {\n input.indeterminate = true;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL2luZGV0ZXJtaW5hdGUuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQXVCO0FBRXZCQyxRQUFRLENBQUNDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxVQUFDQyxLQUFLLEVBQUs7RUFDMUMsSUFBSUYsUUFBUSxDQUFDRyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtJQUMxQyxPQUFPLElBQUk7RUFDZjtFQUVBLElBQU1DLE9BQU8sR0FBR0YsS0FBSyxDQUFDRyxNQUFNLENBQUNDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQztFQUVqRSxJQUFJRixPQUFPLEVBQUU7SUFDVEYsS0FBSyxDQUFDSyxjQUFjLENBQUMsQ0FBQztJQUN0QixJQUFNQyxRQUFRLEdBQUdKLE9BQU8sQ0FBQ0QsYUFBYSxDQUFDLHdDQUF3QyxDQUFDO0lBQ2hGLElBQU1NLFdBQVcsR0FBR0wsT0FBTyxDQUFDTSxPQUFPLENBQUNDLFlBQVk7SUFDaERQLE9BQU8sQ0FBQ1EsU0FBUyxDQUFDQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLENBQUM7SUFFdEYsUUFBUUosV0FBVztNQUNmO01BQ0EsS0FBSyxHQUFHO1FBQ0pMLE9BQU8sQ0FBQ00sT0FBTyxDQUFDQyxZQUFZLEdBQUcsR0FBRztRQUNsQ0gsUUFBUSxDQUFDTSxhQUFhLEdBQUcsSUFBSTtRQUM3Qk4sUUFBUSxDQUFDTyxPQUFPLEdBQUcsS0FBSztRQUN4QlAsUUFBUSxDQUFDUSxLQUFLLEdBQUcsQ0FBQztRQUNsQlosT0FBTyxDQUFDUSxTQUFTLENBQUNLLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQztRQUM3Qzs7TUFFSjtNQUNBLEtBQUssR0FBRztRQUNKYixPQUFPLENBQUNNLE9BQU8sQ0FBQ0MsWUFBWSxHQUFHLEdBQUc7UUFDbENILFFBQVEsQ0FBQ00sYUFBYSxHQUFHLEtBQUs7UUFDOUJOLFFBQVEsQ0FBQ08sT0FBTyxHQUFHLEtBQUs7UUFDeEJQLFFBQVEsQ0FBQ1EsS0FBSyxHQUFHLEVBQUU7UUFDbkJaLE9BQU8sQ0FBQ1EsU0FBUyxDQUFDSyxHQUFHLENBQUMsa0JBQWtCLENBQUM7UUFDekM7O01BRUo7TUFDQSxLQUFLLEdBQUc7TUFDUjtRQUNJYixPQUFPLENBQUNNLE9BQU8sQ0FBQ0MsWUFBWSxHQUFHLEdBQUc7UUFDbENILFFBQVEsQ0FBQ00sYUFBYSxHQUFHLEtBQUs7UUFDOUJOLFFBQVEsQ0FBQ08sT0FBTyxHQUFHLElBQUk7UUFDdkJQLFFBQVEsQ0FBQ1EsS0FBSyxHQUFHLENBQUM7UUFDbEJaLE9BQU8sQ0FBQ1EsU0FBUyxDQUFDSyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7UUFDdkM7SUFDUjs7SUFFQTtJQUNBO0lBQ0FsQiw2Q0FBQyxDQUFDUyxRQUFRLENBQUMsQ0FBQ1UsT0FBTyxDQUFDLE9BQU8sQ0FBQztFQUNoQztBQUNKLENBQUMsQ0FBQztBQUVGLENBQUNsQixRQUFRLENBQUNtQixnQkFBZ0IsQ0FBQyw4Q0FBOEMsQ0FBQyxJQUFJLEVBQUUsRUFBRUMsT0FBTyxDQUFDLFVBQUNDLEtBQUssRUFBSztFQUFFQSxLQUFLLENBQUNQLGFBQWEsR0FBRyxJQUFJO0FBQUUsQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9mb3Jtcy9maWVsZHMvaW5kZXRlcm1pbmF0ZS5qcz9kNjM4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwYWdlcy1maWx0ZXJzJykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3Qgd3JhcHBlciA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCcuY2hlY2tib3hlcy5pbmRldGVybWluYXRlJyk7XG5cbiAgICBpZiAod3JhcHBlcikge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBjaGVja2JveCA9IHdyYXBwZXIucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOm5vdChbZGlzYWJsZWRdKScpO1xuICAgICAgICBjb25zdCBjaGVja1N0YXR1cyA9IHdyYXBwZXIuZGF0YXNldC5fY2hlY2tTdGF0dXM7XG4gICAgICAgIHdyYXBwZXIuY2xhc3NMaXN0LnJlbW92ZSgnc3RhdHVzLWNoZWNrZWQnLCAnc3RhdHVzLXVuY2hlY2tlZCcsICdzdGF0dXMtaW5kZXRlcm1pbmF0ZScpO1xuXG4gICAgICAgIHN3aXRjaCAoY2hlY2tTdGF0dXMpIHtcbiAgICAgICAgICAgIC8vIGNoZWNrZWQsIGdvaW5nIGluZGV0ZXJtaW5hdGVcbiAgICAgICAgICAgIGNhc2UgJzEnOlxuICAgICAgICAgICAgICAgIHdyYXBwZXIuZGF0YXNldC5fY2hlY2tTdGF0dXMgPSAnMic7XG4gICAgICAgICAgICAgICAgY2hlY2tib3guaW5kZXRlcm1pbmF0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNoZWNrYm94LnZhbHVlID0gMDtcbiAgICAgICAgICAgICAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoJ3N0YXR1cy1pbmRldGVybWluYXRlJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIC8vIGluZGV0ZXJtaW5hdGUsIGdvaW5nIHVuY2hlY2tlZFxuICAgICAgICAgICAgY2FzZSAnMic6XG4gICAgICAgICAgICAgICAgd3JhcHBlci5kYXRhc2V0Ll9jaGVja1N0YXR1cyA9ICcwJztcbiAgICAgICAgICAgICAgICBjaGVja2JveC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNoZWNrYm94LnZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgd3JhcHBlci5jbGFzc0xpc3QuYWRkKCdzdGF0dXMtdW5jaGVja2VkJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIC8vIHVuY2hlY2tlZCwgZ29pbmcgY2hlY2tlZFxuICAgICAgICAgICAgY2FzZSAnMCc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHdyYXBwZXIuZGF0YXNldC5fY2hlY2tTdGF0dXMgPSAnMSc7XG4gICAgICAgICAgICAgICAgY2hlY2tib3guaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNoZWNrYm94LnZhbHVlID0gMTtcbiAgICAgICAgICAgICAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoJ3N0YXR1cy1jaGVja2VkJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjb25zdCBpbnB1dCA9IG5ldyBDdXN0b21FdmVudCgnaW5wdXQnLCB7IGRldGFpbDogeyB0YXJnZXQ6IGNoZWNrYm94IH19KTtcbiAgICAgICAgLy8gZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChpbnB1dCk7XG4gICAgICAgICQoY2hlY2tib3gpLnRyaWdnZXIoJ2lucHV0Jyk7XG4gICAgfVxufSk7XG5cbihkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl1baW5kZXRlcm1pbmF0ZT1cInRydWVcIl0nKSB8fCBbXSkuZm9yRWFjaCgoaW5wdXQpID0+IHsgaW5wdXQuaW5kZXRlcm1pbmF0ZSA9IHRydWU7IH0pO1xuIl0sIm5hbWVzIjpbIiQiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJldmVudCIsInF1ZXJ5U2VsZWN0b3IiLCJ3cmFwcGVyIiwidGFyZ2V0IiwiY2xvc2VzdCIsInByZXZlbnREZWZhdWx0IiwiY2hlY2tib3giLCJjaGVja1N0YXR1cyIsImRhdGFzZXQiLCJfY2hlY2tTdGF0dXMiLCJjbGFzc0xpc3QiLCJyZW1vdmUiLCJpbmRldGVybWluYXRlIiwiY2hlY2tlZCIsInZhbHVlIiwiYWRkIiwidHJpZ2dlciIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwiaW5wdXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/indeterminate.js\n\n}");
/***/ }),
/***/ "./app/forms/fields/index.js":
/*!***********************************!*\
!*** ./app/forms/fields/index.js ***!
\***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _filepicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./filepicker */ \"./app/forms/fields/filepicker.js\");\n/* harmony import */ var _selectize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./selectize */ \"./app/forms/fields/selectize.js\");\n/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./array */ \"./app/forms/fields/array.js\");\n/* harmony import */ var _collections__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./collections */ \"./app/forms/fields/collections.js\");\n/* harmony import */ var _datetime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./datetime */ \"./app/forms/fields/datetime.js\");\n/* harmony import */ var _editor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./editor */ \"./app/forms/fields/editor.js\");\n/* harmony import */ var _colorpicker__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./colorpicker */ \"./app/forms/fields/colorpicker.js\");\n/* harmony import */ var _files__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./files */ \"./app/forms/fields/files.js\");\n/* harmony import */ var _folder__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./folder */ \"./app/forms/fields/folder.js\");\n/* harmony import */ var _selectunique__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./selectunique */ \"./app/forms/fields/selectunique.js\");\n/* harmony import */ var _iconpicker__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./iconpicker */ \"./app/forms/fields/iconpicker.js\");\n/* harmony import */ var _cron__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./cron */ \"./app/forms/fields/cron.js\");\n/* harmony import */ var _parents__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./parents */ \"./app/forms/fields/parents.js\");\n/* harmony import */ var _acl_picker__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./acl-picker */ \"./app/forms/fields/acl-picker.js\");\n/* harmony import */ var _permissions__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./permissions */ \"./app/forms/fields/permissions.js\");\n/* harmony import */ var _indeterminate__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./indeterminate */ \"./app/forms/fields/indeterminate.js\");\n/* harmony import */ var _mediapicker__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./mediapicker */ \"./app/forms/fields/mediapicker.js\");\n/* harmony import */ var _multilevel__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./multilevel */ \"./app/forms/fields/multilevel.js\");\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./text */ \"./app/forms/fields/text.js\");\n/* harmony import */ var _range__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./range */ \"./app/forms/fields/range.js\");\n/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./elements */ \"./app/forms/fields/elements.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n FilepickerField: {\n FilepickerField: _filepicker__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n Instance: _filepicker__WEBPACK_IMPORTED_MODULE_0__.Instance\n },\n SelectizeField: {\n SelectizeField: _selectize__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Instance: _selectize__WEBPACK_IMPORTED_MODULE_1__.Instance\n },\n ArrayField: {\n ArrayField: _array__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n Instance: _array__WEBPACK_IMPORTED_MODULE_2__.Instance\n },\n CollectionsField: {\n CollectionsField: _collections__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n Instance: _collections__WEBPACK_IMPORTED_MODULE_3__.Instance\n },\n DateTimeField: {\n DateTimeField: _datetime__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n Instance: _datetime__WEBPACK_IMPORTED_MODULE_4__.Instance\n },\n EditorField: {\n EditorField: _editor__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n Instance: _editor__WEBPACK_IMPORTED_MODULE_5__.Instance\n },\n ColorpickerField: {\n ColorpickerField: _colorpicker__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n Instance: _colorpicker__WEBPACK_IMPORTED_MODULE_6__.Instance\n },\n FilesField: {\n FilesField: _files__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n Instance: _files__WEBPACK_IMPORTED_MODULE_7__.Instance\n },\n FolderField: {\n Regenerate: _folder__WEBPACK_IMPORTED_MODULE_8__[\"default\"]\n },\n SelectUniqueField: {\n SelectUniqueField: _selectunique__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n Instance: _selectunique__WEBPACK_IMPORTED_MODULE_9__.Instance\n },\n IconpickerField: {\n IconpickerField: _iconpicker__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n Instance: _iconpicker__WEBPACK_IMPORTED_MODULE_10__.Instance\n },\n CronField: {\n CronField: _cron__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n Instance: _cron__WEBPACK_IMPORTED_MODULE_11__.Instance\n },\n ParentsField: {\n ParentsField: _parents__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n Instance: _parents__WEBPACK_IMPORTED_MODULE_12__.Instances\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBb0Y7QUFDSDtBQUNaO0FBQ2tCO0FBQ1Q7QUFDTjtBQUNlO0FBQ2xCO0FBQzFCO0FBQzBDO0FBQ047QUFDYjtBQUNVO0FBRXREO0FBQ0M7QUFDRTtBQUNGO0FBQ0Q7QUFDTjtBQUNDO0FBQ0c7QUFFcEIsaUVBQWU7RUFDWEEsZUFBZSxFQUFFO0lBQ2JBLGVBQWUsRUFBZkEsbURBQWU7SUFDZkMsUUFBUSxFQUFFQyxpREFBdUJBO0VBQ3JDLENBQUM7RUFDREMsY0FBYyxFQUFFO0lBQ1pBLGNBQWMsRUFBZEEsa0RBQWM7SUFDZEYsUUFBUSxFQUFFRyxnREFBc0JBO0VBQ3BDLENBQUM7RUFDREMsVUFBVSxFQUFFO0lBQ1JBLFVBQVUsRUFBVkEsOENBQVU7SUFDVkosUUFBUSxFQUFFSyw0Q0FBa0JBO0VBQ2hDLENBQUM7RUFDREMsZ0JBQWdCLEVBQUU7SUFDZEEsZ0JBQWdCLEVBQWhCQSxvREFBZ0I7SUFDaEJOLFFBQVEsRUFBRU8sa0RBQXdCQTtFQUN0QyxDQUFDO0VBQ0RDLGFBQWEsRUFBRTtJQUNYQSxhQUFhLEVBQWJBLGlEQUFhO0lBQ2JSLFFBQVEsRUFBRVMsK0NBQXFCQTtFQUNuQyxDQUFDO0VBQ0RDLFdBQVcsRUFBRTtJQUNUQSxXQUFXLEVBQVhBLCtDQUFXO0lBQ1hWLFFBQVEsRUFBRVcsNkNBQW1CQTtFQUNqQyxDQUFDO0VBQ0RDLGdCQUFnQixFQUFFO0lBQ2RBLGdCQUFnQixFQUFoQkEsb0RBQWdCO0lBQ2hCWixRQUFRLEVBQUVhLGtEQUF3QkE7RUFDdEMsQ0FBQztFQUNEQyxVQUFVLEVBQUU7SUFDUkEsVUFBVSxFQUFWQSw4Q0FBVTtJQUNWZCxRQUFRLEVBQUVlLDRDQUFrQkE7RUFDaEMsQ0FBQztFQUNEVyxXQUFXLEVBQUU7SUFDVEMsVUFBVSxFQUFFWCwrQ0FBbUJBO0VBQ25DLENBQUM7RUFDREMsaUJBQWlCLEVBQUU7SUFDZkEsaUJBQWlCLEVBQWpCQSxxREFBaUI7SUFDakJqQixRQUFRLEVBQUVrQixtREFBb0JBO0VBQ2xDLENBQUM7RUFDREMsZUFBZSxFQUFFO0lBQ2JBLGVBQWUsRUFBZkEsb0RBQWU7SUFDZm5CLFFBQVEsRUFBRW9CLGtEQUFrQkE7RUFDaEMsQ0FBQztFQUNEQyxTQUFTLEVBQUU7SUFDUEEsU0FBUyxFQUFUQSw4Q0FBUztJQUNUckIsUUFBUSxFQUFFc0IsNENBQWlCQTtFQUMvQixDQUFDO0VBQ0RDLFlBQVksRUFBRTtJQUNWQSxZQUFZLEVBQVpBLGlEQUFZO0lBQ1p2QixRQUFRLEVBQUV5QixnREFBb0JBO0VBQ2xDO0FBQ0osQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvZm9ybXMvZmllbGRzL2luZGV4LmpzPzE4YjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEZpbGVwaWNrZXJGaWVsZCwgeyBJbnN0YW5jZSBhcyBGaWxlcGlja2VyRmllbGRJbnN0YW5jZSB9IGZyb20gJy4vZmlsZXBpY2tlcic7XG5pbXBvcnQgU2VsZWN0aXplRmllbGQsIHsgSW5zdGFuY2UgYXMgU2VsZWN0aXplRmllbGRJbnN0YW5jZSB9IGZyb20gJy4vc2VsZWN0aXplJztcbmltcG9ydCBBcnJheUZpZWxkLCB7IEluc3RhbmNlIGFzIEFycmF5RmllbGRJbnN0YW5jZSB9IGZyb20gJy4vYXJyYXknO1xuaW1wb3J0IENvbGxlY3Rpb25zRmllbGQsIHsgSW5zdGFuY2UgYXMgQ29sbGVjdGlvbnNGaWVsZEluc3RhbmNlIH0gZnJvbSAnLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgRGF0ZVRpbWVGaWVsZCwgeyBJbnN0YW5jZSBhcyBEYXRlVGltZUZpZWxkSW5zdGFuY2UgfSBmcm9tICcuL2RhdGV0aW1lJztcbmltcG9ydCBFZGl0b3JGaWVsZCwgeyBJbnN0YW5jZSBhcyBFZGl0b3JGaWVsZEluc3RhbmNlIH0gZnJvbSAnLi9lZGl0b3InO1xuaW1wb3J0IENvbG9ycGlja2VyRmllbGQsIHsgSW5zdGFuY2UgYXMgQ29sb3JwaWNrZXJGaWVsZEluc3RhbmNlIH0gZnJvbSAnLi9jb2xvcnBpY2tlcic7XG5pbXBvcnQgRmlsZXNGaWVsZCwgeyBJbnN0YW5jZSBhcyBGaWxlc0ZpZWxkSW5zdGFuY2UgfSBmcm9tICcuL2ZpbGVzJztcbmltcG9ydCBGb2xkZXJGaWVsZEluc3RhbmNlIGZyb20gJy4vZm9sZGVyJztcbmltcG9ydCBTZWxlY3RVbmlxdWVGaWVsZCwgeyBJbnN0YW5jZSBhcyBTZWxlY3RVbmlxdWVJbnN0YW5jZSB9IGZyb20gJy4vc2VsZWN0dW5pcXVlJztcbmltcG9ydCBJY29ucGlja2VyRmllbGQsIHsgSW5zdGFuY2UgYXMgSWNvbnBpY2tlckluc3RhbmNlIH0gZnJvbSAnLi9pY29ucGlja2VyJztcbmltcG9ydCBDcm9uRmllbGQsIHsgSW5zdGFuY2UgYXMgQ3JvbkZpZWxkSW5zdGFuY2UgfSBmcm9tICcuL2Nyb24nO1xuaW1wb3J0IFBhcmVudHNGaWVsZCwgeyBJbnN0YW5jZXMgYXMgUGFyZW50c0ZpZWxkSW5zdGFuY2UgfSBmcm9tICcuL3BhcmVudHMnO1xuXG5pbXBvcnQgJy4vYWNsLXBpY2tlcic7XG5pbXBvcnQgJy4vcGVybWlzc2lvbnMnO1xuaW1wb3J0ICcuL2luZGV0ZXJtaW5hdGUnO1xuaW1wb3J0ICcuL21lZGlhcGlja2VyJztcbmltcG9ydCAnLi9tdWx0aWxldmVsJztcbmltcG9ydCAnLi90ZXh0JztcbmltcG9ydCAnLi9yYW5nZSc7XG5pbXBvcnQgJy4vZWxlbWVudHMnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgRmlsZXBpY2tlckZpZWxkOiB7XG4gICAgICAgIEZpbGVwaWNrZXJGaWVsZCxcbiAgICAgICAgSW5zdGFuY2U6IEZpbGVwaWNrZXJGaWVsZEluc3RhbmNlXG4gICAgfSxcbiAgICBTZWxlY3RpemVGaWVsZDoge1xuICAgICAgICBTZWxlY3RpemVGaWVsZCxcbiAgICAgICAgSW5zdGFuY2U6IFNlbGVjdGl6ZUZpZWxkSW5zdGFuY2VcbiAgICB9LFxuICAgIEFycmF5RmllbGQ6IHtcbiAgICAgICAgQXJyYXlGaWVsZCxcbiAgICAgICAgSW5zdGFuY2U6IEFycmF5RmllbGRJbnN0YW5jZVxuICAgIH0sXG4gICAgQ29sbGVjdGlvbnNGaWVsZDoge1xuICAgICAgICBDb2xsZWN0aW9uc0ZpZWxkLFxuICAgICAgICBJbnN0YW5jZTogQ29sbGVjdGlvbnNGaWVsZEluc3RhbmNlXG4gICAgfSxcbiAgICBEYXRlVGltZUZpZWxkOiB7XG4gICAgICAgIERhdGVUaW1lRmllbGQsXG4gICAgICAgIEluc3RhbmNlOiBEYXRlVGltZUZpZWxkSW5zdGFuY2VcbiAgICB9LFxuICAgIEVkaXRvckZpZWxkOiB7XG4gICAgICAgIEVkaXRvckZpZWxkLFxuICAgICAgICBJbnN0YW5jZTogRWRpdG9yRmllbGRJbnN0YW5jZVxuICAgIH0sXG4gICAgQ29sb3JwaWNrZXJGaWVsZDoge1xuICAgICAgICBDb2xvcnBpY2tlckZpZWxkLFxuICAgICAgICBJbnN0YW5jZTogQ29sb3JwaWNrZXJGaWVsZEluc3RhbmNlXG4gICAgfSxcbiAgICBGaWxlc0ZpZWxkOiB7XG4gICAgICAgIEZpbGVzRmllbGQsXG4gICAgICAgIEluc3RhbmNlOiBGaWxlc0ZpZWxkSW5zdGFuY2VcbiAgICB9LFxuICAgIEZvbGRlckZpZWxkOiB7XG4gICAgICAgIFJlZ2VuZXJhdGU6IEZvbGRlckZpZWxkSW5zdGFuY2VcbiAgICB9LFxuICAgIFNlbGVjdFVuaXF1ZUZpZWxkOiB7XG4gICAgICAgIFNlbGVjdFVuaXF1ZUZpZWxkLFxuICAgICAgICBJbnN0YW5jZTogU2VsZWN0VW5pcXVlSW5zdGFuY2VcbiAgICB9LFxuICAgIEljb25waWNrZXJGaWVsZDoge1xuICAgICAgICBJY29ucGlja2VyRmllbGQsXG4gICAgICAgIEluc3RhbmNlOiBJY29ucGlja2VySW5zdGFuY2VcbiAgICB9LFxuICAgIENyb25GaWVsZDoge1xuICAgICAgICBDcm9uRmllbGQsXG4gICAgICAgIEluc3RhbmNlOiBDcm9uRmllbGRJbnN0YW5jZVxuICAgIH0sXG4gICAgUGFyZW50c0ZpZWxkOiB7XG4gICAgICAgIFBhcmVudHNGaWVsZCxcbiAgICAgICAgSW5zdGFuY2U6IFBhcmVudHNGaWVsZEluc3RhbmNlXG4gICAgfVxufTtcbiJdLCJuYW1lcyI6WyJGaWxlcGlja2VyRmllbGQiLCJJbnN0YW5jZSIsIkZpbGVwaWNrZXJGaWVsZEluc3RhbmNlIiwiU2VsZWN0aXplRmllbGQiLCJTZWxlY3RpemVGaWVsZEluc3RhbmNlIiwiQXJyYXlGaWVsZCIsIkFycmF5RmllbGRJbnN0YW5jZSIsIkNvbGxlY3Rpb25zRmllbGQiLCJDb2xsZWN0aW9uc0ZpZWxkSW5zdGFuY2UiLCJEYXRlVGltZUZpZWxkIiwiRGF0ZVRpbWVGaWVsZEluc3RhbmNlIiwiRWRpdG9yRmllbGQiLCJFZGl0b3JGaWVsZEluc3RhbmNlIiwiQ29sb3JwaWNrZXJGaWVsZCIsIkNvbG9ycGlja2VyRmllbGRJbnN0YW5jZSIsIkZpbGVzRmllbGQiLCJGaWxlc0ZpZWxkSW5zdGFuY2UiLCJGb2xkZXJGaWVsZEluc3RhbmNlIiwiU2VsZWN0VW5pcXVlRmllbGQiLCJTZWxlY3RVbmlxdWVJbnN0YW5jZSIsIkljb25waWNrZXJGaWVsZCIsIkljb25waWNrZXJJbnN0YW5jZSIsIkNyb25GaWVsZCIsIkNyb25GaWVsZEluc3RhbmNlIiwiUGFyZW50c0ZpZWxkIiwiSW5zdGFuY2VzIiwiUGFyZW50c0ZpZWxkSW5zdGFuY2UiLCJGb2xkZXJGaWVsZCIsIlJlZ2VuZXJhdGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/index.js\n\n}");
/***/ }),
/***/ "./app/forms/fields/mediapicker.js":
/*!*****************************************!*\
!*** ./app/forms/fields/mediapicker.js ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _pages_tree__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../pages/tree */ \"./app/pages/tree.js\");\n\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(function () {\n var modal = '';\n var body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n\n // Thumb Resizer\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('input change', '.media-container .media-range', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var container = target.closest('.remodal');\n var cards = container.find('.media-container div.card-item');\n var width = target.val() + 'px';\n cards.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).css('width', width);\n });\n });\n body.on('click', '[data-mediapicker-modal-trigger]', function (event) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var modal_identifier = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('grav-mediapicker-unique-identifier');\n var modal_element = body.find(\"[data-remodal-unique-identifier=\\\"\".concat(modal_identifier, \"\\\"]\"));\n modal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal).lookup[modal_element.data('remodal')];\n if (!modal) {\n modal_element.remodal();\n modal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal).lookup[modal_element.data('remodal')];\n }\n modal.open();\n modal.dataField = element.find('input');\n\n // load all media\n modal_element.find('.js__files').trigger('fillView');\n setTimeout(function () {\n return _pages_tree__WEBPACK_IMPORTED_MODULE_1__.Instance.reload();\n }, 100);\n });\n\n /* handle media modal click actions */\n body.on('click', '[data-remodal-mediapicker] .media-container.in-modal .admin-media-details a', function (event) {\n event.preventDefault();\n event.stopPropagation();\n var val = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('.js__media-element').data('file-url');\n var string = val.replace(/ /g, '%20');\n modal.dataField.val(string);\n modal.close();\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0FBQ04sQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9mb3Jtcy9maWVsZHMvbWVkaWFwaWNrZXIuanM/ZDkxZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgSW5zdGFuY2UgYXMgcGFnZXNUcmVlIH0gZnJvbSAnLi4vLi4vcGFnZXMvdHJlZSc7XG5cbiQoZnVuY3Rpb24oKSB7XG4gICAgbGV0IG1vZGFsID0gJyc7XG4gICAgbGV0IGJvZHkgPSAkKCdib2R5Jyk7XG5cbiAgICAvLyBUaHVtYiBSZXNpemVyXG4gICAgJChkb2N1bWVudCkub24oJ2lucHV0IGNoYW5nZScsICcubWVkaWEtY29udGFpbmVyIC5tZWRpYS1yYW5nZScsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRhcmdldC5jbG9zZXN0KCcucmVtb2RhbCcpO1xuICAgICAgICBsZXQgY2FyZHMgPSBjb250YWluZXIuZmluZCgnLm1lZGlhLWNvbnRhaW5lciBkaXYuY2FyZC1pdGVtJyk7XG4gICAgICAgIGxldCB3aWR0aCA9IHRhcmdldC52YWwoKSArICdweCc7XG4gICAgICAgIGNhcmRzLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAkKHRoaXMpLmNzcygnd2lkdGgnLCB3aWR0aCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgYm9keS5vbignY2xpY2snLCAnW2RhdGEtbWVkaWFwaWNrZXItbW9kYWwtdHJpZ2dlcl0nLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgbGV0IG1vZGFsX2lkZW50aWZpZXIgPSAkKHRoaXMpLmRhdGEoJ2dyYXYtbWVkaWFwaWNrZXItdW5pcXVlLWlkZW50aWZpZXInKTtcbiAgICAgICAgbGV0IG1vZGFsX2VsZW1lbnQgPSBib2R5LmZpbmQoYFtkYXRhLXJlbW9kYWwtdW5pcXVlLWlkZW50aWZpZXI9XCIke21vZGFsX2lkZW50aWZpZXJ9XCJdYCk7XG4gICAgICAgIG1vZGFsID0gJC5yZW1vZGFsLmxvb2t1cFttb2RhbF9lbGVtZW50LmRhdGEoJ3JlbW9kYWwnKV07XG5cbiAgICAgICAgaWYgKCFtb2RhbCkge1xuICAgICAgICAgICAgbW9kYWxfZWxlbWVudC5yZW1vZGFsKCk7XG4gICAgICAgICAgICBtb2RhbCA9ICQucmVtb2RhbC5sb29rdXBbbW9kYWxfZWxlbWVudC5kYXRhKCdyZW1vZGFsJyldO1xuICAgICAgICB9XG5cbiAgICAgICAgbW9kYWwub3BlbigpO1xuICAgICAgICBtb2RhbC5kYXRhRmllbGQgPSBlbGVtZW50LmZpbmQoJ2lucHV0Jyk7XG5cbiAgICAgICAgLy8gbG9hZCBhbGwgbWVkaWFcbiAgICAgICAgbW9kYWxfZWxlbWVudC5maW5kKCcuanNfX2ZpbGVzJykudHJpZ2dlcignZmlsbFZpZXcnKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHBhZ2VzVHJlZS5yZWxvYWQoKSwgMTAwKTtcbiAgICB9KTtcblxuICAgIC8qIGhhbmRsZSBtZWRpYSBtb2RhbCBjbGljayBhY3Rpb25zICovXG4gICAgYm9keS5vbignY2xpY2snLCAnW2RhdGEtcmVtb2RhbC1tZWRpYXBpY2tlcl0gLm1lZGlhLWNvbnRhaW5lci5pbi1tb2RhbCAuYWRtaW4tbWVkaWEtZGV0YWlscyBhJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGxldCB2YWwgPSAkKGV2ZW50LnRhcmdldCkucGFyZW50cygnLmpzX19tZWRpYS1lbGVtZW50JykuZGF0YSgnZmlsZS11cmwnKTtcbiAgICAgICAgbGV0IHN0cmluZyA9IHZhbC5yZXBsYWNlKC8gL2csICclMjAnKTtcblxuICAgICAgICBtb2RhbC5kYXRhRmllbGQudmFsKHN0cmluZyk7XG5cbiAgICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICB9KTtcbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJJbnN0YW5jZSIsInBhZ2VzVHJlZSIsIm1vZGFsIiwiYm9keSIsImRvY3VtZW50Iiwib24iLCJldmVudCIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJjb250YWluZXIiLCJjbG9zZXN0IiwiY2FyZHMiLCJmaW5kIiwid2lkdGgiLCJ2YWwiLCJlYWNoIiwiY3NzIiwiZWxlbWVudCIsIm1vZGFsX2lkZW50aWZpZXIiLCJkYXRhIiwibW9kYWxfZWxlbWVudCIsImNvbmNhdCIsInJlbW9kYWwiLCJsb29rdXAiLCJvcGVuIiwiZGF0YUZpZWxkIiwidHJpZ2dlciIsInNldFRpbWVvdXQiLCJyZWxvYWQiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInBhcmVudHMiLCJzdHJpbmciLCJyZXBsYWNlIiwiY2xvc2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/mediapicker.js\n\n}");
/***/ }),
/***/ "./app/forms/fields/multilevel.js":
/*!****************************************!*\
!*** ./app/forms/fields/multilevel.js ***!
\****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(function () {\n var getField = function getField(level, name) {\n var levelMargin = level * 50;\n var top = level === 0 ? 'top' : '';\n var the_name = 'name=\"' + name + '\"';\n if (level === 0) {\n // top\n the_name = 'data-attr-name=\"' + name + '\"';\n }\n var marginDir = window.getComputedStyle(document.body).direction === 'ltr' ? 'margin-left' : 'margin-right';\n var field = \"\\n
\\n
\\n \\n\\n \\n \\n \\n
\\n
\\n \");\n return field;\n };\n var hasChildInputs = function hasChildInputs($element) {\n if ($element.attr('name')) {\n return false;\n }\n return true;\n };\n var getTopItems = function getTopItems(element) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .js__multilevel-field.top');\n };\n var refreshControls = function refreshControls(unique_identifier) {\n var element = '[data-grav-multilevel-field]';\n if (unique_identifier) {\n element = '[data-grav-multilevel-field][data-id=\"' + unique_identifier + '\"]';\n }\n var hideButtons = function hideButtons() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .js__add-sibling').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .js__add-children').addClass('hidden');\n };\n var restoreAddSiblingButtons = function restoreAddSiblingButtons() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .children-wrapper').each(function () {\n var elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).children();\n elements.last().each(function () {\n var field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).hasClass('js__multilevel-field')) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).find('.js__multilevel-field').first();\n }\n field.find('.js__add-sibling').removeClass('hidden');\n });\n });\n\n // add sibling to the last top element\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .js__multilevel-field.top').last().find('.js__add-sibling').removeClass('hidden');\n };\n var restoreAddChildrenButtons = function restoreAddChildrenButtons() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .js__multilevel-field').each(function () {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).siblings('.children-wrapper').length === 0 || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).siblings('.children-wrapper').find('.js__multilevel-field').length === 0) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).find('.js__add-children').removeClass('hidden');\n }\n });\n };\n var preventRemovingLastTopItem = function preventRemovingLastTopItem() {\n var top_items = getTopItems(element);\n if (top_items.length === 1) {\n top_items.first().find('.js__remove-item').addClass('hidden');\n }\n };\n hideButtons();\n restoreAddSiblingButtons();\n restoreAddChildrenButtons();\n preventRemovingLastTopItem();\n };\n var changeAllOccurrencesInTree = function changeAllOccurrencesInTree($el, current_name, new_name) {\n $el.parents('[data-grav-multilevel-field]').find('input').each(function () {\n var $input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n if ($input.attr('name')) {\n $input.attr('name', $input.attr('name').replace(current_name, new_name));\n }\n if ($input.attr('data-attr-name')) {\n $input.attr('data-attr-name', $input.attr('data-attr-name').replace(current_name, new_name));\n }\n });\n };\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {\n refreshControls();\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('mouseleave', '[data-grav-multilevel-field]', function (event) {\n var top_items = getTopItems('[data-id=\"' + jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('id') + '\"]');\n var has_top_items_without_children = false;\n var element_content = '';\n top_items.each(function () {\n var item = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(item).siblings('.children-wrapper').find('input').length === 0) {\n has_top_items_without_children = true;\n element_content = item.find('input').val();\n }\n });\n if (has_top_items_without_children) {\n if (element_content) {\n alert('Warning: if you save now, the element ' + element_content + ', without children, will be removed, because it\\'s invalid YAML');\n } else {\n alert('Warning: if you save now, the top elements without children will be removed, because it\\'s invalid YAML');\n }\n }\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-grav-multilevel-field] .js__add-children', function (event) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var unique_container_id = element.closest('.js__multilevel-field').data('id');\n var level = element.data('level') + 1;\n var getParentOfElement = function getParentOfElement(element) {\n var parent = element.closest('.js__multilevel-field').parent().first();\n if (parent.find('.children-wrapper').length === 0) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).append('
');\n }\n parent = parent.find('.children-wrapper').first();\n return parent;\n };\n var getNameFromParentInput = function getNameFromParentInput(parentInput, attr) {\n if (parentInput.hasClass('children-wrapper')) {\n parentInput = parentInput.siblings('.js__multilevel-field').first().find('input');\n }\n return parentInput.attr(attr) + '[' + parentInput.val() + ']';\n };\n var getInputFromChildrenWrapper = function getInputFromChildrenWrapper(parentChildrenWrapper) {\n return parentChildrenWrapper.siblings('.js__multilevel-field').first().find('input');\n };\n var parentChildrenWrapper = getParentOfElement(element);\n var parentInput = getInputFromChildrenWrapper(parentChildrenWrapper);\n var attr = 'name';\n if (parentInput.closest('.js__multilevel-field').hasClass('top')) {\n attr = 'data-attr-name';\n }\n parentInput.attr(attr, parentInput.attr(attr).replace('[]', ''));\n var name = getNameFromParentInput(parentInput, attr);\n var field = getField(level, name);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(parentChildrenWrapper).append(field);\n refreshControls(unique_container_id);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-grav-multilevel-field] .js__add-sibling', function (event) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var unique_container_id = element.closest('.js__multilevel-field').data('id');\n var level = element.data('level');\n element.closest('.children-wrapper').find('.js__add-sibling').addClass('hidden');\n var sibling = null;\n var is_top = false;\n if (element.closest('.js__multilevel-field').hasClass('top')) {\n is_top = true;\n }\n if (is_top) {\n sibling = element.closest('.js__multilevel-field').first().find('input').last();\n } else {\n sibling = element.siblings('input').first();\n if (!sibling) {\n sibling = element.closest('.children-wrapper').first().find('input').last();\n }\n }\n var getParentOfElement = function getParentOfElement(element) {\n var parent = element.closest('.js__multilevel-field').parent().first();\n if (!parent.hasClass('element-wrapper')) {\n if (parent.find('.element-wrapper').length === 0) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).append('
');\n }\n parent = parent.find('.element-wrapper').first();\n }\n return parent;\n };\n var getNameFromSibling = function getNameFromSibling(parent, sibling) {\n var is_top = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var name = sibling.attr('name');\n if (hasChildInputs(sibling)) {\n var val = sibling.data('attr-name') + '[]';\n sibling.removeAttr('name');\n return val;\n }\n var last_index = name.lastIndexOf('[');\n var almost_there = name.substr(last_index + 1);\n var last_tag = almost_there.substr(0, almost_there.length - 1);\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default().isNumeric(last_tag)) {\n name = name.replace('[' + last_tag + ']', '[' + (parseInt(last_tag, 10) + 1) + ']');\n } else {\n if (is_top) {\n name = name.replace('[' + last_tag + ']', '');\n } else {\n name = name + '[1]';\n\n // change sibling name attr if necessary\n if (sibling.attr('name').slice('-2') !== '[0]') {\n changeAllOccurrencesInTree(sibling, sibling.attr('name'), sibling.attr('name') + '[0]');\n }\n }\n }\n return name;\n };\n var parent = getParentOfElement(element);\n var name = getNameFromSibling(parent, sibling, is_top);\n var field = getField(level, name);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(field).insertAfter(parent);\n refreshControls(unique_container_id);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-grav-multilevel-field] .js__remove-item', function (event) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).parents('.element-wrapper').first().remove();\n var unique_container_id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).closest('.js__multilevel-field').data('id');\n refreshControls(unique_container_id);\n });\n\n // Store old value before editing a field\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('focusin', '[data-grav-multilevel-field] input', function (event) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('current-value', jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).val());\n });\n\n // Handle field edited event\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('change', '[data-grav-multilevel-field] input', function (event) {\n var $el = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var old_value = $el.data('current-value');\n var new_value = $el.val();\n var full_name = $el.attr('name') || $el.attr('data-attr-name'); // first-level items have `data-attr-name` instead of `name`\n\n var old_name_attr = full_name + '[' + old_value + ']';\n var new_name_attr = full_name + '[' + new_value + ']';\n changeAllOccurrencesInTree($el, old_name_attr, new_name_attr);\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuXG4kKGZ1bmN0aW9uKCkge1xuXG4gICAgY29uc3QgZ2V0RmllbGQgPSBmdW5jdGlvbiBnZXRGaWVsZChsZXZlbCwgbmFtZSkge1xuICAgICAgICBsZXQgbGV2ZWxNYXJnaW4gPSBsZXZlbCAqIDUwO1xuICAgICAgICBsZXQgdG9wID0gKGxldmVsID09PSAwID8gJ3RvcCcgOiAnJyk7XG5cbiAgICAgICAgbGV0IHRoZV9uYW1lID0gJ25hbWU9XCInICsgbmFtZSArICdcIic7XG4gICAgICAgIGlmIChsZXZlbCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gdG9wXG4gICAgICAgICAgICB0aGVfbmFtZSA9ICdkYXRhLWF0dHItbmFtZT1cIicgKyBuYW1lICsgJ1wiJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1hcmdpbkRpciA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmRpcmVjdGlvbiA9PT0gJ2x0cicgPyAnbWFyZ2luLWxlZnQnIDogJ21hcmdpbi1yaWdodCc7XG5cbiAgICAgICAgbGV0IGZpZWxkID0gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVsZW1lbnQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJvdyBhcnJheS1maWVsZC12YWx1ZV9vbmx5IGpzX19tdWx0aWxldmVsLWZpZWxkICR7dG9wfVwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtZ3Jhdi1hcnJheS10eXBlPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGVfbmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgdmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCIke21hcmdpbkRpcn06ICR7bGV2ZWxNYXJnaW59cHhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJcIiAvPlxuXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtbWludXMganNfX3JlbW92ZS1pdGVtXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLXBsdXMganNfX2FkZC1zaWJsaW5nIGhpZGRlblwiIGRhdGEtbGV2ZWw9XCIke2xldmVsfVwiID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtcGx1cy1jaXJjbGUganNfX2FkZC1jaGlsZHJlbiBoaWRkZW5cIiBkYXRhLWxldmVsPVwiJHtsZXZlbH1cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgYDtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhc0NoaWxkSW5wdXRzID0gZnVuY3Rpb24gaGFzQ2hpbGRJbnB1dHMoJGVsZW1lbnQpIHtcbiAgICAgICAgaWYgKCRlbGVtZW50LmF0dHIoJ25hbWUnKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldFRvcEl0ZW1zID0gZnVuY3Rpb24gZ2V0VG9wSXRlbXMoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gJChlbGVtZW50ICsgJyAuanNfX211bHRpbGV2ZWwtZmllbGQudG9wJyk7XG4gICAgfTtcblxuICAgIGNvbnN0IHJlZnJlc2hDb250cm9scyA9IGZ1bmN0aW9uIHJlZnJlc2hDb250cm9scyh1bmlxdWVfaWRlbnRpZmllcikge1xuICAgICAgICBsZXQgZWxlbWVudCA9ICdbZGF0YS1ncmF2LW11bHRpbGV2ZWwtZmllbGRdJztcbiAgICAgICAgaWYgKHVuaXF1ZV9pZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBlbGVtZW50ID0gJ1tkYXRhLWdyYXYtbXVsdGlsZXZlbC1maWVsZF1bZGF0YS1pZD1cIicgKyB1bmlxdWVfaWRlbnRpZmllciArICdcIl0nO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaGlkZUJ1dHRvbnMgPSBmdW5jdGlvbiBoaWRlQnV0dG9ucygpIHtcbiAgICAgICAgICAgICQoZWxlbWVudCArICcgLmpzX19hZGQtc2libGluZycpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICQoZWxlbWVudCArICcgLmpzX19hZGQtY2hpbGRyZW4nKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcmVzdG9yZUFkZFNpYmxpbmdCdXR0b25zID0gZnVuY3Rpb24gcmVzdG9yZUFkZFNpYmxpbmdCdXR0b25zKCkge1xuICAgICAgICAgICAgJChlbGVtZW50ICsgJyAuY2hpbGRyZW4td3JhcHBlcicpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgbGV0IGVsZW1lbnRzID0gJCh0aGlzKS5jaGlsZHJlbigpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxhc3QoKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZmllbGQgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoISQodGhpcykuaGFzQ2xhc3MoJ2pzX19tdWx0aWxldmVsLWZpZWxkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkID0gJCh0aGlzKS5maW5kKCcuanNfX211bHRpbGV2ZWwtZmllbGQnKS5maXJzdCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLmZpbmQoJy5qc19fYWRkLXNpYmxpbmcnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gYWRkIHNpYmxpbmcgdG8gdGhlIGxhc3QgdG9wIGVsZW1lbnRcbiAgICAgICAgICAgICQoZWxlbWVudCArICcgLmpzX19tdWx0aWxldmVsLWZpZWxkLnRvcCcpLmxhc3QoKS5maW5kKCcuanNfX2FkZC1zaWJsaW5nJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJlc3RvcmVBZGRDaGlsZHJlbkJ1dHRvbnMgPSBmdW5jdGlvbiByZXN0b3JlQWRkQ2hpbGRyZW5CdXR0b25zKCkge1xuICAgICAgICAgICAgJChlbGVtZW50ICsgJyAuanNfX211bHRpbGV2ZWwtZmllbGQnKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnNpYmxpbmdzKCcuY2hpbGRyZW4td3JhcHBlcicpLmxlbmd0aCA9PT0gMCB8fCAkKHRoaXMpLnNpYmxpbmdzKCcuY2hpbGRyZW4td3JhcHBlcicpLmZpbmQoJy5qc19fbXVsdGlsZXZlbC1maWVsZCcpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5qc19fYWRkLWNoaWxkcmVuJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHByZXZlbnRSZW1vdmluZ0xhc3RUb3BJdGVtID0gZnVuY3Rpb24gcHJldmVudFJlbW92aW5nTGFzdFRvcEl0ZW0oKSB7XG4gICAgICAgICAgICBsZXQgdG9wX2l0ZW1zID0gZ2V0VG9wSXRlbXMoZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAodG9wX2l0ZW1zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHRvcF9pdGVtcy5maXJzdCgpLmZpbmQoJy5qc19fcmVtb3ZlLWl0ZW0nKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgaGlkZUJ1dHRvbnMoKTtcbiAgICAgICAgcmVzdG9yZUFkZFNpYmxpbmdCdXR0b25zKCk7XG4gICAgICAgIHJlc3RvcmVBZGRDaGlsZHJlbkJ1dHRvbnMoKTtcbiAgICAgICAgcHJldmVudFJlbW92aW5nTGFzdFRvcEl0ZW0oKTtcbiAgICB9O1xuXG4gICAgY29uc3QgY2hhbmdlQWxsT2NjdXJyZW5jZXNJblRyZWUgPSBmdW5jdGlvbigkZWwsIGN1cnJlbnRfbmFtZSwgbmV3X25hbWUpIHtcbiAgICAgICAgJGVsLnBhcmVudHMoJ1tkYXRhLWdyYXYtbXVsdGlsZXZlbC1maWVsZF0nKS5maW5kKCdpbnB1dCcpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBsZXQgJGlucHV0ID0gJCh0aGlzKTtcbiAgICAgICAgICAgIGlmICgkaW5wdXQuYXR0cignbmFtZScpKSB7XG4gICAgICAgICAgICAgICAgJGlucHV0LmF0dHIoJ25hbWUnLCAkaW5wdXQuYXR0cignbmFtZScpLnJlcGxhY2UoY3VycmVudF9uYW1lLCBuZXdfbmFtZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCRpbnB1dC5hdHRyKCdkYXRhLWF0dHItbmFtZScpKSB7XG4gICAgICAgICAgICAgICAgJGlucHV0LmF0dHIoJ2RhdGEtYXR0ci1uYW1lJywgJGlucHV0LmF0dHIoJ2RhdGEtYXR0ci1uYW1lJykucmVwbGFjZShjdXJyZW50X25hbWUsIG5ld19uYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtcbiAgICAgICAgcmVmcmVzaENvbnRyb2xzKCk7XG4gICAgfSk7XG5cbiAgICAkKGRvY3VtZW50KS5vbignbW91c2VsZWF2ZScsICdbZGF0YS1ncmF2LW11bHRpbGV2ZWwtZmllbGRdJywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgbGV0IHRvcF9pdGVtcyA9IGdldFRvcEl0ZW1zKCdbZGF0YS1pZD1cIicgKyAkKHRoaXMpLmRhdGEoJ2lkJykgKyAnXCJdJyk7XG4gICAgICAgIGxldCBoYXNfdG9wX2l0ZW1zX3dpdGhvdXRfY2hpbGRyZW4gPSBmYWxzZTtcbiAgICAgICAgbGV0IGVsZW1lbnRfY29udGVudCA9ICcnO1xuICAgICAgICB0b3BfaXRlbXMuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGxldCBpdGVtID0gJCh0aGlzKTtcbiAgICAgICAgICAgIGlmICgkKGl0ZW0pLnNpYmxpbmdzKCcuY2hpbGRyZW4td3JhcHBlcicpLmZpbmQoJ2lucHV0JykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaGFzX3RvcF9pdGVtc193aXRob3V0X2NoaWxkcmVuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBlbGVtZW50X2NvbnRlbnQgPSBpdGVtLmZpbmQoJ2lucHV0JykudmFsKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGhhc190b3BfaXRlbXNfd2l0aG91dF9jaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRfY29udGVudCkge1xuICAgICAgICAgICAgICAgIGFsZXJ0KCdXYXJuaW5nOiBpZiB5b3Ugc2F2ZSBub3csIHRoZSBlbGVtZW50ICcgKyBlbGVtZW50X2NvbnRlbnQgKyAnLCB3aXRob3V0IGNoaWxkcmVuLCB3aWxsIGJlIHJlbW92ZWQsIGJlY2F1c2UgaXRcXCdzIGludmFsaWQgWUFNTCcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhbGVydCgnV2FybmluZzogaWYgeW91IHNhdmUgbm93LCB0aGUgdG9wIGVsZW1lbnRzIHdpdGhvdXQgY2hpbGRyZW4gd2lsbCBiZSByZW1vdmVkLCBiZWNhdXNlIGl0XFwncyBpbnZhbGlkIFlBTUwnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtZ3Jhdi1tdWx0aWxldmVsLWZpZWxkXSAuanNfX2FkZC1jaGlsZHJlbicsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgIGxldCBlbGVtZW50ID0gJCh0aGlzKTtcbiAgICAgICAgbGV0IHVuaXF1ZV9jb250YWluZXJfaWQgPSBlbGVtZW50LmNsb3Nlc3QoJy5qc19fbXVsdGlsZXZlbC1maWVsZCcpLmRhdGEoJ2lkJyk7XG4gICAgICAgIGxldCBsZXZlbCA9IGVsZW1lbnQuZGF0YSgnbGV2ZWwnKSArIDE7XG5cbiAgICAgICAgY29uc3QgZ2V0UGFyZW50T2ZFbGVtZW50ID0gZnVuY3Rpb24gZ2V0UGFyZW50T2ZFbGVtZW50KGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGxldCBwYXJlbnQgPSBlbGVtZW50LmNsb3Nlc3QoJy5qc19fbXVsdGlsZXZlbC1maWVsZCcpLnBhcmVudCgpLmZpcnN0KCk7XG4gICAgICAgICAgICBpZiAocGFyZW50LmZpbmQoJy5jaGlsZHJlbi13cmFwcGVyJykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgJChwYXJlbnQpLmFwcGVuZCgnPGRpdiBjbGFzcz1cImNoaWxkcmVuLXdyYXBwZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5maW5kKCcuY2hpbGRyZW4td3JhcHBlcicpLmZpcnN0KCk7XG5cbiAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZ2V0TmFtZUZyb21QYXJlbnRJbnB1dCA9IGZ1bmN0aW9uIGdldE5hbWVGcm9tUGFyZW50SW5wdXQocGFyZW50SW5wdXQsIGF0dHIpIHtcbiAgICAgICAgICAgIGlmIChwYXJlbnRJbnB1dC5oYXNDbGFzcygnY2hpbGRyZW4td3JhcHBlcicpKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50SW5wdXQgPSBwYXJlbnRJbnB1dC5zaWJsaW5ncygnLmpzX19tdWx0aWxldmVsLWZpZWxkJykuZmlyc3QoKS5maW5kKCdpbnB1dCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcGFyZW50SW5wdXQuYXR0cihhdHRyKSArICdbJyArIHBhcmVudElucHV0LnZhbCgpICsgJ10nO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGdldElucHV0RnJvbUNoaWxkcmVuV3JhcHBlciA9IGZ1bmN0aW9uIGdldElucHV0RnJvbUNoaWxkcmVuV3JhcHBlcihwYXJlbnRDaGlsZHJlbldyYXBwZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJlbnRDaGlsZHJlbldyYXBwZXIuc2libGluZ3MoJy5qc19fbXVsdGlsZXZlbC1maWVsZCcpLmZpcnN0KCkuZmluZCgnaW5wdXQnKTtcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgcGFyZW50Q2hpbGRyZW5XcmFwcGVyID0gZ2V0UGFyZW50T2ZFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICBsZXQgcGFyZW50SW5wdXQgPSBnZXRJbnB1dEZyb21DaGlsZHJlbldyYXBwZXIocGFyZW50Q2hpbGRyZW5XcmFwcGVyKTtcblxuICAgICAgICBsZXQgYXR0ciA9ICduYW1lJztcbiAgICAgICAgaWYgKHBhcmVudElucHV0LmNsb3Nlc3QoJy5qc19fbXVsdGlsZXZlbC1maWVsZCcpLmhhc0NsYXNzKCd0b3AnKSkge1xuICAgICAgICAgICAgYXR0ciA9ICdkYXRhLWF0dHItbmFtZSc7XG4gICAgICAgIH1cblxuICAgICAgICBwYXJlbnRJbnB1dC5hdHRyKGF0dHIsIHBhcmVudElucHV0LmF0dHIoYXR0cikucmVwbGFjZSgnW10nLCAnJykpO1xuXG4gICAgICAgIGxldCBuYW1lID0gZ2V0TmFtZUZyb21QYXJlbnRJbnB1dChwYXJlbnRJbnB1dCwgYXR0cik7XG4gICAgICAgIGxldCBmaWVsZCA9IGdldEZpZWxkKGxldmVsLCBuYW1lKTtcblxuICAgICAgICAkKHBhcmVudENoaWxkcmVuV3JhcHBlcikuYXBwZW5kKGZpZWxkKTtcbiAgICAgICAgcmVmcmVzaENvbnRyb2xzKHVuaXF1ZV9jb250YWluZXJfaWQpO1xuICAgIH0pO1xuXG4gICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLWdyYXYtbXVsdGlsZXZlbC1maWVsZF0gLmpzX19hZGQtc2libGluZycsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgIGxldCBlbGVtZW50ID0gJCh0aGlzKTtcbiAgICAgICAgbGV0IHVuaXF1ZV9jb250YWluZXJfaWQgPSBlbGVtZW50LmNsb3Nlc3QoJy5qc19fbXVsdGlsZXZlbC1maWVsZCcpLmRhdGEoJ2lkJyk7XG4gICAgICAgIGxldCBsZXZlbCA9IGVsZW1lbnQuZGF0YSgnbGV2ZWwnKTtcbiAgICAgICAgZWxlbWVudC5jbG9zZXN0KCcuY2hpbGRyZW4td3JhcHBlcicpLmZpbmQoJy5qc19fYWRkLXNpYmxpbmcnKS5hZGRDbGFzcygnaGlkZGVuJyk7XG5cbiAgICAgICAgbGV0IHNpYmxpbmcgPSBudWxsO1xuICAgICAgICBsZXQgaXNfdG9wID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKGVsZW1lbnQuY2xvc2VzdCgnLmpzX19tdWx0aWxldmVsLWZpZWxkJykuaGFzQ2xhc3MoJ3RvcCcpKSB7XG4gICAgICAgICAgICBpc190b3AgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzX3RvcCkge1xuICAgICAgICAgICAgc2libGluZyA9IGVsZW1lbnQuY2xvc2VzdCgnLmpzX19tdWx0aWxldmVsLWZpZWxkJykuZmlyc3QoKS5maW5kKCdpbnB1dCcpLmxhc3QoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNpYmxpbmcgPSBlbGVtZW50LnNpYmxpbmdzKCdpbnB1dCcpLmZpcnN0KCk7XG4gICAgICAgICAgICBpZiAoIXNpYmxpbmcpIHtcbiAgICAgICAgICAgICAgICBzaWJsaW5nID0gZWxlbWVudC5jbG9zZXN0KCcuY2hpbGRyZW4td3JhcHBlcicpLmZpcnN0KCkuZmluZCgnaW5wdXQnKS5sYXN0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBnZXRQYXJlbnRPZkVsZW1lbnQgPSBmdW5jdGlvbiBnZXRQYXJlbnRPZkVsZW1lbnQoZWxlbWVudCkge1xuICAgICAgICAgICAgbGV0IHBhcmVudCA9IGVsZW1lbnQuY2xvc2VzdCgnLmpzX19tdWx0aWxldmVsLWZpZWxkJykucGFyZW50KCkuZmlyc3QoKTtcbiAgICAgICAgICAgIGlmICghcGFyZW50Lmhhc0NsYXNzKCdlbGVtZW50LXdyYXBwZXInKSkge1xuICAgICAgICAgICAgICAgIGlmIChwYXJlbnQuZmluZCgnLmVsZW1lbnQtd3JhcHBlcicpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAkKHBhcmVudCkuYXBwZW5kKCc8ZGl2IGNsYXNzPVwiZWxlbWVudC13cmFwcGVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50LmZpbmQoJy5lbGVtZW50LXdyYXBwZXInKS5maXJzdCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGdldE5hbWVGcm9tU2libGluZyA9IGZ1bmN0aW9uIGdldE5hbWVGcm9tU2libGluZyhwYXJlbnQsIHNpYmxpbmcsIGlzX3RvcCA9IGZhbHNlKSB7XG4gICAgICAgICAgICBsZXQgbmFtZSA9IHNpYmxpbmcuYXR0cignbmFtZScpO1xuXG4gICAgICAgICAgICBpZiAoaGFzQ2hpbGRJbnB1dHMoc2libGluZykpIHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsID0gc2libGluZy5kYXRhKCdhdHRyLW5hbWUnKSArICdbXSc7XG4gICAgICAgICAgICAgICAgc2libGluZy5yZW1vdmVBdHRyKCduYW1lJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IGxhc3RfaW5kZXggPSBuYW1lLmxhc3RJbmRleE9mKCdbJyk7XG4gICAgICAgICAgICBsZXQgYWxtb3N0X3RoZXJlID0gbmFtZS5zdWJzdHIobGFzdF9pbmRleCArIDEpO1xuICAgICAgICAgICAgbGV0IGxhc3RfdGFnID0gYWxtb3N0X3RoZXJlLnN1YnN0cigwLCBhbG1vc3RfdGhlcmUubGVuZ3RoIC0gMSk7XG5cbiAgICAgICAgICAgIGlmICgkLmlzTnVtZXJpYyhsYXN0X3RhZykpIHtcbiAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5yZXBsYWNlKCdbJyArIGxhc3RfdGFnICsgJ10nLCAnWycgKyAocGFyc2VJbnQobGFzdF90YWcsIDEwKSArIDEpICsgJ10nKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzX3RvcCkge1xuICAgICAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5yZXBsYWNlKCdbJyArIGxhc3RfdGFnICsgJ10nLCAnJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUgKyAnWzFdJztcblxuICAgICAgICAgICAgICAgICAgICAvLyBjaGFuZ2Ugc2libGluZyBuYW1lIGF0dHIgaWYgbmVjZXNzYXJ5XG4gICAgICAgICAgICAgICAgICAgIGlmIChzaWJsaW5nLmF0dHIoJ25hbWUnKS5zbGljZSgnLTInKSAhPT0gJ1swXScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZUFsbE9jY3VycmVuY2VzSW5UcmVlKHNpYmxpbmcsIHNpYmxpbmcuYXR0cignbmFtZScpLCBzaWJsaW5nLmF0dHIoJ25hbWUnKSArICdbMF0nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5hbWU7XG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IHBhcmVudCA9IGdldFBhcmVudE9mRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgbGV0IG5hbWUgPSBnZXROYW1lRnJvbVNpYmxpbmcocGFyZW50LCBzaWJsaW5nLCBpc190b3ApO1xuXG4gICAgICAgIGxldCBmaWVsZCA9IGdldEZpZWxkKGxldmVsLCBuYW1lKTtcbiAgICAgICAgJChmaWVsZCkuaW5zZXJ0QWZ0ZXIocGFyZW50KTtcblxuICAgICAgICByZWZyZXNoQ29udHJvbHModW5pcXVlX2NvbnRhaW5lcl9pZCk7XG4gICAgfSk7XG5cbiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtZ3Jhdi1tdWx0aWxldmVsLWZpZWxkXSAuanNfX3JlbW92ZS1pdGVtJywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgJCh0aGlzKS5wYXJlbnRzKCcuZWxlbWVudC13cmFwcGVyJykuZmlyc3QoKS5yZW1vdmUoKTtcbiAgICAgICAgbGV0IHVuaXF1ZV9jb250YWluZXJfaWQgPSAkKHRoaXMpLmNsb3Nlc3QoJy5qc19fbXVsdGlsZXZlbC1maWVsZCcpLmRhdGEoJ2lkJyk7XG4gICAgICAgIHJlZnJlc2hDb250cm9scyh1bmlxdWVfY29udGFpbmVyX2lkKTtcbiAgICB9KTtcblxuICAgIC8vIFN0b3JlIG9sZCB2YWx1ZSBiZWZvcmUgZWRpdGluZyBhIGZpZWxkXG4gICAgJChkb2N1bWVudCkub24oJ2ZvY3VzaW4nLCAnW2RhdGEtZ3Jhdi1tdWx0aWxldmVsLWZpZWxkXSBpbnB1dCcsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgICQodGhpcykuZGF0YSgnY3VycmVudC12YWx1ZScsICQodGhpcykudmFsKCkpO1xuICAgIH0pO1xuXG4gICAgLy8gSGFuZGxlIGZpZWxkIGVkaXRlZCBldmVudFxuICAgICQoZG9jdW1lbnQpLm9uKCdjaGFuZ2UnLCAnW2RhdGEtZ3Jhdi1tdWx0aWxldmVsLWZpZWxkXSBpbnB1dCcsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgIGxldCAkZWwgPSAkKHRoaXMpO1xuICAgICAgICBsZXQgb2xkX3ZhbHVlID0gJGVsLmRhdGEoJ2N1cnJlbnQtdmFsdWUnKTtcbiAgICAgICAgbGV0IG5ld192YWx1ZSA9ICRlbC52YWwoKTtcblxuICAgICAgICBsZXQgZnVsbF9uYW1lID0gJGVsLmF0dHIoJ25hbWUnKSB8fCAkZWwuYXR0cignZGF0YS1hdHRyLW5hbWUnKTsgLy8gZmlyc3QtbGV2ZWwgaXRlbXMgaGF2ZSBgZGF0YS1hdHRyLW5hbWVgIGluc3RlYWQgb2YgYG5hbWVgXG5cbiAgICAgICAgbGV0IG9sZF9uYW1lX2F0dHIgPSBmdWxsX25hbWUgKyAnWycgKyBvbGRfdmFsdWUgKyAnXSc7XG4gICAgICAgIGxldCBuZXdfbmFtZV9hdHRyID0gZnVsbF9uYW1lICsgJ1snICsgbmV3X3ZhbHVlICsgJ10nO1xuXG4gICAgICAgIGNoYW5nZUFsbE9jY3VycmVuY2VzSW5UcmVlKCRlbCwgb2xkX25hbWVfYXR0ciwgbmV3X25hbWVfYXR0cik7XG4gICAgfSk7XG5cbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJnZXRGaWVsZCIsImxldmVsIiwibmFtZSIsImxldmVsTWFyZ2luIiwidG9wIiwidGhlX25hbWUiLCJtYXJnaW5EaXIiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwiZG9jdW1lbnQiLCJib2R5IiwiZGlyZWN0aW9uIiwiZmllbGQiLCJjb25jYXQiLCJoYXNDaGlsZElucHV0cyIsIiRlbGVtZW50IiwiYXR0ciIsImdldFRvcEl0ZW1zIiwiZWxlbWVudCIsInJlZnJlc2hDb250cm9scyIsInVuaXF1ZV9pZGVudGlmaWVyIiwiaGlkZUJ1dHRvbnMiLCJhZGRDbGFzcyIsInJlc3RvcmVBZGRTaWJsaW5nQnV0dG9ucyIsImVhY2giLCJlbGVtZW50cyIsImNoaWxkcmVuIiwibGFzdCIsImhhc0NsYXNzIiwiZmluZCIsImZpcnN0IiwicmVtb3ZlQ2xhc3MiLCJyZXN0b3JlQWRkQ2hpbGRyZW5CdXR0b25zIiwic2libGluZ3MiLCJsZW5ndGgiLCJwcmV2ZW50UmVtb3ZpbmdMYXN0VG9wSXRlbSIsInRvcF9pdGVtcyIsImNoYW5nZUFsbE9jY3VycmVuY2VzSW5UcmVlIiwiJGVsIiwiY3VycmVudF9uYW1lIiwibmV3X25hbWUiLCJwYXJlbnRzIiwiJGlucHV0IiwicmVwbGFjZSIsInJlYWR5Iiwib24iLCJldmVudCIsImRhdGEiLCJoYXNfdG9wX2l0ZW1zX3dpdGhvdXRfY2hpbGRyZW4iLCJlbGVtZW50X2NvbnRlbnQiLCJpdGVtIiwidmFsIiwiYWxlcnQiLCJ1bmlxdWVfY29udGFpbmVyX2lkIiwiY2xvc2VzdCIsImdldFBhcmVudE9mRWxlbWVudCIsInBhcmVudCIsImFwcGVuZCIsImdldE5hbWVGcm9tUGFyZW50SW5wdXQiLCJwYXJlbnRJbnB1dCIsImdldElucHV0RnJvbUNoaWxkcmVuV3JhcHBlciIsInBhcmVudENoaWxkcmVuV3JhcHBlciIsInNpYmxpbmciLCJpc190b3AiLCJnZXROYW1lRnJvbVNpYmxpbmciLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJyZW1vdmVBdHRyIiwibGFzdF9pbmRleCIsImxhc3RJbmRleE9mIiwiYWxtb3N0X3RoZXJlIiwic3Vic3RyIiwibGFzdF90YWciLCJpc051bWVyaWMiLCJwYXJzZUludCIsInNsaWNlIiwiaW5zZXJ0QWZ0ZXIiLCJyZW1vdmUiLCJvbGRfdmFsdWUiLCJuZXdfdmFsdWUiLCJmdWxsX25hbWUiLCJvbGRfbmFtZV9hdHRyIiwibmV3X25hbWVfYXR0ciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/multilevel.js\n\n}");
/***/ }),
/***/ "./app/forms/fields/parents.js":
/*!*************************************!*\
!*** ./app/forms/fields/parents.js ***!
\*************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Instances: () => (/* binding */ Instances),\n/* harmony export */ b64_decode_unicode: () => (/* binding */ b64_decode_unicode),\n/* harmony export */ b64_encode_unicode: () => (/* binding */ b64_encode_unicode),\n/* harmony export */ \"default\": () => (/* binding */ Parents)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_finderjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/finderjs */ \"./app/utils/finderjs.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\nvar XHRUUID = 0;\nvar Instances = {};\nvar Parents = /*#__PURE__*/function () {\n function Parents(container, field, data) {\n var _this = this;\n _classCallCheck(this, Parents);\n this.container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n this.fieldName = field.attr('name');\n this.field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[name=\\\"\".concat(this.fieldName, \"\\\"]\"));\n this.data = data;\n this.parentLabel = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-parents-field-label=\\\"\".concat(this.fieldName, \"\\\"]\"));\n this.parentName = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-parents-field-name=\\\"\".concat(this.fieldName, \"\\\"]\"));\n var dataLoad = this.dataLoad;\n this.finder = new _utils_finderjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this.container, function (parent, callback) {\n return dataLoad.call(_this, parent, callback);\n }, {\n labelKey: 'name',\n defaultPath: this.field.val(),\n createItemContent: function createItemContent(item) {\n return Parents.createItemContent(this.config, item);\n }\n });\n\n /*\n this.finder.$emitter.on('leaf-selected', (item) => {\n console.log('selected', item);\n this.finder.emit('create-column', () => this.createSimpleColumn(item));\n });\n this.finder.$emitter.on('item-selected', (selected) => {\n console.log('selected', selected);\n // for future use only - create column-card creation for file with details like in macOS finder\n // this.finder.$emitter('create-column', () => this.createSimpleColumn(selected));\n }); */\n\n this.finder.$emitter.on('column-created', function () {\n _this.container[0].scrollLeft = _this.container[0].scrollWidth - _this.container[0].clientWidth;\n });\n }\n return _createClass(Parents, [{\n key: \"createSimpleColumn\",\n value: function createSimpleColumn(item) {}\n }, {\n key: \"dataLoad\",\n value: function dataLoad(parent, callback) {\n var _this2 = this;\n if (!parent) {\n return callback(this.data);\n }\n if (parent.type !== 'dir' || !parent['has-children']) {\n return false;\n }\n var UUID = ++XHRUUID;\n this.startLoader();\n jquery__WEBPACK_IMPORTED_MODULE_0___default().ajax({\n url: \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.current_url),\n method: 'post',\n data: Object.assign({}, getExtraFormData(this.container), {\n route: b64_encode_unicode(parent.value),\n field: this.field.data('fieldName'),\n action: 'getLevelListing',\n 'admin-nonce': grav_config__WEBPACK_IMPORTED_MODULE_2__.config.admin_nonce\n }),\n success: function success(response) {\n _this2.stopLoader();\n if (response.status === 'error') {\n _this2.finder.$emitter.emit('create-column', Parents.createErrorColumn(response.message)[0]);\n return false;\n }\n // stale request\n if (UUID !== XHRUUID) {\n return false;\n }\n return callback(response.data);\n }\n });\n }\n }, {\n key: \"startLoader\",\n value: function startLoader() {\n this.loadingIndicator = Parents.createLoadingColumn();\n this.finder.$emitter.emit('create-column', this.loadingIndicator[0]);\n return this.loadingIndicator;\n }\n }, {\n key: \"stopLoader\",\n value: function stopLoader() {\n return this.loadingIndicator && this.loadingIndicator.remove();\n }\n }], [{\n key: \"createItemContent\",\n value: function createItemContent(config, item) {\n var frag = document.createDocumentFragment();\n var label = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"
\"));\n var infoContainer = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
');\n var iconPrepend = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
');\n var iconAppend = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
');\n var badge = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
');\n var prependClasses = ['fa'];\n var appendClasses = ['fa'];\n\n // prepend icon\n if (item.children || item.type === 'dir') {\n prependClasses.push('fa-folder');\n } else if (item.type === 'root') {\n prependClasses.push('fa-sitemap');\n } else if (item.type === 'file') {\n prependClasses.push('fa-file-o');\n }\n iconPrepend.addClass(prependClasses.join(' '));\n\n // text label\n label.text(item[config.labelKey]).prepend(iconPrepend);\n label.appendTo(frag);\n\n // append icon\n if (item.children || item['has-children']) {\n appendClasses.push('fa-caret-right');\n badge.text(item.size || item.count || 0);\n badge.appendTo(infoContainer);\n }\n iconAppend.addClass(appendClasses.join(' '));\n iconAppend.appendTo(infoContainer);\n infoContainer.appendTo(frag);\n return frag;\n }\n }, {\n key: \"createLoadingColumn\",\n value: function createLoadingColumn() {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"\\n
\\n \");\n }\n }, {\n key: \"createErrorColumn\",\n value: function createErrorColumn(error) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"\\n
\\n
\\n \\n \".concat(error, \" \\n
\\n
\\n \"));\n }\n }]);\n}();\n\nvar b64_encode_unicode = function b64_encode_unicode(str) {\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function toSolidBytes(match, p1) {\n return String.fromCharCode('0x' + p1);\n }));\n};\nvar b64_decode_unicode = function b64_decode_unicode(str) {\n return decodeURIComponent(atob(str).split('').map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n};\nvar getExtraFormData = function getExtraFormData(container) {\n var form = container.closest('form');\n if (container.closest('[data-remodal-id]').length) {\n form = jquery__WEBPACK_IMPORTED_MODULE_0___default()('form#blueprints');\n }\n var data = {};\n var unique_id = form.find('[name=\"__unique_form_id__\"]');\n data['__form-name__'] = form.find('[name=\"__form-name__\"]').val();\n data['form-nonce'] = form.find('[name=\"form-nonce\"]').val();\n if (unique_id.length) {\n data['__unique_form_id__'] = unique_id.val();\n }\n return data;\n};\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-parents]', function (event) {\n event.preventDefault();\n event.stopPropagation();\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var field = target.closest('.parents-wrapper').find('input[name]');\n var fieldName = field.attr('name');\n if (!field.length) {\n fieldName = target.data('parents');\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[name=\\\"\".concat(target.data('parents'), \"\\\"]\")).first();\n }\n var modal = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-remodal-id=\\\"\".concat(target.data('remodalTarget') || 'parents', \"\\\"]\"));\n var loader = modal.find('.grav-loading');\n var content = modal.find('.parents-content');\n loader.css('display', 'block');\n content.html('');\n jquery__WEBPACK_IMPORTED_MODULE_0___default().ajax({\n url: \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.current_url),\n method: 'post',\n data: Object.assign({}, getExtraFormData(target), {\n route: b64_encode_unicode(field.val()),\n field: field.data('fieldName'),\n action: 'getLevelListing',\n 'admin-nonce': grav_config__WEBPACK_IMPORTED_MODULE_2__.config.admin_nonce,\n initial: true\n }),\n success: function success(response) {\n loader.css('display', 'none');\n if (response.status === 'error') {\n content.html(response.message);\n return true;\n }\n if (!Instances[\"\".concat(fieldName, \"-\").concat(modal.data('remodalId'))]) {\n Instances[\"\".concat(fieldName, \"-\").concat(modal.data('remodalId'))] = new Parents(content, field, response.data);\n } else {\n Instances[\"\".concat(fieldName, \"-\").concat(modal.data('remodalId'))].finder.reload(response.data);\n }\n modal.data('parents', Instances[\"\".concat(fieldName, \"-\").concat(modal.data('remodalId'))]);\n modal.data('parents-selectedField', field);\n }\n });\n});\n\n// apply finder selection to field\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-remodal-id].parents-container [data-parents-select]', function (event) {\n var modal = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).closest('[data-remodal-id]');\n var parents = modal.data('parents');\n var selectedField = modal.data('parentsSelectedField');\n var finder = parents.finder;\n var field = parents.field;\n var parentLabel = parents.parentLabel;\n var parentName = parents.parentName;\n var selection = finder.findLastActive().item[0];\n var value = selection._item[finder.config.valueKey];\n var name = selection._item[finder.config.labelKey];\n if (selectedField.closest('.remodal').length) {\n var index = field.index(selectedField);\n selectedField.val(value);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(parentLabel[index]).text(value);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(parentName[index]).text(name);\n } else {\n field.val(value);\n parentLabel.text(value);\n parentName.text(name);\n finder.config.defaultPath = value;\n }\n var remodal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal).lookup[jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-remodal-id=\\\"\".concat(modal.data('remodalId'), \"\\\"]\")).data('remodal')];\n remodal.close();\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FBQzJELElBQUksQ0FBQ2lELElBQUksQ0FBQztJQUNyQjFHLE1BQU0sQ0FBQ2hCLE1BQU0sQ0FBQ3FCLFdBQVcsR0FBR1csS0FBSztFQUVyQztFQUNBLElBQU00RixPQUFPLEdBQUc5SCx1REFBUyxDQUFDK0gsTUFBTSxDQUFDL0gsNkNBQUMsdUJBQUFjLE1BQUEsQ0FBc0JpRyxLQUFLLENBQUN0RyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQUksQ0FBQyxDQUFDQSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7RUFDckdxSCxPQUFPLENBQUNFLEtBQUssQ0FBQyxDQUFDO0FBQ25CLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvZm9ybXMvZmllbGRzL3BhcmVudHMuanM/NDljOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IEZpbmRlciBmcm9tICcuLi8uLi91dGlscy9maW5kZXJqcyc7XG5pbXBvcnQgeyBjb25maWcgYXMgZ3JhdkNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcblxubGV0IFhIUlVVSUQgPSAwO1xuZXhwb3J0IGNvbnN0IEluc3RhbmNlcyA9IHt9O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYXJlbnRzIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIsIGZpZWxkLCBkYXRhKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gJChjb250YWluZXIpO1xuICAgICAgICB0aGlzLmZpZWxkTmFtZSA9IGZpZWxkLmF0dHIoJ25hbWUnKTtcbiAgICAgICAgdGhpcy5maWVsZCA9ICQoYFtuYW1lPVwiJHt0aGlzLmZpZWxkTmFtZX1cIl1gKTtcbiAgICAgICAgdGhpcy5kYXRhID0gZGF0YTtcbiAgICAgICAgdGhpcy5wYXJlbnRMYWJlbCA9ICQoYFtkYXRhLXBhcmVudHMtZmllbGQtbGFiZWw9XCIke3RoaXMuZmllbGROYW1lfVwiXWApO1xuICAgICAgICB0aGlzLnBhcmVudE5hbWUgPSAkKGBbZGF0YS1wYXJlbnRzLWZpZWxkLW5hbWU9XCIke3RoaXMuZmllbGROYW1lfVwiXWApO1xuXG4gICAgICAgIGNvbnN0IGRhdGFMb2FkID0gdGhpcy5kYXRhTG9hZDtcblxuICAgICAgICB0aGlzLmZpbmRlciA9IG5ldyBGaW5kZXIoXG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lcixcbiAgICAgICAgICAgIChwYXJlbnQsIGNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGFMb2FkLmNhbGwodGhpcywgcGFyZW50LCBjYWxsYmFjayk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsS2V5OiAnbmFtZScsXG4gICAgICAgICAgICAgICAgZGVmYXVsdFBhdGg6IHRoaXMuZmllbGQudmFsKCksXG4gICAgICAgICAgICAgICAgY3JlYXRlSXRlbUNvbnRlbnQ6IGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBhcmVudHMuY3JlYXRlSXRlbUNvbnRlbnQodGhpcy5jb25maWcsIGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICAvKlxuICAgICAgICB0aGlzLmZpbmRlci4kZW1pdHRlci5vbignbGVhZi1zZWxlY3RlZCcsIChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnc2VsZWN0ZWQnLCBpdGVtKTtcbiAgICAgICAgICAgIHRoaXMuZmluZGVyLmVtaXQoJ2NyZWF0ZS1jb2x1bW4nLCAoKSA9PiB0aGlzLmNyZWF0ZVNpbXBsZUNvbHVtbihpdGVtKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZmluZGVyLiRlbWl0dGVyLm9uKCdpdGVtLXNlbGVjdGVkJywgKHNlbGVjdGVkKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnc2VsZWN0ZWQnLCBzZWxlY3RlZCk7XG4gICAgICAgICAgICAvLyBmb3IgZnV0dXJlIHVzZSBvbmx5IC0gY3JlYXRlIGNvbHVtbi1jYXJkIGNyZWF0aW9uIGZvciBmaWxlIHdpdGggZGV0YWlscyBsaWtlIGluIG1hY09TIGZpbmRlclxuICAgICAgICAgICAgLy8gdGhpcy5maW5kZXIuJGVtaXR0ZXIoJ2NyZWF0ZS1jb2x1bW4nLCAoKSA9PiB0aGlzLmNyZWF0ZVNpbXBsZUNvbHVtbihzZWxlY3RlZCkpO1xuICAgICAgICB9KTsgKi9cblxuICAgICAgICB0aGlzLmZpbmRlci4kZW1pdHRlci5vbignY29sdW1uLWNyZWF0ZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lclswXS5zY3JvbGxMZWZ0ID0gdGhpcy5jb250YWluZXJbMF0uc2Nyb2xsV2lkdGggLSB0aGlzLmNvbnRhaW5lclswXS5jbGllbnRXaWR0aDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGNyZWF0ZUl0ZW1Db250ZW50KGNvbmZpZywgaXRlbSkge1xuICAgICAgICBjb25zdCBmcmFnID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuXG4gICAgICAgIGNvbnN0IGxhYmVsID0gJChgPHNwYW4gdGl0bGU9XCIke2l0ZW1bY29uZmlnLmxhYmVsS2V5XX1cIiAvPmApO1xuICAgICAgICBjb25zdCBpbmZvQ29udGFpbmVyID0gJCgnPHNwYW4gY2xhc3M9XCJpbmZvLWNvbnRhaW5lclwiIC8+Jyk7XG4gICAgICAgIGNvbnN0IGljb25QcmVwZW5kID0gJCgnPGkgLz4nKTtcbiAgICAgICAgY29uc3QgaWNvbkFwcGVuZCA9ICQoJzxpIC8+Jyk7XG4gICAgICAgIGNvbnN0IGJhZGdlID0gJCgnPHNwYW4gY2xhc3M9XCJiYWRnZVwiIC8+Jyk7XG4gICAgICAgIGNvbnN0IHByZXBlbmRDbGFzc2VzID0gWydmYSddO1xuICAgICAgICBjb25zdCBhcHBlbmRDbGFzc2VzID0gWydmYSddO1xuXG4gICAgICAgIC8vIHByZXBlbmQgaWNvblxuICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbiB8fCBpdGVtLnR5cGUgPT09ICdkaXInKSB7XG4gICAgICAgICAgICBwcmVwZW5kQ2xhc3Nlcy5wdXNoKCdmYS1mb2xkZXInKTtcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICdyb290Jykge1xuICAgICAgICAgICAgcHJlcGVuZENsYXNzZXMucHVzaCgnZmEtc2l0ZW1hcCcpO1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gJ2ZpbGUnKSB7XG4gICAgICAgICAgICBwcmVwZW5kQ2xhc3Nlcy5wdXNoKCdmYS1maWxlLW8nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGljb25QcmVwZW5kLmFkZENsYXNzKHByZXBlbmRDbGFzc2VzLmpvaW4oJyAnKSk7XG5cbiAgICAgICAgLy8gdGV4dCBsYWJlbFxuICAgICAgICBsYWJlbC50ZXh0KGl0ZW1bY29uZmlnLmxhYmVsS2V5XSkucHJlcGVuZChpY29uUHJlcGVuZCk7XG4gICAgICAgIGxhYmVsLmFwcGVuZFRvKGZyYWcpO1xuXG4gICAgICAgIC8vIGFwcGVuZCBpY29uXG4gICAgICAgIGlmIChpdGVtLmNoaWxkcmVuIHx8IGl0ZW1bJ2hhcy1jaGlsZHJlbiddKSB7XG4gICAgICAgICAgICBhcHBlbmRDbGFzc2VzLnB1c2goJ2ZhLWNhcmV0LXJpZ2h0Jyk7XG4gICAgICAgICAgICBiYWRnZS50ZXh0KGl0ZW0uc2l6ZSB8fCBpdGVtLmNvdW50IHx8IDApO1xuICAgICAgICAgICAgYmFkZ2UuYXBwZW5kVG8oaW5mb0NvbnRhaW5lcik7XG4gICAgICAgIH1cblxuICAgICAgICBpY29uQXBwZW5kLmFkZENsYXNzKGFwcGVuZENsYXNzZXMuam9pbignICcpKTtcbiAgICAgICAgaWNvbkFwcGVuZC5hcHBlbmRUbyhpbmZvQ29udGFpbmVyKTtcbiAgICAgICAgaW5mb0NvbnRhaW5lci5hcHBlbmRUbyhmcmFnKTtcblxuICAgICAgICByZXR1cm4gZnJhZztcbiAgICB9XG5cbiAgICBzdGF0aWMgY3JlYXRlTG9hZGluZ0NvbHVtbigpIHtcbiAgICAgICAgcmV0dXJuICQoYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZqcy1jb2wgbGVhZi1jb2xcIiBzdHlsZT1cIm92ZXJmbG93OiBoaWRkZW47XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlYWYtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmF2LWxvYWRpbmdcIj48ZGl2IGNsYXNzPVwiZ3Jhdi1sb2FkZXJcIj5Mb2FkaW5nLi4uPC9kaXY+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgYCk7XG4gICAgfVxuXG4gICAgc3RhdGljIGNyZWF0ZUVycm9yQ29sdW1uKGVycm9yKSB7XG4gICAgICAgIHJldHVybiAkKGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmanMtY29sIGxlYWYtY29sXCIgc3R5bGU9XCJvdmVyZmxvdzogaGlkZGVuO1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWFmLXJvdyBlcnJvclwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLXdhcm5pbmdcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7ZXJyb3J9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIGApO1xuICAgIH1cblxuICAgIGNyZWF0ZVNpbXBsZUNvbHVtbihpdGVtKSB7fVxuXG4gICAgZGF0YUxvYWQocGFyZW50LCBjYWxsYmFjaykge1xuICAgICAgICBpZiAoIXBhcmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHRoaXMuZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFyZW50LnR5cGUgIT09ICdkaXInIHx8ICFwYXJlbnRbJ2hhcy1jaGlsZHJlbiddKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBVVUlEID0gKytYSFJVVUlEO1xuICAgICAgICB0aGlzLnN0YXJ0TG9hZGVyKCk7XG5cbiAgICAgICAgJC5hamF4KHtcbiAgICAgICAgICAgIHVybDogYCR7Z3JhdkNvbmZpZy5jdXJyZW50X3VybH1gLFxuICAgICAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgICAgICBkYXRhOiBPYmplY3QuYXNzaWduKHt9LCBnZXRFeHRyYUZvcm1EYXRhKHRoaXMuY29udGFpbmVyKSwge1xuICAgICAgICAgICAgICAgIHJvdXRlOiBiNjRfZW5jb2RlX3VuaWNvZGUocGFyZW50LnZhbHVlKSxcbiAgICAgICAgICAgICAgICBmaWVsZDogdGhpcy5maWVsZC5kYXRhKCdmaWVsZE5hbWUnKSxcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdnZXRMZXZlbExpc3RpbmcnLFxuICAgICAgICAgICAgICAgICdhZG1pbi1ub25jZSc6IGdyYXZDb25maWcuYWRtaW5fbm9uY2VcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3VjY2VzczogKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wTG9hZGVyKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmluZGVyLiRlbWl0dGVyLmVtaXQoJ2NyZWF0ZS1jb2x1bW4nLCBQYXJlbnRzLmNyZWF0ZUVycm9yQ29sdW1uKHJlc3BvbnNlLm1lc3NhZ2UpWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBzdGFsZSByZXF1ZXN0XG4gICAgICAgICAgICAgICAgaWYgKFVVSUQgIT09IFhIUlVVSUQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhcnRMb2FkZXIoKSB7XG4gICAgICAgIHRoaXMubG9hZGluZ0luZGljYXRvciA9IFBhcmVudHMuY3JlYXRlTG9hZGluZ0NvbHVtbigpO1xuICAgICAgICB0aGlzLmZpbmRlci4kZW1pdHRlci5lbWl0KCdjcmVhdGUtY29sdW1uJywgdGhpcy5sb2FkaW5nSW5kaWNhdG9yWzBdKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkaW5nSW5kaWNhdG9yO1xuICAgIH1cblxuICAgIHN0b3BMb2FkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRpbmdJbmRpY2F0b3IgJiYgdGhpcy5sb2FkaW5nSW5kaWNhdG9yLnJlbW92ZSgpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IGI2NF9lbmNvZGVfdW5pY29kZSA9IChzdHIpID0+IHtcbiAgICByZXR1cm4gYnRvYShlbmNvZGVVUklDb21wb25lbnQoc3RyKS5yZXBsYWNlKC8lKFswLTlBLUZdezJ9KS9nLFxuICAgICAgICBmdW5jdGlvbiB0b1NvbGlkQnl0ZXMobWF0Y2gsIHAxKSB7XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgnMHgnICsgcDEpO1xuICAgICAgICB9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgYjY0X2RlY29kZV91bmljb2RlID0gKHN0cikgPT4ge1xuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoYXRvYihzdHIpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24oYykge1xuICAgICAgICByZXR1cm4gJyUnICsgKCcwMCcgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMik7XG4gICAgfSkuam9pbignJykpO1xufTtcblxuY29uc3QgZ2V0RXh0cmFGb3JtRGF0YSA9IChjb250YWluZXIpID0+IHtcbiAgICBsZXQgZm9ybSA9IGNvbnRhaW5lci5jbG9zZXN0KCdmb3JtJyk7XG4gICAgaWYgKGNvbnRhaW5lci5jbG9zZXN0KCdbZGF0YS1yZW1vZGFsLWlkXScpLmxlbmd0aCkge1xuICAgICAgICBmb3JtID0gJCgnZm9ybSNibHVlcHJpbnRzJyk7XG4gICAgfVxuICAgIGNvbnN0IGRhdGEgPSB7fTtcbiAgICBjb25zdCB1bmlxdWVfaWQgPSBmb3JtLmZpbmQoJ1tuYW1lPVwiX191bmlxdWVfZm9ybV9pZF9fXCJdJyk7XG5cbiAgICBkYXRhWydfX2Zvcm0tbmFtZV9fJ10gPSBmb3JtLmZpbmQoJ1tuYW1lPVwiX19mb3JtLW5hbWVfX1wiXScpLnZhbCgpO1xuICAgIGRhdGFbJ2Zvcm0tbm9uY2UnXSA9IGZvcm0uZmluZCgnW25hbWU9XCJmb3JtLW5vbmNlXCJdJykudmFsKCk7XG5cbiAgICBpZiAodW5pcXVlX2lkLmxlbmd0aCkge1xuICAgICAgICBkYXRhWydfX3VuaXF1ZV9mb3JtX2lkX18nXSA9IHVuaXF1ZV9pZC52YWwoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbn07XG5cbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1wYXJlbnRzXScsIChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGxldCBmaWVsZCA9IHRhcmdldC5jbG9zZXN0KCcucGFyZW50cy13cmFwcGVyJykuZmluZCgnaW5wdXRbbmFtZV0nKTtcbiAgICBsZXQgZmllbGROYW1lID0gZmllbGQuYXR0cignbmFtZScpO1xuXG4gICAgaWYgKCFmaWVsZC5sZW5ndGgpIHtcbiAgICAgICAgZmllbGROYW1lID0gdGFyZ2V0LmRhdGEoJ3BhcmVudHMnKTtcbiAgICAgICAgZmllbGQgPSAkKGBbbmFtZT1cIiR7dGFyZ2V0LmRhdGEoJ3BhcmVudHMnKX1cIl1gKS5maXJzdCgpO1xuICAgIH1cblxuICAgIGNvbnN0IG1vZGFsID0gJChgW2RhdGEtcmVtb2RhbC1pZD1cIiR7dGFyZ2V0LmRhdGEoJ3JlbW9kYWxUYXJnZXQnKSB8fCAncGFyZW50cyd9XCJdYCk7XG4gICAgY29uc3QgbG9hZGVyID0gbW9kYWwuZmluZCgnLmdyYXYtbG9hZGluZycpO1xuICAgIGNvbnN0IGNvbnRlbnQgPSBtb2RhbC5maW5kKCcucGFyZW50cy1jb250ZW50Jyk7XG5cbiAgICBsb2FkZXIuY3NzKCdkaXNwbGF5JywgJ2Jsb2NrJyk7XG4gICAgY29udGVudC5odG1sKCcnKTtcbiAgICAkLmFqYXgoe1xuICAgICAgICB1cmw6IGAke2dyYXZDb25maWcuY3VycmVudF91cmx9YCxcbiAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgIGRhdGE6IE9iamVjdC5hc3NpZ24oe30sIGdldEV4dHJhRm9ybURhdGEodGFyZ2V0KSwge1xuICAgICAgICAgICAgcm91dGU6IGI2NF9lbmNvZGVfdW5pY29kZShmaWVsZC52YWwoKSksXG4gICAgICAgICAgICBmaWVsZDogZmllbGQuZGF0YSgnZmllbGROYW1lJyksXG4gICAgICAgICAgICBhY3Rpb246ICdnZXRMZXZlbExpc3RpbmcnLFxuICAgICAgICAgICAgJ2FkbWluLW5vbmNlJzogZ3JhdkNvbmZpZy5hZG1pbl9ub25jZSxcbiAgICAgICAgICAgIGluaXRpYWw6IHRydWVcbiAgICAgICAgfSksXG4gICAgICAgIHN1Y2Nlc3MocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGxvYWRlci5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuXG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgICAgICAgICAgICAgY29udGVudC5odG1sKHJlc3BvbnNlLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIUluc3RhbmNlc1tgJHtmaWVsZE5hbWV9LSR7bW9kYWwuZGF0YSgncmVtb2RhbElkJyl9YF0pIHtcbiAgICAgICAgICAgICAgICBJbnN0YW5jZXNbYCR7ZmllbGROYW1lfS0ke21vZGFsLmRhdGEoJ3JlbW9kYWxJZCcpfWBdID0gbmV3IFBhcmVudHMoY29udGVudCwgZmllbGQsIHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBJbnN0YW5jZXNbYCR7ZmllbGROYW1lfS0ke21vZGFsLmRhdGEoJ3JlbW9kYWxJZCcpfWBdLmZpbmRlci5yZWxvYWQocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1vZGFsLmRhdGEoJ3BhcmVudHMnLCBJbnN0YW5jZXNbYCR7ZmllbGROYW1lfS0ke21vZGFsLmRhdGEoJ3JlbW9kYWxJZCcpfWBdKTtcbiAgICAgICAgICAgIG1vZGFsLmRhdGEoJ3BhcmVudHMtc2VsZWN0ZWRGaWVsZCcsIGZpZWxkKTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG5cbi8vIGFwcGx5IGZpbmRlciBzZWxlY3Rpb24gdG8gZmllbGRcbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1yZW1vZGFsLWlkXS5wYXJlbnRzLWNvbnRhaW5lciBbZGF0YS1wYXJlbnRzLXNlbGVjdF0nLCAoZXZlbnQpID0+IHtcbiAgICBjb25zdCBtb2RhbCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCkuY2xvc2VzdCgnW2RhdGEtcmVtb2RhbC1pZF0nKTtcbiAgICBjb25zdCBwYXJlbnRzID0gbW9kYWwuZGF0YSgncGFyZW50cycpO1xuICAgIGNvbnN0IHNlbGVjdGVkRmllbGQgPSBtb2RhbC5kYXRhKCdwYXJlbnRzU2VsZWN0ZWRGaWVsZCcpO1xuICAgIGNvbnN0IGZpbmRlciA9IHBhcmVudHMuZmluZGVyO1xuICAgIGNvbnN0IGZpZWxkID0gcGFyZW50cy5maWVsZDtcbiAgICBjb25zdCBwYXJlbnRMYWJlbCA9IHBhcmVudHMucGFyZW50TGFiZWw7XG4gICAgY29uc3QgcGFyZW50TmFtZSA9IHBhcmVudHMucGFyZW50TmFtZTtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSBmaW5kZXIuZmluZExhc3RBY3RpdmUoKS5pdGVtWzBdO1xuICAgIGNvbnN0IHZhbHVlID0gc2VsZWN0aW9uLl9pdGVtW2ZpbmRlci5jb25maWcudmFsdWVLZXldO1xuICAgIGNvbnN0IG5hbWUgPSBzZWxlY3Rpb24uX2l0ZW1bZmluZGVyLmNvbmZpZy5sYWJlbEtleV07XG5cbiAgICBpZiAoc2VsZWN0ZWRGaWVsZC5jbG9zZXN0KCcucmVtb2RhbCcpLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBpbmRleCA9IGZpZWxkLmluZGV4KHNlbGVjdGVkRmllbGQpO1xuICAgICAgICBzZWxlY3RlZEZpZWxkLnZhbCh2YWx1ZSk7XG4gICAgICAgICQocGFyZW50TGFiZWxbaW5kZXhdKS50ZXh0KHZhbHVlKTtcbiAgICAgICAgJChwYXJlbnROYW1lW2luZGV4XSkudGV4dChuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmaWVsZC52YWwodmFsdWUpO1xuICAgICAgICBwYXJlbnRMYWJlbC50ZXh0KHZhbHVlKTtcbiAgICAgICAgcGFyZW50TmFtZS50ZXh0KG5hbWUpO1xuICAgICAgICBmaW5kZXIuY29uZmlnLmRlZmF1bHRQYXRoID0gdmFsdWU7XG5cbiAgICB9XG4gICAgY29uc3QgcmVtb2RhbCA9ICQucmVtb2RhbC5sb29rdXBbJChgW2RhdGEtcmVtb2RhbC1pZD1cIiR7bW9kYWwuZGF0YSgncmVtb2RhbElkJyl9XCJdYCkuZGF0YSgncmVtb2RhbCcpXTtcbiAgICByZW1vZGFsLmNsb3NlKCk7XG59KTtcbiJdLCJuYW1lcyI6WyIkIiwiRmluZGVyIiwiY29uZmlnIiwiZ3JhdkNvbmZpZyIsIlhIUlVVSUQiLCJJbnN0YW5jZXMiLCJQYXJlbnRzIiwiY29udGFpbmVyIiwiZmllbGQiLCJkYXRhIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2siLCJmaWVsZE5hbWUiLCJhdHRyIiwiY29uY2F0IiwicGFyZW50TGFiZWwiLCJwYXJlbnROYW1lIiwiZGF0YUxvYWQiLCJmaW5kZXIiLCJwYXJlbnQiLCJjYWxsYmFjayIsImNhbGwiLCJsYWJlbEtleSIsImRlZmF1bHRQYXRoIiwidmFsIiwiY3JlYXRlSXRlbUNvbnRlbnQiLCJpdGVtIiwiJGVtaXR0ZXIiLCJvbiIsInNjcm9sbExlZnQiLCJzY3JvbGxXaWR0aCIsImNsaWVudFdpZHRoIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJjcmVhdGVTaW1wbGVDb2x1bW4iLCJfdGhpczIiLCJ0eXBlIiwiVVVJRCIsInN0YXJ0TG9hZGVyIiwiYWpheCIsInVybCIsImN1cnJlbnRfdXJsIiwibWV0aG9kIiwiT2JqZWN0IiwiYXNzaWduIiwiZ2V0RXh0cmFGb3JtRGF0YSIsInJvdXRlIiwiYjY0X2VuY29kZV91bmljb2RlIiwiYWN0aW9uIiwiYWRtaW5fbm9uY2UiLCJzdWNjZXNzIiwicmVzcG9uc2UiLCJzdG9wTG9hZGVyIiwic3RhdHVzIiwiZW1pdCIsImNyZWF0ZUVycm9yQ29sdW1uIiwibWVzc2FnZSIsImxvYWRpbmdJbmRpY2F0b3IiLCJjcmVhdGVMb2FkaW5nQ29sdW1uIiwicmVtb3ZlIiwiZnJhZyIsImRvY3VtZW50IiwiY3JlYXRlRG9jdW1lbnRGcmFnbWVudCIsImxhYmVsIiwiaW5mb0NvbnRhaW5lciIsImljb25QcmVwZW5kIiwiaWNvbkFwcGVuZCIsImJhZGdlIiwicHJlcGVuZENsYXNzZXMiLCJhcHBlbmRDbGFzc2VzIiwiY2hpbGRyZW4iLCJwdXNoIiwiYWRkQ2xhc3MiLCJqb2luIiwidGV4dCIsInByZXBlbmQiLCJhcHBlbmRUbyIsInNpemUiLCJjb3VudCIsImVycm9yIiwiZGVmYXVsdCIsInN0ciIsImJ0b2EiLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwidG9Tb2xpZEJ5dGVzIiwibWF0Y2giLCJwMSIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsImI2NF9kZWNvZGVfdW5pY29kZSIsImRlY29kZVVSSUNvbXBvbmVudCIsImF0b2IiLCJzcGxpdCIsIm1hcCIsImMiLCJjaGFyQ29kZUF0IiwidG9TdHJpbmciLCJzbGljZSIsImZvcm0iLCJjbG9zZXN0IiwibGVuZ3RoIiwidW5pcXVlX2lkIiwiZmluZCIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwiZmlyc3QiLCJtb2RhbCIsImxvYWRlciIsImNvbnRlbnQiLCJjc3MiLCJodG1sIiwiaW5pdGlhbCIsInJlbG9hZCIsInBhcmVudHMiLCJzZWxlY3RlZEZpZWxkIiwic2VsZWN0aW9uIiwiZmluZExhc3RBY3RpdmUiLCJfaXRlbSIsInZhbHVlS2V5IiwibmFtZSIsImluZGV4IiwicmVtb2RhbCIsImxvb2t1cCIsImNsb3NlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/parents.js\n\n}");
/***/ }),
/***/ "./app/forms/fields/permissions.js":
/*!*****************************************!*\
!*** ./app/forms/fields/permissions.js ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\nvar radioSelector = '.permission-container.parent-section input[type=\"radio\"]';\nvar handleParent = function handleParent(event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var value = target.val();\n var container = target.closest('.parent-section');\n var fieldset = container.next('fieldset');\n var radios = fieldset.find(\"input[type=\\\"radio\\\"][value=\\\"\".concat(value, \"\\\"]\"));\n if (container.data('isLocked') !== false) {\n container.data('isUpdating', true);\n radios.each(function (index, radio) {\n var ID = radio.id;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(radio).siblings(\"[for=\\\"\".concat(ID, \"\\\"]\")).trigger('click');\n });\n container.data('isUpdating', false);\n }\n};\nvar boundHandleParent = handleParent.bind(handleParent);\nbody.on('click', '.permission-container.parent-section label', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var container = target.closest('.parent-section');\n container.data('isLocked', true);\n});\nbody.on('input', radioSelector, boundHandleParent);\nbody.on('input', '.permissions-container input[type=\"radio\"][data-parent-id]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var parent = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[for=\\\"\".concat(target.data('parentId'), \"\\\"]\"));\n var container = target.closest('fieldset').prev('.permission-container.parent-section');\n if (container.data('isUpdating') === true) {\n return true;\n }\n body.off('input', radioSelector, boundHandleParent);\n container.data('isLocked', false);\n parent.trigger('click');\n body.on('input', radioSelector, boundHandleParent);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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eEIsYUFBYSxFQUFFc0IsaUJBQWlCLENBQUM7QUFDdEQsQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9mb3Jtcy9maWVsZHMvcGVybWlzc2lvbnMuanM/Yzg1ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuXG5jb25zdCBib2R5ID0gJCgnYm9keScpO1xuY29uc3QgcmFkaW9TZWxlY3RvciA9ICcucGVybWlzc2lvbi1jb250YWluZXIucGFyZW50LXNlY3Rpb24gaW5wdXRbdHlwZT1cInJhZGlvXCJdJztcblxuY29uc3QgaGFuZGxlUGFyZW50ID0gKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBjb25zdCB2YWx1ZSA9IHRhcmdldC52YWwoKTtcbiAgICBjb25zdCBjb250YWluZXIgPSB0YXJnZXQuY2xvc2VzdCgnLnBhcmVudC1zZWN0aW9uJyk7XG4gICAgY29uc3QgZmllbGRzZXQgPSBjb250YWluZXIubmV4dCgnZmllbGRzZXQnKTtcbiAgICBjb25zdCByYWRpb3MgPSBmaWVsZHNldC5maW5kKGBpbnB1dFt0eXBlPVwicmFkaW9cIl1bdmFsdWU9XCIke3ZhbHVlfVwiXWApO1xuXG4gICAgaWYgKGNvbnRhaW5lci5kYXRhKCdpc0xvY2tlZCcpICE9PSBmYWxzZSkge1xuICAgICAgICBjb250YWluZXIuZGF0YSgnaXNVcGRhdGluZycsIHRydWUpO1xuICAgICAgICByYWRpb3MuZWFjaCgoaW5kZXgsIHJhZGlvKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBJRCA9IHJhZGlvLmlkO1xuICAgICAgICAgICAgJChyYWRpbykuc2libGluZ3MoYFtmb3I9XCIke0lEfVwiXWApLnRyaWdnZXIoJ2NsaWNrJyk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb250YWluZXIuZGF0YSgnaXNVcGRhdGluZycsIGZhbHNlKTtcbiAgICB9XG59O1xuXG5jb25zdCBib3VuZEhhbmRsZVBhcmVudCA9IGhhbmRsZVBhcmVudC5iaW5kKGhhbmRsZVBhcmVudCk7XG5cbmJvZHkub24oJ2NsaWNrJywgJy5wZXJtaXNzaW9uLWNvbnRhaW5lci5wYXJlbnQtc2VjdGlvbiBsYWJlbCcsIChldmVudCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGFyZ2V0LmNsb3Nlc3QoJy5wYXJlbnQtc2VjdGlvbicpO1xuICAgIGNvbnRhaW5lci5kYXRhKCdpc0xvY2tlZCcsIHRydWUpO1xufSk7XG5cbmJvZHkub24oJ2lucHV0JywgcmFkaW9TZWxlY3RvciwgYm91bmRIYW5kbGVQYXJlbnQpO1xuXG5ib2R5Lm9uKCdpbnB1dCcsICcucGVybWlzc2lvbnMtY29udGFpbmVyIGlucHV0W3R5cGU9XCJyYWRpb1wiXVtkYXRhLXBhcmVudC1pZF0nLCAoZXZlbnQpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGNvbnN0IHBhcmVudCA9ICQoYFtmb3I9XCIke3RhcmdldC5kYXRhKCdwYXJlbnRJZCcpfVwiXWApO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRhcmdldC5jbG9zZXN0KCdmaWVsZHNldCcpLnByZXYoJy5wZXJtaXNzaW9uLWNvbnRhaW5lci5wYXJlbnQtc2VjdGlvbicpO1xuXG4gICAgaWYgKGNvbnRhaW5lci5kYXRhKCdpc1VwZGF0aW5nJykgPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgYm9keS5vZmYoJ2lucHV0JywgcmFkaW9TZWxlY3RvciwgYm91bmRIYW5kbGVQYXJlbnQpO1xuICAgIGNvbnRhaW5lci5kYXRhKCdpc0xvY2tlZCcsIGZhbHNlKTtcbiAgICBwYXJlbnQudHJpZ2dlcignY2xpY2snKTtcbiAgICBib2R5Lm9uKCdpbnB1dCcsIHJhZGlvU2VsZWN0b3IsIGJvdW5kSGFuZGxlUGFyZW50KTtcbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJib2R5IiwicmFkaW9TZWxlY3RvciIsImhhbmRsZVBhcmVudCIsImV2ZW50IiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsInZhbHVlIiwidmFsIiwiY29udGFpbmVyIiwiY2xvc2VzdCIsImZpZWxkc2V0IiwibmV4dCIsInJhZGlvcyIsImZpbmQiLCJjb25jYXQiLCJkYXRhIiwiZWFjaCIsImluZGV4IiwicmFkaW8iLCJJRCIsImlkIiwic2libGluZ3MiLCJ0cmlnZ2VyIiwiYm91bmRIYW5kbGVQYXJlbnQiLCJiaW5kIiwib24iLCJwYXJlbnQiLCJwcmV2Iiwib2ZmIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/permissions.js\n\n}");
/***/ }),
/***/ "./app/forms/fields/range.js":
/*!***********************************!*\
!*** ./app/forms/fields/range.js ***!
\***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('input', '[type=\"range\"].rangefield, [type=\"number\"].rangefield', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var type = target.attr('type').toLowerCase();\n var sibling = type === 'range' ? 'number' : 'range';\n var feedback = target.siblings(\"[type=\\\"\".concat(sibling, \"\\\"].rangefield\"));\n feedback.val(target.val());\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL3JhbmdlLmpzIiwibWFwcGluZ3MiOiI7OztBQUF1QjtBQUV2QkEsNkNBQUMsQ0FBQ0MsUUFBUSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsdURBQXVELEVBQUUsVUFBQ0MsS0FBSyxFQUFLO0VBQ3hGLElBQU1DLE1BQU0sR0FBR0osNkNBQUMsQ0FBQ0csS0FBSyxDQUFDRSxhQUFhLENBQUM7RUFDckMsSUFBTUMsSUFBSSxHQUFHRixNQUFNLENBQUNHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQ0MsV0FBVyxDQUFDLENBQUM7RUFDOUMsSUFBTUMsT0FBTyxHQUFHSCxJQUFJLEtBQUssT0FBTyxHQUFHLFFBQVEsR0FBRyxPQUFPO0VBQ3JELElBQU1JLFFBQVEsR0FBR04sTUFBTSxDQUFDTyxRQUFRLFlBQUFDLE1BQUEsQ0FBV0gsT0FBTyxtQkFBZSxDQUFDO0VBRWxFQyxRQUFRLENBQUNHLEdBQUcsQ0FBQ1QsTUFBTSxDQUFDUyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvZm9ybXMvZmllbGRzL3JhbmdlLmpzP2Y5ZDciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuJChkb2N1bWVudCkub24oJ2lucHV0JywgJ1t0eXBlPVwicmFuZ2VcIl0ucmFuZ2VmaWVsZCwgW3R5cGU9XCJudW1iZXJcIl0ucmFuZ2VmaWVsZCcsIChldmVudCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgY29uc3QgdHlwZSA9IHRhcmdldC5hdHRyKCd0eXBlJykudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBzaWJsaW5nID0gdHlwZSA9PT0gJ3JhbmdlJyA/ICdudW1iZXInIDogJ3JhbmdlJztcbiAgICBjb25zdCBmZWVkYmFjayA9IHRhcmdldC5zaWJsaW5ncyhgW3R5cGU9XCIke3NpYmxpbmd9XCJdLnJhbmdlZmllbGRgKTtcblxuICAgIGZlZWRiYWNrLnZhbCh0YXJnZXQudmFsKCkpO1xufSk7XG4iXSwibmFtZXMiOlsiJCIsImRvY3VtZW50Iiwib24iLCJldmVudCIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJ0eXBlIiwiYXR0ciIsInRvTG93ZXJDYXNlIiwic2libGluZyIsImZlZWRiYWNrIiwic2libGluZ3MiLCJjb25jYXQiLCJ2YWwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/range.js\n\n}");
/***/ }),
/***/ "./app/forms/fields/selectize.js":
/*!***************************************!*\
!*** ./app/forms/fields/selectize.js ***!
\***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Instance: () => (/* binding */ Instance),\n/* harmony export */ \"default\": () => (/* binding */ SelectizeField)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! selectize */ \"./node_modules/selectize/dist/js/selectize.js\");\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(selectize__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_selectize_required_fix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/selectize-required-fix */ \"./app/utils/selectize-required-fix.js\");\n/* harmony import */ var _utils_selectize_option_click__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/selectize-option-click */ \"./app/utils/selectize-option-click.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\nvar PagesRoute = {\n option: function option(item, escape) {\n var label = escape(item.text).split(' ');\n var arrows = label.shift();\n var slug = label.shift();\n return \"
\\n \".concat(arrows, \" \\n \\n \").concat(slug.replace('(', '/').replace(')', ''), \" \\n \").concat(label.join(' '), \" \\n \\n
\");\n }\n};\nvar SelectizeField = /*#__PURE__*/function () {\n function SelectizeField() {\n var _this = this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, SelectizeField);\n this.options = Object.assign({}, options);\n this.elements = [];\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-selectize]').each(function (index, element) {\n return _this.add(element);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', this._onAddedNodes.bind(this));\n }\n return _createClass(SelectizeField, [{\n key: \"add\",\n value: function add(element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n if (element.closest('template').length) {\n return false;\n }\n var tag = element.prop('tagName').toLowerCase();\n var isInput = tag === 'input' || tag === 'select';\n var data = (isInput ? element.closest('[data-grav-selectize]') : element).data('grav-selectize') || {};\n var field = isInput ? element : element.find('input, select');\n if (field.attr('name') === 'data[route]') {\n data = jquery__WEBPACK_IMPORTED_MODULE_0___default().extend({}, data, {\n render: PagesRoute\n });\n }\n if (!field.length || field.get(0).selectize) {\n return;\n }\n var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default().merge(data.plugins ? data.plugins : [], ['required-fix']);\n field.selectize(jquery__WEBPACK_IMPORTED_MODULE_0___default().extend({}, data, {\n plugins: plugins\n }));\n this.elements.push(field.data('selectize'));\n }\n }, {\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target /* , record, instance */) {\n var _this2 = this;\n var fields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('select.fancy, input.fancy, [data-grav-selectize]').filter(function (index, element) {\n return !jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).closest('template').length;\n });\n if (!fields.length) {\n return;\n }\n fields.each(function (index, field) {\n return _this2.add(field);\n });\n }\n }]);\n}();\n\nvar Instance = new SelectizeField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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L0dyYXYvLi9hcHAvZm9ybXMvZmllbGRzL3NlbGVjdGl6ZS5qcz83MzUzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgJ3NlbGVjdGl6ZSc7XG5pbXBvcnQgJy4uLy4uL3V0aWxzL3NlbGVjdGl6ZS1yZXF1aXJlZC1maXgnO1xuaW1wb3J0ICcuLi8uLi91dGlscy9zZWxlY3RpemUtb3B0aW9uLWNsaWNrJztcblxuY29uc3QgUGFnZXNSb3V0ZSA9IHtcbiAgICBvcHRpb246IGZ1bmN0aW9uKGl0ZW0sIGVzY2FwZSkge1xuICAgICAgICBjb25zdCBsYWJlbCA9IGVzY2FwZShpdGVtLnRleHQpLnNwbGl0KCcgJyk7XG4gICAgICAgIGNvbnN0IGFycm93cyA9IGxhYmVsLnNoaWZ0KCk7XG4gICAgICAgIGNvbnN0IHNsdWcgPSBsYWJlbC5zaGlmdCgpO1xuXG4gICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cInNlbGVjdGl6ZS1yb3V0ZS1vcHRpb25cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ncmV5XCI+JHthcnJvd3N9PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwZGF0ZVwiPiR7c2x1Zy5yZXBsYWNlKCcoJywgJy8nKS5yZXBsYWNlKCcpJywgJycpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj4ke2xhYmVsLmpvaW4oJyAnKX08L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PmA7XG4gICAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VsZWN0aXplRmllbGQge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7fSkge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zKTtcbiAgICAgICAgdGhpcy5lbGVtZW50cyA9IFtdO1xuXG4gICAgICAgICQoJ1tkYXRhLWdyYXYtc2VsZWN0aXplXScpLmVhY2goKGluZGV4LCBlbGVtZW50KSA9PiB0aGlzLmFkZChlbGVtZW50KSk7XG4gICAgICAgICQoJ2JvZHknKS5vbignbXV0YXRpb24uX2dyYXYnLCB0aGlzLl9vbkFkZGVkTm9kZXMuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgYWRkKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7XG5cbiAgICAgICAgaWYgKGVsZW1lbnQuY2xvc2VzdCgndGVtcGxhdGUnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB0YWcgPSBlbGVtZW50LnByb3AoJ3RhZ05hbWUnKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBsZXQgaXNJbnB1dCA9IHRhZyA9PT0gJ2lucHV0JyB8fCB0YWcgPT09ICdzZWxlY3QnO1xuXG4gICAgICAgIGxldCBkYXRhID0gKGlzSW5wdXQgPyBlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLWdyYXYtc2VsZWN0aXplXScpIDogZWxlbWVudCkuZGF0YSgnZ3Jhdi1zZWxlY3RpemUnKSB8fCB7fTtcbiAgICAgICAgbGV0IGZpZWxkID0gKGlzSW5wdXQgPyBlbGVtZW50IDogZWxlbWVudC5maW5kKCdpbnB1dCwgc2VsZWN0JykpO1xuXG4gICAgICAgIGlmIChmaWVsZC5hdHRyKCduYW1lJykgPT09ICdkYXRhW3JvdXRlXScpIHtcbiAgICAgICAgICAgIGRhdGEgPSAkLmV4dGVuZCh7fSwgZGF0YSwgeyByZW5kZXI6IFBhZ2VzUm91dGUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWZpZWxkLmxlbmd0aCB8fCBmaWVsZC5nZXQoMCkuc2VsZWN0aXplKSB7IHJldHVybjsgfVxuICAgICAgICBjb25zdCBwbHVnaW5zID0gJC5tZXJnZShkYXRhLnBsdWdpbnMgPyBkYXRhLnBsdWdpbnMgOiBbXSwgWydyZXF1aXJlZC1maXgnXSk7XG4gICAgICAgIGZpZWxkLnNlbGVjdGl6ZSgkLmV4dGVuZCh7fSwgZGF0YSwgeyBwbHVnaW5zIH0pKTtcblxuICAgICAgICB0aGlzLmVsZW1lbnRzLnB1c2goZmllbGQuZGF0YSgnc2VsZWN0aXplJykpO1xuICAgIH1cblxuICAgIF9vbkFkZGVkTm9kZXMoZXZlbnQsIHRhcmdldC8qICwgcmVjb3JkLCBpbnN0YW5jZSAqLykge1xuICAgICAgICBsZXQgZmllbGRzID0gJCh0YXJnZXQpLmZpbmQoJ3NlbGVjdC5mYW5jeSwgaW5wdXQuZmFuY3ksIFtkYXRhLWdyYXYtc2VsZWN0aXplXScpLmZpbHRlcigoaW5kZXgsIGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhJChlbGVtZW50KS5jbG9zZXN0KCd0ZW1wbGF0ZScpLmxlbmd0aDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFmaWVsZHMubGVuZ3RoKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGZpZWxkcy5lYWNoKChpbmRleCwgZmllbGQpID0+IHRoaXMuYWRkKGZpZWxkKSk7XG4gICAgfVxufVxuXG5leHBvcnQgbGV0IEluc3RhbmNlID0gbmV3IFNlbGVjdGl6ZUZpZWxkKCk7XG4iXSwibmFtZXMiOlsiJCIsIlBhZ2VzUm91dGUiLCJvcHRpb24iLCJpdGVtIiwiZXNjYXBlIiwibGFiZWwiLCJ0ZXh0Iiwic3BsaXQiLCJhcnJvd3MiLCJzaGlmdCIsInNsdWciLCJjb25jYXQiLCJyZXBsYWNlIiwiam9pbiIsIlNlbGVjdGl6ZUZpZWxkIiwiX3RoaXMiLCJvcHRpb25zIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiX2NsYXNzQ2FsbENoZWNrIiwiT2JqZWN0IiwiYXNzaWduIiwiZWxlbWVudHMiLCJlYWNoIiwiaW5kZXgiLCJlbGVtZW50IiwiYWRkIiwib24iLCJfb25BZGRlZE5vZGVzIiwiYmluZCIsIl9jcmVhdGVDbGFzcyIsImtleSIsInZhbHVlIiwiY2xvc2VzdCIsInRhZyIsInByb3AiLCJ0b0xvd2VyQ2FzZSIsImlzSW5wdXQiLCJkYXRhIiwiZmllbGQiLCJmaW5kIiwiYXR0ciIsImV4dGVuZCIsInJlbmRlciIsImdldCIsInNlbGVjdGl6ZSIsInBsdWdpbnMiLCJtZXJnZSIsInB1c2giLCJldmVudCIsInRhcmdldCIsIl90aGlzMiIsImZpZWxkcyIsImZpbHRlciIsImRlZmF1bHQiLCJJbnN0YW5jZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/selectize.js\n\n}");
/***/ }),
/***/ "./app/forms/fields/selectunique.js":
/*!******************************************!*\
!*** ./app/forms/fields/selectunique.js ***!
\******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Instance: () => (/* binding */ Instance),\n/* harmony export */ \"default\": () => (/* binding */ SelectUniqueField)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mout_object_forIn__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mout/object/forIn */ \"./node_modules/mout/object/forIn.js\");\n/* harmony import */ var mout_object_forIn__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mout_object_forIn__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n// import { config } from 'grav-config';\n\nvar Data = {};\nvar SelectUniqueField = /*#__PURE__*/function () {\n function SelectUniqueField(options) {\n var _this = this;\n _classCallCheck(this, SelectUniqueField);\n var body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n this.items = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n this.options = Object.assign({}, this.defaults, options);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-select-observe]').each(function (index, element) {\n return _this.addSelect(element);\n }).last().trigger('change', {\n load: true\n });\n body.on('mutation._grav', this._onAddedNodes.bind(this));\n body.on('mutation_removed._grav', this._onRemovedNodes.bind(this));\n }\n return _createClass(SelectUniqueField, [{\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target, record, instance) {\n var _this2 = this;\n var fields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-select-observe]');\n if (!fields.length) {\n return;\n }\n fields.each(function (index, field) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n if (!~_this2.items.index(field)) {\n _this2.addSelect(field);\n }\n });\n }\n }, {\n key: \"_onRemovedNodes\",\n value: function _onRemovedNodes(event, data /* , instance */) {\n var _this3 = this;\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(data.target);\n var holder = target.data('collectionHolder');\n if (!holder) {\n return false;\n }\n var node = jquery__WEBPACK_IMPORTED_MODULE_0___default()(data.mutation.removedNodes);\n var value = node.find('[data-select-observe]').val();\n if (value) {\n Data[holder].state[value] = value;\n }\n target.find('[data-select-observe]').each(function (index, field) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n if (field.val() !== value) {\n _this3.updateOptions(field);\n }\n });\n }\n }, {\n key: \"addSelect\",\n value: function addSelect(element) {\n var _this4 = this;\n this.items = this.items.add(element);\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n var value = element.attr('value');\n var holder = element.closest('[data-collection-holder]').data('collectionHolder');\n var options = element.closest('[data-select-unique]').data('selectUnique');\n if (!Data[holder]) {\n var data = {};\n if (Array.isArray(options)) {\n options.slice(0).map(function (item) {\n data[item] = item;\n });\n } else {\n data = Object.assign({}, options);\n }\n Data[holder] = {\n original: null,\n state: null\n };\n Data[holder].original = Object.assign({}, data);\n Data[holder].state = Object.assign({}, data);\n }\n this.updateOptions(element);\n element.data('originalValue', value);\n element.on('change', function (event, extras) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n if (target.data('dummyChange')) {\n target.data('dummyChange', false);\n return false;\n }\n _this4.refreshOptions(target, extras && extras.load ? null : element.data('originalValue'));\n element.data('originalValue', target.val());\n });\n }\n }, {\n key: \"updateOptions\",\n value: function updateOptions(element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n var value = element.attr('value');\n var holder = element.closest('[data-collection-holder]').data('collectionHolder');\n mout_object_forIn__WEBPACK_IMPORTED_MODULE_1___default()(Data[holder].state, function (v, k) {\n var selected = k === value ? 'selected=\"selected\"' : '';\n if (element.get(0).selectize) {\n var selectize = element.data('selectize');\n selectize.removeOption(k);\n selectize.addOption({\n value: k,\n text: v\n });\n } else {\n element.append(\"
\").concat(v, \" \"));\n }\n if (selected) {\n if (element.get(0).selectize) {\n var _selectize = element.data('selectize');\n _selectize.setValue(k);\n }\n delete Data[holder].state[value];\n }\n });\n }\n }, {\n key: \"refreshOptions\",\n value: function refreshOptions(element, originalValue) {\n var value = element.val();\n var holder = element.closest('[data-collection-holder]').data('collectionHolder');\n delete Data[holder].state[value];\n if (originalValue && Data[holder].original[originalValue]) {\n Data[holder].state[originalValue] = Data[holder].original[originalValue];\n }\n this.items.each(function (index, select) {\n select = jquery__WEBPACK_IMPORTED_MODULE_0___default()(select);\n if (select[0] === element[0]) {\n return;\n }\n var selectedValue = select.val();\n select.data('dummyChange', true);\n if (select.get(0).selectize) {\n var selectize = select.data('selectize');\n if (selectize) {\n selectize.clearOptions();\n if (selectedValue) {\n selectize.addOption({\n value: selectedValue,\n text: Data[holder].original[selectedValue] || selectedValue\n });\n }\n mout_object_forIn__WEBPACK_IMPORTED_MODULE_1___default()(Data[holder].state, function (v, k) {\n selectize.addOption({\n value: k,\n text: v\n });\n });\n selectize.setValue(selectedValue, true);\n }\n } else {\n select.empty();\n mout_object_forIn__WEBPACK_IMPORTED_MODULE_1___default()(Data[holder].state, function (v, k) {\n var selected = k === selectedValue ? 'selected=\"selected\"' : '';\n select.append(\"
\").concat(v, \" \"));\n });\n }\n select.data('dummyChange', false);\n });\n }\n }]);\n}();\n\nvar Instance = new SelectUniqueField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDO01BQ3JDLENBQUMsQ0FBQztJQUNOO0VBQUM7QUFBQTtBQXZKaUM7QUEwSi9CLElBQUl1QyxRQUFRLEdBQUcsSUFBSXZFLGlCQUFpQixDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9zZWxlY3R1bmlxdWUuanM/MjA0OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IGZvckluIGZyb20gJ21vdXQvb2JqZWN0L2ZvckluJztcbi8vIGltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcblxuY29uc3QgRGF0YSA9IHt9O1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VsZWN0VW5pcXVlRmllbGQge1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBjb25zdCBib2R5ID0gJCgnYm9keScpO1xuICAgICAgICB0aGlzLml0ZW1zID0gJCgpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRlZmF1bHRzLCBvcHRpb25zKTtcblxuICAgICAgICAkKCdbZGF0YS1zZWxlY3Qtb2JzZXJ2ZV0nKS5lYWNoKChpbmRleCwgZWxlbWVudCkgPT4gdGhpcy5hZGRTZWxlY3QoZWxlbWVudCkpLmxhc3QoKS50cmlnZ2VyKCdjaGFuZ2UnLCB7IGxvYWQ6IHRydWUgfSk7XG4gICAgICAgIGJvZHkub24oJ211dGF0aW9uLl9ncmF2JywgdGhpcy5fb25BZGRlZE5vZGVzLmJpbmQodGhpcykpO1xuICAgICAgICBib2R5Lm9uKCdtdXRhdGlvbl9yZW1vdmVkLl9ncmF2JywgdGhpcy5fb25SZW1vdmVkTm9kZXMuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgX29uQWRkZWROb2RlcyhldmVudCwgdGFyZ2V0LCByZWNvcmQsIGluc3RhbmNlKSB7XG4gICAgICAgIGxldCBmaWVsZHMgPSAkKHRhcmdldCkuZmluZCgnW2RhdGEtc2VsZWN0LW9ic2VydmVdJyk7XG4gICAgICAgIGlmICghZmllbGRzLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICBmaWVsZHMuZWFjaCgoaW5kZXgsIGZpZWxkKSA9PiB7XG4gICAgICAgICAgICBmaWVsZCA9ICQoZmllbGQpO1xuICAgICAgICAgICAgaWYgKCF+dGhpcy5pdGVtcy5pbmRleChmaWVsZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZFNlbGVjdChmaWVsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9vblJlbW92ZWROb2RlcyhldmVudCwgZGF0YS8qICwgaW5zdGFuY2UgKi8pIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gJChkYXRhLnRhcmdldCk7XG4gICAgICAgIGNvbnN0IGhvbGRlciA9IHRhcmdldC5kYXRhKCdjb2xsZWN0aW9uSG9sZGVyJyk7XG4gICAgICAgIGlmICghaG9sZGVyKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gICAgICAgIGNvbnN0IG5vZGUgPSAkKGRhdGEubXV0YXRpb24ucmVtb3ZlZE5vZGVzKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBub2RlLmZpbmQoJ1tkYXRhLXNlbGVjdC1vYnNlcnZlXScpLnZhbCgpO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIERhdGFbaG9sZGVyXS5zdGF0ZVt2YWx1ZV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRhcmdldC5maW5kKCdbZGF0YS1zZWxlY3Qtb2JzZXJ2ZV0nKS5lYWNoKChpbmRleCwgZmllbGQpID0+IHtcbiAgICAgICAgICAgIGZpZWxkID0gJChmaWVsZCk7XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC52YWwoKSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbnMoZmllbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGRTZWxlY3QoZWxlbWVudCkge1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5hZGQoZWxlbWVudCk7XG4gICAgICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gZWxlbWVudC5hdHRyKCd2YWx1ZScpO1xuICAgICAgICBjb25zdCBob2xkZXIgPSBlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLWNvbGxlY3Rpb24taG9sZGVyXScpLmRhdGEoJ2NvbGxlY3Rpb25Ib2xkZXInKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGVsZW1lbnQuY2xvc2VzdCgnW2RhdGEtc2VsZWN0LXVuaXF1ZV0nKS5kYXRhKCdzZWxlY3RVbmlxdWUnKTtcblxuICAgICAgICBpZiAoIURhdGFbaG9sZGVyXSkge1xuICAgICAgICAgICAgbGV0IGRhdGEgPSB7fTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMpKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5zbGljZSgwKS5tYXAoKGl0ZW0pID0+IHsgZGF0YVtpdGVtXSA9IGl0ZW07IH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIERhdGFbaG9sZGVyXSA9IHsgb3JpZ2luYWw6IG51bGwsIHN0YXRlOiBudWxsIH07XG4gICAgICAgICAgICBEYXRhW2hvbGRlcl0ub3JpZ2luYWwgPSBPYmplY3QuYXNzaWduKHt9LCBkYXRhKTtcbiAgICAgICAgICAgIERhdGFbaG9sZGVyXS5zdGF0ZSA9IE9iamVjdC5hc3NpZ24oe30sIGRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKGVsZW1lbnQpO1xuXG4gICAgICAgIGVsZW1lbnQuZGF0YSgnb3JpZ2luYWxWYWx1ZScsIHZhbHVlKTtcbiAgICAgICAgZWxlbWVudC5vbignY2hhbmdlJywgKGV2ZW50LCBleHRyYXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgICAgICBpZiAodGFyZ2V0LmRhdGEoJ2R1bW15Q2hhbmdlJykpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQuZGF0YSgnZHVtbXlDaGFuZ2UnLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hPcHRpb25zKHRhcmdldCwgZXh0cmFzICYmIGV4dHJhcy5sb2FkID8gbnVsbCA6IGVsZW1lbnQuZGF0YSgnb3JpZ2luYWxWYWx1ZScpKTtcbiAgICAgICAgICAgIGVsZW1lbnQuZGF0YSgnb3JpZ2luYWxWYWx1ZScsIHRhcmdldC52YWwoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHVwZGF0ZU9wdGlvbnMoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50ID0gJChlbGVtZW50KTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBlbGVtZW50LmF0dHIoJ3ZhbHVlJyk7XG4gICAgICAgIGNvbnN0IGhvbGRlciA9IGVsZW1lbnQuY2xvc2VzdCgnW2RhdGEtY29sbGVjdGlvbi1ob2xkZXJdJykuZGF0YSgnY29sbGVjdGlvbkhvbGRlcicpO1xuXG4gICAgICAgIGZvckluKERhdGFbaG9sZGVyXS5zdGF0ZSwgKHYsIGspID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gayA9PT0gdmFsdWUgPyAnc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiJyA6ICcnO1xuXG4gICAgICAgICAgICBpZiAoZWxlbWVudC5nZXQoMCkuc2VsZWN0aXplKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0aXplID0gZWxlbWVudC5kYXRhKCdzZWxlY3RpemUnKTtcbiAgICAgICAgICAgICAgICBzZWxlY3RpemUucmVtb3ZlT3B0aW9uKGspO1xuICAgICAgICAgICAgICAgIHNlbGVjdGl6ZS5hZGRPcHRpb24oeyB2YWx1ZTogaywgdGV4dDogdiB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5hcHBlbmQoYDxvcHRpb24gdmFsdWU9XCIke2t9XCIgJHtzZWxlY3RlZH0+JHt2fTwvb3B0aW9uPmApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5nZXQoMCkuc2VsZWN0aXplKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGl6ZSA9IGVsZW1lbnQuZGF0YSgnc2VsZWN0aXplJyk7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGl6ZS5zZXRWYWx1ZShrKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVsZXRlIERhdGFbaG9sZGVyXS5zdGF0ZVt2YWx1ZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlZnJlc2hPcHRpb25zKGVsZW1lbnQsIG9yaWdpbmFsVmFsdWUpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBlbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCBob2xkZXIgPSBlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLWNvbGxlY3Rpb24taG9sZGVyXScpLmRhdGEoJ2NvbGxlY3Rpb25Ib2xkZXInKTtcbiAgICAgICAgZGVsZXRlIERhdGFbaG9sZGVyXS5zdGF0ZVt2YWx1ZV07XG5cbiAgICAgICAgaWYgKG9yaWdpbmFsVmFsdWUgJiYgRGF0YVtob2xkZXJdLm9yaWdpbmFsW29yaWdpbmFsVmFsdWVdKSB7XG4gICAgICAgICAgICBEYXRhW2hvbGRlcl0uc3RhdGVbb3JpZ2luYWxWYWx1ZV0gPSBEYXRhW2hvbGRlcl0ub3JpZ2luYWxbb3JpZ2luYWxWYWx1ZV07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLml0ZW1zLmVhY2goKGluZGV4LCBzZWxlY3QpID0+IHtcbiAgICAgICAgICAgIHNlbGVjdCA9ICQoc2VsZWN0KTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RbMF0gPT09IGVsZW1lbnRbMF0pIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSBzZWxlY3QudmFsKCk7XG4gICAgICAgICAgICBzZWxlY3QuZGF0YSgnZHVtbXlDaGFuZ2UnLCB0cnVlKTtcblxuICAgICAgICAgICAgaWYgKHNlbGVjdC5nZXQoMCkuc2VsZWN0aXplKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0aXplID0gc2VsZWN0LmRhdGEoJ3NlbGVjdGl6ZScpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGl6ZSkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RpemUuY2xlYXJPcHRpb25zKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGl6ZS5hZGRPcHRpb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzZWxlY3RlZFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IERhdGFbaG9sZGVyXS5vcmlnaW5hbFtzZWxlY3RlZFZhbHVlXSB8fCBzZWxlY3RlZFZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGZvckluKERhdGFbaG9sZGVyXS5zdGF0ZSwgKHYsIGspID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGl6ZS5hZGRPcHRpb24oeyB2YWx1ZTogaywgdGV4dDogdiB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aXplLnNldFZhbHVlKHNlbGVjdGVkVmFsdWUsIHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0LmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgZm9ySW4oRGF0YVtob2xkZXJdLnN0YXRlLCAodiwgaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IGsgPT09IHNlbGVjdGVkVmFsdWUgPyAnc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiJyA6ICcnO1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3QuYXBwZW5kKGA8b3B0aW9uIHZhbHVlPVwiJHtrfVwiICR7c2VsZWN0ZWR9PiR7dn08L29wdGlvbj5gKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2VsZWN0LmRhdGEoJ2R1bW15Q2hhbmdlJywgZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBsZXQgSW5zdGFuY2UgPSBuZXcgU2VsZWN0VW5pcXVlRmllbGQoKTtcbiJdLCJuYW1lcyI6WyIkIiwiZm9ySW4iLCJEYXRhIiwiU2VsZWN0VW5pcXVlRmllbGQiLCJvcHRpb25zIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2siLCJib2R5IiwiaXRlbXMiLCJPYmplY3QiLCJhc3NpZ24iLCJkZWZhdWx0cyIsImVhY2giLCJpbmRleCIsImVsZW1lbnQiLCJhZGRTZWxlY3QiLCJsYXN0IiwidHJpZ2dlciIsImxvYWQiLCJvbiIsIl9vbkFkZGVkTm9kZXMiLCJiaW5kIiwiX29uUmVtb3ZlZE5vZGVzIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJldmVudCIsInRhcmdldCIsInJlY29yZCIsImluc3RhbmNlIiwiX3RoaXMyIiwiZmllbGRzIiwiZmluZCIsImxlbmd0aCIsImZpZWxkIiwiZGF0YSIsIl90aGlzMyIsImhvbGRlciIsIm5vZGUiLCJtdXRhdGlvbiIsInJlbW92ZWROb2RlcyIsInZhbCIsInN0YXRlIiwidXBkYXRlT3B0aW9ucyIsIl90aGlzNCIsImFkZCIsImF0dHIiLCJjbG9zZXN0IiwiQXJyYXkiLCJpc0FycmF5Iiwic2xpY2UiLCJtYXAiLCJpdGVtIiwib3JpZ2luYWwiLCJleHRyYXMiLCJjdXJyZW50VGFyZ2V0IiwicmVmcmVzaE9wdGlvbnMiLCJ2IiwiayIsInNlbGVjdGVkIiwiZ2V0Iiwic2VsZWN0aXplIiwicmVtb3ZlT3B0aW9uIiwiYWRkT3B0aW9uIiwidGV4dCIsImFwcGVuZCIsImNvbmNhdCIsInNldFZhbHVlIiwib3JpZ2luYWxWYWx1ZSIsInNlbGVjdCIsInNlbGVjdGVkVmFsdWUiLCJjbGVhck9wdGlvbnMiLCJlbXB0eSIsImRlZmF1bHQiLCJJbnN0YW5jZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/selectunique.js\n\n}");
/***/ }),
/***/ "./app/forms/fields/text.js":
/*!**********************************!*\
!*** ./app/forms/fields/text.js ***!
\**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.copy-to-clipboard').click(function (event) {\n var $tempElement = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').append($tempElement);\n $tempElement.val(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).prev('input').val()).select();\n document.execCommand('Copy');\n $tempElement.remove();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('data-hint', 'Copied to clipboard!').addClass('hint--left');\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL3RleHQuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQXVCO0FBRXZCQSw2Q0FBQyxDQUFDQyxRQUFRLENBQUMsQ0FBQ0MsS0FBSyxDQUFDLFlBQVc7RUFDekJGLDZDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQ0csS0FBSyxDQUFDLFVBQVNDLEtBQUssRUFBRTtJQUMxQyxJQUFJQyxZQUFZLEdBQUdMLDZDQUFDLENBQUMsU0FBUyxDQUFDO0lBQy9CQSw2Q0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDTSxNQUFNLENBQUNELFlBQVksQ0FBQztJQUM5QkEsWUFBWSxDQUFDRSxHQUFHLENBQUNQLDZDQUFDLENBQUMsSUFBSSxDQUFDLENBQUNRLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDRSxNQUFNLENBQUMsQ0FBQztJQUN0RFIsUUFBUSxDQUFDUyxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQzVCTCxZQUFZLENBQUNNLE1BQU0sQ0FBQyxDQUFDO0lBRXJCWCw2Q0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDWSxJQUFJLENBQUMsV0FBVyxFQUFFLHNCQUFzQixDQUFDLENBQUNDLFFBQVEsQ0FBQyxZQUFZLENBQUM7RUFDNUUsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9mb3Jtcy9maWVsZHMvdGV4dC5qcz84ZTE3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkge1xuICAgICQoJy5jb3B5LXRvLWNsaXBib2FyZCcpLmNsaWNrKGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgIHZhciAkdGVtcEVsZW1lbnQgPSAkKCc8aW5wdXQ+Jyk7XG4gICAgICAgICQoJ2JvZHknKS5hcHBlbmQoJHRlbXBFbGVtZW50KTtcbiAgICAgICAgJHRlbXBFbGVtZW50LnZhbCgkKHRoaXMpLnByZXYoJ2lucHV0JykudmFsKCkpLnNlbGVjdCgpO1xuICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnQ29weScpO1xuICAgICAgICAkdGVtcEVsZW1lbnQucmVtb3ZlKCk7XG5cbiAgICAgICAgJCh0aGlzKS5hdHRyKCdkYXRhLWhpbnQnLCAnQ29waWVkIHRvIGNsaXBib2FyZCEnKS5hZGRDbGFzcygnaGludC0tbGVmdCcpO1xuICAgIH0pO1xufSk7XG4iXSwibmFtZXMiOlsiJCIsImRvY3VtZW50IiwicmVhZHkiLCJjbGljayIsImV2ZW50IiwiJHRlbXBFbGVtZW50IiwiYXBwZW5kIiwidmFsIiwicHJldiIsInNlbGVjdCIsImV4ZWNDb21tYW5kIiwicmVtb3ZlIiwiYXR0ciIsImFkZENsYXNzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/text.js\n\n}");
/***/ }),
/***/ "./app/forms/form.js":
/*!***************************!*\
!*** ./app/forms/form.js ***!
\***************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Instance: () => (/* binding */ Instance),\n/* harmony export */ \"default\": () => (/* binding */ Form)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n/* Dependencies for checking if changes happened since load on a form\nimport toastr from '../utils/toastr';\nimport { translations } from 'grav-config';\nimport { Instance as FormState } from './state';\n*/\nvar Form = /*#__PURE__*/function () {\n function Form(form) {\n var _this = this;\n _classCallCheck(this, Form);\n this.form = jquery__WEBPACK_IMPORTED_MODULE_0___default()(form);\n if (!this.form.length || this.form.prop('tagName').toLowerCase() !== 'form') {\n return;\n }\n\n /* Option for not saving while nothing in a form has changed\n this.form.on('submit', (event) => {\n if (FormState.equals()) {\n event.preventDefault();\n toastr.info(translations.PLUGIN_ADMIN.NOTHING_TO_SAVE);\n }\n }); */\n\n this._attachShortcuts();\n this._attachToggleables();\n this._attachDisabledFields();\n this._submitUncheckedFields();\n this.observer = new MutationObserver(this.addedNodes);\n this.form.each(function (index, form) {\n return _this.observer.observe(form, {\n subtree: true,\n childList: true\n });\n });\n }\n return _createClass(Form, [{\n key: \"_attachShortcuts\",\n value: function _attachShortcuts() {\n // CTRL + S / CMD + S - shortcut for [Save] when available\n var saveTask = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#titlebar [name=\"task\"][value=\"save\"][form=\"blueprints\"]');\n if (saveTask.length) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).on('keydown', function (event) {\n var key = String.fromCharCode(event.which).toLowerCase();\n if (!event.shiftKey && (event.ctrlKey && !event.altKey || event.metaKey) && key === 's') {\n event.preventDefault();\n saveTask.click();\n }\n });\n }\n }\n }, {\n key: \"_attachToggleables\",\n value: function _attachToggleables() {\n var query = '[data-grav-field=\"toggleable\"] input[type=\"checkbox\"]';\n this.form.on('change', query, function (event) {\n var toggle = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var enabled = toggle.is(':checked');\n var parent = toggle.closest('.form-field');\n var label = parent.find('label.toggleable');\n var fields = parent.find('.form-data');\n var inputs = fields.find('input, select, textarea, button');\n label.add(fields).css('opacity', enabled ? '' : 0.7);\n inputs.map(function (index, input) {\n var isSelectize = input.selectize;\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(input);\n if (isSelectize) {\n isSelectize[enabled ? 'enable' : 'disable']();\n } else {\n input.prop('disabled', !enabled);\n }\n });\n });\n this.form.find(query).trigger('change');\n }\n }, {\n key: \"_attachDisabledFields\",\n value: function _attachDisabledFields() {\n var prefix = '.form-field-toggleable .form-data';\n var query = [];\n ['input', 'select', 'label[for]', 'textarea', '.selectize-control'].forEach(function (item) {\n query.push(\"\".concat(prefix, \" \").concat(item));\n });\n this.form.on('mousedown', query.join(', '), function (event) {\n var input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var isFor = input.prop('for');\n var isSelectize = (input.hasClass('selectize-control') || input.parents('.selectize-control')).length;\n if (isFor) {\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[id=\\\"\".concat(isFor, \"\\\"]\"));\n }\n if (isSelectize) {\n input = input.closest('.selectize-control').siblings('select[name]');\n }\n if (!input.prop('disabled')) {\n return true;\n }\n var toggle = input.closest('.form-field').find('[data-grav-field=\"toggleable\"] input[type=\"checkbox\"]');\n toggle.trigger('click');\n });\n }\n }, {\n key: \"_submitUncheckedFields\",\n value: function _submitUncheckedFields() {\n var submitted = false;\n this.form.each(function (index, form) {\n form = jquery__WEBPACK_IMPORTED_MODULE_0___default()(form);\n form.on('submit', function () {\n // workaround for MS Edge, submitting multiple forms at the same time\n if (submitted) {\n return false;\n }\n var formId = form.attr('id');\n var unchecked = form.find('input[type=\"checkbox\"]:not(:checked):not(:disabled)');\n var submit = form.find('[type=\"submit\"]').add(\"[form=\\\"\".concat(formId, \"\\\"][type=\\\"submit\\\"]\"));\n if (!unchecked.length) {\n return true;\n }\n submit.addClass('pointer-events-disabled');\n unchecked.each(function (index, element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n var name = element.prop('name');\n var fake = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"
\"));\n form.append(fake);\n });\n submitted = true;\n return true;\n });\n });\n }\n }, {\n key: \"addedNodes\",\n value: function addedNodes(mutations) {\n var _this2 = this;\n mutations.forEach(function (mutation) {\n if (mutation.type !== 'childList') {\n return;\n }\n if (mutation.addedNodes) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').trigger('mutation._grav', mutation.target, mutation, _this2);\n }\n if (mutation.removedNodes) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').trigger('mutation_removed._grav', {\n target: mutation.target,\n mutation: mutation\n }, _this2);\n }\n });\n }\n }]);\n}();\n\nvar Instance = new Form('form#blueprints');//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFXLEVBQUU7VUFBRTtRQUFRO1FBRTdDLElBQUlELFFBQVEsQ0FBQzlELFVBQVUsRUFBRTtVQUNyQmQsNkNBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQ3FELE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRXVCLFFBQVEsQ0FBQ3RDLE1BQU0sRUFBRXNDLFFBQVEsRUFBRUQsTUFBSSxDQUFDO1FBQ3hFO1FBRUEsSUFBSUMsUUFBUSxDQUFDRSxZQUFZLEVBQUU7VUFDdkI5RSw2Q0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDcUQsT0FBTyxDQUFDLHdCQUF3QixFQUFFO1lBQUVmLE1BQU0sRUFBRXNDLFFBQVEsQ0FBQ3RDLE1BQU07WUFBRXNDLFFBQVEsRUFBUkE7VUFBUyxDQUFDLEVBQUVELE1BQUksQ0FBQztRQUM1RjtNQUNKLENBQUMsQ0FBQztJQUNOO0VBQUM7QUFBQTtBQS9Ib0I7QUFrSWxCLElBQUlLLFFBQVEsR0FBRyxJQUFJL0UsSUFBSSxDQUFDLGlCQUFpQixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9mb3Jtcy9mb3JtLmpzPzk0NjMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuLyogRGVwZW5kZW5jaWVzIGZvciBjaGVja2luZyBpZiBjaGFuZ2VzIGhhcHBlbmVkIHNpbmNlIGxvYWQgb24gYSBmb3JtXG5pbXBvcnQgdG9hc3RyIGZyb20gJy4uL3V0aWxzL3RvYXN0cic7XG5pbXBvcnQgeyB0cmFuc2xhdGlvbnMgfSBmcm9tICdncmF2LWNvbmZpZyc7XG5pbXBvcnQgeyBJbnN0YW5jZSBhcyBGb3JtU3RhdGUgfSBmcm9tICcuL3N0YXRlJztcbiovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvcm0ge1xuICAgIGNvbnN0cnVjdG9yKGZvcm0pIHtcbiAgICAgICAgdGhpcy5mb3JtID0gJChmb3JtKTtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm0ubGVuZ3RoIHx8IHRoaXMuZm9ybS5wcm9wKCd0YWdOYW1lJykudG9Mb3dlckNhc2UoKSAhPT0gJ2Zvcm0nKSB7IHJldHVybjsgfVxuXG4gICAgICAgIC8qIE9wdGlvbiBmb3Igbm90IHNhdmluZyB3aGlsZSBub3RoaW5nIGluIGEgZm9ybSBoYXMgY2hhbmdlZFxuXG4gICAgICAgIHRoaXMuZm9ybS5vbignc3VibWl0JywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoRm9ybVN0YXRlLmVxdWFscygpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0b2FzdHIuaW5mbyh0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLk5PVEhJTkdfVE9fU0FWRSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pOyAqL1xuXG4gICAgICAgIHRoaXMuX2F0dGFjaFNob3J0Y3V0cygpO1xuICAgICAgICB0aGlzLl9hdHRhY2hUb2dnbGVhYmxlcygpO1xuICAgICAgICB0aGlzLl9hdHRhY2hEaXNhYmxlZEZpZWxkcygpO1xuICAgICAgICB0aGlzLl9zdWJtaXRVbmNoZWNrZWRGaWVsZHMoKTtcblxuICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5hZGRlZE5vZGVzKTtcbiAgICAgICAgdGhpcy5mb3JtLmVhY2goKGluZGV4LCBmb3JtKSA9PiB0aGlzLm9ic2VydmVyLm9ic2VydmUoZm9ybSwgeyBzdWJ0cmVlOiB0cnVlLCBjaGlsZExpc3Q6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIF9hdHRhY2hTaG9ydGN1dHMoKSB7XG4gICAgICAgIC8vIENUUkwgKyBTIC8gQ01EICsgUyAtIHNob3J0Y3V0IGZvciBbU2F2ZV0gd2hlbiBhdmFpbGFibGVcbiAgICAgICAgbGV0IHNhdmVUYXNrID0gJCgnI3RpdGxlYmFyIFtuYW1lPVwidGFza1wiXVt2YWx1ZT1cInNhdmVcIl1bZm9ybT1cImJsdWVwcmludHNcIl0nKTtcblxuICAgICAgICBpZiAoc2F2ZVRhc2subGVuZ3RoKSB7XG4gICAgICAgICAgICAkKGdsb2JhbCkub24oJ2tleWRvd24nLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQud2hpY2gpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFldmVudC5zaGlmdEtleSAmJiAoKGV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50LmFsdEtleSkgfHwgZXZlbnQubWV0YUtleSkgJiYga2V5ID09PSAncycpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgc2F2ZVRhc2suY2xpY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9hdHRhY2hUb2dnbGVhYmxlcygpIHtcbiAgICAgICAgbGV0IHF1ZXJ5ID0gJ1tkYXRhLWdyYXYtZmllbGQ9XCJ0b2dnbGVhYmxlXCJdIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSc7XG5cbiAgICAgICAgdGhpcy5mb3JtLm9uKCdjaGFuZ2UnLCBxdWVyeSwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBsZXQgdG9nZ2xlID0gJChldmVudC50YXJnZXQpO1xuICAgICAgICAgICAgbGV0IGVuYWJsZWQgPSB0b2dnbGUuaXMoJzpjaGVja2VkJyk7XG4gICAgICAgICAgICBsZXQgcGFyZW50ID0gdG9nZ2xlLmNsb3Nlc3QoJy5mb3JtLWZpZWxkJyk7XG4gICAgICAgICAgICBsZXQgbGFiZWwgPSBwYXJlbnQuZmluZCgnbGFiZWwudG9nZ2xlYWJsZScpO1xuICAgICAgICAgICAgbGV0IGZpZWxkcyA9IHBhcmVudC5maW5kKCcuZm9ybS1kYXRhJyk7XG4gICAgICAgICAgICBsZXQgaW5wdXRzID0gZmllbGRzLmZpbmQoJ2lucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBidXR0b24nKTtcblxuICAgICAgICAgICAgbGFiZWwuYWRkKGZpZWxkcykuY3NzKCdvcGFjaXR5JywgZW5hYmxlZCA/ICcnIDogMC43KTtcbiAgICAgICAgICAgIGlucHV0cy5tYXAoKGluZGV4LCBpbnB1dCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBpc1NlbGVjdGl6ZSA9IGlucHV0LnNlbGVjdGl6ZTtcbiAgICAgICAgICAgICAgICBpbnB1dCA9ICQoaW5wdXQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzU2VsZWN0aXplKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0aXplW2VuYWJsZWQgPyAnZW5hYmxlJyA6ICdkaXNhYmxlJ10oKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dC5wcm9wKCdkaXNhYmxlZCcsICFlbmFibGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmZpbmQocXVlcnkpLnRyaWdnZXIoJ2NoYW5nZScpO1xuICAgIH1cblxuICAgIF9hdHRhY2hEaXNhYmxlZEZpZWxkcygpIHtcbiAgICAgICAgbGV0IHByZWZpeCA9ICcuZm9ybS1maWVsZC10b2dnbGVhYmxlIC5mb3JtLWRhdGEnO1xuICAgICAgICBsZXQgcXVlcnkgPSBbXTtcblxuICAgICAgICBbJ2lucHV0JywgJ3NlbGVjdCcsICdsYWJlbFtmb3JdJywgJ3RleHRhcmVhJywgJy5zZWxlY3RpemUtY29udHJvbCddLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHF1ZXJ5LnB1c2goYCR7cHJlZml4fSAke2l0ZW19YCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZm9ybS5vbignbW91c2Vkb3duJywgcXVlcnkuam9pbignLCAnKSwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBsZXQgaW5wdXQgPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgICAgICAgICBsZXQgaXNGb3IgPSBpbnB1dC5wcm9wKCdmb3InKTtcbiAgICAgICAgICAgIGxldCBpc1NlbGVjdGl6ZSA9IChpbnB1dC5oYXNDbGFzcygnc2VsZWN0aXplLWNvbnRyb2wnKSB8fCBpbnB1dC5wYXJlbnRzKCcuc2VsZWN0aXplLWNvbnRyb2wnKSkubGVuZ3RoO1xuXG4gICAgICAgICAgICBpZiAoaXNGb3IpIHsgaW5wdXQgPSAkKGBbaWQ9XCIke2lzRm9yfVwiXWApOyB9XG4gICAgICAgICAgICBpZiAoaXNTZWxlY3RpemUpIHsgaW5wdXQgPSBpbnB1dC5jbG9zZXN0KCcuc2VsZWN0aXplLWNvbnRyb2wnKS5zaWJsaW5ncygnc2VsZWN0W25hbWVdJyk7IH1cblxuICAgICAgICAgICAgaWYgKCFpbnB1dC5wcm9wKCdkaXNhYmxlZCcpKSB7IHJldHVybiB0cnVlOyB9XG5cbiAgICAgICAgICAgIGxldCB0b2dnbGUgPSBpbnB1dC5jbG9zZXN0KCcuZm9ybS1maWVsZCcpLmZpbmQoJ1tkYXRhLWdyYXYtZmllbGQ9XCJ0b2dnbGVhYmxlXCJdIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXScpO1xuICAgICAgICAgICAgdG9nZ2xlLnRyaWdnZXIoJ2NsaWNrJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9zdWJtaXRVbmNoZWNrZWRGaWVsZHMoKSB7XG4gICAgICAgIGxldCBzdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JtLmVhY2goKGluZGV4LCBmb3JtKSA9PiB7XG4gICAgICAgICAgICBmb3JtID0gJChmb3JtKTtcbiAgICAgICAgICAgIGZvcm0ub24oJ3N1Ym1pdCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyB3b3JrYXJvdW5kIGZvciBNUyBFZGdlLCBzdWJtaXR0aW5nIG11bHRpcGxlIGZvcm1zIGF0IHRoZSBzYW1lIHRpbWVcbiAgICAgICAgICAgICAgICBpZiAoc3VibWl0dGVkKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGZvcm1JZCA9IGZvcm0uYXR0cignaWQnKTtcbiAgICAgICAgICAgICAgICBsZXQgdW5jaGVja2VkID0gZm9ybS5maW5kKCdpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06bm90KDpjaGVja2VkKTpub3QoOmRpc2FibGVkKScpO1xuICAgICAgICAgICAgICAgIGxldCBzdWJtaXQgPSBmb3JtLmZpbmQoJ1t0eXBlPVwic3VibWl0XCJdJykuYWRkKGBbZm9ybT1cIiR7Zm9ybUlkfVwiXVt0eXBlPVwic3VibWl0XCJdYCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXVuY2hlY2tlZC5sZW5ndGgpIHsgcmV0dXJuIHRydWU7IH1cblxuICAgICAgICAgICAgICAgIHN1Ym1pdC5hZGRDbGFzcygncG9pbnRlci1ldmVudHMtZGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICB1bmNoZWNrZWQuZWFjaCgoaW5kZXgsIGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBuYW1lID0gZWxlbWVudC5wcm9wKCduYW1lJyk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmYWtlID0gJChgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiJHtuYW1lfVwiIHZhbHVlPVwiMFwiIC8+YCk7XG4gICAgICAgICAgICAgICAgICAgIGZvcm0uYXBwZW5kKGZha2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHN1Ym1pdHRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYWRkZWROb2RlcyhtdXRhdGlvbnMpIHtcbiAgICAgICAgbXV0YXRpb25zLmZvckVhY2goKG11dGF0aW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAobXV0YXRpb24udHlwZSAhPT0gJ2NoaWxkTGlzdCcpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgIGlmIChtdXRhdGlvbi5hZGRlZE5vZGVzKSB7XG4gICAgICAgICAgICAgICAgJCgnYm9keScpLnRyaWdnZXIoJ211dGF0aW9uLl9ncmF2JywgbXV0YXRpb24udGFyZ2V0LCBtdXRhdGlvbiwgdGhpcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChtdXRhdGlvbi5yZW1vdmVkTm9kZXMpIHtcbiAgICAgICAgICAgICAgICAkKCdib2R5JykudHJpZ2dlcignbXV0YXRpb25fcmVtb3ZlZC5fZ3JhdicsIHsgdGFyZ2V0OiBtdXRhdGlvbi50YXJnZXQsIG11dGF0aW9uIH0sIHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBsZXQgSW5zdGFuY2UgPSBuZXcgRm9ybSgnZm9ybSNibHVlcHJpbnRzJyk7XG4iXSwibmFtZXMiOlsiJCIsIkZvcm0iLCJmb3JtIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2siLCJsZW5ndGgiLCJwcm9wIiwidG9Mb3dlckNhc2UiLCJfYXR0YWNoU2hvcnRjdXRzIiwiX2F0dGFjaFRvZ2dsZWFibGVzIiwiX2F0dGFjaERpc2FibGVkRmllbGRzIiwiX3N1Ym1pdFVuY2hlY2tlZEZpZWxkcyIsIm9ic2VydmVyIiwiTXV0YXRpb25PYnNlcnZlciIsImFkZGVkTm9kZXMiLCJlYWNoIiwiaW5kZXgiLCJvYnNlcnZlIiwic3VidHJlZSIsImNoaWxkTGlzdCIsIl9jcmVhdGVDbGFzcyIsImtleSIsInZhbHVlIiwic2F2ZVRhc2siLCJnbG9iYWwiLCJvbiIsImV2ZW50IiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwid2hpY2giLCJzaGlmdEtleSIsImN0cmxLZXkiLCJhbHRLZXkiLCJtZXRhS2V5IiwicHJldmVudERlZmF1bHQiLCJjbGljayIsInF1ZXJ5IiwidG9nZ2xlIiwidGFyZ2V0IiwiZW5hYmxlZCIsImlzIiwicGFyZW50IiwiY2xvc2VzdCIsImxhYmVsIiwiZmluZCIsImZpZWxkcyIsImlucHV0cyIsImFkZCIsImNzcyIsIm1hcCIsImlucHV0IiwiaXNTZWxlY3RpemUiLCJzZWxlY3RpemUiLCJ0cmlnZ2VyIiwicHJlZml4IiwiZm9yRWFjaCIsIml0ZW0iLCJwdXNoIiwiY29uY2F0Iiwiam9pbiIsImlzRm9yIiwiaGFzQ2xhc3MiLCJwYXJlbnRzIiwic2libGluZ3MiLCJzdWJtaXR0ZWQiLCJmb3JtSWQiLCJhdHRyIiwidW5jaGVja2VkIiwic3VibWl0IiwiYWRkQ2xhc3MiLCJlbGVtZW50IiwibmFtZSIsImZha2UiLCJhcHBlbmQiLCJtdXRhdGlvbnMiLCJfdGhpczIiLCJtdXRhdGlvbiIsInR5cGUiLCJyZW1vdmVkTm9kZXMiLCJkZWZhdWx0IiwiSW5zdGFuY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/form.js\n\n}");
/***/ }),
/***/ "./app/forms/index.js":
/*!****************************!*\
!*** ./app/forms/index.js ***!
\****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state */ \"./app/forms/state.js\");\n/* harmony import */ var _form__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./form */ \"./app/forms/form.js\");\n/* harmony import */ var _fields__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fields */ \"./app/forms/fields/index.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n Form: {\n Form: _form__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Instance: _form__WEBPACK_IMPORTED_MODULE_1__.Instance\n },\n Fields: _fields__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n FormState: {\n FormState: _state__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n Instance: _state__WEBPACK_IMPORTED_MODULE_0__.Instance\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFtRTtBQUNYO0FBRTFCO0FBRTlCLGlFQUFlO0VBQ1hHLElBQUksRUFBRTtJQUNGQSxJQUFJLEVBQUpBLDZDQUFJO0lBQ0pGLFFBQVEsRUFBRUcsMkNBQVlBO0VBQzFCLENBQUM7RUFDREMsTUFBTSxFQUFOQSwrQ0FBTTtFQUNOTCxTQUFTLEVBQUU7SUFDUEEsU0FBUyxFQUFUQSw4Q0FBUztJQUNUQyxRQUFRLEVBQUVDLDRDQUFpQkE7RUFDL0I7QUFDSixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9mb3Jtcy9pbmRleC5qcz85MjczIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGb3JtU3RhdGUsIHsgSW5zdGFuY2UgYXMgRm9ybVN0YXRlSW5zdGFuY2UgfSBmcm9tICcuL3N0YXRlJztcbmltcG9ydCBGb3JtLCB7IEluc3RhbmNlIGFzIEZvcm1JbnN0YW5jZSB9IGZyb20gJy4vZm9ybSc7XG5cbmltcG9ydCBGaWVsZHMgZnJvbSAnLi9maWVsZHMnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgRm9ybToge1xuICAgICAgICBGb3JtLFxuICAgICAgICBJbnN0YW5jZTogRm9ybUluc3RhbmNlXG4gICAgfSxcbiAgICBGaWVsZHMsXG4gICAgRm9ybVN0YXRlOiB7XG4gICAgICAgIEZvcm1TdGF0ZSxcbiAgICAgICAgSW5zdGFuY2U6IEZvcm1TdGF0ZUluc3RhbmNlXG4gICAgfVxufTtcbiJdLCJuYW1lcyI6WyJGb3JtU3RhdGUiLCJJbnN0YW5jZSIsIkZvcm1TdGF0ZUluc3RhbmNlIiwiRm9ybSIsIkZvcm1JbnN0YW5jZSIsIkZpZWxkcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/index.js\n\n}");
/***/ }),
/***/ "./app/forms/state.js":
/*!****************************!*\
!*** ./app/forms/state.js ***!
\****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DOMBehaviors: () => (/* binding */ DOMBehaviors),\n/* harmony export */ Instance: () => (/* binding */ Instance),\n/* harmony export */ \"default\": () => (/* binding */ FormState)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var immutable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! immutable */ \"./node_modules/immutable/dist/immutable.es.js\");\n/* harmony import */ var immutablediff__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! immutablediff */ \"./node_modules/immutablediff/src/diff.js\");\n/* harmony import */ var immutablediff__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(immutablediff__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_jquery_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/jquery-utils */ \"./app/utils/jquery-utils.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\nvar FormLoadState = {};\nvar DOMBehaviors = {\n attach: function attach() {\n this.preventUnload();\n this.preventClickAway();\n },\n preventUnload: function preventUnload() {\n var selector = '[name=\"task\"][value^=\"save\"], [data-delete-action], [data-flex-safe-action]';\n // jQuery 3.x removed $._data, use $._data only if available (jQuery < 3.0)\n // or check with jQuery's internal data store for jQuery >= 3.0\n try {\n var hasData = typeof (jquery__WEBPACK_IMPORTED_MODULE_0___default()._data) === 'function';\n if (hasData && jquery__WEBPACK_IMPORTED_MODULE_0___default()._data(window, 'events') && (jquery__WEBPACK_IMPORTED_MODULE_0___default()._data(window, 'events').beforeunload || []).filter(function (event) {\n return event.namespace === '_grav';\n }).length) {\n return;\n }\n } catch (e) {\n // $._data not available in jQuery 3.x+, continue with adding event handler\n }\n\n // Allow some elements to leave the page without native confirmation\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(selector).on('click._grav', function (event) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).off('beforeunload');\n });\n\n // Catch browser uri change / refresh attempt and stop it if the form state is dirty\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).on('beforeunload._grav', function () {\n if (Instance.equals() === false) {\n return 'You have made changes on this page that you have not yet confirmed. If you navigate away from this page you will lose your unsaved changes.';\n }\n });\n },\n preventClickAway: function preventClickAway() {\n var selector = 'a[href]:not([href^=\"#\"]):not([target=\"_blank\"]):not([href^=\"javascript:\"])';\n\n // jQuery 3.x removed $._data, use $._data only if available (jQuery < 3.0)\n try {\n var hasData = typeof (jquery__WEBPACK_IMPORTED_MODULE_0___default()._data) === 'function';\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(selector).get(0);\n if (element && hasData && jquery__WEBPACK_IMPORTED_MODULE_0___default()._data(element, 'events') && (jquery__WEBPACK_IMPORTED_MODULE_0___default()._data(element, 'events').click || []).filter(function (event) {\n return event.namespace === '_grav';\n })) {\n return;\n }\n } catch (e) {\n // $._data not available in jQuery 3.x+, continue with adding event handler\n }\n\n // Prevent clicking away if the form state is dirty\n // instead, display a confirmation before continuing\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(selector).on('click._grav', function (event) {\n var isClean = Instance.equals();\n if (isClean === null || isClean) {\n return true;\n }\n event.preventDefault();\n var destination = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('href');\n var modal = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"changes\"]');\n var lookup = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal).lookup[modal.data('remodal')];\n var buttons = jquery__WEBPACK_IMPORTED_MODULE_0___default()('a.button', modal);\n var _handler = function handler(event) {\n event.preventDefault();\n var action = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('leave-action');\n buttons.off('click', _handler);\n lookup.close();\n if (action === 'continue') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).off('beforeunload');\n __webpack_require__.g.location.href = destination;\n }\n };\n buttons.on('click', _handler);\n lookup.open();\n });\n }\n};\nvar FormState = /*#__PURE__*/function () {\n function FormState() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n ignore: [],\n form_id: 'blueprints'\n };\n _classCallCheck(this, FormState);\n this.options = options;\n this.refresh();\n if (!this.form || !this.fields.length) {\n return;\n }\n FormLoadState = this.collect();\n this.loadState = FormLoadState;\n DOMBehaviors.attach();\n }\n return _createClass(FormState, [{\n key: \"refresh\",\n value: function refresh() {\n this.form = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"form#\".concat(this.options.form_id)).filter(':noparents(.remodal)');\n this.fields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"form#\".concat(this.options.form_id, \" *, [form=\\\"\").concat(this.options.form_id, \"\\\"]\")).filter(':input:not(.no-form)').filter(':noparents(.remodal)');\n return this;\n }\n }, {\n key: \"collect\",\n value: function collect() {\n var _this = this;\n if (!this.form || !this.fields.length) {\n return;\n }\n var values = {};\n this.refresh().fields.each(function (index, field) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n var name = field.prop('name');\n var type = field.prop('type');\n var tag = field.prop('tagName').toLowerCase();\n var value;\n if (name.startsWith('toggleable_') || name === 'data[lang]' || name === 'data[redirect]') {\n return;\n }\n switch (type) {\n case 'checkbox':\n value = field.is(':checked');\n break;\n case 'radio':\n if (!field.is(':checked')) {\n return;\n }\n value = field.val();\n break;\n default:\n value = field.val();\n }\n if (tag === 'select' && value === null) {\n value = '';\n }\n if (Array.isArray(value)) {\n value = value.join('|');\n }\n if (name && !~_this.options.ignore.indexOf(name)) {\n values[name] = value;\n }\n });\n return immutable__WEBPACK_IMPORTED_MODULE_1__[\"default\"].OrderedMap(values);\n }\n }, {\n key: \"diff\",\n value: function diff() {\n return immutablediff__WEBPACK_IMPORTED_MODULE_2___default()(FormLoadState, this.collect());\n }\n\n // When the form doesn't exist or there are no fields, `equals` returns `null`\n // for this reason, _NEVER_ check with !Instance.equals(), use Instance.equals() === false\n }, {\n key: \"equals\",\n value: function equals() {\n if (!this.form || !this.fields.length) {\n return null;\n }\n return immutable__WEBPACK_IMPORTED_MODULE_1__[\"default\"].is(FormLoadState, this.collect());\n }\n }]);\n}();\n\n;\nvar Instance = new FormState();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUVGLE9BQU90RCw0REFBb0IsQ0FBQ3lELE1BQU0sQ0FBQztJQUN2QztFQUFDO0lBQUFKLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUFvQixJQUFJQSxDQUFBLEVBQUc7TUFDSCxPQUFPekUsb0RBQWEsQ0FBQ0MsYUFBYSxFQUFFLElBQUksQ0FBQ2dELE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdkQ7O0lBRUE7SUFDQTtFQUFBO0lBQUFHLEdBQUE7SUFBQUMsS0FBQSxFQUNBLFNBQUFqQyxNQUFNQSxDQUFBLEVBQUc7TUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDMkIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDQyxNQUFNLENBQUNsQyxNQUFNLEVBQUU7UUFBRSxPQUFPLElBQUk7TUFBRTtNQUN0RCxPQUFPZixvREFBWSxDQUFDRSxhQUFhLEVBQUUsSUFBSSxDQUFDZ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN0RDtFQUFDO0FBQUE7QUF6RXlCO0FBMEU3QjtBQUVNLElBQUk5QixRQUFRLEdBQUcsSUFBSW9CLFNBQVMsQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9mb3Jtcy9zdGF0ZS5qcz82N2UzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgSW1tdXRhYmxlIGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQgaW1tdXRhYmxlZGlmZiBmcm9tICdpbW11dGFibGVkaWZmJztcbmltcG9ydCAnLi4vdXRpbHMvanF1ZXJ5LXV0aWxzJztcblxubGV0IEZvcm1Mb2FkU3RhdGUgPSB7fTtcblxuY29uc3QgRE9NQmVoYXZpb3JzID0ge1xuICAgIGF0dGFjaCgpIHtcbiAgICAgICAgdGhpcy5wcmV2ZW50VW5sb2FkKCk7XG4gICAgICAgIHRoaXMucHJldmVudENsaWNrQXdheSgpO1xuICAgIH0sXG5cbiAgICBwcmV2ZW50VW5sb2FkKCkge1xuICAgICAgICBsZXQgc2VsZWN0b3IgPSAnW25hbWU9XCJ0YXNrXCJdW3ZhbHVlXj1cInNhdmVcIl0sIFtkYXRhLWRlbGV0ZS1hY3Rpb25dLCBbZGF0YS1mbGV4LXNhZmUtYWN0aW9uXSc7XG4gICAgICAgIC8vIGpRdWVyeSAzLnggcmVtb3ZlZCAkLl9kYXRhLCB1c2UgJC5fZGF0YSBvbmx5IGlmIGF2YWlsYWJsZSAoalF1ZXJ5IDwgMy4wKVxuICAgICAgICAvLyBvciBjaGVjayB3aXRoIGpRdWVyeSdzIGludGVybmFsIGRhdGEgc3RvcmUgZm9yIGpRdWVyeSA+PSAzLjBcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGhhc0RhdGEgPSB0eXBlb2YgJC5fZGF0YSA9PT0gJ2Z1bmN0aW9uJztcbiAgICAgICAgICAgIGlmIChoYXNEYXRhICYmICQuX2RhdGEod2luZG93LCAnZXZlbnRzJykgJiYgKCQuX2RhdGEod2luZG93LCAnZXZlbnRzJykuYmVmb3JldW5sb2FkIHx8IFtdKS5maWx0ZXIoKGV2ZW50KSA9PiBldmVudC5uYW1lc3BhY2UgPT09ICdfZ3JhdicpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gJC5fZGF0YSBub3QgYXZhaWxhYmxlIGluIGpRdWVyeSAzLngrLCBjb250aW51ZSB3aXRoIGFkZGluZyBldmVudCBoYW5kbGVyXG4gICAgICAgIH1cblxuICAgICAgICAvLyBBbGxvdyBzb21lIGVsZW1lbnRzIHRvIGxlYXZlIHRoZSBwYWdlIHdpdGhvdXQgbmF0aXZlIGNvbmZpcm1hdGlvblxuICAgICAgICAkKHNlbGVjdG9yKS5vbignY2xpY2suX2dyYXYnLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAgICAgJChnbG9iYWwpLm9mZignYmVmb3JldW5sb2FkJyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIENhdGNoIGJyb3dzZXIgdXJpIGNoYW5nZSAvIHJlZnJlc2ggYXR0ZW1wdCBhbmQgc3RvcCBpdCBpZiB0aGUgZm9ybSBzdGF0ZSBpcyBkaXJ0eVxuICAgICAgICAkKGdsb2JhbCkub24oJ2JlZm9yZXVubG9hZC5fZ3JhdicsICgpID0+IHtcbiAgICAgICAgICAgIGlmIChJbnN0YW5jZS5lcXVhbHMoKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1lvdSBoYXZlIG1hZGUgY2hhbmdlcyBvbiB0aGlzIHBhZ2UgdGhhdCB5b3UgaGF2ZSBub3QgeWV0IGNvbmZpcm1lZC4gSWYgeW91IG5hdmlnYXRlIGF3YXkgZnJvbSB0aGlzIHBhZ2UgeW91IHdpbGwgbG9zZSB5b3VyIHVuc2F2ZWQgY2hhbmdlcy4nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9LFxuXG4gICAgcHJldmVudENsaWNrQXdheSgpIHtcbiAgICAgICAgbGV0IHNlbGVjdG9yID0gJ2FbaHJlZl06bm90KFtocmVmXj1cIiNcIl0pOm5vdChbdGFyZ2V0PVwiX2JsYW5rXCJdKTpub3QoW2hyZWZePVwiamF2YXNjcmlwdDpcIl0pJztcblxuICAgICAgICAvLyBqUXVlcnkgMy54IHJlbW92ZWQgJC5fZGF0YSwgdXNlICQuX2RhdGEgb25seSBpZiBhdmFpbGFibGUgKGpRdWVyeSA8IDMuMClcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGhhc0RhdGEgPSB0eXBlb2YgJC5fZGF0YSA9PT0gJ2Z1bmN0aW9uJztcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSAkKHNlbGVjdG9yKS5nZXQoMCk7XG4gICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBoYXNEYXRhICYmICQuX2RhdGEoZWxlbWVudCwgJ2V2ZW50cycpICYmICgkLl9kYXRhKGVsZW1lbnQsICdldmVudHMnKS5jbGljayB8fCBbXSkuZmlsdGVyKChldmVudCkgPT4gZXZlbnQubmFtZXNwYWNlID09PSAnX2dyYXYnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gJC5fZGF0YSBub3QgYXZhaWxhYmxlIGluIGpRdWVyeSAzLngrLCBjb250aW51ZSB3aXRoIGFkZGluZyBldmVudCBoYW5kbGVyXG4gICAgICAgIH1cblxuICAgICAgICAvLyBQcmV2ZW50IGNsaWNraW5nIGF3YXkgaWYgdGhlIGZvcm0gc3RhdGUgaXMgZGlydHlcbiAgICAgICAgLy8gaW5zdGVhZCwgZGlzcGxheSBhIGNvbmZpcm1hdGlvbiBiZWZvcmUgY29udGludWluZ1xuICAgICAgICAkKHNlbGVjdG9yKS5vbignY2xpY2suX2dyYXYnLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAgICAgbGV0IGlzQ2xlYW4gPSBJbnN0YW5jZS5lcXVhbHMoKTtcbiAgICAgICAgICAgIGlmIChpc0NsZWFuID09PSBudWxsIHx8IGlzQ2xlYW4pIHsgcmV0dXJuIHRydWU7IH1cblxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgbGV0IGRlc3RpbmF0aW9uID0gJCh0aGlzKS5hdHRyKCdocmVmJyk7XG4gICAgICAgICAgICBsZXQgbW9kYWwgPSAkKCdbZGF0YS1yZW1vZGFsLWlkPVwiY2hhbmdlc1wiXScpO1xuICAgICAgICAgICAgbGV0IGxvb2t1cCA9ICQucmVtb2RhbC5sb29rdXBbbW9kYWwuZGF0YSgncmVtb2RhbCcpXTtcbiAgICAgICAgICAgIGxldCBidXR0b25zID0gJCgnYS5idXR0b24nLCBtb2RhbCk7XG5cbiAgICAgICAgICAgIGxldCBoYW5kbGVyID0gZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGxldCBhY3Rpb24gPSAkKHRoaXMpLmRhdGEoJ2xlYXZlLWFjdGlvbicpO1xuXG4gICAgICAgICAgICAgICAgYnV0dG9ucy5vZmYoJ2NsaWNrJywgaGFuZGxlcik7XG4gICAgICAgICAgICAgICAgbG9va3VwLmNsb3NlKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uID09PSAnY29udGludWUnKSB7XG4gICAgICAgICAgICAgICAgICAgICQoZ2xvYmFsKS5vZmYoJ2JlZm9yZXVubG9hZCcpO1xuICAgICAgICAgICAgICAgICAgICBnbG9iYWwubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGJ1dHRvbnMub24oJ2NsaWNrJywgaGFuZGxlcik7XG4gICAgICAgICAgICBsb29rdXAub3BlbigpO1xuICAgICAgICB9KTtcbiAgICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGb3JtU3RhdGUge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7XG4gICAgICAgIGlnbm9yZTogW10sXG4gICAgICAgIGZvcm1faWQ6ICdibHVlcHJpbnRzJ1xuICAgIH0pIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmZvcm0gfHwgIXRoaXMuZmllbGRzLmxlbmd0aCkgeyByZXR1cm47IH1cbiAgICAgICAgRm9ybUxvYWRTdGF0ZSA9IHRoaXMuY29sbGVjdCgpO1xuICAgICAgICB0aGlzLmxvYWRTdGF0ZSA9IEZvcm1Mb2FkU3RhdGU7XG4gICAgICAgIERPTUJlaGF2aW9ycy5hdHRhY2goKTtcbiAgICB9XG5cbiAgICByZWZyZXNoKCkge1xuICAgICAgICB0aGlzLmZvcm0gPSAkKGBmb3JtIyR7dGhpcy5vcHRpb25zLmZvcm1faWR9YCkuZmlsdGVyKCc6bm9wYXJlbnRzKC5yZW1vZGFsKScpO1xuICAgICAgICB0aGlzLmZpZWxkcyA9ICQoYGZvcm0jJHt0aGlzLm9wdGlvbnMuZm9ybV9pZH0gKiwgW2Zvcm09XCIke3RoaXMub3B0aW9ucy5mb3JtX2lkfVwiXWApLmZpbHRlcignOmlucHV0Om5vdCgubm8tZm9ybSknKS5maWx0ZXIoJzpub3BhcmVudHMoLnJlbW9kYWwpJyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgY29sbGVjdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm0gfHwgIXRoaXMuZmllbGRzLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICBsZXQgdmFsdWVzID0ge307XG4gICAgICAgIHRoaXMucmVmcmVzaCgpLmZpZWxkcy5lYWNoKChpbmRleCwgZmllbGQpID0+IHtcbiAgICAgICAgICAgIGZpZWxkID0gJChmaWVsZCk7XG4gICAgICAgICAgICBsZXQgbmFtZSA9IGZpZWxkLnByb3AoJ25hbWUnKTtcbiAgICAgICAgICAgIGxldCB0eXBlID0gZmllbGQucHJvcCgndHlwZScpO1xuICAgICAgICAgICAgbGV0IHRhZyA9IGZpZWxkLnByb3AoJ3RhZ05hbWUnKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgbGV0IHZhbHVlO1xuXG4gICAgICAgICAgICBpZiAobmFtZS5zdGFydHNXaXRoKCd0b2dnbGVhYmxlXycpIHx8IG5hbWUgPT09ICdkYXRhW2xhbmddJyB8fCBuYW1lID09PSAnZGF0YVtyZWRpcmVjdF0nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdjaGVja2JveCc6XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZmllbGQuaXMoJzpjaGVja2VkJyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3JhZGlvJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFmaWVsZC5pcygnOmNoZWNrZWQnKSkgeyByZXR1cm47IH1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBmaWVsZC52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBmaWVsZC52YWwoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRhZyA9PT0gJ3NlbGVjdCcgJiYgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9ICcnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmpvaW4oJ3wnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG5hbWUgJiYgIX50aGlzLm9wdGlvbnMuaWdub3JlLmluZGV4T2YobmFtZSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZXNbbmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIEltbXV0YWJsZS5PcmRlcmVkTWFwKHZhbHVlcyk7XG4gICAgfVxuXG4gICAgZGlmZigpIHtcbiAgICAgICAgcmV0dXJuIGltbXV0YWJsZWRpZmYoRm9ybUxvYWRTdGF0ZSwgdGhpcy5jb2xsZWN0KCkpO1xuICAgIH1cblxuICAgIC8vIFdoZW4gdGhlIGZvcm0gZG9lc24ndCBleGlzdCBvciB0aGVyZSBhcmUgbm8gZmllbGRzLCBgZXF1YWxzYCByZXR1cm5zIGBudWxsYFxuICAgIC8vIGZvciB0aGlzIHJlYXNvbiwgX05FVkVSXyBjaGVjayB3aXRoICFJbnN0YW5jZS5lcXVhbHMoKSwgdXNlIEluc3RhbmNlLmVxdWFscygpID09PSBmYWxzZVxuICAgIGVxdWFscygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm0gfHwgIXRoaXMuZmllbGRzLmxlbmd0aCkgeyByZXR1cm4gbnVsbDsgfVxuICAgICAgICByZXR1cm4gSW1tdXRhYmxlLmlzKEZvcm1Mb2FkU3RhdGUsIHRoaXMuY29sbGVjdCgpKTtcbiAgICB9XG59O1xuXG5leHBvcnQgbGV0IEluc3RhbmNlID0gbmV3IEZvcm1TdGF0ZSgpO1xuXG5leHBvcnQgeyBET01CZWhhdmlvcnMgfTtcbiJdLCJuYW1lcyI6WyIkIiwiSW1tdXRhYmxlIiwiaW1tdXRhYmxlZGlmZiIsIkZvcm1Mb2FkU3RhdGUiLCJET01CZWhhdmlvcnMiLCJhdHRhY2giLCJwcmV2ZW50VW5sb2FkIiwicHJldmVudENsaWNrQXdheSIsInNlbGVjdG9yIiwiaGFzRGF0YSIsIl9kYXRhIiwid2luZG93IiwiYmVmb3JldW5sb2FkIiwiZmlsdGVyIiwiZXZlbnQiLCJuYW1lc3BhY2UiLCJsZW5ndGgiLCJlIiwib24iLCJnbG9iYWwiLCJvZmYiLCJJbnN0YW5jZSIsImVxdWFscyIsImVsZW1lbnQiLCJnZXQiLCJjbGljayIsImlzQ2xlYW4iLCJwcmV2ZW50RGVmYXVsdCIsImRlc3RpbmF0aW9uIiwiYXR0ciIsIm1vZGFsIiwibG9va3VwIiwicmVtb2RhbCIsImRhdGEiLCJidXR0b25zIiwiaGFuZGxlciIsImFjdGlvbiIsImNsb3NlIiwibG9jYXRpb24iLCJocmVmIiwib3BlbiIsIkZvcm1TdGF0ZSIsIm9wdGlvbnMiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJpZ25vcmUiLCJmb3JtX2lkIiwiX2NsYXNzQ2FsbENoZWNrIiwicmVmcmVzaCIsImZvcm0iLCJmaWVsZHMiLCJjb2xsZWN0IiwibG9hZFN0YXRlIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJjb25jYXQiLCJfdGhpcyIsInZhbHVlcyIsImVhY2giLCJpbmRleCIsImZpZWxkIiwibmFtZSIsInByb3AiLCJ0eXBlIiwidGFnIiwidG9Mb3dlckNhc2UiLCJzdGFydHNXaXRoIiwiaXMiLCJ2YWwiLCJBcnJheSIsImlzQXJyYXkiLCJqb2luIiwiaW5kZXhPZiIsIk9yZGVyZWRNYXAiLCJkaWZmIiwiZGVmYXVsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/state.js\n\n}");
/***/ }),
/***/ "./app/main.js":
/*!*********************!*\
!*** ./app/main.js ***!
\*********************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_polyfill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/polyfill */ \"./node_modules/@babel/polyfill/lib/index.js\");\n/* harmony import */ var _babel_polyfill__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_polyfill__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_remodal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/remodal */ \"./app/utils/remodal.js\");\n/* harmony import */ var simplebar_dist_simplebar_min_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! simplebar/dist/simplebar.min.js */ \"./node_modules/simplebar/dist/simplebar.min.js\");\n/* harmony import */ var simplebar_dist_simplebar_min_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(simplebar_dist_simplebar_min_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _forms_fields_files_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./forms/fields/files.js */ \"./app/forms/fields/files.js\");\n/* harmony import */ var _utils_gpm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/gpm */ \"./app/utils/gpm.js\");\n/* harmony import */ var _utils_keepalive__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/keepalive */ \"./app/utils/keepalive.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _updates__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./updates */ \"./app/updates/index.js\");\n/* harmony import */ var _dashboard__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./dashboard */ \"./app/dashboard/index.js\");\n/* harmony import */ var _pages__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./pages */ \"./app/pages/index.js\");\n/* harmony import */ var _forms__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./forms */ \"./app/forms/index.js\");\n/* harmony import */ var _utils_cookies__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/cookies */ \"./app/utils/cookies.js\");\n/* harmony import */ var _plugins__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./plugins */ \"./app/plugins/index.js\");\n/* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./themes */ \"./app/themes/index.js\");\n/* harmony import */ var _media__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./media */ \"./app/media/index.js\");\n/* harmony import */ var _utils_toastr__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./utils/toastr */ \"./app/utils/toastr.js\");\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var _utils_2fa__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./utils/2fa */ \"./app/utils/2fa.js\");\n/* harmony import */ var _tools__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./tools */ \"./app/tools/index.js\");\n/* harmony import */ var _whitelabel__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./whitelabel */ \"./app/whitelabel/index.js\");\n/* harmony import */ var _utils_bootstrap_transition__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./utils/bootstrap-transition */ \"./app/utils/bootstrap-transition.js\");\n/* harmony import */ var _utils_bootstrap_collapse__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./utils/bootstrap-collapse */ \"./app/utils/bootstrap-collapse.js\");\n/* harmony import */ var _utils_bootstrap_dropdown__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./utils/bootstrap-dropdown */ \"./app/utils/bootstrap-dropdown.js\");\n/* harmony import */ var _utils_tabs_memory__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./utils/tabs-memory */ \"./app/utils/tabs-memory.js\");\n/* harmony import */ var _utils_changelog__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./utils/changelog */ \"./app/utils/changelog.js\");\n/* harmony import */ var _utils_sidebar__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./utils/sidebar */ \"./app/utils/sidebar.js\");\n/* harmony import */ var _utils_session_expired__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./utils/session-expired */ \"./app/utils/session-expired.js\");\n// polyfills\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// bootstrap jQuery extensions\n\n\n\n\n// tabs memory\n\n\n// changelog\n\n\n// Main Sidebar\n\n\n\n// starts the keep alive (if enabled), but never on auth views like login/forgot/reset/register\nvar AUTH_VIEWS = ['login', 'forgot', 'reset', 'register'];\nvar isAuthView = AUTH_VIEWS.includes(String(grav_config__WEBPACK_IMPORTED_MODULE_7__.config.route || ''));\nif (!isAuthView && String(grav_config__WEBPACK_IMPORTED_MODULE_7__.config.keep_alive_enabled) !== '0') {\n _utils_keepalive__WEBPACK_IMPORTED_MODULE_6__[\"default\"].start();\n}\n\n// catch legacy jQuery XHR 401/403 globally\n(0,_utils_session_expired__WEBPACK_IMPORTED_MODULE_27__.bindGlobalAjaxTrap)();\n\n// intercept admin nav clicks to show modal before redirect on timeout\n(0,_utils_session_expired__WEBPACK_IMPORTED_MODULE_27__.installNavigationGuard)();\n\n// global event to catch sidebar_state changes\njquery__WEBPACK_IMPORTED_MODULE_1___default()(__webpack_require__.g).on('sidebar_state._grav', function () {\n Object.keys(_dashboard__WEBPACK_IMPORTED_MODULE_9__[\"default\"].Chart.Instances).forEach(function (chart) {\n setTimeout(function () {\n return _dashboard__WEBPACK_IMPORTED_MODULE_9__[\"default\"].Chart.Instances[chart].chart.update();\n }, 10);\n });\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n GPM: {\n GPM: _utils_gpm__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n Instance: _utils_gpm__WEBPACK_IMPORTED_MODULE_5__.Instance\n },\n KeepAlive: _utils_keepalive__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n Dashboard: _dashboard__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n Pages: _pages__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n Forms: _forms__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n Updates: {\n Updates: _updates__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n Notifications: _updates__WEBPACK_IMPORTED_MODULE_8__.Notifications,\n Feed: _updates__WEBPACK_IMPORTED_MODULE_8__.Feed,\n Instance: _updates__WEBPACK_IMPORTED_MODULE_8__.Instance\n },\n Sidebar: {\n Sidebar: _utils_sidebar__WEBPACK_IMPORTED_MODULE_26__[\"default\"],\n Instance: _utils_sidebar__WEBPACK_IMPORTED_MODULE_26__.Instance\n },\n MediaFilter: {\n MediaFilter: _media__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n Instance: _media__WEBPACK_IMPORTED_MODULE_15__.Instance\n },\n Scrollbar: {\n Scrollbar: {\n deprecated: true\n },\n Instance: {\n deprecated: true\n }\n },\n Utils: {\n request: _utils_request__WEBPACK_IMPORTED_MODULE_17__[\"default\"],\n toastr: _utils_toastr__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n Cookies: _utils_cookies__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n UriToMarkdown: _forms_fields_files_js__WEBPACK_IMPORTED_MODULE_4__.UriToMarkdown\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvbWFpbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUN5QjtBQUVGO0FBQ0U7QUFDZ0I7QUFDZTtBQUNMO0FBQ1Q7QUFDUztBQUMyQjtBQUMxQztBQUNSO0FBQ0E7QUFDVTtBQUNuQjtBQUNEO0FBQ29EO0FBQ2xDO0FBQ0U7QUFDakI7QUFDSjtBQUNLOztBQUV0QjtBQUNzQztBQUNGO0FBQ0E7O0FBRXBDO0FBQzZCOztBQUU3QjtBQUMyQjs7QUFFM0I7QUFDK0Q7QUFDc0I7O0FBRXJGO0FBQ0EsSUFBTXdCLFVBQVUsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQztBQUMzRCxJQUFNQyxVQUFVLEdBQUdELFVBQVUsQ0FBQ0UsUUFBUSxDQUFDQyxNQUFNLENBQUNwQiwrQ0FBVSxDQUFDcUIsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ3RFLElBQUksQ0FBQ0gsVUFBVSxJQUFJRSxNQUFNLENBQUNwQiwrQ0FBVSxDQUFDc0Isa0JBQWtCLENBQUMsS0FBSyxHQUFHLEVBQUU7RUFDOUR4Qix3REFBUyxDQUFDeUIsS0FBSyxDQUFDLENBQUM7QUFDckI7O0FBRUE7QUFDQVIsMkVBQWtCLENBQUMsQ0FBQzs7QUFFcEI7QUFDQUMsK0VBQXNCLENBQUMsQ0FBQzs7QUFFeEI7QUFDQXZCLDZDQUFDLENBQUMrQixxQkFBTSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxZQUFNO0VBQ3RDQyxNQUFNLENBQUNDLElBQUksQ0FBQ3RCLGtEQUFTLENBQUN1QixLQUFLLENBQUNDLFNBQVMsQ0FBQyxDQUFDQyxPQUFPLENBQUMsVUFBQ0MsS0FBSyxFQUFLO0lBQ3REQyxVQUFVLENBQUM7TUFBQSxPQUFNM0Isa0RBQVMsQ0FBQ3VCLEtBQUssQ0FBQ0MsU0FBUyxDQUFDRSxLQUFLLENBQUMsQ0FBQ0EsS0FBSyxDQUFDRSxNQUFNLENBQUMsQ0FBQztJQUFBLEdBQUUsRUFBRSxDQUFDO0VBQ3pFLENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLGlFQUFlO0VBQ1h0QyxHQUFHLEVBQUU7SUFDREEsR0FBRyxFQUFIQSxrREFBRztJQUNIQyxRQUFRLEVBQUVDLGdEQUFHQTtFQUNqQixDQUFDO0VBQ0RDLFNBQVMsRUFBVEEsd0RBQVM7RUFDVE8sU0FBUyxFQUFUQSxrREFBUztFQUNUQyxLQUFLLEVBQUxBLCtDQUFLO0VBQ0xDLEtBQUssRUFBTEEsK0NBQUs7RUFDTE4sT0FBTyxFQUFFO0lBQ0xBLE9BQU8sRUFBUEEsZ0RBQU87SUFDUEUsYUFBYSxFQUFiQSxtREFBYTtJQUNiQyxJQUFJLEVBQUpBLDBDQUFJO0lBQ0pSLFFBQVEsRUFBRU0sOENBQU9BO0VBQ3JCLENBQUM7RUFDRFcsT0FBTyxFQUFFO0lBQ0xBLE9BQU8sRUFBUEEsdURBQU87SUFDUGpCLFFBQVEsRUFBRWtCLHFEQUFPQTtFQUNyQixDQUFDO0VBQ0RMLFdBQVcsRUFBRTtJQUNUQSxXQUFXLEVBQVhBLCtDQUFXO0lBQ1hiLFFBQVEsRUFBRWMsNkNBQW1CQTtFQUNqQyxDQUFDO0VBQ0R3QixTQUFTLEVBQUU7SUFBRUEsU0FBUyxFQUFFO01BQUVDLFVBQVUsRUFBRTtJQUFLLENBQUM7SUFBRXZDLFFBQVEsRUFBRTtNQUFFdUMsVUFBVSxFQUFFO0lBQUs7RUFBRSxDQUFDO0VBQzlFQyxLQUFLLEVBQUU7SUFBRXhCLE9BQU8sRUFBUEEsdURBQU87SUFBRUQsTUFBTSxFQUFOQSxzREFBTTtJQUFFSCxPQUFPLEVBQVBBLHVEQUFPO0lBQUVkLGFBQWEsRUFBYkEsaUVBQWFBO0VBQUM7QUFDckQsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvbWFpbi5qcz9mMTYxIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBvbHlmaWxsc1xuaW1wb3J0ICdAYmFiZWwvcG9seWZpbGwnO1xuXG5pbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0ICcuL3V0aWxzL3JlbW9kYWwnO1xuaW1wb3J0ICdzaW1wbGViYXIvZGlzdC9zaW1wbGViYXIubWluLmpzJztcbmltcG9ydCB7IFVyaVRvTWFya2Rvd24gfSBmcm9tICcuL2Zvcm1zL2ZpZWxkcy9maWxlcy5qcyc7XG5pbXBvcnQgR1BNLCB7IEluc3RhbmNlIGFzIGdwbSB9IGZyb20gJy4vdXRpbHMvZ3BtJztcbmltcG9ydCBLZWVwQWxpdmUgZnJvbSAnLi91dGlscy9rZWVwYWxpdmUnO1xuaW1wb3J0IHsgY29uZmlnIGFzIEdyYXZDb25maWcgfSBmcm9tICdncmF2LWNvbmZpZyc7XG5pbXBvcnQgVXBkYXRlcywgeyBJbnN0YW5jZSBhcyB1cGRhdGVzLCBOb3RpZmljYXRpb25zLCBGZWVkIH0gZnJvbSAnLi91cGRhdGVzJztcbmltcG9ydCBEYXNoYm9hcmQgZnJvbSAnLi9kYXNoYm9hcmQnO1xuaW1wb3J0IFBhZ2VzIGZyb20gJy4vcGFnZXMnO1xuaW1wb3J0IEZvcm1zIGZyb20gJy4vZm9ybXMnO1xuaW1wb3J0IENvb2tpZXMgZnJvbSAnLi91dGlscy9jb29raWVzJztcbmltcG9ydCAnLi9wbHVnaW5zJztcbmltcG9ydCAnLi90aGVtZXMnO1xuaW1wb3J0IE1lZGlhRmlsdGVyLCB7IEluc3RhbmNlIGFzIE1lZGlhRmlsdGVySW5zdGFuY2V9IGZyb20gJy4vbWVkaWEnO1xuaW1wb3J0IHRvYXN0ciBmcm9tICcuL3V0aWxzL3RvYXN0cic7XG5pbXBvcnQgcmVxdWVzdCBmcm9tICcuL3V0aWxzL3JlcXVlc3QnO1xuaW1wb3J0ICcuL3V0aWxzLzJmYSc7XG5pbXBvcnQgJy4vdG9vbHMnO1xuaW1wb3J0ICcuL3doaXRlbGFiZWwnO1xuXG4vLyBib290c3RyYXAgalF1ZXJ5IGV4dGVuc2lvbnNcbmltcG9ydCAnLi91dGlscy9ib290c3RyYXAtdHJhbnNpdGlvbic7XG5pbXBvcnQgJy4vdXRpbHMvYm9vdHN0cmFwLWNvbGxhcHNlJztcbmltcG9ydCAnLi91dGlscy9ib290c3RyYXAtZHJvcGRvd24nO1xuXG4vLyB0YWJzIG1lbW9yeVxuaW1wb3J0ICcuL3V0aWxzL3RhYnMtbWVtb3J5JztcblxuLy8gY2hhbmdlbG9nXG5pbXBvcnQgJy4vdXRpbHMvY2hhbmdlbG9nJztcblxuLy8gTWFpbiBTaWRlYmFyXG5pbXBvcnQgU2lkZWJhciwgeyBJbnN0YW5jZSBhcyBzaWRlYmFyIH0gZnJvbSAnLi91dGlscy9zaWRlYmFyJztcbmltcG9ydCB7IGJpbmRHbG9iYWxBamF4VHJhcCwgaW5zdGFsbE5hdmlnYXRpb25HdWFyZCB9IGZyb20gJy4vdXRpbHMvc2Vzc2lvbi1leHBpcmVkJztcblxuLy8gc3RhcnRzIHRoZSBrZWVwIGFsaXZlIChpZiBlbmFibGVkKSwgYnV0IG5ldmVyIG9uIGF1dGggdmlld3MgbGlrZSBsb2dpbi9mb3Jnb3QvcmVzZXQvcmVnaXN0ZXJcbmNvbnN0IEFVVEhfVklFV1MgPSBbJ2xvZ2luJywgJ2ZvcmdvdCcsICdyZXNldCcsICdyZWdpc3RlciddO1xuY29uc3QgaXNBdXRoVmlldyA9IEFVVEhfVklFV1MuaW5jbHVkZXMoU3RyaW5nKEdyYXZDb25maWcucm91dGUgfHwgJycpKTtcbmlmICghaXNBdXRoVmlldyAmJiBTdHJpbmcoR3JhdkNvbmZpZy5rZWVwX2FsaXZlX2VuYWJsZWQpICE9PSAnMCcpIHtcbiAgICBLZWVwQWxpdmUuc3RhcnQoKTtcbn1cblxuLy8gY2F0Y2ggbGVnYWN5IGpRdWVyeSBYSFIgNDAxLzQwMyBnbG9iYWxseVxuYmluZEdsb2JhbEFqYXhUcmFwKCk7XG5cbi8vIGludGVyY2VwdCBhZG1pbiBuYXYgY2xpY2tzIHRvIHNob3cgbW9kYWwgYmVmb3JlIHJlZGlyZWN0IG9uIHRpbWVvdXRcbmluc3RhbGxOYXZpZ2F0aW9uR3VhcmQoKTtcblxuLy8gZ2xvYmFsIGV2ZW50IHRvIGNhdGNoIHNpZGViYXJfc3RhdGUgY2hhbmdlc1xuJChnbG9iYWwpLm9uKCdzaWRlYmFyX3N0YXRlLl9ncmF2JywgKCkgPT4ge1xuICAgIE9iamVjdC5rZXlzKERhc2hib2FyZC5DaGFydC5JbnN0YW5jZXMpLmZvckVhY2goKGNoYXJ0KSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gRGFzaGJvYXJkLkNoYXJ0Lkluc3RhbmNlc1tjaGFydF0uY2hhcnQudXBkYXRlKCksIDEwKTtcbiAgICB9KTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgR1BNOiB7XG4gICAgICAgIEdQTSxcbiAgICAgICAgSW5zdGFuY2U6IGdwbVxuICAgIH0sXG4gICAgS2VlcEFsaXZlLFxuICAgIERhc2hib2FyZCxcbiAgICBQYWdlcyxcbiAgICBGb3JtcyxcbiAgICBVcGRhdGVzOiB7XG4gICAgICAgIFVwZGF0ZXMsXG4gICAgICAgIE5vdGlmaWNhdGlvbnMsXG4gICAgICAgIEZlZWQsXG4gICAgICAgIEluc3RhbmNlOiB1cGRhdGVzXG4gICAgfSxcbiAgICBTaWRlYmFyOiB7XG4gICAgICAgIFNpZGViYXIsXG4gICAgICAgIEluc3RhbmNlOiBzaWRlYmFyXG4gICAgfSxcbiAgICBNZWRpYUZpbHRlcjoge1xuICAgICAgICBNZWRpYUZpbHRlcixcbiAgICAgICAgSW5zdGFuY2U6IE1lZGlhRmlsdGVySW5zdGFuY2VcbiAgICB9LFxuICAgIFNjcm9sbGJhcjogeyBTY3JvbGxiYXI6IHsgZGVwcmVjYXRlZDogdHJ1ZSB9LCBJbnN0YW5jZTogeyBkZXByZWNhdGVkOiB0cnVlIH0gfSxcbiAgICBVdGlsczogeyByZXF1ZXN0LCB0b2FzdHIsIENvb2tpZXMsIFVyaVRvTWFya2Rvd24gfVxufTtcbiJdLCJuYW1lcyI6WyIkIiwiVXJpVG9NYXJrZG93biIsIkdQTSIsIkluc3RhbmNlIiwiZ3BtIiwiS2VlcEFsaXZlIiwiY29uZmlnIiwiR3JhdkNvbmZpZyIsIlVwZGF0ZXMiLCJ1cGRhdGVzIiwiTm90aWZpY2F0aW9ucyIsIkZlZWQiLCJEYXNoYm9hcmQiLCJQYWdlcyIsIkZvcm1zIiwiQ29va2llcyIsIk1lZGlhRmlsdGVyIiwiTWVkaWFGaWx0ZXJJbnN0YW5jZSIsInRvYXN0ciIsInJlcXVlc3QiLCJTaWRlYmFyIiwic2lkZWJhciIsImJpbmRHbG9iYWxBamF4VHJhcCIsImluc3RhbGxOYXZpZ2F0aW9uR3VhcmQiLCJBVVRIX1ZJRVdTIiwiaXNBdXRoVmlldyIsImluY2x1ZGVzIiwiU3RyaW5nIiwicm91dGUiLCJrZWVwX2FsaXZlX2VuYWJsZWQiLCJzdGFydCIsImdsb2JhbCIsIm9uIiwiT2JqZWN0Iiwia2V5cyIsIkNoYXJ0IiwiSW5zdGFuY2VzIiwiZm9yRWFjaCIsImNoYXJ0Iiwic2V0VGltZW91dCIsInVwZGF0ZSIsIlNjcm9sbGJhciIsImRlcHJlY2F0ZWQiLCJVdGlscyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/main.js\n\n}");
/***/ }),
/***/ "./app/media/index.js":
/*!****************************!*\
!*** ./app/media/index.js ***!
\****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Instance: () => (/* binding */ Instance),\n/* harmony export */ \"default\": () => (/* binding */ Filter)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\nvar Filter = /*#__PURE__*/function () {\n function Filter() {\n _classCallCheck(this, Filter);\n this.URI = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/media-manager/\");\n }\n return _createClass(Filter, [{\n key: \"filter\",\n value: function filter(name, value) {\n var filtered = [];\n var keys = Object.keys(grav_config__WEBPACK_IMPORTED_MODULE_1__.uri_params);\n if (!~keys.indexOf(name)) {\n keys.push(name);\n }\n keys.forEach(function (key) {\n var filter = Filter.cleanValue(key === name ? value : grav_config__WEBPACK_IMPORTED_MODULE_1__.uri_params[key]);\n if (filter !== '*') {\n filtered.push(\"\".concat(key).concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(filter));\n }\n });\n __webpack_require__.g.location = this.URI + filtered.join('/');\n }\n }], [{\n key: \"cleanValue\",\n value: function cleanValue(value) {\n return encodeURIComponent(value.replace('/', '\\\\'));\n }\n }]);\n}();\n\nvar Instance = new Filter();\nvar isLoading = false;\nvar filters = {};\nvar global_index = 1;\nvar files_ended = false;\nvar MEDIA_PAGINATION_INTERVAL = 20;\n\n/* handle changing file type / date filter */\njquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('change', '.thumbs-list-container select.filter', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var filterName = target.data('name');\n var filterValue = target.val();\n if (filterValue) {\n filters[filterName] = filterValue;\n } else {\n delete filters[filterName];\n }\n filterFiles();\n});\n\n/* initialize media uploader */\nif (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.thumbs-list-container .dropzone')[0]) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.thumbs-list-container .dropzone')[0].dropzone.on('queuecomplete', function () {\n var body = {};\n if (filters.page) {\n body.page = filters.page;\n }\n if (filters.date) {\n body.date = filters.date;\n }\n if (filters.type) {\n body.type = filters.type;\n }\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dropzone')[0].dropzone.files.forEach(function (file) {\n file.previewElement.remove();\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dropzone').first().removeClass('dz-started');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/media-manager.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"clearMediaCache\"), {\n method: 'post',\n body: body\n }, function () {\n filterFiles();\n });\n });\n}\n\n/* handle loading media */\nvar loadMedia = function loadMedia(filters, callback) {\n var url = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/media.json/tmpl\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"media-list-content/index\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(global_index);\n if (filters.page) {\n url += \"/page\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(filters.page.split('/').join('%5C'));\n }\n if (filters.type && filters.type !== '*') {\n url += \"/type\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(filters.type);\n }\n if (filters.date && filters.date !== '*') {\n url += \"/date\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(filters.date);\n }\n if (!isLoading) {\n isLoading = true;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.spinning-wheel').show();\n jquery__WEBPACK_IMPORTED_MODULE_0___default().get(url, function (content) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files').append(content);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.spinning-wheel').hide();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.media-container .media-range').trigger('change');\n isLoading = false;\n global_index++;\n callback(content);\n });\n }\n};\nvar cleanFilesList = function cleanFilesList() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files .card-item').remove();\n};\nvar resetActiveStateInSidebar = function resetActiveStateInSidebar() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.pages-list-container .row').removeClass('active'); // clear active state in sidebar\n};\nvar showEmptyState = function showEmptyState() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.thumbs-list-container').append('
No media found
');\n};\nvar filterFiles = function filterFiles() {\n cleanFilesList();\n global_index = 0;\n files_ended = false;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.empty-space').remove();\n loadMedia(filters, function (content) {\n if (!content.trim().length) {\n showEmptyState();\n } else {\n if (!filters.page && (!filters.date || filters.date === '*') && (!filters.type || filters.type === '*')) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files').trigger('fillView');\n }\n }\n });\n};\n\n/* handle changing page */\njquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('click', '.pages-list-container .js__page-link', function (event) {\n var page = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).data('page');\n filters['page'] = page;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.media-list-title .page-indicator').html(page); // set indication\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__reset-pages-filter').removeClass('hidden'); // activate reset pages icon\n resetActiveStateInSidebar();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('.row').addClass('active'); // set active state in sidebar\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__file-uploader').removeClass('hidden');\n\n // customize processing URL, as the page changes dynamically\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dropzone')[0]) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dropzone')[0].dropzone.on('processing', function (file) {\n this.options.url = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/media-manager\").concat(page, \".json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"addmedia\");\n });\n }\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__button-clear-media-cache').addClass('hidden');\n filterFiles();\n disableInfiniteScrolling(); // only infinite scroll on main list, not inside single pages\n});\n\n/* handle clearing page filter */\njquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('click', '.js__reset-pages-filter', function (event) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.media-list-title .page-indicator').html('All Pages'); // set indication\n cleanFilesList();\n resetActiveStateInSidebar();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__reset-pages-filter').addClass('hidden'); // remove reset pages icon\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__file-uploader').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__button-clear-media-cache').removeClass('hidden');\n delete filters['page'];\n filterFiles();\n});\n\n/* handle infinite loading */\nvar enableInfiniteScrolling = function enableInfiniteScrolling() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.spinning-wheel').hide();\n var view = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.mediapicker-scroll').last();\n if (!view.length) {\n return;\n }\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(view).on('scroll', function () {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).scrollTop() + jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).innerHeight() + 100 >= jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)[0].scrollHeight) {\n fillView();\n }\n });\n};\nvar loadNextBatch = function loadNextBatch(callback) {\n if (files_ended) {\n return;\n }\n loadMedia({}, function (content) {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(content).length || content.split('card-item').length - 1 < MEDIA_PAGINATION_INTERVAL) {\n files_ended = true;\n } else {\n if (callback) {\n callback();\n }\n }\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.media-container .media-range').trigger('input');\n });\n};\nvar fillView = function fillView() {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files').find('.card-item').last().offset()) {\n setTimeout(function () {\n // retry later\n fillView();\n }, 300);\n return;\n }\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files').find('.card-item').last().offset().top - 1 <= jquery__WEBPACK_IMPORTED_MODULE_0___default()('.media-container').height()) {\n loadNextBatch(function () {\n fillView();\n });\n }\n};\n\n/* disable infinite loading */\nvar disableInfiniteScrolling = function disableInfiniteScrolling() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.spinning-wheel').hide();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.content-wrapper').unbind('scroll');\n};\njquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files').on('fillView', function (event) {\n // the first batch got the max number of media files, try loading more\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files')[0].innerHTML.split('card-item').length - 1 === MEDIA_PAGINATION_INTERVAL) {\n fillView();\n enableInfiniteScrolling();\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUM7SUFFUDtFQUNKO0VBRUEsSUFBSWpGLDZDQUFDLENBQUMsWUFBWSxDQUFDLENBQUNtRixJQUFJLENBQUMsWUFBWSxDQUFDLENBQUNOLElBQUksQ0FBQyxDQUFDLENBQUNPLE1BQU0sQ0FBQyxDQUFDLENBQUNFLEdBQUcsR0FBRyxDQUFDLElBQUl0Riw2Q0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUN1RixNQUFNLENBQUMsQ0FBQyxFQUFFO0lBQzlGTCxhQUFhLENBQUMsWUFBVztNQUNyQkQsUUFBUSxDQUFDLENBQUM7SUFDZCxDQUFDLENBQUM7RUFDTjtBQUNKLENBQUM7O0FBRUQ7QUFDQSxJQUFJUCx3QkFBd0IsR0FBRyxTQUFTQSx3QkFBd0JBLENBQUEsRUFBRztFQUMvRDFFLDZDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQytELElBQUksQ0FBQyxDQUFDO0VBQzNCL0QsNkNBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDd0YsTUFBTSxDQUFDLFFBQVEsQ0FBQztBQUMxQyxDQUFDO0FBRUR4Riw2Q0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDa0MsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFTQyxLQUFLLEVBQUU7RUFDM0M7RUFDQSxJQUFLbkMsNkNBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ3lGLFNBQVMsQ0FBQy9CLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQ1csTUFBTSxHQUFHLENBQUMsS0FBTXBDLHlCQUF5QixFQUFFO0lBQzVGZ0QsUUFBUSxDQUFDLENBQUM7SUFDVk4sdUJBQXVCLENBQUMsQ0FBQztFQUM3QjtBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvbWVkaWEvaW5kZXguanM/MTU0MCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgY29uZmlnLCB1cmlfcGFyYW1zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbHRlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuVVJJID0gYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS9tZWRpYS1tYW5hZ2VyL2A7XG4gICAgfVxuXG4gICAgZmlsdGVyKG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIGxldCBmaWx0ZXJlZCA9IFtdO1xuICAgICAgICBsZXQga2V5cyA9IE9iamVjdC5rZXlzKHVyaV9wYXJhbXMpO1xuICAgICAgICBpZiAoIX5rZXlzLmluZGV4T2YobmFtZSkpIHsga2V5cy5wdXNoKG5hbWUpOyB9XG5cbiAgICAgICAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGxldCBmaWx0ZXIgPSBGaWx0ZXIuY2xlYW5WYWx1ZShrZXkgPT09IG5hbWUgPyB2YWx1ZSA6IHVyaV9wYXJhbXNba2V5XSk7XG4gICAgICAgICAgICBpZiAoZmlsdGVyICE9PSAnKicpIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJlZC5wdXNoKGAke2tleX0ke2NvbmZpZy5wYXJhbV9zZXB9JHtmaWx0ZXJ9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGdsb2JhbC5sb2NhdGlvbiA9IHRoaXMuVVJJICsgZmlsdGVyZWQuam9pbignLycpO1xuICAgIH1cblxuICAgIHN0YXRpYyBjbGVhblZhbHVlKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQodmFsdWUucmVwbGFjZSgnLycsICdcXFxcJykpO1xuICAgIH1cbn1cblxuZXhwb3J0IGxldCBJbnN0YW5jZSA9IG5ldyBGaWx0ZXIoKTtcbnZhciBpc0xvYWRpbmcgPSBmYWxzZTtcblxudmFyIGZpbHRlcnMgPSB7fTtcbnZhciBnbG9iYWxfaW5kZXggPSAxO1xudmFyIGZpbGVzX2VuZGVkID0gZmFsc2U7XG5jb25zdCBNRURJQV9QQUdJTkFUSU9OX0lOVEVSVkFMID0gMjA7XG5cbi8qIGhhbmRsZSBjaGFuZ2luZyBmaWxlIHR5cGUgLyBkYXRlIGZpbHRlciAqL1xuJCgnYm9keScpLm9uKCdjaGFuZ2UnLCAnLnRodW1icy1saXN0LWNvbnRhaW5lciBzZWxlY3QuZmlsdGVyJywgKGV2ZW50KSA9PiB7XG4gICAgbGV0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgbGV0IGZpbHRlck5hbWUgPSB0YXJnZXQuZGF0YSgnbmFtZScpO1xuICAgIGxldCBmaWx0ZXJWYWx1ZSA9IHRhcmdldC52YWwoKTtcblxuICAgIGlmIChmaWx0ZXJWYWx1ZSkge1xuICAgICAgICBmaWx0ZXJzW2ZpbHRlck5hbWVdID0gZmlsdGVyVmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIGZpbHRlcnNbZmlsdGVyTmFtZV07XG4gICAgfVxuXG4gICAgZmlsdGVyRmlsZXMoKTtcbn0pO1xuXG4vKiBpbml0aWFsaXplIG1lZGlhIHVwbG9hZGVyICovXG5pZiAoJCgnLnRodW1icy1saXN0LWNvbnRhaW5lciAuZHJvcHpvbmUnKVswXSkge1xuICAgICQoJy50aHVtYnMtbGlzdC1jb250YWluZXIgLmRyb3B6b25lJylbMF0uZHJvcHpvbmUub24oJ3F1ZXVlY29tcGxldGUnLCBmdW5jdGlvbigpIHtcbiAgICAgICAgbGV0IGJvZHkgPSB7fTtcbiAgICAgICAgaWYgKGZpbHRlcnMucGFnZSkgeyBib2R5LnBhZ2UgPSBmaWx0ZXJzLnBhZ2U7IH1cbiAgICAgICAgaWYgKGZpbHRlcnMuZGF0ZSkgeyBib2R5LmRhdGUgPSBmaWx0ZXJzLmRhdGU7IH1cbiAgICAgICAgaWYgKGZpbHRlcnMudHlwZSkgeyBib2R5LnR5cGUgPSBmaWx0ZXJzLnR5cGU7IH1cblxuICAgICAgICAkKCcuZHJvcHpvbmUnKVswXS5kcm9wem9uZS5maWxlcy5mb3JFYWNoKGZ1bmN0aW9uKGZpbGUpIHsgZmlsZS5wcmV2aWV3RWxlbWVudC5yZW1vdmUoKTsgfSk7XG4gICAgICAgICQoJy5kcm9wem9uZScpLmZpcnN0KCkucmVtb3ZlQ2xhc3MoJ2R6LXN0YXJ0ZWQnKTtcblxuICAgICAgICByZXF1ZXN0KGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vbWVkaWEtbWFuYWdlci5qc29uL3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9Y2xlYXJNZWRpYUNhY2hlYCwgeyBtZXRob2Q6ICdwb3N0JywgYm9keSB9LCAoKSA9PiB7XG4gICAgICAgICAgICBmaWx0ZXJGaWxlcygpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuLyogaGFuZGxlIGxvYWRpbmcgbWVkaWEgKi9cbnZhciBsb2FkTWVkaWEgPSBmdW5jdGlvbiBsb2FkTWVkaWEoZmlsdGVycywgY2FsbGJhY2spIHtcbiAgICB2YXIgdXJsID0gYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS9tZWRpYS5qc29uL3RtcGwke2NvbmZpZy5wYXJhbV9zZXB9bWVkaWEtbGlzdC1jb250ZW50L2luZGV4JHtjb25maWcucGFyYW1fc2VwfSR7Z2xvYmFsX2luZGV4fWA7XG5cbiAgICBpZiAoZmlsdGVycy5wYWdlKSB7XG4gICAgICAgIHVybCArPSBgL3BhZ2Uke2NvbmZpZy5wYXJhbV9zZXB9JHsoZmlsdGVycy5wYWdlKS5zcGxpdCgnLycpLmpvaW4oJyU1QycpfWA7XG4gICAgfVxuICAgIGlmIChmaWx0ZXJzLnR5cGUgJiYgZmlsdGVycy50eXBlICE9PSAnKicpIHtcbiAgICAgICAgdXJsICs9IGAvdHlwZSR7Y29uZmlnLnBhcmFtX3NlcH0ke2ZpbHRlcnMudHlwZX1gO1xuICAgIH1cbiAgICBpZiAoZmlsdGVycy5kYXRlICYmIGZpbHRlcnMuZGF0ZSAhPT0gJyonKSB7XG4gICAgICAgIHVybCArPSBgL2RhdGUke2NvbmZpZy5wYXJhbV9zZXB9JHtmaWx0ZXJzLmRhdGV9YDtcbiAgICB9XG5cbiAgICBpZiAoIWlzTG9hZGluZykge1xuICAgICAgICBpc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICQoJy5zcGlubmluZy13aGVlbCcpLnNob3coKTtcbiAgICAgICAgJC5nZXQodXJsLCBmdW5jdGlvbihjb250ZW50KSB7XG4gICAgICAgICAgICAkKCcuanNfX2ZpbGVzJykuYXBwZW5kKGNvbnRlbnQpO1xuICAgICAgICAgICAgJCgnLnNwaW5uaW5nLXdoZWVsJykuaGlkZSgpO1xuICAgICAgICAgICAgJCgnLm1lZGlhLWNvbnRhaW5lciAubWVkaWEtcmFuZ2UnKS50cmlnZ2VyKCdjaGFuZ2UnKTtcbiAgICAgICAgICAgIGlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgZ2xvYmFsX2luZGV4Kys7XG5cbiAgICAgICAgICAgIGNhbGxiYWNrKGNvbnRlbnQpO1xuICAgICAgICB9KTtcbiAgICB9XG59O1xuXG52YXIgY2xlYW5GaWxlc0xpc3QgPSBmdW5jdGlvbiBjbGVhbkZpbGVzTGlzdCgpIHtcbiAgICAkKCcuanNfX2ZpbGVzIC5jYXJkLWl0ZW0nKS5yZW1vdmUoKTtcbn07XG5cbnZhciByZXNldEFjdGl2ZVN0YXRlSW5TaWRlYmFyID0gZnVuY3Rpb24gcmVzZXRBY3RpdmVTdGF0ZUluU2lkZWJhcigpIHtcbiAgICAkKCcucGFnZXMtbGlzdC1jb250YWluZXIgLnJvdycpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsgLy8gY2xlYXIgYWN0aXZlIHN0YXRlIGluIHNpZGViYXJcbn07XG5cbnZhciBzaG93RW1wdHlTdGF0ZSA9IGZ1bmN0aW9uIHNob3dFbXB0eVN0YXRlKCkge1xuICAgICQoJy50aHVtYnMtbGlzdC1jb250YWluZXInKS5hcHBlbmQoJzxwIGNsYXNzPVwiY2FyZC1pdGVtIGVtcHR5LXNwYWNlXCI+Tm8gbWVkaWEgZm91bmQ8L3A+Jyk7XG59O1xuXG52YXIgZmlsdGVyRmlsZXMgPSBmdW5jdGlvbiBmaWx0ZXJGaWxlcygpIHtcbiAgICBjbGVhbkZpbGVzTGlzdCgpO1xuICAgIGdsb2JhbF9pbmRleCA9IDA7XG4gICAgZmlsZXNfZW5kZWQgPSBmYWxzZTtcbiAgICAkKCcuZW1wdHktc3BhY2UnKS5yZW1vdmUoKTtcbiAgICBsb2FkTWVkaWEoZmlsdGVycywgZnVuY3Rpb24oY29udGVudCkge1xuICAgICAgICBpZiAoIWNvbnRlbnQudHJpbSgpLmxlbmd0aCkge1xuICAgICAgICAgICAgc2hvd0VtcHR5U3RhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghZmlsdGVycy5wYWdlICYmICghZmlsdGVycy5kYXRlIHx8IGZpbHRlcnMuZGF0ZSA9PT0gJyonKSAmJiAoIWZpbHRlcnMudHlwZSB8fCBmaWx0ZXJzLnR5cGUgPT09ICcqJykpIHtcbiAgICAgICAgICAgICAgICAkKCcuanNfX2ZpbGVzJykudHJpZ2dlcignZmlsbFZpZXcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufTtcblxuLyogaGFuZGxlIGNoYW5naW5nIHBhZ2UgKi9cbiQoJ2JvZHknKS5vbignY2xpY2snLCAnLnBhZ2VzLWxpc3QtY29udGFpbmVyIC5qc19fcGFnZS1saW5rJywgKGV2ZW50KSA9PiB7XG4gICAgdmFyIHBhZ2UgPSAkKGV2ZW50LnRhcmdldCkuZGF0YSgncGFnZScpO1xuICAgIGZpbHRlcnNbJ3BhZ2UnXSA9IHBhZ2U7XG5cbiAgICAkKCcubWVkaWEtbGlzdC10aXRsZSAucGFnZS1pbmRpY2F0b3InKS5odG1sKHBhZ2UpOyAvLyBzZXQgaW5kaWNhdGlvblxuICAgICQoJy5qc19fcmVzZXQtcGFnZXMtZmlsdGVyJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpOyAvLyBhY3RpdmF0ZSByZXNldCBwYWdlcyBpY29uXG4gICAgcmVzZXRBY3RpdmVTdGF0ZUluU2lkZWJhcigpO1xuICAgICQoZXZlbnQudGFyZ2V0KS5wYXJlbnRzKCcucm93JykuYWRkQ2xhc3MoJ2FjdGl2ZScpOyAvLyBzZXQgYWN0aXZlIHN0YXRlIGluIHNpZGViYXJcbiAgICAkKCcuanNfX2ZpbGUtdXBsb2FkZXInKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG5cbiAgICAvLyBjdXN0b21pemUgcHJvY2Vzc2luZyBVUkwsIGFzIHRoZSBwYWdlIGNoYW5nZXMgZHluYW1pY2FsbHlcbiAgICBpZiAoJCgnLmRyb3B6b25lJylbMF0pIHtcbiAgICAgICAgJCgnLmRyb3B6b25lJylbMF0uZHJvcHpvbmUub24oJ3Byb2Nlc3NpbmcnLCBmdW5jdGlvbihmaWxlKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMudXJsID0gYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS9tZWRpYS1tYW5hZ2VyJHtwYWdlfS5qc29uL3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9YWRkbWVkaWFgO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAkKCcuanNfX2J1dHRvbi1jbGVhci1tZWRpYS1jYWNoZScpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICBmaWx0ZXJGaWxlcygpO1xuXG4gICAgZGlzYWJsZUluZmluaXRlU2Nyb2xsaW5nKCk7IC8vIG9ubHkgaW5maW5pdGUgc2Nyb2xsIG9uIG1haW4gbGlzdCwgbm90IGluc2lkZSBzaW5nbGUgcGFnZXNcbn0pO1xuXG4vKiBoYW5kbGUgY2xlYXJpbmcgcGFnZSBmaWx0ZXIgKi9cbiQoJ2JvZHknKS5vbignY2xpY2snLCAnLmpzX19yZXNldC1wYWdlcy1maWx0ZXInLCAoZXZlbnQpID0+IHtcbiAgICAkKCcubWVkaWEtbGlzdC10aXRsZSAucGFnZS1pbmRpY2F0b3InKS5odG1sKCdBbGwgUGFnZXMnKTsgLy8gc2V0IGluZGljYXRpb25cbiAgICBjbGVhbkZpbGVzTGlzdCgpO1xuICAgIHJlc2V0QWN0aXZlU3RhdGVJblNpZGViYXIoKTtcbiAgICAkKCcuanNfX3Jlc2V0LXBhZ2VzLWZpbHRlcicpLmFkZENsYXNzKCdoaWRkZW4nKTsgLy8gcmVtb3ZlIHJlc2V0IHBhZ2VzIGljb25cbiAgICAkKCcuanNfX2ZpbGUtdXBsb2FkZXInKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgJCgnLmpzX19idXR0b24tY2xlYXItbWVkaWEtY2FjaGUnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgZGVsZXRlIGZpbHRlcnNbJ3BhZ2UnXTtcblxuICAgIGZpbHRlckZpbGVzKCk7XG59KTtcblxuLyogaGFuZGxlIGluZmluaXRlIGxvYWRpbmcgKi9cbnZhciBlbmFibGVJbmZpbml0ZVNjcm9sbGluZyA9IGZ1bmN0aW9uIGVuYWJsZUluZmluaXRlU2Nyb2xsaW5nKCkge1xuICAgICQoJy5zcGlubmluZy13aGVlbCcpLmhpZGUoKTtcbiAgICB2YXIgdmlldyA9ICQoJy5tZWRpYXBpY2tlci1zY3JvbGwnKS5sYXN0KCk7XG5cbiAgICBpZiAoIXZpZXcubGVuZ3RoKSB7IHJldHVybjsgfVxuXG4gICAgJCh2aWV3KS5vbignc2Nyb2xsJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICgoJCh0aGlzKS5zY3JvbGxUb3AoKSArICQodGhpcykuaW5uZXJIZWlnaHQoKSArIDEwMCkgPj0gJCh0aGlzKVswXS5zY3JvbGxIZWlnaHQpIHtcbiAgICAgICAgICAgIGZpbGxWaWV3KCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn07XG5cbnZhciBsb2FkTmV4dEJhdGNoID0gZnVuY3Rpb24gbG9hZE5leHRCYXRjaChjYWxsYmFjaykge1xuICAgIGlmIChmaWxlc19lbmRlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbG9hZE1lZGlhKHt9LCBmdW5jdGlvbihjb250ZW50KSB7XG4gICAgICAgIGlmICghJChjb250ZW50KS5sZW5ndGggfHwgKChjb250ZW50LnNwbGl0KCdjYXJkLWl0ZW0nKS5sZW5ndGggLSAxKSA8IE1FRElBX1BBR0lOQVRJT05fSU5URVJWQUwpKSB7XG4gICAgICAgICAgICBmaWxlc19lbmRlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJCgnLm1lZGlhLWNvbnRhaW5lciAubWVkaWEtcmFuZ2UnKS50cmlnZ2VyKCdpbnB1dCcpO1xuICAgIH0pO1xufTtcblxudmFyIGZpbGxWaWV3ID0gZnVuY3Rpb24gZmlsbFZpZXcoKSB7XG4gICAgaWYgKCEkKCcuanNfX2ZpbGVzJykuZmluZCgnLmNhcmQtaXRlbScpLmxhc3QoKS5vZmZzZXQoKSkge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgLy8gcmV0cnkgbGF0ZXJcbiAgICAgICAgICAgIGZpbGxWaWV3KCk7XG4gICAgICAgIH0sIDMwMCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICgkKCcuanNfX2ZpbGVzJykuZmluZCgnLmNhcmQtaXRlbScpLmxhc3QoKS5vZmZzZXQoKS50b3AgLSAxIDw9ICQoJy5tZWRpYS1jb250YWluZXInKS5oZWlnaHQoKSkge1xuICAgICAgICBsb2FkTmV4dEJhdGNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgZmlsbFZpZXcoKTtcbiAgICAgICAgfSk7XG4gICAgfVxufTtcblxuLyogZGlzYWJsZSBpbmZpbml0ZSBsb2FkaW5nICovXG52YXIgZGlzYWJsZUluZmluaXRlU2Nyb2xsaW5nID0gZnVuY3Rpb24gZGlzYWJsZUluZmluaXRlU2Nyb2xsaW5nKCkge1xuICAgICQoJy5zcGlubmluZy13aGVlbCcpLmhpZGUoKTtcbiAgICAkKCcuY29udGVudC13cmFwcGVyJykudW5iaW5kKCdzY3JvbGwnKTtcbn07XG5cbiQoJy5qc19fZmlsZXMnKS5vbignZmlsbFZpZXcnLCBmdW5jdGlvbihldmVudCkge1xuICAgIC8vIHRoZSBmaXJzdCBiYXRjaCBnb3QgdGhlIG1heCBudW1iZXIgb2YgbWVkaWEgZmlsZXMsIHRyeSBsb2FkaW5nIG1vcmVcbiAgICBpZiAoKCQoJy5qc19fZmlsZXMnKVswXS5pbm5lckhUTUwuc3BsaXQoJ2NhcmQtaXRlbScpLmxlbmd0aCAtIDEpID09PSBNRURJQV9QQUdJTkFUSU9OX0lOVEVSVkFMKSB7XG4gICAgICAgIGZpbGxWaWV3KCk7XG4gICAgICAgIGVuYWJsZUluZmluaXRlU2Nyb2xsaW5nKCk7XG4gICAgfVxufSk7XG4iXSwibmFtZXMiOlsiJCIsImNvbmZpZyIsInVyaV9wYXJhbXMiLCJyZXF1ZXN0IiwiRmlsdGVyIiwiX2NsYXNzQ2FsbENoZWNrIiwiVVJJIiwiY29uY2F0IiwiYmFzZV91cmxfcmVsYXRpdmUiLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJ2YWx1ZSIsImZpbHRlciIsIm5hbWUiLCJmaWx0ZXJlZCIsImtleXMiLCJPYmplY3QiLCJpbmRleE9mIiwicHVzaCIsImZvckVhY2giLCJjbGVhblZhbHVlIiwicGFyYW1fc2VwIiwiZ2xvYmFsIiwibG9jYXRpb24iLCJqb2luIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicmVwbGFjZSIsImRlZmF1bHQiLCJJbnN0YW5jZSIsImlzTG9hZGluZyIsImZpbHRlcnMiLCJnbG9iYWxfaW5kZXgiLCJmaWxlc19lbmRlZCIsIk1FRElBX1BBR0lOQVRJT05fSU5URVJWQUwiLCJvbiIsImV2ZW50IiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsImZpbHRlck5hbWUiLCJkYXRhIiwiZmlsdGVyVmFsdWUiLCJ2YWwiLCJmaWx0ZXJGaWxlcyIsImRyb3B6b25lIiwiYm9keSIsInBhZ2UiLCJkYXRlIiwidHlwZSIsImZpbGVzIiwiZmlsZSIsInByZXZpZXdFbGVtZW50IiwicmVtb3ZlIiwiZmlyc3QiLCJyZW1vdmVDbGFzcyIsIm1ldGhvZCIsImxvYWRNZWRpYSIsImNhbGxiYWNrIiwidXJsIiwic3BsaXQiLCJzaG93IiwiZ2V0IiwiY29udGVudCIsImFwcGVuZCIsImhpZGUiLCJ0cmlnZ2VyIiwiY2xlYW5GaWxlc0xpc3QiLCJyZXNldEFjdGl2ZVN0YXRlSW5TaWRlYmFyIiwic2hvd0VtcHR5U3RhdGUiLCJ0cmltIiwibGVuZ3RoIiwiaHRtbCIsInBhcmVudHMiLCJhZGRDbGFzcyIsIm9wdGlvbnMiLCJkaXNhYmxlSW5maW5pdGVTY3JvbGxpbmciLCJlbmFibGVJbmZpbml0ZVNjcm9sbGluZyIsInZpZXciLCJsYXN0Iiwic2Nyb2xsVG9wIiwiaW5uZXJIZWlnaHQiLCJzY3JvbGxIZWlnaHQiLCJmaWxsVmlldyIsImxvYWROZXh0QmF0Y2giLCJmaW5kIiwib2Zmc2V0Iiwic2V0VGltZW91dCIsInRvcCIsImhlaWdodCIsInVuYmluZCIsImlubmVySFRNTCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/media/index.js\n\n}");
/***/ }),
/***/ "./app/pages/filter.js":
/*!*****************************!*\
!*** ./app/pages/filter.js ***!
\*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Instance: () => (/* binding */ Instance),\n/* harmony export */ \"default\": () => (/* binding */ PagesFilter)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var debounce__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! debounce */ \"./node_modules/debounce/index.js\");\n/* harmony import */ var debounce__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(debounce__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _tree__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tree */ \"./app/pages/tree.js\");\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! selectize */ \"./node_modules/selectize/dist/js/selectize.js\");\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(selectize__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _utils_selectize_required_fix_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/selectize-required-fix.js */ \"./app/utils/selectize-required-fix.js\");\n/* harmony import */ var _utils_storage__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/storage */ \"./app/utils/storage.js\");\n/* harmony import */ var _utils_storage__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_utils_storage__WEBPACK_IMPORTED_MODULE_7__);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\n\n\n/* @formatter:off */\n/* eslint-disable */\nvar options = [{\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.MODULE,\n key: 'Module',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.VISIBLE,\n key: 'Visible',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.ROUTABLE,\n key: 'Routable',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.PUBLISHED,\n key: 'Published',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.NON_MODULE,\n key: 'NonModule',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.NON_VISIBLE,\n key: 'NonVisible',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.NON_ROUTABLE,\n key: 'NonRoutable',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.NON_PUBLISHED,\n key: 'NonPublished',\n cat: 'mode'\n}];\n/* @formatter:on */\n/* eslint-enable */\nvar PagesFilter = /*#__PURE__*/function () {\n function PagesFilter(filters, search) {\n var _this = this;\n _classCallCheck(this, PagesFilter);\n this.filters = jquery__WEBPACK_IMPORTED_MODULE_0___default()(filters);\n this.search = jquery__WEBPACK_IMPORTED_MODULE_0___default()(search);\n this.options = options;\n this.tree = _tree__WEBPACK_IMPORTED_MODULE_4__.Instance;\n var storage = JSON.parse(localStorage.getItem('grav:admin:pages:filter') || '{}');\n if (!this.filters.length || !this.search.length) {\n return;\n }\n this.labels = this.filters.data('filter-labels');\n this.search.on('input', debounce__WEBPACK_IMPORTED_MODULE_3___default()(function () {\n return _this.filter();\n }, 250));\n this.filters.on('change', function () {\n return _this.filter();\n });\n\n // restore state\n if (storage.flags || storage.query) {\n this.setValues(storage);\n this.filter();\n }\n this._initSelectize();\n }\n return _createClass(PagesFilter, [{\n key: \"filter\",\n value: function filter(value) {\n var _this2 = this;\n var data = {\n flags: '',\n query: ''\n };\n if (_typeof(value) === 'object') {\n Object.assign(data, value);\n }\n if (typeof value === 'string') {\n data.query = value;\n }\n if (typeof value === 'undefined') {\n data.flags = this.filters.val();\n data.query = this.search.val();\n }\n if (!Object.keys(data).filter(function (key) {\n return data[key] !== '';\n }).length) {\n this.resetValues();\n return;\n }\n data.flags = data.flags.replace(/(\\s{1,})?,(\\s{1,})?/g, ',');\n this.setValues({\n flags: data.flags,\n query: data.query\n }, 'silent');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/pages-filter.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"filterPages\"), {\n method: 'post',\n body: data\n }, function (response) {\n _this2.refreshDOM(response);\n });\n }\n }, {\n key: \"refreshDOM\",\n value: function refreshDOM(response) {\n var _this3 = this;\n var items = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-nav-id]');\n if (!response) {\n items.removeClass('search-match').show();\n this.tree.restore();\n return;\n }\n items.removeClass('search-match').hide();\n response.results.forEach(function (page) {\n var match = items.filter(\"[data-nav-id=\\\"\".concat(page, \"\\\"]\")).addClass('search-match').show();\n match.parents('[data-nav-id]').addClass('search-match').show();\n _this3.tree.expand(page, 'no-store');\n });\n }\n }, {\n key: \"setValues\",\n value: function setValues(_ref, silent) {\n var _ref$flags = _ref.flags,\n flags = _ref$flags === void 0 ? '' : _ref$flags,\n _ref$query = _ref.query,\n query = _ref$query === void 0 ? '' : _ref$query;\n var flagsArray = flags.replace(/(\\s{1,})?,(\\s{1,})?/g, ',').split(',');\n if (this.filters.val() !== flags) {\n var selectize = this.filters.data('selectize');\n this.filters[selectize ? 'setValue' : 'val'](flagsArray, silent);\n }\n if (this.search.val() !== query) {\n this.search.val(query);\n }\n localStorage.setItem('grav:admin:pages:filter', JSON.stringify({\n flags: flags,\n query: query\n }));\n }\n }, {\n key: \"resetValues\",\n value: function resetValues() {\n this.setValues('', 'silent');\n this.refreshDOM();\n }\n }, {\n key: \"_initSelectize\",\n value: function _initSelectize() {\n var _this4 = this;\n var extras = {\n type: this.filters.data('filter-types') || {},\n access: this.filters.data('filter-access-levels') || {}\n };\n Object.keys(extras).forEach(function (cat) {\n Object.keys(extras[cat]).forEach(function (key) {\n _this4.options.push({\n cat: cat,\n key: key,\n flag: extras[cat][key]\n });\n });\n });\n this.filters.selectize({\n maxItems: null,\n valueField: 'key',\n labelField: 'flag',\n searchField: ['flag', 'key'],\n options: this.options,\n optgroups: this.labels,\n optgroupField: 'cat',\n optgroupLabelField: 'name',\n optgroupValueField: 'id',\n optgroupOrder: this.labels.map(function (item) {\n return item.id;\n }),\n plugins: ['optgroup_columns', 'required-fix']\n });\n }\n }]);\n}();\n\nvar Instance = new PagesFilter('input[name=\"page-filter\"]', 'input[name=\"page-search\"]');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNyQmlGLFNBQVMsRUFBRSxJQUFJLENBQUN4RCxNQUFNO1FBQ3RCeUQsYUFBYSxFQUFFLEtBQUs7UUFDcEJDLGtCQUFrQixFQUFFLE1BQU07UUFDMUJDLGtCQUFrQixFQUFFLElBQUk7UUFDeEJDLGFBQWEsRUFBRSxJQUFJLENBQUM1RCxNQUFNLENBQUM2RCxHQUFHLENBQUMsVUFBQ0MsSUFBSTtVQUFBLE9BQUtBLElBQUksQ0FBQ0MsRUFBRTtRQUFBLEVBQUM7UUFDakRDLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLGNBQWM7TUFDaEQsQ0FBQyxDQUFDO0lBQ047RUFBQztBQUFBO0FBdkgyQjtBQTBIaEMsSUFBSTNGLFFBQVEsR0FBRyxJQUFJZSxXQUFXLENBQUMsMkJBQTJCLEVBQUUsMkJBQTJCLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL2ZpbHRlci5qcz80NzRmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgeyBjb25maWcsIHRyYW5zbGF0aW9ucyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCByZXF1ZXN0IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QnO1xuaW1wb3J0IGRlYm91bmNlIGZyb20gJ2RlYm91bmNlJztcbmltcG9ydCB7IEluc3RhbmNlIGFzIHBhZ2VzVHJlZSB9IGZyb20gJy4vdHJlZSc7XG5pbXBvcnQgJ3NlbGVjdGl6ZSc7XG5pbXBvcnQgJy4uL3V0aWxzL3NlbGVjdGl6ZS1yZXF1aXJlZC1maXguanMnO1xuaW1wb3J0ICcuLi91dGlscy9zdG9yYWdlJztcblxuLyogQGZvcm1hdHRlcjpvZmYgKi9cbi8qIGVzbGludC1kaXNhYmxlICovXG5jb25zdCBvcHRpb25zID0gW1xuICAgIHsgZmxhZzogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5NT0RVTEUsICAgICAgICBrZXk6ICdNb2R1bGUnLCAgICAgIGNhdDogJ21vZGUnIH0sXG4gICAgeyBmbGFnOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlZJU0lCTEUsICAgICAgIGtleTogJ1Zpc2libGUnLCAgICAgIGNhdDogJ21vZGUnIH0sXG4gICAgeyBmbGFnOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlJPVVRBQkxFLCAgICAgIGtleTogJ1JvdXRhYmxlJywgICAgIGNhdDogJ21vZGUnIH0sXG4gICAgeyBmbGFnOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlBVQkxJU0hFRCwgICAgIGtleTogJ1B1Ymxpc2hlZCcsICAgIGNhdDogJ21vZGUnIH0sXG4gICAgeyBmbGFnOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLk5PTl9NT0RVTEUsICAgIGtleTogJ05vbk1vZHVsZScsICAgY2F0OiAnbW9kZScgfSxcbiAgICB7IGZsYWc6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uTk9OX1ZJU0lCTEUsICAga2V5OiAnTm9uVmlzaWJsZScsICAgY2F0OiAnbW9kZScgfSxcbiAgICB7IGZsYWc6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uTk9OX1JPVVRBQkxFLCAga2V5OiAnTm9uUm91dGFibGUnLCAgY2F0OiAnbW9kZScgfSxcbiAgICB7IGZsYWc6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uTk9OX1BVQkxJU0hFRCwga2V5OiAnTm9uUHVibGlzaGVkJywgY2F0OiAnbW9kZScgfVxuXTtcbi8qIEBmb3JtYXR0ZXI6b24gKi9cbi8qIGVzbGludC1lbmFibGUgKi9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFnZXNGaWx0ZXIge1xuICAgIGNvbnN0cnVjdG9yKGZpbHRlcnMsIHNlYXJjaCkge1xuICAgICAgICB0aGlzLmZpbHRlcnMgPSAkKGZpbHRlcnMpO1xuICAgICAgICB0aGlzLnNlYXJjaCA9ICQoc2VhcmNoKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy50cmVlID0gcGFnZXNUcmVlO1xuICAgICAgICBsZXQgc3RvcmFnZSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2dyYXY6YWRtaW46cGFnZXM6ZmlsdGVyJykgfHwgJ3t9Jyk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmZpbHRlcnMubGVuZ3RoIHx8ICF0aGlzLnNlYXJjaC5sZW5ndGgpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdGhpcy5sYWJlbHMgPSB0aGlzLmZpbHRlcnMuZGF0YSgnZmlsdGVyLWxhYmVscycpO1xuXG4gICAgICAgIHRoaXMuc2VhcmNoLm9uKCdpbnB1dCcsIGRlYm91bmNlKCgpID0+IHRoaXMuZmlsdGVyKCksIDI1MCkpO1xuICAgICAgICB0aGlzLmZpbHRlcnMub24oJ2NoYW5nZScsICgpID0+IHRoaXMuZmlsdGVyKCkpO1xuXG4gICAgICAgIC8vIHJlc3RvcmUgc3RhdGVcbiAgICAgICAgaWYgKHN0b3JhZ2UuZmxhZ3MgfHwgc3RvcmFnZS5xdWVyeSkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZXMoc3RvcmFnZSk7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faW5pdFNlbGVjdGl6ZSgpO1xuICAgIH1cblxuICAgIGZpbHRlcih2YWx1ZSkge1xuICAgICAgICBsZXQgZGF0YSA9IHsgZmxhZ3M6ICcnLCBxdWVyeTogJycgfTtcblxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihkYXRhLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGRhdGEucXVlcnkgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgZGF0YS5mbGFncyA9IHRoaXMuZmlsdGVycy52YWwoKTtcbiAgICAgICAgICAgIGRhdGEucXVlcnkgPSB0aGlzLnNlYXJjaC52YWwoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghT2JqZWN0LmtleXMoZGF0YSkuZmlsdGVyKChrZXkpID0+IGRhdGFba2V5XSAhPT0gJycpLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5yZXNldFZhbHVlcygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YS5mbGFncyA9IGRhdGEuZmxhZ3MucmVwbGFjZSgvKFxcc3sxLH0pPywoXFxzezEsfSk/L2csICcsJyk7XG4gICAgICAgIHRoaXMuc2V0VmFsdWVzKHsgZmxhZ3M6IGRhdGEuZmxhZ3MsIHF1ZXJ5OiBkYXRhLnF1ZXJ5IH0sICdzaWxlbnQnKTtcblxuICAgICAgICByZXF1ZXN0KGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vcGFnZXMtZmlsdGVyLmpzb24vdGFzayR7Y29uZmlnLnBhcmFtX3NlcH1maWx0ZXJQYWdlc2AsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keTogZGF0YVxuICAgICAgICB9LCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaERPTShyZXNwb25zZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlZnJlc2hET00ocmVzcG9uc2UpIHtcbiAgICAgICAgbGV0IGl0ZW1zID0gJCgnW2RhdGEtbmF2LWlkXScpO1xuXG4gICAgICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGl0ZW1zLnJlbW92ZUNsYXNzKCdzZWFyY2gtbWF0Y2gnKS5zaG93KCk7XG4gICAgICAgICAgICB0aGlzLnRyZWUucmVzdG9yZSgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpdGVtcy5yZW1vdmVDbGFzcygnc2VhcmNoLW1hdGNoJykuaGlkZSgpO1xuXG4gICAgICAgIHJlc3BvbnNlLnJlc3VsdHMuZm9yRWFjaCgocGFnZSkgPT4ge1xuICAgICAgICAgICAgbGV0IG1hdGNoID0gaXRlbXMuZmlsdGVyKGBbZGF0YS1uYXYtaWQ9XCIke3BhZ2V9XCJdYCkuYWRkQ2xhc3MoJ3NlYXJjaC1tYXRjaCcpLnNob3coKTtcbiAgICAgICAgICAgIG1hdGNoLnBhcmVudHMoJ1tkYXRhLW5hdi1pZF0nKS5hZGRDbGFzcygnc2VhcmNoLW1hdGNoJykuc2hvdygpO1xuXG4gICAgICAgICAgICB0aGlzLnRyZWUuZXhwYW5kKHBhZ2UsICduby1zdG9yZScpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZXMoeyBmbGFncyA9ICcnLCBxdWVyeSA9ICcnfSwgc2lsZW50KSB7XG4gICAgICAgIGxldCBmbGFnc0FycmF5ID0gZmxhZ3MucmVwbGFjZSgvKFxcc3sxLH0pPywoXFxzezEsfSk/L2csICcsJykuc3BsaXQoJywnKTtcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVycy52YWwoKSAhPT0gZmxhZ3MpIHtcbiAgICAgICAgICAgIGxldCBzZWxlY3RpemUgPSB0aGlzLmZpbHRlcnMuZGF0YSgnc2VsZWN0aXplJyk7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcnNbc2VsZWN0aXplID8gJ3NldFZhbHVlJyA6ICd2YWwnXShmbGFnc0FycmF5LCBzaWxlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaC52YWwoKSAhPT0gcXVlcnkpIHsgdGhpcy5zZWFyY2gudmFsKHF1ZXJ5KTsgfVxuXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdncmF2OmFkbWluOnBhZ2VzOmZpbHRlcicsIEpTT04uc3RyaW5naWZ5KHsgZmxhZ3MsIHF1ZXJ5IH0pKTtcbiAgICB9XG5cbiAgICByZXNldFZhbHVlcygpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZXMoJycsICdzaWxlbnQnKTtcbiAgICAgICAgdGhpcy5yZWZyZXNoRE9NKCk7XG4gICAgfVxuXG4gICAgX2luaXRTZWxlY3RpemUoKSB7XG4gICAgICAgIGxldCBleHRyYXMgPSB7XG4gICAgICAgICAgICB0eXBlOiB0aGlzLmZpbHRlcnMuZGF0YSgnZmlsdGVyLXR5cGVzJykgfHwge30sXG4gICAgICAgICAgICBhY2Nlc3M6IHRoaXMuZmlsdGVycy5kYXRhKCdmaWx0ZXItYWNjZXNzLWxldmVscycpIHx8IHt9XG4gICAgICAgIH07XG5cbiAgICAgICAgT2JqZWN0LmtleXMoZXh0cmFzKS5mb3JFYWNoKChjYXQpID0+IHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGV4dHJhc1tjYXRdKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGNhdCxcbiAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICBmbGFnOiBleHRyYXNbY2F0XVtrZXldXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJzLnNlbGVjdGl6ZSh7XG4gICAgICAgICAgICBtYXhJdGVtczogbnVsbCxcbiAgICAgICAgICAgIHZhbHVlRmllbGQ6ICdrZXknLFxuICAgICAgICAgICAgbGFiZWxGaWVsZDogJ2ZsYWcnLFxuICAgICAgICAgICAgc2VhcmNoRmllbGQ6IFsnZmxhZycsICdrZXknXSxcbiAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgICAgICAgIG9wdGdyb3VwczogdGhpcy5sYWJlbHMsXG4gICAgICAgICAgICBvcHRncm91cEZpZWxkOiAnY2F0JyxcbiAgICAgICAgICAgIG9wdGdyb3VwTGFiZWxGaWVsZDogJ25hbWUnLFxuICAgICAgICAgICAgb3B0Z3JvdXBWYWx1ZUZpZWxkOiAnaWQnLFxuICAgICAgICAgICAgb3B0Z3JvdXBPcmRlcjogdGhpcy5sYWJlbHMubWFwKChpdGVtKSA9PiBpdGVtLmlkKSxcbiAgICAgICAgICAgIHBsdWdpbnM6IFsnb3B0Z3JvdXBfY29sdW1ucycsICdyZXF1aXJlZC1maXgnXVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmxldCBJbnN0YW5jZSA9IG5ldyBQYWdlc0ZpbHRlcignaW5wdXRbbmFtZT1cInBhZ2UtZmlsdGVyXCJdJywgJ2lucHV0W25hbWU9XCJwYWdlLXNlYXJjaFwiXScpO1xuZXhwb3J0IHsgSW5zdGFuY2UgfTtcbiJdLCJuYW1lcyI6WyIkIiwiY29uZmlnIiwidHJhbnNsYXRpb25zIiwicmVxdWVzdCIsImRlYm91bmNlIiwiSW5zdGFuY2UiLCJwYWdlc1RyZWUiLCJvcHRpb25zIiwiZmxhZyIsIlBMVUdJTl9BRE1JTiIsIk1PRFVMRSIsImtleSIsImNhdCIsIlZJU0lCTEUiLCJST1VUQUJMRSIsIlBVQkxJU0hFRCIsIk5PTl9NT0RVTEUiLCJOT05fVklTSUJMRSIsIk5PTl9ST1VUQUJMRSIsIk5PTl9QVUJMSVNIRUQiLCJQYWdlc0ZpbHRlciIsImZpbHRlcnMiLCJzZWFyY2giLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjayIsInRyZWUiLCJzdG9yYWdlIiwiSlNPTiIsInBhcnNlIiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsImxlbmd0aCIsImxhYmVscyIsImRhdGEiLCJvbiIsImZpbHRlciIsImZsYWdzIiwicXVlcnkiLCJzZXRWYWx1ZXMiLCJfaW5pdFNlbGVjdGl6ZSIsIl9jcmVhdGVDbGFzcyIsInZhbHVlIiwiX3RoaXMyIiwiX3R5cGVvZiIsIk9iamVjdCIsImFzc2lnbiIsInZhbCIsImtleXMiLCJyZXNldFZhbHVlcyIsInJlcGxhY2UiLCJjb25jYXQiLCJiYXNlX3VybF9yZWxhdGl2ZSIsInBhcmFtX3NlcCIsIm1ldGhvZCIsImJvZHkiLCJyZXNwb25zZSIsInJlZnJlc2hET00iLCJfdGhpczMiLCJpdGVtcyIsInJlbW92ZUNsYXNzIiwic2hvdyIsInJlc3RvcmUiLCJoaWRlIiwicmVzdWx0cyIsImZvckVhY2giLCJwYWdlIiwibWF0Y2giLCJhZGRDbGFzcyIsInBhcmVudHMiLCJleHBhbmQiLCJfcmVmIiwic2lsZW50IiwiX3JlZiRmbGFncyIsIl9yZWYkcXVlcnkiLCJmbGFnc0FycmF5Iiwic3BsaXQiLCJzZWxlY3RpemUiLCJzZXRJdGVtIiwic3RyaW5naWZ5IiwiX3RoaXM0IiwiZXh0cmFzIiwidHlwZSIsImFjY2VzcyIsInB1c2giLCJtYXhJdGVtcyIsInZhbHVlRmllbGQiLCJsYWJlbEZpZWxkIiwic2VhcmNoRmllbGQiLCJvcHRncm91cHMiLCJvcHRncm91cEZpZWxkIiwib3B0Z3JvdXBMYWJlbEZpZWxkIiwib3B0Z3JvdXBWYWx1ZUZpZWxkIiwib3B0Z3JvdXBPcmRlciIsIm1hcCIsIml0ZW0iLCJpZCIsInBsdWdpbnMiLCJkZWZhdWx0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/filter.js\n\n}");
/***/ }),
/***/ "./app/pages/index.js":
/*!****************************!*\
!*** ./app/pages/index.js ***!
\****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var sortablejs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sortablejs */ \"./node_modules/sortablejs/modular/sortable.esm.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filter */ \"./app/pages/filter.js\");\n/* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./page */ \"./app/pages/page/index.js\");\n\n\n\n\nvar pad = function pad(n, s) {\n return \"000\".concat(n).substr(-s);\n};\n\n// Pages Ordering\nvar Ordering = null;\nvar orderingElement = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#ordering');\nif (orderingElement.length) {\n Ordering = new sortablejs__WEBPACK_IMPORTED_MODULE_1__[\"default\"](orderingElement.get(0), {\n filter: '.ignore',\n onUpdate: function onUpdate() {\n /* Old single page index behavior\n let item = $(event.item);\n let index = orderingElement.children().index(item) + 1;\n $('[data-order]').val(index);\n */\n\n var indexes = [];\n var children = orderingElement.children();\n var padZero = (children.length + '').split('').length;\n children.each(function (index, item) {\n item = jquery__WEBPACK_IMPORTED_MODULE_0___default()(item);\n indexes.push(item.data('id'));\n item.find('.page-order').text(\"\".concat(pad(index + 1, padZero), \".\"));\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-order]').val(indexes.join(','));\n }\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('input', '[name=\"data[folder]\"]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var activeOrder = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-id][data-active-id]');\n activeOrder.data('id', target.val());\n Ordering.options.onUpdate();\n });\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n Ordering: Ordering,\n Page: _page__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n PageFilters: {\n PageFilters: _filter__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n Instance: _filter__WEBPACK_IMPORTED_MODULE_2__.Instance\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvcGFnZXMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQXVCO0FBQ1c7QUFDc0M7QUFDOUM7QUFFMUIsSUFBTU0sR0FBRyxHQUFHLFNBQU5BLEdBQUdBLENBQUlDLENBQUMsRUFBRUMsQ0FBQztFQUFBLE9BQUssTUFBQUMsTUFBQSxDQUFPRixDQUFDLEVBQUlHLE1BQU0sQ0FBQyxDQUFDRixDQUFDLENBQUM7QUFBQTs7QUFFNUM7QUFDQSxJQUFJRyxRQUFRLEdBQUcsSUFBSTtBQUNuQixJQUFJQyxlQUFlLEdBQUdaLDZDQUFDLENBQUMsV0FBVyxDQUFDO0FBQ3BDLElBQUlZLGVBQWUsQ0FBQ0MsTUFBTSxFQUFFO0VBQ3hCRixRQUFRLEdBQUcsSUFBSVYsa0RBQVEsQ0FBQ1csZUFBZSxDQUFDRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDNUNDLE1BQU0sRUFBRSxTQUFTO0lBQ2pCQyxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBQSxFQUFhO01BQ2pCO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7O01BR1ksSUFBSUMsT0FBTyxHQUFHLEVBQUU7TUFDaEIsSUFBTUMsUUFBUSxHQUFHTixlQUFlLENBQUNNLFFBQVEsQ0FBQyxDQUFDO01BQzNDLElBQU1DLE9BQU8sR0FBRyxDQUFDRCxRQUFRLENBQUNMLE1BQU0sR0FBRyxFQUFFLEVBQUVPLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQ1AsTUFBTTtNQUN2REssUUFBUSxDQUFDRyxJQUFJLENBQUMsVUFBQ0MsS0FBSyxFQUFFQyxJQUFJLEVBQUs7UUFDM0JBLElBQUksR0FBR3ZCLDZDQUFDLENBQUN1QixJQUFJLENBQUM7UUFDZE4sT0FBTyxDQUFDTyxJQUFJLENBQUNELElBQUksQ0FBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCRixJQUFJLENBQUNHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQ0MsSUFBSSxJQUFBbEIsTUFBQSxDQUFJSCxHQUFHLENBQUNnQixLQUFLLEdBQUcsQ0FBQyxFQUFFSCxPQUFPLENBQUMsTUFBRyxDQUFDO01BQ2hFLENBQUMsQ0FBQztNQUVGbkIsNkNBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQzRCLEdBQUcsQ0FBQ1gsT0FBTyxDQUFDWSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUM7RUFDSixDQUFDLENBQUM7RUFFRjdCLDZDQUFDLENBQUM4QixRQUFRLENBQUMsQ0FBQ0MsRUFBRSxDQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxVQUFDQyxLQUFLLEVBQUs7SUFDeEQsSUFBTUMsTUFBTSxHQUFHakMsNkNBQUMsQ0FBQ2dDLEtBQUssQ0FBQ0UsYUFBYSxDQUFDO0lBQ3JDLElBQU1DLFdBQVcsR0FBR25DLDZDQUFDLENBQUMsMkJBQTJCLENBQUM7SUFFbERtQyxXQUFXLENBQUNWLElBQUksQ0FBQyxJQUFJLEVBQUVRLE1BQU0sQ0FBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUVwQ2pCLFFBQVEsQ0FBQ3lCLE9BQU8sQ0FBQ3BCLFFBQVEsQ0FBQyxDQUFDO0VBQy9CLENBQUMsQ0FBQztBQUVOO0FBRUEsaUVBQWU7RUFDWEwsUUFBUSxFQUFSQSxRQUFRO0VBQ1JOLElBQUksRUFBSkEsNkNBQUk7RUFDSkgsV0FBVyxFQUFFO0lBQ1RBLFdBQVcsRUFBWEEsK0NBQVc7SUFDWEMsUUFBUSxFQUFFQyw2Q0FBbUJBO0VBQ2pDO0FBQ0osQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvcGFnZXMvaW5kZXguanM/N2EzNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IFNvcnRhYmxlIGZyb20gJ3NvcnRhYmxlanMnO1xuaW1wb3J0IFBhZ2VGaWx0ZXJzLCB7IEluc3RhbmNlIGFzIFBhZ2VGaWx0ZXJzSW5zdGFuY2UgfSBmcm9tICcuL2ZpbHRlcic7XG5pbXBvcnQgUGFnZSBmcm9tICcuL3BhZ2UnO1xuXG5jb25zdCBwYWQgPSAobiwgcykgPT4gKGAwMDAke259YCkuc3Vic3RyKC1zKTtcblxuLy8gUGFnZXMgT3JkZXJpbmdcbmxldCBPcmRlcmluZyA9IG51bGw7XG5sZXQgb3JkZXJpbmdFbGVtZW50ID0gJCgnI29yZGVyaW5nJyk7XG5pZiAob3JkZXJpbmdFbGVtZW50Lmxlbmd0aCkge1xuICAgIE9yZGVyaW5nID0gbmV3IFNvcnRhYmxlKG9yZGVyaW5nRWxlbWVudC5nZXQoMCksIHtcbiAgICAgICAgZmlsdGVyOiAnLmlnbm9yZScsXG4gICAgICAgIG9uVXBkYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8qIE9sZCBzaW5nbGUgcGFnZSBpbmRleCBiZWhhdmlvclxuXG4gICAgICAgICAgICBsZXQgaXRlbSA9ICQoZXZlbnQuaXRlbSk7XG4gICAgICAgICAgICBsZXQgaW5kZXggPSBvcmRlcmluZ0VsZW1lbnQuY2hpbGRyZW4oKS5pbmRleChpdGVtKSArIDE7XG4gICAgICAgICAgICAkKCdbZGF0YS1vcmRlcl0nKS52YWwoaW5kZXgpO1xuICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgbGV0IGluZGV4ZXMgPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gb3JkZXJpbmdFbGVtZW50LmNoaWxkcmVuKCk7XG4gICAgICAgICAgICBjb25zdCBwYWRaZXJvID0gKGNoaWxkcmVuLmxlbmd0aCArICcnKS5zcGxpdCgnJykubGVuZ3RoO1xuICAgICAgICAgICAgY2hpbGRyZW4uZWFjaCgoaW5kZXgsIGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtID0gJChpdGVtKTtcbiAgICAgICAgICAgICAgICBpbmRleGVzLnB1c2goaXRlbS5kYXRhKCdpZCcpKTtcbiAgICAgICAgICAgICAgICBpdGVtLmZpbmQoJy5wYWdlLW9yZGVyJykudGV4dChgJHtwYWQoaW5kZXggKyAxLCBwYWRaZXJvKX0uYCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgJCgnW2RhdGEtb3JkZXJdJykudmFsKGluZGV4ZXMuam9pbignLCcpKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgJChkb2N1bWVudCkub24oJ2lucHV0JywgJ1tuYW1lPVwiZGF0YVtmb2xkZXJdXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgIGNvbnN0IGFjdGl2ZU9yZGVyID0gJCgnW2RhdGEtaWRdW2RhdGEtYWN0aXZlLWlkXScpO1xuXG4gICAgICAgIGFjdGl2ZU9yZGVyLmRhdGEoJ2lkJywgdGFyZ2V0LnZhbCgpKTtcblxuICAgICAgICBPcmRlcmluZy5vcHRpb25zLm9uVXBkYXRlKCk7XG4gICAgfSk7XG5cbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIE9yZGVyaW5nLFxuICAgIFBhZ2UsXG4gICAgUGFnZUZpbHRlcnM6IHtcbiAgICAgICAgUGFnZUZpbHRlcnMsXG4gICAgICAgIEluc3RhbmNlOiBQYWdlRmlsdGVyc0luc3RhbmNlXG4gICAgfVxufTtcbiJdLCJuYW1lcyI6WyIkIiwiU29ydGFibGUiLCJQYWdlRmlsdGVycyIsIkluc3RhbmNlIiwiUGFnZUZpbHRlcnNJbnN0YW5jZSIsIlBhZ2UiLCJwYWQiLCJuIiwicyIsImNvbmNhdCIsInN1YnN0ciIsIk9yZGVyaW5nIiwib3JkZXJpbmdFbGVtZW50IiwibGVuZ3RoIiwiZ2V0IiwiZmlsdGVyIiwib25VcGRhdGUiLCJpbmRleGVzIiwiY2hpbGRyZW4iLCJwYWRaZXJvIiwic3BsaXQiLCJlYWNoIiwiaW5kZXgiLCJpdGVtIiwicHVzaCIsImRhdGEiLCJmaW5kIiwidGV4dCIsInZhbCIsImpvaW4iLCJkb2N1bWVudCIsIm9uIiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwiYWN0aXZlT3JkZXIiLCJvcHRpb25zIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/index.js\n\n}");
/***/ }),
/***/ "./app/pages/page/add.js":
/*!*******************************!*\
!*** ./app/pages/page/add.js ***!
\*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_jquery_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/jquery-utils */ \"./app/utils/jquery-utils.js\");\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\nvar custom = false;\nvar folder = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"modal\"] input[name=\"data[folder]\"], [data-remodal-id=\"module\"] input[name=\"data[folder]\"], [data-remodal-id=\"modal-page-copy\"] input[name=\"data[folder]\"]');\nvar title = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"modal\"] input[name=\"data[title]\"], [data-remodal-id=\"module\"] input[name=\"data[title]\"], [data-remodal-id=\"modal-page-copy\"] input[name=\"data[title]\"]');\nvar getFields = function getFields(type, target) {\n target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target);\n var query = \"[data-remodal-id=\\\"\".concat(target.closest('[data-remodal-id]').data('remodal-id'), \"\\\"]\");\n return {\n title: type === 'title' ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(target) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"\".concat(query, \" input[name=\\\"data[title]\\\"]\")),\n folder: type === 'folder' ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(target) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"\".concat(query, \" input[name=\\\"data[folder]\\\"]\"))\n };\n};\ntitle.on('input focus blur', function (event) {\n if (custom) {\n return true;\n }\n var elements = getFields('title', event.currentTarget);\n var slug = jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify(elements.title.val(), {\n custom: {\n \"'\": '',\n '‘': '',\n '’': ''\n }\n });\n elements.folder.val(slug);\n});\nfolder.on('input', function (event) {\n var elements = getFields('folder', event.currentTarget);\n var input = elements.folder.get(0);\n var value = elements.folder.val();\n var selection = {\n start: input.selectionStart,\n end: input.selectionEnd\n };\n value = value.toLowerCase().replace(/\\s/g, '-').replace(/[^a-z0-9_\\-]/g, '');\n elements.folder.val(value);\n custom = !!value;\n\n // restore cursor position\n input.setSelectionRange(selection.start, selection.end);\n});\nfolder.on('focus blur', function (event) {\n getFields('title').title.trigger('input');\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('change', '[name=\"data[route]\"]', function (event) {\n var rawroute = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).val();\n var pageTemplate = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[name=\"data[name]\"]');\n var URI = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.config.base_url_relative, \"/ajax.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.config.param_sep, \"getChildTypes\");\n if (pageTemplate.length === 0) {\n return;\n }\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(URI, {\n method: 'post',\n body: {\n rawroute: rawroute\n }\n }, function (response) {\n var type = response.child_type;\n if (type !== '' && type !== 'default') {\n pageTemplate.val(type);\n pageTemplate.data('selectize').setValue(type);\n }\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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M0MsQ0FBQyxDQUFDO0FBRUYvQiw2Q0FBQyxDQUFDZ0MsUUFBUSxDQUFDLENBQUNuQixFQUFFLENBQUMsUUFBUSxFQUFFLHNCQUFzQixFQUFFLFVBQUNDLEtBQUssRUFBSztFQUN4RCxJQUFNbUIsUUFBUSxHQUFHakMsNkNBQUMsQ0FBQ2MsS0FBSyxDQUFDRSxhQUFhLENBQUMsQ0FBQ0csR0FBRyxDQUFDLENBQUM7RUFDN0MsSUFBTWUsWUFBWSxHQUFHbEMsNkNBQUMsQ0FBQyxxQkFBcUIsQ0FBQztFQUM3QyxJQUFNbUMsR0FBRyxNQUFBekIsTUFBQSxDQUFNUiwrQ0FBTSxDQUFDa0MsaUJBQWlCLHFCQUFBMUIsTUFBQSxDQUFrQlIsK0NBQU0sQ0FBQ21DLFNBQVMsa0JBQWU7RUFFeEYsSUFBSUgsWUFBWSxDQUFDSSxNQUFNLEtBQUssQ0FBQyxFQUFFO0lBQzNCO0VBQ0o7RUFFQXJDLDBEQUFPLENBQUNrQyxHQUFHLEVBQUU7SUFDVEksTUFBTSxFQUFFLE1BQU07SUFDZEMsSUFBSSxFQUFFO01BQUVQLFFBQVEsRUFBUkE7SUFBUztFQUNyQixDQUFDLEVBQUUsVUFBQ1EsUUFBUSxFQUFLO0lBQ2IsSUFBTWxDLElBQUksR0FBR2tDLFFBQVEsQ0FBQ0MsVUFBVTtJQUNoQyxJQUFJbkMsSUFBSSxLQUFLLEVBQUUsSUFBSUEsSUFBSSxLQUFLLFNBQVMsRUFBRTtNQUNuQzJCLFlBQVksQ0FBQ2YsR0FBRyxDQUFDWixJQUFJLENBQUM7TUFDdEIyQixZQUFZLENBQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMrQixRQUFRLENBQUNwQyxJQUFJLENBQUM7SUFDakQ7RUFDSixDQUFDLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL3BhZ2UvYWRkLmpzP2IyMjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCAnLi4vLi4vdXRpbHMvanF1ZXJ5LXV0aWxzJztcbmltcG9ydCByZXF1ZXN0IGZyb20gJy4uLy4uL3V0aWxzL3JlcXVlc3QnO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuXG5sZXQgY3VzdG9tID0gZmFsc2U7XG5sZXQgZm9sZGVyID0gJCgnW2RhdGEtcmVtb2RhbC1pZD1cIm1vZGFsXCJdIGlucHV0W25hbWU9XCJkYXRhW2ZvbGRlcl1cIl0sIFtkYXRhLXJlbW9kYWwtaWQ9XCJtb2R1bGVcIl0gaW5wdXRbbmFtZT1cImRhdGFbZm9sZGVyXVwiXSwgW2RhdGEtcmVtb2RhbC1pZD1cIm1vZGFsLXBhZ2UtY29weVwiXSBpbnB1dFtuYW1lPVwiZGF0YVtmb2xkZXJdXCJdJyk7XG5sZXQgdGl0bGUgPSAkKCdbZGF0YS1yZW1vZGFsLWlkPVwibW9kYWxcIl0gaW5wdXRbbmFtZT1cImRhdGFbdGl0bGVdXCJdLCBbZGF0YS1yZW1vZGFsLWlkPVwibW9kdWxlXCJdIGlucHV0W25hbWU9XCJkYXRhW3RpdGxlXVwiXSwgW2RhdGEtcmVtb2RhbC1pZD1cIm1vZGFsLXBhZ2UtY29weVwiXSBpbnB1dFtuYW1lPVwiZGF0YVt0aXRsZV1cIl0nKTtcbmxldCBnZXRGaWVsZHMgPSAodHlwZSwgdGFyZ2V0KSA9PiB7XG4gICAgdGFyZ2V0ID0gJCh0YXJnZXQpO1xuICAgIGxldCBxdWVyeSA9IGBbZGF0YS1yZW1vZGFsLWlkPVwiJHt0YXJnZXQuY2xvc2VzdCgnW2RhdGEtcmVtb2RhbC1pZF0nKS5kYXRhKCdyZW1vZGFsLWlkJyl9XCJdYDtcblxuICAgIHJldHVybiB7XG4gICAgICAgIHRpdGxlOiB0eXBlID09PSAndGl0bGUnID8gJCh0YXJnZXQpIDogJChgJHtxdWVyeX0gaW5wdXRbbmFtZT1cImRhdGFbdGl0bGVdXCJdYCksXG4gICAgICAgIGZvbGRlcjogdHlwZSA9PT0gJ2ZvbGRlcicgPyAkKHRhcmdldCkgOiAkKGAke3F1ZXJ5fSBpbnB1dFtuYW1lPVwiZGF0YVtmb2xkZXJdXCJdYClcbiAgICB9O1xufTtcblxudGl0bGUub24oJ2lucHV0IGZvY3VzIGJsdXInLCAoZXZlbnQpID0+IHtcbiAgICBpZiAoY3VzdG9tKSB7IHJldHVybiB0cnVlOyB9XG4gICAgbGV0IGVsZW1lbnRzID0gZ2V0RmllbGRzKCd0aXRsZScsIGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuXG4gICAgbGV0IHNsdWcgPSAkLnNsdWdpZnkoZWxlbWVudHMudGl0bGUudmFsKCksIHtjdXN0b206IHsgXCInXCI6ICcnLCAn4oCYJzogJycsICfigJknOiAnJyB9fSk7XG4gICAgZWxlbWVudHMuZm9sZGVyLnZhbChzbHVnKTtcbn0pO1xuXG5mb2xkZXIub24oJ2lucHV0JywgKGV2ZW50KSA9PiB7XG4gICAgbGV0IGVsZW1lbnRzID0gZ2V0RmllbGRzKCdmb2xkZXInLCBldmVudC5jdXJyZW50VGFyZ2V0KTtcblxuICAgIGxldCBpbnB1dCA9IGVsZW1lbnRzLmZvbGRlci5nZXQoMCk7XG4gICAgbGV0IHZhbHVlID0gZWxlbWVudHMuZm9sZGVyLnZhbCgpO1xuICAgIGxldCBzZWxlY3Rpb24gPSB7XG4gICAgICAgIHN0YXJ0OiBpbnB1dC5zZWxlY3Rpb25TdGFydCxcbiAgICAgICAgZW5kOiBpbnB1dC5zZWxlY3Rpb25FbmRcbiAgICB9O1xuXG4gICAgdmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccy9nLCAnLScpLnJlcGxhY2UoL1teYS16MC05X1xcLV0vZywgJycpO1xuICAgIGVsZW1lbnRzLmZvbGRlci52YWwodmFsdWUpO1xuICAgIGN1c3RvbSA9ICEhdmFsdWU7XG5cbiAgICAvLyByZXN0b3JlIGN1cnNvciBwb3NpdGlvblxuICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvbi5zdGFydCwgc2VsZWN0aW9uLmVuZCk7XG5cbn0pO1xuXG5mb2xkZXIub24oJ2ZvY3VzIGJsdXInLCAoZXZlbnQpID0+IHtcbiAgZ2V0RmllbGRzKCd0aXRsZScpLnRpdGxlLnRyaWdnZXIoJ2lucHV0Jyk7XG59KTtcblxuJChkb2N1bWVudCkub24oJ2NoYW5nZScsICdbbmFtZT1cImRhdGFbcm91dGVdXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgcmF3cm91dGUgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpLnZhbCgpO1xuICAgIGNvbnN0IHBhZ2VUZW1wbGF0ZSA9ICQoJ1tuYW1lPVwiZGF0YVtuYW1lXVwiXScpO1xuICAgIGNvbnN0IFVSSSA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vYWpheC5qc29uL3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9Z2V0Q2hpbGRUeXBlc2A7XG5cbiAgICBpZiAocGFnZVRlbXBsYXRlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmVxdWVzdChVUkksIHtcbiAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgIGJvZHk6IHsgcmF3cm91dGUgfVxuICAgIH0sIChyZXNwb25zZSkgPT4ge1xuICAgICAgICBjb25zdCB0eXBlID0gcmVzcG9uc2UuY2hpbGRfdHlwZTtcbiAgICAgICAgaWYgKHR5cGUgIT09ICcnICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgcGFnZVRlbXBsYXRlLnZhbCh0eXBlKTtcbiAgICAgICAgICAgIHBhZ2VUZW1wbGF0ZS5kYXRhKCdzZWxlY3RpemUnKS5zZXRWYWx1ZSh0eXBlKTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG4iXSwibmFtZXMiOlsiJCIsInJlcXVlc3QiLCJjb25maWciLCJjdXN0b20iLCJmb2xkZXIiLCJ0aXRsZSIsImdldEZpZWxkcyIsInR5cGUiLCJ0YXJnZXQiLCJxdWVyeSIsImNvbmNhdCIsImNsb3Nlc3QiLCJkYXRhIiwib24iLCJldmVudCIsImVsZW1lbnRzIiwiY3VycmVudFRhcmdldCIsInNsdWciLCJzbHVnaWZ5IiwidmFsIiwiaW5wdXQiLCJnZXQiLCJ2YWx1ZSIsInNlbGVjdGlvbiIsInN0YXJ0Iiwic2VsZWN0aW9uU3RhcnQiLCJlbmQiLCJzZWxlY3Rpb25FbmQiLCJ0b0xvd2VyQ2FzZSIsInJlcGxhY2UiLCJzZXRTZWxlY3Rpb25SYW5nZSIsInRyaWdnZXIiLCJkb2N1bWVudCIsInJhd3JvdXRlIiwicGFnZVRlbXBsYXRlIiwiVVJJIiwiYmFzZV91cmxfcmVsYXRpdmUiLCJwYXJhbV9zZXAiLCJsZW5ndGgiLCJtZXRob2QiLCJib2R5IiwicmVzcG9uc2UiLCJjaGlsZF90eXBlIiwic2V0VmFsdWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/pages/page/add.js\n\n}");
/***/ }),
/***/ "./app/pages/page/delete.js":
/*!**********************************!*\
!*** ./app/pages/page/delete.js ***!
\**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-remodal-target=\"delete\"]', function () {\n var confirm = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"delete\"] [data-delete-action]');\n var link = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('delete-url');\n confirm.data('delete-action', link);\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-delete-action]', function () {\n var remodal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal).lookup[jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"delete\"]').data('remodal')];\n __webpack_require__.g.location.href = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('delete-action');\n remodal.close();\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvcGFnZXMvcGFnZS9kZWxldGUuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQXVCO0FBRXZCQSw2Q0FBQyxDQUFDQyxRQUFRLENBQUMsQ0FBQ0MsRUFBRSxDQUFDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxZQUFXO0VBQ2pFLElBQUlDLE9BQU8sR0FBR0gsNkNBQUMsQ0FBQyxpREFBaUQsQ0FBQztFQUNsRSxJQUFJSSxJQUFJLEdBQUdKLDZDQUFDLENBQUMsSUFBSSxDQUFDLENBQUNLLElBQUksQ0FBQyxZQUFZLENBQUM7RUFFckNGLE9BQU8sQ0FBQ0UsSUFBSSxDQUFDLGVBQWUsRUFBRUQsSUFBSSxDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQUVGSiw2Q0FBQyxDQUFDQyxRQUFRLENBQUMsQ0FBQ0MsRUFBRSxDQUFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFXO0VBQ3ZELElBQUlJLE9BQU8sR0FBR04sdURBQVMsQ0FBQ08sTUFBTSxDQUFDUCw2Q0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUNLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztFQUUvRUcscUJBQU0sQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLEdBQUdWLDZDQUFDLENBQUMsSUFBSSxDQUFDLENBQUNLLElBQUksQ0FBQyxlQUFlLENBQUM7RUFDcERDLE9BQU8sQ0FBQ0ssS0FBSyxDQUFDLENBQUM7QUFDbkIsQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9wYWdlcy9wYWdlL2RlbGV0ZS5qcz8xMDE3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1yZW1vZGFsLXRhcmdldD1cImRlbGV0ZVwiXScsIGZ1bmN0aW9uKCkge1xuICAgIGxldCBjb25maXJtID0gJCgnW2RhdGEtcmVtb2RhbC1pZD1cImRlbGV0ZVwiXSBbZGF0YS1kZWxldGUtYWN0aW9uXScpO1xuICAgIGxldCBsaW5rID0gJCh0aGlzKS5kYXRhKCdkZWxldGUtdXJsJyk7XG5cbiAgICBjb25maXJtLmRhdGEoJ2RlbGV0ZS1hY3Rpb24nLCBsaW5rKTtcbn0pO1xuXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtZGVsZXRlLWFjdGlvbl0nLCBmdW5jdGlvbigpIHtcbiAgICBsZXQgcmVtb2RhbCA9ICQucmVtb2RhbC5sb29rdXBbJCgnW2RhdGEtcmVtb2RhbC1pZD1cImRlbGV0ZVwiXScpLmRhdGEoJ3JlbW9kYWwnKV07XG5cbiAgICBnbG9iYWwubG9jYXRpb24uaHJlZiA9ICQodGhpcykuZGF0YSgnZGVsZXRlLWFjdGlvbicpO1xuICAgIHJlbW9kYWwuY2xvc2UoKTtcbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJkb2N1bWVudCIsIm9uIiwiY29uZmlybSIsImxpbmsiLCJkYXRhIiwicmVtb2RhbCIsImxvb2t1cCIsImdsb2JhbCIsImxvY2F0aW9uIiwiaHJlZiIsImNsb3NlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/page/delete.js\n\n}");
/***/ }),
/***/ "./app/pages/page/disable-buttons.js":
/*!*******************************************!*\
!*** ./app/pages/page/disable-buttons.js ***!
\*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('.disable-after-click').on('click', function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).addClass('pointer-events-disabled');\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvcGFnZXMvcGFnZS9kaXNhYmxlLWJ1dHRvbnMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQXVCO0FBRXZCQSw2Q0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUNDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsWUFBVztFQUM3Q0QsNkNBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQ0UsUUFBUSxDQUFDLHlCQUF5QixDQUFDO0FBQy9DLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvcGFnZXMvcGFnZS9kaXNhYmxlLWJ1dHRvbnMuanM/NmI4MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuXG4kKCcuZGlzYWJsZS1hZnRlci1jbGljaycpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xuICAgICQodGhpcykuYWRkQ2xhc3MoJ3BvaW50ZXItZXZlbnRzLWRpc2FibGVkJyk7XG59KTtcbiJdLCJuYW1lcyI6WyIkIiwib24iLCJhZGRDbGFzcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/pages/page/disable-buttons.js\n\n}");
/***/ }),
/***/ "./app/pages/page/index.js":
/*!*********************************!*\
!*** ./app/pages/page/index.js ***!
\*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _add__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./add */ \"./app/pages/page/add.js\");\n/* harmony import */ var _move__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./move */ \"./app/pages/page/move.js\");\n/* harmony import */ var _delete__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./delete */ \"./app/pages/page/delete.js\");\n/* harmony import */ var _unset__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./unset */ \"./app/pages/page/unset.js\");\n/* harmony import */ var _disable_buttons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./disable-buttons */ \"./app/pages/page/disable-buttons.js\");\n/* harmony import */ var _media__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./media */ \"./app/pages/page/media.js\");\n/* harmony import */ var _multilang__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./multilang */ \"./app/pages/page/multilang.js\");\n\n\n\n\n\n\n\n\nvar switcher = jquery__WEBPACK_IMPORTED_MODULE_0___default()('input[type=\"radio\"][name=\"mode-switch\"]');\nif (switcher) {\n var link = switcher.closest(':checked').data('leave-url');\n var fakeLink = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"
\"));\n switcher.parent().append(fakeLink);\n switcher.siblings('label').on('mousedown touchdown', function (event) {\n event.preventDefault();\n\n // let remodal = $.remodal.lookup[$('[data-remodal-id=\"changes\"]').data('remodal')];\n var confirm = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"changes\"] [data-leave-action=\"continue\"]');\n confirm.one('click', function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).on('beforeunload._grav');\n fakeLink.off('click._grav');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).trigger('click');\n });\n fakeLink.trigger('click._grav');\n });\n switcher.on('change', function (event) {\n var radio = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n link = radio.data('leave-url');\n setTimeout(function () {\n return fakeLink.attr('href', link).get(0).click();\n }, 5);\n });\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n Media: {\n PageMedia: _media__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n PageMediaInstances: _media__WEBPACK_IMPORTED_MODULE_6__.Instance\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvcGFnZXMvcGFnZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQXVCO0FBQ1I7QUFDQztBQUNFO0FBQ0Q7QUFDVTtBQUN5QztBQUMvQztBQUVyQixJQUFNSSxRQUFRLEdBQUdKLDZDQUFDLENBQUMseUNBQXlDLENBQUM7QUFFN0QsSUFBSUksUUFBUSxFQUFFO0VBQ1YsSUFBSUMsSUFBSSxHQUFHRCxRQUFRLENBQUNFLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLFdBQVcsQ0FBQztFQUN6RCxJQUFJQyxRQUFRLEdBQUdSLDZDQUFDLGNBQUFTLE1BQUEsQ0FBYUosSUFBSSxVQUFNLENBQUM7RUFFeENELFFBQVEsQ0FBQ00sTUFBTSxDQUFDLENBQUMsQ0FBQ0MsTUFBTSxDQUFDSCxRQUFRLENBQUM7RUFFbENKLFFBQVEsQ0FBQ1EsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDQyxFQUFFLENBQUMscUJBQXFCLEVBQUUsVUFBQ0MsS0FBSyxFQUFLO0lBQzVEQSxLQUFLLENBQUNDLGNBQWMsQ0FBQyxDQUFDOztJQUV0QjtJQUNBLElBQUlDLE9BQU8sR0FBR2hCLDZDQUFDLENBQUMsNERBQTRELENBQUM7SUFFN0VnQixPQUFPLENBQUNDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsWUFBTTtNQUN2QmpCLDZDQUFDLENBQUNrQixxQkFBTSxDQUFDLENBQUNMLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztNQUNsQ0wsUUFBUSxDQUFDVyxHQUFHLENBQUMsYUFBYSxDQUFDO01BRTNCbkIsNkNBQUMsQ0FBQ2MsS0FBSyxDQUFDTSxNQUFNLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNwQyxDQUFDLENBQUM7SUFFRmIsUUFBUSxDQUFDYSxPQUFPLENBQUMsYUFBYSxDQUFDO0VBQ25DLENBQUMsQ0FBQztFQUVGakIsUUFBUSxDQUFDUyxFQUFFLENBQUMsUUFBUSxFQUFFLFVBQUNDLEtBQUssRUFBSztJQUM3QixJQUFJUSxLQUFLLEdBQUd0Qiw2Q0FBQyxDQUFDYyxLQUFLLENBQUNNLE1BQU0sQ0FBQztJQUMzQmYsSUFBSSxHQUFHaUIsS0FBSyxDQUFDZixJQUFJLENBQUMsV0FBVyxDQUFDO0lBRTlCZ0IsVUFBVSxDQUFDO01BQUEsT0FBTWYsUUFBUSxDQUFDZ0IsSUFBSSxDQUFDLE1BQU0sRUFBRW5CLElBQUksQ0FBQyxDQUFDb0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDQyxLQUFLLENBQUMsQ0FBQztJQUFBLEdBQUUsQ0FBQyxDQUFDO0VBQ25FLENBQUMsQ0FBQztBQUNOO0FBRUEsaUVBQWU7RUFDWEMsS0FBSyxFQUFFO0lBQ0gxQixTQUFTLEVBQVRBLDhDQUFTO0lBQ1RFLGtCQUFrQixFQUFsQkEsNENBQWtCQTtFQUN0QjtBQUNKLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL3BhZ2UvaW5kZXguanM/YzAxYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0ICcuL2FkZCc7XG5pbXBvcnQgJy4vbW92ZSc7XG5pbXBvcnQgJy4vZGVsZXRlJztcbmltcG9ydCAnLi91bnNldCc7XG5pbXBvcnQgJy4vZGlzYWJsZS1idXR0b25zJztcbmltcG9ydCBQYWdlTWVkaWEsIHsgSW5zdGFuY2UgYXMgUGFnZU1lZGlhSW5zdGFuY2VzIH0gZnJvbSAnLi9tZWRpYSc7XG5pbXBvcnQgJy4vbXVsdGlsYW5nJztcblxuY29uc3Qgc3dpdGNoZXIgPSAkKCdpbnB1dFt0eXBlPVwicmFkaW9cIl1bbmFtZT1cIm1vZGUtc3dpdGNoXCJdJyk7XG5cbmlmIChzd2l0Y2hlcikge1xuICAgIGxldCBsaW5rID0gc3dpdGNoZXIuY2xvc2VzdCgnOmNoZWNrZWQnKS5kYXRhKCdsZWF2ZS11cmwnKTtcbiAgICBsZXQgZmFrZUxpbmsgPSAkKGA8YSBocmVmPVwiJHtsaW5rfVwiIC8+YCk7XG5cbiAgICBzd2l0Y2hlci5wYXJlbnQoKS5hcHBlbmQoZmFrZUxpbmspO1xuXG4gICAgc3dpdGNoZXIuc2libGluZ3MoJ2xhYmVsJykub24oJ21vdXNlZG93biB0b3VjaGRvd24nLCAoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAvLyBsZXQgcmVtb2RhbCA9ICQucmVtb2RhbC5sb29rdXBbJCgnW2RhdGEtcmVtb2RhbC1pZD1cImNoYW5nZXNcIl0nKS5kYXRhKCdyZW1vZGFsJyldO1xuICAgICAgICBsZXQgY29uZmlybSA9ICQoJ1tkYXRhLXJlbW9kYWwtaWQ9XCJjaGFuZ2VzXCJdIFtkYXRhLWxlYXZlLWFjdGlvbj1cImNvbnRpbnVlXCJdJyk7XG5cbiAgICAgICAgY29uZmlybS5vbmUoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgJChnbG9iYWwpLm9uKCdiZWZvcmV1bmxvYWQuX2dyYXYnKTtcbiAgICAgICAgICAgIGZha2VMaW5rLm9mZignY2xpY2suX2dyYXYnKTtcblxuICAgICAgICAgICAgJChldmVudC50YXJnZXQpLnRyaWdnZXIoJ2NsaWNrJyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZha2VMaW5rLnRyaWdnZXIoJ2NsaWNrLl9ncmF2Jyk7XG4gICAgfSk7XG5cbiAgICBzd2l0Y2hlci5vbignY2hhbmdlJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGxldCByYWRpbyA9ICQoZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgbGluayA9IHJhZGlvLmRhdGEoJ2xlYXZlLXVybCcpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZmFrZUxpbmsuYXR0cignaHJlZicsIGxpbmspLmdldCgwKS5jbGljaygpLCA1KTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIE1lZGlhOiB7XG4gICAgICAgIFBhZ2VNZWRpYSxcbiAgICAgICAgUGFnZU1lZGlhSW5zdGFuY2VzXG4gICAgfVxufTtcbiJdLCJuYW1lcyI6WyIkIiwiUGFnZU1lZGlhIiwiSW5zdGFuY2UiLCJQYWdlTWVkaWFJbnN0YW5jZXMiLCJzd2l0Y2hlciIsImxpbmsiLCJjbG9zZXN0IiwiZGF0YSIsImZha2VMaW5rIiwiY29uY2F0IiwicGFyZW50IiwiYXBwZW5kIiwic2libGluZ3MiLCJvbiIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJjb25maXJtIiwib25lIiwiZ2xvYmFsIiwib2ZmIiwidGFyZ2V0IiwidHJpZ2dlciIsInJhZGlvIiwic2V0VGltZW91dCIsImF0dHIiLCJnZXQiLCJjbGljayIsIk1lZGlhIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/page/index.js\n\n}");
/***/ }),
/***/ "./app/pages/page/media.js":
/*!*********************************!*\
!*** ./app/pages/page/media.js ***!
\*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Instance: () => (/* binding */ Instance),\n/* harmony export */ \"default\": () => (/* binding */ PageMedia),\n/* harmony export */ updateMediaCollapseStatus: () => (/* binding */ updateMediaCollapseStatus),\n/* harmony export */ updateMediaSizes: () => (/* binding */ updateMediaSizes)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_cookies_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/cookies.js */ \"./app/utils/cookies.js\");\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var _forms_fields_files__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../forms/fields/files */ \"./app/forms/fields/files.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _forms_fields_editor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../forms/fields/editor */ \"./app/forms/fields/editor.js\");\n/* harmony import */ var sortablejs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! sortablejs */ \"./node_modules/sortablejs/modular/sortable.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _superPropGet(t, o, e, r) { var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && \"function\" == typeof p ? function (t) { return p.apply(e, t); } : p; }\nfunction _get() { return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = _superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, _get.apply(null, arguments); }\nfunction _superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t));); return t; }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\n\n\n\n\n\n\n\nvar previewTemplate = \"\\n
\").trim();\nvar PageMedia = /*#__PURE__*/function (_FilesField) {\n function PageMedia() {\n var _this;\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? '#grav-dropzone' : _ref$container,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options;\n _classCallCheck(this, PageMedia);\n options = Object.assign(options, {\n previewTemplate: previewTemplate\n });\n _this = _callSuper(this, PageMedia, [{\n container: container,\n options: options\n }]);\n if (!_this.container.length) {\n return _possibleConstructorReturn(_this);\n }\n _this.urls = {\n fetch: \"\".concat(_this.container.data('media-url'), \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_4__.config.param_sep, \"listmedia\"),\n add: \"\".concat(_this.container.data('media-url'), \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_4__.config.param_sep, \"addmedia\"),\n \"delete\": \"\".concat(_this.container.data('media-url'), \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_4__.config.param_sep, \"delmedia\")\n };\n _this.dropzone.options.url = _this.urls.add;\n if (typeof _this.options.fetchMedia === 'undefined' || _this.options.fetchMedia) {\n _this.fetchMedia();\n }\n if (typeof _this.options.attachDragDrop === 'undefined' || _this.options.attachDragDrop) {\n _this.attachDragDrop();\n }\n var field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[name=\\\"\".concat(_this.container.data('dropzone-field'), \"\\\"]\"));\n if (field.length) {\n _this.sortable = new sortablejs__WEBPACK_IMPORTED_MODULE_6__[\"default\"](_this.container.get(0), {\n animation: 150,\n // forceFallback: true,\n setData: function setData(dataTransfer, target) {\n target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target);\n var uri = encodeURI(target.find('.dz-filename').text());\n var shortcode = (0,_forms_fields_files__WEBPACK_IMPORTED_MODULE_3__.UriToMarkdown)(uri);\n _this.dropzone.disable();\n target.addClass('hide-backface');\n dataTransfer.effectAllowed = 'copy';\n dataTransfer.setData('text', shortcode);\n },\n onSort: function onSort() {\n var names = [];\n _this.container.find('[data-dz-name]').each(function (index, file) {\n file = jquery__WEBPACK_IMPORTED_MODULE_0___default()(file);\n var name = file.text().trim();\n names.push(name);\n });\n field.val(names.join(','));\n }\n });\n }\n return _this;\n }\n _inherits(PageMedia, _FilesField);\n return _createClass(PageMedia, [{\n key: \"fetchMedia\",\n value: function fetchMedia() {\n var _this2 = this;\n var order = this.container.closest('.form-field').find('[name=\"data[header][media_order]\"]').val();\n var body = {\n uri: this.getURI(),\n order: order\n };\n var url = this.urls.fetch;\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post',\n body: body\n }, function (response) {\n var results = response.results;\n Object.keys(results).forEach(function (name) {\n var data = results[name];\n var mock = {\n name: name,\n size: data.size,\n accepted: true,\n extras: data\n };\n _this2.dropzone.files.push(mock);\n _this2.dropzone.options.addedfile.call(_this2.dropzone, mock);\n _this2.dropzone.options.thumbnail.call(_this2.dropzone, mock, data.url);\n });\n _this2.updateThumbsSize();\n _this2.container.find('.dz-preview').prop('draggable', 'true');\n });\n }\n }, {\n key: \"onDropzoneSending\",\n value: function onDropzoneSending(file, xhr, formData) {\n /*\n // Cannot call super because Safari and IE API don't implement `delete`\n super.onDropzoneSending(file, xhr, formData);\n formData.delete('task');\n */\n\n formData.append('name', this.options.dotNotation || file.name);\n formData.append('admin-nonce', grav_config__WEBPACK_IMPORTED_MODULE_4__.config.admin_nonce);\n formData.append('uri', this.getURI());\n }\n }, {\n key: \"onDropzoneComplete\",\n value: function onDropzoneComplete(file) {\n _superPropGet(PageMedia, \"onDropzoneComplete\", this, 3)([file]);\n if (this.sortable) {\n this.sortable.options.onSort();\n }\n\n // accepted\n this.updateThumbsSize();\n this.updateMediaCount();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dz-preview').prop('draggable', 'true');\n }\n }, {\n key: \"onDropzoneAddedFile\",\n value: function onDropzoneAddedFile(file) {\n for (var _len = arguments.length, extra = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n extra[_key - 1] = arguments[_key];\n }\n _superPropGet(PageMedia, \"onDropzoneAddedFile\", this, 3)([file, extra]);\n this.updateThumbsSize();\n }\n }, {\n key: \"onDropzoneRemovedFile\",\n value: function onDropzoneRemovedFile(file) {\n for (var _len2 = arguments.length, extra = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n extra[_key2 - 1] = arguments[_key2];\n }\n _superPropGet(PageMedia, \"onDropzoneRemovedFile\", this, 3)([file].concat(extra));\n this.updateMediaCount();\n if (this.sortable) {\n this.sortable.options.onSort();\n }\n }\n }, {\n key: \"updateThumbsSize\",\n value: function updateThumbsSize() {\n var status = JSON.parse(_utils_cookies_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get('grav-admin-pagemedia') || '{}');\n if (status.width) {\n var input = this.container.closest('.pagemedia-field').find('.media-resizer');\n updateMediaSizes(input[0], status.width, false);\n }\n }\n }, {\n key: \"updateMediaCount\",\n value: function updateMediaCount() {\n var element = this.container.closest('.pagemedia-field').find('[data-pagemedia-count]');\n element.text(\"(\".concat(this.dropzone.files.length, \")\"));\n }\n }, {\n key: \"attachDragDrop\",\n value: function attachDragDrop() {\n var _this3 = this;\n this.container.delegate('[data-dz-insert]', 'click', function (e) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget).parent('.dz-preview').find('.dz-filename');\n var editor = _forms_fields_editor__WEBPACK_IMPORTED_MODULE_5__.Instance.editors.filter(function (index, editor) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(editor).attr('name') === 'data[content]';\n });\n if (editor.length) {\n editor = editor.data('codemirror');\n editor.focus();\n var filename = encodeURI(target.text());\n var shortcode = (0,_forms_fields_files__WEBPACK_IMPORTED_MODULE_3__.UriToMarkdown)(filename);\n editor.doc.replaceSelection(shortcode);\n }\n });\n this.container.delegate('[data-dz-view]', 'mouseenter', function (e) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget);\n var file = target.parent('.dz-preview').find('.dz-filename');\n var filename = encodeURI(file.text());\n var URL = target.closest('[data-media-path]').data('media-path');\n var original = _this3.dropzone.files.filter(function (file) {\n return encodeURI(file.name) === filename;\n }).shift();\n original = original && (original.extras && original.extras.original || encodeURI(original.name));\n target.attr('href', \"\".concat(URL, \"/\").concat(original));\n });\n this.container.delegate('[data-dz-metadata]', 'click', function (e) {\n e.preventDefault();\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget);\n var file = target.parent('.dz-preview').find('.dz-filename');\n var filename = encodeURI(file.text());\n var cleanName = file.text().replace('<', '<').replace('>', '>');\n var fileObj = _this3.dropzone.files.filter(function (file) {\n return file.name === __webpack_require__.g.decodeURI(filename);\n }).shift() || {};\n if (!fileObj.extras) {\n fileObj.extras = {\n metadata: []\n };\n }\n if (Array.isArray(fileObj.extras.metadata) && !fileObj.extras.metadata.length) {\n fileObj.extras.metadata = {\n '': \"\".concat(cleanName, \".meta.yaml doesn't exist\")\n };\n }\n fileObj = fileObj.extras;\n var modal_element = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').find('[data-remodal-id=\"metadata\"]');\n var modal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal).lookup[modal_element.data('remodal')];\n modal_element.find('h1 strong').html(cleanName);\n if (fileObj.url) {\n modal_element.find('.meta-preview').html(\"
\"));\n }\n var container = modal_element.find('.meta-content').html('
').find('ul');\n Object.keys(fileObj.metadata).forEach(function (meta) {\n var cleanMeta = fileObj.metadata[meta].replace('<', '<').replace('>', '>');\n container.append(\"
\".concat(meta ? meta + ':' : '', \" \").concat(cleanMeta, \"\"));\n });\n modal.open();\n });\n this.container.delegate('.dz-preview', 'dragstart', function (e) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget);\n var uri = encodeURI(target.find('.dz-filename').text());\n var shortcode = (0,_forms_fields_files__WEBPACK_IMPORTED_MODULE_3__.UriToMarkdown)(uri);\n _this3.dropzone.disable();\n target.addClass('hide-backface');\n e.originalEvent.dataTransfer.effectAllowed = 'copy';\n e.originalEvent.dataTransfer.setData('text', shortcode);\n });\n this.container.delegate('.dz-preview', 'dragend', function (e) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget);\n _this3.dropzone.enable();\n target.removeClass('hide-backface');\n });\n }\n }]);\n}(_forms_fields_files__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n\nvar updateMediaSizes = function updateMediaSizes(input, width) {\n var store = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var storageLocation = input.dataset.storageLocation || 'grav-admin-pagemedia';\n var status = JSON.parse(_utils_cookies_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(storageLocation) || '{}');\n var height = 150 * width / 200;\n var media = jquery__WEBPACK_IMPORTED_MODULE_0___default()(input).closest('.pagemedia-field').find('.dz-details, [data-dz-thumbnail]');\n media.css({\n width: width,\n height: height\n });\n if (store) {\n var data = Object.assign({}, status, {\n width: width\n });\n _utils_cookies_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].set(storageLocation, JSON.stringify(data), {\n expires: Infinity\n });\n }\n};\nvar updateMediaCollapseStatus = function updateMediaCollapseStatus(element) {\n var store = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var storageLocation = element.dataset.storageLocation || 'grav-admin-pagemedia';\n var status = JSON.parse(_utils_cookies_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(storageLocation) || '{}');\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n var icon = element.find('i.fa');\n var container = element.closest('.pagemedia-field');\n var panel = container.find('.form-data');\n var slider = container.find('.media-resizer').parent();\n var isCollapsed = !icon.hasClass('fa-chevron-down');\n var collapsed = !isCollapsed;\n icon.removeClass('fa-chevron-down fa-chevron-right').addClass(isCollapsed ? 'fa-chevron-down' : 'fa-chevron-right');\n slider[isCollapsed ? 'removeClass' : 'addClass']('hidden');\n panel[isCollapsed ? 'slideDown' : 'slideUp']();\n if (store) {\n var data = Object.assign({}, status, {\n collapsed: collapsed\n });\n _utils_cookies_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].set(storageLocation, JSON.stringify(data), {\n expires: Infinity\n });\n }\n};\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('input', '.media-resizer', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var width = target.val();\n updateMediaSizes(event.currentTarget, width);\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '.media-collapser', function (event) {\n updateMediaCollapseStatus(event.currentTarget);\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.media-resizer').each(function (index, input) {\n var storageLocation = input.dataset.storageLocation || 'grav-admin-pagemedia';\n var status = JSON.parse(_utils_cookies_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(storageLocation) || '{}');\n if (status.width) {\n updateMediaSizes(input, status.width, false);\n }\n });\n});\nvar Instance = new PageMedia();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RyxDQUFDLENBQUM7RUFFMUJnRCxnQkFBZ0IsQ0FBQ3lELEtBQUssQ0FBQ3BELGFBQWEsRUFBRVAsS0FBSyxDQUFDO0FBQzlDLENBQUMsQ0FBQztBQUVGL0csNkNBQUMsQ0FBQ3dLLFFBQVEsQ0FBQyxDQUFDQyxFQUFFLENBQUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQUNDLEtBQUssRUFBSztFQUNyRFQseUJBQXlCLENBQUNTLEtBQUssQ0FBQ3BELGFBQWEsQ0FBQztBQUNoRCxDQUFDLENBQUM7QUFFRnRILDZDQUFDLENBQUN3SyxRQUFRLENBQUMsQ0FBQ0csS0FBSyxDQUFDLFlBQU07RUFDdEIzSyw2Q0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUM0RCxJQUFJLENBQUMsVUFBQ0MsS0FBSyxFQUFFbUQsS0FBSyxFQUFLO0lBQ3pDLElBQU13QyxlQUFlLEdBQUd4QyxLQUFLLENBQUN5QyxPQUFPLENBQUNELGVBQWUsSUFBSSxzQkFBc0I7SUFDL0UsSUFBTTVDLE1BQU0sR0FBR0MsSUFBSSxDQUFDQyxLQUFLLENBQUM3Ryx5REFBTyxDQUFDNEMsR0FBRyxDQUFDMkcsZUFBZSxDQUFDLElBQUksSUFBSSxDQUFDO0lBRS9ELElBQUk1QyxNQUFNLENBQUNHLEtBQUssRUFBRTtNQUNoQkUsZ0JBQWdCLENBQUNELEtBQUssRUFBRUosTUFBTSxDQUFDRyxLQUFLLEVBQUUsS0FBSyxDQUFDO0lBQzlDO0VBQ0YsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUssSUFBSXhHLFFBQVEsR0FBRyxJQUFJVyxTQUFTLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvcGFnZXMvcGFnZS9tZWRpYS5qcz9lOWEyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgQ29va2llcyBmcm9tICcuLi8uLi91dGlscy9jb29raWVzLmpzJztcbmltcG9ydCByZXF1ZXN0IGZyb20gJy4uLy4uL3V0aWxzL3JlcXVlc3QnO1xuaW1wb3J0IEZpbGVzRmllbGQsIHsgVXJpVG9NYXJrZG93biB9IGZyb20gJy4uLy4uL2Zvcm1zL2ZpZWxkcy9maWxlcyc7XG5pbXBvcnQgeyBjb25maWcsIHRyYW5zbGF0aW9ucyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCB7IEluc3RhbmNlIGFzIEVkaXRvciB9IGZyb20gJy4uLy4uL2Zvcm1zL2ZpZWxkcy9lZGl0b3InO1xuaW1wb3J0IFNvcnRhYmxlIGZyb20gJ3NvcnRhYmxlanMnO1xuXG5jb25zdCBwcmV2aWV3VGVtcGxhdGUgPSBgXG4gICAgPGRpdiBjbGFzcz1cImR6LXByZXZpZXcgZHotZmlsZS1wcmV2aWV3XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZHotZGV0YWlsc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHotZmlsZW5hbWVcIj48c3BhbiBkYXRhLWR6LW5hbWU+PC9zcGFuPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHotc2l6ZVwiIGRhdGEtZHotc2l6ZT48L2Rpdj5cbiAgICAgICAgPGltZyBkYXRhLWR6LXRodW1ibmFpbCAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZHotcHJvZ3Jlc3NcIj48c3BhbiBjbGFzcz1cImR6LXVwbG9hZFwiIGRhdGEtZHotdXBsb2FkcHJvZ3Jlc3M+PC9zcGFuPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImR6LXN1Y2Nlc3MtbWFya1wiPjxzcGFuPuKclDwvc3Bhbj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkei1lcnJvci1tYXJrXCI+PHNwYW4+4pyYPC9zcGFuPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImR6LWVycm9yLW1lc3NhZ2VcIj48c3BhbiBkYXRhLWR6LWVycm9ybWVzc2FnZT48L3NwYW4+PC9kaXY+XG4gICAgICA8YSBjbGFzcz1cImR6LXJlbW92ZVwiIHRpdGxlPVwiJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkRFTEVURX1cIiBocmVmPVwiamF2YXNjcmlwdDp1bmRlZmluZWQ7XCIgZGF0YS1kei1yZW1vdmU+JHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkRFTEVURX08L2E+XG4gICAgICA8YSBjbGFzcz1cImR6LW1ldGFkYXRhXCIgdGl0bGU9XCIke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uTUVUQURBVEF9XCIgaHJlZj1cIiNcIiB0YXJnZXQ9XCJfYmxhbmtcIiBkYXRhLWR6LW1ldGFkYXRhPiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5NRVRBREFUQX08L2E+XG4gICAgICA8YSBjbGFzcz1cImR6LXZpZXdcIiB0aXRsZT1cIiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5WSUVXfVwiIGhyZWY9XCIjXCIgdGFyZ2V0PVwiX2JsYW5rXCIgZGF0YS1kei12aWV3PiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5WSUVXfTwvYT5cbiAgICAgIDxhIGNsYXNzPVwiZHotaW5zZXJ0XCIgdGl0bGU9XCIke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uSU5TRVJUfVwiIGhyZWY9XCJqYXZhc2NyaXB0OnVuZGVmaW5lZDtcIiBkYXRhLWR6LWluc2VydD4ke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uSU5TRVJUfTwvYT5cbiAgICA8L2Rpdj5gLnRyaW0oKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFnZU1lZGlhIGV4dGVuZHMgRmlsZXNGaWVsZCB7XG4gICAgY29uc3RydWN0b3IoeyBjb250YWluZXIgPSAnI2dyYXYtZHJvcHpvbmUnLCBvcHRpb25zID0ge30gfSA9IHt9KSB7XG4gICAgICAgIG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHsgcHJldmlld1RlbXBsYXRlIH0pO1xuICAgICAgICBzdXBlcih7IGNvbnRhaW5lciwgb3B0aW9ucyB9KTtcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lci5sZW5ndGgpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdGhpcy51cmxzID0ge1xuICAgICAgICAgICAgZmV0Y2g6IGAke3RoaXMuY29udGFpbmVyLmRhdGEoJ21lZGlhLXVybCcpfS90YXNrJHtjb25maWcucGFyYW1fc2VwfWxpc3RtZWRpYWAsXG4gICAgICAgICAgICBhZGQ6IGAke3RoaXMuY29udGFpbmVyLmRhdGEoJ21lZGlhLXVybCcpfS90YXNrJHtjb25maWcucGFyYW1fc2VwfWFkZG1lZGlhYCxcbiAgICAgICAgICAgIGRlbGV0ZTogYCR7dGhpcy5jb250YWluZXIuZGF0YSgnbWVkaWEtdXJsJyl9L3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9ZGVsbWVkaWFgXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5kcm9wem9uZS5vcHRpb25zLnVybCA9IHRoaXMudXJscy5hZGQ7XG5cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMuZmV0Y2hNZWRpYSA9PT0gJ3VuZGVmaW5lZCcgfHwgdGhpcy5vcHRpb25zLmZldGNoTWVkaWEpIHtcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hNZWRpYSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMuYXR0YWNoRHJhZ0Ryb3AgPT09ICd1bmRlZmluZWQnIHx8IHRoaXMub3B0aW9ucy5hdHRhY2hEcmFnRHJvcCkge1xuICAgICAgICAgICAgdGhpcy5hdHRhY2hEcmFnRHJvcCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmllbGQgPSAkKGBbbmFtZT1cIiR7dGhpcy5jb250YWluZXIuZGF0YSgnZHJvcHpvbmUtZmllbGQnKX1cIl1gKTtcblxuICAgICAgICBpZiAoZmllbGQubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnNvcnRhYmxlID0gbmV3IFNvcnRhYmxlKHRoaXMuY29udGFpbmVyLmdldCgwKSwge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogMTUwLFxuICAgICAgICAgICAgICAgIC8vIGZvcmNlRmFsbGJhY2s6IHRydWUsXG4gICAgICAgICAgICAgICAgc2V0RGF0YTogKGRhdGFUcmFuc2ZlciwgdGFyZ2V0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldCA9ICQodGFyZ2V0KTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHVyaSA9IGVuY29kZVVSSSh0YXJnZXQuZmluZCgnLmR6LWZpbGVuYW1lJykudGV4dCgpKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNob3J0Y29kZSA9IFVyaVRvTWFya2Rvd24odXJpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wem9uZS5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5hZGRDbGFzcygnaGlkZS1iYWNrZmFjZScpO1xuICAgICAgICAgICAgICAgICAgICBkYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZCA9ICdjb3B5JztcbiAgICAgICAgICAgICAgICAgICAgZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQnLCBzaG9ydGNvZGUpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb25Tb3J0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBuYW1lcyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5maW5kKCdbZGF0YS1kei1uYW1lXScpLmVhY2goKGluZGV4LCBmaWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlID0gJChmaWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlLnRleHQoKS50cmltKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lcy5wdXNoKG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBmaWVsZC52YWwobmFtZXMuam9pbignLCcpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZldGNoTWVkaWEoKSB7XG4gICAgICAgIGNvbnN0IG9yZGVyID0gdGhpcy5jb250YWluZXIuY2xvc2VzdCgnLmZvcm0tZmllbGQnKS5maW5kKCdbbmFtZT1cImRhdGFbaGVhZGVyXVttZWRpYV9vcmRlcl1cIl0nKS52YWwoKTtcbiAgICAgICAgY29uc3QgYm9keSA9IHsgdXJpOiB0aGlzLmdldFVSSSgpLCBvcmRlciB9O1xuICAgICAgICBsZXQgdXJsID0gdGhpcy51cmxzLmZldGNoO1xuXG4gICAgICAgIHJlcXVlc3QodXJsLCB7IG1ldGhvZDogJ3Bvc3QnLCBib2R5IH0sIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3VsdHMgPSByZXNwb25zZS5yZXN1bHRzO1xuXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhyZXN1bHRzKS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSByZXN1bHRzW25hbWVdO1xuICAgICAgICAgICAgICAgIGxldCBtb2NrID0geyBuYW1lLCBzaXplOiBkYXRhLnNpemUsIGFjY2VwdGVkOiB0cnVlLCBleHRyYXM6IGRhdGEgfTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZHJvcHpvbmUuZmlsZXMucHVzaChtb2NrKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRyb3B6b25lLm9wdGlvbnMuYWRkZWRmaWxlLmNhbGwodGhpcy5kcm9wem9uZSwgbW9jayk7XG4gICAgICAgICAgICAgICAgdGhpcy5kcm9wem9uZS5vcHRpb25zLnRodW1ibmFpbC5jYWxsKHRoaXMuZHJvcHpvbmUsIG1vY2ssIGRhdGEudXJsKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRodW1ic1NpemUoKTtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmZpbmQoJy5kei1wcmV2aWV3JykucHJvcCgnZHJhZ2dhYmxlJywgJ3RydWUnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Ecm9wem9uZVNlbmRpbmcoZmlsZSwgeGhyLCBmb3JtRGF0YSkge1xuICAgICAgICAvKlxuICAgICAgICAvLyBDYW5ub3QgY2FsbCBzdXBlciBiZWNhdXNlIFNhZmFyaSBhbmQgSUUgQVBJIGRvbid0IGltcGxlbWVudCBgZGVsZXRlYFxuICAgICAgICBzdXBlci5vbkRyb3B6b25lU2VuZGluZyhmaWxlLCB4aHIsIGZvcm1EYXRhKTtcbiAgICAgICAgZm9ybURhdGEuZGVsZXRlKCd0YXNrJyk7XG4gICAgICAgICovXG5cbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCduYW1lJywgdGhpcy5vcHRpb25zLmRvdE5vdGF0aW9uIHx8IGZpbGUubmFtZSk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnYWRtaW4tbm9uY2UnLCBjb25maWcuYWRtaW5fbm9uY2UpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3VyaScsIHRoaXMuZ2V0VVJJKCkpO1xuICAgIH1cblxuICAgIG9uRHJvcHpvbmVDb21wbGV0ZShmaWxlKSB7XG4gICAgICAgIHN1cGVyLm9uRHJvcHpvbmVDb21wbGV0ZShmaWxlKTtcbiAgICAgICAgaWYgKHRoaXMuc29ydGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuc29ydGFibGUub3B0aW9ucy5vblNvcnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFjY2VwdGVkXG4gICAgICAgIHRoaXMudXBkYXRlVGh1bWJzU2l6ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZU1lZGlhQ291bnQoKTtcbiAgICAgICAgJCgnLmR6LXByZXZpZXcnKS5wcm9wKCdkcmFnZ2FibGUnLCAndHJ1ZScpO1xuICAgIH1cblxuICAgIG9uRHJvcHpvbmVBZGRlZEZpbGUoZmlsZSwgLi4uZXh0cmEpIHtcbiAgICAgIHN1cGVyLm9uRHJvcHpvbmVBZGRlZEZpbGUoZmlsZSwgZXh0cmEpO1xuXG4gICAgICB0aGlzLnVwZGF0ZVRodW1ic1NpemUoKTtcbiAgICB9XG5cbiAgICBvbkRyb3B6b25lUmVtb3ZlZEZpbGUoZmlsZSwgLi4uZXh0cmEpIHtcbiAgICAgICAgc3VwZXIub25Ecm9wem9uZVJlbW92ZWRGaWxlKGZpbGUsIC4uLmV4dHJhKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZU1lZGlhQ291bnQoKTtcbiAgICAgICAgaWYgKHRoaXMuc29ydGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuc29ydGFibGUub3B0aW9ucy5vblNvcnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVRodW1ic1NpemUoKSB7XG4gICAgICBjb25zdCBzdGF0dXMgPSBKU09OLnBhcnNlKENvb2tpZXMuZ2V0KCdncmF2LWFkbWluLXBhZ2VtZWRpYScpIHx8ICd7fScpO1xuXG4gICAgICBpZiAoc3RhdHVzLndpZHRoKSB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5jb250YWluZXIuY2xvc2VzdCgnLnBhZ2VtZWRpYS1maWVsZCcpLmZpbmQoJy5tZWRpYS1yZXNpemVyJyk7XG4gICAgICAgIHVwZGF0ZU1lZGlhU2l6ZXMoaW5wdXRbMF0sIHN0YXR1cy53aWR0aCwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZU1lZGlhQ291bnQoKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5jb250YWluZXIuY2xvc2VzdCgnLnBhZ2VtZWRpYS1maWVsZCcpLmZpbmQoJ1tkYXRhLXBhZ2VtZWRpYS1jb3VudF0nKTtcbiAgICAgIGVsZW1lbnQudGV4dChgKCR7dGhpcy5kcm9wem9uZS5maWxlcy5sZW5ndGh9KWApO1xuICAgIH1cblxuICAgIGF0dGFjaERyYWdEcm9wKCkge1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5kZWxlZ2F0ZSgnW2RhdGEtZHotaW5zZXJ0XScsICdjbGljaycsIChlKSA9PiB7XG4gICAgICAgICAgICBsZXQgdGFyZ2V0ID0gJChlLmN1cnJlbnRUYXJnZXQpLnBhcmVudCgnLmR6LXByZXZpZXcnKS5maW5kKCcuZHotZmlsZW5hbWUnKTtcbiAgICAgICAgICAgIGxldCBlZGl0b3IgPSBFZGl0b3IuZWRpdG9ycy5maWx0ZXIoKGluZGV4LCBlZGl0b3IpID0+ICQoZWRpdG9yKS5hdHRyKCduYW1lJykgPT09ICdkYXRhW2NvbnRlbnRdJyk7XG5cbiAgICAgICAgICAgIGlmIChlZGl0b3IubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgZWRpdG9yID0gZWRpdG9yLmRhdGEoJ2NvZGVtaXJyb3InKTtcbiAgICAgICAgICAgICAgICBlZGl0b3IuZm9jdXMoKTtcblxuICAgICAgICAgICAgICAgIGxldCBmaWxlbmFtZSA9IGVuY29kZVVSSSh0YXJnZXQudGV4dCgpKTtcbiAgICAgICAgICAgICAgICBsZXQgc2hvcnRjb2RlID0gVXJpVG9NYXJrZG93bihmaWxlbmFtZSk7XG4gICAgICAgICAgICAgICAgZWRpdG9yLmRvYy5yZXBsYWNlU2VsZWN0aW9uKHNob3J0Y29kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyLmRlbGVnYXRlKCdbZGF0YS1kei12aWV3XScsICdtb3VzZWVudGVyJywgKGUpID0+IHtcbiAgICAgICAgICAgIGxldCB0YXJnZXQgPSAkKGUuY3VycmVudFRhcmdldCk7XG4gICAgICAgICAgICBsZXQgZmlsZSA9IHRhcmdldC5wYXJlbnQoJy5kei1wcmV2aWV3JykuZmluZCgnLmR6LWZpbGVuYW1lJyk7XG4gICAgICAgICAgICBsZXQgZmlsZW5hbWUgPSBlbmNvZGVVUkkoZmlsZS50ZXh0KCkpO1xuICAgICAgICAgICAgbGV0IFVSTCA9IHRhcmdldC5jbG9zZXN0KCdbZGF0YS1tZWRpYS1wYXRoXScpLmRhdGEoJ21lZGlhLXBhdGgnKTtcbiAgICAgICAgICAgIGxldCBvcmlnaW5hbCA9IHRoaXMuZHJvcHpvbmUuZmlsZXMuZmlsdGVyKChmaWxlKSA9PiBlbmNvZGVVUkkoZmlsZS5uYW1lKSA9PT0gZmlsZW5hbWUpLnNoaWZ0KCk7XG5cbiAgICAgICAgICAgIG9yaWdpbmFsID0gb3JpZ2luYWwgJiYgKChvcmlnaW5hbC5leHRyYXMgJiYgb3JpZ2luYWwuZXh0cmFzLm9yaWdpbmFsKSB8fCBlbmNvZGVVUkkob3JpZ2luYWwubmFtZSkpO1xuXG4gICAgICAgICAgICB0YXJnZXQuYXR0cignaHJlZicsIGAke1VSTH0vJHtvcmlnaW5hbH1gKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jb250YWluZXIuZGVsZWdhdGUoJ1tkYXRhLWR6LW1ldGFkYXRhXScsICdjbGljaycsIChlKSA9PiB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSAkKGUuY3VycmVudFRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCBmaWxlID0gdGFyZ2V0LnBhcmVudCgnLmR6LXByZXZpZXcnKS5maW5kKCcuZHotZmlsZW5hbWUnKTtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVuYW1lID0gZW5jb2RlVVJJKGZpbGUudGV4dCgpKTtcbiAgICAgICAgICAgIGNvbnN0IGNsZWFuTmFtZSA9IGZpbGUudGV4dCgpLnJlcGxhY2UoJzwnLCAnJmx0OycpLnJlcGxhY2UoJz4nLCAnJmd0OycpO1xuXG4gICAgICAgICAgICBsZXQgZmlsZU9iaiA9IHRoaXMuZHJvcHpvbmUuZmlsZXMuZmlsdGVyKChmaWxlKSA9PiBmaWxlLm5hbWUgPT09IGdsb2JhbC5kZWNvZGVVUkkoZmlsZW5hbWUpKS5zaGlmdCgpIHx8IHt9O1xuXG4gICAgICAgICAgICBpZiAoIWZpbGVPYmouZXh0cmFzKSB7XG4gICAgICAgICAgICAgICAgZmlsZU9iai5leHRyYXMgPSB7IG1ldGFkYXRhOiBbXSB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWxlT2JqLmV4dHJhcy5tZXRhZGF0YSkgJiYgIWZpbGVPYmouZXh0cmFzLm1ldGFkYXRhLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGZpbGVPYmouZXh0cmFzLm1ldGFkYXRhID0geyAnJzogYCR7Y2xlYW5OYW1lfS5tZXRhLnlhbWwgZG9lc24ndCBleGlzdGAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZmlsZU9iaiA9IGZpbGVPYmouZXh0cmFzO1xuXG4gICAgICAgICAgICBjb25zdCBtb2RhbF9lbGVtZW50ID0gJCgnYm9keScpLmZpbmQoJ1tkYXRhLXJlbW9kYWwtaWQ9XCJtZXRhZGF0YVwiXScpO1xuICAgICAgICAgICAgY29uc3QgbW9kYWwgPSAkLnJlbW9kYWwubG9va3VwW21vZGFsX2VsZW1lbnQuZGF0YSgncmVtb2RhbCcpXTtcblxuICAgICAgICAgICAgbW9kYWxfZWxlbWVudC5maW5kKCdoMSBzdHJvbmcnKS5odG1sKGNsZWFuTmFtZSk7XG4gICAgICAgICAgICBpZiAoZmlsZU9iai51cmwpIHtcbiAgICAgICAgICAgICAgICBtb2RhbF9lbGVtZW50LmZpbmQoJy5tZXRhLXByZXZpZXcnKS5odG1sKGA8aW1nIHNyYz1cIiR7ZmlsZU9iai51cmx9XCIgLz5gKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gbW9kYWxfZWxlbWVudC5maW5kKCcubWV0YS1jb250ZW50JykuaHRtbCgnPHVsIC8+JykuZmluZCgndWwnKTtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGZpbGVPYmoubWV0YWRhdGEpLmZvckVhY2goKG1ldGEpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGVhbk1ldGEgPSBmaWxlT2JqLm1ldGFkYXRhW21ldGFdLnJlcGxhY2UoJzwnLCAnJmx0OycpLnJlcGxhY2UoJz4nLCAnJmd0OycpO1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmQoYDxsaT48c3Ryb25nPiR7bWV0YSA/IG1ldGEgKyAnOicgOiAnJ308L3N0cm9uZz4gJHtjbGVhbk1ldGF9PC9saT5gKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBtb2RhbC5vcGVuKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyLmRlbGVnYXRlKCcuZHotcHJldmlldycsICdkcmFnc3RhcnQnLCAoZSkgPT4ge1xuICAgICAgICAgICAgbGV0IHRhcmdldCA9ICQoZS5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgICAgIGxldCB1cmkgPSBlbmNvZGVVUkkodGFyZ2V0LmZpbmQoJy5kei1maWxlbmFtZScpLnRleHQoKSk7XG4gICAgICAgICAgICBsZXQgc2hvcnRjb2RlID0gVXJpVG9NYXJrZG93bih1cmkpO1xuICAgICAgICAgICAgdGhpcy5kcm9wem9uZS5kaXNhYmxlKCk7XG4gICAgICAgICAgICB0YXJnZXQuYWRkQ2xhc3MoJ2hpZGUtYmFja2ZhY2UnKTtcbiAgICAgICAgICAgIGUub3JpZ2luYWxFdmVudC5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZCA9ICdjb3B5JztcbiAgICAgICAgICAgIGUub3JpZ2luYWxFdmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dCcsIHNob3J0Y29kZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyLmRlbGVnYXRlKCcuZHotcHJldmlldycsICdkcmFnZW5kJywgKGUpID0+IHtcbiAgICAgICAgICAgIGxldCB0YXJnZXQgPSAkKGUuY3VycmVudFRhcmdldCk7XG4gICAgICAgICAgICB0aGlzLmRyb3B6b25lLmVuYWJsZSgpO1xuICAgICAgICAgICAgdGFyZ2V0LnJlbW92ZUNsYXNzKCdoaWRlLWJhY2tmYWNlJyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IHVwZGF0ZU1lZGlhU2l6ZXMgPSAoaW5wdXQsIHdpZHRoLCBzdG9yZSA9IHRydWUpID0+IHtcbiAgY29uc3Qgc3RvcmFnZUxvY2F0aW9uID0gaW5wdXQuZGF0YXNldC5zdG9yYWdlTG9jYXRpb24gfHwgJ2dyYXYtYWRtaW4tcGFnZW1lZGlhJztcbiAgY29uc3Qgc3RhdHVzID0gSlNPTi5wYXJzZShDb29raWVzLmdldChzdG9yYWdlTG9jYXRpb24pIHx8ICd7fScpO1xuXG4gIGNvbnN0IGhlaWdodCA9IDE1MCAqIHdpZHRoIC8gMjAwO1xuICBjb25zdCBtZWRpYSA9ICQoaW5wdXQpLmNsb3Nlc3QoJy5wYWdlbWVkaWEtZmllbGQnKS5maW5kKCcuZHotZGV0YWlscywgW2RhdGEtZHotdGh1bWJuYWlsXScpO1xuXG4gIG1lZGlhLmNzcyh7IHdpZHRoLCBoZWlnaHQgfSk7XG5cbiAgaWYgKHN0b3JlKSB7XG4gICAgY29uc3QgZGF0YSA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXR1cywgeyB3aWR0aCB9KTtcbiAgICBDb29raWVzLnNldChzdG9yYWdlTG9jYXRpb24sIEpTT04uc3RyaW5naWZ5KGRhdGEpLCB7IGV4cGlyZXM6IEluZmluaXR5IH0pO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlTWVkaWFDb2xsYXBzZVN0YXR1cyA9IChlbGVtZW50LCBzdG9yZSA9IHRydWUpID0+IHtcbiAgY29uc3Qgc3RvcmFnZUxvY2F0aW9uID0gZWxlbWVudC5kYXRhc2V0LnN0b3JhZ2VMb2NhdGlvbiB8fCAnZ3Jhdi1hZG1pbi1wYWdlbWVkaWEnO1xuICBjb25zdCBzdGF0dXMgPSBKU09OLnBhcnNlKENvb2tpZXMuZ2V0KHN0b3JhZ2VMb2NhdGlvbikgfHwgJ3t9Jyk7XG5cbiAgZWxlbWVudCA9ICQoZWxlbWVudCk7XG4gIGNvbnN0IGljb24gPSBlbGVtZW50LmZpbmQoJ2kuZmEnKTtcbiAgY29uc3QgY29udGFpbmVyID0gZWxlbWVudC5jbG9zZXN0KCcucGFnZW1lZGlhLWZpZWxkJyk7XG4gIGNvbnN0IHBhbmVsID0gY29udGFpbmVyLmZpbmQoJy5mb3JtLWRhdGEnKTtcbiAgY29uc3Qgc2xpZGVyID0gY29udGFpbmVyLmZpbmQoJy5tZWRpYS1yZXNpemVyJykucGFyZW50KCk7XG5cbiAgY29uc3QgaXNDb2xsYXBzZWQgPSAhaWNvbi5oYXNDbGFzcygnZmEtY2hldnJvbi1kb3duJyk7XG4gIGNvbnN0IGNvbGxhcHNlZCA9ICFpc0NvbGxhcHNlZDtcblxuICBpY29uLnJlbW92ZUNsYXNzKCdmYS1jaGV2cm9uLWRvd24gZmEtY2hldnJvbi1yaWdodCcpLmFkZENsYXNzKGlzQ29sbGFwc2VkID8gJ2ZhLWNoZXZyb24tZG93bicgOiAnZmEtY2hldnJvbi1yaWdodCcpO1xuICBzbGlkZXJbaXNDb2xsYXBzZWQgPyAncmVtb3ZlQ2xhc3MnIDogJ2FkZENsYXNzJ10oJ2hpZGRlbicpO1xuICBwYW5lbFtpc0NvbGxhcHNlZCA/ICdzbGlkZURvd24nIDogJ3NsaWRlVXAnXSgpO1xuXG4gIGlmIChzdG9yZSkge1xuICAgIGNvbnN0IGRhdGEgPSBPYmplY3QuYXNzaWduKHt9LCBzdGF0dXMsIHsgY29sbGFwc2VkIH0pO1xuICAgIENvb2tpZXMuc2V0KHN0b3JhZ2VMb2NhdGlvbiwgSlNPTi5zdHJpbmdpZnkoZGF0YSksIHsgZXhwaXJlczogSW5maW5pdHkgfSk7XG4gIH1cbn07XG5cbiQoZG9jdW1lbnQpLm9uKCdpbnB1dCcsICcubWVkaWEtcmVzaXplcicsIChldmVudCkgPT4ge1xuICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICBjb25zdCB3aWR0aCA9IHRhcmdldC52YWwoKTtcblxuICB1cGRhdGVNZWRpYVNpemVzKGV2ZW50LmN1cnJlbnRUYXJnZXQsIHdpZHRoKTtcbn0pO1xuXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnLm1lZGlhLWNvbGxhcHNlcicsIChldmVudCkgPT4ge1xuICB1cGRhdGVNZWRpYUNvbGxhcHNlU3RhdHVzKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xufSk7XG5cbiQoZG9jdW1lbnQpLnJlYWR5KCgpID0+IHtcbiAgJCgnLm1lZGlhLXJlc2l6ZXInKS5lYWNoKChpbmRleCwgaW5wdXQpID0+IHtcbiAgICBjb25zdCBzdG9yYWdlTG9jYXRpb24gPSBpbnB1dC5kYXRhc2V0LnN0b3JhZ2VMb2NhdGlvbiB8fCAnZ3Jhdi1hZG1pbi1wYWdlbWVkaWEnO1xuICAgIGNvbnN0IHN0YXR1cyA9IEpTT04ucGFyc2UoQ29va2llcy5nZXQoc3RvcmFnZUxvY2F0aW9uKSB8fCAne30nKTtcblxuICAgIGlmIChzdGF0dXMud2lkdGgpIHtcbiAgICAgIHVwZGF0ZU1lZGlhU2l6ZXMoaW5wdXQsIHN0YXR1cy53aWR0aCwgZmFsc2UpO1xuICAgIH1cbiAgfSk7XG59KTtcblxuZXhwb3J0IGxldCBJbnN0YW5jZSA9IG5ldyBQYWdlTWVkaWEoKTtcbiJdLCJuYW1lcyI6WyIkIiwiQ29va2llcyIsInJlcXVlc3QiLCJGaWxlc0ZpZWxkIiwiVXJpVG9NYXJrZG93biIsImNvbmZpZyIsInRyYW5zbGF0aW9ucyIsIkluc3RhbmNlIiwiRWRpdG9yIiwiU29ydGFibGUiLCJwcmV2aWV3VGVtcGxhdGUiLCJjb25jYXQiLCJQTFVHSU5fQURNSU4iLCJERUxFVEUiLCJNRVRBREFUQSIsIlZJRVciLCJJTlNFUlQiLCJ0cmltIiwiUGFnZU1lZGlhIiwiX0ZpbGVzRmllbGQiLCJfdGhpcyIsIl9yZWYiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJfcmVmJGNvbnRhaW5lciIsImNvbnRhaW5lciIsIl9yZWYkb3B0aW9ucyIsIm9wdGlvbnMiLCJfY2xhc3NDYWxsQ2hlY2siLCJPYmplY3QiLCJhc3NpZ24iLCJfY2FsbFN1cGVyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJ1cmxzIiwiZmV0Y2giLCJkYXRhIiwicGFyYW1fc2VwIiwiYWRkIiwiZHJvcHpvbmUiLCJ1cmwiLCJmZXRjaE1lZGlhIiwiYXR0YWNoRHJhZ0Ryb3AiLCJmaWVsZCIsInNvcnRhYmxlIiwiZ2V0IiwiYW5pbWF0aW9uIiwic2V0RGF0YSIsImRhdGFUcmFuc2ZlciIsInRhcmdldCIsInVyaSIsImVuY29kZVVSSSIsImZpbmQiLCJ0ZXh0Iiwic2hvcnRjb2RlIiwiZGlzYWJsZSIsImFkZENsYXNzIiwiZWZmZWN0QWxsb3dlZCIsIm9uU29ydCIsIm5hbWVzIiwiZWFjaCIsImluZGV4IiwiZmlsZSIsIm5hbWUiLCJwdXNoIiwidmFsIiwiam9pbiIsIl9pbmhlcml0cyIsIl9jcmVhdGVDbGFzcyIsImtleSIsInZhbHVlIiwiX3RoaXMyIiwib3JkZXIiLCJjbG9zZXN0IiwiYm9keSIsImdldFVSSSIsIm1ldGhvZCIsInJlc3BvbnNlIiwicmVzdWx0cyIsImtleXMiLCJmb3JFYWNoIiwibW9jayIsInNpemUiLCJhY2NlcHRlZCIsImV4dHJhcyIsImZpbGVzIiwiYWRkZWRmaWxlIiwiY2FsbCIsInRodW1ibmFpbCIsInVwZGF0ZVRodW1ic1NpemUiLCJwcm9wIiwib25Ecm9wem9uZVNlbmRpbmciLCJ4aHIiLCJmb3JtRGF0YSIsImFwcGVuZCIsImRvdE5vdGF0aW9uIiwiYWRtaW5fbm9uY2UiLCJvbkRyb3B6b25lQ29tcGxldGUiLCJfc3VwZXJQcm9wR2V0IiwidXBkYXRlTWVkaWFDb3VudCIsIm9uRHJvcHpvbmVBZGRlZEZpbGUiLCJfbGVuIiwiZXh0cmEiLCJBcnJheSIsIl9rZXkiLCJvbkRyb3B6b25lUmVtb3ZlZEZpbGUiLCJfbGVuMiIsIl9rZXkyIiwic3RhdHVzIiwiSlNPTiIsInBhcnNlIiwid2lkdGgiLCJpbnB1dCIsInVwZGF0ZU1lZGlhU2l6ZXMiLCJlbGVtZW50IiwiX3RoaXMzIiwiZGVsZWdhdGUiLCJlIiwiY3VycmVudFRhcmdldCIsInBhcmVudCIsImVkaXRvciIsImVkaXRvcnMiLCJmaWx0ZXIiLCJhdHRyIiwiZm9jdXMiLCJmaWxlbmFtZSIsImRvYyIsInJlcGxhY2VTZWxlY3Rpb24iLCJVUkwiLCJvcmlnaW5hbCIsInNoaWZ0IiwicHJldmVudERlZmF1bHQiLCJjbGVhbk5hbWUiLCJyZXBsYWNlIiwiZmlsZU9iaiIsImdsb2JhbCIsImRlY29kZVVSSSIsIm1ldGFkYXRhIiwiaXNBcnJheSIsIm1vZGFsX2VsZW1lbnQiLCJtb2RhbCIsInJlbW9kYWwiLCJsb29rdXAiLCJodG1sIiwibWV0YSIsImNsZWFuTWV0YSIsIm9wZW4iLCJvcmlnaW5hbEV2ZW50IiwiZW5hYmxlIiwicmVtb3ZlQ2xhc3MiLCJkZWZhdWx0Iiwic3RvcmUiLCJzdG9yYWdlTG9jYXRpb24iLCJkYXRhc2V0IiwiaGVpZ2h0IiwibWVkaWEiLCJjc3MiLCJzZXQiLCJzdHJpbmdpZnkiLCJleHBpcmVzIiwiSW5maW5pdHkiLCJ1cGRhdGVNZWRpYUNvbGxhcHNlU3RhdHVzIiwiaWNvbiIsInBhbmVsIiwic2xpZGVyIiwiaXNDb2xsYXBzZWQiLCJoYXNDbGFzcyIsImNvbGxhcHNlZCIsImRvY3VtZW50Iiwib24iLCJldmVudCIsInJlYWR5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/page/media.js\n\n}");
/***/ }),
/***/ "./app/pages/page/move.js":
/*!********************************!*\
!*** ./app/pages/page/move.js ***!
\********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-page-move] button[name=\"task\"][value=\"save\"]', function (event) {\n /* let route = $('form#blueprints:first select[name=\"data[route]\"]');\n let moveTo = $('[data-page-move] select').val();\n if (route.length && route.val() !== moveTo) {\n let selectize = route.data('selectize');\n route.val(moveTo);\n if (selectize) selectize.setValue(moveTo);\n }*/\n\n var modal = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).closest('[data-remodal-id]');\n var parents = modal.data('parents') || {};\n var finder = parents.finder;\n if (!parents || !finder) {\n return true;\n }\n var field = parents.field;\n var parentLabel = parents.parentLabel;\n var parentName = parents.parentName;\n var selection = finder.findLastActive().item[0];\n var value = selection._item[finder.config.valueKey];\n var name = selection._item[finder.config.labelKey];\n field.val(value);\n parentLabel.text(value);\n parentName.text(name);\n finder.config.defaultPath = value;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').css({\n backgroundColor: 'rgba(255, 255, 255, 0.1)',\n position: 'fixed',\n top: 0,\n left: 0,\n width: '100vw',\n height: '100vh',\n zIndex: 15000\n }).appendTo(jquery__WEBPACK_IMPORTED_MODULE_0___default()('body'));\n});\n\n/*\n$(document).on('click', '[data-remodal-id=\"parents\"] [data-parents-select]', (event) => {\n const modal = $(event.currentTarget).closest('[data-remodal-id]');\n const parents = modal.data('parents');\n const finder = parents.finder;\n const field = parents.field;\n const parentLabel = parents.parentLabel;\n const parentName = parents.parentName;\n const selection = finder.findLastActive().item[0];\n const value = selection._item[finder.config.valueKey];\n const name = selection._item[finder.config.labelKey];\n\n field.val(value);\n parentLabel.text(value);\n parentName.text(name);\n finder.config.defaultPath = value;\n\n const remodal = $.remodal.lookup[$(`[data-remodal-id=\"${modal.data('remodalId')}\"]`).data('remodal')];\n remodal.close();\n});\n*///# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvcGFnZXMvcGFnZS9tb3ZlLmpzIiwibWFwcGluZ3MiOiI7OztBQUF1QjtBQUV2QkEsNkNBQUMsQ0FBQ0MsUUFBUSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsb0RBQW9ELEVBQUUsVUFBQ0MsS0FBSyxFQUFLO0VBQ3JGO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztFQUlJLElBQU1DLEtBQUssR0FBR0osNkNBQUMsQ0FBQ0csS0FBSyxDQUFDRSxhQUFhLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLG1CQUFtQixDQUFDO0VBQ2pFLElBQU1DLE9BQU8sR0FBR0gsS0FBSyxDQUFDSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0VBQzNDLElBQU1DLE1BQU0sR0FBR0YsT0FBTyxDQUFDRSxNQUFNO0VBRTdCLElBQUksQ0FBQ0YsT0FBTyxJQUFJLENBQUNFLE1BQU0sRUFBRTtJQUFFLE9BQU8sSUFBSTtFQUFFO0VBRXhDLElBQU1DLEtBQUssR0FBR0gsT0FBTyxDQUFDRyxLQUFLO0VBQzNCLElBQU1DLFdBQVcsR0FBR0osT0FBTyxDQUFDSSxXQUFXO0VBQ3ZDLElBQU1DLFVBQVUsR0FBR0wsT0FBTyxDQUFDSyxVQUFVO0VBQ3JDLElBQU1DLFNBQVMsR0FBR0osTUFBTSxDQUFDSyxjQUFjLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ2pELElBQU1DLEtBQUssR0FBR0gsU0FBUyxDQUFDSSxLQUFLLENBQUNSLE1BQU0sQ0FBQ1MsTUFBTSxDQUFDQyxRQUFRLENBQUM7RUFDckQsSUFBTUMsSUFBSSxHQUFHUCxTQUFTLENBQUNJLEtBQUssQ0FBQ1IsTUFBTSxDQUFDUyxNQUFNLENBQUNHLFFBQVEsQ0FBQztFQUVwRFgsS0FBSyxDQUFDWSxHQUFHLENBQUNOLEtBQUssQ0FBQztFQUNoQkwsV0FBVyxDQUFDWSxJQUFJLENBQUNQLEtBQUssQ0FBQztFQUN2QkosVUFBVSxDQUFDVyxJQUFJLENBQUNILElBQUksQ0FBQztFQUNyQlgsTUFBTSxDQUFDUyxNQUFNLENBQUNNLFdBQVcsR0FBR1IsS0FBSztFQUVqQ2hCLDZDQUFDLENBQUMsU0FBUyxDQUFDLENBQUN5QixHQUFHLENBQUM7SUFDYkMsZUFBZSxFQUFFLDBCQUEwQjtJQUMzQ0MsUUFBUSxFQUFFLE9BQU87SUFDakJDLEdBQUcsRUFBRSxDQUFDO0lBQ05DLElBQUksRUFBRSxDQUFDO0lBQ1BDLEtBQUssRUFBRSxPQUFPO0lBQ2RDLE1BQU0sRUFBRSxPQUFPO0lBQ2ZDLE1BQU0sRUFBRTtFQUNaLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUNqQyw2Q0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FBQzs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL3BhZ2UvbW92ZS5qcz8yMDVmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1wYWdlLW1vdmVdIGJ1dHRvbltuYW1lPVwidGFza1wiXVt2YWx1ZT1cInNhdmVcIl0nLCAoZXZlbnQpID0+IHtcbiAgICAvKiBsZXQgcm91dGUgPSAkKCdmb3JtI2JsdWVwcmludHM6Zmlyc3Qgc2VsZWN0W25hbWU9XCJkYXRhW3JvdXRlXVwiXScpO1xuICAgIGxldCBtb3ZlVG8gPSAkKCdbZGF0YS1wYWdlLW1vdmVdIHNlbGVjdCcpLnZhbCgpO1xuXG4gICAgaWYgKHJvdXRlLmxlbmd0aCAmJiByb3V0ZS52YWwoKSAhPT0gbW92ZVRvKSB7XG4gICAgICAgIGxldCBzZWxlY3RpemUgPSByb3V0ZS5kYXRhKCdzZWxlY3RpemUnKTtcbiAgICAgICAgcm91dGUudmFsKG1vdmVUbyk7XG5cbiAgICAgICAgaWYgKHNlbGVjdGl6ZSkgc2VsZWN0aXplLnNldFZhbHVlKG1vdmVUbyk7XG4gICAgfSovXG5cbiAgICBjb25zdCBtb2RhbCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCkuY2xvc2VzdCgnW2RhdGEtcmVtb2RhbC1pZF0nKTtcbiAgICBjb25zdCBwYXJlbnRzID0gbW9kYWwuZGF0YSgncGFyZW50cycpIHx8IHt9O1xuICAgIGNvbnN0IGZpbmRlciA9IHBhcmVudHMuZmluZGVyO1xuXG4gICAgaWYgKCFwYXJlbnRzIHx8ICFmaW5kZXIpIHsgcmV0dXJuIHRydWU7IH1cblxuICAgIGNvbnN0IGZpZWxkID0gcGFyZW50cy5maWVsZDtcbiAgICBjb25zdCBwYXJlbnRMYWJlbCA9IHBhcmVudHMucGFyZW50TGFiZWw7XG4gICAgY29uc3QgcGFyZW50TmFtZSA9IHBhcmVudHMucGFyZW50TmFtZTtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSBmaW5kZXIuZmluZExhc3RBY3RpdmUoKS5pdGVtWzBdO1xuICAgIGNvbnN0IHZhbHVlID0gc2VsZWN0aW9uLl9pdGVtW2ZpbmRlci5jb25maWcudmFsdWVLZXldO1xuICAgIGNvbnN0IG5hbWUgPSBzZWxlY3Rpb24uX2l0ZW1bZmluZGVyLmNvbmZpZy5sYWJlbEtleV07XG5cbiAgICBmaWVsZC52YWwodmFsdWUpO1xuICAgIHBhcmVudExhYmVsLnRleHQodmFsdWUpO1xuICAgIHBhcmVudE5hbWUudGV4dChuYW1lKTtcbiAgICBmaW5kZXIuY29uZmlnLmRlZmF1bHRQYXRoID0gdmFsdWU7XG5cbiAgICAkKCc8ZGl2IC8+JykuY3NzKHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpJyxcbiAgICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgd2lkdGg6ICcxMDB2dycsXG4gICAgICAgIGhlaWdodDogJzEwMHZoJyxcbiAgICAgICAgekluZGV4OiAxNTAwMFxuICAgIH0pLmFwcGVuZFRvKCQoJ2JvZHknKSk7XG59KTtcblxuLypcbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1yZW1vZGFsLWlkPVwicGFyZW50c1wiXSBbZGF0YS1wYXJlbnRzLXNlbGVjdF0nLCAoZXZlbnQpID0+IHtcbiAgICBjb25zdCBtb2RhbCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCkuY2xvc2VzdCgnW2RhdGEtcmVtb2RhbC1pZF0nKTtcbiAgICBjb25zdCBwYXJlbnRzID0gbW9kYWwuZGF0YSgncGFyZW50cycpO1xuICAgIGNvbnN0IGZpbmRlciA9IHBhcmVudHMuZmluZGVyO1xuICAgIGNvbnN0IGZpZWxkID0gcGFyZW50cy5maWVsZDtcbiAgICBjb25zdCBwYXJlbnRMYWJlbCA9IHBhcmVudHMucGFyZW50TGFiZWw7XG4gICAgY29uc3QgcGFyZW50TmFtZSA9IHBhcmVudHMucGFyZW50TmFtZTtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSBmaW5kZXIuZmluZExhc3RBY3RpdmUoKS5pdGVtWzBdO1xuICAgIGNvbnN0IHZhbHVlID0gc2VsZWN0aW9uLl9pdGVtW2ZpbmRlci5jb25maWcudmFsdWVLZXldO1xuICAgIGNvbnN0IG5hbWUgPSBzZWxlY3Rpb24uX2l0ZW1bZmluZGVyLmNvbmZpZy5sYWJlbEtleV07XG5cbiAgICBmaWVsZC52YWwodmFsdWUpO1xuICAgIHBhcmVudExhYmVsLnRleHQodmFsdWUpO1xuICAgIHBhcmVudE5hbWUudGV4dChuYW1lKTtcbiAgICBmaW5kZXIuY29uZmlnLmRlZmF1bHRQYXRoID0gdmFsdWU7XG5cbiAgICBjb25zdCByZW1vZGFsID0gJC5yZW1vZGFsLmxvb2t1cFskKGBbZGF0YS1yZW1vZGFsLWlkPVwiJHttb2RhbC5kYXRhKCdyZW1vZGFsSWQnKX1cIl1gKS5kYXRhKCdyZW1vZGFsJyldO1xuICAgIHJlbW9kYWwuY2xvc2UoKTtcbn0pO1xuKi9cbiJdLCJuYW1lcyI6WyIkIiwiZG9jdW1lbnQiLCJvbiIsImV2ZW50IiwibW9kYWwiLCJjdXJyZW50VGFyZ2V0IiwiY2xvc2VzdCIsInBhcmVudHMiLCJkYXRhIiwiZmluZGVyIiwiZmllbGQiLCJwYXJlbnRMYWJlbCIsInBhcmVudE5hbWUiLCJzZWxlY3Rpb24iLCJmaW5kTGFzdEFjdGl2ZSIsIml0ZW0iLCJ2YWx1ZSIsIl9pdGVtIiwiY29uZmlnIiwidmFsdWVLZXkiLCJuYW1lIiwibGFiZWxLZXkiLCJ2YWwiLCJ0ZXh0IiwiZGVmYXVsdFBhdGgiLCJjc3MiLCJiYWNrZ3JvdW5kQ29sb3IiLCJwb3NpdGlvbiIsInRvcCIsImxlZnQiLCJ3aWR0aCIsImhlaWdodCIsInpJbmRleCIsImFwcGVuZFRvIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/page/move.js\n\n}");
/***/ }),
/***/ "./app/pages/page/multilang.js":
/*!*************************************!*\
!*** ./app/pages/page/multilang.js ***!
\*************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('[name=\"task\"][value=\"saveas\"], [name=\"task\"][value=\"switchlanguage\"]').on('mousedown touchstart', function (event) {\n var fields = ['lang', 'redirect'];\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var form = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(element.attr('form')));\n if (!form.length) {\n return;\n }\n fields.forEach(function (field) {\n var value = element.attr(field);\n if (!value) {\n return;\n }\n var input = form.find(\"[name=\\\"data[\".concat(field, \"]\\\"]\"));\n if (!input.length) {\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"
\"));\n form.append(input);\n }\n input.val(value);\n });\n return true;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvcGFnZXMvcGFnZS9tdWx0aWxhbmcuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQXVCO0FBRXZCQSw2Q0FBQyxDQUFDLHNFQUFzRSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxVQUFDQyxLQUFLLEVBQUs7RUFDNUcsSUFBSUMsTUFBTSxHQUFHLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQztFQUNqQyxJQUFJQyxPQUFPLEdBQUdKLDZDQUFDLENBQUNFLEtBQUssQ0FBQ0csYUFBYSxDQUFDO0VBQ3BDLElBQUlDLElBQUksR0FBR04sNkNBQUMsS0FBQU8sTUFBQSxDQUFLSCxPQUFPLENBQUNJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBRSxDQUFDO0VBRXhDLElBQUksQ0FBQ0YsSUFBSSxDQUFDRyxNQUFNLEVBQUU7SUFBRTtFQUFRO0VBQzVCTixNQUFNLENBQUNPLE9BQU8sQ0FBQyxVQUFDQyxLQUFLLEVBQUs7SUFDdEIsSUFBSUMsS0FBSyxHQUFHUixPQUFPLENBQUNJLElBQUksQ0FBQ0csS0FBSyxDQUFDO0lBQy9CLElBQUksQ0FBQ0MsS0FBSyxFQUFFO01BQUU7SUFBUTtJQUN0QixJQUFJQyxLQUFLLEdBQUdQLElBQUksQ0FBQ1EsSUFBSSxpQkFBQVAsTUFBQSxDQUFnQkksS0FBSyxTQUFLLENBQUM7SUFDaEQsSUFBSSxDQUFDRSxLQUFLLENBQUNKLE1BQU0sRUFBRTtNQUNmSSxLQUFLLEdBQUdiLDZDQUFDLHVDQUFBTyxNQUFBLENBQW9DSSxLQUFLLHNCQUFnQixDQUFDO01BQ25FTCxJQUFJLENBQUNTLE1BQU0sQ0FBQ0YsS0FBSyxDQUFDO0lBQ3RCO0lBRUFBLEtBQUssQ0FBQ0csR0FBRyxDQUFDSixLQUFLLENBQUM7RUFDcEIsQ0FBQyxDQUFDO0VBRUYsT0FBTyxJQUFJO0FBQ2YsQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9wYWdlcy9wYWdlL211bHRpbGFuZy5qcz8wYzAxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbiQoJ1tuYW1lPVwidGFza1wiXVt2YWx1ZT1cInNhdmVhc1wiXSwgW25hbWU9XCJ0YXNrXCJdW3ZhbHVlPVwic3dpdGNobGFuZ3VhZ2VcIl0nKS5vbignbW91c2Vkb3duIHRvdWNoc3RhcnQnLCAoZXZlbnQpID0+IHtcbiAgICBsZXQgZmllbGRzID0gWydsYW5nJywgJ3JlZGlyZWN0J107XG4gICAgbGV0IGVsZW1lbnQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGxldCBmb3JtID0gJChgIyR7ZWxlbWVudC5hdHRyKCdmb3JtJyl9YCk7XG5cbiAgICBpZiAoIWZvcm0ubGVuZ3RoKSB7IHJldHVybjsgfVxuICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICBsZXQgdmFsdWUgPSBlbGVtZW50LmF0dHIoZmllbGQpO1xuICAgICAgICBpZiAoIXZhbHVlKSB7IHJldHVybjsgfVxuICAgICAgICBsZXQgaW5wdXQgPSBmb3JtLmZpbmQoYFtuYW1lPVwiZGF0YVske2ZpZWxkfV1cIl1gKTtcbiAgICAgICAgaWYgKCFpbnB1dC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlucHV0ID0gJChgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiZGF0YVske2ZpZWxkfV1cIiB2YWx1ZT1cIlwiIC8+YCk7XG4gICAgICAgICAgICBmb3JtLmFwcGVuZChpbnB1dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dC52YWwodmFsdWUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRydWU7XG59KTtcbiJdLCJuYW1lcyI6WyIkIiwib24iLCJldmVudCIsImZpZWxkcyIsImVsZW1lbnQiLCJjdXJyZW50VGFyZ2V0IiwiZm9ybSIsImNvbmNhdCIsImF0dHIiLCJsZW5ndGgiLCJmb3JFYWNoIiwiZmllbGQiLCJ2YWx1ZSIsImlucHV0IiwiZmluZCIsImFwcGVuZCIsInZhbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/pages/page/multilang.js\n\n}");
/***/ }),
/***/ "./app/pages/page/unset.js":
/*!*********************************!*\
!*** ./app/pages/page/unset.js ***!
\*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '.dz-unset', function () {\n var file_upload = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).closest('.files-upload');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).closest('.dz-image-preview').remove();\n var unset_image = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).closest('.dz-image-preview').find('[data-dz-name]').text().trim();\n var images = JSON.parse(file_upload.find('input[data-grav-field=\"hidden\"]').val()) || {};\n var image_array = {};\n jquery__WEBPACK_IMPORTED_MODULE_0___default().each(images, function (ind, obj) {\n if (!ind.endsWith(unset_image)) {\n image_array[ind] = obj;\n }\n });\n file_upload.find('input[data-grav-field=\"hidden\"]').val(JSON.stringify(image_array));\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvcGFnZXMvcGFnZS91bnNldC5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBdUI7QUFFdkJBLDZDQUFDLENBQUNDLFFBQVEsQ0FBQyxDQUFDQyxFQUFFLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFXO0VBRTVDLElBQU1DLFdBQVcsR0FBR0gsNkNBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQ0ksT0FBTyxDQUFDLGVBQWUsQ0FBQztFQUNwREosNkNBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQ0ksT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUNDLE1BQU0sQ0FBQyxDQUFDO0VBQzdDLElBQU1DLFdBQVcsR0FBR04sNkNBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQ0ksT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUNHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUMsQ0FBQztFQUM3RixJQUFNQyxNQUFNLEdBQUdDLElBQUksQ0FBQ0MsS0FBSyxDQUFDVCxXQUFXLENBQUNJLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0VBQzFGLElBQUlDLFdBQVcsR0FBRyxDQUFDLENBQUM7RUFFcEJkLGtEQUFNLENBQUNVLE1BQU0sRUFBRSxVQUFTTSxHQUFHLEVBQUVDLEdBQUcsRUFBRTtJQUM5QixJQUFJLENBQUNELEdBQUcsQ0FBQ0UsUUFBUSxDQUFDWixXQUFXLENBQUMsRUFBRTtNQUM1QlEsV0FBVyxDQUFDRSxHQUFHLENBQUMsR0FBR0MsR0FBRztJQUMxQjtFQUNKLENBQUMsQ0FBQztFQUVGZCxXQUFXLENBQUNJLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDTSxHQUFHLENBQUNGLElBQUksQ0FBQ1EsU0FBUyxDQUFDTCxXQUFXLENBQUMsQ0FBQztBQUN4RixDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL3BhZ2UvdW5zZXQuanM/OWZiYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnLmR6LXVuc2V0JywgZnVuY3Rpb24oKSB7XG5cbiAgICBjb25zdCBmaWxlX3VwbG9hZCA9ICQodGhpcykuY2xvc2VzdCgnLmZpbGVzLXVwbG9hZCcpO1xuICAgICQodGhpcykuY2xvc2VzdCgnLmR6LWltYWdlLXByZXZpZXcnKS5yZW1vdmUoKTtcbiAgICBjb25zdCB1bnNldF9pbWFnZSA9ICQodGhpcykuY2xvc2VzdCgnLmR6LWltYWdlLXByZXZpZXcnKS5maW5kKCdbZGF0YS1kei1uYW1lXScpLnRleHQoKS50cmltKCk7XG4gICAgY29uc3QgaW1hZ2VzID0gSlNPTi5wYXJzZShmaWxlX3VwbG9hZC5maW5kKCdpbnB1dFtkYXRhLWdyYXYtZmllbGQ9XCJoaWRkZW5cIl0nKS52YWwoKSkgfHwge307XG4gICAgbGV0IGltYWdlX2FycmF5ID0ge307XG5cbiAgICAkLmVhY2goaW1hZ2VzLCBmdW5jdGlvbihpbmQsIG9iaikge1xuICAgICAgICBpZiAoIWluZC5lbmRzV2l0aCh1bnNldF9pbWFnZSkpIHtcbiAgICAgICAgICAgIGltYWdlX2FycmF5W2luZF0gPSBvYmo7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGZpbGVfdXBsb2FkLmZpbmQoJ2lucHV0W2RhdGEtZ3Jhdi1maWVsZD1cImhpZGRlblwiXScpLnZhbChKU09OLnN0cmluZ2lmeShpbWFnZV9hcnJheSkpO1xufSk7XG4iXSwibmFtZXMiOlsiJCIsImRvY3VtZW50Iiwib24iLCJmaWxlX3VwbG9hZCIsImNsb3Nlc3QiLCJyZW1vdmUiLCJ1bnNldF9pbWFnZSIsImZpbmQiLCJ0ZXh0IiwidHJpbSIsImltYWdlcyIsIkpTT04iLCJwYXJzZSIsInZhbCIsImltYWdlX2FycmF5IiwiZWFjaCIsImluZCIsIm9iaiIsImVuZHNXaXRoIiwic3RyaW5naWZ5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/page/unset.js\n\n}");
/***/ }),
/***/ "./app/pages/tree.js":
/*!***************************!*\
!*** ./app/pages/tree.js ***!
\***************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Instance: () => (/* binding */ Instance),\n/* harmony export */ \"default\": () => (/* binding */ PagesTree)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_storage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/storage */ \"./app/utils/storage.js\");\n/* harmony import */ var _utils_storage__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_utils_storage__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\nvar sessionKey = 'grav:admin:pages';\nif (!sessionStorage.getItem(sessionKey)) {\n sessionStorage.setItem(sessionKey, '{}');\n}\nvar PagesTree = /*#__PURE__*/function () {\n function PagesTree(query) {\n var _this = this;\n var elements = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n _classCallCheck(this, PagesTree);\n this.query = query;\n this.elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elements !== undefined ? elements : this.query);\n this.session = JSON.parse(sessionStorage.getItem(sessionKey) || '{}');\n if (!this.elements.length) {\n return;\n }\n this.restore();\n this.elements.find('.page-icon').on('click', function (event) {\n return _this.toggle(event.target);\n });\n this.elements.data('tree_init', 1);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-page-toggleall]').on('click', function (event) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).closest('[data-page-toggleall]');\n var action = element.data('page-toggleall');\n _this[action]();\n });\n }\n return _createClass(PagesTree, [{\n key: \"reload\",\n value: function reload() {\n var elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.query).filter(function (index, element) {\n return !jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).data('tree_init');\n });\n if (!elements.length) {\n return;\n }\n this.constructor(this.query, elements);\n }\n }, {\n key: \"toggle\",\n value: function toggle(elements) {\n var _this2 = this;\n var dontStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (typeof elements === 'string') {\n elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-nav-id=\\\"\".concat(elements, \"\\\"]\")).find('[data-toggle=\"children\"]');\n }\n elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elements || this.elements);\n elements.each(function (index, element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n var state = _this2.getState(element.closest('[data-toggle=\"children\"]'));\n _this2[state.isOpen ? 'collapse' : 'expand'](state.id, dontStore);\n });\n }\n }, {\n key: \"collapse\",\n value: function collapse(elements) {\n var _this3 = this;\n var dontStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (typeof elements === 'string') {\n elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-nav-id=\\\"\".concat(elements, \"\\\"]\")).find('[data-toggle=\"children\"]');\n }\n elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elements || this.elements);\n elements.each(function (index, element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n var state = _this3.getState(element);\n if (state.isOpen) {\n state.children.hide();\n state.icon.removeClass('children-open').addClass('children-closed');\n if (!dontStore) {\n delete _this3.session[state.id];\n }\n }\n });\n if (!dontStore) {\n this.save();\n }\n }\n }, {\n key: \"expand\",\n value: function expand(elements) {\n var _this4 = this;\n var dontStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (typeof elements === 'string') {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-nav-id=\\\"\".concat(elements, \"\\\"]\"));\n var parents = element.parents('[data-nav-id]');\n\n // loop back through parents, we don't want to expand an hidden child\n if (parents.length) {\n parents = parents.find('[data-toggle=\"children\"]:first');\n parents = parents.add(element.find('[data-toggle=\"children\"]:first'));\n return this.expand(parents, dontStore);\n }\n elements = element.find('[data-toggle=\"children\"]:first');\n }\n elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elements || this.elements);\n elements.each(function (index, element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n var state = _this4.getState(element);\n if (!state.isOpen) {\n state.children.show();\n state.icon.removeClass('children-closed').addClass('children-open');\n if (!dontStore) {\n _this4.session[state.id] = 1;\n }\n }\n });\n if (!dontStore) {\n this.save();\n }\n }\n }, {\n key: \"restore\",\n value: function restore() {\n var _this5 = this;\n this.collapse(null, true);\n Object.keys(this.session).forEach(function (key) {\n _this5.expand(key, 'no-store');\n });\n }\n }, {\n key: \"save\",\n value: function save() {\n return sessionStorage.setItem(sessionKey, JSON.stringify(this.session));\n }\n }, {\n key: \"getState\",\n value: function getState(element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n return {\n id: element.closest('[data-nav-id]').data('nav-id'),\n children: element.closest('li.page-item').find('ul:first'),\n icon: element.find('.page-icon'),\n get isOpen() {\n return this.icon.hasClass('children-open');\n }\n };\n }\n }]);\n}();\n\nvar Instance = new PagesTree('[data-toggle=\"children\"]');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvcGFnZXMvdHJlZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBdUI7QUFDRztBQUUxQixJQUFNQyxVQUFVLEdBQUcsa0JBQWtCO0FBRXJDLElBQUksQ0FBQ0MsY0FBYyxDQUFDQyxPQUFPLENBQUNGLFVBQVUsQ0FBQyxFQUFFO0VBQ3JDQyxjQUFjLENBQUNFLE9BQU8sQ0FBQ0gsVUFBVSxFQUFFLElBQUksQ0FBQztBQUM1QztBQUFDLElBRW9CSSxTQUFTO0VBQzFCLFNBQUFBLFVBQVlDLEtBQUssRUFBd0I7SUFBQSxJQUFBQyxLQUFBO0lBQUEsSUFBdEJDLFFBQVEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUdFLFNBQVM7SUFBQUMsZUFBQSxPQUFBUCxTQUFBO0lBQ25DLElBQUksQ0FBQ0MsS0FBSyxHQUFHQSxLQUFLO0lBQ2xCLElBQUksQ0FBQ0UsUUFBUSxHQUFHUiw2Q0FBQyxDQUFDUSxRQUFRLEtBQUtHLFNBQVMsR0FBR0gsUUFBUSxHQUFHLElBQUksQ0FBQ0YsS0FBSyxDQUFDO0lBQ2pFLElBQUksQ0FBQ08sT0FBTyxHQUFHQyxJQUFJLENBQUNDLEtBQUssQ0FBQ2IsY0FBYyxDQUFDQyxPQUFPLENBQUNGLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUVyRSxJQUFJLENBQUMsSUFBSSxDQUFDTyxRQUFRLENBQUNFLE1BQU0sRUFBRTtNQUFFO0lBQVE7SUFFckMsSUFBSSxDQUFDTSxPQUFPLENBQUMsQ0FBQztJQUVkLElBQUksQ0FBQ1IsUUFBUSxDQUFDUyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBQ0MsS0FBSztNQUFBLE9BQUtaLEtBQUksQ0FBQ2EsTUFBTSxDQUFDRCxLQUFLLENBQUNFLE1BQU0sQ0FBQztJQUFBLEVBQUM7SUFDbEYsSUFBSSxDQUFDYixRQUFRLENBQUNjLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBRWxDdEIsNkNBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDa0IsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFDQyxLQUFLLEVBQUs7TUFDOUMsSUFBSUksT0FBTyxHQUFHdkIsNkNBQUMsQ0FBQ21CLEtBQUssQ0FBQ0UsTUFBTSxDQUFDLENBQUNHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQztNQUM5RCxJQUFJQyxNQUFNLEdBQUdGLE9BQU8sQ0FBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDO01BRTNDZixLQUFJLENBQUNrQixNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztFQUNOO0VBQUMsT0FBQUMsWUFBQSxDQUFBckIsU0FBQTtJQUFBc0IsR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBQUMsTUFBTUEsQ0FBQSxFQUFHO01BQ0wsSUFBTXJCLFFBQVEsR0FBR1IsNkNBQUMsQ0FBQyxJQUFJLENBQUNNLEtBQUssQ0FBQyxDQUFDd0IsTUFBTSxDQUFDLFVBQUNDLEtBQUssRUFBRVIsT0FBTztRQUFBLE9BQUssQ0FBQ3ZCLDZDQUFDLENBQUN1QixPQUFPLENBQUMsQ0FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQztNQUFBLEVBQUM7TUFDeEYsSUFBSSxDQUFDZCxRQUFRLENBQUNFLE1BQU0sRUFBRTtRQUFFO01BQVE7TUFDaEMsSUFBSSxDQUFDc0IsV0FBVyxDQUFDLElBQUksQ0FBQzFCLEtBQUssRUFBRUUsUUFBUSxDQUFDO0lBQzFDO0VBQUM7SUFBQW1CLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUFSLE1BQU1BLENBQUNaLFFBQVEsRUFBcUI7TUFBQSxJQUFBeUIsTUFBQTtNQUFBLElBQW5CQyxTQUFTLEdBQUF6QixTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxLQUFLO01BQzlCLElBQUksT0FBT0QsUUFBUSxLQUFLLFFBQVEsRUFBRTtRQUM5QkEsUUFBUSxHQUFHUiw2Q0FBQyxtQkFBQW1DLE1BQUEsQ0FBa0IzQixRQUFRLFFBQUksQ0FBQyxDQUFDUyxJQUFJLENBQUMsMEJBQTBCLENBQUM7TUFDaEY7TUFFQVQsUUFBUSxHQUFHUiw2Q0FBQyxDQUFDUSxRQUFRLElBQUksSUFBSSxDQUFDQSxRQUFRLENBQUM7TUFDdkNBLFFBQVEsQ0FBQzRCLElBQUksQ0FBQyxVQUFDTCxLQUFLLEVBQUVSLE9BQU8sRUFBSztRQUM5QkEsT0FBTyxHQUFHdkIsNkNBQUMsQ0FBQ3VCLE9BQU8sQ0FBQztRQUNwQixJQUFJYyxLQUFLLEdBQUdKLE1BQUksQ0FBQ0ssUUFBUSxDQUFDZixPQUFPLENBQUNDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3RFUyxNQUFJLENBQUNJLEtBQUssQ0FBQ0UsTUFBTSxHQUFHLFVBQVUsR0FBRyxRQUFRLENBQUMsQ0FBQ0YsS0FBSyxDQUFDRyxFQUFFLEVBQUVOLFNBQVMsQ0FBQztNQUNuRSxDQUFDLENBQUM7SUFDTjtFQUFDO0lBQUFQLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUFhLFFBQVFBLENBQUNqQyxRQUFRLEVBQXFCO01BQUEsSUFBQWtDLE1BQUE7TUFBQSxJQUFuQlIsU0FBUyxHQUFBekIsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsS0FBSztNQUNoQyxJQUFJLE9BQU9ELFFBQVEsS0FBSyxRQUFRLEVBQUU7UUFDOUJBLFFBQVEsR0FBR1IsNkNBQUMsbUJBQUFtQyxNQUFBLENBQWtCM0IsUUFBUSxRQUFJLENBQUMsQ0FBQ1MsSUFBSSxDQUFDLDBCQUEwQixDQUFDO01BQ2hGO01BRUFULFFBQVEsR0FBR1IsNkNBQUMsQ0FBQ1EsUUFBUSxJQUFJLElBQUksQ0FBQ0EsUUFBUSxDQUFDO01BQ3ZDQSxRQUFRLENBQUM0QixJQUFJLENBQUMsVUFBQ0wsS0FBSyxFQUFFUixPQUFPLEVBQUs7UUFDOUJBLE9BQU8sR0FBR3ZCLDZDQUFDLENBQUN1QixPQUFPLENBQUM7UUFDcEIsSUFBSWMsS0FBSyxHQUFHSyxNQUFJLENBQUNKLFFBQVEsQ0FBQ2YsT0FBTyxDQUFDO1FBRWxDLElBQUljLEtBQUssQ0FBQ0UsTUFBTSxFQUFFO1VBQ2RGLEtBQUssQ0FBQ00sUUFBUSxDQUFDQyxJQUFJLENBQUMsQ0FBQztVQUNyQlAsS0FBSyxDQUFDUSxJQUFJLENBQUNDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1VBQ25FLElBQUksQ0FBQ2IsU0FBUyxFQUFFO1lBQUUsT0FBT1EsTUFBSSxDQUFDN0IsT0FBTyxDQUFDd0IsS0FBSyxDQUFDRyxFQUFFLENBQUM7VUFBRTtRQUNyRDtNQUNKLENBQUMsQ0FBQztNQUVGLElBQUksQ0FBQ04sU0FBUyxFQUFFO1FBQUUsSUFBSSxDQUFDYyxJQUFJLENBQUMsQ0FBQztNQUFFO0lBQ25DO0VBQUM7SUFBQXJCLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUFxQixNQUFNQSxDQUFDekMsUUFBUSxFQUFxQjtNQUFBLElBQUEwQyxNQUFBO01BQUEsSUFBbkJoQixTQUFTLEdBQUF6QixTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxLQUFLO01BQzlCLElBQUksT0FBT0QsUUFBUSxLQUFLLFFBQVEsRUFBRTtRQUM5QixJQUFJZSxPQUFPLEdBQUd2Qiw2Q0FBQyxtQkFBQW1DLE1BQUEsQ0FBa0IzQixRQUFRLFFBQUksQ0FBQztRQUM5QyxJQUFJMkMsT0FBTyxHQUFHNUIsT0FBTyxDQUFDNEIsT0FBTyxDQUFDLGVBQWUsQ0FBQzs7UUFFOUM7UUFDQSxJQUFJQSxPQUFPLENBQUN6QyxNQUFNLEVBQUU7VUFDaEJ5QyxPQUFPLEdBQUdBLE9BQU8sQ0FBQ2xDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQztVQUN4RGtDLE9BQU8sR0FBR0EsT0FBTyxDQUFDQyxHQUFHLENBQUM3QixPQUFPLENBQUNOLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1VBQ3JFLE9BQU8sSUFBSSxDQUFDZ0MsTUFBTSxDQUFDRSxPQUFPLEVBQUVqQixTQUFTLENBQUM7UUFDMUM7UUFFQTFCLFFBQVEsR0FBR2UsT0FBTyxDQUFDTixJQUFJLENBQUMsZ0NBQWdDLENBQUM7TUFDN0Q7TUFFQVQsUUFBUSxHQUFHUiw2Q0FBQyxDQUFDUSxRQUFRLElBQUksSUFBSSxDQUFDQSxRQUFRLENBQUM7TUFDdkNBLFFBQVEsQ0FBQzRCLElBQUksQ0FBQyxVQUFDTCxLQUFLLEVBQUVSLE9BQU8sRUFBSztRQUM5QkEsT0FBTyxHQUFHdkIsNkNBQUMsQ0FBQ3VCLE9BQU8sQ0FBQztRQUNwQixJQUFJYyxLQUFLLEdBQUdhLE1BQUksQ0FBQ1osUUFBUSxDQUFDZixPQUFPLENBQUM7UUFFbEMsSUFBSSxDQUFDYyxLQUFLLENBQUNFLE1BQU0sRUFBRTtVQUNmRixLQUFLLENBQUNNLFFBQVEsQ0FBQ1UsSUFBSSxDQUFDLENBQUM7VUFDckJoQixLQUFLLENBQUNRLElBQUksQ0FBQ0MsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUNDLFFBQVEsQ0FBQyxlQUFlLENBQUM7VUFDbkUsSUFBSSxDQUFDYixTQUFTLEVBQUU7WUFBRWdCLE1BQUksQ0FBQ3JDLE9BQU8sQ0FBQ3dCLEtBQUssQ0FBQ0csRUFBRSxDQUFDLEdBQUcsQ0FBQztVQUFFO1FBQ2xEO01BQ0osQ0FBQyxDQUFDO01BRUYsSUFBSSxDQUFDTixTQUFTLEVBQUU7UUFBRSxJQUFJLENBQUNjLElBQUksQ0FBQyxDQUFDO01BQUU7SUFDbkM7RUFBQztJQUFBckIsR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBQVosT0FBT0EsQ0FBQSxFQUFHO01BQUEsSUFBQXNDLE1BQUE7TUFDTixJQUFJLENBQUNiLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO01BRXpCYyxNQUFNLENBQUNDLElBQUksQ0FBQyxJQUFJLENBQUMzQyxPQUFPLENBQUMsQ0FBQzRDLE9BQU8sQ0FBQyxVQUFDOUIsR0FBRyxFQUFLO1FBQ3ZDMkIsTUFBSSxDQUFDTCxNQUFNLENBQUN0QixHQUFHLEVBQUUsVUFBVSxDQUFDO01BQ2hDLENBQUMsQ0FBQztJQUNOO0VBQUM7SUFBQUEsR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBQW9CLElBQUlBLENBQUEsRUFBRztNQUNILE9BQU85QyxjQUFjLENBQUNFLE9BQU8sQ0FBQ0gsVUFBVSxFQUFFYSxJQUFJLENBQUM0QyxTQUFTLENBQUMsSUFBSSxDQUFDN0MsT0FBTyxDQUFDLENBQUM7SUFDM0U7RUFBQztJQUFBYyxHQUFBO0lBQUFDLEtBQUEsRUFFRCxTQUFBVSxRQUFRQSxDQUFDZixPQUFPLEVBQUU7TUFDZEEsT0FBTyxHQUFHdkIsNkNBQUMsQ0FBQ3VCLE9BQU8sQ0FBQztNQUVwQixPQUFPO1FBQ0hpQixFQUFFLEVBQUVqQixPQUFPLENBQUNDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNuRHFCLFFBQVEsRUFBRXBCLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzFENEIsSUFBSSxFQUFFdEIsT0FBTyxDQUFDTixJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ2hDLElBQUlzQixNQUFNQSxDQUFBLEVBQUc7VUFBRSxPQUFPLElBQUksQ0FBQ00sSUFBSSxDQUFDYyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQUU7TUFDL0QsQ0FBQztJQUNMO0VBQUM7QUFBQTtBQS9HeUI7QUFrSDlCLElBQUlFLFFBQVEsR0FBRyxJQUFJeEQsU0FBUyxDQUFDLDBCQUEwQixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9wYWdlcy90cmVlLmpzPzFhMzUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCAnLi4vdXRpbHMvc3RvcmFnZSc7XG5cbmNvbnN0IHNlc3Npb25LZXkgPSAnZ3JhdjphZG1pbjpwYWdlcyc7XG5cbmlmICghc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShzZXNzaW9uS2V5KSkge1xuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oc2Vzc2lvbktleSwgJ3t9Jyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhZ2VzVHJlZSB7XG4gICAgY29uc3RydWN0b3IocXVlcnksIGVsZW1lbnRzID0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICAgICAgdGhpcy5lbGVtZW50cyA9ICQoZWxlbWVudHMgIT09IHVuZGVmaW5lZCA/IGVsZW1lbnRzIDogdGhpcy5xdWVyeSk7XG4gICAgICAgIHRoaXMuc2Vzc2lvbiA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShzZXNzaW9uS2V5KSB8fCAne30nKTtcblxuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudHMubGVuZ3RoKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMucmVzdG9yZSgpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudHMuZmluZCgnLnBhZ2UtaWNvbicpLm9uKCdjbGljaycsIChldmVudCkgPT4gdGhpcy50b2dnbGUoZXZlbnQudGFyZ2V0KSk7XG4gICAgICAgIHRoaXMuZWxlbWVudHMuZGF0YSgndHJlZV9pbml0JywgMSk7XG5cbiAgICAgICAgJCgnW2RhdGEtcGFnZS10b2dnbGVhbGxdJykub24oJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBsZXQgZWxlbWVudCA9ICQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KCdbZGF0YS1wYWdlLXRvZ2dsZWFsbF0nKTtcbiAgICAgICAgICAgIGxldCBhY3Rpb24gPSBlbGVtZW50LmRhdGEoJ3BhZ2UtdG9nZ2xlYWxsJyk7XG5cbiAgICAgICAgICAgIHRoaXNbYWN0aW9uXSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWxvYWQoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gJCh0aGlzLnF1ZXJ5KS5maWx0ZXIoKGluZGV4LCBlbGVtZW50KSA9PiAhJChlbGVtZW50KS5kYXRhKCd0cmVlX2luaXQnKSk7XG4gICAgICAgIGlmICghZWxlbWVudHMubGVuZ3RoKSB7IHJldHVybjsgfVxuICAgICAgICB0aGlzLmNvbnN0cnVjdG9yKHRoaXMucXVlcnksIGVsZW1lbnRzKTtcbiAgICB9XG5cbiAgICB0b2dnbGUoZWxlbWVudHMsIGRvbnRTdG9yZSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZWxlbWVudHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBlbGVtZW50cyA9ICQoYFtkYXRhLW5hdi1pZD1cIiR7ZWxlbWVudHN9XCJdYCkuZmluZCgnW2RhdGEtdG9nZ2xlPVwiY2hpbGRyZW5cIl0nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVsZW1lbnRzID0gJChlbGVtZW50cyB8fCB0aGlzLmVsZW1lbnRzKTtcbiAgICAgICAgZWxlbWVudHMuZWFjaCgoaW5kZXgsIGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xuICAgICAgICAgICAgbGV0IHN0YXRlID0gdGhpcy5nZXRTdGF0ZShlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLXRvZ2dsZT1cImNoaWxkcmVuXCJdJykpO1xuICAgICAgICAgICAgdGhpc1tzdGF0ZS5pc09wZW4gPyAnY29sbGFwc2UnIDogJ2V4cGFuZCddKHN0YXRlLmlkLCBkb250U3RvcmUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb2xsYXBzZShlbGVtZW50cywgZG9udFN0b3JlID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBlbGVtZW50cyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGVsZW1lbnRzID0gJChgW2RhdGEtbmF2LWlkPVwiJHtlbGVtZW50c31cIl1gKS5maW5kKCdbZGF0YS10b2dnbGU9XCJjaGlsZHJlblwiXScpO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxlbWVudHMgPSAkKGVsZW1lbnRzIHx8IHRoaXMuZWxlbWVudHMpO1xuICAgICAgICBlbGVtZW50cy5lYWNoKChpbmRleCwgZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7XG4gICAgICAgICAgICBsZXQgc3RhdGUgPSB0aGlzLmdldFN0YXRlKGVsZW1lbnQpO1xuXG4gICAgICAgICAgICBpZiAoc3RhdGUuaXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgc3RhdGUuY2hpbGRyZW4uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHN0YXRlLmljb24ucmVtb3ZlQ2xhc3MoJ2NoaWxkcmVuLW9wZW4nKS5hZGRDbGFzcygnY2hpbGRyZW4tY2xvc2VkJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFkb250U3RvcmUpIHsgZGVsZXRlIHRoaXMuc2Vzc2lvbltzdGF0ZS5pZF07IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFkb250U3RvcmUpIHsgdGhpcy5zYXZlKCk7IH1cbiAgICB9XG5cbiAgICBleHBhbmQoZWxlbWVudHMsIGRvbnRTdG9yZSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZWxlbWVudHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBsZXQgZWxlbWVudCA9ICQoYFtkYXRhLW5hdi1pZD1cIiR7ZWxlbWVudHN9XCJdYCk7XG4gICAgICAgICAgICBsZXQgcGFyZW50cyA9IGVsZW1lbnQucGFyZW50cygnW2RhdGEtbmF2LWlkXScpO1xuXG4gICAgICAgICAgICAvLyBsb29wIGJhY2sgdGhyb3VnaCBwYXJlbnRzLCB3ZSBkb24ndCB3YW50IHRvIGV4cGFuZCBhbiBoaWRkZW4gY2hpbGRcbiAgICAgICAgICAgIGlmIChwYXJlbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHBhcmVudHMgPSBwYXJlbnRzLmZpbmQoJ1tkYXRhLXRvZ2dsZT1cImNoaWxkcmVuXCJdOmZpcnN0Jyk7XG4gICAgICAgICAgICAgICAgcGFyZW50cyA9IHBhcmVudHMuYWRkKGVsZW1lbnQuZmluZCgnW2RhdGEtdG9nZ2xlPVwiY2hpbGRyZW5cIl06Zmlyc3QnKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXhwYW5kKHBhcmVudHMsIGRvbnRTdG9yZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGVsZW1lbnRzID0gZWxlbWVudC5maW5kKCdbZGF0YS10b2dnbGU9XCJjaGlsZHJlblwiXTpmaXJzdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxlbWVudHMgPSAkKGVsZW1lbnRzIHx8IHRoaXMuZWxlbWVudHMpO1xuICAgICAgICBlbGVtZW50cy5lYWNoKChpbmRleCwgZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7XG4gICAgICAgICAgICBsZXQgc3RhdGUgPSB0aGlzLmdldFN0YXRlKGVsZW1lbnQpO1xuXG4gICAgICAgICAgICBpZiAoIXN0YXRlLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIHN0YXRlLmNoaWxkcmVuLnNob3coKTtcbiAgICAgICAgICAgICAgICBzdGF0ZS5pY29uLnJlbW92ZUNsYXNzKCdjaGlsZHJlbi1jbG9zZWQnKS5hZGRDbGFzcygnY2hpbGRyZW4tb3BlbicpO1xuICAgICAgICAgICAgICAgIGlmICghZG9udFN0b3JlKSB7IHRoaXMuc2Vzc2lvbltzdGF0ZS5pZF0gPSAxOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghZG9udFN0b3JlKSB7IHRoaXMuc2F2ZSgpOyB9XG4gICAgfVxuXG4gICAgcmVzdG9yZSgpIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZShudWxsLCB0cnVlKTtcblxuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLnNlc3Npb24pLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5leHBhbmQoa2V5LCAnbm8tc3RvcmUnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2F2ZSgpIHtcbiAgICAgICAgcmV0dXJuIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oc2Vzc2lvbktleSwgSlNPTi5zdHJpbmdpZnkodGhpcy5zZXNzaW9uKSk7XG4gICAgfVxuXG4gICAgZ2V0U3RhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50ID0gJChlbGVtZW50KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVsZW1lbnQuY2xvc2VzdCgnW2RhdGEtbmF2LWlkXScpLmRhdGEoJ25hdi1pZCcpLFxuICAgICAgICAgICAgY2hpbGRyZW46IGVsZW1lbnQuY2xvc2VzdCgnbGkucGFnZS1pdGVtJykuZmluZCgndWw6Zmlyc3QnKSxcbiAgICAgICAgICAgIGljb246IGVsZW1lbnQuZmluZCgnLnBhZ2UtaWNvbicpLFxuICAgICAgICAgICAgZ2V0IGlzT3BlbigpIHsgcmV0dXJuIHRoaXMuaWNvbi5oYXNDbGFzcygnY2hpbGRyZW4tb3BlbicpOyB9XG4gICAgICAgIH07XG4gICAgfVxufVxuXG5sZXQgSW5zdGFuY2UgPSBuZXcgUGFnZXNUcmVlKCdbZGF0YS10b2dnbGU9XCJjaGlsZHJlblwiXScpO1xuZXhwb3J0IHsgSW5zdGFuY2UgfTtcbiJdLCJuYW1lcyI6WyIkIiwic2Vzc2lvbktleSIsInNlc3Npb25TdG9yYWdlIiwiZ2V0SXRlbSIsInNldEl0ZW0iLCJQYWdlc1RyZWUiLCJxdWVyeSIsIl90aGlzIiwiZWxlbWVudHMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJfY2xhc3NDYWxsQ2hlY2siLCJzZXNzaW9uIiwiSlNPTiIsInBhcnNlIiwicmVzdG9yZSIsImZpbmQiLCJvbiIsImV2ZW50IiwidG9nZ2xlIiwidGFyZ2V0IiwiZGF0YSIsImVsZW1lbnQiLCJjbG9zZXN0IiwiYWN0aW9uIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJyZWxvYWQiLCJmaWx0ZXIiLCJpbmRleCIsImNvbnN0cnVjdG9yIiwiX3RoaXMyIiwiZG9udFN0b3JlIiwiY29uY2F0IiwiZWFjaCIsInN0YXRlIiwiZ2V0U3RhdGUiLCJpc09wZW4iLCJpZCIsImNvbGxhcHNlIiwiX3RoaXMzIiwiY2hpbGRyZW4iLCJoaWRlIiwiaWNvbiIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCJzYXZlIiwiZXhwYW5kIiwiX3RoaXM0IiwicGFyZW50cyIsImFkZCIsInNob3ciLCJfdGhpczUiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInN0cmluZ2lmeSIsImhhc0NsYXNzIiwiZGVmYXVsdCIsIkluc3RhbmNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/tree.js\n\n}");
/***/ }),
/***/ "./app/plugins/index.js":
/*!******************************!*\
!*** ./app/plugins/index.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_packages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/packages */ \"./app/utils/packages.js\");\n/* harmony import */ var mout_string_camelCase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mout/string/camelCase */ \"./node_modules/mout/string/camelCase.js\");\n/* harmony import */ var mout_string_camelCase__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(mout_string_camelCase__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var debounce__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! debounce */ \"./node_modules/debounce/index.js\");\n/* harmony import */ var debounce__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(debounce__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var mout_string_contains__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! mout/string/contains */ \"./node_modules/mout/string/contains.js\");\n/* harmony import */ var mout_string_contains__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(mout_string_contains__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\n\n// Plugins sliders details\njquery__WEBPACK_IMPORTED_MODULE_0___default()('.gpm-name, .gpm-actions').on('click', function (e) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target);\n var tag = target.prop('tagName').toLowerCase();\n if (tag === 'a' || element.parent('a').length || target.parent('a').length) {\n return true;\n }\n var wrapper = element.siblings('.gpm-details').find('.table-wrapper');\n wrapper.slideToggle({\n duration: 350,\n complete: function complete() {\n var visible = wrapper.is(':visible');\n wrapper.closest('tr').find('.gpm-details-expand i').removeClass('fa-chevron-' + (visible ? 'down' : 'up')).addClass('fa-chevron-' + (visible ? 'up' : 'down'));\n }\n });\n});\n\n// Removing plugin\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"remove-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleRemovingPackage('plugin', event);\n});\n\n// Reinstall plugin\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"reinstall-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleReinstallPackage('plugin', event);\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"remove-dependency-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleRemovingDependency('plugin', event);\n});\n\n// Trigger the add new plugin / update plugin modal\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"start-package-installation\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleGettingPackageDependencies('plugin', event, 'install');\n});\n\n// Trigger the update all plugins modal\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"start-packages-update\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleGettingPackageDependencies('plugin', event);\n});\n\n// Install a plugin dependencies and the plugin\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"install-dependencies-and-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleInstallingDependenciesAndPackage('plugin', event);\n});\n\n// Install a plugin\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"install-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleInstallingPackage('plugin', event);\n});\n\n// Sort plugins/themes dropdown\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('change', '.sort-actions select', function (event) {\n var direction = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.sort-actions .sort-icon .fa').hasClass('fa-sort-amount-desc') ? 'desc' : 'asc';\n var sorting = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).val();\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].Sort[mout_string_camelCase__WEBPACK_IMPORTED_MODULE_2___default()(\"by-\".concat(sorting))](direction);\n});\n\n// Sort plugins/themes icon\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '.sort-icon', function (event) {\n var icon = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).find('.fa');\n var current = icon.hasClass('fa-sort-amount-asc') ? 'asc' : 'desc';\n var opposite = current === 'asc' ? 'desc' : 'asc';\n icon.removeClass(\"fa-sort-amount-\".concat(current)).addClass(\"fa-sort-amount-\".concat(opposite));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.sort-actions select').trigger('change');\n});\n\n// Filter plugin/theme\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('input', '[data-gpm-filter]', debounce__WEBPACK_IMPORTED_MODULE_3___default()(function (event) {\n var value = jquery__WEBPACK_IMPORTED_MODULE_0___default()(jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget)).val();\n var items = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-gpm-plugin], [data-gpm-theme]');\n items.hide().filter(function (index, item) {\n item = jquery__WEBPACK_IMPORTED_MODULE_0___default()(item);\n return mout_string_contains__WEBPACK_IMPORTED_MODULE_4___default()(item.data('gpm-plugin'), value) || mout_string_contains__WEBPACK_IMPORTED_MODULE_4___default()(item.data('gpm-theme'), value) || mout_string_contains__WEBPACK_IMPORTED_MODULE_4___default()(item.data('gpm-name').toLowerCase(), value.toLowerCase());\n }).show();\n}, 250));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FBQztBQUNiLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvcGx1Z2lucy9pbmRleC5qcz9kZTdhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgcGFja2FnZXMgZnJvbSAnLi4vdXRpbHMvcGFja2FnZXMnO1xuaW1wb3J0IGNhbWVsQ2FzZSBmcm9tICdtb3V0L3N0cmluZy9jYW1lbENhc2UnO1xuaW1wb3J0IGRlYm91bmNlIGZyb20gJ2RlYm91bmNlJztcbmltcG9ydCBjb250YWlucyBmcm9tICdtb3V0L3N0cmluZy9jb250YWlucyc7XG5cbi8vIFBsdWdpbnMgc2xpZGVycyBkZXRhaWxzXG4kKCcuZ3BtLW5hbWUsIC5ncG0tYWN0aW9ucycpLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpIHtcbiAgICBsZXQgZWxlbWVudCA9ICQodGhpcyk7XG4gICAgbGV0IHRhcmdldCA9ICQoZS50YXJnZXQpO1xuICAgIGxldCB0YWcgPSB0YXJnZXQucHJvcCgndGFnTmFtZScpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAodGFnID09PSAnYScgfHwgZWxlbWVudC5wYXJlbnQoJ2EnKS5sZW5ndGggfHwgdGFyZ2V0LnBhcmVudCgnYScpLmxlbmd0aCkgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gICAgbGV0IHdyYXBwZXIgPSBlbGVtZW50LnNpYmxpbmdzKCcuZ3BtLWRldGFpbHMnKS5maW5kKCcudGFibGUtd3JhcHBlcicpO1xuXG4gICAgd3JhcHBlci5zbGlkZVRvZ2dsZSh7XG4gICAgICAgIGR1cmF0aW9uOiAzNTAsXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgICBsZXQgdmlzaWJsZSA9IHdyYXBwZXIuaXMoJzp2aXNpYmxlJyk7XG4gICAgICAgICAgICB3cmFwcGVyXG4gICAgICAgICAgICAgICAgLmNsb3Nlc3QoJ3RyJylcbiAgICAgICAgICAgICAgICAuZmluZCgnLmdwbS1kZXRhaWxzLWV4cGFuZCBpJylcbiAgICAgICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ2ZhLWNoZXZyb24tJyArICh2aXNpYmxlID8gJ2Rvd24nIDogJ3VwJykpXG4gICAgICAgICAgICAgICAgLmFkZENsYXNzKCdmYS1jaGV2cm9uLScgKyAodmlzaWJsZSA/ICd1cCcgOiAnZG93bicpKTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG5cbi8vIFJlbW92aW5nIHBsdWdpblxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXBsdWdpbi1hY3Rpb249XCJyZW1vdmUtcGFja2FnZVwiXScsIChldmVudCkgPT4ge1xuICAgIHBhY2thZ2VzLmhhbmRsZVJlbW92aW5nUGFja2FnZSgncGx1Z2luJywgZXZlbnQpO1xufSk7XG5cbi8vIFJlaW5zdGFsbCBwbHVnaW5cbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1wbHVnaW4tYWN0aW9uPVwicmVpbnN0YWxsLXBhY2thZ2VcIl0nLCAoZXZlbnQpID0+IHtcbiAgICBwYWNrYWdlcy5oYW5kbGVSZWluc3RhbGxQYWNrYWdlKCdwbHVnaW4nLCBldmVudCk7XG59KTtcblxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXBsdWdpbi1hY3Rpb249XCJyZW1vdmUtZGVwZW5kZW5jeS1wYWNrYWdlXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgcGFja2FnZXMuaGFuZGxlUmVtb3ZpbmdEZXBlbmRlbmN5KCdwbHVnaW4nLCBldmVudCk7XG59KTtcblxuLy8gVHJpZ2dlciB0aGUgYWRkIG5ldyBwbHVnaW4gLyB1cGRhdGUgcGx1Z2luIG1vZGFsXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtcGx1Z2luLWFjdGlvbj1cInN0YXJ0LXBhY2thZ2UtaW5zdGFsbGF0aW9uXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgcGFja2FnZXMuaGFuZGxlR2V0dGluZ1BhY2thZ2VEZXBlbmRlbmNpZXMoJ3BsdWdpbicsIGV2ZW50LCAnaW5zdGFsbCcpO1xufSk7XG5cbi8vIFRyaWdnZXIgdGhlIHVwZGF0ZSBhbGwgcGx1Z2lucyBtb2RhbFxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXBsdWdpbi1hY3Rpb249XCJzdGFydC1wYWNrYWdlcy11cGRhdGVcIl0nLCAoZXZlbnQpID0+IHtcbiAgICBwYWNrYWdlcy5oYW5kbGVHZXR0aW5nUGFja2FnZURlcGVuZGVuY2llcygncGx1Z2luJywgZXZlbnQpO1xufSk7XG5cbi8vIEluc3RhbGwgYSBwbHVnaW4gZGVwZW5kZW5jaWVzIGFuZCB0aGUgcGx1Z2luXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtcGx1Z2luLWFjdGlvbj1cImluc3RhbGwtZGVwZW5kZW5jaWVzLWFuZC1wYWNrYWdlXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgcGFja2FnZXMuaGFuZGxlSW5zdGFsbGluZ0RlcGVuZGVuY2llc0FuZFBhY2thZ2UoJ3BsdWdpbicsIGV2ZW50KTtcbn0pO1xuXG4vLyBJbnN0YWxsIGEgcGx1Z2luXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtcGx1Z2luLWFjdGlvbj1cImluc3RhbGwtcGFja2FnZVwiXScsIChldmVudCkgPT4ge1xuICAgIHBhY2thZ2VzLmhhbmRsZUluc3RhbGxpbmdQYWNrYWdlKCdwbHVnaW4nLCBldmVudCk7XG59KTtcblxuLy8gU29ydCBwbHVnaW5zL3RoZW1lcyBkcm9wZG93blxuJChkb2N1bWVudCkub24oJ2NoYW5nZScsICcuc29ydC1hY3Rpb25zIHNlbGVjdCcsIChldmVudCkgPT4ge1xuICAgIGxldCBkaXJlY3Rpb24gPSAkKCcuc29ydC1hY3Rpb25zIC5zb3J0LWljb24gLmZhJykuaGFzQ2xhc3MoJ2ZhLXNvcnQtYW1vdW50LWRlc2MnKSA/ICdkZXNjJyA6ICdhc2MnO1xuICAgIGxldCBzb3J0aW5nID0gJChldmVudC5jdXJyZW50VGFyZ2V0KS52YWwoKTtcblxuICAgIHBhY2thZ2VzLlNvcnRbY2FtZWxDYXNlKGBieS0ke3NvcnRpbmd9YCldKGRpcmVjdGlvbik7XG59KTtcblxuLy8gU29ydCBwbHVnaW5zL3RoZW1lcyBpY29uXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnLnNvcnQtaWNvbicsIChldmVudCkgPT4ge1xuICAgIGxldCBpY29uID0gJChldmVudC5jdXJyZW50VGFyZ2V0KS5maW5kKCcuZmEnKTtcbiAgICBsZXQgY3VycmVudCA9IGljb24uaGFzQ2xhc3MoJ2ZhLXNvcnQtYW1vdW50LWFzYycpID8gJ2FzYycgOiAnZGVzYyc7XG4gICAgbGV0IG9wcG9zaXRlID0gY3VycmVudCA9PT0gJ2FzYycgPyAnZGVzYycgOiAnYXNjJztcblxuICAgIGljb24ucmVtb3ZlQ2xhc3MoYGZhLXNvcnQtYW1vdW50LSR7Y3VycmVudH1gKS5hZGRDbGFzcyhgZmEtc29ydC1hbW91bnQtJHtvcHBvc2l0ZX1gKTtcbiAgICAkKCcuc29ydC1hY3Rpb25zIHNlbGVjdCcpLnRyaWdnZXIoJ2NoYW5nZScpO1xufSk7XG5cbi8vIEZpbHRlciBwbHVnaW4vdGhlbWVcbiQoZG9jdW1lbnQpLm9uKCdpbnB1dCcsICdbZGF0YS1ncG0tZmlsdGVyXScsIGRlYm91bmNlKChldmVudCkgPT4ge1xuICAgIGxldCB2YWx1ZSA9ICQoJChldmVudC5jdXJyZW50VGFyZ2V0KSkudmFsKCk7XG4gICAgbGV0IGl0ZW1zID0gJCgnW2RhdGEtZ3BtLXBsdWdpbl0sIFtkYXRhLWdwbS10aGVtZV0nKTtcblxuICAgIGl0ZW1zLmhpZGUoKS5maWx0ZXIoKGluZGV4LCBpdGVtKSA9PiB7XG4gICAgICAgIGl0ZW0gPSAkKGl0ZW0pO1xuXG4gICAgICAgIHJldHVybiBjb250YWlucyhpdGVtLmRhdGEoJ2dwbS1wbHVnaW4nKSwgdmFsdWUpIHx8IGNvbnRhaW5zKGl0ZW0uZGF0YSgnZ3BtLXRoZW1lJyksIHZhbHVlKSB8fCBjb250YWlucyhpdGVtLmRhdGEoJ2dwbS1uYW1lJykudG9Mb3dlckNhc2UoKSwgdmFsdWUudG9Mb3dlckNhc2UoKSk7XG4gICAgfSkuc2hvdygpO1xufSwgMjUwKSk7XG4iXSwibmFtZXMiOlsiJCIsInBhY2thZ2VzIiwiY2FtZWxDYXNlIiwiZGVib3VuY2UiLCJjb250YWlucyIsIm9uIiwiZSIsImVsZW1lbnQiLCJ0YXJnZXQiLCJ0YWciLCJwcm9wIiwidG9Mb3dlckNhc2UiLCJwYXJlbnQiLCJsZW5ndGgiLCJ3cmFwcGVyIiwic2libGluZ3MiLCJmaW5kIiwic2xpZGVUb2dnbGUiLCJkdXJhdGlvbiIsImNvbXBsZXRlIiwidmlzaWJsZSIsImlzIiwiY2xvc2VzdCIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCJkb2N1bWVudCIsImV2ZW50IiwiaGFuZGxlUmVtb3ZpbmdQYWNrYWdlIiwiaGFuZGxlUmVpbnN0YWxsUGFja2FnZSIsImhhbmRsZVJlbW92aW5nRGVwZW5kZW5jeSIsImhhbmRsZUdldHRpbmdQYWNrYWdlRGVwZW5kZW5jaWVzIiwiaGFuZGxlSW5zdGFsbGluZ0RlcGVuZGVuY2llc0FuZFBhY2thZ2UiLCJoYW5kbGVJbnN0YWxsaW5nUGFja2FnZSIsImRpcmVjdGlvbiIsImhhc0NsYXNzIiwic29ydGluZyIsImN1cnJlbnRUYXJnZXQiLCJ2YWwiLCJTb3J0IiwiY29uY2F0IiwiaWNvbiIsImN1cnJlbnQiLCJvcHBvc2l0ZSIsInRyaWdnZXIiLCJ2YWx1ZSIsIml0ZW1zIiwiaGlkZSIsImZpbHRlciIsImluZGV4IiwiaXRlbSIsImRhdGEiLCJzaG93Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/plugins/index.js\n\n}");
/***/ }),
/***/ "./app/themes/index.js":
/*!*****************************!*\
!*** ./app/themes/index.js ***!
\*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_packages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/packages */ \"./app/utils/packages.js\");\n\n\n\n// Themes Switcher Warning\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('mousedown', '[data-remodal-target=\"theme-switch-warn\"]', function (event) {\n var name = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).closest('[data-gpm-theme]').find('.gpm-name a:first').text();\n var remodal = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remodal.theme-switcher');\n remodal.find('strong').text(name);\n remodal.find('.button.continue').attr('href', jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).attr('href'));\n});\n\n// Removing theme\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"remove-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleRemovingPackage('theme', event);\n});\n\n// Reinstall theme\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"reinstall-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleReinstallPackage('theme', event);\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"remove-dependency-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleRemovingDependency('theme', event);\n});\n\n// Opened the add new theme / update theme modal\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"start-package-installation\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleGettingPackageDependencies('theme', event, 'install');\n});\n\n// Trigger the update all themes modal\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"start-packages-update\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleGettingPackageDependencies('theme', event);\n});\n\n// Install a theme dependencies and the theme\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"install-dependencies-and-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleInstallingDependenciesAndPackage('theme', event);\n});\n\n// Install a theme\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"install-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleInstallingPackage('theme', event);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdGhlbWVzL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBdUI7QUFDa0I7O0FBRXpDO0FBQ0FBLDZDQUFDLENBQUNFLFFBQVEsQ0FBQyxDQUFDQyxFQUFFLENBQUMsV0FBVyxFQUFFLDJDQUEyQyxFQUFFLFVBQUNDLEtBQUssRUFBSztFQUNoRixJQUFJQyxJQUFJLEdBQUdMLDZDQUFDLENBQUNJLEtBQUssQ0FBQ0UsTUFBTSxDQUFDLENBQUNDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLENBQUM7RUFDdkYsSUFBSUMsT0FBTyxHQUFHViw2Q0FBQyxDQUFDLHlCQUF5QixDQUFDO0VBRTFDVSxPQUFPLENBQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQ0MsSUFBSSxDQUFDSixJQUFJLENBQUM7RUFDakNLLE9BQU8sQ0FBQ0YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUNHLElBQUksQ0FBQyxNQUFNLEVBQUVYLDZDQUFDLENBQUNJLEtBQUssQ0FBQ0UsTUFBTSxDQUFDLENBQUNLLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMvRSxDQUFDLENBQUM7O0FBRUY7QUFDQVgsNkNBQUMsQ0FBQ0UsUUFBUSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsVUFBQ0MsS0FBSyxFQUFLO0VBQ3ZFSCx1REFBUSxDQUFDVyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUVSLEtBQUssQ0FBQztBQUNsRCxDQUFDLENBQUM7O0FBRUY7QUFDQUosNkNBQUMsQ0FBQ0UsUUFBUSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxPQUFPLEVBQUUseUNBQXlDLEVBQUUsVUFBQ0MsS0FBSyxFQUFLO0VBQzFFSCx1REFBUSxDQUFDWSxzQkFBc0IsQ0FBQyxPQUFPLEVBQUVULEtBQUssQ0FBQztBQUNuRCxDQUFDLENBQUM7QUFFRkosNkNBQUMsQ0FBQ0UsUUFBUSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsaURBQWlELEVBQUUsVUFBQ0MsS0FBSyxFQUFLO0VBQ2xGSCx1REFBUSxDQUFDYSx3QkFBd0IsQ0FBQyxPQUFPLEVBQUVWLEtBQUssQ0FBQztBQUNyRCxDQUFDLENBQUM7O0FBRUY7QUFDQUosNkNBQUMsQ0FBQ0UsUUFBUSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsa0RBQWtELEVBQUUsVUFBQ0MsS0FBSyxFQUFLO0VBQ25GSCx1REFBUSxDQUFDYyxnQ0FBZ0MsQ0FBQyxPQUFPLEVBQUVYLEtBQUssRUFBRSxTQUFTLENBQUM7QUFDeEUsQ0FBQyxDQUFDOztBQUVGO0FBQ0FKLDZDQUFDLENBQUNFLFFBQVEsQ0FBQyxDQUFDQyxFQUFFLENBQUMsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLFVBQUNDLEtBQUssRUFBSztFQUM5RUgsdURBQVEsQ0FBQ2MsZ0NBQWdDLENBQUMsT0FBTyxFQUFFWCxLQUFLLENBQUM7QUFDN0QsQ0FBQyxDQUFDOztBQUVGO0FBQ0FKLDZDQUFDLENBQUNFLFFBQVEsQ0FBQyxDQUFDQyxFQUFFLENBQUMsT0FBTyxFQUFFLHdEQUF3RCxFQUFFLFVBQUNDLEtBQUssRUFBSztFQUN6RkgsdURBQVEsQ0FBQ2Usc0NBQXNDLENBQUMsT0FBTyxFQUFFWixLQUFLLENBQUM7QUFDbkUsQ0FBQyxDQUFDOztBQUVGO0FBQ0FKLDZDQUFDLENBQUNFLFFBQVEsQ0FBQyxDQUFDQyxFQUFFLENBQUMsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLFVBQUNDLEtBQUssRUFBSztFQUN4RUgsdURBQVEsQ0FBQ2dCLHVCQUF1QixDQUFDLE9BQU8sRUFBRWIsS0FBSyxDQUFDO0FBQ3BELENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdGhlbWVzL2luZGV4LmpzPzM0NzQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBwYWNrYWdlcyBmcm9tICcuLi91dGlscy9wYWNrYWdlcyc7XG5cbi8vIFRoZW1lcyBTd2l0Y2hlciBXYXJuaW5nXG4kKGRvY3VtZW50KS5vbignbW91c2Vkb3duJywgJ1tkYXRhLXJlbW9kYWwtdGFyZ2V0PVwidGhlbWUtc3dpdGNoLXdhcm5cIl0nLCAoZXZlbnQpID0+IHtcbiAgICBsZXQgbmFtZSA9ICQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KCdbZGF0YS1ncG0tdGhlbWVdJykuZmluZCgnLmdwbS1uYW1lIGE6Zmlyc3QnKS50ZXh0KCk7XG4gICAgbGV0IHJlbW9kYWwgPSAkKCcucmVtb2RhbC50aGVtZS1zd2l0Y2hlcicpO1xuXG4gICAgcmVtb2RhbC5maW5kKCdzdHJvbmcnKS50ZXh0KG5hbWUpO1xuICAgIHJlbW9kYWwuZmluZCgnLmJ1dHRvbi5jb250aW51ZScpLmF0dHIoJ2hyZWYnLCAkKGV2ZW50LnRhcmdldCkuYXR0cignaHJlZicpKTtcbn0pO1xuXG4vLyBSZW1vdmluZyB0aGVtZVxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXRoZW1lLWFjdGlvbj1cInJlbW92ZS1wYWNrYWdlXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgcGFja2FnZXMuaGFuZGxlUmVtb3ZpbmdQYWNrYWdlKCd0aGVtZScsIGV2ZW50KTtcbn0pO1xuXG4vLyBSZWluc3RhbGwgdGhlbWVcbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS10aGVtZS1hY3Rpb249XCJyZWluc3RhbGwtcGFja2FnZVwiXScsIChldmVudCkgPT4ge1xuICAgIHBhY2thZ2VzLmhhbmRsZVJlaW5zdGFsbFBhY2thZ2UoJ3RoZW1lJywgZXZlbnQpO1xufSk7XG5cbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS10aGVtZS1hY3Rpb249XCJyZW1vdmUtZGVwZW5kZW5jeS1wYWNrYWdlXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgcGFja2FnZXMuaGFuZGxlUmVtb3ZpbmdEZXBlbmRlbmN5KCd0aGVtZScsIGV2ZW50KTtcbn0pO1xuXG4vLyBPcGVuZWQgdGhlIGFkZCBuZXcgdGhlbWUgLyB1cGRhdGUgdGhlbWUgbW9kYWxcbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS10aGVtZS1hY3Rpb249XCJzdGFydC1wYWNrYWdlLWluc3RhbGxhdGlvblwiXScsIChldmVudCkgPT4ge1xuICAgIHBhY2thZ2VzLmhhbmRsZUdldHRpbmdQYWNrYWdlRGVwZW5kZW5jaWVzKCd0aGVtZScsIGV2ZW50LCAnaW5zdGFsbCcpO1xufSk7XG5cbi8vIFRyaWdnZXIgdGhlIHVwZGF0ZSBhbGwgdGhlbWVzIG1vZGFsXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtdGhlbWUtYWN0aW9uPVwic3RhcnQtcGFja2FnZXMtdXBkYXRlXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgcGFja2FnZXMuaGFuZGxlR2V0dGluZ1BhY2thZ2VEZXBlbmRlbmNpZXMoJ3RoZW1lJywgZXZlbnQpO1xufSk7XG5cbi8vIEluc3RhbGwgYSB0aGVtZSBkZXBlbmRlbmNpZXMgYW5kIHRoZSB0aGVtZVxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXRoZW1lLWFjdGlvbj1cImluc3RhbGwtZGVwZW5kZW5jaWVzLWFuZC1wYWNrYWdlXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgcGFja2FnZXMuaGFuZGxlSW5zdGFsbGluZ0RlcGVuZGVuY2llc0FuZFBhY2thZ2UoJ3RoZW1lJywgZXZlbnQpO1xufSk7XG5cbi8vIEluc3RhbGwgYSB0aGVtZVxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXRoZW1lLWFjdGlvbj1cImluc3RhbGwtcGFja2FnZVwiXScsIChldmVudCkgPT4ge1xuICAgIHBhY2thZ2VzLmhhbmRsZUluc3RhbGxpbmdQYWNrYWdlKCd0aGVtZScsIGV2ZW50KTtcbn0pO1xuXG4iXSwibmFtZXMiOlsiJCIsInBhY2thZ2VzIiwiZG9jdW1lbnQiLCJvbiIsImV2ZW50IiwibmFtZSIsInRhcmdldCIsImNsb3Nlc3QiLCJmaW5kIiwidGV4dCIsInJlbW9kYWwiLCJhdHRyIiwiaGFuZGxlUmVtb3ZpbmdQYWNrYWdlIiwiaGFuZGxlUmVpbnN0YWxsUGFja2FnZSIsImhhbmRsZVJlbW92aW5nRGVwZW5kZW5jeSIsImhhbmRsZUdldHRpbmdQYWNrYWdlRGVwZW5kZW5jaWVzIiwiaGFuZGxlSW5zdGFsbGluZ0RlcGVuZGVuY2llc0FuZFBhY2thZ2UiLCJoYW5kbGVJbnN0YWxsaW5nUGFja2FnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/themes/index.js\n\n}");
/***/ }),
/***/ "./app/tools/index.js":
/*!****************************!*\
!*** ./app/tools/index.js ***!
\****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _logs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logs */ "./app/tools/logs.js");
/***/ }),
/***/ "./app/tools/logs.js":
/*!***************************!*\
!*** ./app/tools/logs.js ***!
\***************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mout_queryString__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mout/queryString */ \"./node_modules/mout/queryString.js\");\n/* harmony import */ var mout_queryString__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mout_queryString__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar prepareQuery = function prepareQuery(key, value) {\n return (0,mout_queryString__WEBPACK_IMPORTED_MODULE_1__.setParam)(__webpack_require__.g.location.href, key, value);\n};\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('change', '.logs-content .block-select select[name]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var name = target.attr('name');\n var value = target.val();\n __webpack_require__.g.location.href = prepareQuery(name, value);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdG9vbHMvbG9ncy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF1QjtBQUNxQjtBQUU1QyxJQUFNRSxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBSUMsR0FBRyxFQUFFQyxLQUFLLEVBQUs7RUFDakMsT0FBT0gsMERBQVEsQ0FBQ0kscUJBQU0sQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLEVBQUVKLEdBQUcsRUFBRUMsS0FBSyxDQUFDO0FBQ3JELENBQUM7QUFFREosNkNBQUMsQ0FBQ1EsUUFBUSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsMENBQTBDLEVBQUUsVUFBQ0MsS0FBSyxFQUFLO0VBQzVFLElBQU1DLE1BQU0sR0FBR1gsNkNBQUMsQ0FBQ1UsS0FBSyxDQUFDRSxhQUFhLENBQUM7RUFDckMsSUFBTUMsSUFBSSxHQUFHRixNQUFNLENBQUNHLElBQUksQ0FBQyxNQUFNLENBQUM7RUFDaEMsSUFBTVYsS0FBSyxHQUFHTyxNQUFNLENBQUNJLEdBQUcsQ0FBQyxDQUFDO0VBRTFCVixxQkFBTSxDQUFDQyxRQUFRLENBQUNDLElBQUksR0FBR0wsWUFBWSxDQUFDVyxJQUFJLEVBQUVULEtBQUssQ0FBQztBQUNwRCxDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3Rvb2xzL2xvZ3MuanM/N2M0YyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgc2V0UGFyYW0gfSBmcm9tICdtb3V0L3F1ZXJ5U3RyaW5nJztcblxuY29uc3QgcHJlcGFyZVF1ZXJ5ID0gKGtleSwgdmFsdWUpID0+IHtcbiAgICByZXR1cm4gc2V0UGFyYW0oZ2xvYmFsLmxvY2F0aW9uLmhyZWYsIGtleSwgdmFsdWUpO1xufTtcblxuJChkb2N1bWVudCkub24oJ2NoYW5nZScsICcubG9ncy1jb250ZW50IC5ibG9jay1zZWxlY3Qgc2VsZWN0W25hbWVdJywgKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBjb25zdCBuYW1lID0gdGFyZ2V0LmF0dHIoJ25hbWUnKTtcbiAgICBjb25zdCB2YWx1ZSA9IHRhcmdldC52YWwoKTtcblxuICAgIGdsb2JhbC5sb2NhdGlvbi5ocmVmID0gcHJlcGFyZVF1ZXJ5KG5hbWUsIHZhbHVlKTtcbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJzZXRQYXJhbSIsInByZXBhcmVRdWVyeSIsImtleSIsInZhbHVlIiwiZ2xvYmFsIiwibG9jYXRpb24iLCJocmVmIiwiZG9jdW1lbnQiLCJvbiIsImV2ZW50IiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsIm5hbWUiLCJhdHRyIiwidmFsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/tools/logs.js\n\n}");
/***/ }),
/***/ "./app/updates/channel-switcher.js":
/*!*****************************************!*\
!*** ./app/updates/channel-switcher.js ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n\n\nvar switcher = jquery__WEBPACK_IMPORTED_MODULE_0___default()('input[type=\"radio\"][name=\"channel-switch\"]');\nif (switcher) {\n switcher.on('change', function (event) {\n var radio = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var url = \"\".concat(radio.parent('[data-url]').data('url'));\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(url, {\n method: 'post',\n body: {\n task: 'gpmRelease',\n release: radio.val()\n }\n }, function (response) {\n if (response.reload) {\n __webpack_require__.g.location.reload();\n }\n });\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXBkYXRlcy9jaGFubmVsLXN3aXRjaGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBdUI7QUFDZ0I7QUFFdkMsSUFBTUUsUUFBUSxHQUFHRiw2Q0FBQyxDQUFDLDRDQUE0QyxDQUFDO0FBRWhFLElBQUlFLFFBQVEsRUFBRTtFQUNWQSxRQUFRLENBQUNDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBQ0MsS0FBSyxFQUFLO0lBQzdCLElBQUlDLEtBQUssR0FBR0wsNkNBQUMsQ0FBQ0ksS0FBSyxDQUFDRSxNQUFNLENBQUM7SUFDM0IsSUFBSUMsR0FBRyxNQUFBQyxNQUFBLENBQU1ILEtBQUssQ0FBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUU7SUFFckRULDBEQUFPLENBQUNNLEdBQUcsRUFBRTtNQUNUSSxNQUFNLEVBQUUsTUFBTTtNQUNkQyxJQUFJLEVBQUU7UUFDRkMsSUFBSSxFQUFFLFlBQVk7UUFDbEJDLE9BQU8sRUFBRVQsS0FBSyxDQUFDVSxHQUFHLENBQUM7TUFDdkI7SUFDSixDQUFDLEVBQ0QsVUFBQ0MsUUFBUSxFQUFLO01BQ1YsSUFBSUEsUUFBUSxDQUFDQyxNQUFNLEVBQUU7UUFDakJDLHFCQUFNLENBQUNDLFFBQVEsQ0FBQ0YsTUFBTSxDQUFDLENBQUM7TUFDNUI7SUFDSixDQUFDLENBQUM7RUFDTixDQUFDLENBQUM7QUFDTiIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXBkYXRlcy9jaGFubmVsLXN3aXRjaGVyLmpzPzM5NzMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCByZXF1ZXN0IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QnO1xuXG5jb25zdCBzd2l0Y2hlciA9ICQoJ2lucHV0W3R5cGU9XCJyYWRpb1wiXVtuYW1lPVwiY2hhbm5lbC1zd2l0Y2hcIl0nKTtcblxuaWYgKHN3aXRjaGVyKSB7XG4gICAgc3dpdGNoZXIub24oJ2NoYW5nZScsIChldmVudCkgPT4ge1xuICAgICAgICBsZXQgcmFkaW8gPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGxldCB1cmwgPSBgJHtyYWRpby5wYXJlbnQoJ1tkYXRhLXVybF0nKS5kYXRhKCd1cmwnKX1gO1xuXG4gICAgICAgIHJlcXVlc3QodXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICB0YXNrOiAnZ3BtUmVsZWFzZScsXG4gICAgICAgICAgICAgICAgcmVsZWFzZTogcmFkaW8udmFsKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UucmVsb2FkKSB7XG4gICAgICAgICAgICAgICAgZ2xvYmFsLmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cbiJdLCJuYW1lcyI6WyIkIiwicmVxdWVzdCIsInN3aXRjaGVyIiwib24iLCJldmVudCIsInJhZGlvIiwidGFyZ2V0IiwidXJsIiwiY29uY2F0IiwicGFyZW50IiwiZGF0YSIsIm1ldGhvZCIsImJvZHkiLCJ0YXNrIiwicmVsZWFzZSIsInZhbCIsInJlc3BvbnNlIiwicmVsb2FkIiwiZ2xvYmFsIiwibG9jYXRpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/updates/channel-switcher.js\n\n}");
/***/ }),
/***/ "./app/updates/check.js":
/*!******************************!*\
!*** ./app/updates/check.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_gpm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/gpm */ \"./app/utils/gpm.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_toastr__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/toastr */ \"./app/utils/toastr.js\");\n\n\n\n\n\n// Check for updates trigger\njquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-gpm-checkupdates]').on('click', function () {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n element.find('i').addClass('fa-spin');\n _utils_gpm__WEBPACK_IMPORTED_MODULE_1__.Instance.fetch(function (response) {\n element.find('i').removeClass('fa-spin');\n var payload = response.payload;\n if (!payload) {\n return;\n }\n if (!payload.grav.isUpdatable && !payload.resources.total) {\n _utils_toastr__WEBPACK_IMPORTED_MODULE_3__[\"default\"].success(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.EVERYTHING_UP_TO_DATE);\n } else {\n var grav = payload.grav.isUpdatable ? 'Grav v' + payload.grav.available : '';\n var resources = payload.resources.total ? payload.resources.total + ' ' + grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATES_ARE_AVAILABLE : '';\n if (!resources) {\n grav += ' ' + grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.IS_AVAILABLE_FOR_UPDATE;\n }\n _utils_toastr__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(grav + (grav && resources ? ' ' + grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.AND + ' ' : '') + resources);\n }\n }, true);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXBkYXRlcy9jaGVjay5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXVCO0FBQ3dCO0FBQ0o7QUFDTjs7QUFFckM7QUFDQUEsNkNBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDSyxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVc7RUFDaEQsSUFBSUMsT0FBTyxHQUFHTiw2Q0FBQyxDQUFDLElBQUksQ0FBQztFQUNyQk0sT0FBTyxDQUFDQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUNDLFFBQVEsQ0FBQyxTQUFTLENBQUM7RUFFckNOLGdEQUFHLENBQUNPLEtBQUssQ0FBQyxVQUFDQyxRQUFRLEVBQUs7SUFDcEJKLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDSSxXQUFXLENBQUMsU0FBUyxDQUFDO0lBQ3hDLElBQUlDLE9BQU8sR0FBR0YsUUFBUSxDQUFDRSxPQUFPO0lBRTlCLElBQUksQ0FBQ0EsT0FBTyxFQUFFO01BQUU7SUFBUTtJQUN4QixJQUFJLENBQUNBLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDQyxXQUFXLElBQUksQ0FBQ0YsT0FBTyxDQUFDRyxTQUFTLENBQUNDLEtBQUssRUFBRTtNQUN2RFoscURBQU0sQ0FBQ2EsT0FBTyxDQUFDZCxxREFBWSxDQUFDZSxZQUFZLENBQUNDLHFCQUFxQixDQUFDO0lBQ25FLENBQUMsTUFBTTtNQUNILElBQUlOLElBQUksR0FBR0QsT0FBTyxDQUFDQyxJQUFJLENBQUNDLFdBQVcsR0FBRyxRQUFRLEdBQUdGLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDTyxTQUFTLEdBQUcsRUFBRTtNQUM1RSxJQUFJTCxTQUFTLEdBQUdILE9BQU8sQ0FBQ0csU0FBUyxDQUFDQyxLQUFLLEdBQUdKLE9BQU8sQ0FBQ0csU0FBUyxDQUFDQyxLQUFLLEdBQUcsR0FBRyxHQUFHYixxREFBWSxDQUFDZSxZQUFZLENBQUNHLHFCQUFxQixHQUFHLEVBQUU7TUFFOUgsSUFBSSxDQUFDTixTQUFTLEVBQUU7UUFBRUYsSUFBSSxJQUFJLEdBQUcsR0FBR1YscURBQVksQ0FBQ2UsWUFBWSxDQUFDSSx1QkFBdUI7TUFBRTtNQUNuRmxCLHFEQUFNLENBQUNtQixJQUFJLENBQUNWLElBQUksSUFBSUEsSUFBSSxJQUFJRSxTQUFTLEdBQUcsR0FBRyxHQUFHWixxREFBWSxDQUFDZSxZQUFZLENBQUNNLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUdULFNBQVMsQ0FBQztJQUN4RztFQUNKLENBQUMsRUFBRSxJQUFJLENBQUM7QUFDWixDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3VwZGF0ZXMvY2hlY2suanM/MzQwOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgSW5zdGFuY2UgYXMgZ3BtIH0gZnJvbSAnLi4vdXRpbHMvZ3BtJztcbmltcG9ydCB7IHRyYW5zbGF0aW9ucyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCB0b2FzdHIgZnJvbSAnLi4vdXRpbHMvdG9hc3RyJztcblxuLy8gQ2hlY2sgZm9yIHVwZGF0ZXMgdHJpZ2dlclxuJCgnW2RhdGEtZ3BtLWNoZWNrdXBkYXRlc10nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICBsZXQgZWxlbWVudCA9ICQodGhpcyk7XG4gICAgZWxlbWVudC5maW5kKCdpJykuYWRkQ2xhc3MoJ2ZhLXNwaW4nKTtcblxuICAgIGdwbS5mZXRjaCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgZWxlbWVudC5maW5kKCdpJykucmVtb3ZlQ2xhc3MoJ2ZhLXNwaW4nKTtcbiAgICAgICAgbGV0IHBheWxvYWQgPSByZXNwb25zZS5wYXlsb2FkO1xuXG4gICAgICAgIGlmICghcGF5bG9hZCkgeyByZXR1cm47IH1cbiAgICAgICAgaWYgKCFwYXlsb2FkLmdyYXYuaXNVcGRhdGFibGUgJiYgIXBheWxvYWQucmVzb3VyY2VzLnRvdGFsKSB7XG4gICAgICAgICAgICB0b2FzdHIuc3VjY2Vzcyh0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkVWRVJZVEhJTkdfVVBfVE9fREFURSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgZ3JhdiA9IHBheWxvYWQuZ3Jhdi5pc1VwZGF0YWJsZSA/ICdHcmF2IHYnICsgcGF5bG9hZC5ncmF2LmF2YWlsYWJsZSA6ICcnO1xuICAgICAgICAgICAgdmFyIHJlc291cmNlcyA9IHBheWxvYWQucmVzb3VyY2VzLnRvdGFsID8gcGF5bG9hZC5yZXNvdXJjZXMudG90YWwgKyAnICcgKyB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlVQREFURVNfQVJFX0FWQUlMQUJMRSA6ICcnO1xuXG4gICAgICAgICAgICBpZiAoIXJlc291cmNlcykgeyBncmF2ICs9ICcgJyArIHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uSVNfQVZBSUxBQkxFX0ZPUl9VUERBVEU7IH1cbiAgICAgICAgICAgIHRvYXN0ci5pbmZvKGdyYXYgKyAoZ3JhdiAmJiByZXNvdXJjZXMgPyAnICcgKyB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkFORCArICcgJyA6ICcnKSArIHJlc291cmNlcyk7XG4gICAgICAgIH1cbiAgICB9LCB0cnVlKTtcbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJJbnN0YW5jZSIsImdwbSIsInRyYW5zbGF0aW9ucyIsInRvYXN0ciIsIm9uIiwiZWxlbWVudCIsImZpbmQiLCJhZGRDbGFzcyIsImZldGNoIiwicmVzcG9uc2UiLCJyZW1vdmVDbGFzcyIsInBheWxvYWQiLCJncmF2IiwiaXNVcGRhdGFibGUiLCJyZXNvdXJjZXMiLCJ0b3RhbCIsInN1Y2Nlc3MiLCJQTFVHSU5fQURNSU4iLCJFVkVSWVRISU5HX1VQX1RPX0RBVEUiLCJhdmFpbGFibGUiLCJVUERBVEVTX0FSRV9BVkFJTEFCTEUiLCJJU19BVkFJTEFCTEVfRk9SX1VQREFURSIsImluZm8iLCJBTkQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/updates/check.js\n\n}");
/***/ }),
/***/ "./app/updates/feed.js":
/*!*****************************!*\
!*** ./app/updates/feed.js ***!
\*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\nvar URI = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/ajax.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"getNewsFeed\");\nvar Feed = /*#__PURE__*/function () {\n function Feed() {\n _classCallCheck(this, Feed);\n this.data = null;\n }\n return _createClass(Feed, [{\n key: \"fetch\",\n value: function fetch() {\n var _this = this;\n var refresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(URI, {\n method: 'post',\n body: {\n refresh: refresh\n }\n }, function (response) {\n _this.data = response;\n callback(response);\n });\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n var _refresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var feed = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#news-feed .widget-content');\n if (!feed.length) {\n return;\n }\n var loader = feed.find('.widget-loader');\n loader.find('div').remove();\n loader.find('.fa-warning').removeClass('fa-warning').addClass('fa-refresh fa-spin');\n loader.show();\n feed.find('> ul').hide();\n if (!this.data || this.data.error || _refresh) {\n this.fetch(_refresh, this.updateContent.bind(this));\n } else {\n this.updateContent();\n }\n }\n }, {\n key: \"updateContent\",\n value: function updateContent() {\n var feed = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#news-feed .widget-content');\n if (!feed.length) {\n return;\n }\n var loader = feed.find('.widget-loader').hide();\n var content = feed.find('> ul').empty().show();\n if (this.data.error || this.data.status === 'error') {\n loader.show().find('div').remove();\n loader.find('.fa-refresh').removeClass('fa-refresh fa-spin').addClass('fa-warning');\n loader.append(\"
\".concat(this.data.error ? this.data.error.message : this.data.message || 'Unable to download news feed', \"
\"));\n return;\n }\n if (this.data && this.data.feed_data) {\n content.append(this.data.feed_data);\n }\n }\n }]);\n}();\nvar feed = new Feed();\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {\n return feed.refresh();\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-refresh=\"feed\"]', function (event) {\n event.preventDefault();\n feed.refresh(true);\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (feed);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUMsSUFBSSxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQUVGLGlFQUFlUSxJQUFJIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC91cGRhdGVzL2ZlZWQuanM/ZjE1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5cbmNvbnN0IFVSSSA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vYWpheC5qc29uL3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9Z2V0TmV3c0ZlZWRgO1xuXG5jbGFzcyBGZWVkIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5kYXRhID0gbnVsbDtcbiAgICB9XG5cbiAgICBmZXRjaChyZWZyZXNoID0gZmFsc2UsIGNhbGxiYWNrID0gZnVuY3Rpb24oKSB7fSkge1xuICAgICAgICByZXF1ZXN0KFVSSSwge1xuICAgICAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgICAgICBib2R5OiB7IHJlZnJlc2ggfVxuICAgICAgICB9LCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgY2FsbGJhY2socmVzcG9uc2UpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWZyZXNoKHJlZnJlc2ggPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBmZWVkID0gJCgnI25ld3MtZmVlZCAud2lkZ2V0LWNvbnRlbnQnKTtcbiAgICAgICAgaWYgKCFmZWVkLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICBsZXQgbG9hZGVyID0gZmVlZC5maW5kKCcud2lkZ2V0LWxvYWRlcicpO1xuICAgICAgICBsb2FkZXIuZmluZCgnZGl2JykucmVtb3ZlKCk7XG4gICAgICAgIGxvYWRlci5maW5kKCcuZmEtd2FybmluZycpLnJlbW92ZUNsYXNzKCdmYS13YXJuaW5nJykuYWRkQ2xhc3MoJ2ZhLXJlZnJlc2ggZmEtc3BpbicpO1xuICAgICAgICBsb2FkZXIuc2hvdygpO1xuXG4gICAgICAgIGZlZWQuZmluZCgnPiB1bCcpLmhpZGUoKTtcblxuICAgICAgICBpZiAoIXRoaXMuZGF0YSB8fCB0aGlzLmRhdGEuZXJyb3IgfHwgcmVmcmVzaCkge1xuICAgICAgICAgICAgdGhpcy5mZXRjaChyZWZyZXNoLCB0aGlzLnVwZGF0ZUNvbnRlbnQuYmluZCh0aGlzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZUNvbnRlbnQoKSB7XG4gICAgICAgIGNvbnN0IGZlZWQgPSAkKCcjbmV3cy1mZWVkIC53aWRnZXQtY29udGVudCcpO1xuICAgICAgICBpZiAoIWZlZWQubGVuZ3RoKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGxldCBsb2FkZXIgPSBmZWVkLmZpbmQoJy53aWRnZXQtbG9hZGVyJykuaGlkZSgpO1xuICAgICAgICBsZXQgY29udGVudCA9IGZlZWQuZmluZCgnPiB1bCcpLmVtcHR5KCkuc2hvdygpO1xuXG4gICAgICAgIGlmICh0aGlzLmRhdGEuZXJyb3IgfHwgdGhpcy5kYXRhLnN0YXR1cyA9PT0gJ2Vycm9yJykge1xuICAgICAgICAgICAgbG9hZGVyLnNob3coKS5maW5kKCdkaXYnKS5yZW1vdmUoKTtcbiAgICAgICAgICAgIGxvYWRlci5maW5kKCcuZmEtcmVmcmVzaCcpLnJlbW92ZUNsYXNzKCdmYS1yZWZyZXNoIGZhLXNwaW4nKS5hZGRDbGFzcygnZmEtd2FybmluZycpO1xuICAgICAgICAgICAgbG9hZGVyLmFwcGVuZChgPGRpdj4ke3RoaXMuZGF0YS5lcnJvciA/IHRoaXMuZGF0YS5lcnJvci5tZXNzYWdlIDogdGhpcy5kYXRhLm1lc3NhZ2UgfHwgJ1VuYWJsZSB0byBkb3dubG9hZCBuZXdzIGZlZWQnfTwvZGl2PmApO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kYXRhICYmIHRoaXMuZGF0YS5mZWVkX2RhdGEpIHtcbiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kKHRoaXMuZGF0YS5mZWVkX2RhdGEpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5sZXQgZmVlZCA9IG5ldyBGZWVkKCk7XG4kKGRvY3VtZW50KS5yZWFkeSgoKSA9PiBmZWVkLnJlZnJlc2goKSk7XG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtcmVmcmVzaD1cImZlZWRcIl0nLCAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGZlZWQucmVmcmVzaCh0cnVlKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBmZWVkO1xuIl0sIm5hbWVzIjpbIiQiLCJjb25maWciLCJyZXF1ZXN0IiwiVVJJIiwiY29uY2F0IiwiYmFzZV91cmxfcmVsYXRpdmUiLCJwYXJhbV9zZXAiLCJGZWVkIiwiX2NsYXNzQ2FsbENoZWNrIiwiZGF0YSIsIl9jcmVhdGVDbGFzcyIsImtleSIsInZhbHVlIiwiZmV0Y2giLCJfdGhpcyIsInJlZnJlc2giLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJjYWxsYmFjayIsIm1ldGhvZCIsImJvZHkiLCJyZXNwb25zZSIsImZlZWQiLCJsb2FkZXIiLCJmaW5kIiwicmVtb3ZlIiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsInNob3ciLCJoaWRlIiwiZXJyb3IiLCJ1cGRhdGVDb250ZW50IiwiYmluZCIsImNvbnRlbnQiLCJlbXB0eSIsInN0YXR1cyIsImFwcGVuZCIsIm1lc3NhZ2UiLCJmZWVkX2RhdGEiLCJkb2N1bWVudCIsInJlYWR5Iiwib24iLCJldmVudCIsInByZXZlbnREZWZhdWx0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/updates/feed.js\n\n}");
/***/ }),
/***/ "./app/updates/index.js":
/*!******************************!*\
!*** ./app/updates/index.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Feed: () => (/* reexport safe */ _feed__WEBPACK_IMPORTED_MODULE_5__[\"default\"]),\n/* harmony export */ Instance: () => (/* binding */ Instance),\n/* harmony export */ Notifications: () => (/* reexport safe */ _notifications__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/* harmony export */ \"default\": () => (/* binding */ Updates)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mout_array_unique__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mout/array/unique */ \"./node_modules/mout/array/unique.js\");\n/* harmony import */ var mout_array_unique__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mout_array_unique__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_gpm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/gpm */ \"./app/utils/gpm.js\");\n/* harmony import */ var _notifications__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./notifications */ \"./app/updates/notifications.js\");\n/* harmony import */ var _feed__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./feed */ \"./app/updates/feed.js\");\n/* harmony import */ var _check__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./check */ \"./app/updates/check.js\");\n/* harmony import */ var _update__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./update */ \"./app/updates/update.js\");\n/* harmony import */ var _channel_switcher__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./channel-switcher */ \"./app/updates/channel-switcher.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\n\n\nvar Updates = /*#__PURE__*/function () {\n function Updates() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, Updates);\n this.setPayload(payload);\n this.task = \"task\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.param_sep);\n this.updateURL = '';\n }\n return _createClass(Updates, [{\n key: \"setPayload\",\n value: function setPayload() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.payload = payload;\n return this;\n }\n }, {\n key: \"fetch\",\n value: function fetch() {\n var _this = this;\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n _utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.fetch(function (response) {\n return _this.setPayload(response);\n }, force);\n return this;\n }\n }, {\n key: \"maintenance\",\n value: function maintenance() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'hide';\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#updates [data-update-packages]');\n element[mode === 'show' ? 'fadeIn' : 'fadeOut']();\n if (mode === 'hide') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.badges.with-updates').removeClass('with-updates').find('.badge.updates').remove();\n }\n return this;\n }\n }, {\n key: \"grav\",\n value: function grav() {\n var payload = this.payload.grav;\n if (payload && payload.isUpdatable) {\n var task = this.task;\n var bar = '';\n if (!payload.isSymlink) {\n this.updateURL = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.base_url_relative, \"/update.json/\").concat(task, \"updategrav/admin-nonce\").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.param_sep).concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.admin_nonce);\n bar += \"
\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATE_GRAV_NOW, \" (5s) \");\n } else {\n bar += \"
\");\n }\n bar += \"\\n Grav
v\".concat(payload.available, \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.IS_NOW_AVAILABLE, \"!
(\").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.CURRENT, \" v\").concat(payload.version, \") \\n \");\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-gpm-grav]').removeClass('hidden');\n if (element.is(':empty')) {\n element.hide();\n }\n element.addClass('grav').html(\"\".concat(bar)).slideDown(150, function () {\n var c = 5;\n var x = setInterval(function () {\n c -= 1;\n element.find('.pointer-events-none .cnt-down').text('(' + c + 's)');\n }, 1000);\n setTimeout(function () {\n clearInterval(x);\n element.find('.pointer-events-none .cnt-down').remove();\n element.find('.pointer-events-none').removeClass('pointer-events-none');\n }, 5000);\n }).parent('#messages').addClass('default-box-shadow');\n }\n return this;\n }\n }, {\n key: \"resources\",\n value: function resources() {\n if (!this.payload || !this.payload.resources || !this.payload.resources.total) {\n return this.maintenance('hide');\n }\n var is_current_package_latest = true;\n var map = ['plugins', 'themes'];\n var singles = ['plugin', 'theme'];\n var _this$payload$resourc = this.payload.resources,\n plugins = _this$payload$resourc.plugins,\n themes = _this$payload$resourc.themes;\n if (!this.payload.resources.total) {\n return this;\n }\n [plugins, themes].forEach(function (resources, index) {\n if (!resources || Array.isArray(resources) || _typeof(resources) !== 'object') {\n return;\n }\n var length = Object.keys(resources).length;\n var type = map[index];\n\n // sidebar\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#admin-menu a[href$=\\\"/\".concat(map[index], \"\\\"]\")).find('.badges').addClass('with-updates').find('.badge.updates').text(length);\n var type_translation = '';\n // update all\n\n if (type === 'plugins') {\n type_translation = grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.PLUGINS;\n } else {\n type_translation = grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.THEMES;\n }\n var updateAll = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\".grav-update.\".concat(type));\n updateAll.css('display', 'block').html(\"\\n
\\n \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATE, \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.ALL, \" \").concat(type_translation, \" \\n \\n \").concat(length, \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.OF_YOUR, \" \").concat(type_translation.toLowerCase(), \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.HAVE_AN_UPDATE_AVAILABLE, \"\\n
\\n \"));\n var existing_slugs = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-update-packages]').attr('data-packages-slugs') || '';\n if (existing_slugs) {\n existing_slugs = existing_slugs.split(',');\n } else {\n existing_slugs = [];\n }\n var slugs = mout_array_unique__WEBPACK_IMPORTED_MODULE_1___default()(existing_slugs.concat(Object.keys(resources))).join();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-update-packages]').attr('data-packages-slugs', \"\".concat(slugs));\n Object.keys(resources).forEach(function (item) {\n // listing page\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-gpm-\".concat(singles[index], \"=\\\"\").concat(item, \"\\\"]\"));\n var element = container.find('.gpm-name');\n var url = element.find('a');\n var content_wrapper = container.parents('.content-wrapper');\n if (type === 'plugins' && !element.find('.badge.update').length) {\n element.append(\"
\").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATE_AVAILABLE, \"! \"));\n content_wrapper.addClass('has-updates');\n } else if (type === 'themes') {\n element.append(\"
\"));\n content_wrapper.addClass('has-updates');\n }\n\n // details page\n if (container.length) {\n var details = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\".grav-update.\".concat(singles[index]));\n if (details.length) {\n var releaseType = resources[item].type === 'testing' ? '
test release ' : '';\n details.html(\"\\n
\\n \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATE, \" \").concat(singles[index].charAt(0).toUpperCase() + singles[index].substr(1).toLowerCase(), \" \\n \\n v\").concat(resources[item].available, \" \").concat(releaseType, \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.OF_THIS, \" \").concat(singles[index], \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.IS_NOW_AVAILABLE, \"!\\n
\\n \")).css('display', 'block');\n is_current_package_latest = false;\n }\n }\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-update-packages]').removeClass('hidden');\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.content-wrapper').addClass('updates-checked');\n if (!is_current_package_latest) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.warning-reinstall-not-latest-release').removeClass('hidden');\n }\n }\n }]);\n}();\n\nvar Instance = new Updates();\n\n\n// automatically refresh UI for updates (graph, sidebar, plugin/themes pages) after every fetch\n_utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.on('fetched', function (response, raw) {\n Instance.setPayload(response.payload || {});\n Instance.grav().resources();\n});\nif (grav_config__WEBPACK_IMPORTED_MODULE_2__.config.enable_auto_updates_check === '1') {\n _utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.fetch();\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FBQ2hCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztFQUMzQ0wsUUFBUSxDQUFDNEIsSUFBSSxDQUFDLENBQUMsQ0FBQ3lCLFNBQVMsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQztBQUVGLElBQUl2RCwrQ0FBTSxDQUFDc0cseUJBQXlCLEtBQUssR0FBRyxFQUFFO0VBQzFDbkcsZ0RBQUcsQ0FBQ2lCLEtBQUssQ0FBQyxDQUFDO0FBQ2YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3VwZGF0ZXMvaW5kZXguanM/MjBmMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHVuaXF1ZSBmcm9tICdtb3V0L2FycmF5L3VuaXF1ZSc7XG5pbXBvcnQgeyBjb25maWcsIHRyYW5zbGF0aW9ucyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCB7IEluc3RhbmNlIGFzIGdwbSB9IGZyb20gJy4uL3V0aWxzL2dwbSc7XG5pbXBvcnQgTm90aWZpY2F0aW9ucyBmcm9tICcuL25vdGlmaWNhdGlvbnMnO1xuXG5pbXBvcnQgRmVlZCBmcm9tICcuL2ZlZWQnO1xuaW1wb3J0ICcuL2NoZWNrJztcbmltcG9ydCAnLi91cGRhdGUnO1xuaW1wb3J0ICcuL2NoYW5uZWwtc3dpdGNoZXInO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBVcGRhdGVzIHtcbiAgICBjb25zdHJ1Y3RvcihwYXlsb2FkID0ge30pIHtcbiAgICAgICAgdGhpcy5zZXRQYXlsb2FkKHBheWxvYWQpO1xuICAgICAgICB0aGlzLnRhc2sgPSBgdGFzayR7Y29uZmlnLnBhcmFtX3NlcH1gO1xuICAgICAgICB0aGlzLnVwZGF0ZVVSTCA9ICcnO1xuICAgIH1cblxuICAgIHNldFBheWxvYWQocGF5bG9hZCA9IHt9KSB7XG4gICAgICAgIHRoaXMucGF5bG9hZCA9IHBheWxvYWQ7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZmV0Y2goZm9yY2UgPSBmYWxzZSkge1xuICAgICAgICBncG0uZmV0Y2goKHJlc3BvbnNlKSA9PiB0aGlzLnNldFBheWxvYWQocmVzcG9uc2UpLCBmb3JjZSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgbWFpbnRlbmFuY2UobW9kZSA9ICdoaWRlJykge1xuICAgICAgICBsZXQgZWxlbWVudCA9ICQoJyN1cGRhdGVzIFtkYXRhLXVwZGF0ZS1wYWNrYWdlc10nKTtcblxuICAgICAgICBlbGVtZW50W21vZGUgPT09ICdzaG93JyA/ICdmYWRlSW4nIDogJ2ZhZGVPdXQnXSgpO1xuXG4gICAgICAgIGlmIChtb2RlID09PSAnaGlkZScpIHtcbiAgICAgICAgICAgICQoJy5iYWRnZXMud2l0aC11cGRhdGVzJykucmVtb3ZlQ2xhc3MoJ3dpdGgtdXBkYXRlcycpLmZpbmQoJy5iYWRnZS51cGRhdGVzJykucmVtb3ZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBncmF2KCkge1xuICAgICAgICBsZXQgcGF5bG9hZCA9IHRoaXMucGF5bG9hZC5ncmF2O1xuXG4gICAgICAgIGlmIChwYXlsb2FkICYmIHBheWxvYWQuaXNVcGRhdGFibGUpIHtcbiAgICAgICAgICAgIGxldCB0YXNrID0gdGhpcy50YXNrO1xuICAgICAgICAgICAgbGV0IGJhciA9ICcnO1xuXG4gICAgICAgICAgICBpZiAoIXBheWxvYWQuaXNTeW1saW5rKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVVUkwgPSBgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9L3VwZGF0ZS5qc29uLyR7dGFza311cGRhdGVncmF2L2FkbWluLW5vbmNlJHtjb25maWcucGFyYW1fc2VwfSR7Y29uZmlnLmFkbWluX25vbmNlfWA7XG4gICAgICAgICAgICAgICAgYmFyICs9IGA8YnV0dG9uIGRhdGEtcmVtb2RhbC10YXJnZXQ9XCJ1cGRhdGUtZ3JhdlwiIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1zbWFsbCBzZWNvbmRhcnkgcG9pbnRlci1ldmVudHMtbm9uZVwiIGlkPVwiZ3Jhdi11cGRhdGUtYnV0dG9uXCI+JHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlVQREFURV9HUkFWX05PV30gPHNwYW4gY2xhc3M9XCJjbnQtZG93blwiPig1cyk8L3NwYW4+PC9idXR0b24+YDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYmFyICs9IGA8c3BhbiBjbGFzcz1cImhpbnQtLWxlZnRcIiBzdHlsZT1cImZsb2F0OiByaWdodDtcIiBkYXRhLWhpbnQ9XCIke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uR1JBVl9TWU1CT0xJQ0FMTFlfTElOS0VEfVwiPjxpIGNsYXNzPVwiZmEgZmEtZncgZmEtbGlua1wiPjwvaT48L3NwYW4+YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYmFyICs9IGBcbiAgICAgICAgICAgICAgICBHcmF2IDxiPnYke3BheWxvYWQuYXZhaWxhYmxlfTwvYj4gJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLklTX05PV19BVkFJTEFCTEV9ISA8c3BhbiBjbGFzcz1cImxlc3NcIj4oJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkNVUlJFTlR9IHYke3BheWxvYWQudmVyc2lvbn0pPC9zcGFuPlxuICAgICAgICAgICAgYDtcblxuICAgICAgICAgICAgbGV0IGVsZW1lbnQgPSAkKCdbZGF0YS1ncG0tZ3Jhdl0nKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG5cbiAgICAgICAgICAgIGlmIChlbGVtZW50LmlzKCc6ZW1wdHknKSkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuaGlkZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlbGVtZW50XG4gICAgICAgICAgICAgICAgLmFkZENsYXNzKCdncmF2JylcbiAgICAgICAgICAgICAgICAuaHRtbChgJHtiYXJ9YClcbiAgICAgICAgICAgICAgICAuc2xpZGVEb3duKDE1MCwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjID0gNTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHggPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGMgLT0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZCgnLnBvaW50ZXItZXZlbnRzLW5vbmUgLmNudC1kb3duJykudGV4dCgnKCcgKyBjICsgJ3MpJyk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDEwMDApO1xuXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKCcucG9pbnRlci1ldmVudHMtbm9uZSAuY250LWRvd24nKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZCgnLnBvaW50ZXItZXZlbnRzLW5vbmUnKS5yZW1vdmVDbGFzcygncG9pbnRlci1ldmVudHMtbm9uZScpO1xuICAgICAgICAgICAgICAgICAgICB9LCA1MDAwKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5wYXJlbnQoJyNtZXNzYWdlcycpLmFkZENsYXNzKCdkZWZhdWx0LWJveC1zaGFkb3cnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHJlc291cmNlcygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnBheWxvYWQgfHwgIXRoaXMucGF5bG9hZC5yZXNvdXJjZXMgfHwgIXRoaXMucGF5bG9hZC5yZXNvdXJjZXMudG90YWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1haW50ZW5hbmNlKCdoaWRlJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaXNfY3VycmVudF9wYWNrYWdlX2xhdGVzdCA9IHRydWU7XG4gICAgICAgIGxldCBtYXAgPSBbJ3BsdWdpbnMnLCAndGhlbWVzJ107XG4gICAgICAgIGxldCBzaW5nbGVzID0gWydwbHVnaW4nLCAndGhlbWUnXTtcbiAgICAgICAgbGV0IHsgcGx1Z2lucywgdGhlbWVzIH0gPSB0aGlzLnBheWxvYWQucmVzb3VyY2VzO1xuXG4gICAgICAgIGlmICghdGhpcy5wYXlsb2FkLnJlc291cmNlcy50b3RhbCkgeyByZXR1cm4gdGhpczsgfVxuXG4gICAgICAgIFtwbHVnaW5zLCB0aGVtZXNdLmZvckVhY2goZnVuY3Rpb24ocmVzb3VyY2VzLCBpbmRleCkge1xuICAgICAgICAgICAgaWYgKCFyZXNvdXJjZXMgfHwgQXJyYXkuaXNBcnJheShyZXNvdXJjZXMpIHx8IHR5cGVvZiByZXNvdXJjZXMgIT09ICdvYmplY3QnKSB7IHJldHVybjsgfVxuICAgICAgICAgICAgbGV0IGxlbmd0aCA9IE9iamVjdC5rZXlzKHJlc291cmNlcykubGVuZ3RoO1xuICAgICAgICAgICAgbGV0IHR5cGUgPSBtYXBbaW5kZXhdO1xuXG4gICAgICAgICAgICAvLyBzaWRlYmFyXG4gICAgICAgICAgICAkKGAjYWRtaW4tbWVudSBhW2hyZWYkPVwiLyR7bWFwW2luZGV4XX1cIl1gKVxuICAgICAgICAgICAgICAgIC5maW5kKCcuYmFkZ2VzJylcbiAgICAgICAgICAgICAgICAuYWRkQ2xhc3MoJ3dpdGgtdXBkYXRlcycpXG4gICAgICAgICAgICAgICAgLmZpbmQoJy5iYWRnZS51cGRhdGVzJykudGV4dChsZW5ndGgpO1xuXG4gICAgICAgICAgICB2YXIgdHlwZV90cmFuc2xhdGlvbiA9ICcnO1xuICAgICAgICAgICAgLy8gdXBkYXRlIGFsbFxuXG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gJ3BsdWdpbnMnKSB7XG4gICAgICAgICAgICAgICAgdHlwZV90cmFuc2xhdGlvbiA9IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uUExVR0lOUztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdHlwZV90cmFuc2xhdGlvbiA9IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uVEhFTUVTO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgdXBkYXRlQWxsID0gJChgLmdyYXYtdXBkYXRlLiR7dHlwZX1gKTtcbiAgICAgICAgICAgIHVwZGF0ZUFsbC5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKS5odG1sKGBcbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJidXR0b24gYnV0dG9uLXNtYWxsIHNlY29uZGFyeVwiIGRhdGEtcmVtb2RhbC10YXJnZXQ9XCJ1cGRhdGUtcGFja2FnZXNcIiBkYXRhLXBhY2thZ2VzLXNsdWdzPVwiJHtPYmplY3Qua2V5cyhyZXNvdXJjZXMpLmpvaW4oKX1cIiBkYXRhLSR7c2luZ2xlc1tpbmRleF19LWFjdGlvbj1cInN0YXJ0LXBhY2thZ2VzLXVwZGF0ZVwiPiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5VUERBVEV9ICR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5BTEx9ICR7dHlwZV90cmFuc2xhdGlvbn08L2E+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1idWxsaG9yblwiPjwvaT5cbiAgICAgICAgICAgICAgICAke2xlbmd0aH0gJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLk9GX1lPVVJ9ICR7dHlwZV90cmFuc2xhdGlvbi50b0xvd2VyQ2FzZSgpfSAke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uSEFWRV9BTl9VUERBVEVfQVZBSUxBQkxFfVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgYCk7XG5cbiAgICAgICAgICAgIGxldCBleGlzdGluZ19zbHVncyA9ICQoJ1tkYXRhLXVwZGF0ZS1wYWNrYWdlc10nKS5hdHRyKCdkYXRhLXBhY2thZ2VzLXNsdWdzJykgfHwgJyc7XG5cbiAgICAgICAgICAgIGlmIChleGlzdGluZ19zbHVncykge1xuICAgICAgICAgICAgICAgIGV4aXN0aW5nX3NsdWdzID0gZXhpc3Rpbmdfc2x1Z3Muc3BsaXQoJywnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZXhpc3Rpbmdfc2x1Z3MgPSBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IHNsdWdzID0gdW5pcXVlKGV4aXN0aW5nX3NsdWdzLmNvbmNhdChPYmplY3Qua2V5cyhyZXNvdXJjZXMpKSkuam9pbigpO1xuICAgICAgICAgICAgJCgnW2RhdGEtdXBkYXRlLXBhY2thZ2VzXScpLmF0dHIoJ2RhdGEtcGFja2FnZXMtc2x1Z3MnLCBgJHtzbHVnc31gKTtcblxuICAgICAgICAgICAgT2JqZWN0LmtleXMocmVzb3VyY2VzKS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAvLyBsaXN0aW5nIHBhZ2VcbiAgICAgICAgICAgICAgICBsZXQgY29udGFpbmVyID0gJChgW2RhdGEtZ3BtLSR7c2luZ2xlc1tpbmRleF19PVwiJHtpdGVtfVwiXWApO1xuICAgICAgICAgICAgICAgIGxldCBlbGVtZW50ID0gY29udGFpbmVyLmZpbmQoJy5ncG0tbmFtZScpO1xuICAgICAgICAgICAgICAgIGxldCB1cmwgPSBlbGVtZW50LmZpbmQoJ2EnKTtcbiAgICAgICAgICAgICAgICBsZXQgY29udGVudF93cmFwcGVyID0gY29udGFpbmVyLnBhcmVudHMoJy5jb250ZW50LXdyYXBwZXInKTtcblxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAncGx1Z2lucycgJiYgIWVsZW1lbnQuZmluZCgnLmJhZGdlLnVwZGF0ZScpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmFwcGVuZChgPGEgY2xhc3M9XCJwbHVnaW4tdXBkYXRlLWJ1dHRvblwiIGhyZWY9XCIke3VybC5hdHRyKCdocmVmJyl9XCI+PHNwYW4gY2xhc3M9XCJiYWRnZSB1cGRhdGVcIj4ke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uVVBEQVRFX0FWQUlMQUJMRX0hPC9zcGFuPjwvYT5gKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudF93cmFwcGVyLmFkZENsYXNzKCdoYXMtdXBkYXRlcycpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3RoZW1lcycpIHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5hcHBlbmQoYDxkaXYgY2xhc3M9XCJncG0tcmliYm9uXCI+PGEgaHJlZj1cIiR7dXJsLmF0dHIoJ2hyZWYnKX1cIj4ke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uVVBEQVRFLnRvVXBwZXJDYXNlKCl9PC9hPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50X3dyYXBwZXIuYWRkQ2xhc3MoJ2hhcy11cGRhdGVzJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gZGV0YWlscyBwYWdlXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbHMgPSAkKGAuZ3Jhdi11cGRhdGUuJHtzaW5nbGVzW2luZGV4XX1gKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRldGFpbHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVsZWFzZVR5cGUgPSByZXNvdXJjZXNbaXRlbV0udHlwZSA9PT0gJ3Rlc3RpbmcnID8gJzxzcGFuIGNsYXNzPVwiZ3BtLXRlc3RpbmdcIj50ZXN0IHJlbGVhc2U8L3NwYW4+JyA6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscy5odG1sKGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tc21hbGwgc2Vjb25kYXJ5XCIgZGF0YS1yZW1vZGFsLXRhcmdldD1cInVwZGF0ZS1wYWNrYWdlc1wiIGRhdGEtcGFja2FnZXMtc2x1Z3M9XCIke2l0ZW19XCIgZGF0YS0ke3NpbmdsZXNbaW5kZXhdfS1hY3Rpb249XCJzdGFydC1wYWNrYWdlLWluc3RhbGxhdGlvblwiPiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5VUERBVEV9ICR7c2luZ2xlc1tpbmRleF0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzaW5nbGVzW2luZGV4XS5zdWJzdHIoMSkudG9Mb3dlckNhc2UoKX08L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYnVsbGhvcm5cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+diR7cmVzb3VyY2VzW2l0ZW1dLmF2YWlsYWJsZX08L3N0cm9uZz4gJHtyZWxlYXNlVHlwZX0gJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLk9GX1RISVN9ICR7c2luZ2xlc1tpbmRleF19ICR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5JU19OT1dfQVZBSUxBQkxFfSFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICBgKS5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaXNfY3VycmVudF9wYWNrYWdlX2xhdGVzdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICQoJ1tkYXRhLXVwZGF0ZS1wYWNrYWdlc10nKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICQoJy5jb250ZW50LXdyYXBwZXInKS5hZGRDbGFzcygndXBkYXRlcy1jaGVja2VkJyk7XG5cbiAgICAgICAgaWYgKCFpc19jdXJyZW50X3BhY2thZ2VfbGF0ZXN0KSB7XG4gICAgICAgICAgICAkKCcud2FybmluZy1yZWluc3RhbGwtbm90LWxhdGVzdC1yZWxlYXNlJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5sZXQgSW5zdGFuY2UgPSBuZXcgVXBkYXRlcygpO1xuZXhwb3J0IHsgSW5zdGFuY2UsIE5vdGlmaWNhdGlvbnMsIEZlZWQgfTtcblxuLy8gYXV0b21hdGljYWxseSByZWZyZXNoIFVJIGZvciB1cGRhdGVzIChncmFwaCwgc2lkZWJhciwgcGx1Z2luL3RoZW1lcyBwYWdlcykgYWZ0ZXIgZXZlcnkgZmV0Y2hcbmdwbS5vbignZmV0Y2hlZCcsIChyZXNwb25zZSwgcmF3KSA9PiB7XG4gICAgSW5zdGFuY2Uuc2V0UGF5bG9hZChyZXNwb25zZS5wYXlsb2FkIHx8IHt9KTtcbiAgICBJbnN0YW5jZS5ncmF2KCkucmVzb3VyY2VzKCk7XG59KTtcblxuaWYgKGNvbmZpZy5lbmFibGVfYXV0b191cGRhdGVzX2NoZWNrID09PSAnMScpIHtcbiAgICBncG0uZmV0Y2goKTtcbn1cbiJdLCJuYW1lcyI6WyIkIiwidW5pcXVlIiwiY29uZmlnIiwidHJhbnNsYXRpb25zIiwiSW5zdGFuY2UiLCJncG0iLCJOb3RpZmljYXRpb25zIiwiRmVlZCIsIlVwZGF0ZXMiLCJwYXlsb2FkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiX2NsYXNzQ2FsbENoZWNrIiwic2V0UGF5bG9hZCIsInRhc2siLCJjb25jYXQiLCJwYXJhbV9zZXAiLCJ1cGRhdGVVUkwiLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJ2YWx1ZSIsImZldGNoIiwiX3RoaXMiLCJmb3JjZSIsInJlc3BvbnNlIiwibWFpbnRlbmFuY2UiLCJtb2RlIiwiZWxlbWVudCIsInJlbW92ZUNsYXNzIiwiZmluZCIsInJlbW92ZSIsImdyYXYiLCJpc1VwZGF0YWJsZSIsImJhciIsImlzU3ltbGluayIsImJhc2VfdXJsX3JlbGF0aXZlIiwiYWRtaW5fbm9uY2UiLCJQTFVHSU5fQURNSU4iLCJVUERBVEVfR1JBVl9OT1ciLCJHUkFWX1NZTUJPTElDQUxMWV9MSU5LRUQiLCJhdmFpbGFibGUiLCJJU19OT1dfQVZBSUxBQkxFIiwiQ1VSUkVOVCIsInZlcnNpb24iLCJpcyIsImhpZGUiLCJhZGRDbGFzcyIsImh0bWwiLCJzbGlkZURvd24iLCJjIiwieCIsInNldEludGVydmFsIiwidGV4dCIsInNldFRpbWVvdXQiLCJjbGVhckludGVydmFsIiwicGFyZW50IiwicmVzb3VyY2VzIiwidG90YWwiLCJpc19jdXJyZW50X3BhY2thZ2VfbGF0ZXN0IiwibWFwIiwic2luZ2xlcyIsIl90aGlzJHBheWxvYWQkcmVzb3VyYyIsInBsdWdpbnMiLCJ0aGVtZXMiLCJmb3JFYWNoIiwiaW5kZXgiLCJBcnJheSIsImlzQXJyYXkiLCJfdHlwZW9mIiwiT2JqZWN0Iiwia2V5cyIsInR5cGUiLCJ0eXBlX3RyYW5zbGF0aW9uIiwiUExVR0lOUyIsIlRIRU1FUyIsInVwZGF0ZUFsbCIsImNzcyIsImpvaW4iLCJVUERBVEUiLCJBTEwiLCJPRl9ZT1VSIiwidG9Mb3dlckNhc2UiLCJIQVZFX0FOX1VQREFURV9BVkFJTEFCTEUiLCJleGlzdGluZ19zbHVncyIsImF0dHIiLCJzcGxpdCIsInNsdWdzIiwiaXRlbSIsImNvbnRhaW5lciIsInVybCIsImNvbnRlbnRfd3JhcHBlciIsInBhcmVudHMiLCJhcHBlbmQiLCJVUERBVEVfQVZBSUxBQkxFIiwidG9VcHBlckNhc2UiLCJkZXRhaWxzIiwicmVsZWFzZVR5cGUiLCJjaGFyQXQiLCJzdWJzdHIiLCJPRl9USElTIiwiZGVmYXVsdCIsIm9uIiwicmF3IiwiZW5hYmxlX2F1dG9fdXBkYXRlc19jaGVjayJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/updates/index.js\n\n}");
/***/ }),
/***/ "./app/updates/notifications.js":
/*!**************************************!*\
!*** ./app/updates/notifications.js ***!
\**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\nvar canFetchNotifications = function canFetchNotifications() {\n return grav_config__WEBPACK_IMPORTED_MODULE_1__.config.notifications.enabled;\n};\nvar notificationsFilters = function notificationsFilters() {\n return grav_config__WEBPACK_IMPORTED_MODULE_1__.config.notifications.filters;\n};\nvar Notifications = /*#__PURE__*/function () {\n function Notifications() {\n _classCallCheck(this, Notifications);\n }\n return _createClass(Notifications, [{\n key: \"fetch\",\n value:\n // Grav.default.Notifications.fetch()\n function fetch() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$filter = _ref.filter,\n filter = _ref$filter === void 0 ? notificationsFilters() : _ref$filter,\n _ref$refresh = _ref.refresh,\n refresh = _ref$refresh === void 0 ? false : _ref$refresh;\n if (!canFetchNotifications()) {\n return false;\n }\n var feed = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications');\n var loader = feed.find('.widget-loader');\n var content = feed.find('.widget-content > ul');\n loader.find('div').remove();\n loader.find('.fa-warning').removeClass('fa-warning').addClass('fa-refresh fa-spin');\n loader.show();\n content.hide();\n var processNotifications = function processNotifications(response) {\n var notifications = response.notifications;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications').find('.widget-content > ul').empty();\n if (notifications) {\n Object.keys(notifications).forEach(function (location) {\n return Notifications.processLocation(location, notifications[location]);\n });\n }\n };\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"getNotifications\"), {\n method: 'post',\n body: {\n refresh: refresh,\n filter: filter\n }\n }, function (response) {\n processNotifications(response);\n })[\"catch\"](function () {\n var widget = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications .widget-content');\n widget.find('.widget-loader').find('div').remove();\n widget.find('.widget-loader').append('
Failed to retrieve notifications
').find('.fa-spin').removeClass('fa-spin fa-refresh').addClass('fa-warning');\n });\n }\n }], [{\n key: \"addShowAllInFeed\",\n value: function addShowAllInFeed() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications ul').append('
Show all ');\n }\n }, {\n key: \"showNotificationInFeed\",\n value: function showNotificationInFeed(notification) {\n var notifications = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications').removeClass('hidden');\n var loader = notifications.find('.widget-loader').hide();\n var content = notifications.find('.widget-content > ul').show();\n loader.find('div').remove();\n loader.find('.fa-warning').removeClass('fa-warning').addClass('fa-refresh fa-spin');\n content.append(notification).find('li:nth-child(n+11)').addClass('hidden'); // hide all items > 10\n\n if (content.find('li.hidden').length) {\n Notifications.addShowAllInFeed();\n }\n }\n }, {\n key: \"showNotificationInTop\",\n value: function showNotificationInTop(notification) {\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.top-notifications-container');\n var dummy = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').html(notification);\n container.removeClass('hidden').append(dummy.children());\n dummy.children().slideDown(150);\n }\n }, {\n key: \"showNotificationInDashboard\",\n value: function showNotificationInDashboard(notification) {\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dashboard-notifications-container');\n var dummy = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').html(notification);\n container.removeClass('hidden').append(dummy.children());\n dummy.children().slideDown(150);\n }\n }, {\n key: \"showNotificationInPlugins\",\n value: function showNotificationInPlugins(notification) {\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.plugins-notifications-container');\n var dummy = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').html(notification);\n container.removeClass('hidden').append(dummy.children());\n dummy.children().slideDown(150);\n }\n }, {\n key: \"showNotificationInThemes\",\n value: function showNotificationInThemes(notification) {\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.themes-notifications-container');\n var dummy = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').html(notification);\n container.removeClass('hidden').append(dummy.children());\n dummy.children().slideDown(150);\n }\n }, {\n key: \"processLocation\",\n value: function processLocation(location, notification) {\n switch (location) {\n case 'feed':\n Notifications.showNotificationInFeed(notification);\n break;\n case 'top':\n if (!notification.read) {\n Notifications.showNotificationInTop(notification);\n }\n break;\n case 'dashboard':\n if (!notification.read) {\n Notifications.showNotificationInDashboard(notification);\n }\n break;\n case 'plugins':\n if (!notification.read) {\n Notifications.showNotificationInPlugins(notification);\n }\n break;\n case 'themes':\n if (!notification.read) {\n Notifications.showNotificationInThemes(notification);\n }\n break;\n }\n }\n }]);\n}();\nvar notifications = new Notifications();\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (notifications);\nif (canFetchNotifications()) {\n notifications.fetch();\n\n /* Hide a notification and store it hidden */\n //
\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-notification-action=\"hide-notification\"]', function (event) {\n var notification_id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('.hide-notification').data('notification-id');\n var url = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/notifications.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"hideNotification/notification_id\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(notification_id);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post'\n }, function () {});\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('.single-notification').hide();\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-notification-action=\"hide-notification\"]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var notification = target.parent();\n notification.slideUp(function () {\n return notification.remove();\n });\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-notification-action=\"show-all-notifications\"]', function (event) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications .show-all').hide();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications .hidden').removeClass('hidden');\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-refresh=\"notifications\"]', function (event) {\n event.preventDefault();\n notifications.fetch({\n filter: ['feed'],\n refresh: true\n });\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FBQ0UsTUFBTSxDQUFDLENBQUNDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDbEMsSUFBSSxDQUFDLENBQUM7RUFDMUQsQ0FBQyxDQUFDO0VBRUY5Qiw2Q0FBQyxDQUFDMkQsUUFBUSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsZ0RBQWdELEVBQUUsVUFBQ0MsS0FBSyxFQUFLO0lBQ2pGLElBQU1FLE1BQU0sR0FBRy9ELDZDQUFDLENBQUM2RCxLQUFLLENBQUNNLGFBQWEsQ0FBQztJQUNyQyxJQUFNbkIsWUFBWSxHQUFHZSxNQUFNLENBQUNLLE1BQU0sQ0FBQyxDQUFDO0lBRXBDcEIsWUFBWSxDQUFDcUIsT0FBTyxDQUFDO01BQUEsT0FBTXJCLFlBQVksQ0FBQ3RCLE1BQU0sQ0FBQyxDQUFDO0lBQUEsRUFBQztFQUNyRCxDQUFDLENBQUM7RUFFRjFCLDZDQUFDLENBQUMyRCxRQUFRLENBQUMsQ0FBQ0MsRUFBRSxDQUFDLE9BQU8sRUFBRSxxREFBcUQsRUFBRSxVQUFDQyxLQUFLLEVBQUs7SUFDdEY3RCw2Q0FBQyxDQUFDLDBCQUEwQixDQUFDLENBQUM4QixJQUFJLENBQUMsQ0FBQztJQUNwQzlCLDZDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQzJCLFdBQVcsQ0FBQyxRQUFRLENBQUM7RUFDckQsQ0FBQyxDQUFDO0VBRUYzQiw2Q0FBQyxDQUFDMkQsUUFBUSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsVUFBQ0MsS0FBSyxFQUFLO0lBQ2pFQSxLQUFLLENBQUNTLGNBQWMsQ0FBQyxDQUFDO0lBQ3RCbEUsYUFBYSxDQUFDUyxLQUFLLENBQUM7TUFBRU0sTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO01BQUVFLE9BQU8sRUFBRTtJQUFLLENBQUMsQ0FBQztFQUM1RCxDQUFDLENBQUM7QUFDTiIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXBkYXRlcy9ub3RpZmljYXRpb25zLmpzP2ZiY2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCByZXF1ZXN0IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QnO1xuXG5jb25zdCBjYW5GZXRjaE5vdGlmaWNhdGlvbnMgPSAoKSA9PiBjb25maWcubm90aWZpY2F0aW9ucy5lbmFibGVkO1xuY29uc3Qgbm90aWZpY2F0aW9uc0ZpbHRlcnMgPSAoKSA9PiBjb25maWcubm90aWZpY2F0aW9ucy5maWx0ZXJzO1xuXG5jbGFzcyBOb3RpZmljYXRpb25zIHtcblxuICAgIHN0YXRpYyBhZGRTaG93QWxsSW5GZWVkKCkge1xuICAgICAgICAkKCcjbm90aWZpY2F0aW9ucyB1bCcpLmFwcGVuZCgnPGxpIGNsYXNzPVwic2hvdy1hbGxcIiBkYXRhLW5vdGlmaWNhdGlvbi1hY3Rpb249XCJzaG93LWFsbC1ub3RpZmljYXRpb25zXCI+U2hvdyBhbGw8L2xpPicpO1xuICAgIH1cblxuICAgIHN0YXRpYyBzaG93Tm90aWZpY2F0aW9uSW5GZWVkKG5vdGlmaWNhdGlvbikge1xuICAgICAgICBsZXQgbm90aWZpY2F0aW9ucyA9ICQoJyNub3RpZmljYXRpb25zJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuXG4gICAgICAgIGxldCBsb2FkZXIgPSBub3RpZmljYXRpb25zLmZpbmQoJy53aWRnZXQtbG9hZGVyJykuaGlkZSgpO1xuICAgICAgICBsZXQgY29udGVudCA9IG5vdGlmaWNhdGlvbnMuZmluZCgnLndpZGdldC1jb250ZW50ID4gdWwnKS5zaG93KCk7XG4gICAgICAgIGxvYWRlci5maW5kKCdkaXYnKS5yZW1vdmUoKTtcbiAgICAgICAgbG9hZGVyLmZpbmQoJy5mYS13YXJuaW5nJykucmVtb3ZlQ2xhc3MoJ2ZhLXdhcm5pbmcnKS5hZGRDbGFzcygnZmEtcmVmcmVzaCBmYS1zcGluJyk7XG5cbiAgICAgICAgY29udGVudFxuICAgICAgICAgICAgLmFwcGVuZChub3RpZmljYXRpb24pXG4gICAgICAgICAgICAuZmluZCgnbGk6bnRoLWNoaWxkKG4rMTEpJykuYWRkQ2xhc3MoJ2hpZGRlbicpOyAvLyBoaWRlIGFsbCBpdGVtcyA+IDEwXG5cbiAgICAgICAgaWYgKGNvbnRlbnQuZmluZCgnbGkuaGlkZGVuJykubGVuZ3RoKSB7XG4gICAgICAgICAgICBOb3RpZmljYXRpb25zLmFkZFNob3dBbGxJbkZlZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBzaG93Tm90aWZpY2F0aW9uSW5Ub3Aobm90aWZpY2F0aW9uKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9ICQoJy50b3Atbm90aWZpY2F0aW9ucy1jb250YWluZXInKTtcbiAgICAgICAgY29uc3QgZHVtbXkgPSAkKCc8ZGl2IC8+JykuaHRtbChub3RpZmljYXRpb24pO1xuXG4gICAgICAgIGNvbnRhaW5lci5yZW1vdmVDbGFzcygnaGlkZGVuJykuYXBwZW5kKGR1bW15LmNoaWxkcmVuKCkpO1xuICAgICAgICBkdW1teS5jaGlsZHJlbigpLnNsaWRlRG93bigxNTApO1xuICAgIH1cblxuICAgIHN0YXRpYyBzaG93Tm90aWZpY2F0aW9uSW5EYXNoYm9hcmQobm90aWZpY2F0aW9uKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9ICQoJy5kYXNoYm9hcmQtbm90aWZpY2F0aW9ucy1jb250YWluZXInKTtcbiAgICAgICAgY29uc3QgZHVtbXkgPSAkKCc8ZGl2IC8+JykuaHRtbChub3RpZmljYXRpb24pO1xuXG4gICAgICAgIGNvbnRhaW5lci5yZW1vdmVDbGFzcygnaGlkZGVuJykuYXBwZW5kKGR1bW15LmNoaWxkcmVuKCkpO1xuICAgICAgICBkdW1teS5jaGlsZHJlbigpLnNsaWRlRG93bigxNTApO1xuICAgIH1cblxuICAgIHN0YXRpYyBzaG93Tm90aWZpY2F0aW9uSW5QbHVnaW5zKG5vdGlmaWNhdGlvbikge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSAkKCcucGx1Z2lucy1ub3RpZmljYXRpb25zLWNvbnRhaW5lcicpO1xuICAgICAgICBjb25zdCBkdW1teSA9ICQoJzxkaXYgLz4nKS5odG1sKG5vdGlmaWNhdGlvbik7XG5cbiAgICAgICAgY29udGFpbmVyLnJlbW92ZUNsYXNzKCdoaWRkZW4nKS5hcHBlbmQoZHVtbXkuY2hpbGRyZW4oKSk7XG4gICAgICAgIGR1bW15LmNoaWxkcmVuKCkuc2xpZGVEb3duKDE1MCk7XG4gICAgfVxuXG4gICAgc3RhdGljIHNob3dOb3RpZmljYXRpb25JblRoZW1lcyhub3RpZmljYXRpb24pIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gJCgnLnRoZW1lcy1ub3RpZmljYXRpb25zLWNvbnRhaW5lcicpO1xuICAgICAgICBjb25zdCBkdW1teSA9ICQoJzxkaXYgLz4nKS5odG1sKG5vdGlmaWNhdGlvbik7XG5cbiAgICAgICAgY29udGFpbmVyLnJlbW92ZUNsYXNzKCdoaWRkZW4nKS5hcHBlbmQoZHVtbXkuY2hpbGRyZW4oKSk7XG4gICAgICAgIGR1bW15LmNoaWxkcmVuKCkuc2xpZGVEb3duKDE1MCk7XG4gICAgfVxuXG4gICAgc3RhdGljIHByb2Nlc3NMb2NhdGlvbihsb2NhdGlvbiwgbm90aWZpY2F0aW9uKSB7XG4gICAgICAgIHN3aXRjaCAobG9jYXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ2ZlZWQnOlxuICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbnMuc2hvd05vdGlmaWNhdGlvbkluRmVlZChub3RpZmljYXRpb24pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgICAgICBpZiAoIW5vdGlmaWNhdGlvbi5yZWFkKSB7XG4gICAgICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbnMuc2hvd05vdGlmaWNhdGlvbkluVG9wKG5vdGlmaWNhdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGFzaGJvYXJkJzpcbiAgICAgICAgICAgICAgICBpZiAoIW5vdGlmaWNhdGlvbi5yZWFkKSB7XG4gICAgICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbnMuc2hvd05vdGlmaWNhdGlvbkluRGFzaGJvYXJkKG5vdGlmaWNhdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncGx1Z2lucyc6XG4gICAgICAgICAgICAgICAgaWYgKCFub3RpZmljYXRpb24ucmVhZCkge1xuICAgICAgICAgICAgICAgICAgICBOb3RpZmljYXRpb25zLnNob3dOb3RpZmljYXRpb25JblBsdWdpbnMobm90aWZpY2F0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0aGVtZXMnOlxuICAgICAgICAgICAgICAgIGlmICghbm90aWZpY2F0aW9uLnJlYWQpIHtcbiAgICAgICAgICAgICAgICAgICAgTm90aWZpY2F0aW9ucy5zaG93Tm90aWZpY2F0aW9uSW5UaGVtZXMobm90aWZpY2F0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHcmF2LmRlZmF1bHQuTm90aWZpY2F0aW9ucy5mZXRjaCgpXG4gICAgZmV0Y2goeyBmaWx0ZXIgPSBub3RpZmljYXRpb25zRmlsdGVycygpLCByZWZyZXNoID0gZmFsc2UgfSA9IHt9KSB7XG4gICAgICAgIGlmICghY2FuRmV0Y2hOb3RpZmljYXRpb25zKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBmZWVkID0gJCgnI25vdGlmaWNhdGlvbnMnKTtcbiAgICAgICAgbGV0IGxvYWRlciA9IGZlZWQuZmluZCgnLndpZGdldC1sb2FkZXInKTtcbiAgICAgICAgbGV0IGNvbnRlbnQgPSBmZWVkLmZpbmQoJy53aWRnZXQtY29udGVudCA+IHVsJyk7XG4gICAgICAgIGxvYWRlci5maW5kKCdkaXYnKS5yZW1vdmUoKTtcbiAgICAgICAgbG9hZGVyLmZpbmQoJy5mYS13YXJuaW5nJykucmVtb3ZlQ2xhc3MoJ2ZhLXdhcm5pbmcnKS5hZGRDbGFzcygnZmEtcmVmcmVzaCBmYS1zcGluJyk7XG4gICAgICAgIGxvYWRlci5zaG93KCk7XG4gICAgICAgIGNvbnRlbnQuaGlkZSgpO1xuXG4gICAgICAgIGxldCBwcm9jZXNzTm90aWZpY2F0aW9ucyA9IChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgbGV0IG5vdGlmaWNhdGlvbnMgPSByZXNwb25zZS5ub3RpZmljYXRpb25zO1xuXG4gICAgICAgICAgICAkKCcjbm90aWZpY2F0aW9ucycpLmZpbmQoJy53aWRnZXQtY29udGVudCA+IHVsJykuZW1wdHkoKTtcblxuICAgICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhub3RpZmljYXRpb25zKS5mb3JFYWNoKChsb2NhdGlvbikgPT4gTm90aWZpY2F0aW9ucy5wcm9jZXNzTG9jYXRpb24obG9jYXRpb24sIG5vdGlmaWNhdGlvbnNbbG9jYXRpb25dKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgcmVxdWVzdChgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9L3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9Z2V0Tm90aWZpY2F0aW9uc2AsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keTogeyByZWZyZXNoLCBmaWx0ZXIgfVxuICAgICAgICB9LCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHByb2Nlc3NOb3RpZmljYXRpb25zKHJlc3BvbnNlKTtcbiAgICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHdpZGdldCA9ICQoJyNub3RpZmljYXRpb25zIC53aWRnZXQtY29udGVudCcpO1xuICAgICAgICAgICAgd2lkZ2V0XG4gICAgICAgICAgICAgICAgLmZpbmQoJy53aWRnZXQtbG9hZGVyJylcbiAgICAgICAgICAgICAgICAuZmluZCgnZGl2JykucmVtb3ZlKCk7XG5cbiAgICAgICAgICAgIHdpZGdldFxuICAgICAgICAgICAgICAgIC5maW5kKCcud2lkZ2V0LWxvYWRlcicpXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgnPGRpdj5GYWlsZWQgdG8gcmV0cmlldmUgbm90aWZpY2F0aW9uczwvZGl2PicpXG4gICAgICAgICAgICAgICAgLmZpbmQoJy5mYS1zcGluJylcbiAgICAgICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ2ZhLXNwaW4gZmEtcmVmcmVzaCcpLmFkZENsYXNzKCdmYS13YXJuaW5nJyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxubGV0IG5vdGlmaWNhdGlvbnMgPSBuZXcgTm90aWZpY2F0aW9ucygpO1xuZXhwb3J0IGRlZmF1bHQgbm90aWZpY2F0aW9ucztcblxuaWYgKGNhbkZldGNoTm90aWZpY2F0aW9ucygpKSB7XG4gICAgbm90aWZpY2F0aW9ucy5mZXRjaCgpO1xuXG4gICAgLyogSGlkZSBhIG5vdGlmaWNhdGlvbiBhbmQgc3RvcmUgaXQgaGlkZGVuICovXG4gICAgLy8gPGEgaHJlZj1cIiNcIiBkYXRhLW5vdGlmaWNhdGlvbi1hY3Rpb249XCJoaWRlLW5vdGlmaWNhdGlvblwiIGRhdGEtbm90aWZpY2F0aW9uLWlkPVwiJHtub3RpZmljYXRpb24uaWR9XCIgY2xhc3M9XCJjbG9zZSBoaWRlLW5vdGlmaWNhdGlvblwiPjxpIGNsYXNzPVwiZmEgZmEtY2xvc2VcIj48L2k+PC9hPlxuICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1ub3RpZmljYXRpb24tYWN0aW9uPVwiaGlkZS1ub3RpZmljYXRpb25cIl0nLCAoZXZlbnQpID0+IHtcbiAgICAgICAgbGV0IG5vdGlmaWNhdGlvbl9pZCA9ICQoZXZlbnQudGFyZ2V0KS5wYXJlbnRzKCcuaGlkZS1ub3RpZmljYXRpb24nKS5kYXRhKCdub3RpZmljYXRpb24taWQnKTtcblxuICAgICAgICBsZXQgdXJsID0gYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS9ub3RpZmljYXRpb25zLmpzb24vdGFzayR7Y29uZmlnLnBhcmFtX3NlcH1oaWRlTm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbl9pZCR7Y29uZmlnLnBhcmFtX3NlcH0ke25vdGlmaWNhdGlvbl9pZH1gO1xuXG4gICAgICAgIHJlcXVlc3QodXJsLCB7IG1ldGhvZDogJ3Bvc3QnIH0sICgpID0+IHt9KTtcblxuICAgICAgICAkKGV2ZW50LnRhcmdldCkucGFyZW50cygnLnNpbmdsZS1ub3RpZmljYXRpb24nKS5oaWRlKCk7XG4gICAgfSk7XG5cbiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtbm90aWZpY2F0aW9uLWFjdGlvbj1cImhpZGUtbm90aWZpY2F0aW9uXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHRhcmdldC5wYXJlbnQoKTtcblxuICAgICAgICBub3RpZmljYXRpb24uc2xpZGVVcCgoKSA9PiBub3RpZmljYXRpb24ucmVtb3ZlKCkpO1xuICAgIH0pO1xuXG4gICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLW5vdGlmaWNhdGlvbi1hY3Rpb249XCJzaG93LWFsbC1ub3RpZmljYXRpb25zXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICQoJyNub3RpZmljYXRpb25zIC5zaG93LWFsbCcpLmhpZGUoKTtcbiAgICAgICAgJCgnI25vdGlmaWNhdGlvbnMgLmhpZGRlbicpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICB9KTtcblxuICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1yZWZyZXNoPVwibm90aWZpY2F0aW9uc1wiXScsIChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBub3RpZmljYXRpb25zLmZldGNoKHsgZmlsdGVyOiBbJ2ZlZWQnXSwgcmVmcmVzaDogdHJ1ZSB9KTtcbiAgICB9KTtcbn1cbiJdLCJuYW1lcyI6WyIkIiwiY29uZmlnIiwicmVxdWVzdCIsImNhbkZldGNoTm90aWZpY2F0aW9ucyIsIm5vdGlmaWNhdGlvbnMiLCJlbmFibGVkIiwibm90aWZpY2F0aW9uc0ZpbHRlcnMiLCJmaWx0ZXJzIiwiTm90aWZpY2F0aW9ucyIsIl9jbGFzc0NhbGxDaGVjayIsIl9jcmVhdGVDbGFzcyIsImtleSIsInZhbHVlIiwiZmV0Y2giLCJfcmVmIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiX3JlZiRmaWx0ZXIiLCJmaWx0ZXIiLCJfcmVmJHJlZnJlc2giLCJyZWZyZXNoIiwiZmVlZCIsImxvYWRlciIsImZpbmQiLCJjb250ZW50IiwicmVtb3ZlIiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsInNob3ciLCJoaWRlIiwicHJvY2Vzc05vdGlmaWNhdGlvbnMiLCJyZXNwb25zZSIsImVtcHR5IiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJsb2NhdGlvbiIsInByb2Nlc3NMb2NhdGlvbiIsImNvbmNhdCIsImJhc2VfdXJsX3JlbGF0aXZlIiwicGFyYW1fc2VwIiwibWV0aG9kIiwiYm9keSIsIndpZGdldCIsImFwcGVuZCIsImFkZFNob3dBbGxJbkZlZWQiLCJzaG93Tm90aWZpY2F0aW9uSW5GZWVkIiwibm90aWZpY2F0aW9uIiwic2hvd05vdGlmaWNhdGlvbkluVG9wIiwiY29udGFpbmVyIiwiZHVtbXkiLCJodG1sIiwiY2hpbGRyZW4iLCJzbGlkZURvd24iLCJzaG93Tm90aWZpY2F0aW9uSW5EYXNoYm9hcmQiLCJzaG93Tm90aWZpY2F0aW9uSW5QbHVnaW5zIiwic2hvd05vdGlmaWNhdGlvbkluVGhlbWVzIiwicmVhZCIsImRvY3VtZW50Iiwib24iLCJldmVudCIsIm5vdGlmaWNhdGlvbl9pZCIsInRhcmdldCIsInBhcmVudHMiLCJkYXRhIiwidXJsIiwiY3VycmVudFRhcmdldCIsInBhcmVudCIsInNsaWRlVXAiLCJwcmV2ZW50RGVmYXVsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/updates/notifications.js\n\n}");
/***/ }),
/***/ "./app/updates/update.js":
/*!*******************************!*\
!*** ./app/updates/update.js ***!
\*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_formatbytes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/formatbytes */ \"./app/utils/formatbytes.js\");\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./index */ \"./app/updates/index.js\");\n\n\n\n\n\n\n// Dashboard update and Grav update\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click.remodal', '[data-remodal-id=\"update-grav\"] [data-remodal-action=\"confirm\"]', function () {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#grav-update-button');\n\n // Safely get the file size with fallback\n var sizeText = '';\n if (_index__WEBPACK_IMPORTED_MODULE_4__.Instance.payload && _index__WEBPACK_IMPORTED_MODULE_4__.Instance.payload.grav && _index__WEBPACK_IMPORTED_MODULE_4__.Instance.payload.grav.assets && _index__WEBPACK_IMPORTED_MODULE_4__.Instance.payload.grav.assets['grav-update'] && _index__WEBPACK_IMPORTED_MODULE_4__.Instance.payload.grav.assets['grav-update'].size) {\n sizeText = \" \".concat((0,_utils_formatbytes__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_index__WEBPACK_IMPORTED_MODULE_4__.Instance.payload.grav.assets['grav-update'].size));\n }\n element.html(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.UPDATING_PLEASE_WAIT).concat(sizeText, \"..\"));\n element.attr('disabled', 'disabled').find('> .fa').removeClass('fa-cloud-download').addClass('fa-refresh fa-spin');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_index__WEBPACK_IMPORTED_MODULE_4__.Instance.updateURL, function (response) {\n if (response.type === 'updategrav') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-gpm-grav]').remove();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#footer .grav-version').html(response.version);\n }\n element.removeAttr('disabled').find('> .fa').removeClass('fa-refresh fa-spin').addClass('fa-cloud-download');\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXBkYXRlcy91cGRhdGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBdUI7QUFDb0I7QUFDSTtBQUNSO0FBQ007O0FBRTdDO0FBQ0FBLDZDQUFDLENBQUNNLFFBQVEsQ0FBQyxDQUFDQyxFQUFFLENBQUMsZUFBZSxFQUFFLGlFQUFpRSxFQUFFLFlBQU07RUFDckcsSUFBTUMsT0FBTyxHQUFHUiw2Q0FBQyxDQUFDLHFCQUFxQixDQUFDOztFQUV4QztFQUNBLElBQUlTLFFBQVEsR0FBRyxFQUFFO0VBQ2pCLElBQUlKLDRDQUFNLENBQUNLLE9BQU8sSUFDZEwsNENBQU0sQ0FBQ0ssT0FBTyxDQUFDQyxJQUFJLElBQ25CTiw0Q0FBTSxDQUFDSyxPQUFPLENBQUNDLElBQUksQ0FBQ0MsTUFBTSxJQUMxQlAsNENBQU0sQ0FBQ0ssT0FBTyxDQUFDQyxJQUFJLENBQUNDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFDekNQLDRDQUFNLENBQUNLLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUNDLElBQUksRUFBRTtJQUNoREosUUFBUSxPQUFBSyxNQUFBLENBQU9aLDhEQUFXLENBQUNHLDRDQUFNLENBQUNLLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUNDLElBQUksQ0FBQyxDQUFFO0VBQ2hGO0VBRUFMLE9BQU8sQ0FBQ08sSUFBSSxJQUFBRCxNQUFBLENBQUliLHFEQUFZLENBQUNlLFlBQVksQ0FBQ0Msb0JBQW9CLEVBQUFILE1BQUEsQ0FBR0wsUUFBUSxPQUFJLENBQUM7RUFFOUVELE9BQU8sQ0FBQ1UsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLG9CQUFvQixDQUFDO0VBRWxIbEIsMERBQU8sQ0FBQ0UsNENBQU0sQ0FBQ2lCLFNBQVMsRUFBRSxVQUFDQyxRQUFRLEVBQUs7SUFDcEMsSUFBSUEsUUFBUSxDQUFDQyxJQUFJLEtBQUssWUFBWSxFQUFFO01BQ2hDeEIsNkNBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDeUIsTUFBTSxDQUFDLENBQUM7TUFDN0J6Qiw2Q0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUNlLElBQUksQ0FBQ1EsUUFBUSxDQUFDRyxPQUFPLENBQUM7SUFDckQ7SUFFQWxCLE9BQU8sQ0FBQ21CLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLG1CQUFtQixDQUFDO0VBQ2hILENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXBkYXRlcy91cGRhdGUuanM/NDc2OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgdHJhbnNsYXRpb25zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IGZvcm1hdEJ5dGVzIGZyb20gJy4uL3V0aWxzL2Zvcm1hdGJ5dGVzJztcbmltcG9ydCByZXF1ZXN0IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QnO1xuaW1wb3J0IHsgSW5zdGFuY2UgYXMgVXBkYXRlIH0gZnJvbSAnLi9pbmRleCc7XG5cbi8vIERhc2hib2FyZCB1cGRhdGUgYW5kIEdyYXYgdXBkYXRlXG4kKGRvY3VtZW50KS5vbignY2xpY2sucmVtb2RhbCcsICdbZGF0YS1yZW1vZGFsLWlkPVwidXBkYXRlLWdyYXZcIl0gW2RhdGEtcmVtb2RhbC1hY3Rpb249XCJjb25maXJtXCJdJywgKCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSAkKCcjZ3Jhdi11cGRhdGUtYnV0dG9uJyk7XG5cbiAgICAvLyBTYWZlbHkgZ2V0IHRoZSBmaWxlIHNpemUgd2l0aCBmYWxsYmFja1xuICAgIGxldCBzaXplVGV4dCA9ICcnO1xuICAgIGlmIChVcGRhdGUucGF5bG9hZCAmJlxuICAgICAgICBVcGRhdGUucGF5bG9hZC5ncmF2ICYmXG4gICAgICAgIFVwZGF0ZS5wYXlsb2FkLmdyYXYuYXNzZXRzICYmXG4gICAgICAgIFVwZGF0ZS5wYXlsb2FkLmdyYXYuYXNzZXRzWydncmF2LXVwZGF0ZSddICYmXG4gICAgICAgIFVwZGF0ZS5wYXlsb2FkLmdyYXYuYXNzZXRzWydncmF2LXVwZGF0ZSddLnNpemUpIHtcbiAgICAgICAgc2l6ZVRleHQgPSBgICR7Zm9ybWF0Qnl0ZXMoVXBkYXRlLnBheWxvYWQuZ3Jhdi5hc3NldHNbJ2dyYXYtdXBkYXRlJ10uc2l6ZSl9YDtcbiAgICB9XG5cbiAgICBlbGVtZW50Lmh0bWwoYCR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5VUERBVElOR19QTEVBU0VfV0FJVH0ke3NpemVUZXh0fS4uYCk7XG5cbiAgICBlbGVtZW50LmF0dHIoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJykuZmluZCgnPiAuZmEnKS5yZW1vdmVDbGFzcygnZmEtY2xvdWQtZG93bmxvYWQnKS5hZGRDbGFzcygnZmEtcmVmcmVzaCBmYS1zcGluJyk7XG5cbiAgICByZXF1ZXN0KFVwZGF0ZS51cGRhdGVVUkwsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UudHlwZSA9PT0gJ3VwZGF0ZWdyYXYnKSB7XG4gICAgICAgICAgICAkKCdbZGF0YS1ncG0tZ3Jhdl0nKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICQoJyNmb290ZXIgLmdyYXYtdmVyc2lvbicpLmh0bWwocmVzcG9uc2UudmVyc2lvbik7XG4gICAgICAgIH1cblxuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHIoJ2Rpc2FibGVkJykuZmluZCgnPiAuZmEnKS5yZW1vdmVDbGFzcygnZmEtcmVmcmVzaCBmYS1zcGluJykuYWRkQ2xhc3MoJ2ZhLWNsb3VkLWRvd25sb2FkJyk7XG4gICAgfSk7XG59KTtcbiJdLCJuYW1lcyI6WyIkIiwidHJhbnNsYXRpb25zIiwiZm9ybWF0Qnl0ZXMiLCJyZXF1ZXN0IiwiSW5zdGFuY2UiLCJVcGRhdGUiLCJkb2N1bWVudCIsIm9uIiwiZWxlbWVudCIsInNpemVUZXh0IiwicGF5bG9hZCIsImdyYXYiLCJhc3NldHMiLCJzaXplIiwiY29uY2F0IiwiaHRtbCIsIlBMVUdJTl9BRE1JTiIsIlVQREFUSU5HX1BMRUFTRV9XQUlUIiwiYXR0ciIsImZpbmQiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwidXBkYXRlVVJMIiwicmVzcG9uc2UiLCJ0eXBlIiwicmVtb3ZlIiwidmVyc2lvbiIsInJlbW92ZUF0dHIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/updates/update.js\n\n}");
/***/ }),
/***/ "./app/utils/2fa.js":
/*!**************************!*\
!*** ./app/utils/2fa.js ***!
\**************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n\n\n\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n\n// Dashboard update and Grav update\nbody.on('click', '[data-2fa-regenerate]', function (event) {\n event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var url = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/ajax.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"regenerate2FASecret\");\n element.attr('disabled', 'disabled').find('> .fa').addClass('fa-spin');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post'\n }, function (response) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-2fa-image]').attr('src', response.image);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-2fa-secret]').text(response.secret);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-2fa-value]').val(response.secret.replace(' ', ''));\n element.removeAttr('disabled').find('> .fa').removeClass('fa-spin');\n });\n});\nvar toggleSecret = function toggleSecret() {\n var toggle = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#toggle_twofa_enabled1');\n var secret = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.twofa-secret');\n secret[toggle.is(':checked') ? 'addClass' : 'removeClass']('show');\n};\nbody.on('click', '.twofa-toggle input', toggleSecret);\ntoggleSecret();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvMmZhLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF1QjtBQUNjO0FBQ0U7QUFFdkMsSUFBTUcsSUFBSSxHQUFHSCw2Q0FBQyxDQUFDLE1BQU0sQ0FBQzs7QUFFdEI7QUFDQUcsSUFBSSxDQUFDQyxFQUFFLENBQUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFVBQVNDLEtBQUssRUFBRTtFQUN0REEsS0FBSyxDQUFDQyxjQUFjLENBQUMsQ0FBQztFQUN0QixJQUFJQyxPQUFPLEdBQUdQLDZDQUFDLENBQUMsSUFBSSxDQUFDO0VBQ3JCLElBQUlRLEdBQUcsTUFBQUMsTUFBQSxDQUFNUiwrQ0FBTSxDQUFDUyxpQkFBaUIscUJBQUFELE1BQUEsQ0FBa0JSLCtDQUFNLENBQUNVLFNBQVMsd0JBQXFCO0VBRTVGSixPQUFPLENBQUNLLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUNDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLFNBQVMsQ0FBQztFQUV0RVosMERBQU8sQ0FBQ00sR0FBRyxFQUFFO0lBQUVPLE1BQU0sRUFBRTtFQUFPLENBQUMsRUFBRSxVQUFDQyxRQUFRLEVBQUs7SUFDM0NoQiw2Q0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUNZLElBQUksQ0FBQyxLQUFLLEVBQUVJLFFBQVEsQ0FBQ0MsS0FBSyxDQUFDO0lBQ2pEakIsNkNBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDa0IsSUFBSSxDQUFDRixRQUFRLENBQUNHLE1BQU0sQ0FBQztJQUM1Q25CLDZDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQ29CLEdBQUcsQ0FBQ0osUUFBUSxDQUFDRyxNQUFNLENBQUNFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFM0RkLE9BQU8sQ0FBQ2UsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUNVLFdBQVcsQ0FBQyxTQUFTLENBQUM7RUFDdkUsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsSUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztFQUN2QixJQUFNQyxNQUFNLEdBQUd6Qiw2Q0FBQyxDQUFDLHdCQUF3QixDQUFDO0VBQzFDLElBQU1tQixNQUFNLEdBQUduQiw2Q0FBQyxDQUFDLGVBQWUsQ0FBQztFQUVqQ21CLE1BQU0sQ0FBQ00sTUFBTSxDQUFDQyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsVUFBVSxHQUFHLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUN0RSxDQUFDO0FBRUR2QixJQUFJLENBQUNDLEVBQUUsQ0FBQyxPQUFPLEVBQUUscUJBQXFCLEVBQUVvQixZQUFZLENBQUM7QUFDckRBLFlBQVksQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC91dGlscy8yZmEuanM/NDRhOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5cbmNvbnN0IGJvZHkgPSAkKCdib2R5Jyk7XG5cbi8vIERhc2hib2FyZCB1cGRhdGUgYW5kIEdyYXYgdXBkYXRlXG5ib2R5Lm9uKCdjbGljaycsICdbZGF0YS0yZmEtcmVnZW5lcmF0ZV0nLCBmdW5jdGlvbihldmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgbGV0IGVsZW1lbnQgPSAkKHRoaXMpO1xuICAgIGxldCB1cmwgPSBgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9L2FqYXguanNvbi90YXNrJHtjb25maWcucGFyYW1fc2VwfXJlZ2VuZXJhdGUyRkFTZWNyZXRgO1xuXG4gICAgZWxlbWVudC5hdHRyKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpLmZpbmQoJz4gLmZhJykuYWRkQ2xhc3MoJ2ZhLXNwaW4nKTtcblxuICAgIHJlcXVlc3QodXJsLCB7IG1ldGhvZDogJ3Bvc3QnIH0sIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAkKCdbZGF0YS0yZmEtaW1hZ2VdJykuYXR0cignc3JjJywgcmVzcG9uc2UuaW1hZ2UpO1xuICAgICAgICAkKCdbZGF0YS0yZmEtc2VjcmV0XScpLnRleHQocmVzcG9uc2Uuc2VjcmV0KTtcbiAgICAgICAgJCgnW2RhdGEtMmZhLXZhbHVlXScpLnZhbChyZXNwb25zZS5zZWNyZXQucmVwbGFjZSgnICcsICcnKSk7XG5cbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpLmZpbmQoJz4gLmZhJykucmVtb3ZlQ2xhc3MoJ2ZhLXNwaW4nKTtcbiAgICB9KTtcbn0pO1xuXG5jb25zdCB0b2dnbGVTZWNyZXQgPSAoKSA9PiB7XG4gICAgY29uc3QgdG9nZ2xlID0gJCgnI3RvZ2dsZV90d29mYV9lbmFibGVkMScpO1xuICAgIGNvbnN0IHNlY3JldCA9ICQoJy50d29mYS1zZWNyZXQnKTtcblxuICAgIHNlY3JldFt0b2dnbGUuaXMoJzpjaGVja2VkJykgPyAnYWRkQ2xhc3MnIDogJ3JlbW92ZUNsYXNzJ10oJ3Nob3cnKTtcbn07XG5cbmJvZHkub24oJ2NsaWNrJywgJy50d29mYS10b2dnbGUgaW5wdXQnLCB0b2dnbGVTZWNyZXQpO1xudG9nZ2xlU2VjcmV0KCk7XG4iXSwibmFtZXMiOlsiJCIsImNvbmZpZyIsInJlcXVlc3QiLCJib2R5Iiwib24iLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiZWxlbWVudCIsInVybCIsImNvbmNhdCIsImJhc2VfdXJsX3JlbGF0aXZlIiwicGFyYW1fc2VwIiwiYXR0ciIsImZpbmQiLCJhZGRDbGFzcyIsIm1ldGhvZCIsInJlc3BvbnNlIiwiaW1hZ2UiLCJ0ZXh0Iiwic2VjcmV0IiwidmFsIiwicmVwbGFjZSIsInJlbW92ZUF0dHIiLCJyZW1vdmVDbGFzcyIsInRvZ2dsZVNlY3JldCIsInRvZ2dsZSIsImlzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/2fa.js\n\n}");
/***/ }),
/***/ "./app/utils/bootstrap-collapse.js":
/*!*****************************************!*\
!*** ./app/utils/bootstrap-collapse.js ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.4.0\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n var _Collapse = function Collapse(element, options) {\n this.$element = $(element);\n this.options = $.extend({}, _Collapse.DEFAULTS, options);\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' + '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]');\n this.transitioning = null;\n if (this.options.parent) {\n this.$parent = this.getParent();\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger);\n }\n if (this.options.toggle) this.toggle();\n };\n _Collapse.VERSION = '3.4.0';\n _Collapse.TRANSITION_DURATION = 350;\n _Collapse.DEFAULTS = {\n toggle: true\n };\n _Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width');\n return hasWidth ? 'width' : 'height';\n };\n _Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return;\n var activesData;\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing');\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse');\n if (activesData && activesData.transitioning) return;\n }\n var startEvent = $.Event('show.bs.collapse');\n this.$element.trigger(startEvent);\n if (startEvent.isDefaultPrevented()) return;\n if (actives && actives.length) {\n Plugin.call(actives, 'hide');\n activesData || actives.data('bs.collapse', null);\n }\n var dimension = this.dimension();\n this.$element.removeClass('collapse').addClass('collapsing')[dimension](0).attr('aria-expanded', true);\n this.$trigger.removeClass('collapsed').attr('aria-expanded', true);\n this.transitioning = 1;\n var complete = function complete() {\n this.$element.removeClass('collapsing').addClass('collapse in')[dimension]('');\n this.transitioning = 0;\n this.$element.trigger('shown.bs.collapse');\n };\n if (!$.support.transition) return complete.call(this);\n var scrollSize = $.camelCase(['scroll', dimension].join('-'));\n this.$element.one('bsTransitionEnd', $.proxy(complete, this)).emulateTransitionEnd(_Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]);\n };\n _Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return;\n var startEvent = $.Event('hide.bs.collapse');\n this.$element.trigger(startEvent);\n if (startEvent.isDefaultPrevented()) return;\n var dimension = this.dimension();\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight;\n this.$element.addClass('collapsing').removeClass('collapse in').attr('aria-expanded', false);\n this.$trigger.addClass('collapsed').attr('aria-expanded', false);\n this.transitioning = 1;\n var complete = function complete() {\n this.transitioning = 0;\n this.$element.removeClass('collapsing').addClass('collapse').trigger('hidden.bs.collapse');\n };\n if (!$.support.transition) return complete.call(this);\n this.$element[dimension](0).one('bsTransitionEnd', $.proxy(complete, this)).emulateTransitionEnd(_Collapse.TRANSITION_DURATION);\n };\n _Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']();\n };\n _Collapse.prototype.getParent = function () {\n return $(this.options.parent).find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]').each($.proxy(function (i, element) {\n var $element = $(element);\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element);\n }, this)).end();\n };\n _Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in');\n $element.attr('aria-expanded', isOpen);\n $trigger.toggleClass('collapsed', !isOpen).attr('aria-expanded', isOpen);\n };\n function getTargetFromTrigger($trigger) {\n var href;\n var target = $trigger.attr('data-target') || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, ''); // strip for ie7\n\n return $(target);\n }\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.collapse');\n var options = $.extend({}, _Collapse.DEFAULTS, $this.data(), _typeof(option) === 'object' && option);\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false;\n if (!data) $this.data('bs.collapse', data = new _Collapse(this, options));\n if (typeof option === 'string') data[option]();\n });\n }\n var old = $.fn.collapse;\n $.fn.collapse = Plugin;\n $.fn.collapse.Constructor = _Collapse;\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old;\n return this;\n };\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this);\n if (!$this.attr('data-target')) e.preventDefault();\n var $target = getTargetFromTrigger($this);\n var data = $target.data('bs.collapse');\n var option = data ? 'toggle' : $this.data();\n Plugin.call($target, option);\n });\n}((jquery__WEBPACK_IMPORTED_MODULE_0___default()));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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aEMsSUFBSSxHQUFHNEMsT0FBTyxDQUFDNUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUN0QyxJQUFJK0IsTUFBTSxHQUFHL0IsSUFBSSxHQUFHLFFBQVEsR0FBR2dDLEtBQUssQ0FBQ2hDLElBQUksQ0FBQyxDQUFDO0lBRTNDSyxNQUFNLENBQUNDLElBQUksQ0FBQ3NDLE9BQU8sRUFBRWIsTUFBTSxDQUFDO0VBQ2hDLENBQUMsQ0FBQztBQUVOLENBQUMsQ0FBQzFELCtDQUFNLENBQUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2Jvb3RzdHJhcC1jb2xsYXBzZS5qcz9lMjUwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBqUXVlcnkgZnJvbSAnanF1ZXJ5JztcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBCb290c3RyYXA6IGNvbGxhcHNlLmpzIHYzLjQuMFxuICogaHR0cDovL2dldGJvb3RzdHJhcC5jb20vamF2YXNjcmlwdC8jY29sbGFwc2VcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQ29weXJpZ2h0IDIwMTEtMjAxNiBUd2l0dGVyLCBJbmMuXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIGpzaGludCBsYXRlZGVmOiBmYWxzZSAqL1xuXG4rKGZ1bmN0aW9uKCQpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvLyBDT0xMQVBTRSBQVUJMSUMgQ0xBU1MgREVGSU5JVElPTlxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICB2YXIgQ29sbGFwc2UgPSBmdW5jdGlvbihlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgQ29sbGFwc2UuREVGQVVMVFMsIG9wdGlvbnMpO1xuICAgICAgICB0aGlzLiR0cmlnZ2VyID0gJCgnW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl1baHJlZj1cIiMnICsgZWxlbWVudC5pZCArICdcIl0sJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAnW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl1bZGF0YS10YXJnZXQ9XCIjJyArIGVsZW1lbnQuaWQgKyAnXCJdJyk7XG4gICAgICAgIHRoaXMudHJhbnNpdGlvbmluZyA9IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5wYXJlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuJHBhcmVudCA9IHRoaXMuZ2V0UGFyZW50KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyh0aGlzLiRlbGVtZW50LCB0aGlzLiR0cmlnZ2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMudG9nZ2xlKSB0aGlzLnRvZ2dsZSgpO1xuICAgIH07XG5cbiAgICBDb2xsYXBzZS5WRVJTSU9OID0gJzMuNC4wJztcblxuICAgIENvbGxhcHNlLlRSQU5TSVRJT05fRFVSQVRJT04gPSAzNTA7XG5cbiAgICBDb2xsYXBzZS5ERUZBVUxUUyA9IHtcbiAgICAgICAgdG9nZ2xlOiB0cnVlXG4gICAgfTtcblxuICAgIENvbGxhcHNlLnByb3RvdHlwZS5kaW1lbnNpb24gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGhhc1dpZHRoID0gdGhpcy4kZWxlbWVudC5oYXNDbGFzcygnd2lkdGgnKTtcbiAgICAgICAgcmV0dXJuIGhhc1dpZHRoID8gJ3dpZHRoJyA6ICdoZWlnaHQnO1xuICAgIH07XG5cbiAgICBDb2xsYXBzZS5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy50cmFuc2l0aW9uaW5nIHx8IHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2luJykpIHJldHVybjtcblxuICAgICAgICB2YXIgYWN0aXZlc0RhdGE7XG4gICAgICAgIHZhciBhY3RpdmVzID0gdGhpcy4kcGFyZW50ICYmIHRoaXMuJHBhcmVudC5jaGlsZHJlbignLnBhbmVsJykuY2hpbGRyZW4oJy5pbiwgLmNvbGxhcHNpbmcnKTtcblxuICAgICAgICBpZiAoYWN0aXZlcyAmJiBhY3RpdmVzLmxlbmd0aCkge1xuICAgICAgICAgICAgYWN0aXZlc0RhdGEgPSBhY3RpdmVzLmRhdGEoJ2JzLmNvbGxhcHNlJyk7XG4gICAgICAgICAgICBpZiAoYWN0aXZlc0RhdGEgJiYgYWN0aXZlc0RhdGEudHJhbnNpdGlvbmluZykgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHN0YXJ0RXZlbnQgPSAkLkV2ZW50KCdzaG93LmJzLmNvbGxhcHNlJyk7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihzdGFydEV2ZW50KTtcbiAgICAgICAgaWYgKHN0YXJ0RXZlbnQuaXNEZWZhdWx0UHJldmVudGVkKCkpIHJldHVybjtcblxuICAgICAgICBpZiAoYWN0aXZlcyAmJiBhY3RpdmVzLmxlbmd0aCkge1xuICAgICAgICAgICAgUGx1Z2luLmNhbGwoYWN0aXZlcywgJ2hpZGUnKTtcbiAgICAgICAgICAgIGFjdGl2ZXNEYXRhIHx8IGFjdGl2ZXMuZGF0YSgnYnMuY29sbGFwc2UnLCBudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBkaW1lbnNpb24gPSB0aGlzLmRpbWVuc2lvbigpO1xuXG4gICAgICAgIHRoaXMuJGVsZW1lbnRcbiAgICAgICAgICAgIC5yZW1vdmVDbGFzcygnY29sbGFwc2UnKVxuICAgICAgICAgICAgLmFkZENsYXNzKCdjb2xsYXBzaW5nJylbZGltZW5zaW9uXSgwKVxuICAgICAgICAgICAgLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCB0cnVlKTtcblxuICAgICAgICB0aGlzLiR0cmlnZ2VyXG4gICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ2NvbGxhcHNlZCcpXG4gICAgICAgICAgICAuYXR0cignYXJpYS1leHBhbmRlZCcsIHRydWUpO1xuXG4gICAgICAgIHRoaXMudHJhbnNpdGlvbmluZyA9IDE7XG5cbiAgICAgICAgdmFyIGNvbXBsZXRlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB0aGlzLiRlbGVtZW50XG4gICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdjb2xsYXBzaW5nJylcbiAgICAgICAgICAgICAgICAuYWRkQ2xhc3MoJ2NvbGxhcHNlIGluJylbZGltZW5zaW9uXSgnJyk7XG4gICAgICAgICAgICB0aGlzLnRyYW5zaXRpb25pbmcgPSAwO1xuICAgICAgICAgICAgdGhpcy4kZWxlbWVudFxuICAgICAgICAgICAgICAgIC50cmlnZ2VyKCdzaG93bi5icy5jb2xsYXBzZScpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghJC5zdXBwb3J0LnRyYW5zaXRpb24pIHJldHVybiBjb21wbGV0ZS5jYWxsKHRoaXMpO1xuXG4gICAgICAgIHZhciBzY3JvbGxTaXplID0gJC5jYW1lbENhc2UoWydzY3JvbGwnLCBkaW1lbnNpb25dLmpvaW4oJy0nKSk7XG5cbiAgICAgICAgdGhpcy4kZWxlbWVudFxuICAgICAgICAgICAgLm9uZSgnYnNUcmFuc2l0aW9uRW5kJywgJC5wcm94eShjb21wbGV0ZSwgdGhpcykpXG4gICAgICAgICAgICAuZW11bGF0ZVRyYW5zaXRpb25FbmQoQ29sbGFwc2UuVFJBTlNJVElPTl9EVVJBVElPTilbZGltZW5zaW9uXSh0aGlzLiRlbGVtZW50WzBdW3Njcm9sbFNpemVdKTtcbiAgICB9O1xuXG4gICAgQ29sbGFwc2UucHJvdG90eXBlLmhpZGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMudHJhbnNpdGlvbmluZyB8fCAhdGhpcy4kZWxlbWVudC5oYXNDbGFzcygnaW4nKSkgcmV0dXJuO1xuXG4gICAgICAgIHZhciBzdGFydEV2ZW50ID0gJC5FdmVudCgnaGlkZS5icy5jb2xsYXBzZScpO1xuICAgICAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoc3RhcnRFdmVudCk7XG4gICAgICAgIGlmIChzdGFydEV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm47XG5cbiAgICAgICAgdmFyIGRpbWVuc2lvbiA9IHRoaXMuZGltZW5zaW9uKCk7XG5cbiAgICAgICAgdGhpcy4kZWxlbWVudFtkaW1lbnNpb25dKHRoaXMuJGVsZW1lbnRbZGltZW5zaW9uXSgpKVswXS5vZmZzZXRIZWlnaHQ7XG5cbiAgICAgICAgdGhpcy4kZWxlbWVudFxuICAgICAgICAgICAgLmFkZENsYXNzKCdjb2xsYXBzaW5nJylcbiAgICAgICAgICAgIC5yZW1vdmVDbGFzcygnY29sbGFwc2UgaW4nKVxuICAgICAgICAgICAgLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCBmYWxzZSk7XG5cbiAgICAgICAgdGhpcy4kdHJpZ2dlclxuICAgICAgICAgICAgLmFkZENsYXNzKCdjb2xsYXBzZWQnKVxuICAgICAgICAgICAgLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCBmYWxzZSk7XG5cbiAgICAgICAgdGhpcy50cmFuc2l0aW9uaW5nID0gMTtcblxuICAgICAgICB2YXIgY29tcGxldGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNpdGlvbmluZyA9IDA7XG4gICAgICAgICAgICB0aGlzLiRlbGVtZW50XG4gICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdjb2xsYXBzaW5nJylcbiAgICAgICAgICAgICAgICAuYWRkQ2xhc3MoJ2NvbGxhcHNlJylcbiAgICAgICAgICAgICAgICAudHJpZ2dlcignaGlkZGVuLmJzLmNvbGxhcHNlJyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKCEkLnN1cHBvcnQudHJhbnNpdGlvbikgcmV0dXJuIGNvbXBsZXRlLmNhbGwodGhpcyk7XG5cbiAgICAgICAgdGhpcy4kZWxlbWVudFtkaW1lbnNpb25dKDApXG4gICAgICAgICAgICAub25lKCdic1RyYW5zaXRpb25FbmQnLCAkLnByb3h5KGNvbXBsZXRlLCB0aGlzKSlcbiAgICAgICAgICAgIC5lbXVsYXRlVHJhbnNpdGlvbkVuZChDb2xsYXBzZS5UUkFOU0lUSU9OX0RVUkFUSU9OKTtcbiAgICB9O1xuXG4gICAgQ29sbGFwc2UucHJvdG90eXBlLnRvZ2dsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzW3RoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2luJykgPyAnaGlkZScgOiAnc2hvdyddKCk7XG4gICAgfTtcblxuICAgIENvbGxhcHNlLnByb3RvdHlwZS5nZXRQYXJlbnQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICQodGhpcy5vcHRpb25zLnBhcmVudClcbiAgICAgICAgICAgIC5maW5kKCdbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXVtkYXRhLXBhcmVudD1cIicgKyB0aGlzLm9wdGlvbnMucGFyZW50ICsgJ1wiXScpXG4gICAgICAgICAgICAuZWFjaCgkLnByb3h5KGZ1bmN0aW9uKGksIGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB2YXIgJGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKGdldFRhcmdldEZyb21UcmlnZ2VyKCRlbGVtZW50KSwgJGVsZW1lbnQpO1xuICAgICAgICAgICAgfSwgdGhpcykpXG4gICAgICAgICAgICAuZW5kKCk7XG4gICAgfTtcblxuICAgIENvbGxhcHNlLnByb3RvdHlwZS5hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3MgPSBmdW5jdGlvbigkZWxlbWVudCwgJHRyaWdnZXIpIHtcbiAgICAgICAgdmFyIGlzT3BlbiA9ICRlbGVtZW50Lmhhc0NsYXNzKCdpbicpO1xuXG4gICAgICAgICRlbGVtZW50LmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCBpc09wZW4pO1xuICAgICAgICAkdHJpZ2dlclxuICAgICAgICAgICAgLnRvZ2dsZUNsYXNzKCdjb2xsYXBzZWQnLCAhaXNPcGVuKVxuICAgICAgICAgICAgLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCBpc09wZW4pO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRUYXJnZXRGcm9tVHJpZ2dlcigkdHJpZ2dlcikge1xuICAgICAgICB2YXIgaHJlZjtcbiAgICAgICAgdmFyIHRhcmdldCA9ICR0cmlnZ2VyLmF0dHIoJ2RhdGEtdGFyZ2V0JykgfHxcbiAgICAgIChocmVmID0gJHRyaWdnZXIuYXR0cignaHJlZicpKSAmJiBocmVmLnJlcGxhY2UoLy4qKD89I1teXFxzXSskKS8sICcnKTsgLy8gc3RyaXAgZm9yIGllN1xuXG4gICAgICAgIHJldHVybiAkKHRhcmdldCk7XG4gICAgfVxuXG4gICAgLy8gQ09MTEFQU0UgUExVR0lOIERFRklOSVRJT05cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gICAgZnVuY3Rpb24gUGx1Z2luKG9wdGlvbikge1xuICAgICAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgIHZhciBkYXRhID0gJHRoaXMuZGF0YSgnYnMuY29sbGFwc2UnKTtcbiAgICAgICAgICAgIHZhciBvcHRpb25zID0gJC5leHRlbmQoe30sIENvbGxhcHNlLkRFRkFVTFRTLCAkdGhpcy5kYXRhKCksIHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnICYmIG9wdGlvbik7XG5cbiAgICAgICAgICAgIGlmICghZGF0YSAmJiBvcHRpb25zLnRvZ2dsZSAmJiAvc2hvd3xoaWRlLy50ZXN0KG9wdGlvbikpIG9wdGlvbnMudG9nZ2xlID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ2JzLmNvbGxhcHNlJywgKGRhdGEgPSBuZXcgQ29sbGFwc2UodGhpcywgb3B0aW9ucykpKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJykgZGF0YVtvcHRpb25dKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHZhciBvbGQgPSAkLmZuLmNvbGxhcHNlO1xuXG4gICAgJC5mbi5jb2xsYXBzZSA9IFBsdWdpbjtcbiAgICAkLmZuLmNvbGxhcHNlLkNvbnN0cnVjdG9yID0gQ29sbGFwc2U7XG5cbiAgICAvLyBDT0xMQVBTRSBOTyBDT05GTElDVFxuICAgIC8vID09PT09PT09PT09PT09PT09PT09XG5cbiAgICAkLmZuLmNvbGxhcHNlLm5vQ29uZmxpY3QgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgJC5mbi5jb2xsYXBzZSA9IG9sZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuICAgIC8vIENPTExBUFNFIERBVEEtQVBJXG4gICAgLy8gPT09PT09PT09PT09PT09PT1cblxuICAgICQoZG9jdW1lbnQpLm9uKCdjbGljay5icy5jb2xsYXBzZS5kYXRhLWFwaScsICdbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXScsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTtcblxuICAgICAgICBpZiAoISR0aGlzLmF0dHIoJ2RhdGEtdGFyZ2V0JykpIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB2YXIgJHRhcmdldCA9IGdldFRhcmdldEZyb21UcmlnZ2VyKCR0aGlzKTtcbiAgICAgICAgdmFyIGRhdGEgPSAkdGFyZ2V0LmRhdGEoJ2JzLmNvbGxhcHNlJyk7XG4gICAgICAgIHZhciBvcHRpb24gPSBkYXRhID8gJ3RvZ2dsZScgOiAkdGhpcy5kYXRhKCk7XG5cbiAgICAgICAgUGx1Z2luLmNhbGwoJHRhcmdldCwgb3B0aW9uKTtcbiAgICB9KTtcblxufShqUXVlcnkpKTtcbiJdLCJuYW1lcyI6WyJqUXVlcnkiLCIkIiwiQ29sbGFwc2UiLCJlbGVtZW50Iiwib3B0aW9ucyIsIiRlbGVtZW50IiwiZXh0ZW5kIiwiREVGQVVMVFMiLCIkdHJpZ2dlciIsImlkIiwidHJhbnNpdGlvbmluZyIsInBhcmVudCIsIiRwYXJlbnQiLCJnZXRQYXJlbnQiLCJhZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3MiLCJ0b2dnbGUiLCJWRVJTSU9OIiwiVFJBTlNJVElPTl9EVVJBVElPTiIsInByb3RvdHlwZSIsImRpbWVuc2lvbiIsImhhc1dpZHRoIiwiaGFzQ2xhc3MiLCJzaG93IiwiYWN0aXZlc0RhdGEiLCJhY3RpdmVzIiwiY2hpbGRyZW4iLCJsZW5ndGgiLCJkYXRhIiwic3RhcnRFdmVudCIsIkV2ZW50IiwidHJpZ2dlciIsImlzRGVmYXVsdFByZXZlbnRlZCIsIlBsdWdpbiIsImNhbGwiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwiYXR0ciIsImNvbXBsZXRlIiwic3VwcG9ydCIsInRyYW5zaXRpb24iLCJzY3JvbGxTaXplIiwiY2FtZWxDYXNlIiwiam9pbiIsIm9uZSIsInByb3h5IiwiZW11bGF0ZVRyYW5zaXRpb25FbmQiLCJoaWRlIiwib2Zmc2V0SGVpZ2h0IiwiZmluZCIsImVhY2giLCJpIiwiZ2V0VGFyZ2V0RnJvbVRyaWdnZXIiLCJlbmQiLCJpc09wZW4iLCJ0b2dnbGVDbGFzcyIsImhyZWYiLCJ0YXJnZXQiLCJyZXBsYWNlIiwib3B0aW9uIiwiJHRoaXMiLCJfdHlwZW9mIiwidGVzdCIsIm9sZCIsImZuIiwiY29sbGFwc2UiLCJDb25zdHJ1Y3RvciIsIm5vQ29uZmxpY3QiLCJkb2N1bWVudCIsIm9uIiwiZSIsInByZXZlbnREZWZhdWx0IiwiJHRhcmdldCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/bootstrap-collapse.js\n\n}");
/***/ }),
/***/ "./app/utils/bootstrap-datetimepicker.js":
/*!***********************************************!*\
!*** ./app/utils/bootstrap-datetimepicker.js ***!
\***********************************************/
/***/ ((module, exports, __webpack_require__) => {
eval("{var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*! version : 4.17.47\n =========================================================\n bootstrap-datetimejs\n https://github.com/Eonasdan/bootstrap-datetimepicker\n Copyright (c) 2015 Jonathan Peterson\n =========================================================\n */\n/*\n The MIT License (MIT)\n\n Copyright (c) 2015 Jonathan Peterson\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n/* global define:false */\n/* global jQuery:false */\n/* global moment:false */\n(function (factory) {\n 'use strict';\n\n if (true) {\n // AMD is used - Register as an anonymous module.\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ \"jquery\"), __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else // removed by dead control flow\n{}\n})(function ($, moment) {\n 'use strict';\n\n if (!moment) {\n throw new Error('bootstrap-datetimepicker requires Moment.js to be loaded first');\n }\n var dateTimePicker = function dateTimePicker(element, options) {\n var picker = {};\n var date;\n var viewDate;\n var unset = true;\n var input;\n var component = false;\n var widget = false;\n var use24Hours;\n var minViewModeNumber = 0;\n var actualFormat;\n var parseFormats;\n var currentViewMode;\n var datePickerModes = [{\n clsName: 'days',\n navFnc: 'M',\n navStep: 1\n }, {\n clsName: 'months',\n navFnc: 'y',\n navStep: 1\n }, {\n clsName: 'years',\n navFnc: 'y',\n navStep: 10\n }, {\n clsName: 'decades',\n navFnc: 'y',\n navStep: 100\n }];\n var viewModes = ['days', 'months', 'years', 'decades'];\n var verticalModes = ['top', 'bottom', 'auto'];\n var horizontalModes = ['left', 'right', 'auto'];\n var toolbarPlacements = ['default', 'top', 'bottom'];\n var keyMap = {\n 'up': 38,\n 38: 'up',\n 'down': 40,\n 40: 'down',\n 'left': 37,\n 37: 'left',\n 'right': 39,\n 39: 'right',\n 'tab': 9,\n 9: 'tab',\n 'escape': 27,\n 27: 'escape',\n 'enter': 13,\n 13: 'enter',\n 'pageUp': 33,\n 33: 'pageUp',\n 'pageDown': 34,\n 34: 'pageDown',\n 'shift': 16,\n 16: 'shift',\n 'control': 17,\n 17: 'control',\n 'space': 32,\n 32: 'space',\n 't': 84,\n 84: 't',\n 'delete': 46,\n 46: 'delete'\n };\n var keyState = {};\n\n /** ******************************************************************************\n *\n * Private functions\n *\n ********************************************************************************/\n\n var hasTimeZone = function hasTimeZone() {\n return moment.tz !== undefined && options.timeZone !== undefined && options.timeZone !== null && options.timeZone !== '';\n };\n var getMoment = function getMoment(d) {\n var returnMoment;\n if (d === undefined || d === null) {\n returnMoment = moment(); // TODO should this use format? and locale?\n } else if (moment.isDate(d) || moment.isMoment(d)) {\n // If the date that is passed in is already a Date() or moment() object,\n // pass it directly to moment.\n returnMoment = moment(d);\n } else if (hasTimeZone()) {\n // There is a string to parse and a default time zone\n // parse with the tz function which takes a default time zone if it is not in the format string\n returnMoment = moment.tz(d, parseFormats, options.useStrict, options.timeZone);\n } else {\n returnMoment = moment(d, parseFormats, options.useStrict);\n }\n if (hasTimeZone()) {\n returnMoment.tz(options.timeZone);\n }\n return returnMoment;\n };\n var isEnabled = function isEnabled(granularity) {\n if (typeof granularity !== 'string' || granularity.length > 1) {\n throw new TypeError('isEnabled expects a single character string parameter');\n }\n switch (granularity) {\n case 'y':\n return actualFormat.indexOf('Y') !== -1;\n case 'M':\n return actualFormat.indexOf('M') !== -1;\n case 'd':\n return actualFormat.toLowerCase().indexOf('d') !== -1;\n case 'h':\n case 'H':\n return actualFormat.toLowerCase().indexOf('h') !== -1;\n case 'm':\n return actualFormat.indexOf('m') !== -1;\n case 's':\n return actualFormat.indexOf('s') !== -1;\n default:\n return false;\n }\n };\n var hasTime = function hasTime() {\n return isEnabled('h') || isEnabled('m') || isEnabled('s');\n };\n var hasDate = function hasDate() {\n return isEnabled('y') || isEnabled('M') || isEnabled('d');\n };\n var getDatePickerTemplate = function getDatePickerTemplate() {\n var headTemplate = $('
').append($('').append($('').addClass('prev').attr('data-action', 'previous').append($('').addClass(options.icons.previous))).append($(' ').addClass('picker-switch').attr('data-action', 'pickerSwitch').attr('colspan', options.calendarWeeks ? '6' : '5')).append($(' ').addClass('next').attr('data-action', 'next').append($('').addClass(options.icons.next))));\n var contTemplate = $('').append($('').append($('').attr('colspan', options.calendarWeeks ? '8' : '7')));\n return [$('').addClass('datepicker-days').append($('
').addClass('table-condensed').append(headTemplate).append($(''))), $('').addClass('datepicker-months').append($('
').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('').addClass('datepicker-years').append($('
').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('').addClass('datepicker-decades').append($('
').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone()))];\n };\n var getTimePickerMainTemplate = function getTimePickerMainTemplate() {\n var topRow = $('');\n var middleRow = $(' ');\n var bottomRow = $(' ');\n if (isEnabled('h')) {\n topRow.append($('').append($('').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.incrementHour\n }).addClass('btn').attr('data-action', 'incrementHours').append($('').addClass(options.icons.up))));\n middleRow.append($(' ').append($('').addClass('timepicker-hour').attr({\n 'data-time-component': 'hours',\n 'title': options.tooltips.pickHour\n }).attr('data-action', 'showHours')));\n bottomRow.append($(' ').append($('').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.decrementHour\n }).addClass('btn').attr('data-action', 'decrementHours').append($('').addClass(options.icons.down))));\n }\n if (isEnabled('m')) {\n if (isEnabled('h')) {\n topRow.append($(' ').addClass('separator'));\n middleRow.append($(' ').addClass('separator').html(':'));\n bottomRow.append($(' ').addClass('separator'));\n }\n topRow.append($(' ').append($('').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.incrementMinute\n }).addClass('btn').attr('data-action', 'incrementMinutes').append($('').addClass(options.icons.up))));\n middleRow.append($(' ').append($('').addClass('timepicker-minute').attr({\n 'data-time-component': 'minutes',\n 'title': options.tooltips.pickMinute\n }).attr('data-action', 'showMinutes')));\n bottomRow.append($(' ').append($('').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.decrementMinute\n }).addClass('btn').attr('data-action', 'decrementMinutes').append($('').addClass(options.icons.down))));\n }\n if (isEnabled('s')) {\n if (isEnabled('m')) {\n topRow.append($(' ').addClass('separator'));\n middleRow.append($(' ').addClass('separator').html(':'));\n bottomRow.append($(' ').addClass('separator'));\n }\n topRow.append($(' ').append($('').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.incrementSecond\n }).addClass('btn').attr('data-action', 'incrementSeconds').append($('').addClass(options.icons.up))));\n middleRow.append($(' ').append($('').addClass('timepicker-second').attr({\n 'data-time-component': 'seconds',\n 'title': options.tooltips.pickSecond\n }).attr('data-action', 'showSeconds')));\n bottomRow.append($(' ').append($('').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.decrementSecond\n }).addClass('btn').attr('data-action', 'decrementSeconds').append($('').addClass(options.icons.down))));\n }\n if (!use24Hours) {\n topRow.append($(' ').addClass('separator'));\n middleRow.append($(' ').append($('').addClass('btn btn-primary').attr({\n 'data-action': 'togglePeriod',\n tabindex: '-1',\n 'title': options.tooltips.togglePeriod\n })));\n bottomRow.append($('').addClass('separator'));\n }\n return $('').addClass('timepicker-picker').append($('
').addClass('table-condensed').append([topRow, middleRow, bottomRow]));\n };\n var getTimePickerTemplate = function getTimePickerTemplate() {\n var hoursView = $('').addClass('timepicker-hours').append($('
').addClass('table-condensed'));\n var minutesView = $('').addClass('timepicker-minutes').append($('
').addClass('table-condensed'));\n var secondsView = $('').addClass('timepicker-seconds').append($('
').addClass('table-condensed'));\n var ret = [getTimePickerMainTemplate()];\n if (isEnabled('h')) {\n ret.push(hoursView);\n }\n if (isEnabled('m')) {\n ret.push(minutesView);\n }\n if (isEnabled('s')) {\n ret.push(secondsView);\n }\n return ret;\n };\n var getToolbar = function getToolbar() {\n var row = [];\n if (options.showTodayButton) {\n row.push($('').append($('').attr({\n 'data-action': 'today',\n 'title': options.tooltips.today\n }).append($('').addClass(options.icons.today))));\n }\n if (!options.sideBySide && hasDate() && hasTime()) {\n row.push($(' ').append($('').attr({\n 'data-action': 'togglePicker',\n 'title': options.tooltips.selectTime\n }).append($('').addClass(options.icons.time))));\n }\n if (options.showClear) {\n row.push($(' ').append($('').attr({\n 'data-action': 'clear',\n 'title': options.tooltips.clear\n }).append($('').addClass(options.icons.clear))));\n }\n if (options.showClose) {\n row.push($(' ').append($('').attr({\n 'data-action': 'close',\n 'title': options.tooltips.close\n }).append($('').addClass(options.icons.close))));\n }\n return $('').addClass('table-condensed').append($('').append($('').append(row)));\n };\n var getTemplate = function getTemplate() {\n var template = $('').addClass('bootstrap-datetimepicker-widget dropdown-menu');\n var dateView = $('
').addClass('datepicker').append(getDatePickerTemplate());\n var timeView = $('
').addClass('timepicker').append(getTimePickerTemplate());\n var content = $('
').addClass('list-unstyled');\n var toolbar = $('').addClass('picker-switch' + (options.collapse ? ' accordion-toggle' : '')).append(getToolbar());\n if (options.inline) {\n template.removeClass('dropdown-menu');\n }\n if (use24Hours) {\n template.addClass('usetwentyfour');\n }\n if (isEnabled('s') && !use24Hours) {\n template.addClass('wider');\n }\n if (options.sideBySide && hasDate() && hasTime()) {\n template.addClass('timepicker-sbs');\n if (options.toolbarPlacement === 'top') {\n template.append(toolbar);\n }\n template.append($('').addClass('row').append(dateView.addClass('col-md-6')).append(timeView.addClass('col-md-6')));\n if (options.toolbarPlacement === 'bottom') {\n template.append(toolbar);\n }\n return template;\n }\n if (options.toolbarPlacement === 'top') {\n content.append(toolbar);\n }\n if (hasDate()) {\n content.append($('
').addClass(options.collapse && hasTime() ? 'collapse in' : '').append(dateView));\n }\n if (options.toolbarPlacement === 'default') {\n content.append(toolbar);\n }\n if (hasTime()) {\n content.append($(' ').addClass(options.collapse && hasDate() ? 'collapse' : '').append(timeView));\n }\n if (options.toolbarPlacement === 'bottom') {\n content.append(toolbar);\n }\n return template.append(content);\n };\n var dataToOptions = function dataToOptions() {\n var eData;\n var dataOptions = {};\n if (element.is('input') || options.inline) {\n eData = element.data();\n } else {\n eData = element.find('input').data();\n }\n if (eData.dateOptions && eData.dateOptions instanceof Object) {\n dataOptions = $.extend(true, dataOptions, eData.dateOptions);\n }\n $.each(options, function (key) {\n var attributeName = 'date' + key.charAt(0).toUpperCase() + key.slice(1);\n if (eData[attributeName] !== undefined) {\n dataOptions[key] = eData[attributeName];\n }\n });\n return dataOptions;\n };\n var place = function place() {\n var position = (component || element).position();\n var offset = (component || element).offset();\n var vertical = options.widgetPositioning.vertical;\n var horizontal = options.widgetPositioning.horizontal;\n var parent;\n if (options.widgetParent) {\n parent = options.widgetParent.append(widget);\n } else if (element.is('input')) {\n parent = element.after(widget).parent();\n } else if (options.inline) {\n parent = element.append(widget);\n return;\n } else {\n parent = element;\n element.children().first().after(widget);\n }\n\n // Top and bottom logic\n if (vertical === 'auto') {\n if (offset.top + widget.height() * 1.5 >= $(window).height() + $(window).scrollTop() && widget.height() + element.outerHeight() < offset.top) {\n vertical = 'top';\n } else {\n vertical = 'bottom';\n }\n }\n\n // Left and right logic\n if (horizontal === 'auto') {\n if (parent.width() < offset.left + widget.outerWidth() / 2 && offset.left + widget.outerWidth() > $(window).width()) {\n horizontal = 'right';\n } else {\n horizontal = 'left';\n }\n }\n if (vertical === 'top') {\n widget.addClass('top').removeClass('bottom');\n } else {\n widget.addClass('bottom').removeClass('top');\n }\n if (horizontal === 'right') {\n widget.addClass('pull-right');\n } else {\n widget.removeClass('pull-right');\n }\n\n // find the first parent element that has a non-static css positioning\n if (parent.css('position') === 'static') {\n parent = parent.parents().filter(function () {\n return $(this).css('position') !== 'static';\n }).first();\n }\n if (parent.length === 0) {\n throw new Error('datetimepicker component should be placed within a non-static positioned container');\n }\n widget.css({\n top: vertical === 'top' ? 'auto' : position.top + element.outerHeight(),\n bottom: vertical === 'top' ? parent.outerHeight() - (parent === element ? 0 : position.top) : 'auto',\n left: horizontal === 'left' ? parent === element ? 0 : position.left : 'auto',\n right: horizontal === 'left' ? 'auto' : parent.outerWidth() - element.outerWidth() - (parent === element ? 0 : position.left)\n });\n };\n var notifyEvent = function notifyEvent(e) {\n if (e.type === 'dp.change' && (e.date && e.date.isSame(e.oldDate) || !e.date && !e.oldDate)) {\n return;\n }\n element.trigger(e);\n };\n var viewUpdate = function viewUpdate(e) {\n if (e === 'y') {\n e = 'YYYY';\n }\n notifyEvent({\n type: 'dp.update',\n change: e,\n viewDate: viewDate.clone()\n });\n };\n var showMode = function showMode(dir) {\n if (!widget) {\n return;\n }\n if (dir) {\n currentViewMode = Math.max(minViewModeNumber, Math.min(3, currentViewMode + dir));\n }\n widget.find('.datepicker > div').hide().filter('.datepicker-' + datePickerModes[currentViewMode].clsName).show();\n };\n var fillDow = function fillDow() {\n var row = $('');\n var currentDate = viewDate.clone().startOf('w').startOf('d');\n if (options.calendarWeeks === true) {\n row.append($('').addClass('cw').text('#'));\n }\n while (currentDate.isBefore(viewDate.clone().endOf('w'))) {\n row.append($(' ').addClass('dow').text(currentDate.format('dd')));\n currentDate.add(1, 'd');\n }\n widget.find('.datepicker-days thead').append(row);\n };\n var isInDisabledDates = function isInDisabledDates(testDate) {\n return options.disabledDates[testDate.format('YYYY-MM-DD')] === true;\n };\n var isInEnabledDates = function isInEnabledDates(testDate) {\n return options.enabledDates[testDate.format('YYYY-MM-DD')] === true;\n };\n var isInDisabledHours = function isInDisabledHours(testDate) {\n return options.disabledHours[testDate.format('H')] === true;\n };\n var isInEnabledHours = function isInEnabledHours(testDate) {\n return options.enabledHours[testDate.format('H')] === true;\n };\n var isValid = function isValid(targetMoment, granularity) {\n if (!targetMoment.isValid()) {\n return false;\n }\n if (options.disabledDates && granularity === 'd' && isInDisabledDates(targetMoment)) {\n return false;\n }\n if (options.enabledDates && granularity === 'd' && !isInEnabledDates(targetMoment)) {\n return false;\n }\n if (options.minDate && targetMoment.isBefore(options.minDate, granularity)) {\n return false;\n }\n if (options.maxDate && targetMoment.isAfter(options.maxDate, granularity)) {\n return false;\n }\n if (options.daysOfWeekDisabled && granularity === 'd' && options.daysOfWeekDisabled.indexOf(targetMoment.day()) !== -1) {\n return false;\n }\n if (options.disabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && isInDisabledHours(targetMoment)) {\n return false;\n }\n if (options.enabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && !isInEnabledHours(targetMoment)) {\n return false;\n }\n if (options.disabledTimeIntervals && (granularity === 'h' || granularity === 'm' || granularity === 's')) {\n var found = false;\n $.each(options.disabledTimeIntervals, function () {\n if (targetMoment.isBetween(this[0], this[1])) {\n found = true;\n return false;\n }\n });\n if (found) {\n return false;\n }\n }\n return true;\n };\n var fillMonths = function fillMonths() {\n var spans = [];\n var monthsShort = viewDate.clone().startOf('y').startOf('d');\n while (monthsShort.isSame(viewDate, 'y')) {\n spans.push($('').attr('data-action', 'selectMonth').addClass('month').text(monthsShort.format('MMM')));\n monthsShort.add(1, 'M');\n }\n widget.find('.datepicker-months td').empty().append(spans);\n };\n var updateMonths = function updateMonths() {\n var monthsView = widget.find('.datepicker-months');\n var monthsViewHeader = monthsView.find('th');\n var months = monthsView.find('tbody').find('span');\n monthsViewHeader.eq(0).find('span').attr('title', options.tooltips.prevYear);\n monthsViewHeader.eq(1).attr('title', options.tooltips.selectYear);\n monthsViewHeader.eq(2).find('span').attr('title', options.tooltips.nextYear);\n monthsView.find('.disabled').removeClass('disabled');\n if (!isValid(viewDate.clone().subtract(1, 'y'), 'y')) {\n monthsViewHeader.eq(0).addClass('disabled');\n }\n monthsViewHeader.eq(1).text(viewDate.year());\n if (!isValid(viewDate.clone().add(1, 'y'), 'y')) {\n monthsViewHeader.eq(2).addClass('disabled');\n }\n months.removeClass('active');\n if (date.isSame(viewDate, 'y') && !unset) {\n months.eq(date.month()).addClass('active');\n }\n months.each(function (index) {\n if (!isValid(viewDate.clone().month(index), 'M')) {\n $(this).addClass('disabled');\n }\n });\n };\n var updateYears = function updateYears() {\n var yearsView = widget.find('.datepicker-years');\n var yearsViewHeader = yearsView.find('th');\n var startYear = viewDate.clone().subtract(5, 'y');\n var endYear = viewDate.clone().add(6, 'y');\n var html = '';\n yearsViewHeader.eq(0).find('span').attr('title', options.tooltips.prevDecade);\n yearsViewHeader.eq(1).attr('title', options.tooltips.selectDecade);\n yearsViewHeader.eq(2).find('span').attr('title', options.tooltips.nextDecade);\n yearsView.find('.disabled').removeClass('disabled');\n if (options.minDate && options.minDate.isAfter(startYear, 'y')) {\n yearsViewHeader.eq(0).addClass('disabled');\n }\n yearsViewHeader.eq(1).text(startYear.year() + '-' + endYear.year());\n if (options.maxDate && options.maxDate.isBefore(endYear, 'y')) {\n yearsViewHeader.eq(2).addClass('disabled');\n }\n while (!startYear.isAfter(endYear, 'y')) {\n html += '' + startYear.year() + ' ';\n startYear.add(1, 'y');\n }\n yearsView.find('td').html(html);\n };\n var updateDecades = function updateDecades() {\n var decadesView = widget.find('.datepicker-decades');\n var decadesViewHeader = decadesView.find('th');\n var startDecade = moment({\n y: viewDate.year() - viewDate.year() % 100 - 1\n });\n var endDecade = startDecade.clone().add(100, 'y');\n var startedAt = startDecade.clone();\n var minDateDecade = false;\n var maxDateDecade = false;\n var endDecadeYear;\n var html = '';\n decadesViewHeader.eq(0).find('span').attr('title', options.tooltips.prevCentury);\n decadesViewHeader.eq(2).find('span').attr('title', options.tooltips.nextCentury);\n decadesView.find('.disabled').removeClass('disabled');\n if (startDecade.isSame(moment({\n y: 1900\n })) || options.minDate && options.minDate.isAfter(startDecade, 'y')) {\n decadesViewHeader.eq(0).addClass('disabled');\n }\n decadesViewHeader.eq(1).text(startDecade.year() + '-' + endDecade.year());\n if (startDecade.isSame(moment({\n y: 2000\n })) || options.maxDate && options.maxDate.isBefore(endDecade, 'y')) {\n decadesViewHeader.eq(2).addClass('disabled');\n }\n while (!startDecade.isAfter(endDecade, 'y')) {\n endDecadeYear = startDecade.year() + 12;\n minDateDecade = options.minDate && options.minDate.isAfter(startDecade, 'y') && options.minDate.year() <= endDecadeYear;\n maxDateDecade = options.maxDate && options.maxDate.isAfter(startDecade, 'y') && options.maxDate.year() <= endDecadeYear;\n html += '' + (startDecade.year() + 1) + ' - ' + (startDecade.year() + 12) + ' ';\n startDecade.add(12, 'y');\n }\n html += ' '; // push the dangling block over, at least this way it's even\n\n decadesView.find('td').html(html);\n decadesViewHeader.eq(1).text(startedAt.year() + 1 + '-' + startDecade.year());\n };\n var fillDate = function fillDate() {\n var daysView = widget.find('.datepicker-days');\n var daysViewHeader = daysView.find('th');\n var currentDate;\n var html = [];\n var row;\n var clsNames = [];\n var i;\n if (!hasDate()) {\n return;\n }\n daysViewHeader.eq(0).find('span').attr('title', options.tooltips.prevMonth);\n daysViewHeader.eq(1).attr('title', options.tooltips.selectMonth);\n daysViewHeader.eq(2).find('span').attr('title', options.tooltips.nextMonth);\n daysView.find('.disabled').removeClass('disabled');\n daysViewHeader.eq(1).text(viewDate.format(options.dayViewHeaderFormat));\n if (!isValid(viewDate.clone().subtract(1, 'M'), 'M')) {\n daysViewHeader.eq(0).addClass('disabled');\n }\n if (!isValid(viewDate.clone().add(1, 'M'), 'M')) {\n daysViewHeader.eq(2).addClass('disabled');\n }\n currentDate = viewDate.clone().startOf('M').startOf('w').startOf('d');\n for (i = 0; i < 42; i++) {\n // always display 42 days (should show 6 weeks)\n if (currentDate.weekday() === 0) {\n row = $('');\n if (options.calendarWeeks) {\n row.append('' + currentDate.week() + ' ');\n }\n html.push(row);\n }\n clsNames = ['day'];\n if (currentDate.isBefore(viewDate, 'M')) {\n clsNames.push('old');\n }\n if (currentDate.isAfter(viewDate, 'M')) {\n clsNames.push('new');\n }\n if (currentDate.isSame(date, 'd') && !unset) {\n clsNames.push('active');\n }\n if (!isValid(currentDate, 'd')) {\n clsNames.push('disabled');\n }\n if (currentDate.isSame(getMoment(), 'd')) {\n clsNames.push('today');\n }\n if (currentDate.day() === 0 || currentDate.day() === 6) {\n clsNames.push('weekend');\n }\n notifyEvent({\n type: 'dp.classify',\n date: currentDate,\n classNames: clsNames\n });\n row.append('' + currentDate.date() + ' ');\n currentDate.add(1, 'd');\n }\n daysView.find('tbody').empty().append(html);\n updateMonths();\n updateYears();\n updateDecades();\n };\n var fillHours = function fillHours() {\n var table = widget.find('.timepicker-hours table');\n var currentHour = viewDate.clone().startOf('d');\n var html = [];\n var row = $(' ');\n if (viewDate.hour() > 11 && !use24Hours) {\n currentHour.hour(12);\n }\n while (currentHour.isSame(viewDate, 'd') && (use24Hours || viewDate.hour() < 12 && currentHour.hour() < 12 || viewDate.hour() > 11)) {\n if (currentHour.hour() % 4 === 0) {\n row = $(' ');\n html.push(row);\n }\n row.append('' + currentHour.format(use24Hours ? 'HH' : 'hh') + ' ');\n currentHour.add(1, 'h');\n }\n table.empty().append(html);\n };\n var fillMinutes = function fillMinutes() {\n var table = widget.find('.timepicker-minutes table');\n var currentMinute = viewDate.clone().startOf('h');\n var html = [];\n var row = $(' ');\n var step = options.stepping === 1 ? 5 : options.stepping;\n while (viewDate.isSame(currentMinute, 'h')) {\n if (currentMinute.minute() % (step * 4) === 0) {\n row = $(' ');\n html.push(row);\n }\n row.append('' + currentMinute.format('mm') + ' ');\n currentMinute.add(step, 'm');\n }\n table.empty().append(html);\n };\n var fillSeconds = function fillSeconds() {\n var table = widget.find('.timepicker-seconds table');\n var currentSecond = viewDate.clone().startOf('m');\n var html = [];\n var row = $(' ');\n while (viewDate.isSame(currentSecond, 'm')) {\n if (currentSecond.second() % 20 === 0) {\n row = $(' ');\n html.push(row);\n }\n row.append('' + currentSecond.format('ss') + ' ');\n currentSecond.add(5, 's');\n }\n table.empty().append(html);\n };\n var fillTime = function fillTime() {\n var toggle;\n var newDate;\n var timeComponents = widget.find('.timepicker span[data-time-component]');\n if (!use24Hours) {\n toggle = widget.find('.timepicker [data-action=togglePeriod]');\n newDate = date.clone().add(date.hours() >= 12 ? -12 : 12, 'h');\n toggle.text(date.format('A'));\n if (isValid(newDate, 'h')) {\n toggle.removeClass('disabled');\n } else {\n toggle.addClass('disabled');\n }\n }\n timeComponents.filter('[data-time-component=hours]').text(date.format(use24Hours ? 'HH' : 'hh'));\n timeComponents.filter('[data-time-component=minutes]').text(date.format('mm'));\n timeComponents.filter('[data-time-component=seconds]').text(date.format('ss'));\n fillHours();\n fillMinutes();\n fillSeconds();\n };\n var update = function update() {\n if (!widget) {\n return;\n }\n fillDate();\n fillTime();\n };\n var setValue = function setValue(targetMoment) {\n var oldDate = unset ? null : date;\n\n // case of calling setValue(null or false)\n if (!targetMoment) {\n unset = true;\n input.val('');\n element.data('date', '');\n notifyEvent({\n type: 'dp.change',\n date: false,\n oldDate: oldDate\n });\n update();\n return;\n }\n targetMoment = targetMoment.clone().locale(options.locale);\n if (hasTimeZone()) {\n targetMoment.tz(options.timeZone);\n }\n if (options.stepping !== 1) {\n targetMoment.minutes(Math.round(targetMoment.minutes() / options.stepping) * options.stepping).seconds(0);\n while (options.minDate && targetMoment.isBefore(options.minDate)) {\n targetMoment.add(options.stepping, 'minutes');\n }\n }\n if (isValid(targetMoment)) {\n date = targetMoment;\n viewDate = date.clone();\n input.val(date.format(actualFormat));\n element.data('date', date.format(actualFormat));\n unset = false;\n update();\n notifyEvent({\n type: 'dp.change',\n date: date.clone(),\n oldDate: oldDate\n });\n } else {\n if (!options.keepInvalid) {\n input.val(unset ? '' : date.format(actualFormat));\n } else {\n notifyEvent({\n type: 'dp.change',\n date: targetMoment,\n oldDate: oldDate\n });\n }\n notifyEvent({\n type: 'dp.error',\n date: targetMoment,\n oldDate: oldDate\n });\n }\n };\n\n /**\n * Hides the widget. Possibly will emit dp.hide\n */\n var hide = function hide() {\n var transitioning = false;\n if (!widget) {\n return picker;\n }\n // Ignore event if in the middle of a picker transition\n widget.find('.collapse').each(function () {\n var collapseData = $(this).data('collapse');\n if (collapseData && collapseData.transitioning) {\n transitioning = true;\n return false;\n }\n return true;\n });\n if (transitioning) {\n return picker;\n }\n if (component && component.hasClass('btn')) {\n component.toggleClass('active');\n }\n widget.hide();\n $(window).off('resize', place);\n widget.off('click', '[data-action]');\n widget.off('mousedown', false);\n widget.remove();\n widget = false;\n notifyEvent({\n type: 'dp.hide',\n date: date.clone()\n });\n input.blur();\n viewDate = date.clone();\n return picker;\n };\n var clear = function clear() {\n setValue(null);\n };\n var parseInputDate = function parseInputDate(inputDate) {\n if (options.parseInputDate === undefined) {\n if (!moment.isMoment(inputDate) || inputDate instanceof Date) {\n inputDate = getMoment(inputDate);\n }\n } else {\n inputDate = options.parseInputDate(inputDate);\n }\n // inputDate.locale(options.locale);\n return inputDate;\n };\n\n /** ******************************************************************************\n *\n * Widget UI interaction functions\n *\n ********************************************************************************/\n var actions = {\n next: function next() {\n var navFnc = datePickerModes[currentViewMode].navFnc;\n viewDate.add(datePickerModes[currentViewMode].navStep, navFnc);\n fillDate();\n viewUpdate(navFnc);\n },\n previous: function previous() {\n var navFnc = datePickerModes[currentViewMode].navFnc;\n viewDate.subtract(datePickerModes[currentViewMode].navStep, navFnc);\n fillDate();\n viewUpdate(navFnc);\n },\n pickerSwitch: function pickerSwitch() {\n showMode(1);\n },\n selectMonth: function selectMonth(e) {\n var month = $(e.target).closest('tbody').find('span').index($(e.target));\n viewDate.month(month);\n if (currentViewMode === minViewModeNumber) {\n setValue(date.clone().year(viewDate.year()).month(viewDate.month()));\n if (!options.inline) {\n hide();\n }\n } else {\n showMode(-1);\n fillDate();\n }\n viewUpdate('M');\n },\n selectYear: function selectYear(e) {\n var year = parseInt($(e.target).text(), 10) || 0;\n viewDate.year(year);\n if (currentViewMode === minViewModeNumber) {\n setValue(date.clone().year(viewDate.year()));\n if (!options.inline) {\n hide();\n }\n } else {\n showMode(-1);\n fillDate();\n }\n viewUpdate('YYYY');\n },\n selectDecade: function selectDecade(e) {\n var year = parseInt($(e.target).data('selection'), 10) || 0;\n viewDate.year(year);\n if (currentViewMode === minViewModeNumber) {\n setValue(date.clone().year(viewDate.year()));\n if (!options.inline) {\n hide();\n }\n } else {\n showMode(-1);\n fillDate();\n }\n viewUpdate('YYYY');\n },\n selectDay: function selectDay(e) {\n var day = viewDate.clone();\n if ($(e.target).is('.old')) {\n day.subtract(1, 'M');\n }\n if ($(e.target).is('.new')) {\n day.add(1, 'M');\n }\n setValue(day.date(parseInt($(e.target).text(), 10)));\n if (!hasTime() && !options.keepOpen && !options.inline) {\n hide();\n }\n },\n incrementHours: function incrementHours() {\n var newDate = date.clone().add(1, 'h');\n if (isValid(newDate, 'h')) {\n setValue(newDate);\n }\n },\n incrementMinutes: function incrementMinutes() {\n var newDate = date.clone().add(options.stepping, 'm');\n if (isValid(newDate, 'm')) {\n setValue(newDate);\n }\n },\n incrementSeconds: function incrementSeconds() {\n var newDate = date.clone().add(1, 's');\n if (isValid(newDate, 's')) {\n setValue(newDate);\n }\n },\n decrementHours: function decrementHours() {\n var newDate = date.clone().subtract(1, 'h');\n if (isValid(newDate, 'h')) {\n setValue(newDate);\n }\n },\n decrementMinutes: function decrementMinutes() {\n var newDate = date.clone().subtract(options.stepping, 'm');\n if (isValid(newDate, 'm')) {\n setValue(newDate);\n }\n },\n decrementSeconds: function decrementSeconds() {\n var newDate = date.clone().subtract(1, 's');\n if (isValid(newDate, 's')) {\n setValue(newDate);\n }\n },\n togglePeriod: function togglePeriod() {\n setValue(date.clone().add(date.hours() >= 12 ? -12 : 12, 'h'));\n },\n togglePicker: function togglePicker(e) {\n var $this = $(e.target);\n var $parent = $this.closest('ul');\n var expanded = $parent.find('.in');\n var closed = $parent.find('.collapse:not(.in)');\n var collapseData;\n if (expanded && expanded.length) {\n collapseData = expanded.data('collapse');\n if (collapseData && collapseData.transitioning) {\n return;\n }\n if (expanded.collapse) {\n // if collapse plugin is available through bootstrap.js then use it\n expanded.collapse('hide');\n closed.collapse('show');\n } else {\n // otherwise just toggle in class on the two views\n expanded.removeClass('in');\n closed.addClass('in');\n }\n if ($this.is('span')) {\n $this.toggleClass(options.icons.time + ' ' + options.icons.date);\n } else {\n $this.find('span').toggleClass(options.icons.time + ' ' + options.icons.date);\n }\n\n // NOTE: uncomment if toggled state will be restored in show()\n // if (component) {\n // component.find('span').toggleClass(options.icons.time + ' ' + options.icons.date);\n // }\n }\n },\n showPicker: function showPicker() {\n widget.find('.timepicker > div:not(.timepicker-picker)').hide();\n widget.find('.timepicker .timepicker-picker').show();\n },\n showHours: function showHours() {\n widget.find('.timepicker .timepicker-picker').hide();\n widget.find('.timepicker .timepicker-hours').show();\n },\n showMinutes: function showMinutes() {\n widget.find('.timepicker .timepicker-picker').hide();\n widget.find('.timepicker .timepicker-minutes').show();\n },\n showSeconds: function showSeconds() {\n widget.find('.timepicker .timepicker-picker').hide();\n widget.find('.timepicker .timepicker-seconds').show();\n },\n selectHour: function selectHour(e) {\n var hour = parseInt($(e.target).text(), 10);\n if (!use24Hours) {\n if (date.hours() >= 12) {\n if (hour !== 12) {\n hour += 12;\n }\n } else {\n if (hour === 12) {\n hour = 0;\n }\n }\n }\n setValue(date.clone().hours(hour));\n actions.showPicker.call(picker);\n },\n selectMinute: function selectMinute(e) {\n setValue(date.clone().minutes(parseInt($(e.target).text(), 10)));\n actions.showPicker.call(picker);\n },\n selectSecond: function selectSecond(e) {\n setValue(date.clone().seconds(parseInt($(e.target).text(), 10)));\n actions.showPicker.call(picker);\n },\n clear: clear,\n today: function today() {\n var todaysDate = getMoment();\n if (isValid(todaysDate, 'd')) {\n setValue(todaysDate);\n }\n },\n close: hide\n };\n var doAction = function doAction(e) {\n if ($(e.currentTarget).is('.disabled')) {\n return false;\n }\n actions[$(e.currentTarget).data('action')].apply(picker, arguments);\n return false;\n };\n\n /**\n * Shows the widget. Possibly will emit dp.show and dp.change\n */\n var show = function show() {\n var currentMoment;\n var useCurrentGranularity = {\n 'year': function year(m) {\n return m.month(0).date(1).hours(0).seconds(0).minutes(0);\n },\n 'month': function month(m) {\n return m.date(1).hours(0).seconds(0).minutes(0);\n },\n 'day': function day(m) {\n return m.hours(0).seconds(0).minutes(0);\n },\n 'hour': function hour(m) {\n return m.seconds(0).minutes(0);\n },\n 'minute': function minute(m) {\n return m.seconds(0);\n }\n };\n if (input.prop('disabled') || !options.ignoreReadonly && input.prop('readonly') || widget) {\n return picker;\n }\n if (input.val() !== undefined && input.val().trim().length !== 0) {\n setValue(parseInputDate(input.val().trim()));\n } else if (unset && options.useCurrent && (options.inline || input.is('input') && input.val().trim().length === 0)) {\n currentMoment = getMoment();\n if (typeof options.useCurrent === 'string') {\n currentMoment = useCurrentGranularity[options.useCurrent](currentMoment);\n }\n setValue(currentMoment);\n }\n widget = getTemplate();\n fillDow();\n fillMonths();\n widget.find('.timepicker-hours').hide();\n widget.find('.timepicker-minutes').hide();\n widget.find('.timepicker-seconds').hide();\n update();\n showMode();\n $(window).on('resize', place);\n widget.on('click', '[data-action]', doAction); // this handles clicks on the widget\n widget.on('mousedown', false);\n if (component && component.hasClass('btn')) {\n component.toggleClass('active');\n }\n place();\n widget.show();\n if (options.focusOnShow && !input.is(':focus')) {\n input.focus();\n }\n notifyEvent({\n type: 'dp.show'\n });\n return picker;\n };\n\n /**\n * Shows or hides the widget\n */\n var toggle = function toggle() {\n return widget ? hide() : show();\n };\n var keydown = function keydown(e) {\n var handler = null;\n var index;\n var index2;\n var pressedKeys = [];\n var pressedModifiers = {};\n var currentKey = e.which;\n var keyBindKeys;\n var allModifiersPressed;\n var pressed = 'p';\n keyState[currentKey] = pressed;\n for (index in keyState) {\n if (keyState.hasOwnProperty(index) && keyState[index] === pressed) {\n pressedKeys.push(index);\n if (parseInt(index, 10) !== currentKey) {\n pressedModifiers[index] = true;\n }\n }\n }\n for (index in options.keyBinds) {\n if (options.keyBinds.hasOwnProperty(index) && typeof options.keyBinds[index] === 'function') {\n keyBindKeys = index.split(' ');\n if (keyBindKeys.length === pressedKeys.length && keyMap[currentKey] === keyBindKeys[keyBindKeys.length - 1]) {\n allModifiersPressed = true;\n for (index2 = keyBindKeys.length - 2; index2 >= 0; index2--) {\n if (!(keyMap[keyBindKeys[index2]] in pressedModifiers)) {\n allModifiersPressed = false;\n break;\n }\n }\n if (allModifiersPressed) {\n handler = options.keyBinds[index];\n break;\n }\n }\n }\n }\n if (handler) {\n handler.call(picker, widget);\n e.stopPropagation();\n e.preventDefault();\n }\n };\n var keyup = function keyup(e) {\n keyState[e.which] = 'r';\n e.stopPropagation();\n e.preventDefault();\n };\n var change = function change(e) {\n var val = $(e.target).val().trim();\n var parsedDate = val ? parseInputDate(val) : null;\n setValue(parsedDate);\n e.stopImmediatePropagation();\n return false;\n };\n var attachDatePickerElementEvents = function attachDatePickerElementEvents() {\n input.on({\n 'change': change,\n 'blur': options.debug ? '' : hide,\n 'keydown': keydown,\n 'keyup': keyup,\n 'focus': options.allowInputToggle ? show : ''\n });\n if (element.is('input')) {\n input.on({\n 'focus': show\n });\n } else if (component) {\n component.on('click', toggle);\n component.on('mousedown', false);\n }\n };\n var detachDatePickerElementEvents = function detachDatePickerElementEvents() {\n input.off({\n 'change': change,\n 'blur': blur,\n 'keydown': keydown,\n 'keyup': keyup,\n 'focus': options.allowInputToggle ? hide : ''\n });\n if (element.is('input')) {\n input.off({\n 'focus': show\n });\n } else if (component) {\n component.off('click', toggle);\n component.off('mousedown', false);\n }\n };\n var indexGivenDates = function indexGivenDates(givenDatesArray) {\n // Store given enabledDates and disabledDates as keys.\n // This way we can check their existence in O(1) time instead of looping through whole array.\n // (for example: options.enabledDates['2014-02-27'] === true)\n var givenDatesIndexed = {};\n $.each(givenDatesArray, function () {\n var dDate = parseInputDate(this);\n if (dDate.isValid()) {\n givenDatesIndexed[dDate.format('YYYY-MM-DD')] = true;\n }\n });\n return Object.keys(givenDatesIndexed).length ? givenDatesIndexed : false;\n };\n var indexGivenHours = function indexGivenHours(givenHoursArray) {\n // Store given enabledHours and disabledHours as keys.\n // This way we can check their existence in O(1) time instead of looping through whole array.\n // (for example: options.enabledHours['2014-02-27'] === true)\n var givenHoursIndexed = {};\n $.each(givenHoursArray, function () {\n givenHoursIndexed[this] = true;\n });\n return Object.keys(givenHoursIndexed).length ? givenHoursIndexed : false;\n };\n var initFormatting = function initFormatting() {\n var format = options.format || 'L LT';\n actualFormat = format.replace(/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput) {\n var newinput = date.localeData().longDateFormat(formatInput) || formatInput;\n return newinput.replace(/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput2) {\n // temp fix for #740\n return date.localeData().longDateFormat(formatInput2) || formatInput2;\n });\n });\n parseFormats = options.extraFormats ? options.extraFormats.slice() : [];\n if (parseFormats.indexOf(format) < 0 && parseFormats.indexOf(actualFormat) < 0) {\n parseFormats.push(actualFormat);\n }\n use24Hours = actualFormat.toLowerCase().indexOf('a') < 1 && actualFormat.replace(/\\[.*?\\]/g, '').indexOf('h') < 1;\n if (isEnabled('y')) {\n minViewModeNumber = 2;\n }\n if (isEnabled('M')) {\n minViewModeNumber = 1;\n }\n if (isEnabled('d')) {\n minViewModeNumber = 0;\n }\n currentViewMode = Math.max(minViewModeNumber, currentViewMode);\n if (!unset) {\n setValue(date);\n }\n };\n\n /** ******************************************************************************\n *\n * Public API functions\n * =====================\n *\n * Important: Do not expose direct references to private objects or the options\n * object to the outer world. Always return a clone when returning values or make\n * a clone when setting a private variable.\n *\n ********************************************************************************/\n picker.destroy = function () {\n // /Destroys the widget and removes all attached event listeners \n hide();\n detachDatePickerElementEvents();\n element.removeData('DateTimePicker');\n element.removeData('date');\n };\n picker.toggle = toggle;\n picker.show = show;\n picker.hide = hide;\n picker.disable = function () {\n // /Disables the input element, the component is attached to, by adding a disabled=\"true\" attribute to it.\n // /If the widget was visible before that call it is hidden. Possibly emits dp.hide \n hide();\n if (component && component.hasClass('btn')) {\n component.addClass('disabled');\n }\n input.prop('disabled', true);\n return picker;\n };\n picker.enable = function () {\n // /Enables the input element, the component is attached to, by removing disabled attribute from it. \n if (component && component.hasClass('btn')) {\n component.removeClass('disabled');\n }\n input.prop('disabled', false);\n return picker;\n };\n picker.ignoreReadonly = function (ignoreReadonly) {\n if (arguments.length === 0) {\n return options.ignoreReadonly;\n }\n if (typeof ignoreReadonly !== 'boolean') {\n throw new TypeError('ignoreReadonly () expects a boolean parameter');\n }\n options.ignoreReadonly = ignoreReadonly;\n return picker;\n };\n picker.options = function (newOptions) {\n if (arguments.length === 0) {\n return $.extend(true, {}, options);\n }\n if (!(newOptions instanceof Object)) {\n throw new TypeError('options() options parameter should be an object');\n }\n $.extend(true, options, newOptions);\n $.each(options, function (key, value) {\n if (picker[key] !== undefined) {\n picker[key](value);\n } else {\n throw new TypeError('option ' + key + ' is not recognized!');\n }\n });\n return picker;\n };\n picker.date = function (newDate) {\n // /\n // /Returns the component's model current date, a moment object or null if not set. \n // /date.clone() \n // / \n // /\n // /Sets the components model current moment to it. Passing a null value unsets the components model current moment. Parsing of the newDate parameter is made using moment library with the options.format and options.useStrict components configuration. \n // / Takes string, Date, moment, null parameter.\n // / \n if (arguments.length === 0) {\n if (unset) {\n return null;\n }\n return date.clone();\n }\n if (newDate !== null && typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) {\n throw new TypeError('date() parameter must be one of [null, string, moment or Date]');\n }\n setValue(newDate === null ? null : parseInputDate(newDate));\n return picker;\n };\n picker.format = function (newFormat) {\n // /test su \n // / info about para\n // /returns foo \n if (arguments.length === 0) {\n return options.format;\n }\n if (typeof newFormat !== 'string' && (typeof newFormat !== 'boolean' || newFormat !== false)) {\n throw new TypeError('format() expects a string or boolean:false parameter ' + newFormat);\n }\n options.format = newFormat;\n if (actualFormat) {\n initFormatting(); // reinit formatting\n }\n return picker;\n };\n picker.timeZone = function (newZone) {\n if (arguments.length === 0) {\n return options.timeZone;\n }\n if (typeof newZone !== 'string') {\n throw new TypeError('newZone() expects a string parameter');\n }\n options.timeZone = newZone;\n return picker;\n };\n picker.dayViewHeaderFormat = function (newFormat) {\n if (arguments.length === 0) {\n return options.dayViewHeaderFormat;\n }\n if (typeof newFormat !== 'string') {\n throw new TypeError('dayViewHeaderFormat() expects a string parameter');\n }\n options.dayViewHeaderFormat = newFormat;\n return picker;\n };\n picker.extraFormats = function (formats) {\n if (arguments.length === 0) {\n return options.extraFormats;\n }\n if (formats !== false && !(formats instanceof Array)) {\n throw new TypeError('extraFormats() expects an array or false parameter');\n }\n options.extraFormats = formats;\n if (parseFormats) {\n initFormatting(); // reinit formatting\n }\n return picker;\n };\n picker.disabledDates = function (dates) {\n // /\n // /Returns an array with the currently set disabled dates on the component. \n // /options.disabledDates \n // / \n // /\n // /Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\n // /options.enabledDates if such exist. \n // / Takes an [ string or Date or moment ] of values and allows the user to select only from those days.\n // / \n if (arguments.length === 0) {\n return options.disabledDates ? $.extend({}, options.disabledDates) : options.disabledDates;\n }\n if (!dates) {\n options.disabledDates = false;\n update();\n return picker;\n }\n if (!(dates instanceof Array)) {\n throw new TypeError('disabledDates() expects an array parameter');\n }\n options.disabledDates = indexGivenDates(dates);\n options.enabledDates = false;\n update();\n return picker;\n };\n picker.enabledDates = function (dates) {\n // /\n // /Returns an array with the currently set enabled dates on the component. \n // /options.enabledDates \n // / \n // /\n // /Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of options.disabledDates if such exist. \n // / Takes an [ string or Date or moment ] of values and allows the user to select only from those days.\n // / \n if (arguments.length === 0) {\n return options.enabledDates ? $.extend({}, options.enabledDates) : options.enabledDates;\n }\n if (!dates) {\n options.enabledDates = false;\n update();\n return picker;\n }\n if (!(dates instanceof Array)) {\n throw new TypeError('enabledDates() expects an array parameter');\n }\n options.enabledDates = indexGivenDates(dates);\n options.disabledDates = false;\n update();\n return picker;\n };\n picker.daysOfWeekDisabled = function (daysOfWeekDisabled) {\n if (arguments.length === 0) {\n return options.daysOfWeekDisabled.splice(0);\n }\n if (typeof daysOfWeekDisabled === 'boolean' && !daysOfWeekDisabled) {\n options.daysOfWeekDisabled = false;\n update();\n return picker;\n }\n if (!(daysOfWeekDisabled instanceof Array)) {\n throw new TypeError('daysOfWeekDisabled() expects an array parameter');\n }\n options.daysOfWeekDisabled = daysOfWeekDisabled.reduce(function (previousValue, currentValue) {\n currentValue = parseInt(currentValue, 10);\n if (currentValue > 6 || currentValue < 0 || isNaN(currentValue)) {\n return previousValue;\n }\n if (previousValue.indexOf(currentValue) === -1) {\n previousValue.push(currentValue);\n }\n return previousValue;\n }, []).sort();\n if (options.useCurrent && !options.keepInvalid) {\n var tries = 0;\n while (!isValid(date, 'd')) {\n date.add(1, 'd');\n if (tries === 31) {\n throw new Error('Tried 31 times to find a valid date');\n }\n tries++;\n }\n setValue(date);\n }\n update();\n return picker;\n };\n picker.maxDate = function (maxDate) {\n if (arguments.length === 0) {\n return options.maxDate ? options.maxDate.clone() : options.maxDate;\n }\n if (typeof maxDate === 'boolean' && maxDate === false) {\n options.maxDate = false;\n update();\n return picker;\n }\n if (typeof maxDate === 'string') {\n if (maxDate === 'now' || maxDate === 'moment') {\n maxDate = getMoment();\n }\n }\n var parsedDate = parseInputDate(maxDate);\n if (!parsedDate.isValid()) {\n throw new TypeError('maxDate() Could not parse date parameter: ' + maxDate);\n }\n if (options.minDate && parsedDate.isBefore(options.minDate)) {\n throw new TypeError('maxDate() date parameter is before options.minDate: ' + parsedDate.format(actualFormat));\n }\n options.maxDate = parsedDate;\n if (options.useCurrent && !options.keepInvalid && date.isAfter(maxDate)) {\n setValue(options.maxDate);\n }\n if (viewDate.isAfter(parsedDate)) {\n viewDate = parsedDate.clone().subtract(options.stepping, 'm');\n }\n update();\n return picker;\n };\n picker.minDate = function (minDate) {\n if (arguments.length === 0) {\n return options.minDate ? options.minDate.clone() : options.minDate;\n }\n if (typeof minDate === 'boolean' && minDate === false) {\n options.minDate = false;\n update();\n return picker;\n }\n if (typeof minDate === 'string') {\n if (minDate === 'now' || minDate === 'moment') {\n minDate = getMoment();\n }\n }\n var parsedDate = parseInputDate(minDate);\n if (!parsedDate.isValid()) {\n throw new TypeError('minDate() Could not parse date parameter: ' + minDate);\n }\n if (options.maxDate && parsedDate.isAfter(options.maxDate)) {\n throw new TypeError('minDate() date parameter is after options.maxDate: ' + parsedDate.format(actualFormat));\n }\n options.minDate = parsedDate;\n if (options.useCurrent && !options.keepInvalid && date.isBefore(minDate)) {\n setValue(options.minDate);\n }\n if (viewDate.isBefore(parsedDate)) {\n viewDate = parsedDate.clone().add(options.stepping, 'm');\n }\n update();\n return picker;\n };\n picker.defaultDate = function (defaultDate) {\n // /\n // /Returns a moment with the options.defaultDate option configuration or false if not set \n // /date.clone() \n // / \n // /\n // /Will set the picker's inital date. If a boolean:false value is passed the options.defaultDate parameter is cleared. \n // / Takes a string, Date, moment, boolean:false\n // / \n if (arguments.length === 0) {\n return options.defaultDate ? options.defaultDate.clone() : options.defaultDate;\n }\n if (!defaultDate) {\n options.defaultDate = false;\n return picker;\n }\n if (typeof defaultDate === 'string') {\n if (defaultDate === 'now' || defaultDate === 'moment') {\n defaultDate = getMoment();\n } else {\n defaultDate = getMoment(defaultDate);\n }\n }\n var parsedDate = parseInputDate(defaultDate);\n if (!parsedDate.isValid()) {\n throw new TypeError('defaultDate() Could not parse date parameter: ' + defaultDate);\n }\n if (!isValid(parsedDate)) {\n throw new TypeError('defaultDate() date passed is invalid according to component setup validations');\n }\n options.defaultDate = parsedDate;\n if (options.defaultDate && options.inline || input.val().trim() === '') {\n setValue(options.defaultDate);\n }\n return picker;\n };\n picker.locale = function (locale) {\n if (arguments.length === 0) {\n return options.locale;\n }\n if (!moment.localeData(locale)) {\n throw new TypeError('locale() locale ' + locale + ' is not loaded from moment locales!');\n }\n options.locale = locale;\n date.locale(options.locale);\n viewDate.locale(options.locale);\n if (actualFormat) {\n initFormatting(); // reinit formatting\n }\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.stepping = function (stepping) {\n if (arguments.length === 0) {\n return options.stepping;\n }\n stepping = parseInt(stepping, 10);\n if (isNaN(stepping) || stepping < 1) {\n stepping = 1;\n }\n options.stepping = stepping;\n return picker;\n };\n picker.useCurrent = function (useCurrent) {\n var useCurrentOptions = ['year', 'month', 'day', 'hour', 'minute'];\n if (arguments.length === 0) {\n return options.useCurrent;\n }\n if (typeof useCurrent !== 'boolean' && typeof useCurrent !== 'string') {\n throw new TypeError('useCurrent() expects a boolean or string parameter');\n }\n if (typeof useCurrent === 'string' && useCurrentOptions.indexOf(useCurrent.toLowerCase()) === -1) {\n throw new TypeError('useCurrent() expects a string parameter of ' + useCurrentOptions.join(', '));\n }\n options.useCurrent = useCurrent;\n return picker;\n };\n picker.collapse = function (collapse) {\n if (arguments.length === 0) {\n return options.collapse;\n }\n if (typeof collapse !== 'boolean') {\n throw new TypeError('collapse() expects a boolean parameter');\n }\n if (options.collapse === collapse) {\n return picker;\n }\n options.collapse = collapse;\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.icons = function (icons) {\n if (arguments.length === 0) {\n return $.extend({}, options.icons);\n }\n if (!(icons instanceof Object)) {\n throw new TypeError('icons() expects parameter to be an Object');\n }\n $.extend(options.icons, icons);\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.tooltips = function (tooltips) {\n if (arguments.length === 0) {\n return $.extend({}, options.tooltips);\n }\n if (!(tooltips instanceof Object)) {\n throw new TypeError('tooltips() expects parameter to be an Object');\n }\n $.extend(options.tooltips, tooltips);\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.useStrict = function (useStrict) {\n if (arguments.length === 0) {\n return options.useStrict;\n }\n if (typeof useStrict !== 'boolean') {\n throw new TypeError('useStrict() expects a boolean parameter');\n }\n options.useStrict = useStrict;\n return picker;\n };\n picker.sideBySide = function (sideBySide) {\n if (arguments.length === 0) {\n return options.sideBySide;\n }\n if (typeof sideBySide !== 'boolean') {\n throw new TypeError('sideBySide() expects a boolean parameter');\n }\n options.sideBySide = sideBySide;\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.viewMode = function (viewMode) {\n if (arguments.length === 0) {\n return options.viewMode;\n }\n if (typeof viewMode !== 'string') {\n throw new TypeError('viewMode() expects a string parameter');\n }\n if (viewModes.indexOf(viewMode) === -1) {\n throw new TypeError('viewMode() parameter must be one of (' + viewModes.join(', ') + ') value');\n }\n options.viewMode = viewMode;\n currentViewMode = Math.max(viewModes.indexOf(viewMode), minViewModeNumber);\n showMode();\n return picker;\n };\n picker.toolbarPlacement = function (toolbarPlacement) {\n if (arguments.length === 0) {\n return options.toolbarPlacement;\n }\n if (typeof toolbarPlacement !== 'string') {\n throw new TypeError('toolbarPlacement() expects a string parameter');\n }\n if (toolbarPlacements.indexOf(toolbarPlacement) === -1) {\n throw new TypeError('toolbarPlacement() parameter must be one of (' + toolbarPlacements.join(', ') + ') value');\n }\n options.toolbarPlacement = toolbarPlacement;\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.widgetPositioning = function (widgetPositioning) {\n if (arguments.length === 0) {\n return $.extend({}, options.widgetPositioning);\n }\n if ({}.toString.call(widgetPositioning) !== '[object Object]') {\n throw new TypeError('widgetPositioning() expects an object variable');\n }\n if (widgetPositioning.horizontal) {\n if (typeof widgetPositioning.horizontal !== 'string') {\n throw new TypeError('widgetPositioning() horizontal variable must be a string');\n }\n widgetPositioning.horizontal = widgetPositioning.horizontal.toLowerCase();\n if (horizontalModes.indexOf(widgetPositioning.horizontal) === -1) {\n throw new TypeError('widgetPositioning() expects horizontal parameter to be one of (' + horizontalModes.join(', ') + ')');\n }\n options.widgetPositioning.horizontal = widgetPositioning.horizontal;\n }\n if (widgetPositioning.vertical) {\n if (typeof widgetPositioning.vertical !== 'string') {\n throw new TypeError('widgetPositioning() vertical variable must be a string');\n }\n widgetPositioning.vertical = widgetPositioning.vertical.toLowerCase();\n if (verticalModes.indexOf(widgetPositioning.vertical) === -1) {\n throw new TypeError('widgetPositioning() expects vertical parameter to be one of (' + verticalModes.join(', ') + ')');\n }\n options.widgetPositioning.vertical = widgetPositioning.vertical;\n }\n update();\n return picker;\n };\n picker.calendarWeeks = function (calendarWeeks) {\n if (arguments.length === 0) {\n return options.calendarWeeks;\n }\n if (typeof calendarWeeks !== 'boolean') {\n throw new TypeError('calendarWeeks() expects parameter to be a boolean value');\n }\n options.calendarWeeks = calendarWeeks;\n update();\n return picker;\n };\n picker.showTodayButton = function (showTodayButton) {\n if (arguments.length === 0) {\n return options.showTodayButton;\n }\n if (typeof showTodayButton !== 'boolean') {\n throw new TypeError('showTodayButton() expects a boolean parameter');\n }\n options.showTodayButton = showTodayButton;\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.showClear = function (showClear) {\n if (arguments.length === 0) {\n return options.showClear;\n }\n if (typeof showClear !== 'boolean') {\n throw new TypeError('showClear() expects a boolean parameter');\n }\n options.showClear = showClear;\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.widgetParent = function (widgetParent) {\n if (arguments.length === 0) {\n return options.widgetParent;\n }\n if (typeof widgetParent === 'string') {\n widgetParent = $(widgetParent);\n }\n if (widgetParent !== null && typeof widgetParent !== 'string' && !(widgetParent instanceof $)) {\n throw new TypeError('widgetParent() expects a string or a jQuery object parameter');\n }\n options.widgetParent = widgetParent;\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.keepOpen = function (keepOpen) {\n if (arguments.length === 0) {\n return options.keepOpen;\n }\n if (typeof keepOpen !== 'boolean') {\n throw new TypeError('keepOpen() expects a boolean parameter');\n }\n options.keepOpen = keepOpen;\n return picker;\n };\n picker.focusOnShow = function (focusOnShow) {\n if (arguments.length === 0) {\n return options.focusOnShow;\n }\n if (typeof focusOnShow !== 'boolean') {\n throw new TypeError('focusOnShow() expects a boolean parameter');\n }\n options.focusOnShow = focusOnShow;\n return picker;\n };\n picker.inline = function (inline) {\n if (arguments.length === 0) {\n return options.inline;\n }\n if (typeof inline !== 'boolean') {\n throw new TypeError('inline() expects a boolean parameter');\n }\n options.inline = inline;\n return picker;\n };\n picker.clear = function () {\n clear();\n return picker;\n };\n picker.keyBinds = function (keyBinds) {\n if (arguments.length === 0) {\n return options.keyBinds;\n }\n options.keyBinds = keyBinds;\n return picker;\n };\n picker.getMoment = function (d) {\n return getMoment(d);\n };\n picker.debug = function (debug) {\n if (typeof debug !== 'boolean') {\n throw new TypeError('debug() expects a boolean parameter');\n }\n options.debug = debug;\n return picker;\n };\n picker.allowInputToggle = function (allowInputToggle) {\n if (arguments.length === 0) {\n return options.allowInputToggle;\n }\n if (typeof allowInputToggle !== 'boolean') {\n throw new TypeError('allowInputToggle() expects a boolean parameter');\n }\n options.allowInputToggle = allowInputToggle;\n return picker;\n };\n picker.showClose = function (showClose) {\n if (arguments.length === 0) {\n return options.showClose;\n }\n if (typeof showClose !== 'boolean') {\n throw new TypeError('showClose() expects a boolean parameter');\n }\n options.showClose = showClose;\n return picker;\n };\n picker.keepInvalid = function (keepInvalid) {\n if (arguments.length === 0) {\n return options.keepInvalid;\n }\n if (typeof keepInvalid !== 'boolean') {\n throw new TypeError('keepInvalid() expects a boolean parameter');\n }\n options.keepInvalid = keepInvalid;\n return picker;\n };\n picker.datepickerInput = function (datepickerInput) {\n if (arguments.length === 0) {\n return options.datepickerInput;\n }\n if (typeof datepickerInput !== 'string') {\n throw new TypeError('datepickerInput() expects a string parameter');\n }\n options.datepickerInput = datepickerInput;\n return picker;\n };\n picker.parseInputDate = function (parseInputDate) {\n if (arguments.length === 0) {\n return options.parseInputDate;\n }\n if (typeof parseInputDate !== 'function') {\n throw new TypeError('parseInputDate() sholud be as function');\n }\n options.parseInputDate = parseInputDate;\n return picker;\n };\n picker.disabledTimeIntervals = function (disabledTimeIntervals) {\n // /\n // /Returns an array with the currently set disabled dates on the component. \n // /options.disabledTimeIntervals \n // / \n // /\n // /Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\n // /options.enabledDates if such exist. \n // / Takes an [ string or Date or moment ] of values and allows the user to select only from those days.\n // / \n if (arguments.length === 0) {\n return options.disabledTimeIntervals ? $.extend({}, options.disabledTimeIntervals) : options.disabledTimeIntervals;\n }\n if (!disabledTimeIntervals) {\n options.disabledTimeIntervals = false;\n update();\n return picker;\n }\n if (!(disabledTimeIntervals instanceof Array)) {\n throw new TypeError('disabledTimeIntervals() expects an array parameter');\n }\n options.disabledTimeIntervals = disabledTimeIntervals;\n update();\n return picker;\n };\n picker.disabledHours = function (hours) {\n // /\n // /Returns an array with the currently set disabled hours on the component. \n // /options.disabledHours \n // / \n // /\n // /Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\n // /options.enabledHours if such exist. \n // / Takes an [ int ] of values and disallows the user to select only from those hours.\n // / \n if (arguments.length === 0) {\n return options.disabledHours ? $.extend({}, options.disabledHours) : options.disabledHours;\n }\n if (!hours) {\n options.disabledHours = false;\n update();\n return picker;\n }\n if (!(hours instanceof Array)) {\n throw new TypeError('disabledHours() expects an array parameter');\n }\n options.disabledHours = indexGivenHours(hours);\n options.enabledHours = false;\n if (options.useCurrent && !options.keepInvalid) {\n var tries = 0;\n while (!isValid(date, 'h')) {\n date.add(1, 'h');\n if (tries === 24) {\n throw new Error('Tried 24 times to find a valid date');\n }\n tries++;\n }\n setValue(date);\n }\n update();\n return picker;\n };\n picker.enabledHours = function (hours) {\n // /\n // /Returns an array with the currently set enabled hours on the component. \n // /options.enabledHours \n // / \n // /\n // /Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of options.disabledHours if such exist. \n // / Takes an [ int ] of values and allows the user to select only from those hours.\n // / \n if (arguments.length === 0) {\n return options.enabledHours ? $.extend({}, options.enabledHours) : options.enabledHours;\n }\n if (!hours) {\n options.enabledHours = false;\n update();\n return picker;\n }\n if (!(hours instanceof Array)) {\n throw new TypeError('enabledHours() expects an array parameter');\n }\n options.enabledHours = indexGivenHours(hours);\n options.disabledHours = false;\n if (options.useCurrent && !options.keepInvalid) {\n var tries = 0;\n while (!isValid(date, 'h')) {\n date.add(1, 'h');\n if (tries === 24) {\n throw new Error('Tried 24 times to find a valid date');\n }\n tries++;\n }\n setValue(date);\n }\n update();\n return picker;\n };\n /**\n * Returns the component's model current viewDate, a moment object or null if not set. Passing a null value unsets the components model current moment. Parsing of the newDate parameter is made using moment library with the options.format and options.useStrict components configuration.\n * @param {Takes string, viewDate, moment, null parameter.} newDate\n * @returns {viewDate.clone()}\n */\n picker.viewDate = function (newDate) {\n if (arguments.length === 0) {\n return viewDate.clone();\n }\n if (!newDate) {\n viewDate = date.clone();\n return picker;\n }\n if (typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) {\n throw new TypeError('viewDate() parameter must be one of [string, moment or Date]');\n }\n viewDate = parseInputDate(newDate);\n viewUpdate();\n return picker;\n };\n\n // initializing element and component attributes\n if (element.is('input')) {\n input = element;\n } else {\n input = element.find(options.datepickerInput);\n if (input.length === 0) {\n input = element.find('input');\n } else if (!input.is('input')) {\n throw new Error('CSS class \"' + options.datepickerInput + '\" cannot be applied to non input element');\n }\n }\n if (element.hasClass('input-group')) {\n // in case there is more then one 'input-group-addon' Issue #48\n if (element.find('.datepickerbutton').length === 0) {\n component = element.find('.input-group-addon');\n } else {\n component = element.find('.datepickerbutton');\n }\n }\n if (!options.inline && !input.is('input')) {\n throw new Error('Could not initialize DateTimePicker without an input element');\n }\n\n // Set defaults for date here now instead of in var declaration\n date = getMoment();\n viewDate = date.clone();\n $.extend(true, options, dataToOptions());\n picker.options(options);\n initFormatting();\n attachDatePickerElementEvents();\n if (input.prop('disabled')) {\n picker.disable();\n }\n if (input.is('input') && input.val().trim().length !== 0) {\n setValue(parseInputDate(input.val().trim()));\n } else if (options.defaultDate && input.attr('placeholder') === undefined) {\n setValue(options.defaultDate);\n }\n if (options.inline) {\n show();\n }\n return picker;\n };\n\n /** ******************************************************************************\n *\n * jQuery plugin constructor and defaults object\n *\n ********************************************************************************/\n\n /**\n * See (http://jquery.com/).\n * @name jQuery\n * @class\n * See the jQuery Library (http://jquery.com/) for full details. This just\n * documents the function and classes that are added to jQuery by this plug-in.\n */\n /**\n * See (http://jquery.com/)\n * @name fn\n * @class\n * See the jQuery Library (http://jquery.com/) for full details. This just\n * documents the function and classes that are added to jQuery by this plug-in.\n * @memberOf jQuery\n */\n /**\n * Show comments\n * @class datetimepicker\n * @memberOf jQuery.fn\n */\n $.fn.datetimepicker = function (options) {\n options = options || {};\n var args = Array.prototype.slice.call(arguments, 1);\n var isInstance = true;\n var thisMethods = ['destroy', 'hide', 'show', 'toggle'];\n var returnValue;\n if (_typeof(options) === 'object') {\n return this.each(function () {\n var $this = $(this);\n var _options;\n if (!$this.data('DateTimePicker')) {\n // create a private copy of the defaults object\n _options = $.extend(true, {}, $.fn.datetimepicker.defaults, options);\n $this.data('DateTimePicker', dateTimePicker($this, _options));\n }\n });\n } else if (typeof options === 'string') {\n this.each(function () {\n var $this = $(this);\n var instance = $this.data('DateTimePicker');\n if (!instance) {\n throw new Error('bootstrap-datetimepicker(\"' + options + '\") method was called on an element that is not using DateTimePicker');\n }\n returnValue = instance[options].apply(instance, args);\n isInstance = returnValue === instance;\n });\n if (isInstance || $.inArray(options, thisMethods) > -1) {\n return this;\n }\n return returnValue;\n }\n throw new TypeError('Invalid arguments for DateTimePicker: ' + options);\n };\n $.fn.datetimepicker.defaults = {\n timeZone: '',\n format: false,\n dayViewHeaderFormat: 'MMMM YYYY',\n extraFormats: false,\n stepping: 1,\n minDate: false,\n maxDate: false,\n useCurrent: true,\n collapse: true,\n locale: moment.locale(),\n defaultDate: false,\n disabledDates: false,\n enabledDates: false,\n icons: {\n time: 'glyphicon glyphicon-time',\n date: 'glyphicon glyphicon-calendar',\n up: 'glyphicon glyphicon-chevron-up',\n down: 'glyphicon glyphicon-chevron-down',\n previous: 'glyphicon glyphicon-chevron-left',\n next: 'glyphicon glyphicon-chevron-right',\n today: 'glyphicon glyphicon-screenshot',\n clear: 'glyphicon glyphicon-trash',\n close: 'glyphicon glyphicon-remove'\n },\n tooltips: {\n today: 'Go to today',\n clear: 'Clear selection',\n close: 'Close the picker',\n selectMonth: 'Select Month',\n prevMonth: 'Previous Month',\n nextMonth: 'Next Month',\n selectYear: 'Select Year',\n prevYear: 'Previous Year',\n nextYear: 'Next Year',\n selectDecade: 'Select Decade',\n prevDecade: 'Previous Decade',\n nextDecade: 'Next Decade',\n prevCentury: 'Previous Century',\n nextCentury: 'Next Century',\n pickHour: 'Pick Hour',\n incrementHour: 'Increment Hour',\n decrementHour: 'Decrement Hour',\n pickMinute: 'Pick Minute',\n incrementMinute: 'Increment Minute',\n decrementMinute: 'Decrement Minute',\n pickSecond: 'Pick Second',\n incrementSecond: 'Increment Second',\n decrementSecond: 'Decrement Second',\n togglePeriod: 'Toggle Period',\n selectTime: 'Select Time'\n },\n useStrict: false,\n sideBySide: false,\n daysOfWeekDisabled: false,\n calendarWeeks: false,\n viewMode: 'days',\n toolbarPlacement: 'default',\n showTodayButton: false,\n showClear: false,\n showClose: false,\n widgetPositioning: {\n horizontal: 'auto',\n vertical: 'auto'\n },\n widgetParent: null,\n ignoreReadonly: false,\n keepOpen: false,\n focusOnShow: true,\n inline: false,\n keepInvalid: false,\n datepickerInput: '.datepickerinput',\n keyBinds: {\n up: function up(widget) {\n if (!widget) {\n return;\n }\n var d = this.date() || this.getMoment();\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().subtract(7, 'd'));\n } else {\n this.date(d.clone().add(this.stepping(), 'm'));\n }\n },\n down: function down(widget) {\n if (!widget) {\n this.show();\n return;\n }\n var d = this.date() || this.getMoment();\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().add(7, 'd'));\n } else {\n this.date(d.clone().subtract(this.stepping(), 'm'));\n }\n },\n 'control up': function control_up(widget) {\n if (!widget) {\n return;\n }\n var d = this.date() || this.getMoment();\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().subtract(1, 'y'));\n } else {\n this.date(d.clone().add(1, 'h'));\n }\n },\n 'control down': function control_down(widget) {\n if (!widget) {\n return;\n }\n var d = this.date() || this.getMoment();\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().add(1, 'y'));\n } else {\n this.date(d.clone().subtract(1, 'h'));\n }\n },\n left: function left(widget) {\n if (!widget) {\n return;\n }\n var d = this.date() || this.getMoment();\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().subtract(1, 'd'));\n }\n },\n right: function right(widget) {\n if (!widget) {\n return;\n }\n var d = this.date() || this.getMoment();\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().add(1, 'd'));\n }\n },\n pageUp: function pageUp(widget) {\n if (!widget) {\n return;\n }\n var d = this.date() || this.getMoment();\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().subtract(1, 'M'));\n }\n },\n pageDown: function pageDown(widget) {\n if (!widget) {\n return;\n }\n var d = this.date() || this.getMoment();\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().add(1, 'M'));\n }\n },\n enter: function enter() {\n this.hide();\n },\n escape: function escape() {\n this.hide();\n },\n // tab: function (widget) { //this break the flow of the form. disabling for now\n // var toggle = widget.find('.picker-switch a[data-action=\"togglePicker\"]');\n // if(toggle.length > 0) toggle.click();\n // },\n 'control space': function control_space(widget) {\n if (!widget) {\n return;\n }\n if (widget.find('.timepicker').is(':visible')) {\n widget.find('.btn[data-action=\"togglePeriod\"]').click();\n }\n },\n t: function t() {\n this.date(this.getMoment());\n },\n 'delete': function _delete() {\n this.clear();\n }\n },\n debug: false,\n allowInputToggle: false,\n disabledTimeIntervals: false,\n disabledHours: false,\n enabledHours: false,\n viewDate: false\n };\n return $.fn.datetimepicker;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0VBRUQsT0FBT04sQ0FBQyxDQUFDaVgsRUFBRSxDQUFDQyxjQUFjO0FBQzlCLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXRpbHMvYm9vdHN0cmFwLWRhdGV0aW1lcGlja2VyLmpzP2U0MDkiXSwic291cmNlc0NvbnRlbnQiOlsiLyohIHZlcnNpb24gOiA0LjE3LjQ3XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gYm9vdHN0cmFwLWRhdGV0aW1lanNcbiBodHRwczovL2dpdGh1Yi5jb20vRW9uYXNkYW4vYm9vdHN0cmFwLWRhdGV0aW1lcGlja2VyXG4gQ29weXJpZ2h0IChjKSAyMDE1IEpvbmF0aGFuIFBldGVyc29uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cbi8qXG4gVGhlIE1JVCBMaWNlbnNlIChNSVQpXG5cbiBDb3B5cmlnaHQgKGMpIDIwMTUgSm9uYXRoYW4gUGV0ZXJzb25cblxuIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG4gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gVEhFIFNPRlRXQVJFLlxuICovXG4vKiBnbG9iYWwgZGVmaW5lOmZhbHNlICovXG4vKiBnbG9iYWwgalF1ZXJ5OmZhbHNlICovXG4vKiBnbG9iYWwgbW9tZW50OmZhbHNlICovXG4oZnVuY3Rpb24oZmFjdG9yeSkge1xuICAgICd1c2Ugc3RyaWN0JztcbiAgICBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG4gICAgICAgIC8vIEFNRCBpcyB1c2VkIC0gUmVnaXN0ZXIgYXMgYW4gYW5vbnltb3VzIG1vZHVsZS5cbiAgICAgICAgZGVmaW5lKFsnanF1ZXJ5JywgJ21vbWVudCddLCBmYWN0b3J5KTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jykge1xuICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZSgnanF1ZXJ5JyksIHJlcXVpcmUoJ21vbWVudCcpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBOZWl0aGVyIEFNRCBub3IgQ29tbW9uSlMgdXNlZC4gVXNlIGdsb2JhbCB2YXJpYWJsZXMuXG4gICAgICAgIGlmICh0eXBlb2YgalF1ZXJ5ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdib290c3RyYXAtZGF0ZXRpbWVwaWNrZXIgcmVxdWlyZXMgalF1ZXJ5IHRvIGJlIGxvYWRlZCBmaXJzdCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbW9tZW50ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdib290c3RyYXAtZGF0ZXRpbWVwaWNrZXIgcmVxdWlyZXMgTW9tZW50LmpzIHRvIGJlIGxvYWRlZCBmaXJzdCcpO1xuICAgICAgICB9XG4gICAgICAgIGZhY3RvcnkoalF1ZXJ5LCBtb21lbnQpO1xuICAgIH1cbn0oZnVuY3Rpb24oJCwgbW9tZW50KSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuICAgIGlmICghbW9tZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYm9vdHN0cmFwLWRhdGV0aW1lcGlja2VyIHJlcXVpcmVzIE1vbWVudC5qcyB0byBiZSBsb2FkZWQgZmlyc3QnKTtcbiAgICB9XG5cbiAgICB2YXIgZGF0ZVRpbWVQaWNrZXIgPSBmdW5jdGlvbihlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBwaWNrZXIgPSB7fTtcbiAgICAgICAgdmFyIGRhdGU7XG4gICAgICAgIHZhciB2aWV3RGF0ZTtcbiAgICAgICAgdmFyIHVuc2V0ID0gdHJ1ZTtcbiAgICAgICAgdmFyIGlucHV0O1xuICAgICAgICB2YXIgY29tcG9uZW50ID0gZmFsc2U7XG4gICAgICAgIHZhciB3aWRnZXQgPSBmYWxzZTtcbiAgICAgICAgdmFyIHVzZTI0SG91cnM7XG4gICAgICAgIHZhciBtaW5WaWV3TW9kZU51bWJlciA9IDA7XG4gICAgICAgIHZhciBhY3R1YWxGb3JtYXQ7XG4gICAgICAgIHZhciBwYXJzZUZvcm1hdHM7XG4gICAgICAgIHZhciBjdXJyZW50Vmlld01vZGU7XG4gICAgICAgIHZhciBkYXRlUGlja2VyTW9kZXMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xzTmFtZTogJ2RheXMnLFxuICAgICAgICAgICAgICAgIG5hdkZuYzogJ00nLFxuICAgICAgICAgICAgICAgIG5hdlN0ZXA6IDFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xzTmFtZTogJ21vbnRocycsXG4gICAgICAgICAgICAgICAgbmF2Rm5jOiAneScsXG4gICAgICAgICAgICAgICAgbmF2U3RlcDogMVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbHNOYW1lOiAneWVhcnMnLFxuICAgICAgICAgICAgICAgIG5hdkZuYzogJ3knLFxuICAgICAgICAgICAgICAgIG5hdlN0ZXA6IDEwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsc05hbWU6ICdkZWNhZGVzJyxcbiAgICAgICAgICAgICAgICBuYXZGbmM6ICd5JyxcbiAgICAgICAgICAgICAgICBuYXZTdGVwOiAxMDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICAgICAgdmFyIHZpZXdNb2RlcyA9IFsnZGF5cycsICdtb250aHMnLCAneWVhcnMnLCAnZGVjYWRlcyddO1xuICAgICAgICB2YXIgdmVydGljYWxNb2RlcyA9IFsndG9wJywgJ2JvdHRvbScsICdhdXRvJ107XG4gICAgICAgIHZhciBob3Jpem9udGFsTW9kZXMgPSBbJ2xlZnQnLCAncmlnaHQnLCAnYXV0byddO1xuICAgICAgICB2YXIgdG9vbGJhclBsYWNlbWVudHMgPSBbJ2RlZmF1bHQnLCAndG9wJywgJ2JvdHRvbSddO1xuICAgICAgICB2YXIga2V5TWFwID0ge1xuICAgICAgICAgICAgJ3VwJzogMzgsXG4gICAgICAgICAgICAzODogJ3VwJyxcbiAgICAgICAgICAgICdkb3duJzogNDAsXG4gICAgICAgICAgICA0MDogJ2Rvd24nLFxuICAgICAgICAgICAgJ2xlZnQnOiAzNyxcbiAgICAgICAgICAgIDM3OiAnbGVmdCcsXG4gICAgICAgICAgICAncmlnaHQnOiAzOSxcbiAgICAgICAgICAgIDM5OiAncmlnaHQnLFxuICAgICAgICAgICAgJ3RhYic6IDksXG4gICAgICAgICAgICA5OiAndGFiJyxcbiAgICAgICAgICAgICdlc2NhcGUnOiAyNyxcbiAgICAgICAgICAgIDI3OiAnZXNjYXBlJyxcbiAgICAgICAgICAgICdlbnRlcic6IDEzLFxuICAgICAgICAgICAgMTM6ICdlbnRlcicsXG4gICAgICAgICAgICAncGFnZVVwJzogMzMsXG4gICAgICAgICAgICAzMzogJ3BhZ2VVcCcsXG4gICAgICAgICAgICAncGFnZURvd24nOiAzNCxcbiAgICAgICAgICAgIDM0OiAncGFnZURvd24nLFxuICAgICAgICAgICAgJ3NoaWZ0JzogMTYsXG4gICAgICAgICAgICAxNjogJ3NoaWZ0JyxcbiAgICAgICAgICAgICdjb250cm9sJzogMTcsXG4gICAgICAgICAgICAxNzogJ2NvbnRyb2wnLFxuICAgICAgICAgICAgJ3NwYWNlJzogMzIsXG4gICAgICAgICAgICAzMjogJ3NwYWNlJyxcbiAgICAgICAgICAgICd0JzogODQsXG4gICAgICAgICAgICA4NDogJ3QnLFxuICAgICAgICAgICAgJ2RlbGV0ZSc6IDQ2LFxuICAgICAgICAgICAgNDY6ICdkZWxldGUnXG4gICAgICAgIH07XG4gICAgICAgIHZhciBrZXlTdGF0ZSA9IHt9O1xuXG4gICAgICAgIC8qKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBQcml2YXRlIGZ1bmN0aW9uc1xuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgICAgICB2YXIgaGFzVGltZVpvbmUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiBtb21lbnQudHogIT09IHVuZGVmaW5lZCAmJiBvcHRpb25zLnRpbWVab25lICE9PSB1bmRlZmluZWQgJiYgb3B0aW9ucy50aW1lWm9uZSAhPT0gbnVsbCAmJiBvcHRpb25zLnRpbWVab25lICE9PSAnJztcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZ2V0TW9tZW50ID0gZnVuY3Rpb24oZCkge1xuICAgICAgICAgICAgdmFyIHJldHVybk1vbWVudDtcblxuICAgICAgICAgICAgaWYgKGQgPT09IHVuZGVmaW5lZCB8fCBkID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuTW9tZW50ID0gbW9tZW50KCk7IC8vIFRPRE8gc2hvdWxkIHRoaXMgdXNlIGZvcm1hdD8gYW5kIGxvY2FsZT9cbiAgICAgICAgICAgIH0gZWxzZSBpZiAobW9tZW50LmlzRGF0ZShkKSB8fCBtb21lbnQuaXNNb21lbnQoZCkpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZGF0ZSB0aGF0IGlzIHBhc3NlZCBpbiBpcyBhbHJlYWR5IGEgRGF0ZSgpIG9yIG1vbWVudCgpIG9iamVjdCxcbiAgICAgICAgICAgICAgICAvLyBwYXNzIGl0IGRpcmVjdGx5IHRvIG1vbWVudC5cbiAgICAgICAgICAgICAgICByZXR1cm5Nb21lbnQgPSBtb21lbnQoZCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhhc1RpbWVab25lKCkpIHsgLy8gVGhlcmUgaXMgYSBzdHJpbmcgdG8gcGFyc2UgYW5kIGEgZGVmYXVsdCB0aW1lIHpvbmVcbiAgICAgICAgICAgICAgICAvLyBwYXJzZSB3aXRoIHRoZSB0eiBmdW5jdGlvbiB3aGljaCB0YWtlcyBhIGRlZmF1bHQgdGltZSB6b25lIGlmIGl0IGlzIG5vdCBpbiB0aGUgZm9ybWF0IHN0cmluZ1xuICAgICAgICAgICAgICAgIHJldHVybk1vbWVudCA9IG1vbWVudC50eihkLCBwYXJzZUZvcm1hdHMsIG9wdGlvbnMudXNlU3RyaWN0LCBvcHRpb25zLnRpbWVab25lKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuTW9tZW50ID0gbW9tZW50KGQsIHBhcnNlRm9ybWF0cywgb3B0aW9ucy51c2VTdHJpY3QpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaGFzVGltZVpvbmUoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybk1vbWVudC50eihvcHRpb25zLnRpbWVab25lKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJldHVybk1vbWVudDtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgaXNFbmFibGVkID0gZnVuY3Rpb24oZ3JhbnVsYXJpdHkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZ3JhbnVsYXJpdHkgIT09ICdzdHJpbmcnIHx8IGdyYW51bGFyaXR5Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdpc0VuYWJsZWQgZXhwZWN0cyBhIHNpbmdsZSBjaGFyYWN0ZXIgc3RyaW5nIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoIChncmFudWxhcml0eSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3knOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWN0dWFsRm9ybWF0LmluZGV4T2YoJ1knKSAhPT0gLTE7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY3R1YWxGb3JtYXQuaW5kZXhPZignTScpICE9PSAtMTtcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjdHVhbEZvcm1hdC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ2QnKSAhPT0gLTE7XG4gICAgICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnSCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY3R1YWxGb3JtYXQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdoJykgIT09IC0xO1xuICAgICAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWN0dWFsRm9ybWF0LmluZGV4T2YoJ20nKSAhPT0gLTE7XG4gICAgICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY3R1YWxGb3JtYXQuaW5kZXhPZigncycpICE9PSAtMTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGhhc1RpbWUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiAoaXNFbmFibGVkKCdoJykgfHwgaXNFbmFibGVkKCdtJykgfHwgaXNFbmFibGVkKCdzJykpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBoYXNEYXRlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gKGlzRW5hYmxlZCgneScpIHx8IGlzRW5hYmxlZCgnTScpIHx8IGlzRW5hYmxlZCgnZCcpKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZ2V0RGF0ZVBpY2tlclRlbXBsYXRlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgaGVhZFRlbXBsYXRlID0gJCgnPHRoZWFkPicpXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dHI+JylcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dGg+JykuYWRkQ2xhc3MoJ3ByZXYnKS5hdHRyKCdkYXRhLWFjdGlvbicsICdwcmV2aW91cycpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKG9wdGlvbnMuaWNvbnMucHJldmlvdXMpKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRoPicpLmFkZENsYXNzKCdwaWNrZXItc3dpdGNoJykuYXR0cignZGF0YS1hY3Rpb24nLCAncGlja2VyU3dpdGNoJykuYXR0cignY29sc3BhbicsIChvcHRpb25zLmNhbGVuZGFyV2Vla3MgPyAnNicgOiAnNScpKSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dGg+JykuYWRkQ2xhc3MoJ25leHQnKS5hdHRyKCdkYXRhLWFjdGlvbicsICduZXh0JylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3Mob3B0aW9ucy5pY29ucy5uZXh0KSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB2YXIgY29udFRlbXBsYXRlID0gJCgnPHRib2R5PicpXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dHI+JylcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dGQ+JykuYXR0cignY29sc3BhbicsIChvcHRpb25zLmNhbGVuZGFyV2Vla3MgPyAnOCcgOiAnNycpKSlcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICQoJzxkaXY+JykuYWRkQ2xhc3MoJ2RhdGVwaWNrZXItZGF5cycpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRhYmxlPicpLmFkZENsYXNzKCd0YWJsZS1jb25kZW5zZWQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZChoZWFkVGVtcGxhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzx0Ym9keT4nKSlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAkKCc8ZGl2PicpLmFkZENsYXNzKCdkYXRlcGlja2VyLW1vbnRocycpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRhYmxlPicpLmFkZENsYXNzKCd0YWJsZS1jb25kZW5zZWQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZChoZWFkVGVtcGxhdGUuY2xvbmUoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoY29udFRlbXBsYXRlLmNsb25lKCkpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgJCgnPGRpdj4nKS5hZGRDbGFzcygnZGF0ZXBpY2tlci15ZWFycycpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRhYmxlPicpLmFkZENsYXNzKCd0YWJsZS1jb25kZW5zZWQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZChoZWFkVGVtcGxhdGUuY2xvbmUoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoY29udFRlbXBsYXRlLmNsb25lKCkpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgJCgnPGRpdj4nKS5hZGRDbGFzcygnZGF0ZXBpY2tlci1kZWNhZGVzJylcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dGFibGU+JykuYWRkQ2xhc3MoJ3RhYmxlLWNvbmRlbnNlZCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKGhlYWRUZW1wbGF0ZS5jbG9uZSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZChjb250VGVtcGxhdGUuY2xvbmUoKSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZ2V0VGltZVBpY2tlck1haW5UZW1wbGF0ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHRvcFJvdyA9ICQoJzx0cj4nKTtcbiAgICAgICAgICAgIHZhciBtaWRkbGVSb3cgPSAkKCc8dHI+Jyk7XG4gICAgICAgICAgICB2YXIgYm90dG9tUm93ID0gJCgnPHRyPicpO1xuXG4gICAgICAgICAgICBpZiAoaXNFbmFibGVkKCdoJykpIHtcbiAgICAgICAgICAgICAgICB0b3BSb3cuYXBwZW5kKCQoJzx0ZD4nKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxhPicpLmF0dHIoeyBocmVmOiAnIycsIHRhYmluZGV4OiAnLTEnLCAndGl0bGUnOiBvcHRpb25zLnRvb2x0aXBzLmluY3JlbWVudEhvdXIgfSkuYWRkQ2xhc3MoJ2J0bicpLmF0dHIoJ2RhdGEtYWN0aW9uJywgJ2luY3JlbWVudEhvdXJzJykuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKG9wdGlvbnMuaWNvbnMudXApKSkpO1xuICAgICAgICAgICAgICAgIG1pZGRsZVJvdy5hcHBlbmQoJCgnPHRkPicpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3MoJ3RpbWVwaWNrZXItaG91cicpLmF0dHIoeyAnZGF0YS10aW1lLWNvbXBvbmVudCc6ICdob3VycycsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMucGlja0hvdXIgfSkuYXR0cignZGF0YS1hY3Rpb24nLCAnc2hvd0hvdXJzJykpKTtcbiAgICAgICAgICAgICAgICBib3R0b21Sb3cuYXBwZW5kKCQoJzx0ZD4nKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxhPicpLmF0dHIoeyBocmVmOiAnIycsIHRhYmluZGV4OiAnLTEnLCAndGl0bGUnOiBvcHRpb25zLnRvb2x0aXBzLmRlY3JlbWVudEhvdXIgfSkuYWRkQ2xhc3MoJ2J0bicpLmF0dHIoJ2RhdGEtYWN0aW9uJywgJ2RlY3JlbWVudEhvdXJzJykuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKG9wdGlvbnMuaWNvbnMuZG93bikpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNFbmFibGVkKCdtJykpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNFbmFibGVkKCdoJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wUm93LmFwcGVuZCgkKCc8dGQ+JykuYWRkQ2xhc3MoJ3NlcGFyYXRvcicpKTtcbiAgICAgICAgICAgICAgICAgICAgbWlkZGxlUm93LmFwcGVuZCgkKCc8dGQ+JykuYWRkQ2xhc3MoJ3NlcGFyYXRvcicpLmh0bWwoJzonKSk7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJvdy5hcHBlbmQoJCgnPHRkPicpLmFkZENsYXNzKCdzZXBhcmF0b3InKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRvcFJvdy5hcHBlbmQoJCgnPHRkPicpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPGE+JykuYXR0cih7IGhyZWY6ICcjJywgdGFiaW5kZXg6ICctMScsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMuaW5jcmVtZW50TWludXRlIH0pLmFkZENsYXNzKCdidG4nKS5hdHRyKCdkYXRhLWFjdGlvbicsICdpbmNyZW1lbnRNaW51dGVzJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3Mob3B0aW9ucy5pY29ucy51cCkpKSk7XG4gICAgICAgICAgICAgICAgbWlkZGxlUm93LmFwcGVuZCgkKCc8dGQ+JylcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8c3Bhbj4nKS5hZGRDbGFzcygndGltZXBpY2tlci1taW51dGUnKS5hdHRyKHsgJ2RhdGEtdGltZS1jb21wb25lbnQnOiAnbWludXRlcycsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMucGlja01pbnV0ZSB9KS5hdHRyKCdkYXRhLWFjdGlvbicsICdzaG93TWludXRlcycpKSk7XG4gICAgICAgICAgICAgICAgYm90dG9tUm93LmFwcGVuZCgkKCc8dGQ+JylcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8YT4nKS5hdHRyKHsgaHJlZjogJyMnLCB0YWJpbmRleDogJy0xJywgJ3RpdGxlJzogb3B0aW9ucy50b29sdGlwcy5kZWNyZW1lbnRNaW51dGUgfSkuYWRkQ2xhc3MoJ2J0bicpLmF0dHIoJ2RhdGEtYWN0aW9uJywgJ2RlY3JlbWVudE1pbnV0ZXMnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8c3Bhbj4nKS5hZGRDbGFzcyhvcHRpb25zLmljb25zLmRvd24pKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzRW5hYmxlZCgncycpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzRW5hYmxlZCgnbScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcFJvdy5hcHBlbmQoJCgnPHRkPicpLmFkZENsYXNzKCdzZXBhcmF0b3InKSk7XG4gICAgICAgICAgICAgICAgICAgIG1pZGRsZVJvdy5hcHBlbmQoJCgnPHRkPicpLmFkZENsYXNzKCdzZXBhcmF0b3InKS5odG1sKCc6JykpO1xuICAgICAgICAgICAgICAgICAgICBib3R0b21Sb3cuYXBwZW5kKCQoJzx0ZD4nKS5hZGRDbGFzcygnc2VwYXJhdG9yJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0b3BSb3cuYXBwZW5kKCQoJzx0ZD4nKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxhPicpLmF0dHIoeyBocmVmOiAnIycsIHRhYmluZGV4OiAnLTEnLCAndGl0bGUnOiBvcHRpb25zLnRvb2x0aXBzLmluY3JlbWVudFNlY29uZCB9KS5hZGRDbGFzcygnYnRuJykuYXR0cignZGF0YS1hY3Rpb24nLCAnaW5jcmVtZW50U2Vjb25kcycpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKG9wdGlvbnMuaWNvbnMudXApKSkpO1xuICAgICAgICAgICAgICAgIG1pZGRsZVJvdy5hcHBlbmQoJCgnPHRkPicpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3MoJ3RpbWVwaWNrZXItc2Vjb25kJykuYXR0cih7ICdkYXRhLXRpbWUtY29tcG9uZW50JzogJ3NlY29uZHMnLCAndGl0bGUnOiBvcHRpb25zLnRvb2x0aXBzLnBpY2tTZWNvbmQgfSkuYXR0cignZGF0YS1hY3Rpb24nLCAnc2hvd1NlY29uZHMnKSkpO1xuICAgICAgICAgICAgICAgIGJvdHRvbVJvdy5hcHBlbmQoJCgnPHRkPicpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPGE+JykuYXR0cih7IGhyZWY6ICcjJywgdGFiaW5kZXg6ICctMScsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMuZGVjcmVtZW50U2Vjb25kIH0pLmFkZENsYXNzKCdidG4nKS5hdHRyKCdkYXRhLWFjdGlvbicsICdkZWNyZW1lbnRTZWNvbmRzJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3Mob3B0aW9ucy5pY29ucy5kb3duKSkpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF1c2UyNEhvdXJzKSB7XG4gICAgICAgICAgICAgICAgdG9wUm93LmFwcGVuZCgkKCc8dGQ+JykuYWRkQ2xhc3MoJ3NlcGFyYXRvcicpKTtcbiAgICAgICAgICAgICAgICBtaWRkbGVSb3cuYXBwZW5kKCQoJzx0ZD4nKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxidXR0b24+JykuYWRkQ2xhc3MoJ2J0biBidG4tcHJpbWFyeScpLmF0dHIoeyAnZGF0YS1hY3Rpb24nOiAndG9nZ2xlUGVyaW9kJywgdGFiaW5kZXg6ICctMScsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMudG9nZ2xlUGVyaW9kIH0pKSk7XG4gICAgICAgICAgICAgICAgYm90dG9tUm93LmFwcGVuZCgkKCc8dGQ+JykuYWRkQ2xhc3MoJ3NlcGFyYXRvcicpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuICQoJzxkaXY+JykuYWRkQ2xhc3MoJ3RpbWVwaWNrZXItcGlja2VyJylcbiAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzx0YWJsZT4nKS5hZGRDbGFzcygndGFibGUtY29uZGVuc2VkJylcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZChbdG9wUm93LCBtaWRkbGVSb3csIGJvdHRvbVJvd10pKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZ2V0VGltZVBpY2tlclRlbXBsYXRlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgaG91cnNWaWV3ID0gJCgnPGRpdj4nKS5hZGRDbGFzcygndGltZXBpY2tlci1ob3VycycpXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dGFibGU+JykuYWRkQ2xhc3MoJ3RhYmxlLWNvbmRlbnNlZCcpKTtcbiAgICAgICAgICAgIHZhciBtaW51dGVzVmlldyA9ICQoJzxkaXY+JykuYWRkQ2xhc3MoJ3RpbWVwaWNrZXItbWludXRlcycpXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dGFibGU+JykuYWRkQ2xhc3MoJ3RhYmxlLWNvbmRlbnNlZCcpKTtcbiAgICAgICAgICAgIHZhciBzZWNvbmRzVmlldyA9ICQoJzxkaXY+JykuYWRkQ2xhc3MoJ3RpbWVwaWNrZXItc2Vjb25kcycpXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dGFibGU+JykuYWRkQ2xhc3MoJ3RhYmxlLWNvbmRlbnNlZCcpKTtcbiAgICAgICAgICAgIHZhciByZXQgPSBbZ2V0VGltZVBpY2tlck1haW5UZW1wbGF0ZSgpXTtcblxuICAgICAgICAgICAgaWYgKGlzRW5hYmxlZCgnaCcpKSB7XG4gICAgICAgICAgICAgICAgcmV0LnB1c2goaG91cnNWaWV3KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0VuYWJsZWQoJ20nKSkge1xuICAgICAgICAgICAgICAgIHJldC5wdXNoKG1pbnV0ZXNWaWV3KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0VuYWJsZWQoJ3MnKSkge1xuICAgICAgICAgICAgICAgIHJldC5wdXNoKHNlY29uZHNWaWV3KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZ2V0VG9vbGJhciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHJvdyA9IFtdO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuc2hvd1RvZGF5QnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgcm93LnB1c2goJCgnPHRkPicpLmFwcGVuZCgkKCc8YT4nKS5hdHRyKHsgJ2RhdGEtYWN0aW9uJzogJ3RvZGF5JywgJ3RpdGxlJzogb3B0aW9ucy50b29sdGlwcy50b2RheSB9KS5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3Mob3B0aW9ucy5pY29ucy50b2RheSkpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIW9wdGlvbnMuc2lkZUJ5U2lkZSAmJiBoYXNEYXRlKCkgJiYgaGFzVGltZSgpKSB7XG4gICAgICAgICAgICAgICAgcm93LnB1c2goJCgnPHRkPicpLmFwcGVuZCgkKCc8YT4nKS5hdHRyKHsgJ2RhdGEtYWN0aW9uJzogJ3RvZ2dsZVBpY2tlcicsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMuc2VsZWN0VGltZSB9KS5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3Mob3B0aW9ucy5pY29ucy50aW1lKSkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnNob3dDbGVhcikge1xuICAgICAgICAgICAgICAgIHJvdy5wdXNoKCQoJzx0ZD4nKS5hcHBlbmQoJCgnPGE+JykuYXR0cih7ICdkYXRhLWFjdGlvbic6ICdjbGVhcicsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMuY2xlYXIgfSkuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKG9wdGlvbnMuaWNvbnMuY2xlYXIpKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuc2hvd0Nsb3NlKSB7XG4gICAgICAgICAgICAgICAgcm93LnB1c2goJCgnPHRkPicpLmFwcGVuZCgkKCc8YT4nKS5hdHRyKHsgJ2RhdGEtYWN0aW9uJzogJ2Nsb3NlJywgJ3RpdGxlJzogb3B0aW9ucy50b29sdGlwcy5jbG9zZSB9KS5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3Mob3B0aW9ucy5pY29ucy5jbG9zZSkpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gJCgnPHRhYmxlPicpLmFkZENsYXNzKCd0YWJsZS1jb25kZW5zZWQnKS5hcHBlbmQoJCgnPHRib2R5PicpLmFwcGVuZCgkKCc8dHI+JykuYXBwZW5kKHJvdykpKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZ2V0VGVtcGxhdGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0ZW1wbGF0ZSA9ICQoJzxkaXY+JykuYWRkQ2xhc3MoJ2Jvb3RzdHJhcC1kYXRldGltZXBpY2tlci13aWRnZXQgZHJvcGRvd24tbWVudScpO1xuICAgICAgICAgICAgdmFyIGRhdGVWaWV3ID0gJCgnPGRpdj4nKS5hZGRDbGFzcygnZGF0ZXBpY2tlcicpLmFwcGVuZChnZXREYXRlUGlja2VyVGVtcGxhdGUoKSk7XG4gICAgICAgICAgICB2YXIgdGltZVZpZXcgPSAkKCc8ZGl2PicpLmFkZENsYXNzKCd0aW1lcGlja2VyJykuYXBwZW5kKGdldFRpbWVQaWNrZXJUZW1wbGF0ZSgpKTtcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gJCgnPHVsPicpLmFkZENsYXNzKCdsaXN0LXVuc3R5bGVkJyk7XG4gICAgICAgICAgICB2YXIgdG9vbGJhciA9ICQoJzxsaT4nKS5hZGRDbGFzcygncGlja2VyLXN3aXRjaCcgKyAob3B0aW9ucy5jb2xsYXBzZSA/ICcgYWNjb3JkaW9uLXRvZ2dsZScgOiAnJykpLmFwcGVuZChnZXRUb29sYmFyKCkpO1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZS5yZW1vdmVDbGFzcygnZHJvcGRvd24tbWVudScpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodXNlMjRIb3Vycykge1xuICAgICAgICAgICAgICAgIHRlbXBsYXRlLmFkZENsYXNzKCd1c2V0d2VudHlmb3VyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpc0VuYWJsZWQoJ3MnKSAmJiAhdXNlMjRIb3Vycykge1xuICAgICAgICAgICAgICAgIHRlbXBsYXRlLmFkZENsYXNzKCd3aWRlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5zaWRlQnlTaWRlICYmIGhhc0RhdGUoKSAmJiBoYXNUaW1lKCkpIHtcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZS5hZGRDbGFzcygndGltZXBpY2tlci1zYnMnKTtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy50b29sYmFyUGxhY2VtZW50ID09PSAndG9wJykge1xuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZS5hcHBlbmQodG9vbGJhcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRlbXBsYXRlLmFwcGVuZChcbiAgICAgICAgICAgICAgICAgICAgJCgnPGRpdj4nKS5hZGRDbGFzcygncm93JylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoZGF0ZVZpZXcuYWRkQ2xhc3MoJ2NvbC1tZC02JykpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKHRpbWVWaWV3LmFkZENsYXNzKCdjb2wtbWQtNicpKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudG9vbGJhclBsYWNlbWVudCA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUuYXBwZW5kKHRvb2xiYXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGVtcGxhdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnRvb2xiYXJQbGFjZW1lbnQgPT09ICd0b3AnKSB7XG4gICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmQodG9vbGJhcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaGFzRGF0ZSgpKSB7XG4gICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmQoJCgnPGxpPicpLmFkZENsYXNzKChvcHRpb25zLmNvbGxhcHNlICYmIGhhc1RpbWUoKSA/ICdjb2xsYXBzZSBpbicgOiAnJykpLmFwcGVuZChkYXRlVmlldykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMudG9vbGJhclBsYWNlbWVudCA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmQodG9vbGJhcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaGFzVGltZSgpKSB7XG4gICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmQoJCgnPGxpPicpLmFkZENsYXNzKChvcHRpb25zLmNvbGxhcHNlICYmIGhhc0RhdGUoKSA/ICdjb2xsYXBzZScgOiAnJykpLmFwcGVuZCh0aW1lVmlldykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMudG9vbGJhclBsYWNlbWVudCA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZCh0b29sYmFyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0ZW1wbGF0ZS5hcHBlbmQoY29udGVudCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGRhdGFUb09wdGlvbnMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBlRGF0YTtcbiAgICAgICAgICAgIHZhciBkYXRhT3B0aW9ucyA9IHt9O1xuXG4gICAgICAgICAgICBpZiAoZWxlbWVudC5pcygnaW5wdXQnKSB8fCBvcHRpb25zLmlubGluZSkge1xuICAgICAgICAgICAgICAgIGVEYXRhID0gZWxlbWVudC5kYXRhKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVEYXRhID0gZWxlbWVudC5maW5kKCdpbnB1dCcpLmRhdGEoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGVEYXRhLmRhdGVPcHRpb25zICYmIGVEYXRhLmRhdGVPcHRpb25zIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgZGF0YU9wdGlvbnMgPSAkLmV4dGVuZCh0cnVlLCBkYXRhT3B0aW9ucywgZURhdGEuZGF0ZU9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAkLmVhY2gob3B0aW9ucywgZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICAgICAgdmFyIGF0dHJpYnV0ZU5hbWUgPSAnZGF0ZScgKyBrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSk7XG4gICAgICAgICAgICAgICAgaWYgKGVEYXRhW2F0dHJpYnV0ZU5hbWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YU9wdGlvbnNba2V5XSA9IGVEYXRhW2F0dHJpYnV0ZU5hbWVdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGRhdGFPcHRpb25zO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBwbGFjZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHBvc2l0aW9uID0gKGNvbXBvbmVudCB8fCBlbGVtZW50KS5wb3NpdGlvbigpO1xuICAgICAgICAgICAgdmFyIG9mZnNldCA9IChjb21wb25lbnQgfHwgZWxlbWVudCkub2Zmc2V0KCk7XG4gICAgICAgICAgICB2YXIgdmVydGljYWwgPSBvcHRpb25zLndpZGdldFBvc2l0aW9uaW5nLnZlcnRpY2FsO1xuICAgICAgICAgICAgdmFyIGhvcml6b250YWwgPSBvcHRpb25zLndpZGdldFBvc2l0aW9uaW5nLmhvcml6b250YWw7XG4gICAgICAgICAgICB2YXIgcGFyZW50O1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy53aWRnZXRQYXJlbnQpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnQgPSBvcHRpb25zLndpZGdldFBhcmVudC5hcHBlbmQod2lkZ2V0KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5pcygnaW5wdXQnKSkge1xuICAgICAgICAgICAgICAgIHBhcmVudCA9IGVsZW1lbnQuYWZ0ZXIod2lkZ2V0KS5wYXJlbnQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnQgPSBlbGVtZW50LmFwcGVuZCh3aWRnZXQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFyZW50ID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmNoaWxkcmVuKCkuZmlyc3QoKS5hZnRlcih3aWRnZXQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUb3AgYW5kIGJvdHRvbSBsb2dpY1xuICAgICAgICAgICAgaWYgKHZlcnRpY2FsID09PSAnYXV0bycpIHtcbiAgICAgICAgICAgICAgICBpZiAob2Zmc2V0LnRvcCArIHdpZGdldC5oZWlnaHQoKSAqIDEuNSA+PSAkKHdpbmRvdykuaGVpZ2h0KCkgKyAkKHdpbmRvdykuc2Nyb2xsVG9wKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZGdldC5oZWlnaHQoKSArIGVsZW1lbnQub3V0ZXJIZWlnaHQoKSA8IG9mZnNldC50b3ApIHtcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwgPSAndG9wJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbCA9ICdib3R0b20nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTGVmdCBhbmQgcmlnaHQgbG9naWNcbiAgICAgICAgICAgIGlmIChob3Jpem9udGFsID09PSAnYXV0bycpIHtcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50LndpZHRoKCkgPCBvZmZzZXQubGVmdCArIHdpZGdldC5vdXRlcldpZHRoKCkgLyAyICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQubGVmdCArIHdpZGdldC5vdXRlcldpZHRoKCkgPiAkKHdpbmRvdykud2lkdGgoKSkge1xuICAgICAgICAgICAgICAgICAgICBob3Jpem9udGFsID0gJ3JpZ2h0JztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBob3Jpem9udGFsID0gJ2xlZnQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHZlcnRpY2FsID09PSAndG9wJykge1xuICAgICAgICAgICAgICAgIHdpZGdldC5hZGRDbGFzcygndG9wJykucmVtb3ZlQ2xhc3MoJ2JvdHRvbScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3aWRnZXQuYWRkQ2xhc3MoJ2JvdHRvbScpLnJlbW92ZUNsYXNzKCd0b3AnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGhvcml6b250YWwgPT09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICB3aWRnZXQuYWRkQ2xhc3MoJ3B1bGwtcmlnaHQnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0LnJlbW92ZUNsYXNzKCdwdWxsLXJpZ2h0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGZpbmQgdGhlIGZpcnN0IHBhcmVudCBlbGVtZW50IHRoYXQgaGFzIGEgbm9uLXN0YXRpYyBjc3MgcG9zaXRpb25pbmdcbiAgICAgICAgICAgIGlmIChwYXJlbnQuY3NzKCdwb3NpdGlvbicpID09PSAnc3RhdGljJykge1xuICAgICAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCh0aGlzKS5jc3MoJ3Bvc2l0aW9uJykgIT09ICdzdGF0aWMnO1xuICAgICAgICAgICAgICAgIH0pLmZpcnN0KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwYXJlbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdkYXRldGltZXBpY2tlciBjb21wb25lbnQgc2hvdWxkIGJlIHBsYWNlZCB3aXRoaW4gYSBub24tc3RhdGljIHBvc2l0aW9uZWQgY29udGFpbmVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdpZGdldC5jc3Moe1xuICAgICAgICAgICAgICAgIHRvcDogdmVydGljYWwgPT09ICd0b3AnID8gJ2F1dG8nIDogcG9zaXRpb24udG9wICsgZWxlbWVudC5vdXRlckhlaWdodCgpLFxuICAgICAgICAgICAgICAgIGJvdHRvbTogdmVydGljYWwgPT09ICd0b3AnID8gcGFyZW50Lm91dGVySGVpZ2h0KCkgLSAocGFyZW50ID09PSBlbGVtZW50ID8gMCA6IHBvc2l0aW9uLnRvcCkgOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgbGVmdDogaG9yaXpvbnRhbCA9PT0gJ2xlZnQnID8gKHBhcmVudCA9PT0gZWxlbWVudCA/IDAgOiBwb3NpdGlvbi5sZWZ0KSA6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICByaWdodDogaG9yaXpvbnRhbCA9PT0gJ2xlZnQnID8gJ2F1dG8nIDogcGFyZW50Lm91dGVyV2lkdGgoKSAtIGVsZW1lbnQub3V0ZXJXaWR0aCgpIC0gKHBhcmVudCA9PT0gZWxlbWVudCA/IDAgOiBwb3NpdGlvbi5sZWZ0KVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIG5vdGlmeUV2ZW50ID0gZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgaWYgKGUudHlwZSA9PT0gJ2RwLmNoYW5nZScgJiYgKChlLmRhdGUgJiYgZS5kYXRlLmlzU2FtZShlLm9sZERhdGUpKSB8fCAoIWUuZGF0ZSAmJiAhZS5vbGREYXRlKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbGVtZW50LnRyaWdnZXIoZSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIHZpZXdVcGRhdGUgPSBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBpZiAoZSA9PT0gJ3knKSB7XG4gICAgICAgICAgICAgICAgZSA9ICdZWVlZJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5vdGlmeUV2ZW50KHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnZHAudXBkYXRlJyxcbiAgICAgICAgICAgICAgICBjaGFuZ2U6IGUsXG4gICAgICAgICAgICAgICAgdmlld0RhdGU6IHZpZXdEYXRlLmNsb25lKClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBzaG93TW9kZSA9IGZ1bmN0aW9uKGRpcikge1xuICAgICAgICAgICAgaWYgKCF3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGlyKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFZpZXdNb2RlID0gTWF0aC5tYXgobWluVmlld01vZGVOdW1iZXIsIE1hdGgubWluKDMsIGN1cnJlbnRWaWV3TW9kZSArIGRpcikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2lkZ2V0LmZpbmQoJy5kYXRlcGlja2VyID4gZGl2JykuaGlkZSgpLmZpbHRlcignLmRhdGVwaWNrZXItJyArIGRhdGVQaWNrZXJNb2Rlc1tjdXJyZW50Vmlld01vZGVdLmNsc05hbWUpLnNob3coKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZmlsbERvdyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHJvdyA9ICQoJzx0cj4nKTtcbiAgICAgICAgICAgIHZhciBjdXJyZW50RGF0ZSA9IHZpZXdEYXRlLmNsb25lKCkuc3RhcnRPZigndycpLnN0YXJ0T2YoJ2QnKTtcblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuY2FsZW5kYXJXZWVrcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHJvdy5hcHBlbmQoJCgnPHRoPicpLmFkZENsYXNzKCdjdycpLnRleHQoJyMnKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdoaWxlIChjdXJyZW50RGF0ZS5pc0JlZm9yZSh2aWV3RGF0ZS5jbG9uZSgpLmVuZE9mKCd3JykpKSB7XG4gICAgICAgICAgICAgICAgcm93LmFwcGVuZCgkKCc8dGg+JykuYWRkQ2xhc3MoJ2RvdycpLnRleHQoY3VycmVudERhdGUuZm9ybWF0KCdkZCcpKSk7XG4gICAgICAgICAgICAgICAgY3VycmVudERhdGUuYWRkKDEsICdkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aWRnZXQuZmluZCgnLmRhdGVwaWNrZXItZGF5cyB0aGVhZCcpLmFwcGVuZChyb3cpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBpc0luRGlzYWJsZWREYXRlcyA9IGZ1bmN0aW9uKHRlc3REYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5kaXNhYmxlZERhdGVzW3Rlc3REYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpXSA9PT0gdHJ1ZTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgaXNJbkVuYWJsZWREYXRlcyA9IGZ1bmN0aW9uKHRlc3REYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5lbmFibGVkRGF0ZXNbdGVzdERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJyldID09PSB0cnVlO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBpc0luRGlzYWJsZWRIb3VycyA9IGZ1bmN0aW9uKHRlc3REYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5kaXNhYmxlZEhvdXJzW3Rlc3REYXRlLmZvcm1hdCgnSCcpXSA9PT0gdHJ1ZTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgaXNJbkVuYWJsZWRIb3VycyA9IGZ1bmN0aW9uKHRlc3REYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5lbmFibGVkSG91cnNbdGVzdERhdGUuZm9ybWF0KCdIJyldID09PSB0cnVlO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBpc1ZhbGlkID0gZnVuY3Rpb24odGFyZ2V0TW9tZW50LCBncmFudWxhcml0eSkge1xuICAgICAgICAgICAgaWYgKCF0YXJnZXRNb21lbnQuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuZGlzYWJsZWREYXRlcyAmJiBncmFudWxhcml0eSA9PT0gJ2QnICYmIGlzSW5EaXNhYmxlZERhdGVzKHRhcmdldE1vbWVudCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5lbmFibGVkRGF0ZXMgJiYgZ3JhbnVsYXJpdHkgPT09ICdkJyAmJiAhaXNJbkVuYWJsZWREYXRlcyh0YXJnZXRNb21lbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMubWluRGF0ZSAmJiB0YXJnZXRNb21lbnQuaXNCZWZvcmUob3B0aW9ucy5taW5EYXRlLCBncmFudWxhcml0eSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5tYXhEYXRlICYmIHRhcmdldE1vbWVudC5pc0FmdGVyKG9wdGlvbnMubWF4RGF0ZSwgZ3JhbnVsYXJpdHkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuZGF5c09mV2Vla0Rpc2FibGVkICYmIGdyYW51bGFyaXR5ID09PSAnZCcgJiYgb3B0aW9ucy5kYXlzT2ZXZWVrRGlzYWJsZWQuaW5kZXhPZih0YXJnZXRNb21lbnQuZGF5KCkpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmRpc2FibGVkSG91cnMgJiYgKGdyYW51bGFyaXR5ID09PSAnaCcgfHwgZ3JhbnVsYXJpdHkgPT09ICdtJyB8fCBncmFudWxhcml0eSA9PT0gJ3MnKSAmJiBpc0luRGlzYWJsZWRIb3Vycyh0YXJnZXRNb21lbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuZW5hYmxlZEhvdXJzICYmIChncmFudWxhcml0eSA9PT0gJ2gnIHx8IGdyYW51bGFyaXR5ID09PSAnbScgfHwgZ3JhbnVsYXJpdHkgPT09ICdzJykgJiYgIWlzSW5FbmFibGVkSG91cnModGFyZ2V0TW9tZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmRpc2FibGVkVGltZUludGVydmFscyAmJiAoZ3JhbnVsYXJpdHkgPT09ICdoJyB8fCBncmFudWxhcml0eSA9PT0gJ20nIHx8IGdyYW51bGFyaXR5ID09PSAncycpKSB7XG4gICAgICAgICAgICAgICAgdmFyIGZvdW5kID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgJC5lYWNoKG9wdGlvbnMuZGlzYWJsZWRUaW1lSW50ZXJ2YWxzLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldE1vbWVudC5pc0JldHdlZW4odGhpc1swXSwgdGhpc1sxXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGZpbGxNb250aHMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBzcGFucyA9IFtdO1xuICAgICAgICAgICAgdmFyIG1vbnRoc1Nob3J0ID0gdmlld0RhdGUuY2xvbmUoKS5zdGFydE9mKCd5Jykuc3RhcnRPZignZCcpO1xuICAgICAgICAgICAgd2hpbGUgKG1vbnRoc1Nob3J0LmlzU2FtZSh2aWV3RGF0ZSwgJ3knKSkge1xuICAgICAgICAgICAgICAgIHNwYW5zLnB1c2goJCgnPHNwYW4+JykuYXR0cignZGF0YS1hY3Rpb24nLCAnc2VsZWN0TW9udGgnKS5hZGRDbGFzcygnbW9udGgnKS50ZXh0KG1vbnRoc1Nob3J0LmZvcm1hdCgnTU1NJykpKTtcbiAgICAgICAgICAgICAgICBtb250aHNTaG9ydC5hZGQoMSwgJ00nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpZGdldC5maW5kKCcuZGF0ZXBpY2tlci1tb250aHMgdGQnKS5lbXB0eSgpLmFwcGVuZChzcGFucyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIHVwZGF0ZU1vbnRocyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIG1vbnRoc1ZpZXcgPSB3aWRnZXQuZmluZCgnLmRhdGVwaWNrZXItbW9udGhzJyk7XG4gICAgICAgICAgICB2YXIgbW9udGhzVmlld0hlYWRlciA9IG1vbnRoc1ZpZXcuZmluZCgndGgnKTtcbiAgICAgICAgICAgIHZhciBtb250aHMgPSBtb250aHNWaWV3LmZpbmQoJ3Rib2R5JykuZmluZCgnc3BhbicpO1xuXG4gICAgICAgICAgICBtb250aHNWaWV3SGVhZGVyLmVxKDApLmZpbmQoJ3NwYW4nKS5hdHRyKCd0aXRsZScsIG9wdGlvbnMudG9vbHRpcHMucHJldlllYXIpO1xuICAgICAgICAgICAgbW9udGhzVmlld0hlYWRlci5lcSgxKS5hdHRyKCd0aXRsZScsIG9wdGlvbnMudG9vbHRpcHMuc2VsZWN0WWVhcik7XG4gICAgICAgICAgICBtb250aHNWaWV3SGVhZGVyLmVxKDIpLmZpbmQoJ3NwYW4nKS5hdHRyKCd0aXRsZScsIG9wdGlvbnMudG9vbHRpcHMubmV4dFllYXIpO1xuXG4gICAgICAgICAgICBtb250aHNWaWV3LmZpbmQoJy5kaXNhYmxlZCcpLnJlbW92ZUNsYXNzKCdkaXNhYmxlZCcpO1xuXG4gICAgICAgICAgICBpZiAoIWlzVmFsaWQodmlld0RhdGUuY2xvbmUoKS5zdWJ0cmFjdCgxLCAneScpLCAneScpKSB7XG4gICAgICAgICAgICAgICAgbW9udGhzVmlld0hlYWRlci5lcSgwKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbW9udGhzVmlld0hlYWRlci5lcSgxKS50ZXh0KHZpZXdEYXRlLnllYXIoKSk7XG5cbiAgICAgICAgICAgIGlmICghaXNWYWxpZCh2aWV3RGF0ZS5jbG9uZSgpLmFkZCgxLCAneScpLCAneScpKSB7XG4gICAgICAgICAgICAgICAgbW9udGhzVmlld0hlYWRlci5lcSgyKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbW9udGhzLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgIGlmIChkYXRlLmlzU2FtZSh2aWV3RGF0ZSwgJ3knKSAmJiAhdW5zZXQpIHtcbiAgICAgICAgICAgICAgICBtb250aHMuZXEoZGF0ZS5tb250aCgpKS5hZGRDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1vbnRocy5lYWNoKGZ1bmN0aW9uKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKHZpZXdEYXRlLmNsb25lKCkubW9udGgoaW5kZXgpLCAnTScpKSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIHVwZGF0ZVllYXJzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgeWVhcnNWaWV3ID0gd2lkZ2V0LmZpbmQoJy5kYXRlcGlja2VyLXllYXJzJyk7XG4gICAgICAgICAgICB2YXIgeWVhcnNWaWV3SGVhZGVyID0geWVhcnNWaWV3LmZpbmQoJ3RoJyk7XG4gICAgICAgICAgICB2YXIgc3RhcnRZZWFyID0gdmlld0RhdGUuY2xvbmUoKS5zdWJ0cmFjdCg1LCAneScpO1xuICAgICAgICAgICAgdmFyIGVuZFllYXIgPSB2aWV3RGF0ZS5jbG9uZSgpLmFkZCg2LCAneScpO1xuICAgICAgICAgICAgdmFyIGh0bWwgPSAnJztcblxuICAgICAgICAgICAgeWVhcnNWaWV3SGVhZGVyLmVxKDApLmZpbmQoJ3NwYW4nKS5hdHRyKCd0aXRsZScsIG9wdGlvbnMudG9vbHRpcHMucHJldkRlY2FkZSk7XG4gICAgICAgICAgICB5ZWFyc1ZpZXdIZWFkZXIuZXEoMSkuYXR0cigndGl0bGUnLCBvcHRpb25zLnRvb2x0aXBzLnNlbGVjdERlY2FkZSk7XG4gICAgICAgICAgICB5ZWFyc1ZpZXdIZWFkZXIuZXEoMikuZmluZCgnc3BhbicpLmF0dHIoJ3RpdGxlJywgb3B0aW9ucy50b29sdGlwcy5uZXh0RGVjYWRlKTtcblxuICAgICAgICAgICAgeWVhcnNWaWV3LmZpbmQoJy5kaXNhYmxlZCcpLnJlbW92ZUNsYXNzKCdkaXNhYmxlZCcpO1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5taW5EYXRlICYmIG9wdGlvbnMubWluRGF0ZS5pc0FmdGVyKHN0YXJ0WWVhciwgJ3knKSkge1xuICAgICAgICAgICAgICAgIHllYXJzVmlld0hlYWRlci5lcSgwKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgeWVhcnNWaWV3SGVhZGVyLmVxKDEpLnRleHQoc3RhcnRZZWFyLnllYXIoKSArICctJyArIGVuZFllYXIueWVhcigpKTtcblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMubWF4RGF0ZSAmJiBvcHRpb25zLm1heERhdGUuaXNCZWZvcmUoZW5kWWVhciwgJ3knKSkge1xuICAgICAgICAgICAgICAgIHllYXJzVmlld0hlYWRlci5lcSgyKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgd2hpbGUgKCFzdGFydFllYXIuaXNBZnRlcihlbmRZZWFyLCAneScpKSB7XG4gICAgICAgICAgICAgICAgaHRtbCArPSAnPHNwYW4gZGF0YS1hY3Rpb249XCJzZWxlY3RZZWFyXCIgY2xhc3M9XCJ5ZWFyJyArIChzdGFydFllYXIuaXNTYW1lKGRhdGUsICd5JykgJiYgIXVuc2V0ID8gJyBhY3RpdmUnIDogJycpICsgKCFpc1ZhbGlkKHN0YXJ0WWVhciwgJ3knKSA/ICcgZGlzYWJsZWQnIDogJycpICsgJ1wiPicgKyBzdGFydFllYXIueWVhcigpICsgJzwvc3Bhbj4nO1xuICAgICAgICAgICAgICAgIHN0YXJ0WWVhci5hZGQoMSwgJ3knKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgeWVhcnNWaWV3LmZpbmQoJ3RkJykuaHRtbChodG1sKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgdXBkYXRlRGVjYWRlcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGRlY2FkZXNWaWV3ID0gd2lkZ2V0LmZpbmQoJy5kYXRlcGlja2VyLWRlY2FkZXMnKTtcbiAgICAgICAgICAgIHZhciBkZWNhZGVzVmlld0hlYWRlciA9IGRlY2FkZXNWaWV3LmZpbmQoJ3RoJyk7XG4gICAgICAgICAgICB2YXIgc3RhcnREZWNhZGUgPSBtb21lbnQoeyB5OiB2aWV3RGF0ZS55ZWFyKCkgLSAodmlld0RhdGUueWVhcigpICUgMTAwKSAtIDEgfSk7XG4gICAgICAgICAgICB2YXIgZW5kRGVjYWRlID0gc3RhcnREZWNhZGUuY2xvbmUoKS5hZGQoMTAwLCAneScpO1xuICAgICAgICAgICAgdmFyIHN0YXJ0ZWRBdCA9IHN0YXJ0RGVjYWRlLmNsb25lKCk7XG4gICAgICAgICAgICB2YXIgbWluRGF0ZURlY2FkZSA9IGZhbHNlO1xuICAgICAgICAgICAgdmFyIG1heERhdGVEZWNhZGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHZhciBlbmREZWNhZGVZZWFyO1xuICAgICAgICAgICAgdmFyIGh0bWwgPSAnJztcblxuICAgICAgICAgICAgZGVjYWRlc1ZpZXdIZWFkZXIuZXEoMCkuZmluZCgnc3BhbicpLmF0dHIoJ3RpdGxlJywgb3B0aW9ucy50b29sdGlwcy5wcmV2Q2VudHVyeSk7XG4gICAgICAgICAgICBkZWNhZGVzVmlld0hlYWRlci5lcSgyKS5maW5kKCdzcGFuJykuYXR0cigndGl0bGUnLCBvcHRpb25zLnRvb2x0aXBzLm5leHRDZW50dXJ5KTtcblxuICAgICAgICAgICAgZGVjYWRlc1ZpZXcuZmluZCgnLmRpc2FibGVkJykucmVtb3ZlQ2xhc3MoJ2Rpc2FibGVkJyk7XG5cbiAgICAgICAgICAgIGlmIChzdGFydERlY2FkZS5pc1NhbWUobW9tZW50KHsgeTogMTkwMCB9KSkgfHwgKG9wdGlvbnMubWluRGF0ZSAmJiBvcHRpb25zLm1pbkRhdGUuaXNBZnRlcihzdGFydERlY2FkZSwgJ3knKSkpIHtcbiAgICAgICAgICAgICAgICBkZWNhZGVzVmlld0hlYWRlci5lcSgwKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGVjYWRlc1ZpZXdIZWFkZXIuZXEoMSkudGV4dChzdGFydERlY2FkZS55ZWFyKCkgKyAnLScgKyBlbmREZWNhZGUueWVhcigpKTtcblxuICAgICAgICAgICAgaWYgKHN0YXJ0RGVjYWRlLmlzU2FtZShtb21lbnQoeyB5OiAyMDAwIH0pKSB8fCAob3B0aW9ucy5tYXhEYXRlICYmIG9wdGlvbnMubWF4RGF0ZS5pc0JlZm9yZShlbmREZWNhZGUsICd5JykpKSB7XG4gICAgICAgICAgICAgICAgZGVjYWRlc1ZpZXdIZWFkZXIuZXEoMikuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdoaWxlICghc3RhcnREZWNhZGUuaXNBZnRlcihlbmREZWNhZGUsICd5JykpIHtcbiAgICAgICAgICAgICAgICBlbmREZWNhZGVZZWFyID0gc3RhcnREZWNhZGUueWVhcigpICsgMTI7XG4gICAgICAgICAgICAgICAgbWluRGF0ZURlY2FkZSA9IG9wdGlvbnMubWluRGF0ZSAmJiBvcHRpb25zLm1pbkRhdGUuaXNBZnRlcihzdGFydERlY2FkZSwgJ3knKSAmJiBvcHRpb25zLm1pbkRhdGUueWVhcigpIDw9IGVuZERlY2FkZVllYXI7XG4gICAgICAgICAgICAgICAgbWF4RGF0ZURlY2FkZSA9IG9wdGlvbnMubWF4RGF0ZSAmJiBvcHRpb25zLm1heERhdGUuaXNBZnRlcihzdGFydERlY2FkZSwgJ3knKSAmJiBvcHRpb25zLm1heERhdGUueWVhcigpIDw9IGVuZERlY2FkZVllYXI7XG4gICAgICAgICAgICAgICAgaHRtbCArPSAnPHNwYW4gZGF0YS1hY3Rpb249XCJzZWxlY3REZWNhZGVcIiBjbGFzcz1cImRlY2FkZScgKyAoZGF0ZS5pc0FmdGVyKHN0YXJ0RGVjYWRlKSAmJiBkYXRlLnllYXIoKSA8PSBlbmREZWNhZGVZZWFyID8gJyBhY3RpdmUnIDogJycpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICghaXNWYWxpZChzdGFydERlY2FkZSwgJ3knKSAmJiAhbWluRGF0ZURlY2FkZSAmJiAhbWF4RGF0ZURlY2FkZSA/ICcgZGlzYWJsZWQnIDogJycpICsgJ1wiIGRhdGEtc2VsZWN0aW9uPVwiJyArIChzdGFydERlY2FkZS55ZWFyKCkgKyA2KSArICdcIj4nICsgKHN0YXJ0RGVjYWRlLnllYXIoKSArIDEpICsgJyAtICcgKyAoc3RhcnREZWNhZGUueWVhcigpICsgMTIpICsgJzwvc3Bhbj4nO1xuICAgICAgICAgICAgICAgIHN0YXJ0RGVjYWRlLmFkZCgxMiwgJ3knKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGh0bWwgKz0gJzxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPic7IC8vIHB1c2ggdGhlIGRhbmdsaW5nIGJsb2NrIG92ZXIsIGF0IGxlYXN0IHRoaXMgd2F5IGl0J3MgZXZlblxuXG4gICAgICAgICAgICBkZWNhZGVzVmlldy5maW5kKCd0ZCcpLmh0bWwoaHRtbCk7XG4gICAgICAgICAgICBkZWNhZGVzVmlld0hlYWRlci5lcSgxKS50ZXh0KChzdGFydGVkQXQueWVhcigpICsgMSkgKyAnLScgKyAoc3RhcnREZWNhZGUueWVhcigpKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGZpbGxEYXRlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgZGF5c1ZpZXcgPSB3aWRnZXQuZmluZCgnLmRhdGVwaWNrZXItZGF5cycpO1xuICAgICAgICAgICAgdmFyIGRheXNWaWV3SGVhZGVyID0gZGF5c1ZpZXcuZmluZCgndGgnKTtcbiAgICAgICAgICAgIHZhciBjdXJyZW50RGF0ZTtcbiAgICAgICAgICAgIHZhciBodG1sID0gW107XG4gICAgICAgICAgICB2YXIgcm93O1xuICAgICAgICAgICAgdmFyIGNsc05hbWVzID0gW107XG4gICAgICAgICAgICB2YXIgaTtcblxuICAgICAgICAgICAgaWYgKCFoYXNEYXRlKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRheXNWaWV3SGVhZGVyLmVxKDApLmZpbmQoJ3NwYW4nKS5hdHRyKCd0aXRsZScsIG9wdGlvbnMudG9vbHRpcHMucHJldk1vbnRoKTtcbiAgICAgICAgICAgIGRheXNWaWV3SGVhZGVyLmVxKDEpLmF0dHIoJ3RpdGxlJywgb3B0aW9ucy50b29sdGlwcy5zZWxlY3RNb250aCk7XG4gICAgICAgICAgICBkYXlzVmlld0hlYWRlci5lcSgyKS5maW5kKCdzcGFuJykuYXR0cigndGl0bGUnLCBvcHRpb25zLnRvb2x0aXBzLm5leHRNb250aCk7XG5cbiAgICAgICAgICAgIGRheXNWaWV3LmZpbmQoJy5kaXNhYmxlZCcpLnJlbW92ZUNsYXNzKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgZGF5c1ZpZXdIZWFkZXIuZXEoMSkudGV4dCh2aWV3RGF0ZS5mb3JtYXQob3B0aW9ucy5kYXlWaWV3SGVhZGVyRm9ybWF0KSk7XG5cbiAgICAgICAgICAgIGlmICghaXNWYWxpZCh2aWV3RGF0ZS5jbG9uZSgpLnN1YnRyYWN0KDEsICdNJyksICdNJykpIHtcbiAgICAgICAgICAgICAgICBkYXlzVmlld0hlYWRlci5lcSgwKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaXNWYWxpZCh2aWV3RGF0ZS5jbG9uZSgpLmFkZCgxLCAnTScpLCAnTScpKSB7XG4gICAgICAgICAgICAgICAgZGF5c1ZpZXdIZWFkZXIuZXEoMikuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGN1cnJlbnREYXRlID0gdmlld0RhdGUuY2xvbmUoKS5zdGFydE9mKCdNJykuc3RhcnRPZigndycpLnN0YXJ0T2YoJ2QnKTtcblxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDQyOyBpKyspIHsgLy8gYWx3YXlzIGRpc3BsYXkgNDIgZGF5cyAoc2hvdWxkIHNob3cgNiB3ZWVrcylcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudERhdGUud2Vla2RheSgpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdyA9ICQoJzx0cj4nKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuY2FsZW5kYXJXZWVrcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcm93LmFwcGVuZCgnPHRkIGNsYXNzPVwiY3dcIj4nICsgY3VycmVudERhdGUud2VlaygpICsgJzwvdGQ+Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaHRtbC5wdXNoKHJvdyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNsc05hbWVzID0gWydkYXknXTtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudERhdGUuaXNCZWZvcmUodmlld0RhdGUsICdNJykpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xzTmFtZXMucHVzaCgnb2xkJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50RGF0ZS5pc0FmdGVyKHZpZXdEYXRlLCAnTScpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsc05hbWVzLnB1c2goJ25ldycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudERhdGUuaXNTYW1lKGRhdGUsICdkJykgJiYgIXVuc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNsc05hbWVzLnB1c2goJ2FjdGl2ZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWQoY3VycmVudERhdGUsICdkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xzTmFtZXMucHVzaCgnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnREYXRlLmlzU2FtZShnZXRNb21lbnQoKSwgJ2QnKSkge1xuICAgICAgICAgICAgICAgICAgICBjbHNOYW1lcy5wdXNoKCd0b2RheScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudERhdGUuZGF5KCkgPT09IDAgfHwgY3VycmVudERhdGUuZGF5KCkgPT09IDYpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xzTmFtZXMucHVzaCgnd2Vla2VuZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBub3RpZnlFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdkcC5jbGFzc2lmeScsXG4gICAgICAgICAgICAgICAgICAgIGRhdGU6IGN1cnJlbnREYXRlLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWVzOiBjbHNOYW1lc1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJvdy5hcHBlbmQoJzx0ZCBkYXRhLWFjdGlvbj1cInNlbGVjdERheVwiIGRhdGEtZGF5PVwiJyArIGN1cnJlbnREYXRlLmZvcm1hdCgnTCcpICsgJ1wiIGNsYXNzPVwiJyArIGNsc05hbWVzLmpvaW4oJyAnKSArICdcIj4nICsgY3VycmVudERhdGUuZGF0ZSgpICsgJzwvdGQ+Jyk7XG4gICAgICAgICAgICAgICAgY3VycmVudERhdGUuYWRkKDEsICdkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRheXNWaWV3LmZpbmQoJ3Rib2R5JykuZW1wdHkoKS5hcHBlbmQoaHRtbCk7XG5cbiAgICAgICAgICAgIHVwZGF0ZU1vbnRocygpO1xuXG4gICAgICAgICAgICB1cGRhdGVZZWFycygpO1xuXG4gICAgICAgICAgICB1cGRhdGVEZWNhZGVzKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGZpbGxIb3VycyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHRhYmxlID0gd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyLWhvdXJzIHRhYmxlJyk7XG4gICAgICAgICAgICB2YXIgY3VycmVudEhvdXIgPSB2aWV3RGF0ZS5jbG9uZSgpLnN0YXJ0T2YoJ2QnKTtcbiAgICAgICAgICAgIHZhciBodG1sID0gW107XG4gICAgICAgICAgICB2YXIgcm93ID0gJCgnPHRyPicpO1xuXG4gICAgICAgICAgICBpZiAodmlld0RhdGUuaG91cigpID4gMTEgJiYgIXVzZTI0SG91cnMpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50SG91ci5ob3VyKDEyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdoaWxlIChjdXJyZW50SG91ci5pc1NhbWUodmlld0RhdGUsICdkJykgJiYgKHVzZTI0SG91cnMgfHwgKHZpZXdEYXRlLmhvdXIoKSA8IDEyICYmIGN1cnJlbnRIb3VyLmhvdXIoKSA8IDEyKSB8fCB2aWV3RGF0ZS5ob3VyKCkgPiAxMSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudEhvdXIuaG91cigpICUgNCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByb3cgPSAkKCc8dHI+Jyk7XG4gICAgICAgICAgICAgICAgICAgIGh0bWwucHVzaChyb3cpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByb3cuYXBwZW5kKCc8dGQgZGF0YS1hY3Rpb249XCJzZWxlY3RIb3VyXCIgY2xhc3M9XCJob3VyJyArICghaXNWYWxpZChjdXJyZW50SG91ciwgJ2gnKSA/ICcgZGlzYWJsZWQnIDogJycpICsgJ1wiPicgKyBjdXJyZW50SG91ci5mb3JtYXQodXNlMjRIb3VycyA/ICdISCcgOiAnaGgnKSArICc8L3RkPicpO1xuICAgICAgICAgICAgICAgIGN1cnJlbnRIb3VyLmFkZCgxLCAnaCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGFibGUuZW1wdHkoKS5hcHBlbmQoaHRtbCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGZpbGxNaW51dGVzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdGFibGUgPSB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXItbWludXRlcyB0YWJsZScpO1xuICAgICAgICAgICAgdmFyIGN1cnJlbnRNaW51dGUgPSB2aWV3RGF0ZS5jbG9uZSgpLnN0YXJ0T2YoJ2gnKTtcbiAgICAgICAgICAgIHZhciBodG1sID0gW107XG4gICAgICAgICAgICB2YXIgcm93ID0gJCgnPHRyPicpO1xuICAgICAgICAgICAgdmFyIHN0ZXAgPSBvcHRpb25zLnN0ZXBwaW5nID09PSAxID8gNSA6IG9wdGlvbnMuc3RlcHBpbmc7XG5cbiAgICAgICAgICAgIHdoaWxlICh2aWV3RGF0ZS5pc1NhbWUoY3VycmVudE1pbnV0ZSwgJ2gnKSkge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50TWludXRlLm1pbnV0ZSgpICUgKHN0ZXAgKiA0KSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByb3cgPSAkKCc8dHI+Jyk7XG4gICAgICAgICAgICAgICAgICAgIGh0bWwucHVzaChyb3cpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByb3cuYXBwZW5kKCc8dGQgZGF0YS1hY3Rpb249XCJzZWxlY3RNaW51dGVcIiBjbGFzcz1cIm1pbnV0ZScgKyAoIWlzVmFsaWQoY3VycmVudE1pbnV0ZSwgJ20nKSA/ICcgZGlzYWJsZWQnIDogJycpICsgJ1wiPicgKyBjdXJyZW50TWludXRlLmZvcm1hdCgnbW0nKSArICc8L3RkPicpO1xuICAgICAgICAgICAgICAgIGN1cnJlbnRNaW51dGUuYWRkKHN0ZXAsICdtJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YWJsZS5lbXB0eSgpLmFwcGVuZChodG1sKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZmlsbFNlY29uZHMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0YWJsZSA9IHdpZGdldC5maW5kKCcudGltZXBpY2tlci1zZWNvbmRzIHRhYmxlJyk7XG4gICAgICAgICAgICB2YXIgY3VycmVudFNlY29uZCA9IHZpZXdEYXRlLmNsb25lKCkuc3RhcnRPZignbScpO1xuICAgICAgICAgICAgdmFyIGh0bWwgPSBbXTtcbiAgICAgICAgICAgIHZhciByb3cgPSAkKCc8dHI+Jyk7XG5cbiAgICAgICAgICAgIHdoaWxlICh2aWV3RGF0ZS5pc1NhbWUoY3VycmVudFNlY29uZCwgJ20nKSkge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U2Vjb25kLnNlY29uZCgpICUgMjAgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcm93ID0gJCgnPHRyPicpO1xuICAgICAgICAgICAgICAgICAgICBodG1sLnB1c2gocm93KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcm93LmFwcGVuZCgnPHRkIGRhdGEtYWN0aW9uPVwic2VsZWN0U2Vjb25kXCIgY2xhc3M9XCJzZWNvbmQnICsgKCFpc1ZhbGlkKGN1cnJlbnRTZWNvbmQsICdzJykgPyAnIGRpc2FibGVkJyA6ICcnKSArICdcIj4nICsgY3VycmVudFNlY29uZC5mb3JtYXQoJ3NzJykgKyAnPC90ZD4nKTtcbiAgICAgICAgICAgICAgICBjdXJyZW50U2Vjb25kLmFkZCg1LCAncycpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0YWJsZS5lbXB0eSgpLmFwcGVuZChodG1sKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZmlsbFRpbWUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0b2dnbGU7IHZhciBuZXdEYXRlOyB2YXIgdGltZUNvbXBvbmVudHMgPSB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXIgc3BhbltkYXRhLXRpbWUtY29tcG9uZW50XScpO1xuXG4gICAgICAgICAgICBpZiAoIXVzZTI0SG91cnMpIHtcbiAgICAgICAgICAgICAgICB0b2dnbGUgPSB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXIgW2RhdGEtYWN0aW9uPXRvZ2dsZVBlcmlvZF0nKTtcbiAgICAgICAgICAgICAgICBuZXdEYXRlID0gZGF0ZS5jbG9uZSgpLmFkZCgoZGF0ZS5ob3VycygpID49IDEyKSA/IC0xMiA6IDEyLCAnaCcpO1xuXG4gICAgICAgICAgICAgICAgdG9nZ2xlLnRleHQoZGF0ZS5mb3JtYXQoJ0EnKSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZChuZXdEYXRlLCAnaCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvZ2dsZS5yZW1vdmVDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0b2dnbGUuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGltZUNvbXBvbmVudHMuZmlsdGVyKCdbZGF0YS10aW1lLWNvbXBvbmVudD1ob3Vyc10nKS50ZXh0KGRhdGUuZm9ybWF0KHVzZTI0SG91cnMgPyAnSEgnIDogJ2hoJykpO1xuICAgICAgICAgICAgdGltZUNvbXBvbmVudHMuZmlsdGVyKCdbZGF0YS10aW1lLWNvbXBvbmVudD1taW51dGVzXScpLnRleHQoZGF0ZS5mb3JtYXQoJ21tJykpO1xuICAgICAgICAgICAgdGltZUNvbXBvbmVudHMuZmlsdGVyKCdbZGF0YS10aW1lLWNvbXBvbmVudD1zZWNvbmRzXScpLnRleHQoZGF0ZS5mb3JtYXQoJ3NzJykpO1xuXG4gICAgICAgICAgICBmaWxsSG91cnMoKTtcbiAgICAgICAgICAgIGZpbGxNaW51dGVzKCk7XG4gICAgICAgICAgICBmaWxsU2Vjb25kcygpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciB1cGRhdGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlmICghd2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmlsbERhdGUoKTtcbiAgICAgICAgICAgIGZpbGxUaW1lKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIHNldFZhbHVlID0gZnVuY3Rpb24odGFyZ2V0TW9tZW50KSB7XG4gICAgICAgICAgICB2YXIgb2xkRGF0ZSA9IHVuc2V0ID8gbnVsbCA6IGRhdGU7XG5cbiAgICAgICAgICAgIC8vIGNhc2Ugb2YgY2FsbGluZyBzZXRWYWx1ZShudWxsIG9yIGZhbHNlKVxuICAgICAgICAgICAgaWYgKCF0YXJnZXRNb21lbnQpIHtcbiAgICAgICAgICAgICAgICB1bnNldCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaW5wdXQudmFsKCcnKTtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmRhdGEoJ2RhdGUnLCAnJyk7XG4gICAgICAgICAgICAgICAgbm90aWZ5RXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZHAuY2hhbmdlJyxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIG9sZERhdGU6IG9sZERhdGVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRhcmdldE1vbWVudCA9IHRhcmdldE1vbWVudC5jbG9uZSgpLmxvY2FsZShvcHRpb25zLmxvY2FsZSk7XG5cbiAgICAgICAgICAgIGlmIChoYXNUaW1lWm9uZSgpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0TW9tZW50LnR6KG9wdGlvbnMudGltZVpvbmUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5zdGVwcGluZyAhPT0gMSkge1xuICAgICAgICAgICAgICAgIHRhcmdldE1vbWVudC5taW51dGVzKChNYXRoLnJvdW5kKHRhcmdldE1vbWVudC5taW51dGVzKCkgLyBvcHRpb25zLnN0ZXBwaW5nKSAqIG9wdGlvbnMuc3RlcHBpbmcpKS5zZWNvbmRzKDApO1xuXG4gICAgICAgICAgICAgICAgd2hpbGUgKG9wdGlvbnMubWluRGF0ZSAmJiB0YXJnZXRNb21lbnQuaXNCZWZvcmUob3B0aW9ucy5taW5EYXRlKSkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRNb21lbnQuYWRkKG9wdGlvbnMuc3RlcHBpbmcsICdtaW51dGVzJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXNWYWxpZCh0YXJnZXRNb21lbnQpKSB7XG4gICAgICAgICAgICAgICAgZGF0ZSA9IHRhcmdldE1vbWVudDtcbiAgICAgICAgICAgICAgICB2aWV3RGF0ZSA9IGRhdGUuY2xvbmUoKTtcbiAgICAgICAgICAgICAgICBpbnB1dC52YWwoZGF0ZS5mb3JtYXQoYWN0dWFsRm9ybWF0KSk7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5kYXRhKCdkYXRlJywgZGF0ZS5mb3JtYXQoYWN0dWFsRm9ybWF0KSk7XG4gICAgICAgICAgICAgICAgdW5zZXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgICAgICBub3RpZnlFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdkcC5jaGFuZ2UnLFxuICAgICAgICAgICAgICAgICAgICBkYXRlOiBkYXRlLmNsb25lKCksXG4gICAgICAgICAgICAgICAgICAgIG9sZERhdGU6IG9sZERhdGVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLmtlZXBJbnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0LnZhbCh1bnNldCA/ICcnIDogZGF0ZS5mb3JtYXQoYWN0dWFsRm9ybWF0KSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbm90aWZ5RXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2RwLmNoYW5nZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlOiB0YXJnZXRNb21lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbGREYXRlOiBvbGREYXRlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBub3RpZnlFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdkcC5lcnJvcicsXG4gICAgICAgICAgICAgICAgICAgIGRhdGU6IHRhcmdldE1vbWVudCxcbiAgICAgICAgICAgICAgICAgICAgb2xkRGF0ZTogb2xkRGF0ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgICAgICogSGlkZXMgdGhlIHdpZGdldC4gUG9zc2libHkgd2lsbCBlbWl0IGRwLmhpZGVcbiAgICAgICAgICAgICAqL1xuICAgICAgICB2YXIgaGlkZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHRyYW5zaXRpb25pbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICghd2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElnbm9yZSBldmVudCBpZiBpbiB0aGUgbWlkZGxlIG9mIGEgcGlja2VyIHRyYW5zaXRpb25cbiAgICAgICAgICAgIHdpZGdldC5maW5kKCcuY29sbGFwc2UnKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBjb2xsYXBzZURhdGEgPSAkKHRoaXMpLmRhdGEoJ2NvbGxhcHNlJyk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbGxhcHNlRGF0YSAmJiBjb2xsYXBzZURhdGEudHJhbnNpdGlvbmluZykge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHRyYW5zaXRpb25pbmcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQuaGFzQ2xhc3MoJ2J0bicpKSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50LnRvZ2dsZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpZGdldC5oaWRlKCk7XG5cbiAgICAgICAgICAgICQod2luZG93KS5vZmYoJ3Jlc2l6ZScsIHBsYWNlKTtcbiAgICAgICAgICAgIHdpZGdldC5vZmYoJ2NsaWNrJywgJ1tkYXRhLWFjdGlvbl0nKTtcbiAgICAgICAgICAgIHdpZGdldC5vZmYoJ21vdXNlZG93bicsIGZhbHNlKTtcblxuICAgICAgICAgICAgd2lkZ2V0LnJlbW92ZSgpO1xuICAgICAgICAgICAgd2lkZ2V0ID0gZmFsc2U7XG5cbiAgICAgICAgICAgIG5vdGlmeUV2ZW50KHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnZHAuaGlkZScsXG4gICAgICAgICAgICAgICAgZGF0ZTogZGF0ZS5jbG9uZSgpXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaW5wdXQuYmx1cigpO1xuXG4gICAgICAgICAgICB2aWV3RGF0ZSA9IGRhdGUuY2xvbmUoKTtcblxuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgY2xlYXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKG51bGwpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBwYXJzZUlucHV0RGF0ZSA9IGZ1bmN0aW9uKGlucHV0RGF0ZSkge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMucGFyc2VJbnB1dERhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmICghbW9tZW50LmlzTW9tZW50KGlucHV0RGF0ZSkgfHwgaW5wdXREYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dERhdGUgPSBnZXRNb21lbnQoaW5wdXREYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlucHV0RGF0ZSA9IG9wdGlvbnMucGFyc2VJbnB1dERhdGUoaW5wdXREYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGlucHV0RGF0ZS5sb2NhbGUob3B0aW9ucy5sb2NhbGUpO1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0RGF0ZTtcbiAgICAgICAgfTtcblxuICAgICAgICAvKiogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogV2lkZ2V0IFVJIGludGVyYWN0aW9uIGZ1bmN0aW9uc1xuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAgICAgdmFyIGFjdGlvbnMgPSB7XG4gICAgICAgICAgICBuZXh0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmF2Rm5jID0gZGF0ZVBpY2tlck1vZGVzW2N1cnJlbnRWaWV3TW9kZV0ubmF2Rm5jO1xuICAgICAgICAgICAgICAgIHZpZXdEYXRlLmFkZChkYXRlUGlja2VyTW9kZXNbY3VycmVudFZpZXdNb2RlXS5uYXZTdGVwLCBuYXZGbmMpO1xuICAgICAgICAgICAgICAgIGZpbGxEYXRlKCk7XG4gICAgICAgICAgICAgICAgdmlld1VwZGF0ZShuYXZGbmMpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcHJldmlvdXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBuYXZGbmMgPSBkYXRlUGlja2VyTW9kZXNbY3VycmVudFZpZXdNb2RlXS5uYXZGbmM7XG4gICAgICAgICAgICAgICAgdmlld0RhdGUuc3VidHJhY3QoZGF0ZVBpY2tlck1vZGVzW2N1cnJlbnRWaWV3TW9kZV0ubmF2U3RlcCwgbmF2Rm5jKTtcbiAgICAgICAgICAgICAgICBmaWxsRGF0ZSgpO1xuICAgICAgICAgICAgICAgIHZpZXdVcGRhdGUobmF2Rm5jKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHBpY2tlclN3aXRjaDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgc2hvd01vZGUoMSk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBzZWxlY3RNb250aDogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHZhciBtb250aCA9ICQoZS50YXJnZXQpLmNsb3Nlc3QoJ3Rib2R5JykuZmluZCgnc3BhbicpLmluZGV4KCQoZS50YXJnZXQpKTtcbiAgICAgICAgICAgICAgICB2aWV3RGF0ZS5tb250aChtb250aCk7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWaWV3TW9kZSA9PT0gbWluVmlld01vZGVOdW1iZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUoZGF0ZS5jbG9uZSgpLnllYXIodmlld0RhdGUueWVhcigpKS5tb250aCh2aWV3RGF0ZS5tb250aCgpKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNob3dNb2RlKC0xKTtcbiAgICAgICAgICAgICAgICAgICAgZmlsbERhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmlld1VwZGF0ZSgnTScpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2VsZWN0WWVhcjogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHZhciB5ZWFyID0gcGFyc2VJbnQoJChlLnRhcmdldCkudGV4dCgpLCAxMCkgfHwgMDtcbiAgICAgICAgICAgICAgICB2aWV3RGF0ZS55ZWFyKHllYXIpO1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Vmlld01vZGUgPT09IG1pblZpZXdNb2RlTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKGRhdGUuY2xvbmUoKS55ZWFyKHZpZXdEYXRlLnllYXIoKSkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbnMuaW5saW5lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzaG93TW9kZSgtMSk7XG4gICAgICAgICAgICAgICAgICAgIGZpbGxEYXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZpZXdVcGRhdGUoJ1lZWVknKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNlbGVjdERlY2FkZTogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHZhciB5ZWFyID0gcGFyc2VJbnQoJChlLnRhcmdldCkuZGF0YSgnc2VsZWN0aW9uJyksIDEwKSB8fCAwO1xuICAgICAgICAgICAgICAgIHZpZXdEYXRlLnllYXIoeWVhcik7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWaWV3TW9kZSA9PT0gbWluVmlld01vZGVOdW1iZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUoZGF0ZS5jbG9uZSgpLnllYXIodmlld0RhdGUueWVhcigpKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNob3dNb2RlKC0xKTtcbiAgICAgICAgICAgICAgICAgICAgZmlsbERhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmlld1VwZGF0ZSgnWVlZWScpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2VsZWN0RGF5OiBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRheSA9IHZpZXdEYXRlLmNsb25lKCk7XG4gICAgICAgICAgICAgICAgaWYgKCQoZS50YXJnZXQpLmlzKCcub2xkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF5LnN1YnRyYWN0KDEsICdNJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgkKGUudGFyZ2V0KS5pcygnLm5ldycpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRheS5hZGQoMSwgJ00nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoZGF5LmRhdGUocGFyc2VJbnQoJChlLnRhcmdldCkudGV4dCgpLCAxMCkpKTtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc1RpbWUoKSAmJiAhb3B0aW9ucy5rZWVwT3BlbiAmJiAhb3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGluY3JlbWVudEhvdXJzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmV3RGF0ZSA9IGRhdGUuY2xvbmUoKS5hZGQoMSwgJ2gnKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZChuZXdEYXRlLCAnaCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKG5ld0RhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGluY3JlbWVudE1pbnV0ZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBuZXdEYXRlID0gZGF0ZS5jbG9uZSgpLmFkZChvcHRpb25zLnN0ZXBwaW5nLCAnbScpO1xuICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkKG5ld0RhdGUsICdtJykpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUobmV3RGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgaW5jcmVtZW50U2Vjb25kczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIG5ld0RhdGUgPSBkYXRlLmNsb25lKCkuYWRkKDEsICdzJyk7XG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWQobmV3RGF0ZSwgJ3MnKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShuZXdEYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBkZWNyZW1lbnRIb3VyczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIG5ld0RhdGUgPSBkYXRlLmNsb25lKCkuc3VidHJhY3QoMSwgJ2gnKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZChuZXdEYXRlLCAnaCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKG5ld0RhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGRlY3JlbWVudE1pbnV0ZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBuZXdEYXRlID0gZGF0ZS5jbG9uZSgpLnN1YnRyYWN0KG9wdGlvbnMuc3RlcHBpbmcsICdtJyk7XG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWQobmV3RGF0ZSwgJ20nKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShuZXdEYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBkZWNyZW1lbnRTZWNvbmRzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmV3RGF0ZSA9IGRhdGUuY2xvbmUoKS5zdWJ0cmFjdCgxLCAncycpO1xuICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkKG5ld0RhdGUsICdzJykpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUobmV3RGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdG9nZ2xlUGVyaW9kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShkYXRlLmNsb25lKCkuYWRkKChkYXRlLmhvdXJzKCkgPj0gMTIpID8gLTEyIDogMTIsICdoJykpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdG9nZ2xlUGlja2VyOiBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgdmFyICR0aGlzID0gJChlLnRhcmdldCk7XG4gICAgICAgICAgICAgICAgdmFyICRwYXJlbnQgPSAkdGhpcy5jbG9zZXN0KCd1bCcpO1xuICAgICAgICAgICAgICAgIHZhciBleHBhbmRlZCA9ICRwYXJlbnQuZmluZCgnLmluJyk7XG4gICAgICAgICAgICAgICAgdmFyIGNsb3NlZCA9ICRwYXJlbnQuZmluZCgnLmNvbGxhcHNlOm5vdCguaW4pJyk7XG4gICAgICAgICAgICAgICAgdmFyIGNvbGxhcHNlRGF0YTtcblxuICAgICAgICAgICAgICAgIGlmIChleHBhbmRlZCAmJiBleHBhbmRlZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VEYXRhID0gZXhwYW5kZWQuZGF0YSgnY29sbGFwc2UnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbGxhcHNlRGF0YSAmJiBjb2xsYXBzZURhdGEudHJhbnNpdGlvbmluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChleHBhbmRlZC5jb2xsYXBzZSkgeyAvLyBpZiBjb2xsYXBzZSBwbHVnaW4gaXMgYXZhaWxhYmxlIHRocm91Z2ggYm9vdHN0cmFwLmpzIHRoZW4gdXNlIGl0XG4gICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRlZC5jb2xsYXBzZSgnaGlkZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VkLmNvbGxhcHNlKCdzaG93Jyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIG90aGVyd2lzZSBqdXN0IHRvZ2dsZSBpbiBjbGFzcyBvbiB0aGUgdHdvIHZpZXdzXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRlZC5yZW1vdmVDbGFzcygnaW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlZC5hZGRDbGFzcygnaW4nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMuaXMoJ3NwYW4nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMudG9nZ2xlQ2xhc3Mob3B0aW9ucy5pY29ucy50aW1lICsgJyAnICsgb3B0aW9ucy5pY29ucy5kYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLmZpbmQoJ3NwYW4nKS50b2dnbGVDbGFzcyhvcHRpb25zLmljb25zLnRpbWUgKyAnICcgKyBvcHRpb25zLmljb25zLmRhdGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogdW5jb21tZW50IGlmIHRvZ2dsZWQgc3RhdGUgd2lsbCBiZSByZXN0b3JlZCBpbiBzaG93KClcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgKGNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyAgICBjb21wb25lbnQuZmluZCgnc3BhbicpLnRvZ2dsZUNsYXNzKG9wdGlvbnMuaWNvbnMudGltZSArICcgJyArIG9wdGlvbnMuaWNvbnMuZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBzaG93UGlja2VyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXIgPiBkaXY6bm90KC50aW1lcGlja2VyLXBpY2tlciknKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyIC50aW1lcGlja2VyLXBpY2tlcicpLnNob3coKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNob3dIb3VyczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyIC50aW1lcGlja2VyLXBpY2tlcicpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXIgLnRpbWVwaWNrZXItaG91cnMnKS5zaG93KCk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBzaG93TWludXRlczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyIC50aW1lcGlja2VyLXBpY2tlcicpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXIgLnRpbWVwaWNrZXItbWludXRlcycpLnNob3coKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNob3dTZWNvbmRzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXIgLnRpbWVwaWNrZXItcGlja2VyJykuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHdpZGdldC5maW5kKCcudGltZXBpY2tlciAudGltZXBpY2tlci1zZWNvbmRzJykuc2hvdygpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2VsZWN0SG91cjogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHZhciBob3VyID0gcGFyc2VJbnQoJChlLnRhcmdldCkudGV4dCgpLCAxMCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXVzZTI0SG91cnMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGUuaG91cnMoKSA+PSAxMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhvdXIgIT09IDEyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaG91ciArPSAxMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFZhbHVlKGRhdGUuY2xvbmUoKS5ob3Vycyhob3VyKSk7XG4gICAgICAgICAgICAgICAgYWN0aW9ucy5zaG93UGlja2VyLmNhbGwocGlja2VyKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNlbGVjdE1pbnV0ZTogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKGRhdGUuY2xvbmUoKS5taW51dGVzKHBhcnNlSW50KCQoZS50YXJnZXQpLnRleHQoKSwgMTApKSk7XG4gICAgICAgICAgICAgICAgYWN0aW9ucy5zaG93UGlja2VyLmNhbGwocGlja2VyKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNlbGVjdFNlY29uZDogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKGRhdGUuY2xvbmUoKS5zZWNvbmRzKHBhcnNlSW50KCQoZS50YXJnZXQpLnRleHQoKSwgMTApKSk7XG4gICAgICAgICAgICAgICAgYWN0aW9ucy5zaG93UGlja2VyLmNhbGwocGlja2VyKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGNsZWFyOiBjbGVhcixcblxuICAgICAgICAgICAgdG9kYXk6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciB0b2RheXNEYXRlID0gZ2V0TW9tZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWQodG9kYXlzRGF0ZSwgJ2QnKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZSh0b2RheXNEYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBjbG9zZTogaGlkZVxuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBkb0FjdGlvbiA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIGlmICgkKGUuY3VycmVudFRhcmdldCkuaXMoJy5kaXNhYmxlZCcpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYWN0aW9uc1skKGUuY3VycmVudFRhcmdldCkuZGF0YSgnYWN0aW9uJyldLmFwcGx5KHBpY2tlciwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfTtcblxuICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFNob3dzIHRoZSB3aWRnZXQuIFBvc3NpYmx5IHdpbGwgZW1pdCBkcC5zaG93IGFuZCBkcC5jaGFuZ2VcbiAgICAgICAgICAgICAqL1xuICAgICAgICB2YXIgc2hvdyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGN1cnJlbnRNb21lbnQ7XG4gICAgICAgICAgICB2YXIgdXNlQ3VycmVudEdyYW51bGFyaXR5ID0ge1xuICAgICAgICAgICAgICAgICd5ZWFyJzogZnVuY3Rpb24obSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbS5tb250aCgwKS5kYXRlKDEpLmhvdXJzKDApLnNlY29uZHMoMCkubWludXRlcygwKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICdtb250aCc6IGZ1bmN0aW9uKG0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG0uZGF0ZSgxKS5ob3VycygwKS5zZWNvbmRzKDApLm1pbnV0ZXMoMCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnZGF5JzogZnVuY3Rpb24obSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbS5ob3VycygwKS5zZWNvbmRzKDApLm1pbnV0ZXMoMCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnaG91cic6IGZ1bmN0aW9uKG0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG0uc2Vjb25kcygwKS5taW51dGVzKDApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ21pbnV0ZSc6IGZ1bmN0aW9uKG0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG0uc2Vjb25kcygwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpZiAoaW5wdXQucHJvcCgnZGlzYWJsZWQnKSB8fCAoIW9wdGlvbnMuaWdub3JlUmVhZG9ubHkgJiYgaW5wdXQucHJvcCgncmVhZG9ubHknKSkgfHwgd2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpbnB1dC52YWwoKSAhPT0gdW5kZWZpbmVkICYmIGlucHV0LnZhbCgpLnRyaW0oKS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShwYXJzZUlucHV0RGF0ZShpbnB1dC52YWwoKS50cmltKCkpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodW5zZXQgJiYgb3B0aW9ucy51c2VDdXJyZW50ICYmIChvcHRpb25zLmlubGluZSB8fCAoaW5wdXQuaXMoJ2lucHV0JykgJiYgaW5wdXQudmFsKCkudHJpbSgpLmxlbmd0aCA9PT0gMCkpKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudE1vbWVudCA9IGdldE1vbWVudCgpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy51c2VDdXJyZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50TW9tZW50ID0gdXNlQ3VycmVudEdyYW51bGFyaXR5W29wdGlvbnMudXNlQ3VycmVudF0oY3VycmVudE1vbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFZhbHVlKGN1cnJlbnRNb21lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2lkZ2V0ID0gZ2V0VGVtcGxhdGUoKTtcblxuICAgICAgICAgICAgZmlsbERvdygpO1xuICAgICAgICAgICAgZmlsbE1vbnRocygpO1xuXG4gICAgICAgICAgICB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXItaG91cnMnKS5oaWRlKCk7XG4gICAgICAgICAgICB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXItbWludXRlcycpLmhpZGUoKTtcbiAgICAgICAgICAgIHdpZGdldC5maW5kKCcudGltZXBpY2tlci1zZWNvbmRzJykuaGlkZSgpO1xuXG4gICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgIHNob3dNb2RlKCk7XG5cbiAgICAgICAgICAgICQod2luZG93KS5vbigncmVzaXplJywgcGxhY2UpO1xuICAgICAgICAgICAgd2lkZ2V0Lm9uKCdjbGljaycsICdbZGF0YS1hY3Rpb25dJywgZG9BY3Rpb24pOyAvLyB0aGlzIGhhbmRsZXMgY2xpY2tzIG9uIHRoZSB3aWRnZXRcbiAgICAgICAgICAgIHdpZGdldC5vbignbW91c2Vkb3duJywgZmFsc2UpO1xuXG4gICAgICAgICAgICBpZiAoY29tcG9uZW50ICYmIGNvbXBvbmVudC5oYXNDbGFzcygnYnRuJykpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQudG9nZ2xlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2UoKTtcbiAgICAgICAgICAgIHdpZGdldC5zaG93KCk7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5mb2N1c09uU2hvdyAmJiAhaW5wdXQuaXMoJzpmb2N1cycpKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbm90aWZ5RXZlbnQoe1xuICAgICAgICAgICAgICAgIHR5cGU6ICdkcC5zaG93J1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgICAgICogU2hvd3Mgb3IgaGlkZXMgdGhlIHdpZGdldFxuICAgICAgICAgICAgICovXG4gICAgICAgIHZhciB0b2dnbGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiAod2lkZ2V0ID8gaGlkZSgpIDogc2hvdygpKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIga2V5ZG93biA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIHZhciBoYW5kbGVyID0gbnVsbDtcbiAgICAgICAgICAgIHZhciBpbmRleDtcbiAgICAgICAgICAgIHZhciBpbmRleDI7XG4gICAgICAgICAgICB2YXIgcHJlc3NlZEtleXMgPSBbXTtcbiAgICAgICAgICAgIHZhciBwcmVzc2VkTW9kaWZpZXJzID0ge307XG4gICAgICAgICAgICB2YXIgY3VycmVudEtleSA9IGUud2hpY2g7XG4gICAgICAgICAgICB2YXIga2V5QmluZEtleXM7XG4gICAgICAgICAgICB2YXIgYWxsTW9kaWZpZXJzUHJlc3NlZDtcbiAgICAgICAgICAgIHZhciBwcmVzc2VkID0gJ3AnO1xuXG4gICAgICAgICAgICBrZXlTdGF0ZVtjdXJyZW50S2V5XSA9IHByZXNzZWQ7XG5cbiAgICAgICAgICAgIGZvciAoaW5kZXggaW4ga2V5U3RhdGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoa2V5U3RhdGUuaGFzT3duUHJvcGVydHkoaW5kZXgpICYmIGtleVN0YXRlW2luZGV4XSA9PT0gcHJlc3NlZCkge1xuICAgICAgICAgICAgICAgICAgICBwcmVzc2VkS2V5cy5wdXNoKGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnNlSW50KGluZGV4LCAxMCkgIT09IGN1cnJlbnRLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzZWRNb2RpZmllcnNbaW5kZXhdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChpbmRleCBpbiBvcHRpb25zLmtleUJpbmRzKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMua2V5QmluZHMuaGFzT3duUHJvcGVydHkoaW5kZXgpICYmIHR5cGVvZiAob3B0aW9ucy5rZXlCaW5kc1tpbmRleF0pID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGtleUJpbmRLZXlzID0gaW5kZXguc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGtleUJpbmRLZXlzLmxlbmd0aCA9PT0gcHJlc3NlZEtleXMubGVuZ3RoICYmIGtleU1hcFtjdXJyZW50S2V5XSA9PT0ga2V5QmluZEtleXNba2V5QmluZEtleXMubGVuZ3RoIC0gMV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsbE1vZGlmaWVyc1ByZXNzZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleDIgPSBrZXlCaW5kS2V5cy5sZW5ndGggLSAyOyBpbmRleDIgPj0gMDsgaW5kZXgyLS0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShrZXlNYXBba2V5QmluZEtleXNbaW5kZXgyXV0gaW4gcHJlc3NlZE1vZGlmaWVycykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsTW9kaWZpZXJzUHJlc3NlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxsTW9kaWZpZXJzUHJlc3NlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXIgPSBvcHRpb25zLmtleUJpbmRzW2luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGhhbmRsZXIpIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVyLmNhbGwocGlja2VyLCB3aWRnZXQpO1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBrZXl1cCA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIGtleVN0YXRlW2Uud2hpY2hdID0gJ3InO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgY2hhbmdlID0gZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgdmFyIHZhbCA9ICQoZS50YXJnZXQpLnZhbCgpLnRyaW0oKTtcbiAgICAgICAgICAgIHZhciBwYXJzZWREYXRlID0gdmFsID8gcGFyc2VJbnB1dERhdGUodmFsKSA6IG51bGw7XG4gICAgICAgICAgICBzZXRWYWx1ZShwYXJzZWREYXRlKTtcbiAgICAgICAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGF0dGFjaERhdGVQaWNrZXJFbGVtZW50RXZlbnRzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpbnB1dC5vbih7XG4gICAgICAgICAgICAgICAgJ2NoYW5nZSc6IGNoYW5nZSxcbiAgICAgICAgICAgICAgICAnYmx1cic6IG9wdGlvbnMuZGVidWcgPyAnJyA6IGhpZGUsXG4gICAgICAgICAgICAgICAgJ2tleWRvd24nOiBrZXlkb3duLFxuICAgICAgICAgICAgICAgICdrZXl1cCc6IGtleXVwLFxuICAgICAgICAgICAgICAgICdmb2N1cyc6IG9wdGlvbnMuYWxsb3dJbnB1dFRvZ2dsZSA/IHNob3cgOiAnJ1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChlbGVtZW50LmlzKCdpbnB1dCcpKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQub24oe1xuICAgICAgICAgICAgICAgICAgICAnZm9jdXMnOiBzaG93XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudC5vbignY2xpY2snLCB0b2dnbGUpO1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudC5vbignbW91c2Vkb3duJywgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBkZXRhY2hEYXRlUGlja2VyRWxlbWVudEV2ZW50cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaW5wdXQub2ZmKHtcbiAgICAgICAgICAgICAgICAnY2hhbmdlJzogY2hhbmdlLFxuICAgICAgICAgICAgICAgICdibHVyJzogYmx1cixcbiAgICAgICAgICAgICAgICAna2V5ZG93bic6IGtleWRvd24sXG4gICAgICAgICAgICAgICAgJ2tleXVwJzoga2V5dXAsXG4gICAgICAgICAgICAgICAgJ2ZvY3VzJzogb3B0aW9ucy5hbGxvd0lucHV0VG9nZ2xlID8gaGlkZSA6ICcnXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuaXMoJ2lucHV0JykpIHtcbiAgICAgICAgICAgICAgICBpbnB1dC5vZmYoe1xuICAgICAgICAgICAgICAgICAgICAnZm9jdXMnOiBzaG93XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudC5vZmYoJ2NsaWNrJywgdG9nZ2xlKTtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQub2ZmKCdtb3VzZWRvd24nLCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGluZGV4R2l2ZW5EYXRlcyA9IGZ1bmN0aW9uKGdpdmVuRGF0ZXNBcnJheSkge1xuICAgICAgICAgICAgLy8gU3RvcmUgZ2l2ZW4gZW5hYmxlZERhdGVzIGFuZCBkaXNhYmxlZERhdGVzIGFzIGtleXMuXG4gICAgICAgICAgICAvLyBUaGlzIHdheSB3ZSBjYW4gY2hlY2sgdGhlaXIgZXhpc3RlbmNlIGluIE8oMSkgdGltZSBpbnN0ZWFkIG9mIGxvb3BpbmcgdGhyb3VnaCB3aG9sZSBhcnJheS5cbiAgICAgICAgICAgIC8vIChmb3IgZXhhbXBsZTogb3B0aW9ucy5lbmFibGVkRGF0ZXNbJzIwMTQtMDItMjcnXSA9PT0gdHJ1ZSlcbiAgICAgICAgICAgIHZhciBnaXZlbkRhdGVzSW5kZXhlZCA9IHt9O1xuICAgICAgICAgICAgJC5lYWNoKGdpdmVuRGF0ZXNBcnJheSwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIGREYXRlID0gcGFyc2VJbnB1dERhdGUodGhpcyk7XG4gICAgICAgICAgICAgICAgaWYgKGREYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgICAgICBnaXZlbkRhdGVzSW5kZXhlZFtkRGF0ZS5mb3JtYXQoJ1lZWVktTU0tREQnKV0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIChPYmplY3Qua2V5cyhnaXZlbkRhdGVzSW5kZXhlZCkubGVuZ3RoKSA/IGdpdmVuRGF0ZXNJbmRleGVkIDogZmFsc2U7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGluZGV4R2l2ZW5Ib3VycyA9IGZ1bmN0aW9uKGdpdmVuSG91cnNBcnJheSkge1xuICAgICAgICAgICAgLy8gU3RvcmUgZ2l2ZW4gZW5hYmxlZEhvdXJzIGFuZCBkaXNhYmxlZEhvdXJzIGFzIGtleXMuXG4gICAgICAgICAgICAvLyBUaGlzIHdheSB3ZSBjYW4gY2hlY2sgdGhlaXIgZXhpc3RlbmNlIGluIE8oMSkgdGltZSBpbnN0ZWFkIG9mIGxvb3BpbmcgdGhyb3VnaCB3aG9sZSBhcnJheS5cbiAgICAgICAgICAgIC8vIChmb3IgZXhhbXBsZTogb3B0aW9ucy5lbmFibGVkSG91cnNbJzIwMTQtMDItMjcnXSA9PT0gdHJ1ZSlcbiAgICAgICAgICAgIHZhciBnaXZlbkhvdXJzSW5kZXhlZCA9IHt9O1xuICAgICAgICAgICAgJC5lYWNoKGdpdmVuSG91cnNBcnJheSwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgZ2l2ZW5Ib3Vyc0luZGV4ZWRbdGhpc10gPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gKE9iamVjdC5rZXlzKGdpdmVuSG91cnNJbmRleGVkKS5sZW5ndGgpID8gZ2l2ZW5Ib3Vyc0luZGV4ZWQgOiBmYWxzZTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgaW5pdEZvcm1hdHRpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBmb3JtYXQgPSBvcHRpb25zLmZvcm1hdCB8fCAnTCBMVCc7XG5cbiAgICAgICAgICAgIGFjdHVhbEZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKC8oXFxbW15cXFtdKlxcXSl8KFxcXFwpPyhMVFN8TFR8TEw/TD9MP3xsezEsNH0pL2csIGZ1bmN0aW9uKGZvcm1hdElucHV0KSB7XG4gICAgICAgICAgICAgICAgdmFyIG5ld2lucHV0ID0gZGF0ZS5sb2NhbGVEYXRhKCkubG9uZ0RhdGVGb3JtYXQoZm9ybWF0SW5wdXQpIHx8IGZvcm1hdElucHV0O1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdpbnB1dC5yZXBsYWNlKC8oXFxbW15cXFtdKlxcXSl8KFxcXFwpPyhMVFN8TFR8TEw/TD9MP3xsezEsNH0pL2csIGZ1bmN0aW9uKGZvcm1hdElucHV0MikgeyAvLyB0ZW1wIGZpeCBmb3IgIzc0MFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZS5sb2NhbGVEYXRhKCkubG9uZ0RhdGVGb3JtYXQoZm9ybWF0SW5wdXQyKSB8fCBmb3JtYXRJbnB1dDI7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcGFyc2VGb3JtYXRzID0gb3B0aW9ucy5leHRyYUZvcm1hdHMgPyBvcHRpb25zLmV4dHJhRm9ybWF0cy5zbGljZSgpIDogW107XG4gICAgICAgICAgICBpZiAocGFyc2VGb3JtYXRzLmluZGV4T2YoZm9ybWF0KSA8IDAgJiYgcGFyc2VGb3JtYXRzLmluZGV4T2YoYWN0dWFsRm9ybWF0KSA8IDApIHtcbiAgICAgICAgICAgICAgICBwYXJzZUZvcm1hdHMucHVzaChhY3R1YWxGb3JtYXQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB1c2UyNEhvdXJzID0gKGFjdHVhbEZvcm1hdC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ2EnKSA8IDEgJiYgYWN0dWFsRm9ybWF0LnJlcGxhY2UoL1xcWy4qP1xcXS9nLCAnJykuaW5kZXhPZignaCcpIDwgMSk7XG5cbiAgICAgICAgICAgIGlmIChpc0VuYWJsZWQoJ3knKSkge1xuICAgICAgICAgICAgICAgIG1pblZpZXdNb2RlTnVtYmVyID0gMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0VuYWJsZWQoJ00nKSkge1xuICAgICAgICAgICAgICAgIG1pblZpZXdNb2RlTnVtYmVyID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0VuYWJsZWQoJ2QnKSkge1xuICAgICAgICAgICAgICAgIG1pblZpZXdNb2RlTnVtYmVyID0gMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY3VycmVudFZpZXdNb2RlID0gTWF0aC5tYXgobWluVmlld01vZGVOdW1iZXIsIGN1cnJlbnRWaWV3TW9kZSk7XG5cbiAgICAgICAgICAgIGlmICghdW5zZXQpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShkYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvKiogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAqXG4gICAgICAgICAqIFB1YmxpYyBBUEkgZnVuY3Rpb25zXG4gICAgICAgICAqID09PT09PT09PT09PT09PT09PT09PVxuICAgICAgICAgKlxuICAgICAgICAgKiBJbXBvcnRhbnQ6IERvIG5vdCBleHBvc2UgZGlyZWN0IHJlZmVyZW5jZXMgdG8gcHJpdmF0ZSBvYmplY3RzIG9yIHRoZSBvcHRpb25zXG4gICAgICAgICAqIG9iamVjdCB0byB0aGUgb3V0ZXIgd29ybGQuIEFsd2F5cyByZXR1cm4gYSBjbG9uZSB3aGVuIHJldHVybmluZyB2YWx1ZXMgb3IgbWFrZVxuICAgICAgICAgKiBhIGNsb25lIHdoZW4gc2V0dGluZyBhIHByaXZhdGUgdmFyaWFibGUuXG4gICAgICAgICAqXG4gICAgICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAgICAgcGlja2VyLmRlc3Ryb3kgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5EZXN0cm95cyB0aGUgd2lkZ2V0IGFuZCByZW1vdmVzIGFsbCBhdHRhY2hlZCBldmVudCBsaXN0ZW5lcnM8L3N1bW1hcnk+XG4gICAgICAgICAgICBoaWRlKCk7XG4gICAgICAgICAgICBkZXRhY2hEYXRlUGlja2VyRWxlbWVudEV2ZW50cygpO1xuICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVEYXRhKCdEYXRlVGltZVBpY2tlcicpO1xuICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVEYXRhKCdkYXRlJyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLnRvZ2dsZSA9IHRvZ2dsZTtcblxuICAgICAgICBwaWNrZXIuc2hvdyA9IHNob3c7XG5cbiAgICAgICAgcGlja2VyLmhpZGUgPSBoaWRlO1xuXG4gICAgICAgIHBpY2tlci5kaXNhYmxlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+RGlzYWJsZXMgdGhlIGlucHV0IGVsZW1lbnQsIHRoZSBjb21wb25lbnQgaXMgYXR0YWNoZWQgdG8sIGJ5IGFkZGluZyBhIGRpc2FibGVkPVwidHJ1ZVwiIGF0dHJpYnV0ZSB0byBpdC5cbiAgICAgICAgICAgIC8vIC9JZiB0aGUgd2lkZ2V0IHdhcyB2aXNpYmxlIGJlZm9yZSB0aGF0IGNhbGwgaXQgaXMgaGlkZGVuLiBQb3NzaWJseSBlbWl0cyBkcC5oaWRlPC9zdW1tYXJ5PlxuICAgICAgICAgICAgaGlkZSgpO1xuICAgICAgICAgICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQuaGFzQ2xhc3MoJ2J0bicpKSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50LmFkZENsYXNzKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5wdXQucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmVuYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgLy8gLzxzdW1tYXJ5PkVuYWJsZXMgdGhlIGlucHV0IGVsZW1lbnQsIHRoZSBjb21wb25lbnQgaXMgYXR0YWNoZWQgdG8sIGJ5IHJlbW92aW5nIGRpc2FibGVkIGF0dHJpYnV0ZSBmcm9tIGl0Ljwvc3VtbWFyeT5cbiAgICAgICAgICAgIGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50Lmhhc0NsYXNzKCdidG4nKSkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudC5yZW1vdmVDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlucHV0LnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuaWdub3JlUmVhZG9ubHkgPSBmdW5jdGlvbihpZ25vcmVSZWFkb25seSkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5pZ25vcmVSZWFkb25seTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgaWdub3JlUmVhZG9ubHkgIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2lnbm9yZVJlYWRvbmx5ICgpIGV4cGVjdHMgYSBib29sZWFuIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3B0aW9ucy5pZ25vcmVSZWFkb25seSA9IGlnbm9yZVJlYWRvbmx5O1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIub3B0aW9ucyA9IGZ1bmN0aW9uKG5ld09wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICQuZXh0ZW5kKHRydWUsIHt9LCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCEobmV3T3B0aW9ucyBpbnN0YW5jZW9mIE9iamVjdCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zKCkgb3B0aW9ucyBwYXJhbWV0ZXIgc2hvdWxkIGJlIGFuIG9iamVjdCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJC5leHRlbmQodHJ1ZSwgb3B0aW9ucywgbmV3T3B0aW9ucyk7XG4gICAgICAgICAgICAkLmVhY2gob3B0aW9ucywgZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmIChwaWNrZXJba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBpY2tlcltrZXldKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb24gJyArIGtleSArICcgaXMgbm90IHJlY29nbml6ZWQhJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5kYXRlID0gZnVuY3Rpb24obmV3RGF0ZSkge1xuICAgICAgICAgICAgLy8gLzxzaWduYXR1cmUgaGVscEtleXdvcmQ9XCIkLmZuLmRhdGV0aW1lcGlja2VyLmRhdGVcIj5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5SZXR1cm5zIHRoZSBjb21wb25lbnQncyBtb2RlbCBjdXJyZW50IGRhdGUsIGEgbW9tZW50IG9iamVjdCBvciBudWxsIGlmIG5vdCBzZXQuPC9zdW1tYXJ5PlxuICAgICAgICAgICAgLy8gLzxyZXR1cm5zIHR5cGU9XCJNb21lbnRcIj5kYXRlLmNsb25lKCk8L3JldHVybnM+XG4gICAgICAgICAgICAvLyAvPC9zaWduYXR1cmU+XG4gICAgICAgICAgICAvLyAvPHNpZ25hdHVyZT5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5TZXRzIHRoZSBjb21wb25lbnRzIG1vZGVsIGN1cnJlbnQgbW9tZW50IHRvIGl0LiBQYXNzaW5nIGEgbnVsbCB2YWx1ZSB1bnNldHMgdGhlIGNvbXBvbmVudHMgbW9kZWwgY3VycmVudCBtb21lbnQuIFBhcnNpbmcgb2YgdGhlIG5ld0RhdGUgcGFyYW1ldGVyIGlzIG1hZGUgdXNpbmcgbW9tZW50IGxpYnJhcnkgd2l0aCB0aGUgb3B0aW9ucy5mb3JtYXQgYW5kIG9wdGlvbnMudXNlU3RyaWN0IGNvbXBvbmVudHMgY29uZmlndXJhdGlvbi48L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHBhcmFtIG5hbWU9XCJuZXdEYXRlXCIgbG9jaWQ9XCIkLmZuLmRhdGV0aW1lcGlja2VyLmRhdGVfcDpuZXdEYXRlXCI+VGFrZXMgc3RyaW5nLCBEYXRlLCBtb21lbnQsIG51bGwgcGFyYW1ldGVyLjwvcGFyYW0+XG4gICAgICAgICAgICAvLyAvPC9zaWduYXR1cmU+XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmICh1bnNldCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGUuY2xvbmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG5ld0RhdGUgIT09IG51bGwgJiYgdHlwZW9mIG5ld0RhdGUgIT09ICdzdHJpbmcnICYmICFtb21lbnQuaXNNb21lbnQobmV3RGF0ZSkgJiYgIShuZXdEYXRlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdkYXRlKCkgcGFyYW1ldGVyIG11c3QgYmUgb25lIG9mIFtudWxsLCBzdHJpbmcsIG1vbWVudCBvciBEYXRlXScpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZXRWYWx1ZShuZXdEYXRlID09PSBudWxsID8gbnVsbCA6IHBhcnNlSW5wdXREYXRlKG5ld0RhdGUpKTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmZvcm1hdCA9IGZ1bmN0aW9uKG5ld0Zvcm1hdCkge1xuICAgICAgICAgICAgLy8gLzxzdW1tYXJ5PnRlc3Qgc3U8L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHBhcmFtIG5hbWU9XCJuZXdGb3JtYXRcIj5pbmZvIGFib3V0IHBhcmE8L3BhcmFtPlxuICAgICAgICAgICAgLy8gLzxyZXR1cm5zIHR5cGU9XCJzdHJpbmd8Ym9vbGVhblwiPnJldHVybnMgZm9vPC9yZXR1cm5zPlxuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5mb3JtYXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICgodHlwZW9mIG5ld0Zvcm1hdCAhPT0gJ3N0cmluZycpICYmICgodHlwZW9mIG5ld0Zvcm1hdCAhPT0gJ2Jvb2xlYW4nKSB8fCAobmV3Rm9ybWF0ICE9PSBmYWxzZSkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZm9ybWF0KCkgZXhwZWN0cyBhIHN0cmluZyBvciBib29sZWFuOmZhbHNlIHBhcmFtZXRlciAnICsgbmV3Rm9ybWF0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5mb3JtYXQgPSBuZXdGb3JtYXQ7XG4gICAgICAgICAgICBpZiAoYWN0dWFsRm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgaW5pdEZvcm1hdHRpbmcoKTsgLy8gcmVpbml0IGZvcm1hdHRpbmdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLnRpbWVab25lID0gZnVuY3Rpb24obmV3Wm9uZSkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy50aW1lWm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBuZXdab25lICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ25ld1pvbmUoKSBleHBlY3RzIGEgc3RyaW5nIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLnRpbWVab25lID0gbmV3Wm9uZTtcblxuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuZGF5Vmlld0hlYWRlckZvcm1hdCA9IGZ1bmN0aW9uKG5ld0Zvcm1hdCkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5kYXlWaWV3SGVhZGVyRm9ybWF0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIG5ld0Zvcm1hdCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdkYXlWaWV3SGVhZGVyRm9ybWF0KCkgZXhwZWN0cyBhIHN0cmluZyBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5kYXlWaWV3SGVhZGVyRm9ybWF0ID0gbmV3Rm9ybWF0O1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuZXh0cmFGb3JtYXRzID0gZnVuY3Rpb24oZm9ybWF0cykge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5leHRyYUZvcm1hdHM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmb3JtYXRzICE9PSBmYWxzZSAmJiAhKGZvcm1hdHMgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdleHRyYUZvcm1hdHMoKSBleHBlY3RzIGFuIGFycmF5IG9yIGZhbHNlIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmV4dHJhRm9ybWF0cyA9IGZvcm1hdHM7XG4gICAgICAgICAgICBpZiAocGFyc2VGb3JtYXRzKSB7XG4gICAgICAgICAgICAgICAgaW5pdEZvcm1hdHRpbmcoKTsgLy8gcmVpbml0IGZvcm1hdHRpbmdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmRpc2FibGVkRGF0ZXMgPSBmdW5jdGlvbihkYXRlcykge1xuICAgICAgICAgICAgLy8gLzxzaWduYXR1cmUgaGVscEtleXdvcmQ9XCIkLmZuLmRhdGV0aW1lcGlja2VyLmRpc2FibGVkRGF0ZXNcIj5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5SZXR1cm5zIGFuIGFycmF5IHdpdGggdGhlIGN1cnJlbnRseSBzZXQgZGlzYWJsZWQgZGF0ZXMgb24gdGhlIGNvbXBvbmVudC48L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHJldHVybnMgdHlwZT1cImFycmF5XCI+b3B0aW9ucy5kaXNhYmxlZERhdGVzPC9yZXR1cm5zPlxuICAgICAgICAgICAgLy8gLzwvc2lnbmF0dXJlPlxuICAgICAgICAgICAgLy8gLzxzaWduYXR1cmU+XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+U2V0dGluZyB0aGlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBvcHRpb25zLm1pbkRhdGUsIG9wdGlvbnMubWF4RGF0ZSBjb25maWd1cmF0aW9uLiBBbHNvIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiByZW1vdmVzIHRoZSBjb25maWd1cmF0aW9uIG9mXG4gICAgICAgICAgICAvLyAvb3B0aW9ucy5lbmFibGVkRGF0ZXMgaWYgc3VjaCBleGlzdC48L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHBhcmFtIG5hbWU9XCJkYXRlc1wiIGxvY2lkPVwiJC5mbi5kYXRldGltZXBpY2tlci5kaXNhYmxlZERhdGVzX3A6ZGF0ZXNcIj5UYWtlcyBhbiBbIHN0cmluZyBvciBEYXRlIG9yIG1vbWVudCBdIG9mIHZhbHVlcyBhbmQgYWxsb3dzIHRoZSB1c2VyIHRvIHNlbGVjdCBvbmx5IGZyb20gdGhvc2UgZGF5cy48L3BhcmFtPlxuICAgICAgICAgICAgLy8gLzwvc2lnbmF0dXJlPlxuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKG9wdGlvbnMuZGlzYWJsZWREYXRlcyA/ICQuZXh0ZW5kKHt9LCBvcHRpb25zLmRpc2FibGVkRGF0ZXMpIDogb3B0aW9ucy5kaXNhYmxlZERhdGVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFkYXRlcykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZGlzYWJsZWREYXRlcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIShkYXRlcyBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2Rpc2FibGVkRGF0ZXMoKSBleHBlY3RzIGFuIGFycmF5IHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3B0aW9ucy5kaXNhYmxlZERhdGVzID0gaW5kZXhHaXZlbkRhdGVzKGRhdGVzKTtcbiAgICAgICAgICAgIG9wdGlvbnMuZW5hYmxlZERhdGVzID0gZmFsc2U7XG4gICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmVuYWJsZWREYXRlcyA9IGZ1bmN0aW9uKGRhdGVzKSB7XG4gICAgICAgICAgICAvLyAvPHNpZ25hdHVyZSBoZWxwS2V5d29yZD1cIiQuZm4uZGF0ZXRpbWVwaWNrZXIuZW5hYmxlZERhdGVzXCI+XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+UmV0dXJucyBhbiBhcnJheSB3aXRoIHRoZSBjdXJyZW50bHkgc2V0IGVuYWJsZWQgZGF0ZXMgb24gdGhlIGNvbXBvbmVudC48L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHJldHVybnMgdHlwZT1cImFycmF5XCI+b3B0aW9ucy5lbmFibGVkRGF0ZXM8L3JldHVybnM+XG4gICAgICAgICAgICAvLyAvPC9zaWduYXR1cmU+XG4gICAgICAgICAgICAvLyAvPHNpZ25hdHVyZT5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5TZXR0aW5nIHRoaXMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIG9wdGlvbnMubWluRGF0ZSwgb3B0aW9ucy5tYXhEYXRlIGNvbmZpZ3VyYXRpb24uIEFsc28gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIHJlbW92ZXMgdGhlIGNvbmZpZ3VyYXRpb24gb2Ygb3B0aW9ucy5kaXNhYmxlZERhdGVzIGlmIHN1Y2ggZXhpc3QuPC9zdW1tYXJ5PlxuICAgICAgICAgICAgLy8gLzxwYXJhbSBuYW1lPVwiZGF0ZXNcIiBsb2NpZD1cIiQuZm4uZGF0ZXRpbWVwaWNrZXIuZW5hYmxlZERhdGVzX3A6ZGF0ZXNcIj5UYWtlcyBhbiBbIHN0cmluZyBvciBEYXRlIG9yIG1vbWVudCBdIG9mIHZhbHVlcyBhbmQgYWxsb3dzIHRoZSB1c2VyIHRvIHNlbGVjdCBvbmx5IGZyb20gdGhvc2UgZGF5cy48L3BhcmFtPlxuICAgICAgICAgICAgLy8gLzwvc2lnbmF0dXJlPlxuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKG9wdGlvbnMuZW5hYmxlZERhdGVzID8gJC5leHRlbmQoe30sIG9wdGlvbnMuZW5hYmxlZERhdGVzKSA6IG9wdGlvbnMuZW5hYmxlZERhdGVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFkYXRlcykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZW5hYmxlZERhdGVzID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghKGRhdGVzIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZW5hYmxlZERhdGVzKCkgZXhwZWN0cyBhbiBhcnJheSBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMuZW5hYmxlZERhdGVzID0gaW5kZXhHaXZlbkRhdGVzKGRhdGVzKTtcbiAgICAgICAgICAgIG9wdGlvbnMuZGlzYWJsZWREYXRlcyA9IGZhbHNlO1xuICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5kYXlzT2ZXZWVrRGlzYWJsZWQgPSBmdW5jdGlvbihkYXlzT2ZXZWVrRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuZGF5c09mV2Vla0Rpc2FibGVkLnNwbGljZSgwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCh0eXBlb2YgZGF5c09mV2Vla0Rpc2FibGVkID09PSAnYm9vbGVhbicpICYmICFkYXlzT2ZXZWVrRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmRheXNPZldlZWtEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghKGRheXNPZldlZWtEaXNhYmxlZCBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2RheXNPZldlZWtEaXNhYmxlZCgpIGV4cGVjdHMgYW4gYXJyYXkgcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLmRheXNPZldlZWtEaXNhYmxlZCA9IGRheXNPZldlZWtEaXNhYmxlZC5yZWR1Y2UoZnVuY3Rpb24ocHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFZhbHVlID0gcGFyc2VJbnQoY3VycmVudFZhbHVlLCAxMCk7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSA+IDYgfHwgY3VycmVudFZhbHVlIDwgMCB8fCBpc05hTihjdXJyZW50VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c1ZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNWYWx1ZS5pbmRleE9mKGN1cnJlbnRWYWx1ZSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVmFsdWUucHVzaChjdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNWYWx1ZTtcbiAgICAgICAgICAgIH0sIFtdKS5zb3J0KCk7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy51c2VDdXJyZW50ICYmICFvcHRpb25zLmtlZXBJbnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRyaWVzID0gMDtcbiAgICAgICAgICAgICAgICB3aGlsZSAoIWlzVmFsaWQoZGF0ZSwgJ2QnKSkge1xuICAgICAgICAgICAgICAgICAgICBkYXRlLmFkZCgxLCAnZCcpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHJpZXMgPT09IDMxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyaWVkIDMxIHRpbWVzIHRvIGZpbmQgYSB2YWxpZCBkYXRlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdHJpZXMrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoZGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLm1heERhdGUgPSBmdW5jdGlvbihtYXhEYXRlKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLm1heERhdGUgPyBvcHRpb25zLm1heERhdGUuY2xvbmUoKSA6IG9wdGlvbnMubWF4RGF0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCh0eXBlb2YgbWF4RGF0ZSA9PT0gJ2Jvb2xlYW4nKSAmJiBtYXhEYXRlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubWF4RGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgbWF4RGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAobWF4RGF0ZSA9PT0gJ25vdycgfHwgbWF4RGF0ZSA9PT0gJ21vbWVudCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4RGF0ZSA9IGdldE1vbWVudCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHBhcnNlZERhdGUgPSBwYXJzZUlucHV0RGF0ZShtYXhEYXRlKTtcblxuICAgICAgICAgICAgaWYgKCFwYXJzZWREYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ21heERhdGUoKSBDb3VsZCBub3QgcGFyc2UgZGF0ZSBwYXJhbWV0ZXI6ICcgKyBtYXhEYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLm1pbkRhdGUgJiYgcGFyc2VkRGF0ZS5pc0JlZm9yZShvcHRpb25zLm1pbkRhdGUpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbWF4RGF0ZSgpIGRhdGUgcGFyYW1ldGVyIGlzIGJlZm9yZSBvcHRpb25zLm1pbkRhdGU6ICcgKyBwYXJzZWREYXRlLmZvcm1hdChhY3R1YWxGb3JtYXQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMubWF4RGF0ZSA9IHBhcnNlZERhdGU7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy51c2VDdXJyZW50ICYmICFvcHRpb25zLmtlZXBJbnZhbGlkICYmIGRhdGUuaXNBZnRlcihtYXhEYXRlKSkge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKG9wdGlvbnMubWF4RGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmlld0RhdGUuaXNBZnRlcihwYXJzZWREYXRlKSkge1xuICAgICAgICAgICAgICAgIHZpZXdEYXRlID0gcGFyc2VkRGF0ZS5jbG9uZSgpLnN1YnRyYWN0KG9wdGlvbnMuc3RlcHBpbmcsICdtJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLm1pbkRhdGUgPSBmdW5jdGlvbihtaW5EYXRlKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLm1pbkRhdGUgPyBvcHRpb25zLm1pbkRhdGUuY2xvbmUoKSA6IG9wdGlvbnMubWluRGF0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCh0eXBlb2YgbWluRGF0ZSA9PT0gJ2Jvb2xlYW4nKSAmJiBtaW5EYXRlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubWluRGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgbWluRGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAobWluRGF0ZSA9PT0gJ25vdycgfHwgbWluRGF0ZSA9PT0gJ21vbWVudCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWluRGF0ZSA9IGdldE1vbWVudCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHBhcnNlZERhdGUgPSBwYXJzZUlucHV0RGF0ZShtaW5EYXRlKTtcblxuICAgICAgICAgICAgaWYgKCFwYXJzZWREYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ21pbkRhdGUoKSBDb3VsZCBub3QgcGFyc2UgZGF0ZSBwYXJhbWV0ZXI6ICcgKyBtaW5EYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLm1heERhdGUgJiYgcGFyc2VkRGF0ZS5pc0FmdGVyKG9wdGlvbnMubWF4RGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtaW5EYXRlKCkgZGF0ZSBwYXJhbWV0ZXIgaXMgYWZ0ZXIgb3B0aW9ucy5tYXhEYXRlOiAnICsgcGFyc2VkRGF0ZS5mb3JtYXQoYWN0dWFsRm9ybWF0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLm1pbkRhdGUgPSBwYXJzZWREYXRlO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMudXNlQ3VycmVudCAmJiAhb3B0aW9ucy5rZWVwSW52YWxpZCAmJiBkYXRlLmlzQmVmb3JlKG1pbkRhdGUpKSB7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUob3B0aW9ucy5taW5EYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2aWV3RGF0ZS5pc0JlZm9yZShwYXJzZWREYXRlKSkge1xuICAgICAgICAgICAgICAgIHZpZXdEYXRlID0gcGFyc2VkRGF0ZS5jbG9uZSgpLmFkZChvcHRpb25zLnN0ZXBwaW5nLCAnbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5kZWZhdWx0RGF0ZSA9IGZ1bmN0aW9uKGRlZmF1bHREYXRlKSB7XG4gICAgICAgICAgICAvLyAvPHNpZ25hdHVyZSBoZWxwS2V5d29yZD1cIiQuZm4uZGF0ZXRpbWVwaWNrZXIuZGVmYXVsdERhdGVcIj5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5SZXR1cm5zIGEgbW9tZW50IHdpdGggdGhlIG9wdGlvbnMuZGVmYXVsdERhdGUgb3B0aW9uIGNvbmZpZ3VyYXRpb24gb3IgZmFsc2UgaWYgbm90IHNldDwvc3VtbWFyeT5cbiAgICAgICAgICAgIC8vIC88cmV0dXJucyB0eXBlPVwiTW9tZW50XCI+ZGF0ZS5jbG9uZSgpPC9yZXR1cm5zPlxuICAgICAgICAgICAgLy8gLzwvc2lnbmF0dXJlPlxuICAgICAgICAgICAgLy8gLzxzaWduYXR1cmU+XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+V2lsbCBzZXQgdGhlIHBpY2tlcidzIGluaXRhbCBkYXRlLiBJZiBhIGJvb2xlYW46ZmFsc2UgdmFsdWUgaXMgcGFzc2VkIHRoZSBvcHRpb25zLmRlZmF1bHREYXRlIHBhcmFtZXRlciBpcyBjbGVhcmVkLjwvc3VtbWFyeT5cbiAgICAgICAgICAgIC8vIC88cGFyYW0gbmFtZT1cImRlZmF1bHREYXRlXCIgbG9jaWQ9XCIkLmZuLmRhdGV0aW1lcGlja2VyLmRlZmF1bHREYXRlX3A6ZGVmYXVsdERhdGVcIj5UYWtlcyBhIHN0cmluZywgRGF0ZSwgbW9tZW50LCBib29sZWFuOmZhbHNlPC9wYXJhbT5cbiAgICAgICAgICAgIC8vIC88L3NpZ25hdHVyZT5cbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuZGVmYXVsdERhdGUgPyBvcHRpb25zLmRlZmF1bHREYXRlLmNsb25lKCkgOiBvcHRpb25zLmRlZmF1bHREYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFkZWZhdWx0RGF0ZSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZGVmYXVsdERhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGRlZmF1bHREYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmIChkZWZhdWx0RGF0ZSA9PT0gJ25vdycgfHwgZGVmYXVsdERhdGUgPT09ICdtb21lbnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHREYXRlID0gZ2V0TW9tZW50KCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdERhdGUgPSBnZXRNb21lbnQoZGVmYXVsdERhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHBhcnNlZERhdGUgPSBwYXJzZUlucHV0RGF0ZShkZWZhdWx0RGF0ZSk7XG4gICAgICAgICAgICBpZiAoIXBhcnNlZERhdGUuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZGVmYXVsdERhdGUoKSBDb3VsZCBub3QgcGFyc2UgZGF0ZSBwYXJhbWV0ZXI6ICcgKyBkZWZhdWx0RGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzVmFsaWQocGFyc2VkRGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdkZWZhdWx0RGF0ZSgpIGRhdGUgcGFzc2VkIGlzIGludmFsaWQgYWNjb3JkaW5nIHRvIGNvbXBvbmVudCBzZXR1cCB2YWxpZGF0aW9ucycpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmRlZmF1bHREYXRlID0gcGFyc2VkRGF0ZTtcblxuICAgICAgICAgICAgaWYgKChvcHRpb25zLmRlZmF1bHREYXRlICYmIG9wdGlvbnMuaW5saW5lKSB8fCBpbnB1dC52YWwoKS50cmltKCkgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUob3B0aW9ucy5kZWZhdWx0RGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5sb2NhbGUgPSBmdW5jdGlvbihsb2NhbGUpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMubG9jYWxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIW1vbWVudC5sb2NhbGVEYXRhKGxvY2FsZSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdsb2NhbGUoKSBsb2NhbGUgJyArIGxvY2FsZSArICcgaXMgbm90IGxvYWRlZCBmcm9tIG1vbWVudCBsb2NhbGVzIScpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmxvY2FsZSA9IGxvY2FsZTtcbiAgICAgICAgICAgIGRhdGUubG9jYWxlKG9wdGlvbnMubG9jYWxlKTtcbiAgICAgICAgICAgIHZpZXdEYXRlLmxvY2FsZShvcHRpb25zLmxvY2FsZSk7XG5cbiAgICAgICAgICAgIGlmIChhY3R1YWxGb3JtYXQpIHtcbiAgICAgICAgICAgICAgICBpbml0Rm9ybWF0dGluZygpOyAvLyByZWluaXQgZm9ybWF0dGluZ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICBzaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5zdGVwcGluZyA9IGZ1bmN0aW9uKHN0ZXBwaW5nKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLnN0ZXBwaW5nO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdGVwcGluZyA9IHBhcnNlSW50KHN0ZXBwaW5nLCAxMCk7XG4gICAgICAgICAgICBpZiAoaXNOYU4oc3RlcHBpbmcpIHx8IHN0ZXBwaW5nIDwgMSkge1xuICAgICAgICAgICAgICAgIHN0ZXBwaW5nID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMuc3RlcHBpbmcgPSBzdGVwcGluZztcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLnVzZUN1cnJlbnQgPSBmdW5jdGlvbih1c2VDdXJyZW50KSB7XG4gICAgICAgICAgICB2YXIgdXNlQ3VycmVudE9wdGlvbnMgPSBbJ3llYXInLCAnbW9udGgnLCAnZGF5JywgJ2hvdXInLCAnbWludXRlJ107XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLnVzZUN1cnJlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICgodHlwZW9mIHVzZUN1cnJlbnQgIT09ICdib29sZWFuJykgJiYgKHR5cGVvZiB1c2VDdXJyZW50ICE9PSAnc3RyaW5nJykpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd1c2VDdXJyZW50KCkgZXhwZWN0cyBhIGJvb2xlYW4gb3Igc3RyaW5nIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiB1c2VDdXJyZW50ID09PSAnc3RyaW5nJyAmJiB1c2VDdXJyZW50T3B0aW9ucy5pbmRleE9mKHVzZUN1cnJlbnQudG9Mb3dlckNhc2UoKSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndXNlQ3VycmVudCgpIGV4cGVjdHMgYSBzdHJpbmcgcGFyYW1ldGVyIG9mICcgKyB1c2VDdXJyZW50T3B0aW9ucy5qb2luKCcsICcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMudXNlQ3VycmVudCA9IHVzZUN1cnJlbnQ7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5jb2xsYXBzZSA9IGZ1bmN0aW9uKGNvbGxhcHNlKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmNvbGxhcHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbGxhcHNlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdjb2xsYXBzZSgpIGV4cGVjdHMgYSBib29sZWFuIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuY29sbGFwc2UgPT09IGNvbGxhcHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMuY29sbGFwc2UgPSBjb2xsYXBzZTtcbiAgICAgICAgICAgIGlmICh3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICBoaWRlKCk7XG4gICAgICAgICAgICAgICAgc2hvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuaWNvbnMgPSBmdW5jdGlvbihpY29ucykge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJC5leHRlbmQoe30sIG9wdGlvbnMuaWNvbnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIShpY29ucyBpbnN0YW5jZW9mIE9iamVjdCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdpY29ucygpIGV4cGVjdHMgcGFyYW1ldGVyIHRvIGJlIGFuIE9iamVjdCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJC5leHRlbmQob3B0aW9ucy5pY29ucywgaWNvbnMpO1xuICAgICAgICAgICAgaWYgKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICBzaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci50b29sdGlwcyA9IGZ1bmN0aW9uKHRvb2x0aXBzKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAkLmV4dGVuZCh7fSwgb3B0aW9ucy50b29sdGlwcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghKHRvb2x0aXBzIGluc3RhbmNlb2YgT2JqZWN0KSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3Rvb2x0aXBzKCkgZXhwZWN0cyBwYXJhbWV0ZXIgdG8gYmUgYW4gT2JqZWN0Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkLmV4dGVuZChvcHRpb25zLnRvb2x0aXBzLCB0b29sdGlwcyk7XG4gICAgICAgICAgICBpZiAod2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaGlkZSgpO1xuICAgICAgICAgICAgICAgIHNob3coKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLnVzZVN0cmljdCA9IGZ1bmN0aW9uKHVzZVN0cmljdCkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy51c2VTdHJpY3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdXNlU3RyaWN0ICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd1c2VTdHJpY3QoKSBleHBlY3RzIGEgYm9vbGVhbiBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMudXNlU3RyaWN0ID0gdXNlU3RyaWN0O1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuc2lkZUJ5U2lkZSA9IGZ1bmN0aW9uKHNpZGVCeVNpZGUpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuc2lkZUJ5U2lkZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBzaWRlQnlTaWRlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdzaWRlQnlTaWRlKCkgZXhwZWN0cyBhIGJvb2xlYW4gcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLnNpZGVCeVNpZGUgPSBzaWRlQnlTaWRlO1xuICAgICAgICAgICAgaWYgKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICBzaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci52aWV3TW9kZSA9IGZ1bmN0aW9uKHZpZXdNb2RlKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLnZpZXdNb2RlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZpZXdNb2RlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3ZpZXdNb2RlKCkgZXhwZWN0cyBhIHN0cmluZyBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHZpZXdNb2Rlcy5pbmRleE9mKHZpZXdNb2RlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2aWV3TW9kZSgpIHBhcmFtZXRlciBtdXN0IGJlIG9uZSBvZiAoJyArIHZpZXdNb2Rlcy5qb2luKCcsICcpICsgJykgdmFsdWUnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy52aWV3TW9kZSA9IHZpZXdNb2RlO1xuICAgICAgICAgICAgY3VycmVudFZpZXdNb2RlID0gTWF0aC5tYXgodmlld01vZGVzLmluZGV4T2Yodmlld01vZGUpLCBtaW5WaWV3TW9kZU51bWJlcik7XG5cbiAgICAgICAgICAgIHNob3dNb2RlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci50b29sYmFyUGxhY2VtZW50ID0gZnVuY3Rpb24odG9vbGJhclBsYWNlbWVudCkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy50b29sYmFyUGxhY2VtZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHRvb2xiYXJQbGFjZW1lbnQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndG9vbGJhclBsYWNlbWVudCgpIGV4cGVjdHMgYSBzdHJpbmcgcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG9vbGJhclBsYWNlbWVudHMuaW5kZXhPZih0b29sYmFyUGxhY2VtZW50KSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd0b29sYmFyUGxhY2VtZW50KCkgcGFyYW1ldGVyIG11c3QgYmUgb25lIG9mICgnICsgdG9vbGJhclBsYWNlbWVudHMuam9pbignLCAnKSArICcpIHZhbHVlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLnRvb2xiYXJQbGFjZW1lbnQgPSB0b29sYmFyUGxhY2VtZW50O1xuXG4gICAgICAgICAgICBpZiAod2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaGlkZSgpO1xuICAgICAgICAgICAgICAgIHNob3coKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLndpZGdldFBvc2l0aW9uaW5nID0gZnVuY3Rpb24od2lkZ2V0UG9zaXRpb25pbmcpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICQuZXh0ZW5kKHt9LCBvcHRpb25zLndpZGdldFBvc2l0aW9uaW5nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCh7fSkudG9TdHJpbmcuY2FsbCh3aWRnZXRQb3NpdGlvbmluZykgIT09ICdbb2JqZWN0IE9iamVjdF0nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignd2lkZ2V0UG9zaXRpb25pbmcoKSBleHBlY3RzIGFuIG9iamVjdCB2YXJpYWJsZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHdpZGdldFBvc2l0aW9uaW5nLmhvcml6b250YWwpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHdpZGdldFBvc2l0aW9uaW5nLmhvcml6b250YWwgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3dpZGdldFBvc2l0aW9uaW5nKCkgaG9yaXpvbnRhbCB2YXJpYWJsZSBtdXN0IGJlIGEgc3RyaW5nJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHdpZGdldFBvc2l0aW9uaW5nLmhvcml6b250YWwgPSB3aWRnZXRQb3NpdGlvbmluZy5ob3Jpem9udGFsLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgaWYgKGhvcml6b250YWxNb2Rlcy5pbmRleE9mKHdpZGdldFBvc2l0aW9uaW5nLmhvcml6b250YWwpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd3aWRnZXRQb3NpdGlvbmluZygpIGV4cGVjdHMgaG9yaXpvbnRhbCBwYXJhbWV0ZXIgdG8gYmUgb25lIG9mICgnICsgaG9yaXpvbnRhbE1vZGVzLmpvaW4oJywgJykgKyAnKScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvcHRpb25zLndpZGdldFBvc2l0aW9uaW5nLmhvcml6b250YWwgPSB3aWRnZXRQb3NpdGlvbmluZy5ob3Jpem9udGFsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHdpZGdldFBvc2l0aW9uaW5nLnZlcnRpY2FsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB3aWRnZXRQb3NpdGlvbmluZy52ZXJ0aWNhbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignd2lkZ2V0UG9zaXRpb25pbmcoKSB2ZXJ0aWNhbCB2YXJpYWJsZSBtdXN0IGJlIGEgc3RyaW5nJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHdpZGdldFBvc2l0aW9uaW5nLnZlcnRpY2FsID0gd2lkZ2V0UG9zaXRpb25pbmcudmVydGljYWwudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICBpZiAodmVydGljYWxNb2Rlcy5pbmRleE9mKHdpZGdldFBvc2l0aW9uaW5nLnZlcnRpY2FsKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignd2lkZ2V0UG9zaXRpb25pbmcoKSBleHBlY3RzIHZlcnRpY2FsIHBhcmFtZXRlciB0byBiZSBvbmUgb2YgKCcgKyB2ZXJ0aWNhbE1vZGVzLmpvaW4oJywgJykgKyAnKScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvcHRpb25zLndpZGdldFBvc2l0aW9uaW5nLnZlcnRpY2FsID0gd2lkZ2V0UG9zaXRpb25pbmcudmVydGljYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmNhbGVuZGFyV2Vla3MgPSBmdW5jdGlvbihjYWxlbmRhcldlZWtzKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmNhbGVuZGFyV2Vla3M7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2FsZW5kYXJXZWVrcyAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignY2FsZW5kYXJXZWVrcygpIGV4cGVjdHMgcGFyYW1ldGVyIHRvIGJlIGEgYm9vbGVhbiB2YWx1ZScpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmNhbGVuZGFyV2Vla3MgPSBjYWxlbmRhcldlZWtzO1xuICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5zaG93VG9kYXlCdXR0b24gPSBmdW5jdGlvbihzaG93VG9kYXlCdXR0b24pIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuc2hvd1RvZGF5QnV0dG9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHNob3dUb2RheUJ1dHRvbiAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignc2hvd1RvZGF5QnV0dG9uKCkgZXhwZWN0cyBhIGJvb2xlYW4gcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9wdGlvbnMuc2hvd1RvZGF5QnV0dG9uID0gc2hvd1RvZGF5QnV0dG9uO1xuICAgICAgICAgICAgaWYgKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICBzaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5zaG93Q2xlYXIgPSBmdW5jdGlvbihzaG93Q2xlYXIpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuc2hvd0NsZWFyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHNob3dDbGVhciAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignc2hvd0NsZWFyKCkgZXhwZWN0cyBhIGJvb2xlYW4gcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9wdGlvbnMuc2hvd0NsZWFyID0gc2hvd0NsZWFyO1xuICAgICAgICAgICAgaWYgKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICBzaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci53aWRnZXRQYXJlbnQgPSBmdW5jdGlvbih3aWRnZXRQYXJlbnQpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMud2lkZ2V0UGFyZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHdpZGdldFBhcmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB3aWRnZXRQYXJlbnQgPSAkKHdpZGdldFBhcmVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh3aWRnZXRQYXJlbnQgIT09IG51bGwgJiYgKHR5cGVvZiB3aWRnZXRQYXJlbnQgIT09ICdzdHJpbmcnICYmICEod2lkZ2V0UGFyZW50IGluc3RhbmNlb2YgJCkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignd2lkZ2V0UGFyZW50KCkgZXhwZWN0cyBhIHN0cmluZyBvciBhIGpRdWVyeSBvYmplY3QgcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9wdGlvbnMud2lkZ2V0UGFyZW50ID0gd2lkZ2V0UGFyZW50O1xuICAgICAgICAgICAgaWYgKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICBzaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5rZWVwT3BlbiA9IGZ1bmN0aW9uKGtlZXBPcGVuKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmtlZXBPcGVuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGtlZXBPcGVuICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdrZWVwT3BlbigpIGV4cGVjdHMgYSBib29sZWFuIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmtlZXBPcGVuID0ga2VlcE9wZW47XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5mb2N1c09uU2hvdyA9IGZ1bmN0aW9uKGZvY3VzT25TaG93KSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmZvY3VzT25TaG93O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGZvY3VzT25TaG93ICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdmb2N1c09uU2hvdygpIGV4cGVjdHMgYSBib29sZWFuIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmZvY3VzT25TaG93ID0gZm9jdXNPblNob3c7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5pbmxpbmUgPSBmdW5jdGlvbihpbmxpbmUpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuaW5saW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGlubGluZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignaW5saW5lKCkgZXhwZWN0cyBhIGJvb2xlYW4gcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9wdGlvbnMuaW5saW5lID0gaW5saW5lO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuY2xlYXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNsZWFyKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5rZXlCaW5kcyA9IGZ1bmN0aW9uKGtleUJpbmRzKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmtleUJpbmRzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmtleUJpbmRzID0ga2V5QmluZHM7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5nZXRNb21lbnQgPSBmdW5jdGlvbihkKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0TW9tZW50KGQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5kZWJ1ZyA9IGZ1bmN0aW9uKGRlYnVnKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGRlYnVnICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdkZWJ1ZygpIGV4cGVjdHMgYSBib29sZWFuIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmRlYnVnID0gZGVidWc7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5hbGxvd0lucHV0VG9nZ2xlID0gZnVuY3Rpb24oYWxsb3dJbnB1dFRvZ2dsZSkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5hbGxvd0lucHV0VG9nZ2xlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGFsbG93SW5wdXRUb2dnbGUgIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2FsbG93SW5wdXRUb2dnbGUoKSBleHBlY3RzIGEgYm9vbGVhbiBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5hbGxvd0lucHV0VG9nZ2xlID0gYWxsb3dJbnB1dFRvZ2dsZTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLnNob3dDbG9zZSA9IGZ1bmN0aW9uKHNob3dDbG9zZSkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5zaG93Q2xvc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc2hvd0Nsb3NlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdzaG93Q2xvc2UoKSBleHBlY3RzIGEgYm9vbGVhbiBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5zaG93Q2xvc2UgPSBzaG93Q2xvc2U7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5rZWVwSW52YWxpZCA9IGZ1bmN0aW9uKGtlZXBJbnZhbGlkKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmtlZXBJbnZhbGlkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGtlZXBJbnZhbGlkICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdrZWVwSW52YWxpZCgpIGV4cGVjdHMgYSBib29sZWFuIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3B0aW9ucy5rZWVwSW52YWxpZCA9IGtlZXBJbnZhbGlkO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuZGF0ZXBpY2tlcklucHV0ID0gZnVuY3Rpb24oZGF0ZXBpY2tlcklucHV0KSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmRhdGVwaWNrZXJJbnB1dDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRlcGlja2VySW5wdXQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZGF0ZXBpY2tlcklucHV0KCkgZXhwZWN0cyBhIHN0cmluZyBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5kYXRlcGlja2VySW5wdXQgPSBkYXRlcGlja2VySW5wdXQ7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5wYXJzZUlucHV0RGF0ZSA9IGZ1bmN0aW9uKHBhcnNlSW5wdXREYXRlKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLnBhcnNlSW5wdXREYXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHBhcnNlSW5wdXREYXRlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncGFyc2VJbnB1dERhdGUoKSBzaG9sdWQgYmUgYXMgZnVuY3Rpb24nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5wYXJzZUlucHV0RGF0ZSA9IHBhcnNlSW5wdXREYXRlO1xuXG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5kaXNhYmxlZFRpbWVJbnRlcnZhbHMgPSBmdW5jdGlvbihkaXNhYmxlZFRpbWVJbnRlcnZhbHMpIHtcbiAgICAgICAgICAgIC8vIC88c2lnbmF0dXJlIGhlbHBLZXl3b3JkPVwiJC5mbi5kYXRldGltZXBpY2tlci5kaXNhYmxlZFRpbWVJbnRlcnZhbHNcIj5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5SZXR1cm5zIGFuIGFycmF5IHdpdGggdGhlIGN1cnJlbnRseSBzZXQgZGlzYWJsZWQgZGF0ZXMgb24gdGhlIGNvbXBvbmVudC48L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHJldHVybnMgdHlwZT1cImFycmF5XCI+b3B0aW9ucy5kaXNhYmxlZFRpbWVJbnRlcnZhbHM8L3JldHVybnM+XG4gICAgICAgICAgICAvLyAvPC9zaWduYXR1cmU+XG4gICAgICAgICAgICAvLyAvPHNpZ25hdHVyZT5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5TZXR0aW5nIHRoaXMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIG9wdGlvbnMubWluRGF0ZSwgb3B0aW9ucy5tYXhEYXRlIGNvbmZpZ3VyYXRpb24uIEFsc28gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIHJlbW92ZXMgdGhlIGNvbmZpZ3VyYXRpb24gb2ZcbiAgICAgICAgICAgIC8vIC9vcHRpb25zLmVuYWJsZWREYXRlcyBpZiBzdWNoIGV4aXN0Ljwvc3VtbWFyeT5cbiAgICAgICAgICAgIC8vIC88cGFyYW0gbmFtZT1cImRhdGVzXCIgbG9jaWQ9XCIkLmZuLmRhdGV0aW1lcGlja2VyLmRpc2FibGVkVGltZUludGVydmFsc19wOmRhdGVzXCI+VGFrZXMgYW4gWyBzdHJpbmcgb3IgRGF0ZSBvciBtb21lbnQgXSBvZiB2YWx1ZXMgYW5kIGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3Qgb25seSBmcm9tIHRob3NlIGRheXMuPC9wYXJhbT5cbiAgICAgICAgICAgIC8vIC88L3NpZ25hdHVyZT5cbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChvcHRpb25zLmRpc2FibGVkVGltZUludGVydmFscyA/ICQuZXh0ZW5kKHt9LCBvcHRpb25zLmRpc2FibGVkVGltZUludGVydmFscykgOiBvcHRpb25zLmRpc2FibGVkVGltZUludGVydmFscyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghZGlzYWJsZWRUaW1lSW50ZXJ2YWxzKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5kaXNhYmxlZFRpbWVJbnRlcnZhbHMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCEoZGlzYWJsZWRUaW1lSW50ZXJ2YWxzIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZGlzYWJsZWRUaW1lSW50ZXJ2YWxzKCkgZXhwZWN0cyBhbiBhcnJheSBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMuZGlzYWJsZWRUaW1lSW50ZXJ2YWxzID0gZGlzYWJsZWRUaW1lSW50ZXJ2YWxzO1xuICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5kaXNhYmxlZEhvdXJzID0gZnVuY3Rpb24oaG91cnMpIHtcbiAgICAgICAgICAgIC8vIC88c2lnbmF0dXJlIGhlbHBLZXl3b3JkPVwiJC5mbi5kYXRldGltZXBpY2tlci5kaXNhYmxlZEhvdXJzXCI+XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+UmV0dXJucyBhbiBhcnJheSB3aXRoIHRoZSBjdXJyZW50bHkgc2V0IGRpc2FibGVkIGhvdXJzIG9uIHRoZSBjb21wb25lbnQuPC9zdW1tYXJ5PlxuICAgICAgICAgICAgLy8gLzxyZXR1cm5zIHR5cGU9XCJhcnJheVwiPm9wdGlvbnMuZGlzYWJsZWRIb3VyczwvcmV0dXJucz5cbiAgICAgICAgICAgIC8vIC88L3NpZ25hdHVyZT5cbiAgICAgICAgICAgIC8vIC88c2lnbmF0dXJlPlxuICAgICAgICAgICAgLy8gLzxzdW1tYXJ5PlNldHRpbmcgdGhpcyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgb3B0aW9ucy5taW5EYXRlLCBvcHRpb25zLm1heERhdGUgY29uZmlndXJhdGlvbi4gQWxzbyBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gcmVtb3ZlcyB0aGUgY29uZmlndXJhdGlvbiBvZlxuICAgICAgICAgICAgLy8gL29wdGlvbnMuZW5hYmxlZEhvdXJzIGlmIHN1Y2ggZXhpc3QuPC9zdW1tYXJ5PlxuICAgICAgICAgICAgLy8gLzxwYXJhbSBuYW1lPVwiaG91cnNcIiBsb2NpZD1cIiQuZm4uZGF0ZXRpbWVwaWNrZXIuZGlzYWJsZWRIb3Vyc19wOmhvdXJzXCI+VGFrZXMgYW4gWyBpbnQgXSBvZiB2YWx1ZXMgYW5kIGRpc2FsbG93cyB0aGUgdXNlciB0byBzZWxlY3Qgb25seSBmcm9tIHRob3NlIGhvdXJzLjwvcGFyYW0+XG4gICAgICAgICAgICAvLyAvPC9zaWduYXR1cmU+XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAob3B0aW9ucy5kaXNhYmxlZEhvdXJzID8gJC5leHRlbmQoe30sIG9wdGlvbnMuZGlzYWJsZWRIb3VycykgOiBvcHRpb25zLmRpc2FibGVkSG91cnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWhvdXJzKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5kaXNhYmxlZEhvdXJzID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghKGhvdXJzIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZGlzYWJsZWRIb3VycygpIGV4cGVjdHMgYW4gYXJyYXkgcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLmRpc2FibGVkSG91cnMgPSBpbmRleEdpdmVuSG91cnMoaG91cnMpO1xuICAgICAgICAgICAgb3B0aW9ucy5lbmFibGVkSG91cnMgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnVzZUN1cnJlbnQgJiYgIW9wdGlvbnMua2VlcEludmFsaWQpIHtcbiAgICAgICAgICAgICAgICB2YXIgdHJpZXMgPSAwO1xuICAgICAgICAgICAgICAgIHdoaWxlICghaXNWYWxpZChkYXRlLCAnaCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGUuYWRkKDEsICdoJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0cmllcyA9PT0gMjQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVHJpZWQgMjQgdGltZXMgdG8gZmluZCBhIHZhbGlkIGRhdGUnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0cmllcysrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShkYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuZW5hYmxlZEhvdXJzID0gZnVuY3Rpb24oaG91cnMpIHtcbiAgICAgICAgICAgIC8vIC88c2lnbmF0dXJlIGhlbHBLZXl3b3JkPVwiJC5mbi5kYXRldGltZXBpY2tlci5lbmFibGVkSG91cnNcIj5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5SZXR1cm5zIGFuIGFycmF5IHdpdGggdGhlIGN1cnJlbnRseSBzZXQgZW5hYmxlZCBob3VycyBvbiB0aGUgY29tcG9uZW50Ljwvc3VtbWFyeT5cbiAgICAgICAgICAgIC8vIC88cmV0dXJucyB0eXBlPVwiYXJyYXlcIj5vcHRpb25zLmVuYWJsZWRIb3VyczwvcmV0dXJucz5cbiAgICAgICAgICAgIC8vIC88L3NpZ25hdHVyZT5cbiAgICAgICAgICAgIC8vIC88c2lnbmF0dXJlPlxuICAgICAgICAgICAgLy8gLzxzdW1tYXJ5PlNldHRpbmcgdGhpcyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgb3B0aW9ucy5taW5EYXRlLCBvcHRpb25zLm1heERhdGUgY29uZmlndXJhdGlvbi4gQWxzbyBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gcmVtb3ZlcyB0aGUgY29uZmlndXJhdGlvbiBvZiBvcHRpb25zLmRpc2FibGVkSG91cnMgaWYgc3VjaCBleGlzdC48L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHBhcmFtIG5hbWU9XCJob3Vyc1wiIGxvY2lkPVwiJC5mbi5kYXRldGltZXBpY2tlci5lbmFibGVkSG91cnNfcDpob3Vyc1wiPlRha2VzIGFuIFsgaW50IF0gb2YgdmFsdWVzIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gc2VsZWN0IG9ubHkgZnJvbSB0aG9zZSBob3Vycy48L3BhcmFtPlxuICAgICAgICAgICAgLy8gLzwvc2lnbmF0dXJlPlxuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKG9wdGlvbnMuZW5hYmxlZEhvdXJzID8gJC5leHRlbmQoe30sIG9wdGlvbnMuZW5hYmxlZEhvdXJzKSA6IG9wdGlvbnMuZW5hYmxlZEhvdXJzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFob3Vycykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZW5hYmxlZEhvdXJzID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghKGhvdXJzIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZW5hYmxlZEhvdXJzKCkgZXhwZWN0cyBhbiBhcnJheSBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMuZW5hYmxlZEhvdXJzID0gaW5kZXhHaXZlbkhvdXJzKGhvdXJzKTtcbiAgICAgICAgICAgIG9wdGlvbnMuZGlzYWJsZWRIb3VycyA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMudXNlQ3VycmVudCAmJiAhb3B0aW9ucy5rZWVwSW52YWxpZCkge1xuICAgICAgICAgICAgICAgIHZhciB0cmllcyA9IDA7XG4gICAgICAgICAgICAgICAgd2hpbGUgKCFpc1ZhbGlkKGRhdGUsICdoJykpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZS5hZGQoMSwgJ2gnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRyaWVzID09PSAyNCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUcmllZCAyNCB0aW1lcyB0byBmaW5kIGEgdmFsaWQgZGF0ZScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRyaWVzKys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFZhbHVlKGRhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogUmV0dXJucyB0aGUgY29tcG9uZW50J3MgbW9kZWwgY3VycmVudCB2aWV3RGF0ZSwgYSBtb21lbnQgb2JqZWN0IG9yIG51bGwgaWYgbm90IHNldC4gUGFzc2luZyBhIG51bGwgdmFsdWUgdW5zZXRzIHRoZSBjb21wb25lbnRzIG1vZGVsIGN1cnJlbnQgbW9tZW50LiBQYXJzaW5nIG9mIHRoZSBuZXdEYXRlIHBhcmFtZXRlciBpcyBtYWRlIHVzaW5nIG1vbWVudCBsaWJyYXJ5IHdpdGggdGhlIG9wdGlvbnMuZm9ybWF0IGFuZCBvcHRpb25zLnVzZVN0cmljdCBjb21wb25lbnRzIGNvbmZpZ3VyYXRpb24uXG4gICAgICAgICAqIEBwYXJhbSB7VGFrZXMgc3RyaW5nLCB2aWV3RGF0ZSwgbW9tZW50LCBudWxsIHBhcmFtZXRlci59IG5ld0RhdGVcbiAgICAgICAgICogQHJldHVybnMge3ZpZXdEYXRlLmNsb25lKCl9XG4gICAgICAgICAqL1xuICAgICAgICBwaWNrZXIudmlld0RhdGUgPSBmdW5jdGlvbihuZXdEYXRlKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2aWV3RGF0ZS5jbG9uZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIW5ld0RhdGUpIHtcbiAgICAgICAgICAgICAgICB2aWV3RGF0ZSA9IGRhdGUuY2xvbmUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIG5ld0RhdGUgIT09ICdzdHJpbmcnICYmICFtb21lbnQuaXNNb21lbnQobmV3RGF0ZSkgJiYgIShuZXdEYXRlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2aWV3RGF0ZSgpIHBhcmFtZXRlciBtdXN0IGJlIG9uZSBvZiBbc3RyaW5nLCBtb21lbnQgb3IgRGF0ZV0nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmlld0RhdGUgPSBwYXJzZUlucHV0RGF0ZShuZXdEYXRlKTtcbiAgICAgICAgICAgIHZpZXdVcGRhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gaW5pdGlhbGl6aW5nIGVsZW1lbnQgYW5kIGNvbXBvbmVudCBhdHRyaWJ1dGVzXG4gICAgICAgIGlmIChlbGVtZW50LmlzKCdpbnB1dCcpKSB7XG4gICAgICAgICAgICBpbnB1dCA9IGVsZW1lbnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbnB1dCA9IGVsZW1lbnQuZmluZChvcHRpb25zLmRhdGVwaWNrZXJJbnB1dCk7XG4gICAgICAgICAgICBpZiAoaW5wdXQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQgPSBlbGVtZW50LmZpbmQoJ2lucHV0Jyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFpbnB1dC5pcygnaW5wdXQnKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ1NTIGNsYXNzIFwiJyArIG9wdGlvbnMuZGF0ZXBpY2tlcklucHV0ICsgJ1wiIGNhbm5vdCBiZSBhcHBsaWVkIHRvIG5vbiBpbnB1dCBlbGVtZW50Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZWxlbWVudC5oYXNDbGFzcygnaW5wdXQtZ3JvdXAnKSkge1xuICAgICAgICAgICAgLy8gaW4gY2FzZSB0aGVyZSBpcyBtb3JlIHRoZW4gb25lICdpbnB1dC1ncm91cC1hZGRvbicgSXNzdWUgIzQ4XG4gICAgICAgICAgICBpZiAoZWxlbWVudC5maW5kKCcuZGF0ZXBpY2tlcmJ1dHRvbicpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudCA9IGVsZW1lbnQuZmluZCgnLmlucHV0LWdyb3VwLWFkZG9uJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudCA9IGVsZW1lbnQuZmluZCgnLmRhdGVwaWNrZXJidXR0b24nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghb3B0aW9ucy5pbmxpbmUgJiYgIWlucHV0LmlzKCdpbnB1dCcpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBpbml0aWFsaXplIERhdGVUaW1lUGlja2VyIHdpdGhvdXQgYW4gaW5wdXQgZWxlbWVudCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IGRlZmF1bHRzIGZvciBkYXRlIGhlcmUgbm93IGluc3RlYWQgb2YgaW4gdmFyIGRlY2xhcmF0aW9uXG4gICAgICAgIGRhdGUgPSBnZXRNb21lbnQoKTtcbiAgICAgICAgdmlld0RhdGUgPSBkYXRlLmNsb25lKCk7XG5cbiAgICAgICAgJC5leHRlbmQodHJ1ZSwgb3B0aW9ucywgZGF0YVRvT3B0aW9ucygpKTtcblxuICAgICAgICBwaWNrZXIub3B0aW9ucyhvcHRpb25zKTtcblxuICAgICAgICBpbml0Rm9ybWF0dGluZygpO1xuXG4gICAgICAgIGF0dGFjaERhdGVQaWNrZXJFbGVtZW50RXZlbnRzKCk7XG5cbiAgICAgICAgaWYgKGlucHV0LnByb3AoJ2Rpc2FibGVkJykpIHtcbiAgICAgICAgICAgIHBpY2tlci5kaXNhYmxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlucHV0LmlzKCdpbnB1dCcpICYmIGlucHV0LnZhbCgpLnRyaW0oKS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgIHNldFZhbHVlKHBhcnNlSW5wdXREYXRlKGlucHV0LnZhbCgpLnRyaW0oKSkpO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZGVmYXVsdERhdGUgJiYgaW5wdXQuYXR0cigncGxhY2Vob2xkZXInKSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzZXRWYWx1ZShvcHRpb25zLmRlZmF1bHREYXRlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgIHNob3coKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgIH07XG5cbiAgICAvKiogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBqUXVlcnkgcGx1Z2luIGNvbnN0cnVjdG9yIGFuZCBkZWZhdWx0cyBvYmplY3RcbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIC8qKlxuICAgICAqIFNlZSAoaHR0cDovL2pxdWVyeS5jb20vKS5cbiAgICAgKiBAbmFtZSBqUXVlcnlcbiAgICAgKiBAY2xhc3NcbiAgICAgKiBTZWUgdGhlIGpRdWVyeSBMaWJyYXJ5ICAoaHR0cDovL2pxdWVyeS5jb20vKSBmb3IgZnVsbCBkZXRhaWxzLiAgVGhpcyBqdXN0XG4gICAgICogZG9jdW1lbnRzIHRoZSBmdW5jdGlvbiBhbmQgY2xhc3NlcyB0aGF0IGFyZSBhZGRlZCB0byBqUXVlcnkgYnkgdGhpcyBwbHVnLWluLlxuICAgICAqL1xuICAgIC8qKlxuICAgICAqIFNlZSAoaHR0cDovL2pxdWVyeS5jb20vKVxuICAgICAqIEBuYW1lIGZuXG4gICAgICogQGNsYXNzXG4gICAgICogU2VlIHRoZSBqUXVlcnkgTGlicmFyeSAgKGh0dHA6Ly9qcXVlcnkuY29tLykgZm9yIGZ1bGwgZGV0YWlscy4gIFRoaXMganVzdFxuICAgICAqIGRvY3VtZW50cyB0aGUgZnVuY3Rpb24gYW5kIGNsYXNzZXMgdGhhdCBhcmUgYWRkZWQgdG8galF1ZXJ5IGJ5IHRoaXMgcGx1Zy1pbi5cbiAgICAgKiBAbWVtYmVyT2YgalF1ZXJ5XG4gICAgICovXG4gICAgLyoqXG4gICAgICogU2hvdyBjb21tZW50c1xuICAgICAqIEBjbGFzcyBkYXRldGltZXBpY2tlclxuICAgICAqIEBtZW1iZXJPZiBqUXVlcnkuZm5cbiAgICAgKi9cbiAgICAkLmZuLmRhdGV0aW1lcGlja2VyID0gZnVuY3Rpb24ob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICAgIHZhciBpc0luc3RhbmNlID0gdHJ1ZTtcbiAgICAgICAgdmFyIHRoaXNNZXRob2RzID0gWydkZXN0cm95JywgJ2hpZGUnLCAnc2hvdycsICd0b2dnbGUnXTtcbiAgICAgICAgdmFyIHJldHVyblZhbHVlO1xuXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICB2YXIgX29wdGlvbnM7XG4gICAgICAgICAgICAgICAgaWYgKCEkdGhpcy5kYXRhKCdEYXRlVGltZVBpY2tlcicpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHByaXZhdGUgY29weSBvZiB0aGUgZGVmYXVsdHMgb2JqZWN0XG4gICAgICAgICAgICAgICAgICAgIF9vcHRpb25zID0gJC5leHRlbmQodHJ1ZSwge30sICQuZm4uZGF0ZXRpbWVwaWNrZXIuZGVmYXVsdHMsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICAkdGhpcy5kYXRhKCdEYXRlVGltZVBpY2tlcicsIGRhdGVUaW1lUGlja2VyKCR0aGlzLCBfb3B0aW9ucykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gJHRoaXMuZGF0YSgnRGF0ZVRpbWVQaWNrZXInKTtcbiAgICAgICAgICAgICAgICBpZiAoIWluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYm9vdHN0cmFwLWRhdGV0aW1lcGlja2VyKFwiJyArIG9wdGlvbnMgKyAnXCIpIG1ldGhvZCB3YXMgY2FsbGVkIG9uIGFuIGVsZW1lbnQgdGhhdCBpcyBub3QgdXNpbmcgRGF0ZVRpbWVQaWNrZXInKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IGluc3RhbmNlW29wdGlvbnNdLmFwcGx5KGluc3RhbmNlLCBhcmdzKTtcbiAgICAgICAgICAgICAgICBpc0luc3RhbmNlID0gcmV0dXJuVmFsdWUgPT09IGluc3RhbmNlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChpc0luc3RhbmNlIHx8ICQuaW5BcnJheShvcHRpb25zLCB0aGlzTWV0aG9kcykgPiAtMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGFyZ3VtZW50cyBmb3IgRGF0ZVRpbWVQaWNrZXI6ICcgKyBvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgJC5mbi5kYXRldGltZXBpY2tlci5kZWZhdWx0cyA9IHtcbiAgICAgICAgdGltZVpvbmU6ICcnLFxuICAgICAgICBmb3JtYXQ6IGZhbHNlLFxuICAgICAgICBkYXlWaWV3SGVhZGVyRm9ybWF0OiAnTU1NTSBZWVlZJyxcbiAgICAgICAgZXh0cmFGb3JtYXRzOiBmYWxzZSxcbiAgICAgICAgc3RlcHBpbmc6IDEsXG4gICAgICAgIG1pbkRhdGU6IGZhbHNlLFxuICAgICAgICBtYXhEYXRlOiBmYWxzZSxcbiAgICAgICAgdXNlQ3VycmVudDogdHJ1ZSxcbiAgICAgICAgY29sbGFwc2U6IHRydWUsXG4gICAgICAgIGxvY2FsZTogbW9tZW50LmxvY2FsZSgpLFxuICAgICAgICBkZWZhdWx0RGF0ZTogZmFsc2UsXG4gICAgICAgIGRpc2FibGVkRGF0ZXM6IGZhbHNlLFxuICAgICAgICBlbmFibGVkRGF0ZXM6IGZhbHNlLFxuICAgICAgICBpY29uczoge1xuICAgICAgICAgICAgdGltZTogJ2dseXBoaWNvbiBnbHlwaGljb24tdGltZScsXG4gICAgICAgICAgICBkYXRlOiAnZ2x5cGhpY29uIGdseXBoaWNvbi1jYWxlbmRhcicsXG4gICAgICAgICAgICB1cDogJ2dseXBoaWNvbiBnbHlwaGljb24tY2hldnJvbi11cCcsXG4gICAgICAgICAgICBkb3duOiAnZ2x5cGhpY29uIGdseXBoaWNvbi1jaGV2cm9uLWRvd24nLFxuICAgICAgICAgICAgcHJldmlvdXM6ICdnbHlwaGljb24gZ2x5cGhpY29uLWNoZXZyb24tbGVmdCcsXG4gICAgICAgICAgICBuZXh0OiAnZ2x5cGhpY29uIGdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0JyxcbiAgICAgICAgICAgIHRvZGF5OiAnZ2x5cGhpY29uIGdseXBoaWNvbi1zY3JlZW5zaG90JyxcbiAgICAgICAgICAgIGNsZWFyOiAnZ2x5cGhpY29uIGdseXBoaWNvbi10cmFzaCcsXG4gICAgICAgICAgICBjbG9zZTogJ2dseXBoaWNvbiBnbHlwaGljb24tcmVtb3ZlJ1xuICAgICAgICB9LFxuICAgICAgICB0b29sdGlwczoge1xuICAgICAgICAgICAgdG9kYXk6ICdHbyB0byB0b2RheScsXG4gICAgICAgICAgICBjbGVhcjogJ0NsZWFyIHNlbGVjdGlvbicsXG4gICAgICAgICAgICBjbG9zZTogJ0Nsb3NlIHRoZSBwaWNrZXInLFxuICAgICAgICAgICAgc2VsZWN0TW9udGg6ICdTZWxlY3QgTW9udGgnLFxuICAgICAgICAgICAgcHJldk1vbnRoOiAnUHJldmlvdXMgTW9udGgnLFxuICAgICAgICAgICAgbmV4dE1vbnRoOiAnTmV4dCBNb250aCcsXG4gICAgICAgICAgICBzZWxlY3RZZWFyOiAnU2VsZWN0IFllYXInLFxuICAgICAgICAgICAgcHJldlllYXI6ICdQcmV2aW91cyBZZWFyJyxcbiAgICAgICAgICAgIG5leHRZZWFyOiAnTmV4dCBZZWFyJyxcbiAgICAgICAgICAgIHNlbGVjdERlY2FkZTogJ1NlbGVjdCBEZWNhZGUnLFxuICAgICAgICAgICAgcHJldkRlY2FkZTogJ1ByZXZpb3VzIERlY2FkZScsXG4gICAgICAgICAgICBuZXh0RGVjYWRlOiAnTmV4dCBEZWNhZGUnLFxuICAgICAgICAgICAgcHJldkNlbnR1cnk6ICdQcmV2aW91cyBDZW50dXJ5JyxcbiAgICAgICAgICAgIG5leHRDZW50dXJ5OiAnTmV4dCBDZW50dXJ5JyxcbiAgICAgICAgICAgIHBpY2tIb3VyOiAnUGljayBIb3VyJyxcbiAgICAgICAgICAgIGluY3JlbWVudEhvdXI6ICdJbmNyZW1lbnQgSG91cicsXG4gICAgICAgICAgICBkZWNyZW1lbnRIb3VyOiAnRGVjcmVtZW50IEhvdXInLFxuICAgICAgICAgICAgcGlja01pbnV0ZTogJ1BpY2sgTWludXRlJyxcbiAgICAgICAgICAgIGluY3JlbWVudE1pbnV0ZTogJ0luY3JlbWVudCBNaW51dGUnLFxuICAgICAgICAgICAgZGVjcmVtZW50TWludXRlOiAnRGVjcmVtZW50IE1pbnV0ZScsXG4gICAgICAgICAgICBwaWNrU2Vjb25kOiAnUGljayBTZWNvbmQnLFxuICAgICAgICAgICAgaW5jcmVtZW50U2Vjb25kOiAnSW5jcmVtZW50IFNlY29uZCcsXG4gICAgICAgICAgICBkZWNyZW1lbnRTZWNvbmQ6ICdEZWNyZW1lbnQgU2Vjb25kJyxcbiAgICAgICAgICAgIHRvZ2dsZVBlcmlvZDogJ1RvZ2dsZSBQZXJpb2QnLFxuICAgICAgICAgICAgc2VsZWN0VGltZTogJ1NlbGVjdCBUaW1lJ1xuICAgICAgICB9LFxuICAgICAgICB1c2VTdHJpY3Q6IGZhbHNlLFxuICAgICAgICBzaWRlQnlTaWRlOiBmYWxzZSxcbiAgICAgICAgZGF5c09mV2Vla0Rpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgY2FsZW5kYXJXZWVrczogZmFsc2UsXG4gICAgICAgIHZpZXdNb2RlOiAnZGF5cycsXG4gICAgICAgIHRvb2xiYXJQbGFjZW1lbnQ6ICdkZWZhdWx0JyxcbiAgICAgICAgc2hvd1RvZGF5QnV0dG9uOiBmYWxzZSxcbiAgICAgICAgc2hvd0NsZWFyOiBmYWxzZSxcbiAgICAgICAgc2hvd0Nsb3NlOiBmYWxzZSxcbiAgICAgICAgd2lkZ2V0UG9zaXRpb25pbmc6IHtcbiAgICAgICAgICAgIGhvcml6b250YWw6ICdhdXRvJyxcbiAgICAgICAgICAgIHZlcnRpY2FsOiAnYXV0bydcbiAgICAgICAgfSxcbiAgICAgICAgd2lkZ2V0UGFyZW50OiBudWxsLFxuICAgICAgICBpZ25vcmVSZWFkb25seTogZmFsc2UsXG4gICAgICAgIGtlZXBPcGVuOiBmYWxzZSxcbiAgICAgICAgZm9jdXNPblNob3c6IHRydWUsXG4gICAgICAgIGlubGluZTogZmFsc2UsXG4gICAgICAgIGtlZXBJbnZhbGlkOiBmYWxzZSxcbiAgICAgICAgZGF0ZXBpY2tlcklucHV0OiAnLmRhdGVwaWNrZXJpbnB1dCcsXG4gICAgICAgIGtleUJpbmRzOiB7XG4gICAgICAgICAgICB1cDogZnVuY3Rpb24od2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgZCA9IHRoaXMuZGF0ZSgpIHx8IHRoaXMuZ2V0TW9tZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKHdpZGdldC5maW5kKCcuZGF0ZXBpY2tlcicpLmlzKCc6dmlzaWJsZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZShkLmNsb25lKCkuc3VidHJhY3QoNywgJ2QnKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKGQuY2xvbmUoKS5hZGQodGhpcy5zdGVwcGluZygpLCAnbScpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZG93bjogZnVuY3Rpb24od2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIGQgPSB0aGlzLmRhdGUoKSB8fCB0aGlzLmdldE1vbWVudCgpO1xuICAgICAgICAgICAgICAgIGlmICh3aWRnZXQuZmluZCgnLmRhdGVwaWNrZXInKS5pcygnOnZpc2libGUnKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGUoZC5jbG9uZSgpLmFkZCg3LCAnZCcpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGUoZC5jbG9uZSgpLnN1YnRyYWN0KHRoaXMuc3RlcHBpbmcoKSwgJ20nKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdjb250cm9sIHVwJzogZnVuY3Rpb24od2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgZCA9IHRoaXMuZGF0ZSgpIHx8IHRoaXMuZ2V0TW9tZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKHdpZGdldC5maW5kKCcuZGF0ZXBpY2tlcicpLmlzKCc6dmlzaWJsZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZShkLmNsb25lKCkuc3VidHJhY3QoMSwgJ3knKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKGQuY2xvbmUoKS5hZGQoMSwgJ2gnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdjb250cm9sIGRvd24nOiBmdW5jdGlvbih3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXdpZGdldCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBkID0gdGhpcy5kYXRlKCkgfHwgdGhpcy5nZXRNb21lbnQoKTtcbiAgICAgICAgICAgICAgICBpZiAod2lkZ2V0LmZpbmQoJy5kYXRlcGlja2VyJykuaXMoJzp2aXNpYmxlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKGQuY2xvbmUoKS5hZGQoMSwgJ3knKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKGQuY2xvbmUoKS5zdWJ0cmFjdCgxLCAnaCcpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGVmdDogZnVuY3Rpb24od2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgZCA9IHRoaXMuZGF0ZSgpIHx8IHRoaXMuZ2V0TW9tZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKHdpZGdldC5maW5kKCcuZGF0ZXBpY2tlcicpLmlzKCc6dmlzaWJsZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZShkLmNsb25lKCkuc3VidHJhY3QoMSwgJ2QnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJpZ2h0OiBmdW5jdGlvbih3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXdpZGdldCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBkID0gdGhpcy5kYXRlKCkgfHwgdGhpcy5nZXRNb21lbnQoKTtcbiAgICAgICAgICAgICAgICBpZiAod2lkZ2V0LmZpbmQoJy5kYXRlcGlja2VyJykuaXMoJzp2aXNpYmxlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKGQuY2xvbmUoKS5hZGQoMSwgJ2QnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhZ2VVcDogZnVuY3Rpb24od2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgZCA9IHRoaXMuZGF0ZSgpIHx8IHRoaXMuZ2V0TW9tZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKHdpZGdldC5maW5kKCcuZGF0ZXBpY2tlcicpLmlzKCc6dmlzaWJsZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZShkLmNsb25lKCkuc3VidHJhY3QoMSwgJ00nKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhZ2VEb3duOiBmdW5jdGlvbih3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXdpZGdldCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBkID0gdGhpcy5kYXRlKCkgfHwgdGhpcy5nZXRNb21lbnQoKTtcbiAgICAgICAgICAgICAgICBpZiAod2lkZ2V0LmZpbmQoJy5kYXRlcGlja2VyJykuaXMoJzp2aXNpYmxlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKGQuY2xvbmUoKS5hZGQoMSwgJ00nKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVudGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlc2NhcGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIHRhYjogZnVuY3Rpb24gKHdpZGdldCkgeyAvL3RoaXMgYnJlYWsgdGhlIGZsb3cgb2YgdGhlIGZvcm0uIGRpc2FibGluZyBmb3Igbm93XG4gICAgICAgICAgICAvLyAgICB2YXIgdG9nZ2xlID0gd2lkZ2V0LmZpbmQoJy5waWNrZXItc3dpdGNoIGFbZGF0YS1hY3Rpb249XCJ0b2dnbGVQaWNrZXJcIl0nKTtcbiAgICAgICAgICAgIC8vICAgIGlmKHRvZ2dsZS5sZW5ndGggPiAwKSB0b2dnbGUuY2xpY2soKTtcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAnY29udHJvbCBzcGFjZSc6IGZ1bmN0aW9uKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGlmICghd2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHdpZGdldC5maW5kKCcudGltZXBpY2tlcicpLmlzKCc6dmlzaWJsZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZGdldC5maW5kKCcuYnRuW2RhdGEtYWN0aW9uPVwidG9nZ2xlUGVyaW9kXCJdJykuY2xpY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlKHRoaXMuZ2V0TW9tZW50KCkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdkZWxldGUnOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGRlYnVnOiBmYWxzZSxcbiAgICAgICAgYWxsb3dJbnB1dFRvZ2dsZTogZmFsc2UsXG4gICAgICAgIGRpc2FibGVkVGltZUludGVydmFsczogZmFsc2UsXG4gICAgICAgIGRpc2FibGVkSG91cnM6IGZhbHNlLFxuICAgICAgICBlbmFibGVkSG91cnM6IGZhbHNlLFxuICAgICAgICB2aWV3RGF0ZTogZmFsc2VcbiAgICB9O1xuXG4gICAgcmV0dXJuICQuZm4uZGF0ZXRpbWVwaWNrZXI7XG59KSk7XG4iXSwibmFtZXMiOlsiZmFjdG9yeSIsImRlZmluZSIsImFtZCIsImV4cG9ydHMiLCJfdHlwZW9mIiwibW9kdWxlIiwicmVxdWlyZSIsImpRdWVyeSIsIkVycm9yIiwibW9tZW50IiwiJCIsImRhdGVUaW1lUGlja2VyIiwiZWxlbWVudCIsIm9wdGlvbnMiLCJwaWNrZXIiLCJkYXRlIiwidmlld0RhdGUiLCJ1bnNldCIsImlucHV0IiwiY29tcG9uZW50Iiwid2lkZ2V0IiwidXNlMjRIb3VycyIsIm1pblZpZXdNb2RlTnVtYmVyIiwiYWN0dWFsRm9ybWF0IiwicGFyc2VGb3JtYXRzIiwiY3VycmVudFZpZXdNb2RlIiwiZGF0ZVBpY2tlck1vZGVzIiwiY2xzTmFtZSIsIm5hdkZuYyIsIm5hdlN0ZXAiLCJ2aWV3TW9kZXMiLCJ2ZXJ0aWNhbE1vZGVzIiwiaG9yaXpvbnRhbE1vZGVzIiwidG9vbGJhclBsYWNlbWVudHMiLCJrZXlNYXAiLCJrZXlTdGF0ZSIsImhhc1RpbWVab25lIiwidHoiLCJ1bmRlZmluZWQiLCJ0aW1lWm9uZSIsImdldE1vbWVudCIsImQiLCJyZXR1cm5Nb21lbnQiLCJpc0RhdGUiLCJpc01vbWVudCIsInVzZVN0cmljdCIsImlzRW5hYmxlZCIsImdyYW51bGFyaXR5IiwibGVuZ3RoIiwiVHlwZUVycm9yIiwiaW5kZXhPZiIsInRvTG93ZXJDYXNlIiwiaGFzVGltZSIsImhhc0RhdGUiLCJnZXREYXRlUGlja2VyVGVtcGxhdGUiLCJoZWFkVGVtcGxhdGUiLCJhcHBlbmQiLCJhZGRDbGFzcyIsImF0dHIiLCJpY29ucyIsInByZXZpb3VzIiwiY2FsZW5kYXJXZWVrcyIsIm5leHQiLCJjb250VGVtcGxhdGUiLCJjbG9uZSIsImdldFRpbWVQaWNrZXJNYWluVGVtcGxhdGUiLCJ0b3BSb3ciLCJtaWRkbGVSb3ciLCJib3R0b21Sb3ciLCJocmVmIiwidGFiaW5kZXgiLCJ0b29sdGlwcyIsImluY3JlbWVudEhvdXIiLCJ1cCIsInBpY2tIb3VyIiwiZGVjcmVtZW50SG91ciIsImRvd24iLCJodG1sIiwiaW5jcmVtZW50TWludXRlIiwicGlja01pbnV0ZSIsImRlY3JlbWVudE1pbnV0ZSIsImluY3JlbWVudFNlY29uZCIsInBpY2tTZWNvbmQiLCJkZWNyZW1lbnRTZWNvbmQiLCJ0b2dnbGVQZXJpb2QiLCJnZXRUaW1lUGlja2VyVGVtcGxhdGUiLCJob3Vyc1ZpZXciLCJtaW51dGVzVmlldyIsInNlY29uZHNWaWV3IiwicmV0IiwicHVzaCIsImdldFRvb2xiYXIiLCJyb3ciLCJzaG93VG9kYXlCdXR0b24iLCJ0b2RheSIsInNpZGVCeVNpZGUiLCJzZWxlY3RUaW1lIiwidGltZSIsInNob3dDbGVhciIsImNsZWFyIiwic2hvd0Nsb3NlIiwiY2xvc2UiLCJnZXRUZW1wbGF0ZSIsInRlbXBsYXRlIiwiZGF0ZVZpZXciLCJ0aW1lVmlldyIsImNvbnRlbnQiLCJ0b29sYmFyIiwiY29sbGFwc2UiLCJpbmxpbmUiLCJyZW1vdmVDbGFzcyIsInRvb2xiYXJQbGFjZW1lbnQiLCJkYXRhVG9PcHRpb25zIiwiZURhdGEiLCJkYXRhT3B0aW9ucyIsImlzIiwiZGF0YSIsImZpbmQiLCJkYXRlT3B0aW9ucyIsIk9iamVjdCIsImV4dGVuZCIsImVhY2giLCJrZXkiLCJhdHRyaWJ1dGVOYW1lIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsInBsYWNlIiwicG9zaXRpb24iLCJvZmZzZXQiLCJ2ZXJ0aWNhbCIsIndpZGdldFBvc2l0aW9uaW5nIiwiaG9yaXpvbnRhbCIsInBhcmVudCIsIndpZGdldFBhcmVudCIsImFmdGVyIiwiY2hpbGRyZW4iLCJmaXJzdCIsInRvcCIsImhlaWdodCIsIndpbmRvdyIsInNjcm9sbFRvcCIsIm91dGVySGVpZ2h0Iiwid2lkdGgiLCJsZWZ0Iiwib3V0ZXJXaWR0aCIsImNzcyIsInBhcmVudHMiLCJmaWx0ZXIiLCJib3R0b20iLCJyaWdodCIsIm5vdGlmeUV2ZW50IiwiZSIsInR5cGUiLCJpc1NhbWUiLCJvbGREYXRlIiwidHJpZ2dlciIsInZpZXdVcGRhdGUiLCJjaGFuZ2UiLCJzaG93TW9kZSIsImRpciIsIk1hdGgiLCJtYXgiLCJtaW4iLCJoaWRlIiwic2hvdyIsImZpbGxEb3ciLCJjdXJyZW50RGF0ZSIsInN0YXJ0T2YiLCJ0ZXh0IiwiaXNCZWZvcmUiLCJlbmRPZiIsImZvcm1hdCIsImFkZCIsImlzSW5EaXNhYmxlZERhdGVzIiwidGVzdERhdGUiLCJkaXNhYmxlZERhdGVzIiwiaXNJbkVuYWJsZWREYXRlcyIsImVuYWJsZWREYXRlcyIsImlzSW5EaXNhYmxlZEhvdXJzIiwiZGlzYWJsZWRIb3VycyIsImlzSW5FbmFibGVkSG91cnMiLCJlbmFibGVkSG91cnMiLCJpc1ZhbGlkIiwidGFyZ2V0TW9tZW50IiwibWluRGF0ZSIsIm1heERhdGUiLCJpc0FmdGVyIiwiZGF5c09mV2Vla0Rpc2FibGVkIiwiZGF5IiwiZGlzYWJsZWRUaW1lSW50ZXJ2YWxzIiwiZm91bmQiLCJpc0JldHdlZW4iLCJmaWxsTW9udGhzIiwic3BhbnMiLCJtb250aHNTaG9ydCIsImVtcHR5IiwidXBkYXRlTW9udGhzIiwibW9udGhzVmlldyIsIm1vbnRoc1ZpZXdIZWFkZXIiLCJtb250aHMiLCJlcSIsInByZXZZZWFyIiwic2VsZWN0WWVhciIsIm5leHRZZWFyIiwic3VidHJhY3QiLCJ5ZWFyIiwibW9udGgiLCJpbmRleCIsInVwZGF0ZVllYXJzIiwieWVhcnNWaWV3IiwieWVhcnNWaWV3SGVhZGVyIiwic3RhcnRZZWFyIiwiZW5kWWVhciIsInByZXZEZWNhZGUiLCJzZWxlY3REZWNhZGUiLCJuZXh0RGVjYWRlIiwidXBkYXRlRGVjYWRlcyIsImRlY2FkZXNWaWV3IiwiZGVjYWRlc1ZpZXdIZWFkZXIiLCJzdGFydERlY2FkZSIsInkiLCJlbmREZWNhZGUiLCJzdGFydGVkQXQiLCJtaW5EYXRlRGVjYWRlIiwibWF4RGF0ZURlY2FkZSIsImVuZERlY2FkZVllYXIiLCJwcmV2Q2VudHVyeSIsIm5leHRDZW50dXJ5IiwiZmlsbERhdGUiLCJkYXlzVmlldyIsImRheXNWaWV3SGVhZGVyIiwiY2xzTmFtZXMiLCJpIiwicHJldk1vbnRoIiwic2VsZWN0TW9udGgiLCJuZXh0TW9udGgiLCJkYXlWaWV3SGVhZGVyRm9ybWF0Iiwid2Vla2RheSIsIndlZWsiLCJjbGFzc05hbWVzIiwiam9pbiIsImZpbGxIb3VycyIsInRhYmxlIiwiY3VycmVudEhvdXIiLCJob3VyIiwiZmlsbE1pbnV0ZXMiLCJjdXJyZW50TWludXRlIiwic3RlcCIsInN0ZXBwaW5nIiwibWludXRlIiwiZmlsbFNlY29uZHMiLCJjdXJyZW50U2Vjb25kIiwic2Vjb25kIiwiZmlsbFRpbWUiLCJ0b2dnbGUiLCJuZXdEYXRlIiwidGltZUNvbXBvbmVudHMiLCJob3VycyIsInVwZGF0ZSIsInNldFZhbHVlIiwidmFsIiwibG9jYWxlIiwibWludXRlcyIsInJvdW5kIiwic2Vjb25kcyIsImtlZXBJbnZhbGlkIiwidHJhbnNpdGlvbmluZyIsImNvbGxhcHNlRGF0YSIsImhhc0NsYXNzIiwidG9nZ2xlQ2xhc3MiLCJvZmYiLCJyZW1vdmUiLCJibHVyIiwicGFyc2VJbnB1dERhdGUiLCJpbnB1dERhdGUiLCJEYXRlIiwiYWN0aW9ucyIsInBpY2tlclN3aXRjaCIsInRhcmdldCIsImNsb3Nlc3QiLCJwYXJzZUludCIsInNlbGVjdERheSIsImtlZXBPcGVuIiwiaW5jcmVtZW50SG91cnMiLCJpbmNyZW1lbnRNaW51dGVzIiwiaW5jcmVtZW50U2Vjb25kcyIsImRlY3JlbWVudEhvdXJzIiwiZGVjcmVtZW50TWludXRlcyIsImRlY3JlbWVudFNlY29uZHMiLCJ0b2dnbGVQaWNrZXIiLCIkdGhpcyIsIiRwYXJlbnQiLCJleHBhbmRlZCIsImNsb3NlZCIsInNob3dQaWNrZXIiLCJzaG93SG91cnMiLCJzaG93TWludXRlcyIsInNob3dTZWNvbmRzIiwic2VsZWN0SG91ciIsImNhbGwiLCJzZWxlY3RNaW51dGUiLCJzZWxlY3RTZWNvbmQiLCJ0b2RheXNEYXRlIiwiZG9BY3Rpb24iLCJjdXJyZW50VGFyZ2V0IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJjdXJyZW50TW9tZW50IiwidXNlQ3VycmVudEdyYW51bGFyaXR5IiwibSIsInByb3AiLCJpZ25vcmVSZWFkb25seSIsInRyaW0iLCJ1c2VDdXJyZW50Iiwib24iLCJmb2N1c09uU2hvdyIsImZvY3VzIiwia2V5ZG93biIsImhhbmRsZXIiLCJpbmRleDIiLCJwcmVzc2VkS2V5cyIsInByZXNzZWRNb2RpZmllcnMiLCJjdXJyZW50S2V5Iiwid2hpY2giLCJrZXlCaW5kS2V5cyIsImFsbE1vZGlmaWVyc1ByZXNzZWQiLCJwcmVzc2VkIiwiaGFzT3duUHJvcGVydHkiLCJrZXlCaW5kcyIsInNwbGl0Iiwic3RvcFByb3BhZ2F0aW9uIiwicHJldmVudERlZmF1bHQiLCJrZXl1cCIsInBhcnNlZERhdGUiLCJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLCJhdHRhY2hEYXRlUGlja2VyRWxlbWVudEV2ZW50cyIsImRlYnVnIiwiYWxsb3dJbnB1dFRvZ2dsZSIsImRldGFjaERhdGVQaWNrZXJFbGVtZW50RXZlbnRzIiwiaW5kZXhHaXZlbkRhdGVzIiwiZ2l2ZW5EYXRlc0FycmF5IiwiZ2l2ZW5EYXRlc0luZGV4ZWQiLCJkRGF0ZSIsImtleXMiLCJpbmRleEdpdmVuSG91cnMiLCJnaXZlbkhvdXJzQXJyYXkiLCJnaXZlbkhvdXJzSW5kZXhlZCIsImluaXRGb3JtYXR0aW5nIiwicmVwbGFjZSIsImZvcm1hdElucHV0IiwibmV3aW5wdXQiLCJsb2NhbGVEYXRhIiwibG9uZ0RhdGVGb3JtYXQiLCJmb3JtYXRJbnB1dDIiLCJleHRyYUZvcm1hdHMiLCJkZXN0cm95IiwicmVtb3ZlRGF0YSIsImRpc2FibGUiLCJlbmFibGUiLCJuZXdPcHRpb25zIiwidmFsdWUiLCJuZXdGb3JtYXQiLCJuZXdab25lIiwiZm9ybWF0cyIsIkFycmF5IiwiZGF0ZXMiLCJzcGxpY2UiLCJyZWR1Y2UiLCJwcmV2aW91c1ZhbHVlIiwiY3VycmVudFZhbHVlIiwiaXNOYU4iLCJzb3J0IiwidHJpZXMiLCJkZWZhdWx0RGF0ZSIsInVzZUN1cnJlbnRPcHRpb25zIiwidmlld01vZGUiLCJ0b1N0cmluZyIsImRhdGVwaWNrZXJJbnB1dCIsImZuIiwiZGF0ZXRpbWVwaWNrZXIiLCJhcmdzIiwicHJvdG90eXBlIiwiaXNJbnN0YW5jZSIsInRoaXNNZXRob2RzIiwicmV0dXJuVmFsdWUiLCJfb3B0aW9ucyIsImRlZmF1bHRzIiwiaW5zdGFuY2UiLCJpbkFycmF5IiwiY29udHJvbF91cCIsImNvbnRyb2xfZG93biIsInBhZ2VVcCIsInBhZ2VEb3duIiwiZW50ZXIiLCJlc2NhcGUiLCJjb250cm9sX3NwYWNlIiwiY2xpY2siLCJ0IiwiX2RlbGV0ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/bootstrap-datetimepicker.js\n\n}");
/***/ }),
/***/ "./app/utils/bootstrap-dropdown.js":
/*!*****************************************!*\
!*** ./app/utils/bootstrap-dropdown.js ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/v3-dev/LICENSE)\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n var backdrop = '.dropdown-backdrop';\n var toggle = '[data-toggle=\"dropdown\"]';\n var Dropdown = function Dropdown(element) {\n $(element).on('click.bs.dropdown', this.toggle);\n };\n Dropdown.VERSION = '3.4.1';\n function getParent($this) {\n var selector = $this.attr('data-target');\n if (!selector) {\n selector = $this.attr('href');\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, ''); // strip for ie7\n }\n var $parent = selector !== '#' ? $(document).find(selector) : null;\n return $parent && $parent.length ? $parent : $this.parent();\n }\n function clearMenus(e) {\n if (e && e.which === 3) {\n return;\n }\n $(backdrop).remove();\n $(toggle).each(function () {\n var $this = $(this);\n var $parent = getParent($this);\n var relatedTarget = {\n relatedTarget: this\n };\n if (!$parent.hasClass('open')) {\n return;\n }\n if (e && e.type === 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) {\n return;\n }\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget));\n if (e.isDefaultPrevented()) {\n return;\n }\n $this.attr('aria-expanded', 'false');\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget));\n });\n }\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this);\n if ($this.is('.disabled, :disabled')) {\n return;\n }\n var $parent = getParent($this);\n var isActive = $parent.hasClass('open');\n clearMenus();\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div')).addClass('dropdown-backdrop').insertAfter($(this)).on('click', clearMenus);\n }\n var relatedTarget = {\n relatedTarget: this\n };\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget));\n if (e.isDefaultPrevented()) {\n return;\n }\n $this.trigger('focus').attr('aria-expanded', 'true');\n $parent.toggleClass('open').trigger($.Event('shown.bs.dropdown', relatedTarget));\n }\n return false;\n };\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return;\n var $this = $(this);\n e.preventDefault();\n e.stopPropagation();\n if ($this.is('.disabled, :disabled')) {\n return;\n }\n var $parent = getParent($this);\n var isActive = $parent.hasClass('open');\n if (!isActive && e.which !== 27 || isActive && e.which === 27) {\n if (e.which === 27) {\n $parent.find(toggle).trigger('focus');\n }\n return $this.trigger('click');\n }\n var desc = ' li:not(.disabled):visible a';\n var $items = $parent.find('.dropdown-menu' + desc);\n if (!$items.length) {\n return;\n }\n var index = $items.index(e.target);\n if (e.which === 38 && index > 0) {\n index--;\n } // up\n if (e.which === 40 && index < $items.length - 1) {\n index++;\n } // down\n if (!~index) {\n index = 0;\n }\n $items.eq(index).trigger('focus');\n };\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.dropdown');\n if (!data) $this.data('bs.dropdown', data = new Dropdown(this));\n if (typeof option === 'string') data[option].call($this);\n });\n }\n var old = $.fn.dropdown;\n $.fn.dropdown = Plugin;\n $.fn.dropdown.Constructor = Dropdown;\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old;\n return this;\n };\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document).on('click.bs.dropdown.data-api', clearMenus).on('click.bs.dropdown.data-api', '.dropdown form', function (e) {\n e.stopPropagation();\n }).on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle).on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown).on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown);\n}((jquery__WEBPACK_IMPORTED_MODULE_0___default()));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvYm9vdHN0cmFwLWRyb3Bkb3duLmpzIiwibWFwcGluZ3MiOiI7OztBQUE0Qjs7QUFFNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsQ0FBRSxVQUFTQyxDQUFDLEVBQUU7RUFDVixZQUFZOztFQUVaO0VBQ0E7RUFFQSxJQUFNQyxRQUFRLEdBQUcsb0JBQW9CO0VBQ3JDLElBQU1DLE1BQU0sR0FBRywwQkFBMEI7RUFDekMsSUFBTUMsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQVlDLE9BQU8sRUFBRTtJQUMvQkosQ0FBQyxDQUFDSSxPQUFPLENBQUMsQ0FBQ0MsRUFBRSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQ0gsTUFBTSxDQUFDO0VBQ25ELENBQUM7RUFFREMsUUFBUSxDQUFDRyxPQUFPLEdBQUcsT0FBTztFQUUxQixTQUFTQyxTQUFTQSxDQUFDQyxLQUFLLEVBQUU7SUFDdEIsSUFBSUMsUUFBUSxHQUFHRCxLQUFLLENBQUNFLElBQUksQ0FBQyxhQUFhLENBQUM7SUFFeEMsSUFBSSxDQUFDRCxRQUFRLEVBQUU7TUFDWEEsUUFBUSxHQUFHRCxLQUFLLENBQUNFLElBQUksQ0FBQyxNQUFNLENBQUM7TUFDN0JELFFBQVEsR0FBR0EsUUFBUSxJQUFJLFdBQVcsQ0FBQ0UsSUFBSSxDQUFDRixRQUFRLENBQUMsSUFBSUEsUUFBUSxDQUFDRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRztJQUVBLElBQU1DLE9BQU8sR0FBR0osUUFBUSxLQUFLLEdBQUcsR0FBR1QsQ0FBQyxDQUFDYyxRQUFRLENBQUMsQ0FBQ0MsSUFBSSxDQUFDTixRQUFRLENBQUMsR0FBRyxJQUFJO0lBRXBFLE9BQU9JLE9BQU8sSUFBSUEsT0FBTyxDQUFDRyxNQUFNLEdBQUdILE9BQU8sR0FBR0wsS0FBSyxDQUFDUyxNQUFNLENBQUMsQ0FBQztFQUMvRDtFQUVBLFNBQVNDLFVBQVVBLENBQUNDLENBQUMsRUFBRTtJQUNuQixJQUFJQSxDQUFDLElBQUlBLENBQUMsQ0FBQ0MsS0FBSyxLQUFLLENBQUMsRUFBRTtNQUFFO0lBQVE7SUFDbENwQixDQUFDLENBQUNDLFFBQVEsQ0FBQyxDQUFDb0IsTUFBTSxDQUFDLENBQUM7SUFDcEJyQixDQUFDLENBQUNFLE1BQU0sQ0FBQyxDQUFDb0IsSUFBSSxDQUFDLFlBQVc7TUFDdEIsSUFBTWQsS0FBSyxHQUFHUixDQUFDLENBQUMsSUFBSSxDQUFDO01BQ3JCLElBQU1hLE9BQU8sR0FBR04sU0FBUyxDQUFDQyxLQUFLLENBQUM7TUFDaEMsSUFBTWUsYUFBYSxHQUFHO1FBQUVBLGFBQWEsRUFBRTtNQUFLLENBQUM7TUFFN0MsSUFBSSxDQUFDVixPQUFPLENBQUNXLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUFFO01BQVE7TUFFekMsSUFBSUwsQ0FBQyxJQUFJQSxDQUFDLENBQUNNLElBQUksS0FBSyxPQUFPLElBQUksaUJBQWlCLENBQUNkLElBQUksQ0FBQ1EsQ0FBQyxDQUFDTyxNQUFNLENBQUNDLE9BQU8sQ0FBQyxJQUFJM0IsQ0FBQyxDQUFDNEIsUUFBUSxDQUFDZixPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUVNLENBQUMsQ0FBQ08sTUFBTSxDQUFDLEVBQUU7UUFBRTtNQUFRO01BRXZIYixPQUFPLENBQUNnQixPQUFPLENBQUNWLENBQUMsR0FBR25CLENBQUMsQ0FBQzhCLEtBQUssQ0FBQyxrQkFBa0IsRUFBRVAsYUFBYSxDQUFDLENBQUM7TUFFL0QsSUFBSUosQ0FBQyxDQUFDWSxrQkFBa0IsQ0FBQyxDQUFDLEVBQUU7UUFBRTtNQUFRO01BRXRDdkIsS0FBSyxDQUFDRSxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQztNQUNwQ0csT0FBTyxDQUFDbUIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDSCxPQUFPLENBQUM3QixDQUFDLENBQUM4QixLQUFLLENBQUMsb0JBQW9CLEVBQUVQLGFBQWEsQ0FBQyxDQUFDO0lBQ3JGLENBQUMsQ0FBQztFQUNOO0VBRUFwQixRQUFRLENBQUM4QixTQUFTLENBQUMvQixNQUFNLEdBQUcsVUFBU2lCLENBQUMsRUFBRTtJQUNwQyxJQUFNWCxLQUFLLEdBQUdSLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFckIsSUFBSVEsS0FBSyxDQUFDMEIsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEVBQUU7TUFBRTtJQUFRO0lBRWhELElBQU1yQixPQUFPLEdBQUdOLFNBQVMsQ0FBQ0MsS0FBSyxDQUFDO0lBQ2hDLElBQU0yQixRQUFRLEdBQUd0QixPQUFPLENBQUNXLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFFekNOLFVBQVUsQ0FBQyxDQUFDO0lBRVosSUFBSSxDQUFDaUIsUUFBUSxFQUFFO01BQ1gsSUFBSSxjQUFjLElBQUlyQixRQUFRLENBQUNzQixlQUFlLElBQUksQ0FBQ3ZCLE9BQU8sQ0FBQ3dCLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQ3JCLE1BQU0sRUFBRTtRQUN0RjtRQUNBaEIsQ0FBQyxDQUFDYyxRQUFRLENBQUN3QixhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDM0JDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUM3QkMsV0FBVyxDQUFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3BCSyxFQUFFLENBQUMsT0FBTyxFQUFFYSxVQUFVLENBQUM7TUFDaEM7TUFFQSxJQUFNSyxhQUFhLEdBQUc7UUFBRUEsYUFBYSxFQUFFO01BQUssQ0FBQztNQUM3Q1YsT0FBTyxDQUFDZ0IsT0FBTyxDQUFDVixDQUFDLEdBQUduQixDQUFDLENBQUM4QixLQUFLLENBQUMsa0JBQWtCLEVBQUVQLGFBQWEsQ0FBQyxDQUFDO01BRS9ELElBQUlKLENBQUMsQ0FBQ1ksa0JBQWtCLENBQUMsQ0FBQyxFQUFFO1FBQUU7TUFBUTtNQUV0Q3ZCLEtBQUssQ0FDQXFCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FDaEJuQixJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQztNQUVsQ0csT0FBTyxDQUNGNEIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUNuQlosT0FBTyxDQUFDN0IsQ0FBQyxDQUFDOEIsS0FBSyxDQUFDLG1CQUFtQixFQUFFUCxhQUFhLENBQUMsQ0FBQztJQUM3RDtJQUVBLE9BQU8sS0FBSztFQUNoQixDQUFDO0VBRURwQixRQUFRLENBQUM4QixTQUFTLENBQUNTLE9BQU8sR0FBRyxVQUFTdkIsQ0FBQyxFQUFFO0lBQ3JDLElBQUksQ0FBQyxlQUFlLENBQUNSLElBQUksQ0FBQ1EsQ0FBQyxDQUFDQyxLQUFLLENBQUMsSUFBSSxpQkFBaUIsQ0FBQ1QsSUFBSSxDQUFDUSxDQUFDLENBQUNPLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDLEVBQUU7SUFFaEYsSUFBTW5CLEtBQUssR0FBR1IsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUVyQm1CLENBQUMsQ0FBQ3dCLGNBQWMsQ0FBQyxDQUFDO0lBQ2xCeEIsQ0FBQyxDQUFDeUIsZUFBZSxDQUFDLENBQUM7SUFFbkIsSUFBSXBDLEtBQUssQ0FBQzBCLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO01BQ2xDO0lBQ0o7SUFFQSxJQUFNckIsT0FBTyxHQUFHTixTQUFTLENBQUNDLEtBQUssQ0FBQztJQUNoQyxJQUFNMkIsUUFBUSxHQUFHdEIsT0FBTyxDQUFDVyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBRXpDLElBQUksQ0FBQ1csUUFBUSxJQUFJaEIsQ0FBQyxDQUFDQyxLQUFLLEtBQUssRUFBRSxJQUFJZSxRQUFRLElBQUloQixDQUFDLENBQUNDLEtBQUssS0FBSyxFQUFFLEVBQUU7TUFDM0QsSUFBSUQsQ0FBQyxDQUFDQyxLQUFLLEtBQUssRUFBRSxFQUFFO1FBQ2hCUCxPQUFPLENBQUNFLElBQUksQ0FBQ2IsTUFBTSxDQUFDLENBQUMyQixPQUFPLENBQUMsT0FBTyxDQUFDO01BQ3pDO01BRUEsT0FBT3JCLEtBQUssQ0FBQ3FCLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDakM7SUFFQSxJQUFNZ0IsSUFBSSxHQUFHLDhCQUE4QjtJQUMzQyxJQUFNQyxNQUFNLEdBQUdqQyxPQUFPLENBQUNFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRzhCLElBQUksQ0FBQztJQUVwRCxJQUFJLENBQUNDLE1BQU0sQ0FBQzlCLE1BQU0sRUFBRTtNQUNoQjtJQUNKO0lBRUEsSUFBSStCLEtBQUssR0FBR0QsTUFBTSxDQUFDQyxLQUFLLENBQUM1QixDQUFDLENBQUNPLE1BQU0sQ0FBQztJQUVsQyxJQUFJUCxDQUFDLENBQUNDLEtBQUssS0FBSyxFQUFFLElBQUkyQixLQUFLLEdBQUcsQ0FBQyxFQUFFO01BQUVBLEtBQUssRUFBRTtJQUFFLENBQUMsQ0FBQztJQUM5QyxJQUFJNUIsQ0FBQyxDQUFDQyxLQUFLLEtBQUssRUFBRSxJQUFJMkIsS0FBSyxHQUFHRCxNQUFNLENBQUM5QixNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQUUrQixLQUFLLEVBQUU7SUFBRSxDQUFDLENBQUM7SUFDOUQsSUFBSSxDQUFDLENBQUNBLEtBQUssRUFBRTtNQUFFQSxLQUFLLEdBQUcsQ0FBQztJQUFFO0lBRTFCRCxNQUFNLENBQUNFLEVBQUUsQ0FBQ0QsS0FBSyxDQUFDLENBQUNsQixPQUFPLENBQUMsT0FBTyxDQUFDO0VBQ3JDLENBQUM7O0VBRUQ7RUFDQTs7RUFFQSxTQUFTb0IsTUFBTUEsQ0FBQ0MsTUFBTSxFQUFFO0lBQ3BCLE9BQU8sSUFBSSxDQUFDNUIsSUFBSSxDQUFDLFlBQVc7TUFDeEIsSUFBTWQsS0FBSyxHQUFHUixDQUFDLENBQUMsSUFBSSxDQUFDO01BQ3JCLElBQUltRCxJQUFJLEdBQUczQyxLQUFLLENBQUMyQyxJQUFJLENBQUMsYUFBYSxDQUFDO01BRXBDLElBQUksQ0FBQ0EsSUFBSSxFQUFFM0MsS0FBSyxDQUFDMkMsSUFBSSxDQUFDLGFBQWEsRUFBR0EsSUFBSSxHQUFHLElBQUloRCxRQUFRLENBQUMsSUFBSSxDQUFFLENBQUM7TUFDakUsSUFBSSxPQUFPK0MsTUFBTSxLQUFLLFFBQVEsRUFBRUMsSUFBSSxDQUFDRCxNQUFNLENBQUMsQ0FBQ0UsSUFBSSxDQUFDNUMsS0FBSyxDQUFDO0lBQzVELENBQUMsQ0FBQztFQUNOO0VBRUEsSUFBTTZDLEdBQUcsR0FBR3JELENBQUMsQ0FBQ3NELEVBQUUsQ0FBQ0MsUUFBUTtFQUV6QnZELENBQUMsQ0FBQ3NELEVBQUUsQ0FBQ0MsUUFBUSxHQUFHTixNQUFNO0VBQ3RCakQsQ0FBQyxDQUFDc0QsRUFBRSxDQUFDQyxRQUFRLENBQUNDLFdBQVcsR0FBR3JELFFBQVE7O0VBRXBDO0VBQ0E7O0VBRUFILENBQUMsQ0FBQ3NELEVBQUUsQ0FBQ0MsUUFBUSxDQUFDRSxVQUFVLEdBQUcsWUFBVztJQUNsQ3pELENBQUMsQ0FBQ3NELEVBQUUsQ0FBQ0MsUUFBUSxHQUFHRixHQUFHO0lBQ25CLE9BQU8sSUFBSTtFQUNmLENBQUM7O0VBRUQ7RUFDQTs7RUFFQXJELENBQUMsQ0FBQ2MsUUFBUSxDQUFDLENBQ05ULEVBQUUsQ0FBQyw0QkFBNEIsRUFBRWEsVUFBVSxDQUFDLENBQzVDYixFQUFFLENBQUMsNEJBQTRCLEVBQUUsZ0JBQWdCLEVBQUUsVUFBU2MsQ0FBQyxFQUFFO0lBQUVBLENBQUMsQ0FBQ3lCLGVBQWUsQ0FBQyxDQUFDO0VBQUUsQ0FBQyxDQUFDLENBQ3hGdkMsRUFBRSxDQUFDLDRCQUE0QixFQUFFSCxNQUFNLEVBQUVDLFFBQVEsQ0FBQzhCLFNBQVMsQ0FBQy9CLE1BQU0sQ0FBQyxDQUNuRUcsRUFBRSxDQUFDLDhCQUE4QixFQUFFSCxNQUFNLEVBQUVDLFFBQVEsQ0FBQzhCLFNBQVMsQ0FBQ1MsT0FBTyxDQUFDLENBQ3RFckMsRUFBRSxDQUFDLDhCQUE4QixFQUFFLGdCQUFnQixFQUFFRixRQUFRLENBQUM4QixTQUFTLENBQUNTLE9BQU8sQ0FBQztBQUN6RixDQUFDLENBQUMzQywrQ0FBTSxDQUFFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC91dGlscy9ib290c3RyYXAtZHJvcGRvd24uanM/YWRiZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgalF1ZXJ5IGZyb20gJ2pxdWVyeSc7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQm9vdHN0cmFwOiBkcm9wZG93bi5qcyB2My40LjFcbiAqIGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS9kb2NzLzMuNC9qYXZhc2NyaXB0LyNkcm9wZG93bnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUd2l0dGVyLCBJbmMuXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL3YzLWRldi9MSUNFTlNFKVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbisoZnVuY3Rpb24oJCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8vIERST1BET1dOIENMQVNTIERFRklOSVRJT05cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICBjb25zdCBiYWNrZHJvcCA9ICcuZHJvcGRvd24tYmFja2Ryb3AnO1xuICAgIGNvbnN0IHRvZ2dsZSA9ICdbZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXSc7XG4gICAgY29uc3QgRHJvcGRvd24gPSBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICAgICQoZWxlbWVudCkub24oJ2NsaWNrLmJzLmRyb3Bkb3duJywgdGhpcy50b2dnbGUpO1xuICAgIH07XG5cbiAgICBEcm9wZG93bi5WRVJTSU9OID0gJzMuNC4xJztcblxuICAgIGZ1bmN0aW9uIGdldFBhcmVudCgkdGhpcykge1xuICAgICAgICBsZXQgc2VsZWN0b3IgPSAkdGhpcy5hdHRyKCdkYXRhLXRhcmdldCcpO1xuXG4gICAgICAgIGlmICghc2VsZWN0b3IpIHtcbiAgICAgICAgICAgIHNlbGVjdG9yID0gJHRoaXMuYXR0cignaHJlZicpO1xuICAgICAgICAgICAgc2VsZWN0b3IgPSBzZWxlY3RvciAmJiAvI1tBLVphLXpdLy50ZXN0KHNlbGVjdG9yKSAmJiBzZWxlY3Rvci5yZXBsYWNlKC8uKig/PSNbXlxcc10qJCkvLCAnJyk7IC8vIHN0cmlwIGZvciBpZTdcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0ICRwYXJlbnQgPSBzZWxlY3RvciAhPT0gJyMnID8gJChkb2N1bWVudCkuZmluZChzZWxlY3RvcikgOiBudWxsO1xuXG4gICAgICAgIHJldHVybiAkcGFyZW50ICYmICRwYXJlbnQubGVuZ3RoID8gJHBhcmVudCA6ICR0aGlzLnBhcmVudCgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNsZWFyTWVudXMoZSkge1xuICAgICAgICBpZiAoZSAmJiBlLndoaWNoID09PSAzKSB7IHJldHVybjsgfVxuICAgICAgICAkKGJhY2tkcm9wKS5yZW1vdmUoKTtcbiAgICAgICAgJCh0b2dnbGUpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICBjb25zdCAkcGFyZW50ID0gZ2V0UGFyZW50KCR0aGlzKTtcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSB7IHJlbGF0ZWRUYXJnZXQ6IHRoaXMgfTtcblxuICAgICAgICAgICAgaWYgKCEkcGFyZW50Lmhhc0NsYXNzKCdvcGVuJykpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgIGlmIChlICYmIGUudHlwZSA9PT0gJ2NsaWNrJyAmJiAvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGUudGFyZ2V0LnRhZ05hbWUpICYmICQuY29udGFpbnMoJHBhcmVudFswXSwgZS50YXJnZXQpKSB7IHJldHVybjsgfVxuXG4gICAgICAgICAgICAkcGFyZW50LnRyaWdnZXIoZSA9ICQuRXZlbnQoJ2hpZGUuYnMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KSk7XG5cbiAgICAgICAgICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSB7IHJldHVybjsgfVxuXG4gICAgICAgICAgICAkdGhpcy5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgICAgICAkcGFyZW50LnJlbW92ZUNsYXNzKCdvcGVuJykudHJpZ2dlcigkLkV2ZW50KCdoaWRkZW4uYnMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIERyb3Bkb3duLnByb3RvdHlwZS50b2dnbGUgPSBmdW5jdGlvbihlKSB7XG4gICAgICAgIGNvbnN0ICR0aGlzID0gJCh0aGlzKTtcblxuICAgICAgICBpZiAoJHRoaXMuaXMoJy5kaXNhYmxlZCwgOmRpc2FibGVkJykpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgY29uc3QgJHBhcmVudCA9IGdldFBhcmVudCgkdGhpcyk7XG4gICAgICAgIGNvbnN0IGlzQWN0aXZlID0gJHBhcmVudC5oYXNDbGFzcygnb3BlbicpO1xuXG4gICAgICAgIGNsZWFyTWVudXMoKTtcblxuICAgICAgICBpZiAoIWlzQWN0aXZlKSB7XG4gICAgICAgICAgICBpZiAoJ29udG91Y2hzdGFydCcgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmICEkcGFyZW50LmNsb3Nlc3QoJy5uYXZiYXItbmF2JykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgbW9iaWxlIHdlIHVzZSBhIGJhY2tkcm9wIGJlY2F1c2UgY2xpY2sgZXZlbnRzIGRvbid0IGRlbGVnYXRlXG4gICAgICAgICAgICAgICAgJChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSlcbiAgICAgICAgICAgICAgICAgICAgLmFkZENsYXNzKCdkcm9wZG93bi1iYWNrZHJvcCcpXG4gICAgICAgICAgICAgICAgICAgIC5pbnNlcnRBZnRlcigkKHRoaXMpKVxuICAgICAgICAgICAgICAgICAgICAub24oJ2NsaWNrJywgY2xlYXJNZW51cyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSB7IHJlbGF0ZWRUYXJnZXQ6IHRoaXMgfTtcbiAgICAgICAgICAgICRwYXJlbnQudHJpZ2dlcihlID0gJC5FdmVudCgnc2hvdy5icy5kcm9wZG93bicsIHJlbGF0ZWRUYXJnZXQpKTtcblxuICAgICAgICAgICAgaWYgKGUuaXNEZWZhdWx0UHJldmVudGVkKCkpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgICR0aGlzXG4gICAgICAgICAgICAgICAgLnRyaWdnZXIoJ2ZvY3VzJylcbiAgICAgICAgICAgICAgICAuYXR0cignYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG5cbiAgICAgICAgICAgICRwYXJlbnRcbiAgICAgICAgICAgICAgICAudG9nZ2xlQ2xhc3MoJ29wZW4nKVxuICAgICAgICAgICAgICAgIC50cmlnZ2VyKCQuRXZlbnQoJ3Nob3duLmJzLmRyb3Bkb3duJywgcmVsYXRlZFRhcmdldCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICBEcm9wZG93bi5wcm90b3R5cGUua2V5ZG93biA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgaWYgKCEvKDM4fDQwfDI3fDMyKS8udGVzdChlLndoaWNoKSB8fCAvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGUudGFyZ2V0LnRhZ05hbWUpKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgJHRoaXMgPSAkKHRoaXMpO1xuXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICBpZiAoJHRoaXMuaXMoJy5kaXNhYmxlZCwgOmRpc2FibGVkJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0ICRwYXJlbnQgPSBnZXRQYXJlbnQoJHRoaXMpO1xuICAgICAgICBjb25zdCBpc0FjdGl2ZSA9ICRwYXJlbnQuaGFzQ2xhc3MoJ29wZW4nKTtcblxuICAgICAgICBpZiAoIWlzQWN0aXZlICYmIGUud2hpY2ggIT09IDI3IHx8IGlzQWN0aXZlICYmIGUud2hpY2ggPT09IDI3KSB7XG4gICAgICAgICAgICBpZiAoZS53aGljaCA9PT0gMjcpIHtcbiAgICAgICAgICAgICAgICAkcGFyZW50LmZpbmQodG9nZ2xlKS50cmlnZ2VyKCdmb2N1cycpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gJHRoaXMudHJpZ2dlcignY2xpY2snKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlc2MgPSAnIGxpOm5vdCguZGlzYWJsZWQpOnZpc2libGUgYSc7XG4gICAgICAgIGNvbnN0ICRpdGVtcyA9ICRwYXJlbnQuZmluZCgnLmRyb3Bkb3duLW1lbnUnICsgZGVzYyk7XG5cbiAgICAgICAgaWYgKCEkaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaW5kZXggPSAkaXRlbXMuaW5kZXgoZS50YXJnZXQpO1xuXG4gICAgICAgIGlmIChlLndoaWNoID09PSAzOCAmJiBpbmRleCA+IDApIHsgaW5kZXgtLTsgfSAvLyB1cFxuICAgICAgICBpZiAoZS53aGljaCA9PT0gNDAgJiYgaW5kZXggPCAkaXRlbXMubGVuZ3RoIC0gMSkgeyBpbmRleCsrOyB9IC8vIGRvd25cbiAgICAgICAgaWYgKCF+aW5kZXgpIHsgaW5kZXggPSAwOyB9XG5cbiAgICAgICAgJGl0ZW1zLmVxKGluZGV4KS50cmlnZ2VyKCdmb2N1cycpO1xuICAgIH07XG5cbiAgICAvLyBEUk9QRE9XTiBQTFVHSU4gREVGSU5JVElPTlxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICBmdW5jdGlvbiBQbHVnaW4ob3B0aW9uKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICBsZXQgZGF0YSA9ICR0aGlzLmRhdGEoJ2JzLmRyb3Bkb3duJyk7XG5cbiAgICAgICAgICAgIGlmICghZGF0YSkgJHRoaXMuZGF0YSgnYnMuZHJvcGRvd24nLCAoZGF0YSA9IG5ldyBEcm9wZG93bih0aGlzKSkpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0uY2FsbCgkdGhpcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IG9sZCA9ICQuZm4uZHJvcGRvd247XG5cbiAgICAkLmZuLmRyb3Bkb3duID0gUGx1Z2luO1xuICAgICQuZm4uZHJvcGRvd24uQ29uc3RydWN0b3IgPSBEcm9wZG93bjtcblxuICAgIC8vIERST1BET1dOIE5PIENPTkZMSUNUXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT1cblxuICAgICQuZm4uZHJvcGRvd24ubm9Db25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAkLmZuLmRyb3Bkb3duID0gb2xkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4gICAgLy8gQVBQTFkgVE8gU1RBTkRBUkQgRFJPUERPV04gRUxFTUVOVFNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gICAgJChkb2N1bWVudClcbiAgICAgICAgLm9uKCdjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaScsIGNsZWFyTWVudXMpXG4gICAgICAgIC5vbignY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGknLCAnLmRyb3Bkb3duIGZvcm0nLCBmdW5jdGlvbihlKSB7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IH0pXG4gICAgICAgIC5vbignY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGknLCB0b2dnbGUsIERyb3Bkb3duLnByb3RvdHlwZS50b2dnbGUpXG4gICAgICAgIC5vbigna2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaScsIHRvZ2dsZSwgRHJvcGRvd24ucHJvdG90eXBlLmtleWRvd24pXG4gICAgICAgIC5vbigna2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaScsICcuZHJvcGRvd24tbWVudScsIERyb3Bkb3duLnByb3RvdHlwZS5rZXlkb3duKTtcbn0oalF1ZXJ5KSk7XG4iXSwibmFtZXMiOlsialF1ZXJ5IiwiJCIsImJhY2tkcm9wIiwidG9nZ2xlIiwiRHJvcGRvd24iLCJlbGVtZW50Iiwib24iLCJWRVJTSU9OIiwiZ2V0UGFyZW50IiwiJHRoaXMiLCJzZWxlY3RvciIsImF0dHIiLCJ0ZXN0IiwicmVwbGFjZSIsIiRwYXJlbnQiLCJkb2N1bWVudCIsImZpbmQiLCJsZW5ndGgiLCJwYXJlbnQiLCJjbGVhck1lbnVzIiwiZSIsIndoaWNoIiwicmVtb3ZlIiwiZWFjaCIsInJlbGF0ZWRUYXJnZXQiLCJoYXNDbGFzcyIsInR5cGUiLCJ0YXJnZXQiLCJ0YWdOYW1lIiwiY29udGFpbnMiLCJ0cmlnZ2VyIiwiRXZlbnQiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJyZW1vdmVDbGFzcyIsInByb3RvdHlwZSIsImlzIiwiaXNBY3RpdmUiLCJkb2N1bWVudEVsZW1lbnQiLCJjbG9zZXN0IiwiY3JlYXRlRWxlbWVudCIsImFkZENsYXNzIiwiaW5zZXJ0QWZ0ZXIiLCJ0b2dnbGVDbGFzcyIsImtleWRvd24iLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsImRlc2MiLCIkaXRlbXMiLCJpbmRleCIsImVxIiwiUGx1Z2luIiwib3B0aW9uIiwiZGF0YSIsImNhbGwiLCJvbGQiLCJmbiIsImRyb3Bkb3duIiwiQ29uc3RydWN0b3IiLCJub0NvbmZsaWN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/bootstrap-dropdown.js\n\n}");
/***/ }),
/***/ "./app/utils/bootstrap-transition.js":
/*!*******************************************!*\
!*** ./app/utils/bootstrap-transition.js ***!
\*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n function transitionEnd() {\n var el = document.createElement('bootstrap');\n var transEndEventNames = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return {\n end: transEndEventNames[name]\n };\n }\n }\n return false; // explicit for ie8 ( ._.)\n }\n\n // http://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false;\n var $el = this;\n $(this).one('bsTransitionEnd', function () {\n called = true;\n });\n var callback = function callback() {\n if (!called) $($el).trigger($.support.transition.end);\n };\n setTimeout(callback, duration);\n return this;\n };\n $(function () {\n $.support.transition = transitionEnd();\n if (!$.support.transition) return;\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function handle(e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments);\n }\n };\n });\n}((jquery__WEBPACK_IMPORTED_MODULE_0___default()));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvYm9vdHN0cmFwLXRyYW5zaXRpb24uanMiLCJtYXBwaW5ncyI6Ijs7O0FBQTRCO0FBRTVCLENBQUUsVUFBU0MsQ0FBQyxFQUFFO0VBQ1YsWUFBWTs7RUFFWjtFQUNBO0VBRUEsU0FBU0MsYUFBYUEsQ0FBQSxFQUFHO0lBQ3JCLElBQUlDLEVBQUUsR0FBR0MsUUFBUSxDQUFDQyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBRTVDLElBQUlDLGtCQUFrQixHQUFHO01BQ3JCQyxnQkFBZ0IsRUFBRSxxQkFBcUI7TUFDdkNDLGFBQWEsRUFBRSxlQUFlO01BQzlCQyxXQUFXLEVBQUUsK0JBQStCO01BQzVDQyxVQUFVLEVBQUU7SUFDaEIsQ0FBQztJQUVELEtBQUssSUFBSUMsSUFBSSxJQUFJTCxrQkFBa0IsRUFBRTtNQUNqQyxJQUFJSCxFQUFFLENBQUNTLEtBQUssQ0FBQ0QsSUFBSSxDQUFDLEtBQUtFLFNBQVMsRUFBRTtRQUM5QixPQUFPO1VBQUVDLEdBQUcsRUFBRVIsa0JBQWtCLENBQUNLLElBQUk7UUFBRSxDQUFDO01BQzVDO0lBQ0o7SUFFQSxPQUFPLEtBQUssQ0FBQyxDQUFDO0VBQ2xCOztFQUVBO0VBQ0FWLENBQUMsQ0FBQ2MsRUFBRSxDQUFDQyxvQkFBb0IsR0FBRyxVQUFTQyxRQUFRLEVBQUU7SUFDM0MsSUFBSUMsTUFBTSxHQUFHLEtBQUs7SUFDbEIsSUFBSUMsR0FBRyxHQUFHLElBQUk7SUFDZGxCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQ21CLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxZQUFXO01BQUVGLE1BQU0sR0FBRyxJQUFJO0lBQUUsQ0FBQyxDQUFDO0lBQzdELElBQUlHLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFBLEVBQWM7TUFBRSxJQUFJLENBQUNILE1BQU0sRUFBRWpCLENBQUMsQ0FBQ2tCLEdBQUcsQ0FBQyxDQUFDRyxPQUFPLENBQUNyQixDQUFDLENBQUNzQixPQUFPLENBQUNiLFVBQVUsQ0FBQ0ksR0FBRyxDQUFDO0lBQUUsQ0FBQztJQUNwRlUsVUFBVSxDQUFDSCxRQUFRLEVBQUVKLFFBQVEsQ0FBQztJQUM5QixPQUFPLElBQUk7RUFDZixDQUFDO0VBRURoQixDQUFDLENBQUMsWUFBVztJQUNUQSxDQUFDLENBQUNzQixPQUFPLENBQUNiLFVBQVUsR0FBR1IsYUFBYSxDQUFDLENBQUM7SUFFdEMsSUFBSSxDQUFDRCxDQUFDLENBQUNzQixPQUFPLENBQUNiLFVBQVUsRUFBRTtJQUUzQlQsQ0FBQyxDQUFDd0IsS0FBSyxDQUFDQyxPQUFPLENBQUNDLGVBQWUsR0FBRztNQUM5QkMsUUFBUSxFQUFFM0IsQ0FBQyxDQUFDc0IsT0FBTyxDQUFDYixVQUFVLENBQUNJLEdBQUc7TUFDbENlLFlBQVksRUFBRTVCLENBQUMsQ0FBQ3NCLE9BQU8sQ0FBQ2IsVUFBVSxDQUFDSSxHQUFHO01BQ3RDZ0IsTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQVdDLENBQUMsRUFBRTtRQUNoQixJQUFJOUIsQ0FBQyxDQUFDOEIsQ0FBQyxDQUFDQyxNQUFNLENBQUMsQ0FBQ0MsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU9GLENBQUMsQ0FBQ0csU0FBUyxDQUFDQyxPQUFPLENBQUNDLEtBQUssQ0FBQyxJQUFJLEVBQUVDLFNBQVMsQ0FBQztNQUMvRTtJQUNKLENBQUM7RUFDTCxDQUFDLENBQUM7QUFFTixDQUFDLENBQUNyQywrQ0FBTSxDQUFFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC91dGlscy9ib290c3RyYXAtdHJhbnNpdGlvbi5qcz82ZWE3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBqUXVlcnkgZnJvbSAnanF1ZXJ5JztcblxuKyhmdW5jdGlvbigkKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8gQ1NTIFRSQU5TSVRJT04gU1VQUE9SVCAoU2hvdXRvdXQ6IGh0dHA6Ly93d3cubW9kZXJuaXpyLmNvbS8pXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICBmdW5jdGlvbiB0cmFuc2l0aW9uRW5kKCkge1xuICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdib290c3RyYXAnKTtcblxuICAgICAgICB2YXIgdHJhbnNFbmRFdmVudE5hbWVzID0ge1xuICAgICAgICAgICAgV2Via2l0VHJhbnNpdGlvbjogJ3dlYmtpdFRyYW5zaXRpb25FbmQnLFxuICAgICAgICAgICAgTW96VHJhbnNpdGlvbjogJ3RyYW5zaXRpb25lbmQnLFxuICAgICAgICAgICAgT1RyYW5zaXRpb246ICdvVHJhbnNpdGlvbkVuZCBvdHJhbnNpdGlvbmVuZCcsXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAndHJhbnNpdGlvbmVuZCdcbiAgICAgICAgfTtcblxuICAgICAgICBmb3IgKHZhciBuYW1lIGluIHRyYW5zRW5kRXZlbnROYW1lcykge1xuICAgICAgICAgICAgaWYgKGVsLnN0eWxlW25hbWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBlbmQ6IHRyYW5zRW5kRXZlbnROYW1lc1tuYW1lXSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBleHBsaWNpdCBmb3IgaWU4ICggIC5fLilcbiAgICB9XG5cbiAgICAvLyBodHRwOi8vYmxvZy5hbGV4bWFjY2F3LmNvbS9jc3MtdHJhbnNpdGlvbnNcbiAgICAkLmZuLmVtdWxhdGVUcmFuc2l0aW9uRW5kID0gZnVuY3Rpb24oZHVyYXRpb24pIHtcbiAgICAgICAgdmFyIGNhbGxlZCA9IGZhbHNlO1xuICAgICAgICB2YXIgJGVsID0gdGhpcztcbiAgICAgICAgJCh0aGlzKS5vbmUoJ2JzVHJhbnNpdGlvbkVuZCcsIGZ1bmN0aW9uKCkgeyBjYWxsZWQgPSB0cnVlOyB9KTtcbiAgICAgICAgdmFyIGNhbGxiYWNrID0gZnVuY3Rpb24oKSB7IGlmICghY2FsbGVkKSAkKCRlbCkudHJpZ2dlcigkLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQpOyB9O1xuICAgICAgICBzZXRUaW1lb3V0KGNhbGxiYWNrLCBkdXJhdGlvbik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbiAgICAkKGZ1bmN0aW9uKCkge1xuICAgICAgICAkLnN1cHBvcnQudHJhbnNpdGlvbiA9IHRyYW5zaXRpb25FbmQoKTtcblxuICAgICAgICBpZiAoISQuc3VwcG9ydC50cmFuc2l0aW9uKSByZXR1cm47XG5cbiAgICAgICAgJC5ldmVudC5zcGVjaWFsLmJzVHJhbnNpdGlvbkVuZCA9IHtcbiAgICAgICAgICAgIGJpbmRUeXBlOiAkLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQsXG4gICAgICAgICAgICBkZWxlZ2F0ZVR5cGU6ICQuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCxcbiAgICAgICAgICAgIGhhbmRsZTogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIGlmICgkKGUudGFyZ2V0KS5pcyh0aGlzKSkgcmV0dXJuIGUuaGFuZGxlT2JqLmhhbmRsZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9KTtcblxufShqUXVlcnkpKTtcbiJdLCJuYW1lcyI6WyJqUXVlcnkiLCIkIiwidHJhbnNpdGlvbkVuZCIsImVsIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwidHJhbnNFbmRFdmVudE5hbWVzIiwiV2Via2l0VHJhbnNpdGlvbiIsIk1velRyYW5zaXRpb24iLCJPVHJhbnNpdGlvbiIsInRyYW5zaXRpb24iLCJuYW1lIiwic3R5bGUiLCJ1bmRlZmluZWQiLCJlbmQiLCJmbiIsImVtdWxhdGVUcmFuc2l0aW9uRW5kIiwiZHVyYXRpb24iLCJjYWxsZWQiLCIkZWwiLCJvbmUiLCJjYWxsYmFjayIsInRyaWdnZXIiLCJzdXBwb3J0Iiwic2V0VGltZW91dCIsImV2ZW50Iiwic3BlY2lhbCIsImJzVHJhbnNpdGlvbkVuZCIsImJpbmRUeXBlIiwiZGVsZWdhdGVUeXBlIiwiaGFuZGxlIiwiZSIsInRhcmdldCIsImlzIiwiaGFuZGxlT2JqIiwiaGFuZGxlciIsImFwcGx5IiwiYXJndW1lbnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/bootstrap-transition.js\n\n}");
/***/ }),
/***/ "./app/utils/changelog.js":
/*!********************************!*\
!*** ./app/utils/changelog.js ***!
\********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* eslint-disable */\n\nvar TRIGGER = null;\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-remodal-changelog]', function (event) {\n TRIGGER = event.currentTarget;\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('opened', '[data-remodal-id=\"changelog\"]', function () {\n var instance = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal).lookup[jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=changelog]').data('remodal')];\n instance.$modal.html('
');\n if (!TRIGGER) {\n return true;\n }\n var url = jquery__WEBPACK_IMPORTED_MODULE_0___default()(TRIGGER).data('remodalChangelog');\n jquery__WEBPACK_IMPORTED_MODULE_0___default().ajax({\n url: url\n }).done(function (data) {\n instance.$modal.html(data);\n });\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('closed', '[data-remodal-id=\"changelog\"]', function () {\n var instance = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal).lookup[jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=changelog]').data('remodal')];\n instance.$modal.html('');\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvY2hhbmdlbG9nLmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ3VCO0FBRXZCLElBQUlDLE9BQU8sR0FBRyxJQUFJO0FBRWxCRCw2Q0FBQyxDQUFDRSxRQUFRLENBQUMsQ0FBQ0MsRUFBRSxDQUFDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxVQUFDQyxLQUFLLEVBQUs7RUFDM0RILE9BQU8sR0FBR0csS0FBSyxDQUFDQyxhQUFhO0FBQ2pDLENBQUMsQ0FBQztBQUVGTCw2Q0FBQyxDQUFDRSxRQUFRLENBQUMsQ0FBQ0MsRUFBRSxDQUFDLFFBQVEsRUFBRSwrQkFBK0IsRUFBRSxZQUFNO0VBQzVELElBQU1HLFFBQVEsR0FBR04sdURBQVMsQ0FBQ1EsTUFBTSxDQUFDUiw2Q0FBQyxDQUFDLDZCQUE2QixDQUFDLENBQUNTLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztFQUNuRkgsUUFBUSxDQUFDSSxNQUFNLENBQUNDLElBQUksQ0FBQywwSUFBMEksQ0FBQztFQUNoSyxJQUFJLENBQUNWLE9BQU8sRUFBRTtJQUFFLE9BQU8sSUFBSTtFQUFFO0VBRTdCLElBQU1XLEdBQUcsR0FBR1osNkNBQUMsQ0FBQ0MsT0FBTyxDQUFDLENBQUNRLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztFQUUvQ1Qsa0RBQU0sQ0FBQztJQUFDWSxHQUFHLEVBQUVBO0VBQUcsQ0FBQyxDQUFDLENBQUNFLElBQUksQ0FBQyxVQUFTTCxJQUFJLEVBQUU7SUFDbkNILFFBQVEsQ0FBQ0ksTUFBTSxDQUFDQyxJQUFJLENBQUNGLElBQUksQ0FBQztFQUM5QixDQUFDLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRlQsNkNBQUMsQ0FBQ0UsUUFBUSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsK0JBQStCLEVBQUUsWUFBTTtFQUM1RCxJQUFNRyxRQUFRLEdBQUdOLHVEQUFTLENBQUNRLE1BQU0sQ0FBQ1IsNkNBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDUyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7RUFDbkZILFFBQVEsQ0FBQ0ksTUFBTSxDQUFDQyxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQzVCLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXRpbHMvY2hhbmdlbG9nLmpzPzc2MWMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbmxldCBUUklHR0VSID0gbnVsbDtcblxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXJlbW9kYWwtY2hhbmdlbG9nXScsIChldmVudCkgPT4ge1xuICAgIFRSSUdHRVIgPSBldmVudC5jdXJyZW50VGFyZ2V0O1xufSk7XG5cbiQoZG9jdW1lbnQpLm9uKCdvcGVuZWQnLCAnW2RhdGEtcmVtb2RhbC1pZD1cImNoYW5nZWxvZ1wiXScsICgpID0+IHtcbiAgICBjb25zdCBpbnN0YW5jZSA9ICQucmVtb2RhbC5sb29rdXBbJCgnW2RhdGEtcmVtb2RhbC1pZD1jaGFuZ2Vsb2ddJykuZGF0YSgncmVtb2RhbCcpXTtcbiAgICBpbnN0YW5jZS4kbW9kYWwuaHRtbCgnPGRpdiBjbGFzcz1cImNoYW5nZWxvZy1vdmVyZmxvdyBjZW50ZXJcIiBzdHlsZT1cInBhZGRpbmc6NXJlbSAwO3RleHQtYWxpZ246Y2VudGVyO1wiPjxpIGNsYXNzPVwiZmEgZmEtc3Bpbm5lciBmYS1zcGluIGZhLTN4IGZhLWZ3XCI+PC9pPjwvZGl2PicpO1xuICAgIGlmICghVFJJR0dFUikgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gICAgY29uc3QgdXJsID0gJChUUklHR0VSKS5kYXRhKCdyZW1vZGFsQ2hhbmdlbG9nJyk7XG5cbiAgICAkLmFqYXgoe3VybDogdXJsfSkuZG9uZShmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgIGluc3RhbmNlLiRtb2RhbC5odG1sKGRhdGEpO1xuICAgIH0pO1xufSk7XG5cbiQoZG9jdW1lbnQpLm9uKCdjbG9zZWQnLCAnW2RhdGEtcmVtb2RhbC1pZD1cImNoYW5nZWxvZ1wiXScsICgpID0+IHtcbiAgICBjb25zdCBpbnN0YW5jZSA9ICQucmVtb2RhbC5sb29rdXBbJCgnW2RhdGEtcmVtb2RhbC1pZD1jaGFuZ2Vsb2ddJykuZGF0YSgncmVtb2RhbCcpXTtcbiAgICBpbnN0YW5jZS4kbW9kYWwuaHRtbCgnJyk7XG59KTtcbiJdLCJuYW1lcyI6WyIkIiwiVFJJR0dFUiIsImRvY3VtZW50Iiwib24iLCJldmVudCIsImN1cnJlbnRUYXJnZXQiLCJpbnN0YW5jZSIsInJlbW9kYWwiLCJsb29rdXAiLCJkYXRhIiwiJG1vZGFsIiwiaHRtbCIsInVybCIsImFqYXgiLCJkb25lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/changelog.js\n\n}");
/***/ }),
/***/ "./app/utils/colors.js":
/*!*****************************!*\
!*** ./app/utils/colors.js ***!
\*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hex2hsb: () => (/* binding */ hex2hsb),\n/* harmony export */ hex2rgb: () => (/* binding */ hex2rgb),\n/* harmony export */ hsb2hex: () => (/* binding */ hsb2hex),\n/* harmony export */ hsb2rgb: () => (/* binding */ hsb2rgb),\n/* harmony export */ parseHex: () => (/* binding */ parseHex),\n/* harmony export */ rgb2hex: () => (/* binding */ rgb2hex),\n/* harmony export */ rgb2hsb: () => (/* binding */ rgb2hsb),\n/* harmony export */ rgbstr2hex: () => (/* binding */ rgbstr2hex)\n/* harmony export */ });\n// Parses a string and returns a valid hex string when possible\n// parseHex('#fff') => '#ffffff'\nvar parseHex = function parseHex(string) {\n string = string.replace(/[^A-F0-9]/ig, '');\n if (string.length !== 3 && string.length !== 6) return '';\n if (string.length === 3) {\n string = string[0] + string[0] + string[1] + string[1] + string[2] + string[2];\n }\n return '#' + string.toLowerCase();\n};\n\n// Converts an HSB object to an RGB object\n// hsb2rgb({h: 0, s: 0, b: 100}) => {r: 255, g: 255, b: 255}\nvar hsb2rgb = function hsb2rgb(hsb) {\n var rgb = {};\n var h = Math.round(hsb.h);\n var s = Math.round(hsb.s * 255 / 100);\n var v = Math.round(hsb.b * 255 / 100);\n if (s === 0) {\n rgb.r = rgb.g = rgb.b = v;\n } else {\n var t1 = v;\n var t2 = (255 - s) * v / 255;\n var t3 = (t1 - t2) * (h % 60) / 60;\n if (h === 360) h = 0;\n if (h < 60) {\n rgb.r = t1;\n rgb.b = t2;\n rgb.g = t2 + t3;\n } else if (h < 120) {\n rgb.g = t1;\n rgb.b = t2;\n rgb.r = t1 - t3;\n } else if (h < 180) {\n rgb.g = t1;\n rgb.r = t2;\n rgb.b = t2 + t3;\n } else if (h < 240) {\n rgb.b = t1;\n rgb.r = t2;\n rgb.g = t1 - t3;\n } else if (h < 300) {\n rgb.b = t1;\n rgb.g = t2;\n rgb.r = t2 + t3;\n } else if (h < 360) {\n rgb.r = t1;\n rgb.g = t2;\n rgb.b = t1 - t3;\n } else {\n rgb.r = 0;\n rgb.g = 0;\n rgb.b = 0;\n }\n }\n return {\n r: Math.round(rgb.r),\n g: Math.round(rgb.g),\n b: Math.round(rgb.b)\n };\n};\n\n// Converts an RGB object to a HEX string\n// rgb2hex({r: 255, g: 255, b: 255}) => #ffffff\nvar rgb2hex = function rgb2hex(rgb) {\n var hex = [rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16)];\n hex.forEach(function (val, nr) {\n if (val.length === 1) hex[nr] = '0' + val;\n });\n return '#' + hex.join('');\n};\n\n// Converts and RGB(a) string to a HEX string\n// rgbstr2hex('rgba(255, 255, 255, 0.5)') => #ffffff\nvar rgbstr2hex = function rgbstr2hex(rgb) {\n rgb = rgb.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i);\n return rgb && rgb.length === 4 ? '#' + ('0' + parseInt(rgb[1], 10).toString(16)).slice(-2) + ('0' + parseInt(rgb[2], 10).toString(16)).slice(-2) + ('0' + parseInt(rgb[3], 10).toString(16)).slice(-2) : '';\n};\n\n// Converts an HSB object to a HEX string\n// hsb2hex({h: 0, s: 0, b: 100}) => #ffffff\nvar hsb2hex = function hsb2hex(hsb) {\n return rgb2hex(hsb2rgb(hsb));\n};\n\n// Converts a HEX string to an HSB object\n// hex2hsb('#ffffff') => {h: 0, s: 0, b: 100}\nvar hex2hsb = function hex2hsb(hex) {\n var hsb = rgb2hsb(hex2rgb(hex));\n if (hsb.s === 0) hsb.h = 360;\n return hsb;\n};\n\n// Converts an RGB object to an HSB object\n// rgb2hsb({r: 255, g: 255, b: 255}) => {h: 0, s: 0, b: 100}\nvar rgb2hsb = function rgb2hsb(rgb) {\n var hsb = {\n h: 0,\n s: 0,\n b: 0\n };\n var min = Math.min(rgb.r, rgb.g, rgb.b);\n var max = Math.max(rgb.r, rgb.g, rgb.b);\n var delta = max - min;\n hsb.b = max;\n hsb.s = max !== 0 ? 255 * delta / max : 0;\n if (hsb.s !== 0) {\n if (rgb.r === max) {\n hsb.h = (rgb.g - rgb.b) / delta;\n } else if (rgb.g === max) {\n hsb.h = 2 + (rgb.b - rgb.r) / delta;\n } else {\n hsb.h = 4 + (rgb.r - rgb.g) / delta;\n }\n } else {\n hsb.h = -1;\n }\n hsb.h *= 60;\n if (hsb.h < 0) {\n hsb.h += 360;\n }\n hsb.s *= 100 / 255;\n hsb.b *= 100 / 255;\n return hsb;\n};\n\n// Converts a HEX string to an RGB object\n// hex2rgb('#ffffff') => {r: 255, g: 255, b: 255}\nvar hex2rgb = function hex2rgb(hex) {\n hex = parseInt(hex.indexOf('#') > -1 ? hex.substring(1) : hex, 16);\n return {\n /* jshint ignore:start */\n r: hex >> 16,\n g: (hex & 0x00FF00) >> 8,\n b: hex & 0x0000FF\n /* jshint ignore:end */\n };\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LEdBQUcsR0FBRztJQUNWO0VBQ0osQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2NvbG9ycy5qcz9lMGE4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFBhcnNlcyBhIHN0cmluZyBhbmQgcmV0dXJucyBhIHZhbGlkIGhleCBzdHJpbmcgd2hlbiBwb3NzaWJsZVxuLy8gcGFyc2VIZXgoJyNmZmYnKSA9PiAnI2ZmZmZmZidcbmV4cG9ydCBjb25zdCBwYXJzZUhleCA9IChzdHJpbmcpID0+IHtcbiAgICBzdHJpbmcgPSBzdHJpbmcucmVwbGFjZSgvW15BLUYwLTldL2lnLCAnJyk7XG4gICAgaWYgKHN0cmluZy5sZW5ndGggIT09IDMgJiYgc3RyaW5nLmxlbmd0aCAhPT0gNikgcmV0dXJuICcnO1xuICAgIGlmIChzdHJpbmcubGVuZ3RoID09PSAzKSB7XG4gICAgICAgIHN0cmluZyA9IHN0cmluZ1swXSArIHN0cmluZ1swXSArIHN0cmluZ1sxXSArIHN0cmluZ1sxXSArIHN0cmluZ1syXSArIHN0cmluZ1syXTtcbiAgICB9XG5cbiAgICByZXR1cm4gJyMnICsgc3RyaW5nLnRvTG93ZXJDYXNlKCk7XG59O1xuXG4vLyBDb252ZXJ0cyBhbiBIU0Igb2JqZWN0IHRvIGFuIFJHQiBvYmplY3Rcbi8vIGhzYjJyZ2Ioe2g6IDAsIHM6IDAsIGI6IDEwMH0pID0+IHtyOiAyNTUsIGc6IDI1NSwgYjogMjU1fVxuZXhwb3J0IGNvbnN0IGhzYjJyZ2IgPSAoaHNiKSA9PiB7XG4gICAgbGV0IHJnYiA9IHt9O1xuICAgIGxldCBoID0gTWF0aC5yb3VuZChoc2IuaCk7XG4gICAgbGV0IHMgPSBNYXRoLnJvdW5kKGhzYi5zICogMjU1IC8gMTAwKTtcbiAgICBsZXQgdiA9IE1hdGgucm91bmQoaHNiLmIgKiAyNTUgLyAxMDApO1xuICAgIGlmIChzID09PSAwKSB7XG4gICAgICAgIHJnYi5yID0gcmdiLmcgPSByZ2IuYiA9IHY7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHQxID0gdjtcbiAgICAgICAgdmFyIHQyID0gKDI1NSAtIHMpICogdiAvIDI1NTtcbiAgICAgICAgdmFyIHQzID0gKHQxIC0gdDIpICogKGggJSA2MCkgLyA2MDtcbiAgICAgICAgaWYgKGggPT09IDM2MCkgaCA9IDA7XG4gICAgICAgIGlmIChoIDwgNjApIHtcbiAgICAgICAgICAgIHJnYi5yID0gdDE7XG4gICAgICAgICAgICByZ2IuYiA9IHQyO1xuICAgICAgICAgICAgcmdiLmcgPSB0MiArIHQzO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAxMjApIHtcbiAgICAgICAgICAgIHJnYi5nID0gdDE7XG4gICAgICAgICAgICByZ2IuYiA9IHQyO1xuICAgICAgICAgICAgcmdiLnIgPSB0MSAtIHQzO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAxODApIHtcbiAgICAgICAgICAgIHJnYi5nID0gdDE7XG4gICAgICAgICAgICByZ2IuciA9IHQyO1xuICAgICAgICAgICAgcmdiLmIgPSB0MiArIHQzO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAyNDApIHtcbiAgICAgICAgICAgIHJnYi5iID0gdDE7XG4gICAgICAgICAgICByZ2IuciA9IHQyO1xuICAgICAgICAgICAgcmdiLmcgPSB0MSAtIHQzO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAzMDApIHtcbiAgICAgICAgICAgIHJnYi5iID0gdDE7XG4gICAgICAgICAgICByZ2IuZyA9IHQyO1xuICAgICAgICAgICAgcmdiLnIgPSB0MiArIHQzO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAzNjApIHtcbiAgICAgICAgICAgIHJnYi5yID0gdDE7XG4gICAgICAgICAgICByZ2IuZyA9IHQyO1xuICAgICAgICAgICAgcmdiLmIgPSB0MSAtIHQzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmdiLnIgPSAwO1xuICAgICAgICAgICAgcmdiLmcgPSAwO1xuICAgICAgICAgICAgcmdiLmIgPSAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHI6IE1hdGgucm91bmQocmdiLnIpLFxuICAgICAgICBnOiBNYXRoLnJvdW5kKHJnYi5nKSxcbiAgICAgICAgYjogTWF0aC5yb3VuZChyZ2IuYilcbiAgICB9O1xufTtcblxuLy8gQ29udmVydHMgYW4gUkdCIG9iamVjdCB0byBhIEhFWCBzdHJpbmdcbi8vIHJnYjJoZXgoe3I6IDI1NSwgZzogMjU1LCBiOiAyNTV9KSA9PiAjZmZmZmZmXG5leHBvcnQgY29uc3QgcmdiMmhleCA9IChyZ2IpID0+IHtcbiAgICB2YXIgaGV4ID0gW1xuICAgICAgICByZ2Iuci50b1N0cmluZygxNiksXG4gICAgICAgIHJnYi5nLnRvU3RyaW5nKDE2KSxcbiAgICAgICAgcmdiLmIudG9TdHJpbmcoMTYpXG4gICAgXTtcblxuICAgIGhleC5mb3JFYWNoKCh2YWwsIG5yKSA9PiB7XG4gICAgICAgIGlmICh2YWwubGVuZ3RoID09PSAxKSBoZXhbbnJdID0gJzAnICsgdmFsO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuICcjJyArIGhleC5qb2luKCcnKTtcbn07XG5cbi8vIENvbnZlcnRzIGFuZCBSR0IoYSkgc3RyaW5nIHRvIGEgSEVYIHN0cmluZ1xuLy8gcmdic3RyMmhleCgncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpJykgPT4gI2ZmZmZmZlxuZXhwb3J0IGNvbnN0IHJnYnN0cjJoZXggPSAocmdiKSA9PiB7XG4gICAgcmdiID0gcmdiLm1hdGNoKC9ecmdiYT9bXFxzK10/XFwoW1xccytdPyhcXGQrKVtcXHMrXT8sW1xccytdPyhcXGQrKVtcXHMrXT8sW1xccytdPyhcXGQrKVtcXHMrXT8vaSk7XG5cbiAgICByZXR1cm4gKHJnYiAmJiByZ2IubGVuZ3RoID09PSA0KSA/ICcjJyArXG4gICAgKCcwJyArIHBhcnNlSW50KHJnYlsxXSwgMTApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpICtcbiAgICAoJzAnICsgcGFyc2VJbnQocmdiWzJdLCAxMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMikgK1xuICAgICgnMCcgKyBwYXJzZUludChyZ2JbM10sIDEwKS50b1N0cmluZygxNikpLnNsaWNlKC0yKSA6ICcnO1xufTtcblxuLy8gQ29udmVydHMgYW4gSFNCIG9iamVjdCB0byBhIEhFWCBzdHJpbmdcbi8vIGhzYjJoZXgoe2g6IDAsIHM6IDAsIGI6IDEwMH0pID0+ICNmZmZmZmZcbmV4cG9ydCBjb25zdCBoc2IyaGV4ID0gKGhzYikgPT4ge1xuICAgIHJldHVybiByZ2IyaGV4KGhzYjJyZ2IoaHNiKSk7XG59O1xuXG4vLyBDb252ZXJ0cyBhIEhFWCBzdHJpbmcgdG8gYW4gSFNCIG9iamVjdFxuLy8gaGV4MmhzYignI2ZmZmZmZicpID0+IHtoOiAwLCBzOiAwLCBiOiAxMDB9XG5leHBvcnQgY29uc3QgaGV4MmhzYiA9IChoZXgpID0+IHtcbiAgICBsZXQgaHNiID0gcmdiMmhzYihoZXgycmdiKGhleCkpO1xuICAgIGlmIChoc2IucyA9PT0gMCkgaHNiLmggPSAzNjA7XG5cbiAgICByZXR1cm4gaHNiO1xufTtcblxuLy8gQ29udmVydHMgYW4gUkdCIG9iamVjdCB0byBhbiBIU0Igb2JqZWN0XG4vLyByZ2IyaHNiKHtyOiAyNTUsIGc6IDI1NSwgYjogMjU1fSkgPT4ge2g6IDAsIHM6IDAsIGI6IDEwMH1cbmV4cG9ydCBjb25zdCByZ2IyaHNiID0gKHJnYikgPT4ge1xuICAgIGxldCBoc2IgPSB7XG4gICAgICAgIGg6IDAsXG4gICAgICAgIHM6IDAsXG4gICAgICAgIGI6IDBcbiAgICB9O1xuICAgIGxldCBtaW4gPSBNYXRoLm1pbihyZ2IuciwgcmdiLmcsIHJnYi5iKTtcbiAgICBsZXQgbWF4ID0gTWF0aC5tYXgocmdiLnIsIHJnYi5nLCByZ2IuYik7XG4gICAgbGV0IGRlbHRhID0gbWF4IC0gbWluO1xuICAgIGhzYi5iID0gbWF4O1xuICAgIGhzYi5zID0gbWF4ICE9PSAwID8gMjU1ICogZGVsdGEgLyBtYXggOiAwO1xuICAgIGlmIChoc2IucyAhPT0gMCkge1xuICAgICAgICBpZiAocmdiLnIgPT09IG1heCkge1xuICAgICAgICAgICAgaHNiLmggPSAocmdiLmcgLSByZ2IuYikgLyBkZWx0YTtcbiAgICAgICAgfSBlbHNlIGlmIChyZ2IuZyA9PT0gbWF4KSB7XG4gICAgICAgICAgICBoc2IuaCA9IDIgKyAocmdiLmIgLSByZ2IucikgLyBkZWx0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhzYi5oID0gNCArIChyZ2IuciAtIHJnYi5nKSAvIGRlbHRhO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaHNiLmggPSAtMTtcbiAgICB9XG4gICAgaHNiLmggKj0gNjA7XG4gICAgaWYgKGhzYi5oIDwgMCkge1xuICAgICAgICBoc2IuaCArPSAzNjA7XG4gICAgfVxuICAgIGhzYi5zICo9IDEwMCAvIDI1NTtcbiAgICBoc2IuYiAqPSAxMDAgLyAyNTU7XG5cbiAgICByZXR1cm4gaHNiO1xufTtcblxuLy8gQ29udmVydHMgYSBIRVggc3RyaW5nIHRvIGFuIFJHQiBvYmplY3Rcbi8vIGhleDJyZ2IoJyNmZmZmZmYnKSA9PiB7cjogMjU1LCBnOiAyNTUsIGI6IDI1NX1cbmV4cG9ydCBjb25zdCBoZXgycmdiID0gKGhleCkgPT4ge1xuICAgIGhleCA9IHBhcnNlSW50KCgoaGV4LmluZGV4T2YoJyMnKSA+IC0xKSA/IGhleC5zdWJzdHJpbmcoMSkgOiBoZXgpLCAxNik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICAvKiBqc2hpbnQgaWdub3JlOnN0YXJ0ICovXG4gICAgICAgIHI6IGhleCA+PiAxNixcbiAgICAgICAgZzogKGhleCAmIDB4MDBGRjAwKSA+PiA4LFxuICAgICAgICBiOiAoaGV4ICYgMHgwMDAwRkYpXG4gICAgICAgIC8qIGpzaGludCBpZ25vcmU6ZW5kICovXG4gICAgfTtcbn07XG4iXSwibmFtZXMiOlsicGFyc2VIZXgiLCJzdHJpbmciLCJyZXBsYWNlIiwibGVuZ3RoIiwidG9Mb3dlckNhc2UiLCJoc2IycmdiIiwiaHNiIiwicmdiIiwiaCIsIk1hdGgiLCJyb3VuZCIsInMiLCJ2IiwiYiIsInIiLCJnIiwidDEiLCJ0MiIsInQzIiwicmdiMmhleCIsImhleCIsInRvU3RyaW5nIiwiZm9yRWFjaCIsInZhbCIsIm5yIiwiam9pbiIsInJnYnN0cjJoZXgiLCJtYXRjaCIsInBhcnNlSW50Iiwic2xpY2UiLCJoc2IyaGV4IiwiaGV4MmhzYiIsInJnYjJoc2IiLCJoZXgycmdiIiwibWluIiwibWF4IiwiZGVsdGEiLCJpbmRleE9mIiwic3Vic3RyaW5nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/colors.js\n\n}");
/***/ }),
/***/ "./app/utils/cookies.js":
/*!******************************!*\
!*** ./app/utils/cookies.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*\n * Cookies.js - 1.2.3-grav\n * https://github.com/ScottHamper/Cookies\n *\n * With SameSite support by Grav\n *\n * This is free and unencumbered software released into the public domain.\n */\n\nvar factory = function factory(window) {\n var _arguments = arguments;\n if (_typeof(window.document) !== 'object') {\n throw new Error('Cookies.js requires a `window` with a `document` object');\n }\n var _Cookies = function Cookies(key, value, options) {\n return _arguments.length === 1 ? _Cookies.get(key) : _Cookies.set(key, value, options);\n };\n\n // Allows for setter injection in unit tests\n _Cookies._document = window.document;\n\n // Used to ensure cookie keys do not collide with\n // built-in `Object` properties\n _Cookies._cacheKeyPrefix = 'cookey.'; // Hurr hurr, :)\n\n _Cookies._maxExpireDate = new Date('Fri, 31 Dec 9999 23:59:59 UTC');\n _Cookies.defaults = {\n path: '/',\n secure: false,\n sameSite: 'Lax'\n };\n _Cookies.get = function (key) {\n if (_Cookies._cachedDocumentCookie !== _Cookies._document.cookie) {\n _Cookies._renewCache();\n }\n var value = _Cookies._cache[_Cookies._cacheKeyPrefix + key];\n return value === undefined ? undefined : decodeURIComponent(value);\n };\n _Cookies.set = function (key, value, options) {\n options = _Cookies._getExtendedOptions(options);\n options.expires = _Cookies._getExpiresDate(value === undefined ? -1 : options.expires);\n _Cookies._document.cookie = _Cookies._generateCookieString(key, value, options);\n return _Cookies;\n };\n _Cookies.expire = function (key, options) {\n return _Cookies.set(key, undefined, options);\n };\n _Cookies._getExtendedOptions = function (options) {\n return {\n path: options && options.path || _Cookies.defaults.path,\n domain: options && options.domain || _Cookies.defaults.domain,\n expires: options && options.expires || _Cookies.defaults.expires,\n secure: options && options.secure !== undefined ? options.secure : _Cookies.defaults.secure,\n sameSite: options && options.sameSite || _Cookies.defaults.sameSite\n };\n };\n _Cookies._isValidDate = function (date) {\n return Object.prototype.toString.call(date) === '[object Date]' && !isNaN(date.getTime());\n };\n _Cookies._getExpiresDate = function (expires, now) {\n now = now || new Date();\n if (typeof expires === 'number') {\n expires = expires === Infinity ? _Cookies._maxExpireDate : new Date(now.getTime() + expires * 1000);\n } else if (typeof expires === 'string') {\n expires = new Date(expires);\n }\n if (expires && !_Cookies._isValidDate(expires)) {\n throw new Error('`expires` parameter cannot be converted to a valid Date instance');\n }\n return expires;\n };\n _Cookies._generateCookieString = function (key, value, options) {\n key = key.replace(/[^#$&+\\^`|]/g, encodeURIComponent);\n key = key.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n value = (value + '').replace(/[^!#$&-+\\--:<-\\[\\]-~]/g, encodeURIComponent);\n options = options || {};\n var cookieString = key + '=' + value;\n cookieString += options.path ? ';path=' + options.path : '';\n cookieString += options.domain ? ';domain=' + options.domain : '';\n cookieString += options.expires ? ';expires=' + options.expires.toUTCString() : '';\n cookieString += options.secure ? ';secure' : '';\n cookieString += options.sameSite ? ';SameSite=' + options.sameSite : '';\n return cookieString;\n };\n _Cookies._getCacheFromString = function (documentCookie) {\n var cookieCache = {};\n var cookiesArray = documentCookie ? documentCookie.split('; ') : [];\n for (var i = 0; i < cookiesArray.length; i++) {\n var cookieKvp = _Cookies._getKeyValuePairFromCookieString(cookiesArray[i]);\n if (cookieCache[_Cookies._cacheKeyPrefix + cookieKvp.key] === undefined) {\n cookieCache[_Cookies._cacheKeyPrefix + cookieKvp.key] = cookieKvp.value;\n }\n }\n return cookieCache;\n };\n _Cookies._getKeyValuePairFromCookieString = function (cookieString) {\n // \"=\" is a valid character in a cookie value according to RFC6265, so cannot `split('=')`\n var separatorIndex = cookieString.indexOf('=');\n\n // IE omits the \"=\" when the cookie value is an empty string\n separatorIndex = separatorIndex < 0 ? cookieString.length : separatorIndex;\n var key = cookieString.substr(0, separatorIndex);\n var decodedKey;\n try {\n decodedKey = decodeURIComponent(key);\n } catch (e) {\n if (console && typeof console.error === 'function') {\n console.error('Could not decode cookie with key \"' + key + '\"', e);\n }\n }\n return {\n key: decodedKey,\n value: cookieString.substr(separatorIndex + 1) // Defer decoding value until accessed\n };\n };\n _Cookies._renewCache = function () {\n _Cookies._cache = _Cookies._getCacheFromString(_Cookies._document.cookie);\n _Cookies._cachedDocumentCookie = _Cookies._document.cookie;\n };\n _Cookies._areEnabled = function () {\n var testKey = 'cookies.js';\n var areEnabled = _Cookies.set(testKey, 1).get(testKey) === '1';\n _Cookies.expire(testKey);\n return areEnabled;\n };\n _Cookies.enabled = _Cookies._areEnabled();\n return _Cookies;\n};\n__webpack_require__.g.Cookies = __webpack_require__.g && _typeof(__webpack_require__.g.document) === 'object' ? factory(__webpack_require__.g) : factory;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__webpack_require__.g.Cookies);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QzVELE9BQU8iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2Nvb2tpZXMuanM/ZWNlNSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29va2llcy5qcyAtIDEuMi4zLWdyYXZcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9TY290dEhhbXBlci9Db29raWVzXG4gKlxuICogV2l0aCBTYW1lU2l0ZSBzdXBwb3J0IGJ5IEdyYXZcbiAqXG4gKiBUaGlzIGlzIGZyZWUgYW5kIHVuZW5jdW1iZXJlZCBzb2Z0d2FyZSByZWxlYXNlZCBpbnRvIHRoZSBwdWJsaWMgZG9tYWluLlxuICovXG5cbmNvbnN0IGZhY3RvcnkgPSBmdW5jdGlvbih3aW5kb3cpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdy5kb2N1bWVudCAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb29raWVzLmpzIHJlcXVpcmVzIGEgYHdpbmRvd2Agd2l0aCBhIGBkb2N1bWVudGAgb2JqZWN0Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgQ29va2llcyA9IChrZXksIHZhbHVlLCBvcHRpb25zKSA9PiB7XG4gICAgICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID09PSAxXG4gICAgICAgICAgICA/IENvb2tpZXMuZ2V0KGtleSlcbiAgICAgICAgICAgIDogQ29va2llcy5zZXQoa2V5LCB2YWx1ZSwgb3B0aW9ucyk7XG4gICAgfTtcblxuICAgIC8vIEFsbG93cyBmb3Igc2V0dGVyIGluamVjdGlvbiBpbiB1bml0IHRlc3RzXG4gICAgQ29va2llcy5fZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQ7XG5cbiAgICAvLyBVc2VkIHRvIGVuc3VyZSBjb29raWUga2V5cyBkbyBub3QgY29sbGlkZSB3aXRoXG4gICAgLy8gYnVpbHQtaW4gYE9iamVjdGAgcHJvcGVydGllc1xuICAgIENvb2tpZXMuX2NhY2hlS2V5UHJlZml4ID0gJ2Nvb2tleS4nOyAvLyBIdXJyIGh1cnIsIDopXG5cbiAgICBDb29raWVzLl9tYXhFeHBpcmVEYXRlID0gbmV3IERhdGUoJ0ZyaSwgMzEgRGVjIDk5OTkgMjM6NTk6NTkgVVRDJyk7XG5cbiAgICBDb29raWVzLmRlZmF1bHRzID0ge1xuICAgICAgICBwYXRoOiAnLycsXG4gICAgICAgIHNlY3VyZTogZmFsc2UsXG4gICAgICAgIHNhbWVTaXRlOiAnTGF4J1xuICAgIH07XG5cbiAgICBDb29raWVzLmdldCA9IChrZXkpID0+IHtcbiAgICAgICAgaWYgKENvb2tpZXMuX2NhY2hlZERvY3VtZW50Q29va2llICE9PSBDb29raWVzLl9kb2N1bWVudC5jb29raWUpIHtcbiAgICAgICAgICAgIENvb2tpZXMuX3JlbmV3Q2FjaGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gQ29va2llcy5fY2FjaGVbQ29va2llcy5fY2FjaGVLZXlQcmVmaXggKyBrZXldO1xuXG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgICB9O1xuXG4gICAgQ29va2llcy5zZXQgPSAoa2V5LCB2YWx1ZSwgb3B0aW9ucykgPT4ge1xuICAgICAgICBvcHRpb25zID0gQ29va2llcy5fZ2V0RXh0ZW5kZWRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICBvcHRpb25zLmV4cGlyZXMgPSBDb29raWVzLl9nZXRFeHBpcmVzRGF0ZSh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gLTEgOiBvcHRpb25zLmV4cGlyZXMpO1xuXG4gICAgICAgIENvb2tpZXMuX2RvY3VtZW50LmNvb2tpZSA9IENvb2tpZXMuX2dlbmVyYXRlQ29va2llU3RyaW5nKGtleSwgdmFsdWUsIG9wdGlvbnMpO1xuXG4gICAgICAgIHJldHVybiBDb29raWVzO1xuICAgIH07XG5cbiAgICBDb29raWVzLmV4cGlyZSA9IChrZXksIG9wdGlvbnMpID0+IHtcbiAgICAgICAgcmV0dXJuIENvb2tpZXMuc2V0KGtleSwgdW5kZWZpbmVkLCBvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgQ29va2llcy5fZ2V0RXh0ZW5kZWRPcHRpb25zID0gKG9wdGlvbnMpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhdGg6IG9wdGlvbnMgJiYgb3B0aW9ucy5wYXRoIHx8IENvb2tpZXMuZGVmYXVsdHMucGF0aCxcbiAgICAgICAgICAgIGRvbWFpbjogb3B0aW9ucyAmJiBvcHRpb25zLmRvbWFpbiB8fCBDb29raWVzLmRlZmF1bHRzLmRvbWFpbixcbiAgICAgICAgICAgIGV4cGlyZXM6IG9wdGlvbnMgJiYgb3B0aW9ucy5leHBpcmVzIHx8IENvb2tpZXMuZGVmYXVsdHMuZXhwaXJlcyxcbiAgICAgICAgICAgIHNlY3VyZTogb3B0aW9ucyAmJiBvcHRpb25zLnNlY3VyZSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5zZWN1cmUgOiBDb29raWVzLmRlZmF1bHRzLnNlY3VyZSxcbiAgICAgICAgICAgIHNhbWVTaXRlOiBvcHRpb25zICYmIG9wdGlvbnMuc2FtZVNpdGUgfHwgQ29va2llcy5kZWZhdWx0cy5zYW1lU2l0ZVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBDb29raWVzLl9pc1ZhbGlkRGF0ZSA9IChkYXRlKSA9PiB7XG4gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZGF0ZSkgPT09ICdbb2JqZWN0IERhdGVdJyAmJiAhaXNOYU4oZGF0ZS5nZXRUaW1lKCkpO1xuICAgIH07XG5cbiAgICBDb29raWVzLl9nZXRFeHBpcmVzRGF0ZSA9IChleHBpcmVzLCBub3cpID0+IHtcbiAgICAgICAgbm93ID0gbm93IHx8IG5ldyBEYXRlKCk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBleHBpcmVzID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgZXhwaXJlcyA9IGV4cGlyZXMgPT09IEluZmluaXR5XG4gICAgICAgICAgICAgICAgPyBDb29raWVzLl9tYXhFeHBpcmVEYXRlXG4gICAgICAgICAgICAgICAgOiBuZXcgRGF0ZShub3cuZ2V0VGltZSgpICsgZXhwaXJlcyAqIDEwMDApO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBleHBpcmVzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgZXhwaXJlcyA9IG5ldyBEYXRlKGV4cGlyZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV4cGlyZXMgJiYgIUNvb2tpZXMuX2lzVmFsaWREYXRlKGV4cGlyZXMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BleHBpcmVzYCBwYXJhbWV0ZXIgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBhIHZhbGlkIERhdGUgaW5zdGFuY2UnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBleHBpcmVzO1xuICAgIH07XG5cbiAgICBDb29raWVzLl9nZW5lcmF0ZUNvb2tpZVN0cmluZyA9IChrZXksIHZhbHVlLCBvcHRpb25zKSA9PiB7XG4gICAgICAgIGtleSA9IGtleS5yZXBsYWNlKC9bXiMkJitcXF5gfF0vZywgZW5jb2RlVVJJQ29tcG9uZW50KTtcbiAgICAgICAga2V5ID0ga2V5LnJlcGxhY2UoL1xcKC9nLCAnJTI4JykucmVwbGFjZSgvXFwpL2csICclMjknKTtcbiAgICAgICAgdmFsdWUgPSAodmFsdWUgKyAnJykucmVwbGFjZSgvW14hIyQmLStcXC0tOjwtXFxbXFxdLX5dL2csIGVuY29kZVVSSUNvbXBvbmVudCk7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gICAgICAgIGxldCBjb29raWVTdHJpbmcgPSBrZXkgKyAnPScgKyB2YWx1ZTtcbiAgICAgICAgY29va2llU3RyaW5nICs9IG9wdGlvbnMucGF0aCA/ICc7cGF0aD0nICsgb3B0aW9ucy5wYXRoIDogJyc7XG4gICAgICAgIGNvb2tpZVN0cmluZyArPSBvcHRpb25zLmRvbWFpbiA/ICc7ZG9tYWluPScgKyBvcHRpb25zLmRvbWFpbiA6ICcnO1xuICAgICAgICBjb29raWVTdHJpbmcgKz0gb3B0aW9ucy5leHBpcmVzID8gJztleHBpcmVzPScgKyBvcHRpb25zLmV4cGlyZXMudG9VVENTdHJpbmcoKSA6ICcnO1xuICAgICAgICBjb29raWVTdHJpbmcgKz0gb3B0aW9ucy5zZWN1cmUgPyAnO3NlY3VyZScgOiAnJztcbiAgICAgICAgY29va2llU3RyaW5nICs9IG9wdGlvbnMuc2FtZVNpdGUgPyAnO1NhbWVTaXRlPScgKyBvcHRpb25zLnNhbWVTaXRlIDogJyc7XG5cbiAgICAgICAgcmV0dXJuIGNvb2tpZVN0cmluZztcbiAgICB9O1xuXG4gICAgQ29va2llcy5fZ2V0Q2FjaGVGcm9tU3RyaW5nID0gKGRvY3VtZW50Q29va2llKSA9PiB7XG4gICAgICAgIGxldCBjb29raWVDYWNoZSA9IHt9O1xuICAgICAgICBjb25zdCBjb29raWVzQXJyYXkgPSBkb2N1bWVudENvb2tpZSA/IGRvY3VtZW50Q29va2llLnNwbGl0KCc7ICcpIDogW107XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb29raWVzQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGNvb2tpZUt2cCA9IENvb2tpZXMuX2dldEtleVZhbHVlUGFpckZyb21Db29raWVTdHJpbmcoY29va2llc0FycmF5W2ldKTtcblxuICAgICAgICAgICAgaWYgKGNvb2tpZUNhY2hlW0Nvb2tpZXMuX2NhY2hlS2V5UHJlZml4ICsgY29va2llS3ZwLmtleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvb2tpZUNhY2hlW0Nvb2tpZXMuX2NhY2hlS2V5UHJlZml4ICsgY29va2llS3ZwLmtleV0gPSBjb29raWVLdnAudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29va2llQ2FjaGU7XG4gICAgfTtcblxuICAgIENvb2tpZXMuX2dldEtleVZhbHVlUGFpckZyb21Db29raWVTdHJpbmcgPSAoY29va2llU3RyaW5nKSA9PiB7XG4gICAgICAgIC8vIFwiPVwiIGlzIGEgdmFsaWQgY2hhcmFjdGVyIGluIGEgY29va2llIHZhbHVlIGFjY29yZGluZyB0byBSRkM2MjY1LCBzbyBjYW5ub3QgYHNwbGl0KCc9JylgXG4gICAgICAgIGxldCBzZXBhcmF0b3JJbmRleCA9IGNvb2tpZVN0cmluZy5pbmRleE9mKCc9Jyk7XG5cbiAgICAgICAgLy8gSUUgb21pdHMgdGhlIFwiPVwiIHdoZW4gdGhlIGNvb2tpZSB2YWx1ZSBpcyBhbiBlbXB0eSBzdHJpbmdcbiAgICAgICAgc2VwYXJhdG9ySW5kZXggPSBzZXBhcmF0b3JJbmRleCA8IDAgPyBjb29raWVTdHJpbmcubGVuZ3RoIDogc2VwYXJhdG9ySW5kZXg7XG5cbiAgICAgICAgY29uc3Qga2V5ID0gY29va2llU3RyaW5nLnN1YnN0cigwLCBzZXBhcmF0b3JJbmRleCk7XG4gICAgICAgIGxldCBkZWNvZGVkS2V5O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZGVjb2RlZEtleSA9IGRlY29kZVVSSUNvbXBvbmVudChrZXkpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoY29uc29sZSAmJiB0eXBlb2YgY29uc29sZS5lcnJvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCBkZWNvZGUgY29va2llIHdpdGgga2V5IFwiJyArIGtleSArICdcIicsIGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtleTogZGVjb2RlZEtleSxcbiAgICAgICAgICAgIHZhbHVlOiBjb29raWVTdHJpbmcuc3Vic3RyKHNlcGFyYXRvckluZGV4ICsgMSkgLy8gRGVmZXIgZGVjb2RpbmcgdmFsdWUgdW50aWwgYWNjZXNzZWRcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgQ29va2llcy5fcmVuZXdDYWNoZSA9ICgpID0+IHtcbiAgICAgICAgQ29va2llcy5fY2FjaGUgPSBDb29raWVzLl9nZXRDYWNoZUZyb21TdHJpbmcoQ29va2llcy5fZG9jdW1lbnQuY29va2llKTtcbiAgICAgICAgQ29va2llcy5fY2FjaGVkRG9jdW1lbnRDb29raWUgPSBDb29raWVzLl9kb2N1bWVudC5jb29raWU7XG4gICAgfTtcblxuICAgIENvb2tpZXMuX2FyZUVuYWJsZWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlc3RLZXkgPSAnY29va2llcy5qcyc7XG4gICAgICAgIGNvbnN0IGFyZUVuYWJsZWQgPSBDb29raWVzLnNldCh0ZXN0S2V5LCAxKS5nZXQodGVzdEtleSkgPT09ICcxJztcbiAgICAgICAgQ29va2llcy5leHBpcmUodGVzdEtleSk7XG4gICAgICAgIHJldHVybiBhcmVFbmFibGVkO1xuICAgIH07XG5cbiAgICBDb29raWVzLmVuYWJsZWQgPSBDb29raWVzLl9hcmVFbmFibGVkKCk7XG5cbiAgICByZXR1cm4gQ29va2llcztcbn07XG5cbmdsb2JhbC5Db29raWVzID0gKGdsb2JhbCAmJiB0eXBlb2YgZ2xvYmFsLmRvY3VtZW50ID09PSAnb2JqZWN0JykgPyBmYWN0b3J5KGdsb2JhbCkgOiBmYWN0b3J5O1xuXG5leHBvcnQgZGVmYXVsdCBnbG9iYWwuQ29va2llcztcbiJdLCJuYW1lcyI6WyJmYWN0b3J5Iiwid2luZG93IiwiX2FyZ3VtZW50cyIsImFyZ3VtZW50cyIsIl90eXBlb2YiLCJkb2N1bWVudCIsIkVycm9yIiwiQ29va2llcyIsImtleSIsInZhbHVlIiwib3B0aW9ucyIsImxlbmd0aCIsImdldCIsInNldCIsIl9kb2N1bWVudCIsIl9jYWNoZUtleVByZWZpeCIsIl9tYXhFeHBpcmVEYXRlIiwiRGF0ZSIsImRlZmF1bHRzIiwicGF0aCIsInNlY3VyZSIsInNhbWVTaXRlIiwiX2NhY2hlZERvY3VtZW50Q29va2llIiwiY29va2llIiwiX3JlbmV3Q2FjaGUiLCJfY2FjaGUiLCJ1bmRlZmluZWQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfZ2V0RXh0ZW5kZWRPcHRpb25zIiwiZXhwaXJlcyIsIl9nZXRFeHBpcmVzRGF0ZSIsIl9nZW5lcmF0ZUNvb2tpZVN0cmluZyIsImV4cGlyZSIsImRvbWFpbiIsIl9pc1ZhbGlkRGF0ZSIsImRhdGUiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJpc05hTiIsImdldFRpbWUiLCJub3ciLCJJbmZpbml0eSIsInJlcGxhY2UiLCJlbmNvZGVVUklDb21wb25lbnQiLCJjb29raWVTdHJpbmciLCJ0b1VUQ1N0cmluZyIsIl9nZXRDYWNoZUZyb21TdHJpbmciLCJkb2N1bWVudENvb2tpZSIsImNvb2tpZUNhY2hlIiwiY29va2llc0FycmF5Iiwic3BsaXQiLCJpIiwiY29va2llS3ZwIiwiX2dldEtleVZhbHVlUGFpckZyb21Db29raWVTdHJpbmciLCJzZXBhcmF0b3JJbmRleCIsImluZGV4T2YiLCJzdWJzdHIiLCJkZWNvZGVkS2V5IiwiZSIsImNvbnNvbGUiLCJlcnJvciIsIl9hcmVFbmFibGVkIiwidGVzdEtleSIsImFyZUVuYWJsZWQiLCJlbmFibGVkIiwiZ2xvYmFsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/cookies.js\n\n}");
/***/ }),
/***/ "./app/utils/cron-ui.js":
/*!******************************!*\
!*** ./app/utils/cron-ui.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable */\n\n/*\n * This file is part of the Arnapou jqCron package.\n *\n * (c) Arnaud Buathier \n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Default settings\n */\nvar jqCronDefaultSettings = {\n texts: {},\n monthdays: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],\n hours: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23],\n hour_labels: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\", \"21\", \"22\", \"23\"],\n minutes: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59],\n lang: 'en',\n enabled_minute: false,\n enabled_hour: true,\n enabled_day: true,\n enabled_week: true,\n enabled_month: true,\n enabled_year: true,\n multiple_dom: false,\n multiple_month: false,\n multiple_mins: false,\n multiple_dow: false,\n multiple_time_hours: false,\n multiple_time_minutes: false,\n numeric_zero_pad: false,\n default_period: 'day',\n default_value: '',\n no_reset_button: true,\n disabled: false,\n bind_to: null,\n bind_method: {\n set: function set($element, value) {\n $element.is(':input') ? $element.val(value) : $element.data('jqCronValue', value);\n },\n get: function get($element) {\n return $element.is(':input') ? $element.val() : $element.data('jqCronValue');\n }\n }\n};\n\n/**\n * Custom extend of json for jqCron settings.\n * We don't use jQuery.extend because simple extend does not fit our needs, and deep extend has a bad\n * feature for us : it replaces keys of \"Arrays\" instead of replacing the full array.\n */\n(function ($) {\n var _extend = function extend(dst, src) {\n for (var i in src) {\n if ($.isPlainObject(src[i])) {\n dst[i] = _extend(dst[i] && $.isPlainObject(dst[i]) ? dst[i] : {}, src[i]);\n } else if ($.isArray(src[i])) {\n dst[i] = src[i].slice(0);\n } else if (src[i] !== undefined) {\n dst[i] = src[i];\n }\n }\n return dst;\n };\n this.jqCronMergeSettings = function (obj) {\n return _extend(_extend({}, jqCronDefaultSettings), obj || {});\n };\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n\n/**\n * Shortcut to get the instance of jqCron instance from one jquery object\n */\n(function ($) {\n $.fn.jqCronGetInstance = function () {\n return this.data('jqCron');\n };\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n\n/**\n * Main plugin\n */\n(function ($) {\n $.fn.jqCron = function (settings) {\n var saved_settings = settings;\n return this.each(function () {\n var cron, saved;\n var $this = $(this);\n var settings = jqCronMergeSettings(saved_settings); // clone settings\n var translations = settings.texts[settings.lang];\n if (_typeof(translations) !== 'object' || $.isEmptyObject(translations)) {\n console && console.error('Missing translations for language \"' + settings.lang + '\". ' + 'Please include jqCron.' + settings.lang + '.js or manually provide ' + 'the necessary translations when calling $.fn.jqCron().');\n return;\n }\n if (!settings.jquery_container) {\n if ($this.is(':container')) {\n settings.jquery_element = $this.uniqueId('jqCron');\n } else if ($this.is(':autoclose')) {\n // delete already generated dom if exists\n if ($this.next('.jqCron').length == 1) {\n $this.next('.jqCron').remove();\n }\n // generate new\n settings.jquery_element = $(' ').uniqueId('jqCron').insertAfter($this);\n } else {\n console && console.error(settings.texts[settings.lang].error1.replace('%s', this.tagName));\n return;\n }\n }\n\n // autoset bind_to if it is an input\n if ($this.is(':input')) {\n settings.bind_to = settings.bind_to || $this;\n }\n\n // init cron object\n if (settings.bind_to) {\n if (settings.bind_to.is(':input')) {\n // auto bind from input to object if an input, textarea ...\n settings.bind_to.blur(function () {\n var value = settings.bind_method.get(settings.bind_to);\n $this.jqCronGetInstance().setCron(value);\n });\n }\n saved = settings.bind_method.get(settings.bind_to);\n cron = new jqCron(settings);\n cron.setCron(saved);\n } else {\n cron = new jqCron(settings);\n }\n $(this).data('jqCron', cron);\n });\n };\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n\n/**\n * jqCron class\n */\n(function ($) {\n var jqCronInstances = [];\n function jqCron(settings) {\n var _initialized = false;\n var _self = this;\n var _$elt = this;\n var _$obj = $(' ');\n var _$blocks = $(' ');\n var _$blockPERIOD = $(' ');\n var _$blockDOM = $(' ');\n var _$blockMONTH = $(' ');\n var _$blockMINS = $(' ');\n var _$blockDOW = $(' ');\n var _$blockTIME = $(' ');\n var _$cross = $('✘ ');\n var _selectors = [];\n var _selectorPeriod, _selectorMins, _selectorTimeH, _selectorTimeM, _selectorDow, _selectorDom, _selectorMonth;\n\n // instanciate a new selector\n function newSelector($block, multiple, type) {\n var selector = new jqCronSelector(_self, $block, multiple, type);\n selector.$.bind('selector:open', function () {\n // we close all opened selectors of all other jqCron\n for (var n = jqCronInstances.length; n--;) {\n if (jqCronInstances[n] != _self) {\n jqCronInstances[n].closeSelectors();\n } else {\n // we close all other opened selectors of this jqCron\n for (var o = _selectors.length; o--;) {\n if (_selectors[o] != selector) {\n _selectors[o].close();\n }\n }\n }\n }\n });\n selector.$.bind('selector:change', function () {\n var boundChanged = false;\n // don't propagate if not initialized\n if (!_initialized) return;\n // bind data between two minute selectors (only if they have the same multiple settings)\n if (settings.multiple_mins == settings.multiple_time_minutes) {\n if (selector == _selectorMins) {\n boundChanged = _selectorTimeM.setValue(_selectorMins.getValue());\n } else if (selector == _selectorTimeM) {\n boundChanged = _selectorMins.setValue(_selectorTimeM.getValue());\n }\n }\n // we propagate the change event to the main object\n boundChanged || _$obj.trigger('cron:change', _self.getCron());\n });\n _selectors.push(selector);\n return selector;\n }\n\n // disable the selector\n this.disable = function () {\n _$obj.addClass('disable');\n settings.disable = true;\n _self.closeSelectors();\n };\n\n // return if the selector is disabled\n this.isDisabled = function () {\n return settings.disable == true;\n };\n\n // enable the selector\n this.enable = function () {\n _$obj.removeClass('disable');\n settings.disable = false;\n };\n\n // get cron value\n this.getCron = function () {\n var period = _selectorPeriod.getValue();\n var items = ['*', '*', '*', '*', '*'];\n if (period == 'hour') {\n items[0] = _selectorMins.getCronValue();\n }\n if (period == 'day' || period == 'week' || period == 'month' || period == 'year') {\n items[0] = _selectorTimeM.getCronValue();\n items[1] = _selectorTimeH.getCronValue();\n }\n if (period == 'month' || period == 'year') {\n items[2] = _selectorDom.getCronValue();\n }\n if (period == 'year') {\n items[3] = _selectorMonth.getCronValue();\n }\n if (period == 'week') {\n items[4] = _selectorDow.getCronValue();\n }\n return items.join(' ');\n };\n\n // set cron (string like * * * * *)\n this.setCron = function (str) {\n if (!str) return;\n try {\n str = str.replace(/\\s+/g, ' ').replace(/^ +/, '').replace(/ +$/, ''); // sanitize\n var mask = str.replace(/[^\\* ]/g, '-').replace(/-+/g, '-').replace(/ +/g, '');\n var items = str.split(' ');\n if (items.length != 5) _self.error(_self.getText('error2'));\n if (mask == '*****') {\n // 1 possibility\n _selectorPeriod.setValue('minute');\n } else if (mask == '-****') {\n // 1 possibility\n _selectorPeriod.setValue('hour');\n _selectorMins.setCronValue(items[0]);\n _selectorTimeM.setCronValue(items[0]);\n } else if (mask.substring(2, mask.length) == '***') {\n // 4 possibilities\n _selectorPeriod.setValue('day');\n _selectorMins.setCronValue(items[0]);\n _selectorTimeM.setCronValue(items[0]);\n _selectorTimeH.setCronValue(items[1]);\n } else if (mask.substring(2, mask.length) == '-**') {\n // 4 possibilities\n _selectorPeriod.setValue('month');\n _selectorMins.setCronValue(items[0]);\n _selectorTimeM.setCronValue(items[0]);\n _selectorTimeH.setCronValue(items[1]);\n _selectorDom.setCronValue(items[2]);\n } else if (mask.substring(2, mask.length) == '**-') {\n // 4 possibilities\n _selectorPeriod.setValue('week');\n _selectorMins.setCronValue(items[0]);\n _selectorTimeM.setCronValue(items[0]);\n _selectorTimeH.setCronValue(items[1]);\n _selectorDow.setCronValue(items[4]);\n } else if (mask.substring(3, mask.length) == '-*') {\n // 8 possibilities\n _selectorPeriod.setValue('year');\n _selectorMins.setCronValue(items[0]);\n _selectorTimeM.setCronValue(items[0]);\n _selectorTimeH.setCronValue(items[1]);\n _selectorDom.setCronValue(items[2]);\n _selectorMonth.setCronValue(items[3]);\n } else {\n _self.error(_self.getText('error4'));\n }\n _self.clearError();\n } catch (e) {}\n };\n\n // close all child selectors\n this.closeSelectors = function () {\n for (var n = _selectors.length; n--;) {\n _selectors[n].close();\n }\n };\n\n // get the main element id\n this.getId = function () {\n return _$elt.attr('id');\n };\n\n // get the translated text\n this.getText = function (key) {\n var text = settings.texts[settings.lang][key] || null;\n if (typeof text == \"string\" && text.match(' )/gi, '');\n text = '' + text + ' ';\n }\n return text;\n };\n\n // get the human readable text\n this.getHumanText = function () {\n var texts = [];\n _$obj.find('> span > span:visible').find('.jqCron-text, .jqCron-selector > span').each(function () {\n var text = $(this).text().replace(/\\s+$/g, '').replace(/^\\s+/g, '');\n text && texts.push(text);\n });\n return texts.join(' ').replace(/\\s:\\s/g, ':');\n };\n\n // get settings\n this.getSettings = function () {\n return settings;\n };\n\n // display an error\n this.error = function (msg) {\n console && console.error('[jqCron Error] ' + msg);\n _$obj.addClass('jqCron-error').attr('title', msg);\n throw msg;\n };\n\n // clear error\n this.clearError = function () {\n _$obj.attr('title', '').removeClass('jqCron-error');\n };\n\n // clear\n this.clear = function () {\n _selectorDom.setValue([]);\n _selectorDow.setValue([]);\n _selectorMins.setValue([]);\n _selectorMonth.setValue([]);\n _selectorTimeH.setValue([]);\n _selectorTimeM.setValue([]);\n _self.triggerChange();\n };\n\n // init (called in constructor)\n this.init = function () {\n var n, i, labelsList, list;\n if (_initialized) return;\n settings = jqCronMergeSettings(settings);\n settings.jquery_element || _self.error(_self.getText('error3'));\n _$elt = settings.jquery_element;\n _$elt.append(_$obj);\n _$obj.data('id', settings.id);\n _$obj.data('jqCron', _self);\n _$obj.append(_$blocks);\n settings.no_reset_button || _$obj.append(_$cross);\n !settings.disable || _$obj.addClass('disable');\n _$blocks.append(_$blockPERIOD);\n if (/^(ko)$/i.test(settings.lang)) {\n _$blocks.append(_$blockMONTH, _$blockDOM);\n } else {\n _$blocks.append(_$blockDOM, _$blockMONTH);\n }\n _$blocks.append(_$blockMINS);\n _$blocks.append(_$blockDOW);\n _$blocks.append(_$blockTIME);\n\n // various binding\n _$cross.click(function () {\n _self.isDisabled() || _self.clear();\n });\n\n // binding from cron to target\n _$obj.bind('cron:change', function (evt, value) {\n if (!settings.bind_to) return;\n settings.bind_method.set && settings.bind_method.set(settings.bind_to, value);\n _self.clearError();\n });\n\n // PERIOD\n _$blockPERIOD.append(_self.getText('text_period'));\n _selectorPeriod = newSelector(_$blockPERIOD, false, 'period');\n settings.enabled_minute && _selectorPeriod.add('minute', _self.getText('name_minute'));\n settings.enabled_hour && _selectorPeriod.add('hour', _self.getText('name_hour'));\n settings.enabled_day && _selectorPeriod.add('day', _self.getText('name_day'));\n settings.enabled_week && _selectorPeriod.add('week', _self.getText('name_week'));\n settings.enabled_month && _selectorPeriod.add('month', _self.getText('name_month'));\n settings.enabled_year && _selectorPeriod.add('year', _self.getText('name_year'));\n _selectorPeriod.$.bind('selector:change', function (e, value) {\n _$blockDOM.hide();\n _$blockMONTH.hide();\n _$blockMINS.hide();\n _$blockDOW.hide();\n _$blockTIME.hide();\n if (value == 'hour') {\n _$blockMINS.show();\n } else if (value == 'day') {\n _$blockTIME.show();\n } else if (value == 'week') {\n _$blockDOW.show();\n _$blockTIME.show();\n } else if (value == 'month') {\n _$blockDOM.show();\n _$blockTIME.show();\n } else if (value == 'year') {\n _$blockDOM.show();\n _$blockMONTH.show();\n _$blockTIME.show();\n }\n });\n _selectorPeriod.setValue(settings.default_period);\n\n // MINS (minutes)\n _$blockMINS.append(_self.getText('text_mins'));\n _selectorMins = newSelector(_$blockMINS, settings.multiple_mins, 'minutes');\n for (i = 0, list = settings.minutes; i < list.length; i++) {\n _selectorMins.add(list[i], list[i]);\n }\n\n // TIME (hour:min)\n _$blockTIME.append(_self.getText('text_time'));\n _selectorTimeH = newSelector(_$blockTIME, settings.multiple_time_hours, 'time_hours');\n for (i = 0, list = settings.hours, labelsList = settings.hour_labels; i < list.length; i++) {\n _selectorTimeH.add(list[i], labelsList[i]);\n }\n _selectorTimeM = newSelector(_$blockTIME, settings.multiple_time_minutes, 'time_minutes');\n for (i = 0, list = settings.minutes; i < list.length; i++) {\n _selectorTimeM.add(list[i], list[i]);\n }\n\n // DOW (day of week)\n _$blockDOW.append(_self.getText('text_dow'));\n _selectorDow = newSelector(_$blockDOW, settings.multiple_dow, 'day_of_week');\n for (i = 0, list = _self.getText('weekdays'); i < list.length; i++) {\n _selectorDow.add(i + 1, list[i]);\n }\n\n // DOM (day of month)\n _$blockDOM.append(_self.getText('text_dom'));\n _selectorDom = newSelector(_$blockDOM, settings.multiple_dom, 'day_of_month');\n for (i = 0, list = settings.monthdays; i < list.length; i++) {\n _selectorDom.add(list[i], list[i]);\n }\n\n // MONTH (day of week)\n _$blockMONTH.append(_self.getText('text_month'));\n _selectorMonth = newSelector(_$blockMONTH, settings.multiple_month, 'month');\n for (i = 0, list = _self.getText('months'); i < list.length; i++) {\n _selectorMonth.add(i + 1, list[i]);\n }\n\n // close all selectors when we click in body\n $('body').click(function () {\n var i,\n n = _selectors.length;\n for (i = 0; i < n; i++) {\n _selectors[i].close();\n }\n });\n _initialized = true;\n\n // default value\n if (settings.default_value) {\n _self.setCron(settings.default_value);\n }\n };\n\n // trigger a change event\n this.triggerChange = function () {\n _$obj.trigger('cron:change', _self.getCron());\n };\n\n // store instance in array\n jqCronInstances.push(this);\n\n // expose main jquery object\n this.$ = _$obj;\n\n // init\n try {\n this.init();\n _self.triggerChange();\n } catch (e) {}\n }\n this.jqCron = jqCron;\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n\n/**\n * jqCronSelector class\n */\n(function ($) {\n function jqCronSelector(_cron, _$block, _multiple, _type) {\n var _self = this;\n var _$list = $('');\n var _$title = $(' ');\n var _$selector = $(' ');\n var _values = {};\n var _value = [];\n var _hasNumericTexts = true;\n var _numeric_zero_pad = _cron.getSettings().numeric_zero_pad;\n\n // return an array without doublon\n function array_unique(l) {\n var i = 0,\n n = l.length,\n k = {},\n a = [];\n while (i < n) {\n k[l[i]] || (k[l[i]] = true && a.push(l[i]));\n i++;\n }\n return a;\n }\n\n // get the value (an array if multiple, else a single value)\n this.getValue = function () {\n return _multiple ? _value : _value[0];\n };\n\n // get a correct string for cron\n this.getCronValue = function () {\n if (_value.length == 0) return '*';\n var cron = [_value[0]],\n i,\n s = _value[0],\n c = _value[0],\n n = _value.length;\n for (i = 1; i < n; i++) {\n if (_value[i] == c + 1) {\n c = _value[i];\n cron[cron.length - 1] = s + '-' + c;\n } else {\n s = c = _value[i];\n cron.push(c);\n }\n }\n return cron.join(',');\n };\n\n // set the cron value\n this.setCronValue = function (str) {\n var values = [],\n m,\n i,\n n;\n if (str !== '*') {\n while (str != '') {\n // test \"*/n\" expression\n m = str.match(/^\\*\\/([0-9]+),?/);\n if (m && m.length == 2) {\n for (i = 0; i <= 59; i += m[1] | 0) {\n values.push(i);\n }\n str = str.replace(m[0], '');\n continue;\n }\n // test \"a-b/n\" expression\n m = str.match(/^([0-9]+)-([0-9]+)\\/([0-9]+),?/);\n if (m && m.length == 4) {\n for (i = m[1] | 0; i <= (m[2] | 0); i += m[3] | 0) {\n values.push(i);\n }\n str = str.replace(m[0], '');\n continue;\n }\n // test \"a-b\" expression\n m = str.match(/^([0-9]+)-([0-9]+),?/);\n if (m && m.length == 3) {\n for (i = m[1] | 0; i <= (m[2] | 0); i++) {\n values.push(i);\n }\n str = str.replace(m[0], '');\n continue;\n }\n // test \"c\" expression\n m = str.match(/^([0-9]+),?/);\n if (m && m.length == 2) {\n values.push(m[1] | 0);\n str = str.replace(m[0], '');\n continue;\n }\n // something goes wrong in the expression\n return;\n }\n }\n _self.setValue(values);\n };\n\n // close the selector\n this.close = function () {\n _$selector.trigger('selector:close');\n };\n\n // open the selector\n this.open = function () {\n _$selector.trigger('selector:open');\n };\n\n // whether the selector is open\n this.isOpened = function () {\n return _$list.is(':visible');\n };\n\n // add a selected value to the list\n this.addValue = function (key) {\n var values = _multiple ? _value.slice(0) : []; // clone array\n values.push(key);\n _self.setValue(values);\n };\n\n // remove a selected value from the list\n this.removeValue = function (key) {\n if (_multiple) {\n var i,\n newValue = [];\n for (i = 0; i < _value.length; i++) {\n if (key != [_value[i]]) {\n newValue.push(_value[i]);\n }\n }\n _self.setValue(newValue);\n } else {\n _self.clear();\n }\n };\n\n // set the selected value(s) of the list\n this.setValue = function (keys) {\n var i,\n newKeys = [],\n saved = _value.join(' ');\n if (!$.isArray(keys)) keys = [keys];\n _$list.find('li').removeClass('selected');\n keys = array_unique(keys);\n keys.sort(function (a, b) {\n var ta = _typeof(a);\n var tb = _typeof(b);\n if (ta == tb && ta == \"number\") return a - b;else return String(a) == String(b) ? 0 : String(a) < String(b) ? -1 : 1;\n });\n if (_multiple) {\n for (i = 0; i < keys.length; i++) {\n if (keys[i] in _values) {\n _values[keys[i]].addClass('selected');\n newKeys.push(keys[i]);\n }\n }\n } else {\n if (keys[0] in _values) {\n _values[keys[0]].addClass('selected');\n newKeys.push(keys[0]);\n }\n }\n // remove unallowed values\n _value = newKeys;\n if (saved != _value.join(' ')) {\n _$selector.trigger('selector:change', _multiple ? keys : keys[0]);\n return true;\n }\n return false;\n };\n\n // get the title text\n this.getTitleText = function () {\n var getValueText = function getValueText(key) {\n return key in _values ? _values[key].text() : key;\n };\n if (_value.length == 0) {\n return _cron.getText('empty_' + _type) || _cron.getText('empty');\n }\n var cron = [getValueText(_value[0])],\n i,\n s = _value[0],\n c = _value[0],\n n = _value.length;\n for (i = 1; i < n; i++) {\n if (_value[i] == c + 1) {\n c = _value[i];\n cron[cron.length - 1] = getValueText(s) + '-' + getValueText(c);\n } else {\n s = c = _value[i];\n cron.push(getValueText(c));\n }\n }\n return cron.join(',');\n };\n\n // clear list\n this.clear = function () {\n _values = {};\n _self.setValue([]);\n _$list.empty();\n };\n\n // add a (key, value) pair\n this.add = function (key, value) {\n if (!(value + '').match(/^[0-9]+$/)) _hasNumericTexts = false;\n if (_numeric_zero_pad && _hasNumericTexts && value < 10) {\n value = '0' + value;\n }\n var $item = $('' + value + ' ');\n _$list.append($item);\n _values[key] = $item;\n $item.click(function () {\n if (_multiple && $(this).hasClass('selected')) {\n _self.removeValue(key);\n } else {\n _self.addValue(key);\n if (!_multiple) _self.close();\n }\n });\n };\n\n // expose main jquery object\n this.$ = _$selector;\n\n // constructor\n _$block.find('b:eq(0)').after(_$selector).remove();\n _$selector.addClass('jqCron-selector-' + _$block.find('.jqCron-selector').length).append(_$title).append(_$list).bind('selector:open', function () {\n if (_hasNumericTexts) {\n var nbcols = 1,\n n = _$list.find('li').length;\n if (n > 5 && n <= 16) nbcols = 2;else if (n > 16 && n <= 23) nbcols = 3;else if (n > 23 && n <= 40) nbcols = 4;else if (n > 40) nbcols = 5;\n _$list.addClass('cols' + nbcols);\n }\n _$list.show();\n }).bind('selector:close', function () {\n _$list.hide();\n }).bind('selector:change', function () {\n _$title.html(_self.getTitleText());\n }).click(function (e) {\n e.stopPropagation();\n }).trigger('selector:change');\n $.fn.disableSelection && _$selector.disableSelection(); // only work with jQuery UI\n _$title.click(function (e) {\n _self.isOpened() || _cron.isDisabled() ? _self.close() : _self.open();\n });\n _self.close();\n _self.clear();\n }\n this.jqCronSelector = jqCronSelector;\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n\n/**\n * Generate unique id for each element.\n * Skip elements which have already an id.\n */\n(function ($) {\n var jqUID = 0;\n var jqGetUID = function jqGetUID(prefix) {\n var id;\n while (1) {\n jqUID++;\n id = (prefix || 'JQUID') + '' + jqUID;\n if (!document.getElementById(id)) return id;\n }\n };\n $.fn.uniqueId = function (prefix) {\n return this.each(function () {\n if ($(this).attr('id')) return;\n var id = jqGetUID(prefix);\n $(this).attr('id', id);\n });\n };\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n\n/**\n * Extends jQuery selectors with new block selector\n */\n(function ($) {\n $.extend($.expr[':'], {\n container: function container(a) {\n return (a.tagName + '').toLowerCase() in {\n a: 1,\n abbr: 1,\n acronym: 1,\n address: 1,\n b: 1,\n big: 1,\n blockquote: 1,\n button: 1,\n cite: 1,\n code: 1,\n dd: 1,\n del: 1,\n dfn: 1,\n div: 1,\n dt: 1,\n em: 1,\n fieldset: 1,\n form: 1,\n h1: 1,\n h2: 1,\n h3: 1,\n h4: 1,\n h5: 1,\n h6: 1,\n i: 1,\n ins: 1,\n kbd: 1,\n label: 1,\n li: 1,\n p: 1,\n pre: 1,\n q: 1,\n samp: 1,\n small: 1,\n span: 1,\n strong: 1,\n sub: 1,\n sup: 1,\n td: 1,\n tt: 1\n };\n },\n autoclose: function autoclose(a) {\n return (a.tagName + '').toLowerCase() in {\n area: 1,\n base: 1,\n basefont: 1,\n br: 1,\n col: 1,\n frame: 1,\n hr: 1,\n img: 1,\n input: 1,\n link: 1,\n meta: 1,\n param: 1\n };\n }\n });\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvY3Jvbi11aS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJQyxxQkFBcUIsR0FBRztFQUN4QkMsS0FBSyxFQUFFLENBQUMsQ0FBQztFQUNUQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7RUFDOUhDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0VBQzdGQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztFQUNuSkMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7RUFDL09DLElBQUksRUFBRSxJQUFJO0VBQ1ZDLGNBQWMsRUFBRSxLQUFLO0VBQ3JCQyxZQUFZLEVBQUUsSUFBSTtFQUNsQkMsV0FBVyxFQUFFLElBQUk7RUFDakJDLFlBQVksRUFBRSxJQUFJO0VBQ2xCQyxhQUFhLEVBQUUsSUFBSTtFQUNuQkMsWUFBWSxFQUFFLElBQUk7RUFDbEJDLFlBQVksRUFBRSxLQUFLO0VBQ25CQyxjQUFjLEVBQUUsS0FBSztFQUNyQkMsYUFBYSxFQUFFLEtBQUs7RUFDcEJDLFlBQVksRUFBRSxLQUFLO0VBQ25CQyxtQkFBbUIsRUFBRSxLQUFLO0VBQzFCQyxxQkFBcUIsRUFBRSxLQUFLO0VBQzVCQyxnQkFBZ0IsRUFBRSxLQUFLO0VBQ3ZCQyxjQUFjLEVBQUUsS0FBSztFQUNyQkMsYUFBYSxFQUFFLEVBQUU7RUFDakJDLGVBQWUsRUFBRSxJQUFJO0VBQ3JCQyxRQUFRLEVBQUUsS0FBSztFQUNmQyxPQUFPLEVBQUUsSUFBSTtFQUNiQyxXQUFXLEVBQUU7SUFDVEMsR0FBRyxFQUFFLFNBQUxBLEdBQUdBLENBQVdDLFFBQVEsRUFBRUMsS0FBSyxFQUFFO01BQzNCRCxRQUFRLENBQUNFLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBR0YsUUFBUSxDQUFDRyxHQUFHLENBQUNGLEtBQUssQ0FBQyxHQUFHRCxRQUFRLENBQUNJLElBQUksQ0FBQyxhQUFhLEVBQUVILEtBQUssQ0FBQztJQUNyRixDQUFDO0lBQ0RJLEdBQUcsRUFBRSxTQUFMQSxHQUFHQSxDQUFXTCxRQUFRLEVBQUU7TUFDcEIsT0FBT0EsUUFBUSxDQUFDRSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUdGLFFBQVEsQ0FBQ0csR0FBRyxDQUFDLENBQUMsR0FBR0gsUUFBUSxDQUFDSSxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ2hGO0VBQ0o7QUFDSixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLFVBQVNoQyxDQUFDLEVBQUM7RUFDUixJQUFJa0MsT0FBTSxHQUFHLFNBQVRBLE1BQU1BLENBQVlDLEdBQUcsRUFBRUMsR0FBRyxFQUFFO0lBQzVCLEtBQUksSUFBSUMsQ0FBQyxJQUFJRCxHQUFHLEVBQUU7TUFDZCxJQUFHcEMsQ0FBQyxDQUFDc0MsYUFBYSxDQUFDRixHQUFHLENBQUNDLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDeEJGLEdBQUcsQ0FBQ0UsQ0FBQyxDQUFDLEdBQUdILE9BQU0sQ0FBQ0MsR0FBRyxDQUFDRSxDQUFDLENBQUMsSUFBSXJDLENBQUMsQ0FBQ3NDLGFBQWEsQ0FBQ0gsR0FBRyxDQUFDRSxDQUFDLENBQUMsQ0FBQyxHQUFHRixHQUFHLENBQUNFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFRCxHQUFHLENBQUNDLENBQUMsQ0FBQyxDQUFDO01BQzVFLENBQUMsTUFDSSxJQUFHckMsQ0FBQyxDQUFDdUMsT0FBTyxDQUFDSCxHQUFHLENBQUNDLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDdkJGLEdBQUcsQ0FBQ0UsQ0FBQyxDQUFDLEdBQUdELEdBQUcsQ0FBQ0MsQ0FBQyxDQUFDLENBQUNHLEtBQUssQ0FBQyxDQUFDLENBQUM7TUFDNUIsQ0FBQyxNQUNJLElBQUdKLEdBQUcsQ0FBQ0MsQ0FBQyxDQUFDLEtBQUtJLFNBQVMsRUFBRTtRQUMxQk4sR0FBRyxDQUFDRSxDQUFDLENBQUMsR0FBR0QsR0FBRyxDQUFDQyxDQUFDLENBQUM7TUFDbkI7SUFDSjtJQUNBLE9BQU9GLEdBQUc7RUFDZCxDQUFDO0VBQ0QsSUFBSSxDQUFDTyxtQkFBbUIsR0FBRyxVQUFTQyxHQUFHLEVBQUU7SUFDckMsT0FBT1QsT0FBTSxDQUFDQSxPQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUVqQyxxQkFBcUIsQ0FBQyxFQUFFMEMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQy9ELENBQUM7QUFDTCxDQUFDLEVBQUVDLElBQUksQ0FBQ0MsTUFBTSxFQUFFN0MsK0NBQUMsQ0FBQzs7QUFFbEI7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxVQUFTQSxDQUFDLEVBQUM7RUFDUkEsQ0FBQyxDQUFDOEMsRUFBRSxDQUFDQyxpQkFBaUIsR0FBRyxZQUFXO0lBQ2hDLE9BQU8sSUFBSSxDQUFDZixJQUFJLENBQUMsUUFBUSxDQUFDO0VBQzlCLENBQUM7QUFDTCxDQUFDLEVBQUVZLElBQUksQ0FBQ0MsTUFBTSxFQUFFN0MsK0NBQUMsQ0FBQzs7QUFFbEI7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxVQUFTQSxDQUFDLEVBQUM7RUFDUkEsQ0FBQyxDQUFDOEMsRUFBRSxDQUFDRSxNQUFNLEdBQUcsVUFBU0MsUUFBUSxFQUFFO0lBQzdCLElBQUlDLGNBQWMsR0FBR0QsUUFBUTtJQUM3QixPQUFPLElBQUksQ0FBQ0UsSUFBSSxDQUFDLFlBQVc7TUFDeEIsSUFBSUMsSUFBSSxFQUFFQyxLQUFLO01BQ2YsSUFBSUMsS0FBSyxHQUFHdEQsQ0FBQyxDQUFDLElBQUksQ0FBQztNQUNuQixJQUFJaUQsUUFBUSxHQUFHUCxtQkFBbUIsQ0FBQ1EsY0FBYyxDQUFDLENBQUMsQ0FBQztNQUNwRCxJQUFJSyxZQUFZLEdBQUdOLFFBQVEsQ0FBQy9DLEtBQUssQ0FBQytDLFFBQVEsQ0FBQzFDLElBQUksQ0FBQztNQUVoRCxJQUFJaUQsT0FBQSxDQUFPRCxZQUFZLE1BQU0sUUFBUSxJQUFJdkQsQ0FBQyxDQUFDeUQsYUFBYSxDQUFDRixZQUFZLENBQUMsRUFBRTtRQUNwRUcsT0FBTyxJQUFJQSxPQUFPLENBQUNDLEtBQUssQ0FDcEIscUNBQXFDLEdBQUdWLFFBQVEsQ0FBQzFDLElBQUksR0FBRyxLQUFLLEdBQzdELHdCQUF3QixHQUFHMEMsUUFBUSxDQUFDMUMsSUFBSSxHQUFHLDBCQUEwQixHQUNyRSx3REFDSixDQUFDO1FBQ0Q7TUFDSjtNQUVBLElBQUcsQ0FBQzBDLFFBQVEsQ0FBQ1csZ0JBQWdCLEVBQUU7UUFDM0IsSUFBR04sS0FBSyxDQUFDeEIsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFO1VBQ3ZCbUIsUUFBUSxDQUFDWSxjQUFjLEdBQUdQLEtBQUssQ0FBQ1EsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUN0RCxDQUFDLE1BQ0ksSUFBR1IsS0FBSyxDQUFDeEIsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFO1VBQzVCO1VBQ0EsSUFBR3dCLEtBQUssQ0FBQ1MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ2xDVixLQUFLLENBQUNTLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQ0UsTUFBTSxDQUFDLENBQUM7VUFDbEM7VUFDQTtVQUNBaEIsUUFBUSxDQUFDWSxjQUFjLEdBQUc3RCxDQUFDLENBQUMsOEJBQThCLENBQUMsQ0FBQzhELFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQ0ksV0FBVyxDQUFDWixLQUFLLENBQUM7UUFDckcsQ0FBQyxNQUNJO1VBQ0RJLE9BQU8sSUFBSUEsT0FBTyxDQUFDQyxLQUFLLENBQUNWLFFBQVEsQ0FBQy9DLEtBQUssQ0FBQytDLFFBQVEsQ0FBQzFDLElBQUksQ0FBQyxDQUFDNEQsTUFBTSxDQUFDQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQ0MsT0FBTyxDQUFDLENBQUM7VUFDMUY7UUFDSjtNQUNKOztNQUVBO01BQ0EsSUFBR2YsS0FBSyxDQUFDeEIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ25CbUIsUUFBUSxDQUFDeEIsT0FBTyxHQUFHd0IsUUFBUSxDQUFDeEIsT0FBTyxJQUFJNkIsS0FBSztNQUNoRDs7TUFFQTtNQUNBLElBQUdMLFFBQVEsQ0FBQ3hCLE9BQU8sRUFBQztRQUNoQixJQUFHd0IsUUFBUSxDQUFDeEIsT0FBTyxDQUFDSyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUU7VUFDOUI7VUFDQW1CLFFBQVEsQ0FBQ3hCLE9BQU8sQ0FBQzZDLElBQUksQ0FBQyxZQUFVO1lBQzVCLElBQUl6QyxLQUFLLEdBQUdvQixRQUFRLENBQUN2QixXQUFXLENBQUNPLEdBQUcsQ0FBQ2dCLFFBQVEsQ0FBQ3hCLE9BQU8sQ0FBQztZQUN0RDZCLEtBQUssQ0FBQ1AsaUJBQWlCLENBQUMsQ0FBQyxDQUFDd0IsT0FBTyxDQUFDMUMsS0FBSyxDQUFDO1VBQzVDLENBQUMsQ0FBQztRQUNOO1FBQ0F3QixLQUFLLEdBQUdKLFFBQVEsQ0FBQ3ZCLFdBQVcsQ0FBQ08sR0FBRyxDQUFDZ0IsUUFBUSxDQUFDeEIsT0FBTyxDQUFDO1FBQ2xEMkIsSUFBSSxHQUFHLElBQUlKLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDO1FBQzNCRyxJQUFJLENBQUNtQixPQUFPLENBQUNsQixLQUFLLENBQUM7TUFDdkIsQ0FBQyxNQUNJO1FBQ0RELElBQUksR0FBRyxJQUFJSixNQUFNLENBQUNDLFFBQVEsQ0FBQztNQUMvQjtNQUNBakQsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDZ0MsSUFBSSxDQUFDLFFBQVEsRUFBRW9CLElBQUksQ0FBQztJQUNoQyxDQUFDLENBQUM7RUFDTixDQUFDO0FBQ0wsQ0FBQyxFQUFFUixJQUFJLENBQUNDLE1BQU0sRUFBRTdDLCtDQUFDLENBQUM7O0FBRWxCO0FBQ0E7QUFDQTtBQUNBLENBQUMsVUFBU0EsQ0FBQyxFQUFDO0VBQ1IsSUFBSXdFLGVBQWUsR0FBRyxFQUFFO0VBRXhCLFNBQVN4QixNQUFNQSxDQUFDQyxRQUFRLEVBQUU7SUFDdEIsSUFBSXdCLFlBQVksR0FBSSxLQUFLO0lBQ3pCLElBQUlDLEtBQUssR0FBVyxJQUFJO0lBQ3hCLElBQUlDLEtBQUssR0FBVyxJQUFJO0lBQ3hCLElBQUlDLEtBQUssR0FBVzVFLENBQUMsQ0FBQyx3Q0FBd0MsQ0FBQztJQUMvRCxJQUFJNkUsUUFBUSxHQUFRN0UsQ0FBQyxDQUFDLHFDQUFxQyxDQUFDO0lBQzVELElBQUk4RSxhQUFhLEdBQUc5RSxDQUFDLENBQUMscUNBQXFDLENBQUM7SUFDNUQsSUFBSStFLFVBQVUsR0FBTS9FLENBQUMsQ0FBQyxrQ0FBa0MsQ0FBQztJQUN6RCxJQUFJZ0YsWUFBWSxHQUFJaEYsQ0FBQyxDQUFDLG9DQUFvQyxDQUFDO0lBQzNELElBQUlpRixXQUFXLEdBQUtqRixDQUFDLENBQUMsbUNBQW1DLENBQUM7SUFDMUQsSUFBSWtGLFVBQVUsR0FBTWxGLENBQUMsQ0FBQyxrQ0FBa0MsQ0FBQztJQUN6RCxJQUFJbUYsV0FBVyxHQUFLbkYsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDO0lBQzFELElBQUlvRixPQUFPLEdBQVNwRixDQUFDLENBQUMsNENBQTRDLENBQUM7SUFDbkUsSUFBSXFGLFVBQVUsR0FBTSxFQUFFO0lBQ3RCLElBQUlDLGVBQWUsRUFBRUMsYUFBYSxFQUFFQyxjQUFjLEVBQUVDLGNBQWMsRUFBRUMsWUFBWSxFQUFFQyxZQUFZLEVBQUVDLGNBQWM7O0lBRTlHO0lBQ0EsU0FBU0MsV0FBV0EsQ0FBQ0MsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBQztNQUN4QyxJQUFJQyxRQUFRLEdBQUcsSUFBSUMsY0FBYyxDQUFDeEIsS0FBSyxFQUFFb0IsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLElBQUksQ0FBQztNQUNoRUMsUUFBUSxDQUFDakcsQ0FBQyxDQUFDbUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxZQUFVO1FBQ3ZDO1FBQ0EsS0FBSSxJQUFJQyxDQUFDLEdBQUc1QixlQUFlLENBQUNSLE1BQU0sRUFBRW9DLENBQUMsRUFBRSxHQUFHO1VBQ3RDLElBQUc1QixlQUFlLENBQUM0QixDQUFDLENBQUMsSUFBSTFCLEtBQUssRUFBRTtZQUM1QkYsZUFBZSxDQUFDNEIsQ0FBQyxDQUFDLENBQUNDLGNBQWMsQ0FBQyxDQUFDO1VBQ3ZDLENBQUMsTUFDSTtZQUNEO1lBQ0EsS0FBSSxJQUFJQyxDQUFDLEdBQUdqQixVQUFVLENBQUNyQixNQUFNLEVBQUVzQyxDQUFDLEVBQUUsR0FBRztjQUNqQyxJQUFHakIsVUFBVSxDQUFDaUIsQ0FBQyxDQUFDLElBQUlMLFFBQVEsRUFBRTtnQkFDMUJaLFVBQVUsQ0FBQ2lCLENBQUMsQ0FBQyxDQUFDQyxLQUFLLENBQUMsQ0FBQztjQUN6QjtZQUNKO1VBQ0o7UUFDSjtNQUNKLENBQUMsQ0FBQztNQUNGTixRQUFRLENBQUNqRyxDQUFDLENBQUNtRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsWUFBVTtRQUN6QyxJQUFJSyxZQUFZLEdBQUcsS0FBSztRQUN4QjtRQUNBLElBQUcsQ0FBQy9CLFlBQVksRUFBRTtRQUNsQjtRQUNBLElBQUd4QixRQUFRLENBQUNqQyxhQUFhLElBQUlpQyxRQUFRLENBQUM5QixxQkFBcUIsRUFBRTtVQUN6RCxJQUFHOEUsUUFBUSxJQUFJVixhQUFhLEVBQUU7WUFDMUJpQixZQUFZLEdBQUdmLGNBQWMsQ0FBQ2dCLFFBQVEsQ0FBQ2xCLGFBQWEsQ0FBQ21CLFFBQVEsQ0FBQyxDQUFDLENBQUM7VUFDcEUsQ0FBQyxNQUNJLElBQUdULFFBQVEsSUFBSVIsY0FBYyxFQUFFO1lBQ2hDZSxZQUFZLEdBQUdqQixhQUFhLENBQUNrQixRQUFRLENBQUNoQixjQUFjLENBQUNpQixRQUFRLENBQUMsQ0FBQyxDQUFDO1VBQ3BFO1FBQ0o7UUFDQTtRQUNBRixZQUFZLElBQUk1QixLQUFLLENBQUMrQixPQUFPLENBQUMsYUFBYSxFQUFFakMsS0FBSyxDQUFDa0MsT0FBTyxDQUFDLENBQUMsQ0FBQztNQUNqRSxDQUFDLENBQUM7TUFDRnZCLFVBQVUsQ0FBQ3dCLElBQUksQ0FBQ1osUUFBUSxDQUFDO01BQ3pCLE9BQU9BLFFBQVE7SUFDbkI7O0lBRUE7SUFDQSxJQUFJLENBQUNhLE9BQU8sR0FBRyxZQUFVO01BQ3JCbEMsS0FBSyxDQUFDbUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztNQUN6QjlELFFBQVEsQ0FBQzZELE9BQU8sR0FBRyxJQUFJO01BQ3ZCcEMsS0FBSyxDQUFDMkIsY0FBYyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7SUFFRDtJQUNBLElBQUksQ0FBQ1csVUFBVSxHQUFHLFlBQVc7TUFDekIsT0FBTy9ELFFBQVEsQ0FBQzZELE9BQU8sSUFBSSxJQUFJO0lBQ25DLENBQUM7O0lBRUQ7SUFDQSxJQUFJLENBQUNHLE1BQU0sR0FBRyxZQUFVO01BQ3BCckMsS0FBSyxDQUFDc0MsV0FBVyxDQUFDLFNBQVMsQ0FBQztNQUM1QmpFLFFBQVEsQ0FBQzZELE9BQU8sR0FBRyxLQUFLO0lBQzVCLENBQUM7O0lBRUQ7SUFDQSxJQUFJLENBQUNGLE9BQU8sR0FBRyxZQUFVO01BQ3JCLElBQUlPLE1BQU0sR0FBRzdCLGVBQWUsQ0FBQ29CLFFBQVEsQ0FBQyxDQUFDO01BQ3ZDLElBQUlVLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7TUFDckMsSUFBR0QsTUFBTSxJQUFJLE1BQU0sRUFBRTtRQUNqQkMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHN0IsYUFBYSxDQUFDOEIsWUFBWSxDQUFDLENBQUM7TUFDM0M7TUFDQSxJQUFHRixNQUFNLElBQUksS0FBSyxJQUFJQSxNQUFNLElBQUksTUFBTSxJQUFJQSxNQUFNLElBQUksT0FBTyxJQUFJQSxNQUFNLElBQUksTUFBTSxFQUFFO1FBQzdFQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUczQixjQUFjLENBQUM0QixZQUFZLENBQUMsQ0FBQztRQUN4Q0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHNUIsY0FBYyxDQUFDNkIsWUFBWSxDQUFDLENBQUM7TUFDNUM7TUFDQSxJQUFHRixNQUFNLElBQUksT0FBTyxJQUFJQSxNQUFNLElBQUksTUFBTSxFQUFFO1FBQ3RDQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUd6QixZQUFZLENBQUMwQixZQUFZLENBQUMsQ0FBQztNQUMxQztNQUNBLElBQUdGLE1BQU0sSUFBSSxNQUFNLEVBQUU7UUFDakJDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBR3hCLGNBQWMsQ0FBQ3lCLFlBQVksQ0FBQyxDQUFDO01BQzVDO01BQ0EsSUFBR0YsTUFBTSxJQUFJLE1BQU0sRUFBRTtRQUNqQkMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHMUIsWUFBWSxDQUFDMkIsWUFBWSxDQUFDLENBQUM7TUFDMUM7TUFDQSxPQUFPRCxLQUFLLENBQUNFLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDMUIsQ0FBQzs7SUFFRDtJQUNBLElBQUksQ0FBQy9DLE9BQU8sR0FBRyxVQUFTZ0QsR0FBRyxFQUFFO01BQ3pCLElBQUcsQ0FBQ0EsR0FBRyxFQUFFO01BQ1QsSUFBSTtRQUNBQSxHQUFHLEdBQUdBLEdBQUcsQ0FBQ25ELE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUNBLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUNBLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RSxJQUFJb0QsSUFBSSxHQUFHRCxHQUFHLENBQUNuRCxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDQSxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDQSxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUM3RSxJQUFJZ0QsS0FBSyxHQUFHRyxHQUFHLENBQUNFLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDMUIsSUFBSUwsS0FBSyxDQUFDcEQsTUFBTSxJQUFJLENBQUMsRUFBRVUsS0FBSyxDQUFDZixLQUFLLENBQUNlLEtBQUssQ0FBQ2dELE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzRCxJQUFHRixJQUFJLElBQUksT0FBTyxFQUFFO1VBQU87VUFDdkJsQyxlQUFlLENBQUNtQixRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ3RDLENBQUMsTUFDSSxJQUFHZSxJQUFJLElBQUksT0FBTyxFQUFFO1VBQU07VUFDM0JsQyxlQUFlLENBQUNtQixRQUFRLENBQUMsTUFBTSxDQUFDO1VBQ2hDbEIsYUFBYSxDQUFDb0MsWUFBWSxDQUFDUCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7VUFDcEMzQixjQUFjLENBQUNrQyxZQUFZLENBQUNQLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDLE1BQ0ksSUFBR0ksSUFBSSxDQUFDSSxTQUFTLENBQUMsQ0FBQyxFQUFFSixJQUFJLENBQUN4RCxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUU7VUFBSTtVQUNqRHNCLGVBQWUsQ0FBQ21CLFFBQVEsQ0FBQyxLQUFLLENBQUM7VUFDL0JsQixhQUFhLENBQUNvQyxZQUFZLENBQUNQLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztVQUNwQzNCLGNBQWMsQ0FBQ2tDLFlBQVksQ0FBQ1AsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1VBQ3JDNUIsY0FBYyxDQUFDbUMsWUFBWSxDQUFDUCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsQ0FBQyxNQUNJLElBQUdJLElBQUksQ0FBQ0ksU0FBUyxDQUFDLENBQUMsRUFBRUosSUFBSSxDQUFDeEQsTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFO1VBQUk7VUFDakRzQixlQUFlLENBQUNtQixRQUFRLENBQUMsT0FBTyxDQUFDO1VBQ2pDbEIsYUFBYSxDQUFDb0MsWUFBWSxDQUFDUCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7VUFDcEMzQixjQUFjLENBQUNrQyxZQUFZLENBQUNQLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztVQUNyQzVCLGNBQWMsQ0FBQ21DLFlBQVksQ0FBQ1AsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1VBQ3JDekIsWUFBWSxDQUFDZ0MsWUFBWSxDQUFDUCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxNQUNJLElBQUdJLElBQUksQ0FBQ0ksU0FBUyxDQUFDLENBQUMsRUFBRUosSUFBSSxDQUFDeEQsTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFO1VBQUk7VUFDakRzQixlQUFlLENBQUNtQixRQUFRLENBQUMsTUFBTSxDQUFDO1VBQ2hDbEIsYUFBYSxDQUFDb0MsWUFBWSxDQUFDUCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7VUFDcEMzQixjQUFjLENBQUNrQyxZQUFZLENBQUNQLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztVQUNyQzVCLGNBQWMsQ0FBQ21DLFlBQVksQ0FBQ1AsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1VBQ3JDMUIsWUFBWSxDQUFDaUMsWUFBWSxDQUFDUCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxNQUNJLElBQUlJLElBQUksQ0FBQ0ksU0FBUyxDQUFDLENBQUMsRUFBRUosSUFBSSxDQUFDeEQsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFO1VBQUk7VUFDakRzQixlQUFlLENBQUNtQixRQUFRLENBQUMsTUFBTSxDQUFDO1VBQ2hDbEIsYUFBYSxDQUFDb0MsWUFBWSxDQUFDUCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7VUFDcEMzQixjQUFjLENBQUNrQyxZQUFZLENBQUNQLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztVQUNyQzVCLGNBQWMsQ0FBQ21DLFlBQVksQ0FBQ1AsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1VBQ3JDekIsWUFBWSxDQUFDZ0MsWUFBWSxDQUFDUCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7VUFDbkN4QixjQUFjLENBQUMrQixZQUFZLENBQUNQLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDLE1BQ0k7VUFDRDFDLEtBQUssQ0FBQ2YsS0FBSyxDQUFDZSxLQUFLLENBQUNnRCxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEM7UUFDQWhELEtBQUssQ0FBQ21ELFVBQVUsQ0FBQyxDQUFDO01BQ3RCLENBQUMsQ0FBQyxPQUFNQyxDQUFDLEVBQUUsQ0FBQztJQUNoQixDQUFDOztJQUVEO0lBQ0EsSUFBSSxDQUFDekIsY0FBYyxHQUFHLFlBQVU7TUFDNUIsS0FBSSxJQUFJRCxDQUFDLEdBQUdmLFVBQVUsQ0FBQ3JCLE1BQU0sRUFBRW9DLENBQUMsRUFBRSxHQUFHO1FBQ2pDZixVQUFVLENBQUNlLENBQUMsQ0FBQyxDQUFDRyxLQUFLLENBQUMsQ0FBQztNQUN6QjtJQUNKLENBQUM7O0lBRUQ7SUFDQSxJQUFJLENBQUN3QixLQUFLLEdBQUcsWUFBVTtNQUNuQixPQUFPcEQsS0FBSyxDQUFDcUQsSUFBSSxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDOztJQUVEO0lBQ0EsSUFBSSxDQUFDTixPQUFPLEdBQUcsVUFBU08sR0FBRyxFQUFFO01BQ3pCLElBQUlDLElBQUksR0FBR2pGLFFBQVEsQ0FBQy9DLEtBQUssQ0FBQytDLFFBQVEsQ0FBQzFDLElBQUksQ0FBQyxDQUFDMEgsR0FBRyxDQUFDLElBQUksSUFBSTtNQUNyRCxJQUFHLE9BQU9DLElBQUssSUFBSSxRQUFRLElBQUlBLElBQUksQ0FBQ0MsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDO1FBQzVDRCxJQUFJLEdBQUdBLElBQUksQ0FBQzlELE9BQU8sQ0FBQyxhQUFhLEVBQUUsd0NBQXdDLENBQUM7UUFDNUU4RCxJQUFJLEdBQUcsNEJBQTRCLEdBQUdBLElBQUksR0FBRyxTQUFTO01BQzFEO01BQ0EsT0FBT0EsSUFBSTtJQUNmLENBQUM7O0lBRUQ7SUFDQSxJQUFJLENBQUNFLFlBQVksR0FBRyxZQUFXO01BQzNCLElBQUlsSSxLQUFLLEdBQUMsRUFBRTtNQUNaMEUsS0FBSyxDQUNBeUQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQzdCQSxJQUFJLENBQUMsdUNBQXVDLENBQUMsQ0FDN0NsRixJQUFJLENBQUMsWUFBVztRQUNiLElBQUkrRSxJQUFJLEdBQUdsSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUNrSSxJQUFJLENBQUMsQ0FBQyxDQUFDOUQsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQ0EsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDbkU4RCxJQUFJLElBQUloSSxLQUFLLENBQUMyRyxJQUFJLENBQUNxQixJQUFJLENBQUM7TUFDNUIsQ0FBQyxDQUFDO01BQ04sT0FBT2hJLEtBQUssQ0FBQ29ILElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQ2xELE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDO0lBQ2pELENBQUM7O0lBRUQ7SUFDQSxJQUFJLENBQUNrRSxXQUFXLEdBQUcsWUFBVTtNQUN6QixPQUFPckYsUUFBUTtJQUNuQixDQUFDOztJQUVEO0lBQ0EsSUFBSSxDQUFDVSxLQUFLLEdBQUcsVUFBUzRFLEdBQUcsRUFBRTtNQUN2QjdFLE9BQU8sSUFBSUEsT0FBTyxDQUFDQyxLQUFLLENBQUMsaUJBQWlCLEdBQUc0RSxHQUFHLENBQUM7TUFDakQzRCxLQUFLLENBQUNtQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUNpQixJQUFJLENBQUMsT0FBTyxFQUFFTyxHQUFHLENBQUM7TUFDakQsTUFBTUEsR0FBRztJQUNiLENBQUM7O0lBRUQ7SUFDQSxJQUFJLENBQUNWLFVBQVUsR0FBRyxZQUFVO01BQ3hCakQsS0FBSyxDQUFDb0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQ2QsV0FBVyxDQUFDLGNBQWMsQ0FBQztJQUN2RCxDQUFDOztJQUVEO0lBQ0EsSUFBSSxDQUFDc0IsS0FBSyxHQUFHLFlBQVc7TUFDcEI3QyxZQUFZLENBQUNjLFFBQVEsQ0FBQyxFQUFFLENBQUM7TUFDekJmLFlBQVksQ0FBQ2UsUUFBUSxDQUFDLEVBQUUsQ0FBQztNQUN6QmxCLGFBQWEsQ0FBQ2tCLFFBQVEsQ0FBQyxFQUFFLENBQUM7TUFDMUJiLGNBQWMsQ0FBQ2EsUUFBUSxDQUFDLEVBQUUsQ0FBQztNQUMzQmpCLGNBQWMsQ0FBQ2lCLFFBQVEsQ0FBQyxFQUFFLENBQUM7TUFDM0JoQixjQUFjLENBQUNnQixRQUFRLENBQUMsRUFBRSxDQUFDO01BQzNCL0IsS0FBSyxDQUFDK0QsYUFBYSxDQUFDLENBQUM7SUFDekIsQ0FBQzs7SUFFRDtJQUNBLElBQUksQ0FBQ0MsSUFBSSxHQUFHLFlBQVU7TUFDbEIsSUFBSXRDLENBQUMsRUFBQy9ELENBQUMsRUFBQ3NHLFVBQVUsRUFBQ0MsSUFBSTtNQUN2QixJQUFHbkUsWUFBWSxFQUFFO01BRWpCeEIsUUFBUSxHQUFHUCxtQkFBbUIsQ0FBQ08sUUFBUSxDQUFDO01BQ3hDQSxRQUFRLENBQUNZLGNBQWMsSUFBSWEsS0FBSyxDQUFDZixLQUFLLENBQUNlLEtBQUssQ0FBQ2dELE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztNQUMvRC9DLEtBQUssR0FBRzFCLFFBQVEsQ0FBQ1ksY0FBYztNQUMvQmMsS0FBSyxDQUFDa0UsTUFBTSxDQUFDakUsS0FBSyxDQUFDO01BQ25CQSxLQUFLLENBQUM1QyxJQUFJLENBQUMsSUFBSSxFQUFFaUIsUUFBUSxDQUFDNkYsRUFBRSxDQUFDO01BQzdCbEUsS0FBSyxDQUFDNUMsSUFBSSxDQUFDLFFBQVEsRUFBRTBDLEtBQUssQ0FBQztNQUMzQkUsS0FBSyxDQUFDaUUsTUFBTSxDQUFDaEUsUUFBUSxDQUFDO01BQ3RCNUIsUUFBUSxDQUFDMUIsZUFBZSxJQUFJcUQsS0FBSyxDQUFDaUUsTUFBTSxDQUFDekQsT0FBTyxDQUFDO01BQ2hELENBQUNuQyxRQUFRLENBQUM2RCxPQUFPLElBQUtsQyxLQUFLLENBQUNtQyxRQUFRLENBQUMsU0FBUyxDQUFDO01BQ2hEbEMsUUFBUSxDQUFDZ0UsTUFBTSxDQUFDL0QsYUFBYSxDQUFDO01BRTlCLElBQUssU0FBUyxDQUFDaUUsSUFBSSxDQUFDOUYsUUFBUSxDQUFDMUMsSUFBSSxDQUFDLEVBQ2xDO1FBQ0lzRSxRQUFRLENBQUNnRSxNQUFNLENBQUM3RCxZQUFZLEVBQUVELFVBQVUsQ0FBQztNQUM3QyxDQUFDLE1BRUQ7UUFDSUYsUUFBUSxDQUFDZ0UsTUFBTSxDQUFDOUQsVUFBVSxFQUFFQyxZQUFZLENBQUM7TUFDN0M7TUFFQUgsUUFBUSxDQUFDZ0UsTUFBTSxDQUFDNUQsV0FBVyxDQUFDO01BQzVCSixRQUFRLENBQUNnRSxNQUFNLENBQUMzRCxVQUFVLENBQUM7TUFDM0JMLFFBQVEsQ0FBQ2dFLE1BQU0sQ0FBQzFELFdBQVcsQ0FBQzs7TUFFNUI7TUFDQUMsT0FBTyxDQUFDNEQsS0FBSyxDQUFDLFlBQVU7UUFDcEJ0RSxLQUFLLENBQUNzQyxVQUFVLENBQUMsQ0FBQyxJQUFJdEMsS0FBSyxDQUFDOEQsS0FBSyxDQUFDLENBQUM7TUFDdkMsQ0FBQyxDQUFDOztNQUVGO01BQ0E1RCxLQUFLLENBQUN1QixJQUFJLENBQUMsYUFBYSxFQUFFLFVBQVM4QyxHQUFHLEVBQUVwSCxLQUFLLEVBQUM7UUFDMUMsSUFBRyxDQUFDb0IsUUFBUSxDQUFDeEIsT0FBTyxFQUFFO1FBQ3RCd0IsUUFBUSxDQUFDdkIsV0FBVyxDQUFDQyxHQUFHLElBQUlzQixRQUFRLENBQUN2QixXQUFXLENBQUNDLEdBQUcsQ0FBQ3NCLFFBQVEsQ0FBQ3hCLE9BQU8sRUFBRUksS0FBSyxDQUFDO1FBQzdFNkMsS0FBSyxDQUFDbUQsVUFBVSxDQUFDLENBQUM7TUFDdEIsQ0FBQyxDQUFDOztNQUVGO01BQ0EvQyxhQUFhLENBQUMrRCxNQUFNLENBQUNuRSxLQUFLLENBQUNnRCxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7TUFDbERwQyxlQUFlLEdBQUdPLFdBQVcsQ0FBQ2YsYUFBYSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUM7TUFDN0Q3QixRQUFRLENBQUN6QyxjQUFjLElBQUk4RSxlQUFlLENBQUM0RCxHQUFHLENBQUMsUUFBUSxFQUFFeEUsS0FBSyxDQUFDZ0QsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO01BQ3RGekUsUUFBUSxDQUFDeEMsWUFBWSxJQUFNNkUsZUFBZSxDQUFDNEQsR0FBRyxDQUFDLE1BQU0sRUFBSXhFLEtBQUssQ0FBQ2dELE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztNQUNwRnpFLFFBQVEsQ0FBQ3ZDLFdBQVcsSUFBTzRFLGVBQWUsQ0FBQzRELEdBQUcsQ0FBQyxLQUFLLEVBQUt4RSxLQUFLLENBQUNnRCxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7TUFDbkZ6RSxRQUFRLENBQUN0QyxZQUFZLElBQU0yRSxlQUFlLENBQUM0RCxHQUFHLENBQUMsTUFBTSxFQUFJeEUsS0FBSyxDQUFDZ0QsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO01BQ3BGekUsUUFBUSxDQUFDckMsYUFBYSxJQUFLMEUsZUFBZSxDQUFDNEQsR0FBRyxDQUFDLE9BQU8sRUFBR3hFLEtBQUssQ0FBQ2dELE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztNQUNyRnpFLFFBQVEsQ0FBQ3BDLFlBQVksSUFBTXlFLGVBQWUsQ0FBQzRELEdBQUcsQ0FBQyxNQUFNLEVBQUl4RSxLQUFLLENBQUNnRCxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7TUFDcEZwQyxlQUFlLENBQUN0RixDQUFDLENBQUNtRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsVUFBUzJCLENBQUMsRUFBRWpHLEtBQUssRUFBQztRQUN4RGtELFVBQVUsQ0FBQ29FLElBQUksQ0FBQyxDQUFDO1FBQ2pCbkUsWUFBWSxDQUFDbUUsSUFBSSxDQUFDLENBQUM7UUFDbkJsRSxXQUFXLENBQUNrRSxJQUFJLENBQUMsQ0FBQztRQUNsQmpFLFVBQVUsQ0FBQ2lFLElBQUksQ0FBQyxDQUFDO1FBQ2pCaEUsV0FBVyxDQUFDZ0UsSUFBSSxDQUFDLENBQUM7UUFDbEIsSUFBR3RILEtBQUssSUFBSSxNQUFNLEVBQUU7VUFDaEJvRCxXQUFXLENBQUNtRSxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLE1BQ0ksSUFBR3ZILEtBQUssSUFBSSxLQUFLLEVBQUU7VUFDcEJzRCxXQUFXLENBQUNpRSxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLE1BQ0ksSUFBR3ZILEtBQUssSUFBSSxNQUFNLEVBQUU7VUFDckJxRCxVQUFVLENBQUNrRSxJQUFJLENBQUMsQ0FBQztVQUNqQmpFLFdBQVcsQ0FBQ2lFLElBQUksQ0FBQyxDQUFDO1FBQ3RCLENBQUMsTUFDSSxJQUFHdkgsS0FBSyxJQUFJLE9BQU8sRUFBRTtVQUN0QmtELFVBQVUsQ0FBQ3FFLElBQUksQ0FBQyxDQUFDO1VBQ2pCakUsV0FBVyxDQUFDaUUsSUFBSSxDQUFDLENBQUM7UUFDdEIsQ0FBQyxNQUNJLElBQUd2SCxLQUFLLElBQUksTUFBTSxFQUFFO1VBQ3JCa0QsVUFBVSxDQUFDcUUsSUFBSSxDQUFDLENBQUM7VUFDakJwRSxZQUFZLENBQUNvRSxJQUFJLENBQUMsQ0FBQztVQUNuQmpFLFdBQVcsQ0FBQ2lFLElBQUksQ0FBQyxDQUFDO1FBQ3RCO01BQ0osQ0FBQyxDQUFDO01BQ0Y5RCxlQUFlLENBQUNtQixRQUFRLENBQUN4RCxRQUFRLENBQUM1QixjQUFjLENBQUM7O01BRWpEO01BQ0E0RCxXQUFXLENBQUM0RCxNQUFNLENBQUNuRSxLQUFLLENBQUNnRCxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7TUFDOUNuQyxhQUFhLEdBQUdNLFdBQVcsQ0FBQ1osV0FBVyxFQUFFaEMsUUFBUSxDQUFDakMsYUFBYSxFQUFFLFNBQVMsQ0FBQztNQUMzRSxLQUFJcUIsQ0FBQyxHQUFDLENBQUMsRUFBRXVHLElBQUksR0FBQzNGLFFBQVEsQ0FBQzNDLE9BQU8sRUFBRStCLENBQUMsR0FBQ3VHLElBQUksQ0FBQzVFLE1BQU0sRUFBRTNCLENBQUMsRUFBRSxFQUFDO1FBQy9Da0QsYUFBYSxDQUFDMkQsR0FBRyxDQUFDTixJQUFJLENBQUN2RyxDQUFDLENBQUMsRUFBRXVHLElBQUksQ0FBQ3ZHLENBQUMsQ0FBQyxDQUFDO01BQ3ZDOztNQUVBO01BQ0E4QyxXQUFXLENBQUMwRCxNQUFNLENBQUNuRSxLQUFLLENBQUNnRCxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7TUFDOUNsQyxjQUFjLEdBQUdLLFdBQVcsQ0FBQ1YsV0FBVyxFQUFFbEMsUUFBUSxDQUFDL0IsbUJBQW1CLEVBQUUsWUFBWSxDQUFDO01BQ3JGLEtBQUltQixDQUFDLEdBQUMsQ0FBQyxFQUFFdUcsSUFBSSxHQUFDM0YsUUFBUSxDQUFDN0MsS0FBSyxFQUFFdUksVUFBVSxHQUFDMUYsUUFBUSxDQUFDNUMsV0FBVyxFQUFFZ0MsQ0FBQyxHQUFDdUcsSUFBSSxDQUFDNUUsTUFBTSxFQUFFM0IsQ0FBQyxFQUFFLEVBQUM7UUFDOUVtRCxjQUFjLENBQUMwRCxHQUFHLENBQUNOLElBQUksQ0FBQ3ZHLENBQUMsQ0FBQyxFQUFFc0csVUFBVSxDQUFDdEcsQ0FBQyxDQUFDLENBQUM7TUFDOUM7TUFDQW9ELGNBQWMsR0FBR0ksV0FBVyxDQUFDVixXQUFXLEVBQUVsQyxRQUFRLENBQUM5QixxQkFBcUIsRUFBRSxjQUFjLENBQUM7TUFDekYsS0FBSWtCLENBQUMsR0FBQyxDQUFDLEVBQUV1RyxJQUFJLEdBQUMzRixRQUFRLENBQUMzQyxPQUFPLEVBQUUrQixDQUFDLEdBQUN1RyxJQUFJLENBQUM1RSxNQUFNLEVBQUUzQixDQUFDLEVBQUUsRUFBQztRQUMvQ29ELGNBQWMsQ0FBQ3lELEdBQUcsQ0FBQ04sSUFBSSxDQUFDdkcsQ0FBQyxDQUFDLEVBQUV1RyxJQUFJLENBQUN2RyxDQUFDLENBQUMsQ0FBQztNQUN4Qzs7TUFFQTtNQUNBNkMsVUFBVSxDQUFDMkQsTUFBTSxDQUFDbkUsS0FBSyxDQUFDZ0QsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO01BQzVDaEMsWUFBWSxHQUFHRyxXQUFXLENBQUNYLFVBQVUsRUFBRWpDLFFBQVEsQ0FBQ2hDLFlBQVksRUFBRSxhQUFhLENBQUM7TUFDNUUsS0FBSW9CLENBQUMsR0FBQyxDQUFDLEVBQUV1RyxJQUFJLEdBQUNsRSxLQUFLLENBQUNnRCxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUVyRixDQUFDLEdBQUN1RyxJQUFJLENBQUM1RSxNQUFNLEVBQUUzQixDQUFDLEVBQUUsRUFBQztRQUN4RHFELFlBQVksQ0FBQ3dELEdBQUcsQ0FBQzdHLENBQUMsR0FBQyxDQUFDLEVBQUV1RyxJQUFJLENBQUN2RyxDQUFDLENBQUMsQ0FBQztNQUNsQzs7TUFFQTtNQUNBMEMsVUFBVSxDQUFDOEQsTUFBTSxDQUFDbkUsS0FBSyxDQUFDZ0QsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO01BQzVDL0IsWUFBWSxHQUFHRSxXQUFXLENBQUNkLFVBQVUsRUFBRTlCLFFBQVEsQ0FBQ25DLFlBQVksRUFBRSxjQUFjLENBQUM7TUFDN0UsS0FBSXVCLENBQUMsR0FBQyxDQUFDLEVBQUV1RyxJQUFJLEdBQUMzRixRQUFRLENBQUM5QyxTQUFTLEVBQUVrQyxDQUFDLEdBQUN1RyxJQUFJLENBQUM1RSxNQUFNLEVBQUUzQixDQUFDLEVBQUUsRUFBQztRQUNqRHNELFlBQVksQ0FBQ3VELEdBQUcsQ0FBQ04sSUFBSSxDQUFDdkcsQ0FBQyxDQUFDLEVBQUV1RyxJQUFJLENBQUN2RyxDQUFDLENBQUMsQ0FBQztNQUN0Qzs7TUFFQTtNQUNBMkMsWUFBWSxDQUFDNkQsTUFBTSxDQUFDbkUsS0FBSyxDQUFDZ0QsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO01BQ2hEOUIsY0FBYyxHQUFHQyxXQUFXLENBQUNiLFlBQVksRUFBRS9CLFFBQVEsQ0FBQ2xDLGNBQWMsRUFBRSxPQUFPLENBQUM7TUFDNUUsS0FBSXNCLENBQUMsR0FBQyxDQUFDLEVBQUV1RyxJQUFJLEdBQUNsRSxLQUFLLENBQUNnRCxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUVyRixDQUFDLEdBQUN1RyxJQUFJLENBQUM1RSxNQUFNLEVBQUUzQixDQUFDLEVBQUUsRUFBQztRQUN0RHVELGNBQWMsQ0FBQ3NELEdBQUcsQ0FBQzdHLENBQUMsR0FBQyxDQUFDLEVBQUV1RyxJQUFJLENBQUN2RyxDQUFDLENBQUMsQ0FBQztNQUNwQzs7TUFFQTtNQUNBckMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDZ0osS0FBSyxDQUFDLFlBQVU7UUFDdEIsSUFBSTNHLENBQUM7VUFBRStELENBQUMsR0FBR2YsVUFBVSxDQUFDckIsTUFBTTtRQUM1QixLQUFJM0IsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHK0QsQ0FBQyxFQUFFL0QsQ0FBQyxFQUFFLEVBQUM7VUFDbEJnRCxVQUFVLENBQUNoRCxDQUFDLENBQUMsQ0FBQ2tFLEtBQUssQ0FBQyxDQUFDO1FBQ3pCO01BQ0osQ0FBQyxDQUFDO01BQ0Y5QixZQUFZLEdBQUcsSUFBSTs7TUFFbkI7TUFDQSxJQUFHeEIsUUFBUSxDQUFDM0IsYUFBYSxFQUFFO1FBQ3ZCb0QsS0FBSyxDQUFDSCxPQUFPLENBQUN0QixRQUFRLENBQUMzQixhQUFhLENBQUM7TUFDekM7SUFDSixDQUFDOztJQUVEO0lBQ0EsSUFBSSxDQUFDbUgsYUFBYSxHQUFHLFlBQVU7TUFDM0I3RCxLQUFLLENBQUMrQixPQUFPLENBQUMsYUFBYSxFQUFFakMsS0FBSyxDQUFDa0MsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDOztJQUVEO0lBQ0FwQyxlQUFlLENBQUNxQyxJQUFJLENBQUMsSUFBSSxDQUFDOztJQUUxQjtJQUNBLElBQUksQ0FBQzdHLENBQUMsR0FBRzRFLEtBQUs7O0lBRWQ7SUFDQSxJQUFJO01BQ0EsSUFBSSxDQUFDOEQsSUFBSSxDQUFDLENBQUM7TUFDWGhFLEtBQUssQ0FBQytELGFBQWEsQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxPQUFNWCxDQUFDLEVBQUMsQ0FBQztFQUNmO0VBQ0EsSUFBSSxDQUFDOUUsTUFBTSxHQUFHQSxNQUFNO0FBQ3hCLENBQUMsRUFBRUosSUFBSSxDQUFDQyxNQUFNLEVBQUU3QywrQ0FBQyxDQUFDOztBQUdsQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLFVBQVNBLENBQUMsRUFBQztFQUNSLFNBQVNrRyxjQUFjQSxDQUFDbUQsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLFNBQVMsRUFBRUMsS0FBSyxFQUFDO0lBQ3JELElBQUk5RSxLQUFLLEdBQVEsSUFBSTtJQUNyQixJQUFJK0UsTUFBTSxHQUFPekosQ0FBQyxDQUFDLHdDQUF3QyxDQUFDO0lBQzVELElBQUkwSixPQUFPLEdBQU0xSixDQUFDLENBQUMsNkNBQTZDLENBQUM7SUFDakUsSUFBSTJKLFVBQVUsR0FBRzNKLENBQUMsQ0FBQyx1Q0FBdUMsQ0FBQztJQUMzRCxJQUFJNEosT0FBTyxHQUFNLENBQUMsQ0FBQztJQUNuQixJQUFJQyxNQUFNLEdBQU8sRUFBRTtJQUNuQixJQUFJQyxnQkFBZ0IsR0FBRyxJQUFJO0lBQzNCLElBQUlDLGlCQUFpQixHQUFHVixLQUFLLENBQUNmLFdBQVcsQ0FBQyxDQUFDLENBQUNsSCxnQkFBZ0I7O0lBRTVEO0lBQ0EsU0FBUzRJLFlBQVlBLENBQUNDLENBQUMsRUFBQztNQUNwQixJQUFJNUgsQ0FBQyxHQUFDLENBQUM7UUFBQytELENBQUMsR0FBQzZELENBQUMsQ0FBQ2pHLE1BQU07UUFBQ2tHLENBQUMsR0FBQyxDQUFDLENBQUM7UUFBQ0MsQ0FBQyxHQUFDLEVBQUU7TUFDNUIsT0FBTTlILENBQUMsR0FBQytELENBQUMsRUFBRTtRQUNQOEQsQ0FBQyxDQUFDRCxDQUFDLENBQUM1SCxDQUFDLENBQUMsQ0FBQyxLQUFLNkgsQ0FBQyxDQUFDRCxDQUFDLENBQUM1SCxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUMsSUFBSThILENBQUMsQ0FBQ3RELElBQUksQ0FBQ29ELENBQUMsQ0FBQzVILENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeENBLENBQUMsRUFBRTtNQUNQO01BQ0EsT0FBTzhILENBQUM7SUFDWjs7SUFFQTtJQUNBLElBQUksQ0FBQ3pELFFBQVEsR0FBRyxZQUFVO01BQ3RCLE9BQU82QyxTQUFTLEdBQUdNLE1BQU0sR0FBR0EsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDOztJQUVEO0lBQ0EsSUFBSSxDQUFDeEMsWUFBWSxHQUFHLFlBQVU7TUFDMUIsSUFBR3dDLE1BQU0sQ0FBQzdGLE1BQU0sSUFBSSxDQUFDLEVBQUUsT0FBTyxHQUFHO01BQ2pDLElBQUlaLElBQUksR0FBRyxDQUFDeUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQUV4SCxDQUFDO1FBQUUrSCxDQUFDLEdBQUdQLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFBRVEsQ0FBQyxHQUFHUixNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQUV6RCxDQUFDLEdBQUd5RCxNQUFNLENBQUM3RixNQUFNO01BQzFFLEtBQUkzQixDQUFDLEdBQUMsQ0FBQyxFQUFFQSxDQUFDLEdBQUMrRCxDQUFDLEVBQUUvRCxDQUFDLEVBQUUsRUFBRTtRQUNmLElBQUd3SCxNQUFNLENBQUN4SCxDQUFDLENBQUMsSUFBSWdJLENBQUMsR0FBQyxDQUFDLEVBQUU7VUFDakJBLENBQUMsR0FBR1IsTUFBTSxDQUFDeEgsQ0FBQyxDQUFDO1VBQ2JlLElBQUksQ0FBQ0EsSUFBSSxDQUFDWSxNQUFNLEdBQUMsQ0FBQyxDQUFDLEdBQUdvRyxDQUFDLEdBQUMsR0FBRyxHQUFDQyxDQUFDO1FBQ2pDLENBQUMsTUFDSTtVQUNERCxDQUFDLEdBQUdDLENBQUMsR0FBR1IsTUFBTSxDQUFDeEgsQ0FBQyxDQUFDO1VBQ2pCZSxJQUFJLENBQUN5RCxJQUFJLENBQUN3RCxDQUFDLENBQUM7UUFDaEI7TUFDSjtNQUNBLE9BQU9qSCxJQUFJLENBQUNrRSxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3pCLENBQUM7O0lBRUQ7SUFDQSxJQUFJLENBQUNLLFlBQVksR0FBRyxVQUFTSixHQUFHLEVBQUU7TUFDOUIsSUFBSStDLE1BQU0sR0FBRyxFQUFFO1FBQUVDLENBQUM7UUFBRWxJLENBQUM7UUFBRStELENBQUM7TUFDeEIsSUFBR21CLEdBQUcsS0FBSyxHQUFHLEVBQUU7UUFDWixPQUFNQSxHQUFHLElBQUksRUFBRSxFQUFFO1VBQ2I7VUFDQWdELENBQUMsR0FBR2hELEdBQUcsQ0FBQ1ksS0FBSyxDQUFDLGlCQUFpQixDQUFDO1VBQ2hDLElBQUdvQyxDQUFDLElBQUlBLENBQUMsQ0FBQ3ZHLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDbkIsS0FBSTNCLENBQUMsR0FBQyxDQUFDLEVBQUVBLENBQUMsSUFBRSxFQUFFLEVBQUVBLENBQUMsSUFBR2tJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFFLEVBQUU7Y0FDekJELE1BQU0sQ0FBQ3pELElBQUksQ0FBQ3hFLENBQUMsQ0FBQztZQUNsQjtZQUNBa0YsR0FBRyxHQUFHQSxHQUFHLENBQUNuRCxPQUFPLENBQUNtRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNCO1VBQ0o7VUFDQTtVQUNBQSxDQUFDLEdBQUdoRCxHQUFHLENBQUNZLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQztVQUMvQyxJQUFHb0MsQ0FBQyxJQUFJQSxDQUFDLENBQUN2RyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ25CLEtBQUkzQixDQUFDLEdBQUVrSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBRSxFQUFFbEksQ0FBQyxLQUFHa0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFbEksQ0FBQyxJQUFHa0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUUsRUFBRTtjQUN0Q0QsTUFBTSxDQUFDekQsSUFBSSxDQUFDeEUsQ0FBQyxDQUFDO1lBQ2xCO1lBQ0FrRixHQUFHLEdBQUdBLEdBQUcsQ0FBQ25ELE9BQU8sQ0FBQ21HLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDM0I7VUFDSjtVQUNBO1VBQ0FBLENBQUMsR0FBR2hELEdBQUcsQ0FBQ1ksS0FBSyxDQUFDLHNCQUFzQixDQUFDO1VBQ3JDLElBQUdvQyxDQUFDLElBQUlBLENBQUMsQ0FBQ3ZHLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDbkIsS0FBSTNCLENBQUMsR0FBRWtJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFFLEVBQUVsSSxDQUFDLEtBQUdrSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUVsSSxDQUFDLEVBQUUsRUFBRTtjQUM5QmlJLE1BQU0sQ0FBQ3pELElBQUksQ0FBQ3hFLENBQUMsQ0FBQztZQUNsQjtZQUNBa0YsR0FBRyxHQUFHQSxHQUFHLENBQUNuRCxPQUFPLENBQUNtRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNCO1VBQ0o7VUFDQTtVQUNBQSxDQUFDLEdBQUdoRCxHQUFHLENBQUNZLEtBQUssQ0FBQyxhQUFhLENBQUM7VUFDNUIsSUFBR29DLENBQUMsSUFBSUEsQ0FBQyxDQUFDdkcsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNuQnNHLE1BQU0sQ0FBQ3pELElBQUksQ0FBQzBELENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7WUFDbkJoRCxHQUFHLEdBQUdBLEdBQUcsQ0FBQ25ELE9BQU8sQ0FBQ21HLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDM0I7VUFDSjtVQUNBO1VBQ0E7UUFDSjtNQUNKO01BQ0E3RixLQUFLLENBQUMrQixRQUFRLENBQUM2RCxNQUFNLENBQUM7SUFDMUIsQ0FBQzs7SUFFRDtJQUNBLElBQUksQ0FBQy9ELEtBQUssR0FBRyxZQUFVO01BQ25Cb0QsVUFBVSxDQUFDaEQsT0FBTyxDQUFDLGdCQUFnQixDQUFDO0lBQ3hDLENBQUM7O0lBRUQ7SUFDQSxJQUFJLENBQUM2RCxJQUFJLEdBQUcsWUFBVTtNQUNsQmIsVUFBVSxDQUFDaEQsT0FBTyxDQUFDLGVBQWUsQ0FBQztJQUN2QyxDQUFDOztJQUVEO0lBQ0EsSUFBSSxDQUFDOEQsUUFBUSxHQUFHLFlBQVc7TUFDdkIsT0FBT2hCLE1BQU0sQ0FBQzNILEVBQUUsQ0FBQyxVQUFVLENBQUM7SUFDaEMsQ0FBQzs7SUFFRDtJQUNBLElBQUksQ0FBQzRJLFFBQVEsR0FBRyxVQUFTekMsR0FBRyxFQUFFO01BQzFCLElBQUlxQyxNQUFNLEdBQUdmLFNBQVMsR0FBR00sTUFBTSxDQUFDckgsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO01BQy9DOEgsTUFBTSxDQUFDekQsSUFBSSxDQUFDb0IsR0FBRyxDQUFDO01BQ2hCdkQsS0FBSyxDQUFDK0IsUUFBUSxDQUFDNkQsTUFBTSxDQUFDO0lBQzFCLENBQUM7O0lBRUQ7SUFDQSxJQUFJLENBQUNLLFdBQVcsR0FBRyxVQUFTMUMsR0FBRyxFQUFFO01BQzdCLElBQUdzQixTQUFTLEVBQUU7UUFDVixJQUFJbEgsQ0FBQztVQUFFdUksUUFBUSxHQUFHLEVBQUU7UUFDcEIsS0FBSXZJLENBQUMsR0FBQyxDQUFDLEVBQUVBLENBQUMsR0FBQ3dILE1BQU0sQ0FBQzdGLE1BQU0sRUFBRTNCLENBQUMsRUFBRSxFQUFDO1VBQzFCLElBQUc0RixHQUFHLElBQUksQ0FBQzRCLE1BQU0sQ0FBQ3hILENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkJ1SSxRQUFRLENBQUMvRCxJQUFJLENBQUNnRCxNQUFNLENBQUN4SCxDQUFDLENBQUMsQ0FBQztVQUM1QjtRQUNKO1FBQ0FxQyxLQUFLLENBQUMrQixRQUFRLENBQUNtRSxRQUFRLENBQUM7TUFDNUIsQ0FBQyxNQUNJO1FBQ0RsRyxLQUFLLENBQUM4RCxLQUFLLENBQUMsQ0FBQztNQUNqQjtJQUNKLENBQUM7O0lBRUQ7SUFDQSxJQUFJLENBQUMvQixRQUFRLEdBQUcsVUFBU29FLElBQUksRUFBQztNQUMxQixJQUFJeEksQ0FBQztRQUFFeUksT0FBTyxHQUFHLEVBQUU7UUFBRXpILEtBQUssR0FBR3dHLE1BQU0sQ0FBQ3ZDLElBQUksQ0FBQyxHQUFHLENBQUM7TUFDN0MsSUFBRyxDQUFDdEgsQ0FBQyxDQUFDdUMsT0FBTyxDQUFDc0ksSUFBSSxDQUFDLEVBQUVBLElBQUksR0FBRyxDQUFDQSxJQUFJLENBQUM7TUFDbENwQixNQUFNLENBQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUNuQixXQUFXLENBQUMsVUFBVSxDQUFDO01BQ3pDMkQsSUFBSSxHQUFHYixZQUFZLENBQUNhLElBQUksQ0FBQztNQUN6QkEsSUFBSSxDQUFDRSxJQUFJLENBQUMsVUFBU1osQ0FBQyxFQUFFYSxDQUFDLEVBQUM7UUFDcEIsSUFBSUMsRUFBRSxHQUFBekgsT0FBQSxDQUFVMkcsQ0FBQyxDQUFDO1FBQ2xCLElBQUllLEVBQUUsR0FBQTFILE9BQUEsQ0FBVXdILENBQUMsQ0FBQztRQUNsQixJQUFHQyxFQUFFLElBQUVDLEVBQUUsSUFBSUQsRUFBRSxJQUFFLFFBQVEsRUFBRSxPQUFPZCxDQUFDLEdBQUNhLENBQUMsQ0FBQyxLQUNqQyxPQUFPRyxNQUFNLENBQUNoQixDQUFDLENBQUMsSUFBSWdCLE1BQU0sQ0FBQ0gsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFJRyxNQUFNLENBQUNoQixDQUFDLENBQUMsR0FBR2dCLE1BQU0sQ0FBQ0gsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBRTtNQUM3RSxDQUFDLENBQUM7TUFDRixJQUFHekIsU0FBUyxFQUFFO1FBQ1YsS0FBSWxILENBQUMsR0FBQyxDQUFDLEVBQUVBLENBQUMsR0FBQ3dJLElBQUksQ0FBQzdHLE1BQU0sRUFBRTNCLENBQUMsRUFBRSxFQUFDO1VBQ3hCLElBQUd3SSxJQUFJLENBQUN4SSxDQUFDLENBQUMsSUFBSXVILE9BQU8sRUFBRTtZQUNuQkEsT0FBTyxDQUFDaUIsSUFBSSxDQUFDeEksQ0FBQyxDQUFDLENBQUMsQ0FBQzBFLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFDckMrRCxPQUFPLENBQUNqRSxJQUFJLENBQUNnRSxJQUFJLENBQUN4SSxDQUFDLENBQUMsQ0FBQztVQUN6QjtRQUNKO01BQ0osQ0FBQyxNQUNJO1FBQ0QsSUFBR3dJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSWpCLE9BQU8sRUFBRTtVQUNuQkEsT0FBTyxDQUFDaUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM5RCxRQUFRLENBQUMsVUFBVSxDQUFDO1VBQ3JDK0QsT0FBTyxDQUFDakUsSUFBSSxDQUFDZ0UsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCO01BQ0o7TUFDQTtNQUNBaEIsTUFBTSxHQUFHaUIsT0FBTztNQUNoQixJQUFHekgsS0FBSyxJQUFJd0csTUFBTSxDQUFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQzFCcUMsVUFBVSxDQUFDaEQsT0FBTyxDQUFDLGlCQUFpQixFQUFFNEMsU0FBUyxHQUFHc0IsSUFBSSxHQUFHQSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJO01BQ2Y7TUFDQSxPQUFPLEtBQUs7SUFDaEIsQ0FBQzs7SUFFRDtJQUNBLElBQUksQ0FBQ08sWUFBWSxHQUFHLFlBQVU7TUFDMUIsSUFBSUMsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQVlwRCxHQUFHLEVBQUU7UUFDN0IsT0FBUUEsR0FBRyxJQUFJMkIsT0FBTyxHQUFJQSxPQUFPLENBQUMzQixHQUFHLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLENBQUMsR0FBR0QsR0FBRztNQUN2RCxDQUFDO01BRUQsSUFBRzRCLE1BQU0sQ0FBQzdGLE1BQU0sSUFBSSxDQUFDLEVBQUU7UUFDbkIsT0FBT3FGLEtBQUssQ0FBQzNCLE9BQU8sQ0FBQyxRQUFRLEdBQUc4QixLQUFLLENBQUMsSUFBSUgsS0FBSyxDQUFDM0IsT0FBTyxDQUFDLE9BQU8sQ0FBQztNQUNwRTtNQUNBLElBQUl0RSxJQUFJLEdBQUcsQ0FBQ2lJLFlBQVksQ0FBQ3hCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQUV4SCxDQUFDO1FBQUUrSCxDQUFDLEdBQUdQLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFBRVEsQ0FBQyxHQUFHUixNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQUV6RCxDQUFDLEdBQUd5RCxNQUFNLENBQUM3RixNQUFNO01BQ3hGLEtBQUkzQixDQUFDLEdBQUMsQ0FBQyxFQUFFQSxDQUFDLEdBQUMrRCxDQUFDLEVBQUUvRCxDQUFDLEVBQUUsRUFBRTtRQUNmLElBQUd3SCxNQUFNLENBQUN4SCxDQUFDLENBQUMsSUFBSWdJLENBQUMsR0FBQyxDQUFDLEVBQUU7VUFDakJBLENBQUMsR0FBR1IsTUFBTSxDQUFDeEgsQ0FBQyxDQUFDO1VBQ2JlLElBQUksQ0FBQ0EsSUFBSSxDQUFDWSxNQUFNLEdBQUMsQ0FBQyxDQUFDLEdBQUdxSCxZQUFZLENBQUNqQixDQUFDLENBQUMsR0FBQyxHQUFHLEdBQUNpQixZQUFZLENBQUNoQixDQUFDLENBQUM7UUFDN0QsQ0FBQyxNQUNJO1VBQ0RELENBQUMsR0FBR0MsQ0FBQyxHQUFHUixNQUFNLENBQUN4SCxDQUFDLENBQUM7VUFDakJlLElBQUksQ0FBQ3lELElBQUksQ0FBQ3dFLFlBQVksQ0FBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQzlCO01BQ0o7TUFDQSxPQUFPakgsSUFBSSxDQUFDa0UsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUN6QixDQUFDOztJQUVEO0lBQ0EsSUFBSSxDQUFDa0IsS0FBSyxHQUFHLFlBQVc7TUFDcEJvQixPQUFPLEdBQUcsQ0FBQyxDQUFDO01BQ1psRixLQUFLLENBQUMrQixRQUFRLENBQUMsRUFBRSxDQUFDO01BQ2xCZ0QsTUFBTSxDQUFDNkIsS0FBSyxDQUFDLENBQUM7SUFDbEIsQ0FBQzs7SUFFRDtJQUNBLElBQUksQ0FBQ3BDLEdBQUcsR0FBRyxVQUFTakIsR0FBRyxFQUFFcEcsS0FBSyxFQUFFO01BQzVCLElBQUcsQ0FBQyxDQUFDQSxLQUFLLEdBQUMsRUFBRSxFQUFFc0csS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFMkIsZ0JBQWdCLEdBQUcsS0FBSztNQUMxRCxJQUFHQyxpQkFBaUIsSUFBSUQsZ0JBQWdCLElBQUlqSSxLQUFLLEdBQUcsRUFBRSxFQUFFO1FBQ3BEQSxLQUFLLEdBQUcsR0FBRyxHQUFDQSxLQUFLO01BQ3JCO01BQ0EsSUFBSTBKLEtBQUssR0FBR3ZMLENBQUMsQ0FBQyxNQUFNLEdBQUc2QixLQUFLLEdBQUcsT0FBTyxDQUFDO01BQ3ZDNEgsTUFBTSxDQUFDWixNQUFNLENBQUMwQyxLQUFLLENBQUM7TUFDcEIzQixPQUFPLENBQUMzQixHQUFHLENBQUMsR0FBR3NELEtBQUs7TUFDcEJBLEtBQUssQ0FBQ3ZDLEtBQUssQ0FBQyxZQUFVO1FBQ2xCLElBQUdPLFNBQVMsSUFBSXZKLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQ3dMLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtVQUMxQzlHLEtBQUssQ0FBQ2lHLFdBQVcsQ0FBQzFDLEdBQUcsQ0FBQztRQUMxQixDQUFDLE1BQ0k7VUFDRHZELEtBQUssQ0FBQ2dHLFFBQVEsQ0FBQ3pDLEdBQUcsQ0FBQztVQUNuQixJQUFHLENBQUNzQixTQUFTLEVBQUU3RSxLQUFLLENBQUM2QixLQUFLLENBQUMsQ0FBQztRQUNoQztNQUNKLENBQUMsQ0FBQztJQUNOLENBQUM7O0lBRUQ7SUFDQSxJQUFJLENBQUN2RyxDQUFDLEdBQUcySixVQUFVOztJQUVuQjtJQUNBTCxPQUFPLENBQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUNvRCxLQUFLLENBQUM5QixVQUFVLENBQUMsQ0FBQzFGLE1BQU0sQ0FBQyxDQUFDO0lBQ2xEMEYsVUFBVSxDQUNMNUMsUUFBUSxDQUFDLGtCQUFrQixHQUFHdUMsT0FBTyxDQUFDakIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUNyRSxNQUFNLENBQUMsQ0FDdEU2RSxNQUFNLENBQUNhLE9BQU8sQ0FBQyxDQUNmYixNQUFNLENBQUNZLE1BQU0sQ0FBQyxDQUNkdEQsSUFBSSxDQUFDLGVBQWUsRUFBRSxZQUFVO01BQzdCLElBQUcyRCxnQkFBZ0IsRUFBRTtRQUNqQixJQUFJNEIsTUFBTSxHQUFHLENBQUM7VUFBRXRGLENBQUMsR0FBR3FELE1BQU0sQ0FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQ3JFLE1BQU07UUFDNUMsSUFBR29DLENBQUMsR0FBRyxDQUFDLElBQUlBLENBQUMsSUFBSSxFQUFFLEVBQUVzRixNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQzNCLElBQUd0RixDQUFDLEdBQUcsRUFBRSxJQUFJQSxDQUFDLElBQUksRUFBRSxFQUFFc0YsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUNqQyxJQUFHdEYsQ0FBQyxHQUFHLEVBQUUsSUFBSUEsQ0FBQyxJQUFJLEVBQUUsRUFBRXNGLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FDakMsSUFBR3RGLENBQUMsR0FBRyxFQUFFLEVBQUVzRixNQUFNLEdBQUcsQ0FBQztRQUMxQmpDLE1BQU0sQ0FBQzFDLFFBQVEsQ0FBQyxNQUFNLEdBQUMyRSxNQUFNLENBQUM7TUFDbEM7TUFDQWpDLE1BQU0sQ0FBQ0wsSUFBSSxDQUFDLENBQUM7SUFDakIsQ0FBQyxDQUFDLENBQ0RqRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsWUFBVTtNQUM5QnNELE1BQU0sQ0FBQ04sSUFBSSxDQUFDLENBQUM7SUFDakIsQ0FBQyxDQUFDLENBQ0RoRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsWUFBVTtNQUMvQnVELE9BQU8sQ0FBQ2lDLElBQUksQ0FBQ2pILEtBQUssQ0FBQzBHLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDLENBQ0RwQyxLQUFLLENBQUMsVUFBU2xCLENBQUMsRUFBQztNQUNkQSxDQUFDLENBQUM4RCxlQUFlLENBQUMsQ0FBQztJQUN2QixDQUFDLENBQUMsQ0FDRGpGLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztJQUUvQjNHLENBQUMsQ0FBQzhDLEVBQUUsQ0FBQytJLGdCQUFnQixJQUFJbEMsVUFBVSxDQUFDa0MsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeERuQyxPQUFPLENBQUNWLEtBQUssQ0FBQyxVQUFTbEIsQ0FBQyxFQUFDO01BQ3BCcEQsS0FBSyxDQUFDK0YsUUFBUSxDQUFDLENBQUMsSUFBSXBCLEtBQUssQ0FBQ3JDLFVBQVUsQ0FBQyxDQUFDLEdBQUl0QyxLQUFLLENBQUM2QixLQUFLLENBQUMsQ0FBQyxHQUFHN0IsS0FBSyxDQUFDOEYsSUFBSSxDQUFDLENBQUM7SUFDM0UsQ0FBQyxDQUFDO0lBQ0Y5RixLQUFLLENBQUM2QixLQUFLLENBQUMsQ0FBQztJQUNiN0IsS0FBSyxDQUFDOEQsS0FBSyxDQUFDLENBQUM7RUFDakI7RUFDQSxJQUFJLENBQUN0QyxjQUFjLEdBQUdBLGNBQWM7QUFDeEMsQ0FBQyxFQUFFdEQsSUFBSSxDQUFDQyxNQUFNLEVBQUU3QywrQ0FBQyxDQUFDOztBQUVsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsVUFBU0EsQ0FBQyxFQUFDO0VBQ1IsSUFBSThMLEtBQUssR0FBRyxDQUFDO0VBQ2IsSUFBSUMsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQVlDLE1BQU0sRUFBQztJQUMzQixJQUFJbEQsRUFBRTtJQUNOLE9BQU0sQ0FBQyxFQUFFO01BQ0xnRCxLQUFLLEVBQUU7TUFDUGhELEVBQUUsR0FBSSxDQUFDa0QsTUFBTSxJQUFJLE9BQU8sSUFBRSxFQUFFLEdBQUlGLEtBQUs7TUFDckMsSUFBRyxDQUFDRyxRQUFRLENBQUNDLGNBQWMsQ0FBQ3BELEVBQUUsQ0FBQyxFQUFFLE9BQU9BLEVBQUU7SUFDOUM7RUFDSixDQUFDO0VBQ0Q5SSxDQUFDLENBQUM4QyxFQUFFLENBQUNnQixRQUFRLEdBQUksVUFBU2tJLE1BQU0sRUFBRTtJQUM5QixPQUFPLElBQUksQ0FBQzdJLElBQUksQ0FBQyxZQUFVO01BQ3ZCLElBQUduRCxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUNnSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7TUFDdkIsSUFBSWMsRUFBRSxHQUFHaUQsUUFBUSxDQUFDQyxNQUFNLENBQUM7TUFDekJoTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUNnSSxJQUFJLENBQUMsSUFBSSxFQUFFYyxFQUFFLENBQUM7SUFDMUIsQ0FBQyxDQUFDO0VBQ04sQ0FBQztBQUNMLENBQUMsRUFBRWxHLElBQUksQ0FBQ0MsTUFBTSxFQUFFN0MsK0NBQUMsQ0FBQzs7QUFHbEI7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxVQUFTQSxDQUFDLEVBQUM7RUFDUkEsQ0FBQyxDQUFDa0MsTUFBTSxDQUFDbEMsQ0FBQyxDQUFDbU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0lBQ2xCQyxTQUFTLEVBQUUsU0FBWEEsU0FBU0EsQ0FBV2pDLENBQUMsRUFBRTtNQUNuQixPQUFPLENBQUNBLENBQUMsQ0FBQzlGLE9BQU8sR0FBQyxFQUFFLEVBQUVnSSxXQUFXLENBQUMsQ0FBQyxJQUFJO1FBQ25DbEMsQ0FBQyxFQUFDLENBQUM7UUFDSG1DLElBQUksRUFBQyxDQUFDO1FBQ05DLE9BQU8sRUFBQyxDQUFDO1FBQ1RDLE9BQU8sRUFBQyxDQUFDO1FBQ1R4QixDQUFDLEVBQUMsQ0FBQztRQUNIeUIsR0FBRyxFQUFDLENBQUM7UUFDTEMsVUFBVSxFQUFDLENBQUM7UUFDWkMsTUFBTSxFQUFDLENBQUM7UUFDUkMsSUFBSSxFQUFDLENBQUM7UUFDTkMsSUFBSSxFQUFDLENBQUM7UUFDTkMsRUFBRSxFQUFFLENBQUM7UUFDTEMsR0FBRyxFQUFDLENBQUM7UUFDTEMsR0FBRyxFQUFDLENBQUM7UUFDTEMsR0FBRyxFQUFDLENBQUM7UUFDTEMsRUFBRSxFQUFDLENBQUM7UUFDSkMsRUFBRSxFQUFDLENBQUM7UUFDSkMsUUFBUSxFQUFDLENBQUM7UUFDVkMsSUFBSSxFQUFDLENBQUM7UUFDTkMsRUFBRSxFQUFDLENBQUM7UUFDSkMsRUFBRSxFQUFDLENBQUM7UUFDSkMsRUFBRSxFQUFDLENBQUM7UUFDSkMsRUFBRSxFQUFDLENBQUM7UUFDSkMsRUFBRSxFQUFDLENBQUM7UUFDSkMsRUFBRSxFQUFFLENBQUM7UUFDTHRMLENBQUMsRUFBQyxDQUFDO1FBQ0h1TCxHQUFHLEVBQUMsQ0FBQztRQUNMQyxHQUFHLEVBQUMsQ0FBQztRQUNMQyxLQUFLLEVBQUMsQ0FBQztRQUNQQyxFQUFFLEVBQUMsQ0FBQztRQUNKQyxDQUFDLEVBQUMsQ0FBQztRQUNIQyxHQUFHLEVBQUMsQ0FBQztRQUNMQyxDQUFDLEVBQUMsQ0FBQztRQUNIQyxJQUFJLEVBQUMsQ0FBQztRQUNOQyxLQUFLLEVBQUMsQ0FBQztRQUNQQyxJQUFJLEVBQUMsQ0FBQztRQUNOQyxNQUFNLEVBQUMsQ0FBQztRQUNSQyxHQUFHLEVBQUUsQ0FBQztRQUNOQyxHQUFHLEVBQUMsQ0FBQztRQUNMQyxFQUFFLEVBQUMsQ0FBQztRQUNKQyxFQUFFLEVBQUM7TUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUNEQyxTQUFTLEVBQUUsU0FBWEEsU0FBU0EsQ0FBV3hFLENBQUMsRUFBRTtNQUNuQixPQUFPLENBQUNBLENBQUMsQ0FBQzlGLE9BQU8sR0FBQyxFQUFFLEVBQUVnSSxXQUFXLENBQUMsQ0FBQyxJQUFJO1FBQ25DdUMsSUFBSSxFQUFDLENBQUM7UUFDTkMsSUFBSSxFQUFDLENBQUM7UUFDTkMsUUFBUSxFQUFDLENBQUM7UUFDVkMsRUFBRSxFQUFDLENBQUM7UUFDSkMsR0FBRyxFQUFDLENBQUM7UUFDTEMsS0FBSyxFQUFDLENBQUM7UUFDUEMsRUFBRSxFQUFDLENBQUM7UUFDSkMsR0FBRyxFQUFDLENBQUM7UUFDTEMsS0FBSyxFQUFDLENBQUM7UUFDUEMsSUFBSSxFQUFDLENBQUM7UUFDTkMsSUFBSSxFQUFDLENBQUM7UUFDTkMsS0FBSyxFQUFDO01BQ1YsQ0FBQztJQUNMO0VBQ0osQ0FBQyxDQUFDO0FBQ04sQ0FBQyxFQUFFM00sSUFBSSxDQUFDQyxNQUFNLEVBQUU3QywrQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC91dGlscy9jcm9uLXVpLmpzPzQ5ZmMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG4vKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFybmFwb3UganFDcm9uIHBhY2thZ2UuXG4gKlxuICogKGMpIEFybmF1ZCBCdWF0aGllciA8YXJuYXVkQGFybmFwb3UubmV0PlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG4vKipcbiAqIERlZmF1bHQgc2V0dGluZ3NcbiAqL1xudmFyIGpxQ3JvbkRlZmF1bHRTZXR0aW5ncyA9IHtcbiAgICB0ZXh0czoge30sXG4gICAgbW9udGhkYXlzOiBbMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzFdLFxuICAgIGhvdXJzOiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzXSxcbiAgICBob3VyX2xhYmVsczogW1wiMFwiLCBcIjFcIiwgXCIyXCIsIFwiM1wiLCBcIjRcIiwgXCI1XCIsIFwiNlwiLCBcIjdcIiwgXCI4XCIsIFwiOVwiLCBcIjEwXCIsIFwiMTFcIiwgXCIxMlwiLCBcIjEzXCIsIFwiMTRcIiwgXCIxNVwiLCBcIjE2XCIsIFwiMTdcIiwgXCIxOFwiLCBcIjE5XCIsIFwiMjBcIiwgXCIyMVwiLCBcIjIyXCIsIFwiMjNcIl0sXG4gICAgbWludXRlczogWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDU4LCA1OV0sXG4gICAgbGFuZzogJ2VuJyxcbiAgICBlbmFibGVkX21pbnV0ZTogZmFsc2UsXG4gICAgZW5hYmxlZF9ob3VyOiB0cnVlLFxuICAgIGVuYWJsZWRfZGF5OiB0cnVlLFxuICAgIGVuYWJsZWRfd2VlazogdHJ1ZSxcbiAgICBlbmFibGVkX21vbnRoOiB0cnVlLFxuICAgIGVuYWJsZWRfeWVhcjogdHJ1ZSxcbiAgICBtdWx0aXBsZV9kb206IGZhbHNlLFxuICAgIG11bHRpcGxlX21vbnRoOiBmYWxzZSxcbiAgICBtdWx0aXBsZV9taW5zOiBmYWxzZSxcbiAgICBtdWx0aXBsZV9kb3c6IGZhbHNlLFxuICAgIG11bHRpcGxlX3RpbWVfaG91cnM6IGZhbHNlLFxuICAgIG11bHRpcGxlX3RpbWVfbWludXRlczogZmFsc2UsXG4gICAgbnVtZXJpY196ZXJvX3BhZDogZmFsc2UsXG4gICAgZGVmYXVsdF9wZXJpb2Q6ICdkYXknLFxuICAgIGRlZmF1bHRfdmFsdWU6ICcnLFxuICAgIG5vX3Jlc2V0X2J1dHRvbjogdHJ1ZSxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgYmluZF90bzogbnVsbCxcbiAgICBiaW5kX21ldGhvZDoge1xuICAgICAgICBzZXQ6IGZ1bmN0aW9uKCRlbGVtZW50LCB2YWx1ZSkge1xuICAgICAgICAgICAgJGVsZW1lbnQuaXMoJzppbnB1dCcpID8gJGVsZW1lbnQudmFsKHZhbHVlKSA6ICRlbGVtZW50LmRhdGEoJ2pxQ3JvblZhbHVlJywgdmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uKCRlbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQuaXMoJzppbnB1dCcpID8gJGVsZW1lbnQudmFsKCkgOiAkZWxlbWVudC5kYXRhKCdqcUNyb25WYWx1ZScpO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuLyoqXG4gKiBDdXN0b20gZXh0ZW5kIG9mIGpzb24gZm9yIGpxQ3JvbiBzZXR0aW5ncy5cbiAqIFdlIGRvbid0IHVzZSBqUXVlcnkuZXh0ZW5kIGJlY2F1c2Ugc2ltcGxlIGV4dGVuZCBkb2VzIG5vdCBmaXQgb3VyIG5lZWRzLCBhbmQgZGVlcCBleHRlbmQgaGFzIGEgYmFkXG4gKiBmZWF0dXJlIGZvciB1cyA6IGl0IHJlcGxhY2VzIGtleXMgb2YgXCJBcnJheXNcIiBpbnN0ZWFkIG9mIHJlcGxhY2luZyB0aGUgZnVsbCBhcnJheS5cbiAqL1xuKGZ1bmN0aW9uKCQpe1xuICAgIHZhciBleHRlbmQgPSBmdW5jdGlvbihkc3QsIHNyYykge1xuICAgICAgICBmb3IodmFyIGkgaW4gc3JjKSB7XG4gICAgICAgICAgICBpZigkLmlzUGxhaW5PYmplY3Qoc3JjW2ldKSkge1xuICAgICAgICAgICAgICAgIGRzdFtpXSA9IGV4dGVuZChkc3RbaV0gJiYgJC5pc1BsYWluT2JqZWN0KGRzdFtpXSkgPyBkc3RbaV0gOiB7fSwgc3JjW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYoJC5pc0FycmF5KHNyY1tpXSkpIHtcbiAgICAgICAgICAgICAgICBkc3RbaV0gPSBzcmNbaV0uc2xpY2UoMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmKHNyY1tpXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgZHN0W2ldID0gc3JjW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkc3Q7XG4gICAgfTtcbiAgICB0aGlzLmpxQ3Jvbk1lcmdlU2V0dGluZ3MgPSBmdW5jdGlvbihvYmopIHtcbiAgICAgICAgcmV0dXJuIGV4dGVuZChleHRlbmQoe30sIGpxQ3JvbkRlZmF1bHRTZXR0aW5ncyksIG9iaiB8fCB7fSk7XG4gICAgfTtcbn0pLmNhbGwod2luZG93LCAkKTtcblxuLyoqXG4gKiBTaG9ydGN1dCB0byBnZXQgdGhlIGluc3RhbmNlIG9mIGpxQ3JvbiBpbnN0YW5jZSBmcm9tIG9uZSBqcXVlcnkgb2JqZWN0XG4gKi9cbihmdW5jdGlvbigkKXtcbiAgICAkLmZuLmpxQ3JvbkdldEluc3RhbmNlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEoJ2pxQ3JvbicpO1xuICAgIH07XG59KS5jYWxsKHdpbmRvdywgJCk7XG5cbi8qKlxuICogTWFpbiBwbHVnaW5cbiAqL1xuKGZ1bmN0aW9uKCQpe1xuICAgICQuZm4uanFDcm9uID0gZnVuY3Rpb24oc2V0dGluZ3MpIHtcbiAgICAgICAgdmFyIHNhdmVkX3NldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgY3Jvbiwgc2F2ZWQ7XG4gICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgdmFyIHNldHRpbmdzID0ganFDcm9uTWVyZ2VTZXR0aW5ncyhzYXZlZF9zZXR0aW5ncyk7IC8vIGNsb25lIHNldHRpbmdzXG4gICAgICAgICAgICB2YXIgdHJhbnNsYXRpb25zID0gc2V0dGluZ3MudGV4dHNbc2V0dGluZ3MubGFuZ107XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YodHJhbnNsYXRpb25zKSAhPT0gJ29iamVjdCcgfHwgJC5pc0VtcHR5T2JqZWN0KHRyYW5zbGF0aW9ucykpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlICYmIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICdNaXNzaW5nIHRyYW5zbGF0aW9ucyBmb3IgbGFuZ3VhZ2UgXCInICsgc2V0dGluZ3MubGFuZyArICdcIi4gJyArXG4gICAgICAgICAgICAgICAgICAgICdQbGVhc2UgaW5jbHVkZSBqcUNyb24uJyArIHNldHRpbmdzLmxhbmcgKyAnLmpzIG9yIG1hbnVhbGx5IHByb3ZpZGUgJyArXG4gICAgICAgICAgICAgICAgICAgICd0aGUgbmVjZXNzYXJ5IHRyYW5zbGF0aW9ucyB3aGVuIGNhbGxpbmcgJC5mbi5qcUNyb24oKS4nXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmKCFzZXR0aW5ncy5qcXVlcnlfY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgaWYoJHRoaXMuaXMoJzpjb250YWluZXInKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncy5qcXVlcnlfZWxlbWVudCA9ICR0aGlzLnVuaXF1ZUlkKCdqcUNyb24nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZigkdGhpcy5pcygnOmF1dG9jbG9zZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGRlbGV0ZSBhbHJlYWR5IGdlbmVyYXRlZCBkb20gaWYgZXhpc3RzXG4gICAgICAgICAgICAgICAgICAgIGlmKCR0aGlzLm5leHQoJy5qcUNyb24nKS5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMubmV4dCgnLmpxQ3JvbicpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIGdlbmVyYXRlIG5ld1xuICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncy5qcXVlcnlfZWxlbWVudCA9ICQoJzxzcGFuIGNsYXNzPVwianFDcm9uXCI+PC9zcGFuPicpLnVuaXF1ZUlkKCdqcUNyb24nKS5pbnNlcnRBZnRlcigkdGhpcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlICYmIGNvbnNvbGUuZXJyb3Ioc2V0dGluZ3MudGV4dHNbc2V0dGluZ3MubGFuZ10uZXJyb3IxLnJlcGxhY2UoJyVzJywgdGhpcy50YWdOYW1lKSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGF1dG9zZXQgYmluZF90byBpZiBpdCBpcyBhbiBpbnB1dFxuICAgICAgICAgICAgaWYoJHRoaXMuaXMoJzppbnB1dCcpKSB7XG4gICAgICAgICAgICAgICAgc2V0dGluZ3MuYmluZF90byA9IHNldHRpbmdzLmJpbmRfdG8gfHwgJHRoaXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGluaXQgY3JvbiBvYmplY3RcbiAgICAgICAgICAgIGlmKHNldHRpbmdzLmJpbmRfdG8pe1xuICAgICAgICAgICAgICAgIGlmKHNldHRpbmdzLmJpbmRfdG8uaXMoJzppbnB1dCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGF1dG8gYmluZCBmcm9tIGlucHV0IHRvIG9iamVjdCBpZiBhbiBpbnB1dCwgdGV4dGFyZWEgLi4uXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLmJpbmRfdG8uYmx1cihmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gc2V0dGluZ3MuYmluZF9tZXRob2QuZ2V0KHNldHRpbmdzLmJpbmRfdG8pO1xuICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMuanFDcm9uR2V0SW5zdGFuY2UoKS5zZXRDcm9uKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNhdmVkID0gc2V0dGluZ3MuYmluZF9tZXRob2QuZ2V0KHNldHRpbmdzLmJpbmRfdG8pO1xuICAgICAgICAgICAgICAgIGNyb24gPSBuZXcganFDcm9uKHNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBjcm9uLnNldENyb24oc2F2ZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY3JvbiA9IG5ldyBqcUNyb24oc2V0dGluZ3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJCh0aGlzKS5kYXRhKCdqcUNyb24nLCBjcm9uKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbn0pLmNhbGwod2luZG93LCAkKTtcblxuLyoqXG4gKiBqcUNyb24gY2xhc3NcbiAqL1xuKGZ1bmN0aW9uKCQpe1xuICAgIHZhciBqcUNyb25JbnN0YW5jZXMgPSBbXTtcblxuICAgIGZ1bmN0aW9uIGpxQ3JvbihzZXR0aW5ncykge1xuICAgICAgICB2YXIgX2luaXRpYWxpemVkICA9IGZhbHNlO1xuICAgICAgICB2YXIgX3NlbGYgICAgICAgICA9IHRoaXM7XG4gICAgICAgIHZhciBfJGVsdCAgICAgICAgID0gdGhpcztcbiAgICAgICAgdmFyIF8kb2JqICAgICAgICAgPSAkKCc8c3BhbiBjbGFzcz1cImpxQ3Jvbi1jb250YWluZXJcIj48L3NwYW4+Jyk7XG4gICAgICAgIHZhciBfJGJsb2NrcyAgICAgID0gJCgnPHNwYW4gY2xhc3M9XCJqcUNyb24tYmxvY2tzXCI+PC9zcGFuPicpO1xuICAgICAgICB2YXIgXyRibG9ja1BFUklPRCA9ICQoJzxzcGFuIGNsYXNzPVwianFDcm9uLXBlcmlvZFwiPjwvc3Bhbj4nKTtcbiAgICAgICAgdmFyIF8kYmxvY2tET00gICAgPSAkKCc8c3BhbiBjbGFzcz1cImpxQ3Jvbi1kb21cIj48L3NwYW4+Jyk7XG4gICAgICAgIHZhciBfJGJsb2NrTU9OVEggID0gJCgnPHNwYW4gY2xhc3M9XCJqcUNyb24tbW9udGhcIj48L3NwYW4+Jyk7XG4gICAgICAgIHZhciBfJGJsb2NrTUlOUyAgID0gJCgnPHNwYW4gY2xhc3M9XCJqcUNyb24tbWluc1wiPjwvc3Bhbj4nKTtcbiAgICAgICAgdmFyIF8kYmxvY2tET1cgICAgPSAkKCc8c3BhbiBjbGFzcz1cImpxQ3Jvbi1kb3dcIj48L3NwYW4+Jyk7XG4gICAgICAgIHZhciBfJGJsb2NrVElNRSAgID0gJCgnPHNwYW4gY2xhc3M9XCJqcUNyb24tdGltZVwiPjwvc3Bhbj4nKTtcbiAgICAgICAgdmFyIF8kY3Jvc3MgICAgICAgPSAkKCc8c3BhbiBjbGFzcz1cImpxQ3Jvbi1jcm9zc1wiPiYjMTAwMDg7PC9zcGFuPicpO1xuICAgICAgICB2YXIgX3NlbGVjdG9ycyAgICA9IFtdO1xuICAgICAgICB2YXIgX3NlbGVjdG9yUGVyaW9kLCBfc2VsZWN0b3JNaW5zLCBfc2VsZWN0b3JUaW1lSCwgX3NlbGVjdG9yVGltZU0sIF9zZWxlY3RvckRvdywgX3NlbGVjdG9yRG9tLCBfc2VsZWN0b3JNb250aDtcblxuICAgICAgICAvLyBpbnN0YW5jaWF0ZSBhIG5ldyBzZWxlY3RvclxuICAgICAgICBmdW5jdGlvbiBuZXdTZWxlY3RvcigkYmxvY2ssIG11bHRpcGxlLCB0eXBlKXtcbiAgICAgICAgICAgIHZhciBzZWxlY3RvciA9IG5ldyBqcUNyb25TZWxlY3Rvcihfc2VsZiwgJGJsb2NrLCBtdWx0aXBsZSwgdHlwZSk7XG4gICAgICAgICAgICBzZWxlY3Rvci4kLmJpbmQoJ3NlbGVjdG9yOm9wZW4nLCBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIC8vIHdlIGNsb3NlIGFsbCBvcGVuZWQgc2VsZWN0b3JzIG9mIGFsbCBvdGhlciBqcUNyb25cbiAgICAgICAgICAgICAgICBmb3IodmFyIG4gPSBqcUNyb25JbnN0YW5jZXMubGVuZ3RoOyBuLS07ICl7XG4gICAgICAgICAgICAgICAgICAgIGlmKGpxQ3Jvbkluc3RhbmNlc1tuXSAhPSBfc2VsZikge1xuICAgICAgICAgICAgICAgICAgICAgICAganFDcm9uSW5zdGFuY2VzW25dLmNsb3NlU2VsZWN0b3JzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjbG9zZSBhbGwgb3RoZXIgb3BlbmVkIHNlbGVjdG9ycyBvZiB0aGlzIGpxQ3JvblxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yKHZhciBvID0gX3NlbGVjdG9ycy5sZW5ndGg7IG8tLTsgKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihfc2VsZWN0b3JzW29dICE9IHNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvcnNbb10uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNlbGVjdG9yLiQuYmluZCgnc2VsZWN0b3I6Y2hhbmdlJywgZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICB2YXIgYm91bmRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgLy8gZG9uJ3QgcHJvcGFnYXRlIGlmIG5vdCBpbml0aWFsaXplZFxuICAgICAgICAgICAgICAgIGlmKCFfaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgICAgICAgICAgICAgICAvLyBiaW5kIGRhdGEgYmV0d2VlbiB0d28gbWludXRlIHNlbGVjdG9ycyAob25seSBpZiB0aGV5IGhhdmUgdGhlIHNhbWUgbXVsdGlwbGUgc2V0dGluZ3MpXG4gICAgICAgICAgICAgICAgaWYoc2V0dGluZ3MubXVsdGlwbGVfbWlucyA9PSBzZXR0aW5ncy5tdWx0aXBsZV90aW1lX21pbnV0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYoc2VsZWN0b3IgPT0gX3NlbGVjdG9yTWlucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRDaGFuZ2VkID0gX3NlbGVjdG9yVGltZU0uc2V0VmFsdWUoX3NlbGVjdG9yTWlucy5nZXRWYWx1ZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKHNlbGVjdG9yID09IF9zZWxlY3RvclRpbWVNKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3VuZENoYW5nZWQgPSBfc2VsZWN0b3JNaW5zLnNldFZhbHVlKF9zZWxlY3RvclRpbWVNLmdldFZhbHVlKCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHdlIHByb3BhZ2F0ZSB0aGUgY2hhbmdlIGV2ZW50IHRvIHRoZSBtYWluIG9iamVjdFxuICAgICAgICAgICAgICAgIGJvdW5kQ2hhbmdlZCB8fCBfJG9iai50cmlnZ2VyKCdjcm9uOmNoYW5nZScsIF9zZWxmLmdldENyb24oKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIF9zZWxlY3RvcnMucHVzaChzZWxlY3Rvcik7XG4gICAgICAgICAgICByZXR1cm4gc2VsZWN0b3I7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBkaXNhYmxlIHRoZSBzZWxlY3RvclxuICAgICAgICB0aGlzLmRpc2FibGUgPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgXyRvYmouYWRkQ2xhc3MoJ2Rpc2FibGUnKTtcbiAgICAgICAgICAgIHNldHRpbmdzLmRpc2FibGUgPSB0cnVlO1xuICAgICAgICAgICAgX3NlbGYuY2xvc2VTZWxlY3RvcnMoKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyByZXR1cm4gaWYgdGhlIHNlbGVjdG9yIGlzIGRpc2FibGVkXG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIHNldHRpbmdzLmRpc2FibGUgPT0gdHJ1ZTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBlbmFibGUgdGhlIHNlbGVjdG9yXG4gICAgICAgIHRoaXMuZW5hYmxlID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIF8kb2JqLnJlbW92ZUNsYXNzKCdkaXNhYmxlJyk7XG4gICAgICAgICAgICBzZXR0aW5ncy5kaXNhYmxlID0gZmFsc2U7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gZ2V0IGNyb24gdmFsdWVcbiAgICAgICAgdGhpcy5nZXRDcm9uID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHZhciBwZXJpb2QgPSBfc2VsZWN0b3JQZXJpb2QuZ2V0VmFsdWUoKTtcbiAgICAgICAgICAgIHZhciBpdGVtcyA9IFsnKicsICcqJywgJyonLCAnKicsICcqJ107XG4gICAgICAgICAgICBpZihwZXJpb2QgPT0gJ2hvdXInKSB7XG4gICAgICAgICAgICAgICAgaXRlbXNbMF0gPSBfc2VsZWN0b3JNaW5zLmdldENyb25WYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYocGVyaW9kID09ICdkYXknIHx8IHBlcmlvZCA9PSAnd2VlaycgfHwgcGVyaW9kID09ICdtb250aCcgfHwgcGVyaW9kID09ICd5ZWFyJykge1xuICAgICAgICAgICAgICAgIGl0ZW1zWzBdID0gX3NlbGVjdG9yVGltZU0uZ2V0Q3JvblZhbHVlKCk7XG4gICAgICAgICAgICAgICAgaXRlbXNbMV0gPSBfc2VsZWN0b3JUaW1lSC5nZXRDcm9uVmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmKHBlcmlvZCA9PSAnbW9udGgnIHx8IHBlcmlvZCA9PSAneWVhcicpIHtcbiAgICAgICAgICAgICAgICBpdGVtc1syXSA9IF9zZWxlY3RvckRvbS5nZXRDcm9uVmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmKHBlcmlvZCA9PSAneWVhcicpIHtcbiAgICAgICAgICAgICAgICBpdGVtc1szXSA9IF9zZWxlY3Rvck1vbnRoLmdldENyb25WYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYocGVyaW9kID09ICd3ZWVrJykge1xuICAgICAgICAgICAgICAgIGl0ZW1zWzRdID0gX3NlbGVjdG9yRG93LmdldENyb25WYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLmpvaW4oJyAnKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBzZXQgY3JvbiAoc3RyaW5nIGxpa2UgKiAqICogKiAqKVxuICAgICAgICB0aGlzLnNldENyb24gPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgICAgICAgIGlmKCFzdHIpIHJldHVybjtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoL1xccysvZywgJyAnKS5yZXBsYWNlKC9eICsvLCAnJykucmVwbGFjZSgvICskLywgJycpOyAvLyBzYW5pdGl6ZVxuICAgICAgICAgICAgICAgIHZhciBtYXNrID0gc3RyLnJlcGxhY2UoL1teXFwqIF0vZywgJy0nKS5yZXBsYWNlKC8tKy9nLCAnLScpLnJlcGxhY2UoLyArL2csICcnKTtcbiAgICAgICAgICAgICAgICB2YXIgaXRlbXMgPSBzdHIuc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbXMubGVuZ3RoICE9IDUpIF9zZWxmLmVycm9yKF9zZWxmLmdldFRleHQoJ2Vycm9yMicpKTtcbiAgICAgICAgICAgICAgICBpZihtYXNrID09ICcqKioqKicpIHtcdFx0XHRcdFx0XHQvLyAxIHBvc3NpYmlsaXR5XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvclBlcmlvZC5zZXRWYWx1ZSgnbWludXRlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYobWFzayA9PSAnLSoqKionKSB7XHRcdFx0XHRcdC8vIDEgcG9zc2liaWxpdHlcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yUGVyaW9kLnNldFZhbHVlKCdob3VyJyk7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3Rvck1pbnMuc2V0Q3JvblZhbHVlKGl0ZW1zWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yVGltZU0uc2V0Q3JvblZhbHVlKGl0ZW1zWzBdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZihtYXNrLnN1YnN0cmluZygyLCBtYXNrLmxlbmd0aCkgPT0gJyoqKicpIHtcdFx0XHQvLyA0IHBvc3NpYmlsaXRpZXNcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yUGVyaW9kLnNldFZhbHVlKCdkYXknKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yTWlucy5zZXRDcm9uVmFsdWUoaXRlbXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JUaW1lTS5zZXRDcm9uVmFsdWUoaXRlbXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JUaW1lSC5zZXRDcm9uVmFsdWUoaXRlbXNbMV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmKG1hc2suc3Vic3RyaW5nKDIsIG1hc2subGVuZ3RoKSA9PSAnLSoqJykge1x0XHRcdC8vIDQgcG9zc2liaWxpdGllc1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JQZXJpb2Quc2V0VmFsdWUoJ21vbnRoJyk7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3Rvck1pbnMuc2V0Q3JvblZhbHVlKGl0ZW1zWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yVGltZU0uc2V0Q3JvblZhbHVlKGl0ZW1zWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yVGltZUguc2V0Q3JvblZhbHVlKGl0ZW1zWzFdKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yRG9tLnNldENyb25WYWx1ZShpdGVtc1syXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYobWFzay5zdWJzdHJpbmcoMiwgbWFzay5sZW5ndGgpID09ICcqKi0nKSB7XHRcdFx0Ly8gNCBwb3NzaWJpbGl0aWVzXG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvclBlcmlvZC5zZXRWYWx1ZSgnd2VlaycpO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JNaW5zLnNldENyb25WYWx1ZShpdGVtc1swXSk7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvclRpbWVNLnNldENyb25WYWx1ZShpdGVtc1swXSk7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvclRpbWVILnNldENyb25WYWx1ZShpdGVtc1sxXSk7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvckRvdy5zZXRDcm9uVmFsdWUoaXRlbXNbNF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChtYXNrLnN1YnN0cmluZygzLCBtYXNrLmxlbmd0aCkgPT0gJy0qJykge1x0XHRcdC8vIDggcG9zc2liaWxpdGllc1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JQZXJpb2Quc2V0VmFsdWUoJ3llYXInKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yTWlucy5zZXRDcm9uVmFsdWUoaXRlbXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JUaW1lTS5zZXRDcm9uVmFsdWUoaXRlbXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JUaW1lSC5zZXRDcm9uVmFsdWUoaXRlbXNbMV0pO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JEb20uc2V0Q3JvblZhbHVlKGl0ZW1zWzJdKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yTW9udGguc2V0Q3JvblZhbHVlKGl0ZW1zWzNdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxmLmVycm9yKF9zZWxmLmdldFRleHQoJ2Vycm9yNCcpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgX3NlbGYuY2xlYXJFcnJvcigpO1xuICAgICAgICAgICAgfSBjYXRjaChlKSB7fVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGNsb3NlIGFsbCBjaGlsZCBzZWxlY3RvcnNcbiAgICAgICAgdGhpcy5jbG9zZVNlbGVjdG9ycyA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBmb3IodmFyIG4gPSBfc2VsZWN0b3JzLmxlbmd0aDsgbi0tOyApe1xuICAgICAgICAgICAgICAgIF9zZWxlY3RvcnNbbl0uY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBnZXQgdGhlIG1haW4gZWxlbWVudCBpZFxuICAgICAgICB0aGlzLmdldElkID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHJldHVybiBfJGVsdC5hdHRyKCdpZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZ2V0IHRoZSB0cmFuc2xhdGVkIHRleHRcbiAgICAgICAgdGhpcy5nZXRUZXh0ID0gZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICB2YXIgdGV4dCA9IHNldHRpbmdzLnRleHRzW3NldHRpbmdzLmxhbmddW2tleV0gfHwgbnVsbDtcbiAgICAgICAgICAgIGlmKHR5cGVvZih0ZXh0KSA9PSBcInN0cmluZ1wiICYmIHRleHQubWF0Y2goJzxiJykpe1xuICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoLyg8YiAqXFwvPikvZ2ksICc8L3NwYW4+PGIgLz48c3BhbiBjbGFzcz1cImpxQ3Jvbi10ZXh0XCI+Jyk7XG4gICAgICAgICAgICAgICAgdGV4dCA9ICc8c3BhbiBjbGFzcz1cImpxQ3Jvbi10ZXh0XCI+JyArIHRleHQgKyAnPC9zcGFuPic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBnZXQgdGhlIGh1bWFuIHJlYWRhYmxlIHRleHRcbiAgICAgICAgdGhpcy5nZXRIdW1hblRleHQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0ZXh0cz1bXTtcbiAgICAgICAgICAgIF8kb2JqXG4gICAgICAgICAgICAgICAgLmZpbmQoJz4gc3BhbiA+IHNwYW46dmlzaWJsZScpXG4gICAgICAgICAgICAgICAgLmZpbmQoJy5qcUNyb24tdGV4dCwgLmpxQ3Jvbi1zZWxlY3RvciA+IHNwYW4nKVxuICAgICAgICAgICAgICAgIC5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9ICQodGhpcykudGV4dCgpLnJlcGxhY2UoL1xccyskL2csICcnKS5yZXBsYWNlKC9eXFxzKy9nLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgJiYgdGV4dHMucHVzaCh0ZXh0KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB0ZXh0cy5qb2luKCcgJykucmVwbGFjZSgvXFxzOlxccy9nLCAnOicpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZ2V0IHNldHRpbmdzXG4gICAgICAgIHRoaXMuZ2V0U2V0dGluZ3MgPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgcmV0dXJuIHNldHRpbmdzO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGRpc3BsYXkgYW4gZXJyb3JcbiAgICAgICAgdGhpcy5lcnJvciA9IGZ1bmN0aW9uKG1zZykge1xuICAgICAgICAgICAgY29uc29sZSAmJiBjb25zb2xlLmVycm9yKCdbanFDcm9uIEVycm9yXSAnICsgbXNnKTtcbiAgICAgICAgICAgIF8kb2JqLmFkZENsYXNzKCdqcUNyb24tZXJyb3InKS5hdHRyKCd0aXRsZScsIG1zZyk7XG4gICAgICAgICAgICB0aHJvdyBtc2c7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gY2xlYXIgZXJyb3JcbiAgICAgICAgdGhpcy5jbGVhckVycm9yID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIF8kb2JqLmF0dHIoJ3RpdGxlJywgJycpLnJlbW92ZUNsYXNzKCdqcUNyb24tZXJyb3InKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBjbGVhclxuICAgICAgICB0aGlzLmNsZWFyID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBfc2VsZWN0b3JEb20uc2V0VmFsdWUoW10pO1xuICAgICAgICAgICAgX3NlbGVjdG9yRG93LnNldFZhbHVlKFtdKTtcbiAgICAgICAgICAgIF9zZWxlY3Rvck1pbnMuc2V0VmFsdWUoW10pO1xuICAgICAgICAgICAgX3NlbGVjdG9yTW9udGguc2V0VmFsdWUoW10pO1xuICAgICAgICAgICAgX3NlbGVjdG9yVGltZUguc2V0VmFsdWUoW10pO1xuICAgICAgICAgICAgX3NlbGVjdG9yVGltZU0uc2V0VmFsdWUoW10pO1xuICAgICAgICAgICAgX3NlbGYudHJpZ2dlckNoYW5nZSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGluaXQgKGNhbGxlZCBpbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgdGhpcy5pbml0ID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHZhciBuLGksbGFiZWxzTGlzdCxsaXN0O1xuICAgICAgICAgICAgaWYoX2luaXRpYWxpemVkKSByZXR1cm47XG5cbiAgICAgICAgICAgIHNldHRpbmdzID0ganFDcm9uTWVyZ2VTZXR0aW5ncyhzZXR0aW5ncyk7XG4gICAgICAgICAgICBzZXR0aW5ncy5qcXVlcnlfZWxlbWVudCB8fCBfc2VsZi5lcnJvcihfc2VsZi5nZXRUZXh0KCdlcnJvcjMnKSk7XG4gICAgICAgICAgICBfJGVsdCA9IHNldHRpbmdzLmpxdWVyeV9lbGVtZW50O1xuICAgICAgICAgICAgXyRlbHQuYXBwZW5kKF8kb2JqKTtcbiAgICAgICAgICAgIF8kb2JqLmRhdGEoJ2lkJywgc2V0dGluZ3MuaWQpO1xuICAgICAgICAgICAgXyRvYmouZGF0YSgnanFDcm9uJywgX3NlbGYpO1xuICAgICAgICAgICAgXyRvYmouYXBwZW5kKF8kYmxvY2tzKTtcbiAgICAgICAgICAgIHNldHRpbmdzLm5vX3Jlc2V0X2J1dHRvbiB8fCBfJG9iai5hcHBlbmQoXyRjcm9zcyk7XG4gICAgICAgICAgICAoIXNldHRpbmdzLmRpc2FibGUpIHx8IF8kb2JqLmFkZENsYXNzKCdkaXNhYmxlJyk7XG4gICAgICAgICAgICBfJGJsb2Nrcy5hcHBlbmQoXyRibG9ja1BFUklPRCk7XG5cbiAgICAgICAgICAgIGlmICggL14oa28pJC9pLnRlc3Qoc2V0dGluZ3MubGFuZykgKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIF8kYmxvY2tzLmFwcGVuZChfJGJsb2NrTU9OVEgsIF8kYmxvY2tET00pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIF8kYmxvY2tzLmFwcGVuZChfJGJsb2NrRE9NLCBfJGJsb2NrTU9OVEgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBfJGJsb2Nrcy5hcHBlbmQoXyRibG9ja01JTlMpO1xuICAgICAgICAgICAgXyRibG9ja3MuYXBwZW5kKF8kYmxvY2tET1cpO1xuICAgICAgICAgICAgXyRibG9ja3MuYXBwZW5kKF8kYmxvY2tUSU1FKTtcblxuICAgICAgICAgICAgLy8gdmFyaW91cyBiaW5kaW5nXG4gICAgICAgICAgICBfJGNyb3NzLmNsaWNrKGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgX3NlbGYuaXNEaXNhYmxlZCgpIHx8IF9zZWxmLmNsZWFyKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gYmluZGluZyBmcm9tIGNyb24gdG8gdGFyZ2V0XG4gICAgICAgICAgICBfJG9iai5iaW5kKCdjcm9uOmNoYW5nZScsIGZ1bmN0aW9uKGV2dCwgdmFsdWUpe1xuICAgICAgICAgICAgICAgIGlmKCFzZXR0aW5ncy5iaW5kX3RvKSByZXR1cm47XG4gICAgICAgICAgICAgICAgc2V0dGluZ3MuYmluZF9tZXRob2Quc2V0ICYmIHNldHRpbmdzLmJpbmRfbWV0aG9kLnNldChzZXR0aW5ncy5iaW5kX3RvLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgX3NlbGYuY2xlYXJFcnJvcigpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIFBFUklPRFxuICAgICAgICAgICAgXyRibG9ja1BFUklPRC5hcHBlbmQoX3NlbGYuZ2V0VGV4dCgndGV4dF9wZXJpb2QnKSk7XG4gICAgICAgICAgICBfc2VsZWN0b3JQZXJpb2QgPSBuZXdTZWxlY3RvcihfJGJsb2NrUEVSSU9ELCBmYWxzZSwgJ3BlcmlvZCcpO1xuICAgICAgICAgICAgc2V0dGluZ3MuZW5hYmxlZF9taW51dGUgJiYgX3NlbGVjdG9yUGVyaW9kLmFkZCgnbWludXRlJywgX3NlbGYuZ2V0VGV4dCgnbmFtZV9taW51dGUnKSk7XG4gICAgICAgICAgICBzZXR0aW5ncy5lbmFibGVkX2hvdXIgICAmJiBfc2VsZWN0b3JQZXJpb2QuYWRkKCdob3VyJywgICBfc2VsZi5nZXRUZXh0KCduYW1lX2hvdXInKSk7XG4gICAgICAgICAgICBzZXR0aW5ncy5lbmFibGVkX2RheSAgICAmJiBfc2VsZWN0b3JQZXJpb2QuYWRkKCdkYXknLCAgICBfc2VsZi5nZXRUZXh0KCduYW1lX2RheScpKTtcbiAgICAgICAgICAgIHNldHRpbmdzLmVuYWJsZWRfd2VlayAgICYmIF9zZWxlY3RvclBlcmlvZC5hZGQoJ3dlZWsnLCAgIF9zZWxmLmdldFRleHQoJ25hbWVfd2VlaycpKTtcbiAgICAgICAgICAgIHNldHRpbmdzLmVuYWJsZWRfbW9udGggICYmIF9zZWxlY3RvclBlcmlvZC5hZGQoJ21vbnRoJywgIF9zZWxmLmdldFRleHQoJ25hbWVfbW9udGgnKSk7XG4gICAgICAgICAgICBzZXR0aW5ncy5lbmFibGVkX3llYXIgICAmJiBfc2VsZWN0b3JQZXJpb2QuYWRkKCd5ZWFyJywgICBfc2VsZi5nZXRUZXh0KCduYW1lX3llYXInKSk7XG4gICAgICAgICAgICBfc2VsZWN0b3JQZXJpb2QuJC5iaW5kKCdzZWxlY3RvcjpjaGFuZ2UnLCBmdW5jdGlvbihlLCB2YWx1ZSl7XG4gICAgICAgICAgICAgICAgXyRibG9ja0RPTS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgXyRibG9ja01PTlRILmhpZGUoKTtcbiAgICAgICAgICAgICAgICBfJGJsb2NrTUlOUy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgXyRibG9ja0RPVy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgXyRibG9ja1RJTUUuaGlkZSgpO1xuICAgICAgICAgICAgICAgIGlmKHZhbHVlID09ICdob3VyJykge1xuICAgICAgICAgICAgICAgICAgICBfJGJsb2NrTUlOUy5zaG93KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gJ2RheScpIHtcbiAgICAgICAgICAgICAgICAgICAgXyRibG9ja1RJTUUuc2hvdygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09ICd3ZWVrJykge1xuICAgICAgICAgICAgICAgICAgICBfJGJsb2NrRE9XLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgXyRibG9ja1RJTUUuc2hvdygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09ICdtb250aCcpIHtcbiAgICAgICAgICAgICAgICAgICAgXyRibG9ja0RPTS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgIF8kYmxvY2tUSU1FLnNob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAneWVhcicpIHtcbiAgICAgICAgICAgICAgICAgICAgXyRibG9ja0RPTS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgIF8kYmxvY2tNT05USC5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgIF8kYmxvY2tUSU1FLnNob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIF9zZWxlY3RvclBlcmlvZC5zZXRWYWx1ZShzZXR0aW5ncy5kZWZhdWx0X3BlcmlvZCk7XG5cbiAgICAgICAgICAgIC8vIE1JTlMgIChtaW51dGVzKVxuICAgICAgICAgICAgXyRibG9ja01JTlMuYXBwZW5kKF9zZWxmLmdldFRleHQoJ3RleHRfbWlucycpKTtcbiAgICAgICAgICAgIF9zZWxlY3Rvck1pbnMgPSBuZXdTZWxlY3RvcihfJGJsb2NrTUlOUywgc2V0dGluZ3MubXVsdGlwbGVfbWlucywgJ21pbnV0ZXMnKTtcbiAgICAgICAgICAgIGZvcihpPTAsIGxpc3Q9c2V0dGluZ3MubWludXRlczsgaTxsaXN0Lmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgICAgICBfc2VsZWN0b3JNaW5zLmFkZChsaXN0W2ldLCBsaXN0W2ldKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVElNRSAgKGhvdXI6bWluKVxuICAgICAgICAgICAgXyRibG9ja1RJTUUuYXBwZW5kKF9zZWxmLmdldFRleHQoJ3RleHRfdGltZScpKTtcbiAgICAgICAgICAgIF9zZWxlY3RvclRpbWVIID0gbmV3U2VsZWN0b3IoXyRibG9ja1RJTUUsIHNldHRpbmdzLm11bHRpcGxlX3RpbWVfaG91cnMsICd0aW1lX2hvdXJzJyk7XG4gICAgICAgICAgICBmb3IoaT0wLCBsaXN0PXNldHRpbmdzLmhvdXJzLCBsYWJlbHNMaXN0PXNldHRpbmdzLmhvdXJfbGFiZWxzOyBpPGxpc3QubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgIF9zZWxlY3RvclRpbWVILmFkZChsaXN0W2ldLCBsYWJlbHNMaXN0W2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF9zZWxlY3RvclRpbWVNID0gbmV3U2VsZWN0b3IoXyRibG9ja1RJTUUsIHNldHRpbmdzLm11bHRpcGxlX3RpbWVfbWludXRlcywgJ3RpbWVfbWludXRlcycpO1xuICAgICAgICAgICAgZm9yKGk9MCwgbGlzdD1zZXR0aW5ncy5taW51dGVzOyBpPGxpc3QubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgIF9zZWxlY3RvclRpbWVNLmFkZChsaXN0W2ldLCBsaXN0W2ldKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRE9XICAoZGF5IG9mIHdlZWspXG4gICAgICAgICAgICBfJGJsb2NrRE9XLmFwcGVuZChfc2VsZi5nZXRUZXh0KCd0ZXh0X2RvdycpKTtcbiAgICAgICAgICAgIF9zZWxlY3RvckRvdyA9IG5ld1NlbGVjdG9yKF8kYmxvY2tET1csIHNldHRpbmdzLm11bHRpcGxlX2RvdywgJ2RheV9vZl93ZWVrJyk7XG4gICAgICAgICAgICBmb3IoaT0wLCBsaXN0PV9zZWxmLmdldFRleHQoJ3dlZWtkYXlzJyk7IGk8bGlzdC5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgX3NlbGVjdG9yRG93LmFkZChpKzEsIGxpc3RbaV0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBET00gIChkYXkgb2YgbW9udGgpXG4gICAgICAgICAgICBfJGJsb2NrRE9NLmFwcGVuZChfc2VsZi5nZXRUZXh0KCd0ZXh0X2RvbScpKTtcbiAgICAgICAgICAgIF9zZWxlY3RvckRvbSA9IG5ld1NlbGVjdG9yKF8kYmxvY2tET00sIHNldHRpbmdzLm11bHRpcGxlX2RvbSwgJ2RheV9vZl9tb250aCcpO1xuICAgICAgICAgICAgZm9yKGk9MCwgbGlzdD1zZXR0aW5ncy5tb250aGRheXM7IGk8bGlzdC5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgX3NlbGVjdG9yRG9tLmFkZChsaXN0W2ldLCBsaXN0W2ldKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTU9OVEggIChkYXkgb2Ygd2VlaylcbiAgICAgICAgICAgIF8kYmxvY2tNT05USC5hcHBlbmQoX3NlbGYuZ2V0VGV4dCgndGV4dF9tb250aCcpKTtcbiAgICAgICAgICAgIF9zZWxlY3Rvck1vbnRoID0gbmV3U2VsZWN0b3IoXyRibG9ja01PTlRILCBzZXR0aW5ncy5tdWx0aXBsZV9tb250aCwgJ21vbnRoJyk7XG4gICAgICAgICAgICBmb3IoaT0wLCBsaXN0PV9zZWxmLmdldFRleHQoJ21vbnRocycpOyBpPGxpc3QubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgIF9zZWxlY3Rvck1vbnRoLmFkZChpKzEsIGxpc3RbaV0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBjbG9zZSBhbGwgc2VsZWN0b3JzIHdoZW4gd2UgY2xpY2sgaW4gYm9keVxuICAgICAgICAgICAgJCgnYm9keScpLmNsaWNrKGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgdmFyIGksIG4gPSBfc2VsZWN0b3JzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBmb3IoaSA9IDA7IGkgPCBuOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JzW2ldLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBfaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAvLyBkZWZhdWx0IHZhbHVlXG4gICAgICAgICAgICBpZihzZXR0aW5ncy5kZWZhdWx0X3ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgX3NlbGYuc2V0Q3JvbihzZXR0aW5ncy5kZWZhdWx0X3ZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyB0cmlnZ2VyIGEgY2hhbmdlIGV2ZW50XG4gICAgICAgIHRoaXMudHJpZ2dlckNoYW5nZSA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBfJG9iai50cmlnZ2VyKCdjcm9uOmNoYW5nZScsIF9zZWxmLmdldENyb24oKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gc3RvcmUgaW5zdGFuY2UgaW4gYXJyYXlcbiAgICAgICAganFDcm9uSW5zdGFuY2VzLnB1c2godGhpcyk7XG5cbiAgICAgICAgLy8gZXhwb3NlIG1haW4ganF1ZXJ5IG9iamVjdFxuICAgICAgICB0aGlzLiQgPSBfJG9iajtcblxuICAgICAgICAvLyBpbml0XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgICAgICAgIF9zZWxmLnRyaWdnZXJDaGFuZ2UoKTtcbiAgICAgICAgfSBjYXRjaChlKXt9XG4gICAgfVxuICAgIHRoaXMuanFDcm9uID0ganFDcm9uO1xufSkuY2FsbCh3aW5kb3csICQpO1xuXG5cbi8qKlxuICoganFDcm9uU2VsZWN0b3IgY2xhc3NcbiAqL1xuKGZ1bmN0aW9uKCQpe1xuICAgIGZ1bmN0aW9uIGpxQ3JvblNlbGVjdG9yKF9jcm9uLCBfJGJsb2NrLCBfbXVsdGlwbGUsIF90eXBlKXtcbiAgICAgICAgdmFyIF9zZWxmICAgICAgPSB0aGlzO1xuICAgICAgICB2YXIgXyRsaXN0ICAgICA9ICQoJzx1bCBjbGFzcz1cImpxQ3Jvbi1zZWxlY3Rvci1saXN0XCI+PC91bD4nKTtcbiAgICAgICAgdmFyIF8kdGl0bGUgICAgPSAkKCc8c3BhbiBjbGFzcz1cImpxQ3Jvbi1zZWxlY3Rvci10aXRsZVwiPjwvc3Bhbj4nKTtcbiAgICAgICAgdmFyIF8kc2VsZWN0b3IgPSAkKCc8c3BhbiBjbGFzcz1cImpxQ3Jvbi1zZWxlY3RvclwiPjwvc3Bhbj4nKTtcbiAgICAgICAgdmFyIF92YWx1ZXMgICAgPSB7fTtcbiAgICAgICAgdmFyIF92YWx1ZSAgICAgPSBbXTtcbiAgICAgICAgdmFyIF9oYXNOdW1lcmljVGV4dHMgPSB0cnVlO1xuICAgICAgICB2YXIgX251bWVyaWNfemVyb19wYWQgPSBfY3Jvbi5nZXRTZXR0aW5ncygpLm51bWVyaWNfemVyb19wYWQ7XG5cbiAgICAgICAgLy8gcmV0dXJuIGFuIGFycmF5IHdpdGhvdXQgZG91YmxvblxuICAgICAgICBmdW5jdGlvbiBhcnJheV91bmlxdWUobCl7XG4gICAgICAgICAgICB2YXIgaT0wLG49bC5sZW5ndGgsaz17fSxhPVtdO1xuICAgICAgICAgICAgd2hpbGUoaTxuKSB7XG4gICAgICAgICAgICAgICAga1tsW2ldXSB8fCAoa1tsW2ldXSA9IDEgJiYgYS5wdXNoKGxbaV0pKTtcbiAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGdldCB0aGUgdmFsdWUgKGFuIGFycmF5IGlmIG11bHRpcGxlLCBlbHNlIGEgc2luZ2xlIHZhbHVlKVxuICAgICAgICB0aGlzLmdldFZhbHVlID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHJldHVybiBfbXVsdGlwbGUgPyBfdmFsdWUgOiBfdmFsdWVbMF07XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gZ2V0IGEgY29ycmVjdCBzdHJpbmcgZm9yIGNyb25cbiAgICAgICAgdGhpcy5nZXRDcm9uVmFsdWUgPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgaWYoX3ZhbHVlLmxlbmd0aCA9PSAwKSByZXR1cm4gJyonO1xuICAgICAgICAgICAgdmFyIGNyb24gPSBbX3ZhbHVlWzBdXSwgaSwgcyA9IF92YWx1ZVswXSwgYyA9IF92YWx1ZVswXSwgbiA9IF92YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICBmb3IoaT0xOyBpPG47IGkrKykge1xuICAgICAgICAgICAgICAgIGlmKF92YWx1ZVtpXSA9PSBjKzEpIHtcbiAgICAgICAgICAgICAgICAgICAgYyA9IF92YWx1ZVtpXTtcbiAgICAgICAgICAgICAgICAgICAgY3Jvbltjcm9uLmxlbmd0aC0xXSA9IHMrJy0nK2M7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzID0gYyA9IF92YWx1ZVtpXTtcbiAgICAgICAgICAgICAgICAgICAgY3Jvbi5wdXNoKGMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjcm9uLmpvaW4oJywnKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBzZXQgdGhlIGNyb24gdmFsdWVcbiAgICAgICAgdGhpcy5zZXRDcm9uVmFsdWUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXSwgbSAsaSwgbjtcbiAgICAgICAgICAgIGlmKHN0ciAhPT0gJyonKSB7XG4gICAgICAgICAgICAgICAgd2hpbGUoc3RyICE9ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRlc3QgXCIqL25cIiBleHByZXNzaW9uXG4gICAgICAgICAgICAgICAgICAgIG0gPSBzdHIubWF0Y2goL15cXCpcXC8oWzAtOV0rKSw/Lyk7XG4gICAgICAgICAgICAgICAgICAgIGlmKG0gJiYgbS5sZW5ndGggPT0gMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGk9MDsgaTw9NTk7IGkrPShtWzFdfDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShtWzBdLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB0ZXN0IFwiYS1iL25cIiBleHByZXNzaW9uXG4gICAgICAgICAgICAgICAgICAgIG0gPSBzdHIubWF0Y2goL14oWzAtOV0rKS0oWzAtOV0rKVxcLyhbMC05XSspLD8vKTtcbiAgICAgICAgICAgICAgICAgICAgaWYobSAmJiBtLmxlbmd0aCA9PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IoaT0obVsxXXwwKTsgaTw9KG1bMl18MCk7IGkrPShtWzNdfDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShtWzBdLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB0ZXN0IFwiYS1iXCIgZXhwcmVzc2lvblxuICAgICAgICAgICAgICAgICAgICBtID0gc3RyLm1hdGNoKC9eKFswLTldKyktKFswLTldKyksPy8pO1xuICAgICAgICAgICAgICAgICAgICBpZihtICYmIG0ubGVuZ3RoID09IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcihpPShtWzFdfDApOyBpPD0obVsyXXwwKTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShtWzBdLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB0ZXN0IFwiY1wiIGV4cHJlc3Npb25cbiAgICAgICAgICAgICAgICAgICAgbSA9IHN0ci5tYXRjaCgvXihbMC05XSspLD8vKTtcbiAgICAgICAgICAgICAgICAgICAgaWYobSAmJiBtLmxlbmd0aCA9PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChtWzFdfDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UobVswXSwgJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gc29tZXRoaW5nIGdvZXMgd3JvbmcgaW4gdGhlIGV4cHJlc3Npb25cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfc2VsZi5zZXRWYWx1ZSh2YWx1ZXMpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGNsb3NlIHRoZSBzZWxlY3RvclxuICAgICAgICB0aGlzLmNsb3NlID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIF8kc2VsZWN0b3IudHJpZ2dlcignc2VsZWN0b3I6Y2xvc2UnKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBvcGVuIHRoZSBzZWxlY3RvclxuICAgICAgICB0aGlzLm9wZW4gPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgXyRzZWxlY3Rvci50cmlnZ2VyKCdzZWxlY3RvcjpvcGVuJyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gd2hldGhlciB0aGUgc2VsZWN0b3IgaXMgb3BlblxuICAgICAgICB0aGlzLmlzT3BlbmVkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gXyRsaXN0LmlzKCc6dmlzaWJsZScpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGFkZCBhIHNlbGVjdGVkIHZhbHVlIHRvIHRoZSBsaXN0XG4gICAgICAgIHRoaXMuYWRkVmFsdWUgPSBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBfbXVsdGlwbGUgPyBfdmFsdWUuc2xpY2UoMCkgOiBbXTsgLy8gY2xvbmUgYXJyYXlcbiAgICAgICAgICAgIHZhbHVlcy5wdXNoKGtleSk7XG4gICAgICAgICAgICBfc2VsZi5zZXRWYWx1ZSh2YWx1ZXMpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHJlbW92ZSBhIHNlbGVjdGVkIHZhbHVlIGZyb20gdGhlIGxpc3RcbiAgICAgICAgdGhpcy5yZW1vdmVWYWx1ZSA9IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgaWYoX211bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGksIG5ld1ZhbHVlID0gW107XG4gICAgICAgICAgICAgICAgZm9yKGk9MDsgaTxfdmFsdWUubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBpZihrZXkgIT0gW192YWx1ZVtpXV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlLnB1c2goX3ZhbHVlW2ldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfc2VsZi5zZXRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBfc2VsZi5jbGVhcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHNldCB0aGUgc2VsZWN0ZWQgdmFsdWUocykgb2YgdGhlIGxpc3RcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSA9IGZ1bmN0aW9uKGtleXMpe1xuICAgICAgICAgICAgdmFyIGksIG5ld0tleXMgPSBbXSwgc2F2ZWQgPSBfdmFsdWUuam9pbignICcpO1xuICAgICAgICAgICAgaWYoISQuaXNBcnJheShrZXlzKSkga2V5cyA9IFtrZXlzXTtcbiAgICAgICAgICAgIF8kbGlzdC5maW5kKCdsaScpLnJlbW92ZUNsYXNzKCdzZWxlY3RlZCcpO1xuICAgICAgICAgICAga2V5cyA9IGFycmF5X3VuaXF1ZShrZXlzKTtcbiAgICAgICAgICAgIGtleXMuc29ydChmdW5jdGlvbihhLCBiKXtcbiAgICAgICAgICAgICAgICB2YXIgdGEgPSB0eXBlb2YoYSk7XG4gICAgICAgICAgICAgICAgdmFyIHRiID0gdHlwZW9mKGIpO1xuICAgICAgICAgICAgICAgIGlmKHRhPT10YiAmJiB0YT09XCJudW1iZXJcIikgcmV0dXJuIGEtYjtcbiAgICAgICAgICAgICAgICBlbHNlIHJldHVybiBTdHJpbmcoYSkgPT0gU3RyaW5nKGIpID8gMCA6IChTdHJpbmcoYSkgPCBTdHJpbmcoYikgPyAtMSA6IDEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZihfbXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICBmb3IoaT0wOyBpPGtleXMubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBpZihrZXlzW2ldIGluIF92YWx1ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF92YWx1ZXNba2V5c1tpXV0uYWRkQ2xhc3MoJ3NlbGVjdGVkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdLZXlzLnB1c2goa2V5c1tpXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZihrZXlzWzBdIGluIF92YWx1ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgX3ZhbHVlc1trZXlzWzBdXS5hZGRDbGFzcygnc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgbmV3S2V5cy5wdXNoKGtleXNbMF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHJlbW92ZSB1bmFsbG93ZWQgdmFsdWVzXG4gICAgICAgICAgICBfdmFsdWUgPSBuZXdLZXlzO1xuICAgICAgICAgICAgaWYoc2F2ZWQgIT0gX3ZhbHVlLmpvaW4oJyAnKSkge1xuICAgICAgICAgICAgICAgIF8kc2VsZWN0b3IudHJpZ2dlcignc2VsZWN0b3I6Y2hhbmdlJywgX211bHRpcGxlID8ga2V5cyA6IGtleXNbMF0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGdldCB0aGUgdGl0bGUgdGV4dFxuICAgICAgICB0aGlzLmdldFRpdGxlVGV4dCA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB2YXIgZ2V0VmFsdWVUZXh0ID0gZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChrZXkgaW4gX3ZhbHVlcykgPyBfdmFsdWVzW2tleV0udGV4dCgpIDoga2V5O1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYoX3ZhbHVlLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jcm9uLmdldFRleHQoJ2VtcHR5XycgKyBfdHlwZSkgfHwgX2Nyb24uZ2V0VGV4dCgnZW1wdHknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBjcm9uID0gW2dldFZhbHVlVGV4dChfdmFsdWVbMF0pXSwgaSwgcyA9IF92YWx1ZVswXSwgYyA9IF92YWx1ZVswXSwgbiA9IF92YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICBmb3IoaT0xOyBpPG47IGkrKykge1xuICAgICAgICAgICAgICAgIGlmKF92YWx1ZVtpXSA9PSBjKzEpIHtcbiAgICAgICAgICAgICAgICAgICAgYyA9IF92YWx1ZVtpXTtcbiAgICAgICAgICAgICAgICAgICAgY3Jvbltjcm9uLmxlbmd0aC0xXSA9IGdldFZhbHVlVGV4dChzKSsnLScrZ2V0VmFsdWVUZXh0KGMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcyA9IGMgPSBfdmFsdWVbaV07XG4gICAgICAgICAgICAgICAgICAgIGNyb24ucHVzaChnZXRWYWx1ZVRleHQoYykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjcm9uLmpvaW4oJywnKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBjbGVhciBsaXN0XG4gICAgICAgIHRoaXMuY2xlYXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIF92YWx1ZXMgPSB7fTtcbiAgICAgICAgICAgIF9zZWxmLnNldFZhbHVlKFtdKTtcbiAgICAgICAgICAgIF8kbGlzdC5lbXB0eSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGFkZCBhIChrZXksIHZhbHVlKSBwYWlyXG4gICAgICAgIHRoaXMuYWRkID0gZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgaWYoISh2YWx1ZSsnJykubWF0Y2goL15bMC05XSskLykpIF9oYXNOdW1lcmljVGV4dHMgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmKF9udW1lcmljX3plcm9fcGFkICYmIF9oYXNOdW1lcmljVGV4dHMgJiYgdmFsdWUgPCAxMCkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gJzAnK3ZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyICRpdGVtID0gJCgnPGxpPicgKyB2YWx1ZSArICc8L2xpPicpO1xuICAgICAgICAgICAgXyRsaXN0LmFwcGVuZCgkaXRlbSk7XG4gICAgICAgICAgICBfdmFsdWVzW2tleV0gPSAkaXRlbTtcbiAgICAgICAgICAgICRpdGVtLmNsaWNrKGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgaWYoX211bHRpcGxlICYmICQodGhpcykuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGYucmVtb3ZlVmFsdWUoa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxmLmFkZFZhbHVlKGtleSk7XG4gICAgICAgICAgICAgICAgICAgIGlmKCFfbXVsdGlwbGUpIF9zZWxmLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gZXhwb3NlIG1haW4ganF1ZXJ5IG9iamVjdFxuICAgICAgICB0aGlzLiQgPSBfJHNlbGVjdG9yO1xuXG4gICAgICAgIC8vIGNvbnN0cnVjdG9yXG4gICAgICAgIF8kYmxvY2suZmluZCgnYjplcSgwKScpLmFmdGVyKF8kc2VsZWN0b3IpLnJlbW92ZSgpO1xuICAgICAgICBfJHNlbGVjdG9yXG4gICAgICAgICAgICAuYWRkQ2xhc3MoJ2pxQ3Jvbi1zZWxlY3Rvci0nICsgXyRibG9jay5maW5kKCcuanFDcm9uLXNlbGVjdG9yJykubGVuZ3RoKVxuICAgICAgICAgICAgLmFwcGVuZChfJHRpdGxlKVxuICAgICAgICAgICAgLmFwcGVuZChfJGxpc3QpXG4gICAgICAgICAgICAuYmluZCgnc2VsZWN0b3I6b3BlbicsIGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgaWYoX2hhc051bWVyaWNUZXh0cykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmJjb2xzID0gMSwgbiA9IF8kbGlzdC5maW5kKCdsaScpLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgaWYobiA+IDUgJiYgbiA8PSAxNikgbmJjb2xzID0gMjtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihuID4gMTYgJiYgbiA8PSAyMykgbmJjb2xzID0gMztcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihuID4gMjMgJiYgbiA8PSA0MCkgbmJjb2xzID0gNDtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihuID4gNDApIG5iY29scyA9IDU7XG4gICAgICAgICAgICAgICAgICAgIF8kbGlzdC5hZGRDbGFzcygnY29scycrbmJjb2xzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXyRsaXN0LnNob3coKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYmluZCgnc2VsZWN0b3I6Y2xvc2UnLCBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIF8kbGlzdC5oaWRlKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmJpbmQoJ3NlbGVjdG9yOmNoYW5nZScsIGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgXyR0aXRsZS5odG1sKF9zZWxmLmdldFRpdGxlVGV4dCgpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2xpY2soZnVuY3Rpb24oZSl7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudHJpZ2dlcignc2VsZWN0b3I6Y2hhbmdlJylcbiAgICAgICAgO1xuICAgICAgICAkLmZuLmRpc2FibGVTZWxlY3Rpb24gJiYgXyRzZWxlY3Rvci5kaXNhYmxlU2VsZWN0aW9uKCk7IC8vIG9ubHkgd29yayB3aXRoIGpRdWVyeSBVSVxuICAgICAgICBfJHRpdGxlLmNsaWNrKGZ1bmN0aW9uKGUpe1xuICAgICAgICAgICAgKF9zZWxmLmlzT3BlbmVkKCkgfHwgX2Nyb24uaXNEaXNhYmxlZCgpKSA/IF9zZWxmLmNsb3NlKCkgOiBfc2VsZi5vcGVuKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBfc2VsZi5jbG9zZSgpO1xuICAgICAgICBfc2VsZi5jbGVhcigpO1xuICAgIH1cbiAgICB0aGlzLmpxQ3JvblNlbGVjdG9yID0ganFDcm9uU2VsZWN0b3I7XG59KS5jYWxsKHdpbmRvdywgJCk7XG5cbi8qKlxuICogR2VuZXJhdGUgdW5pcXVlIGlkIGZvciBlYWNoIGVsZW1lbnQuXG4gKiBTa2lwIGVsZW1lbnRzIHdoaWNoIGhhdmUgYWxyZWFkeSBhbiBpZC5cbiAqL1xuKGZ1bmN0aW9uKCQpe1xuICAgIHZhciBqcVVJRCA9IDA7XG4gICAgdmFyIGpxR2V0VUlEID0gZnVuY3Rpb24ocHJlZml4KXtcbiAgICAgICAgdmFyIGlkO1xuICAgICAgICB3aGlsZSgxKSB7XG4gICAgICAgICAgICBqcVVJRCsrO1xuICAgICAgICAgICAgaWQgPSAoKHByZWZpeCB8fCAnSlFVSUQnKSsnJykgKyBqcVVJRDtcbiAgICAgICAgICAgIGlmKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkpIHJldHVybiBpZDtcbiAgICAgICAgfVxuICAgIH07XG4gICAgJC5mbi51bmlxdWVJZCA9ICBmdW5jdGlvbihwcmVmaXgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe1xuICAgICAgICAgICAgaWYoJCh0aGlzKS5hdHRyKCdpZCcpKSByZXR1cm47XG4gICAgICAgICAgICB2YXIgaWQgPSBqcUdldFVJRChwcmVmaXgpO1xuICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdpZCcsIGlkKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbn0pLmNhbGwod2luZG93LCAkKTtcblxuXG4vKipcbiAqIEV4dGVuZHMgalF1ZXJ5IHNlbGVjdG9ycyB3aXRoIG5ldyBibG9jayBzZWxlY3RvclxuICovXG4oZnVuY3Rpb24oJCl7XG4gICAgJC5leHRlbmQoJC5leHByWyc6J10sIHtcbiAgICAgICAgY29udGFpbmVyOiBmdW5jdGlvbihhKSB7XG4gICAgICAgICAgICByZXR1cm4gKGEudGFnTmFtZSsnJykudG9Mb3dlckNhc2UoKSBpbiB7XG4gICAgICAgICAgICAgICAgYToxLFxuICAgICAgICAgICAgICAgIGFiYnI6MSxcbiAgICAgICAgICAgICAgICBhY3JvbnltOjEsXG4gICAgICAgICAgICAgICAgYWRkcmVzczoxLFxuICAgICAgICAgICAgICAgIGI6MSxcbiAgICAgICAgICAgICAgICBiaWc6MSxcbiAgICAgICAgICAgICAgICBibG9ja3F1b3RlOjEsXG4gICAgICAgICAgICAgICAgYnV0dG9uOjEsXG4gICAgICAgICAgICAgICAgY2l0ZToxLFxuICAgICAgICAgICAgICAgIGNvZGU6MSxcbiAgICAgICAgICAgICAgICBkZDogMSxcbiAgICAgICAgICAgICAgICBkZWw6MSxcbiAgICAgICAgICAgICAgICBkZm46MSxcbiAgICAgICAgICAgICAgICBkaXY6MSxcbiAgICAgICAgICAgICAgICBkdDoxLFxuICAgICAgICAgICAgICAgIGVtOjEsXG4gICAgICAgICAgICAgICAgZmllbGRzZXQ6MSxcbiAgICAgICAgICAgICAgICBmb3JtOjEsXG4gICAgICAgICAgICAgICAgaDE6MSxcbiAgICAgICAgICAgICAgICBoMjoxLFxuICAgICAgICAgICAgICAgIGgzOjEsXG4gICAgICAgICAgICAgICAgaDQ6MSxcbiAgICAgICAgICAgICAgICBoNToxLFxuICAgICAgICAgICAgICAgIGg2OiAxLFxuICAgICAgICAgICAgICAgIGk6MSxcbiAgICAgICAgICAgICAgICBpbnM6MSxcbiAgICAgICAgICAgICAgICBrYmQ6MSxcbiAgICAgICAgICAgICAgICBsYWJlbDoxLFxuICAgICAgICAgICAgICAgIGxpOjEsXG4gICAgICAgICAgICAgICAgcDoxLFxuICAgICAgICAgICAgICAgIHByZToxLFxuICAgICAgICAgICAgICAgIHE6MSxcbiAgICAgICAgICAgICAgICBzYW1wOjEsXG4gICAgICAgICAgICAgICAgc21hbGw6MSxcbiAgICAgICAgICAgICAgICBzcGFuOjEsXG4gICAgICAgICAgICAgICAgc3Ryb25nOjEsXG4gICAgICAgICAgICAgICAgc3ViOiAxLFxuICAgICAgICAgICAgICAgIHN1cDoxLFxuICAgICAgICAgICAgICAgIHRkOjEsXG4gICAgICAgICAgICAgICAgdHQ6MVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgYXV0b2Nsb3NlOiBmdW5jdGlvbihhKSB7XG4gICAgICAgICAgICByZXR1cm4gKGEudGFnTmFtZSsnJykudG9Mb3dlckNhc2UoKSBpbiB7XG4gICAgICAgICAgICAgICAgYXJlYToxLFxuICAgICAgICAgICAgICAgIGJhc2U6MSxcbiAgICAgICAgICAgICAgICBiYXNlZm9udDoxLFxuICAgICAgICAgICAgICAgIGJyOjEsXG4gICAgICAgICAgICAgICAgY29sOjEsXG4gICAgICAgICAgICAgICAgZnJhbWU6MSxcbiAgICAgICAgICAgICAgICBocjoxLFxuICAgICAgICAgICAgICAgIGltZzoxLFxuICAgICAgICAgICAgICAgIGlucHV0OjEsXG4gICAgICAgICAgICAgICAgbGluazoxLFxuICAgICAgICAgICAgICAgIG1ldGE6MSxcbiAgICAgICAgICAgICAgICBwYXJhbToxXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSk7XG59KS5jYWxsKHdpbmRvdywgJCk7XG4iXSwibmFtZXMiOlsiJCIsImpxQ3JvbkRlZmF1bHRTZXR0aW5ncyIsInRleHRzIiwibW9udGhkYXlzIiwiaG91cnMiLCJob3VyX2xhYmVscyIsIm1pbnV0ZXMiLCJsYW5nIiwiZW5hYmxlZF9taW51dGUiLCJlbmFibGVkX2hvdXIiLCJlbmFibGVkX2RheSIsImVuYWJsZWRfd2VlayIsImVuYWJsZWRfbW9udGgiLCJlbmFibGVkX3llYXIiLCJtdWx0aXBsZV9kb20iLCJtdWx0aXBsZV9tb250aCIsIm11bHRpcGxlX21pbnMiLCJtdWx0aXBsZV9kb3ciLCJtdWx0aXBsZV90aW1lX2hvdXJzIiwibXVsdGlwbGVfdGltZV9taW51dGVzIiwibnVtZXJpY196ZXJvX3BhZCIsImRlZmF1bHRfcGVyaW9kIiwiZGVmYXVsdF92YWx1ZSIsIm5vX3Jlc2V0X2J1dHRvbiIsImRpc2FibGVkIiwiYmluZF90byIsImJpbmRfbWV0aG9kIiwic2V0IiwiJGVsZW1lbnQiLCJ2YWx1ZSIsImlzIiwidmFsIiwiZGF0YSIsImdldCIsImV4dGVuZCIsImRzdCIsInNyYyIsImkiLCJpc1BsYWluT2JqZWN0IiwiaXNBcnJheSIsInNsaWNlIiwidW5kZWZpbmVkIiwianFDcm9uTWVyZ2VTZXR0aW5ncyIsIm9iaiIsImNhbGwiLCJ3aW5kb3ciLCJmbiIsImpxQ3JvbkdldEluc3RhbmNlIiwianFDcm9uIiwic2V0dGluZ3MiLCJzYXZlZF9zZXR0aW5ncyIsImVhY2giLCJjcm9uIiwic2F2ZWQiLCIkdGhpcyIsInRyYW5zbGF0aW9ucyIsIl90eXBlb2YiLCJpc0VtcHR5T2JqZWN0IiwiY29uc29sZSIsImVycm9yIiwianF1ZXJ5X2NvbnRhaW5lciIsImpxdWVyeV9lbGVtZW50IiwidW5pcXVlSWQiLCJuZXh0IiwibGVuZ3RoIiwicmVtb3ZlIiwiaW5zZXJ0QWZ0ZXIiLCJlcnJvcjEiLCJyZXBsYWNlIiwidGFnTmFtZSIsImJsdXIiLCJzZXRDcm9uIiwianFDcm9uSW5zdGFuY2VzIiwiX2luaXRpYWxpemVkIiwiX3NlbGYiLCJfJGVsdCIsIl8kb2JqIiwiXyRibG9ja3MiLCJfJGJsb2NrUEVSSU9EIiwiXyRibG9ja0RPTSIsIl8kYmxvY2tNT05USCIsIl8kYmxvY2tNSU5TIiwiXyRibG9ja0RPVyIsIl8kYmxvY2tUSU1FIiwiXyRjcm9zcyIsIl9zZWxlY3RvcnMiLCJfc2VsZWN0b3JQZXJpb2QiLCJfc2VsZWN0b3JNaW5zIiwiX3NlbGVjdG9yVGltZUgiLCJfc2VsZWN0b3JUaW1lTSIsIl9zZWxlY3RvckRvdyIsIl9zZWxlY3RvckRvbSIsIl9zZWxlY3Rvck1vbnRoIiwibmV3U2VsZWN0b3IiLCIkYmxvY2siLCJtdWx0aXBsZSIsInR5cGUiLCJzZWxlY3RvciIsImpxQ3JvblNlbGVjdG9yIiwiYmluZCIsIm4iLCJjbG9zZVNlbGVjdG9ycyIsIm8iLCJjbG9zZSIsImJvdW5kQ2hhbmdlZCIsInNldFZhbHVlIiwiZ2V0VmFsdWUiLCJ0cmlnZ2VyIiwiZ2V0Q3JvbiIsInB1c2giLCJkaXNhYmxlIiwiYWRkQ2xhc3MiLCJpc0Rpc2FibGVkIiwiZW5hYmxlIiwicmVtb3ZlQ2xhc3MiLCJwZXJpb2QiLCJpdGVtcyIsImdldENyb25WYWx1ZSIsImpvaW4iLCJzdHIiLCJtYXNrIiwic3BsaXQiLCJnZXRUZXh0Iiwic2V0Q3JvblZhbHVlIiwic3Vic3RyaW5nIiwiY2xlYXJFcnJvciIsImUiLCJnZXRJZCIsImF0dHIiLCJrZXkiLCJ0ZXh0IiwibWF0Y2giLCJnZXRIdW1hblRleHQiLCJmaW5kIiwiZ2V0U2V0dGluZ3MiLCJtc2ciLCJjbGVhciIsInRyaWdnZXJDaGFuZ2UiLCJpbml0IiwibGFiZWxzTGlzdCIsImxpc3QiLCJhcHBlbmQiLCJpZCIsInRlc3QiLCJjbGljayIsImV2dCIsImFkZCIsImhpZGUiLCJzaG93IiwiX2Nyb24iLCJfJGJsb2NrIiwiX211bHRpcGxlIiwiX3R5cGUiLCJfJGxpc3QiLCJfJHRpdGxlIiwiXyRzZWxlY3RvciIsIl92YWx1ZXMiLCJfdmFsdWUiLCJfaGFzTnVtZXJpY1RleHRzIiwiX251bWVyaWNfemVyb19wYWQiLCJhcnJheV91bmlxdWUiLCJsIiwiayIsImEiLCJzIiwiYyIsInZhbHVlcyIsIm0iLCJvcGVuIiwiaXNPcGVuZWQiLCJhZGRWYWx1ZSIsInJlbW92ZVZhbHVlIiwibmV3VmFsdWUiLCJrZXlzIiwibmV3S2V5cyIsInNvcnQiLCJiIiwidGEiLCJ0YiIsIlN0cmluZyIsImdldFRpdGxlVGV4dCIsImdldFZhbHVlVGV4dCIsImVtcHR5IiwiJGl0ZW0iLCJoYXNDbGFzcyIsImFmdGVyIiwibmJjb2xzIiwiaHRtbCIsInN0b3BQcm9wYWdhdGlvbiIsImRpc2FibGVTZWxlY3Rpb24iLCJqcVVJRCIsImpxR2V0VUlEIiwicHJlZml4IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImV4cHIiLCJjb250YWluZXIiLCJ0b0xvd2VyQ2FzZSIsImFiYnIiLCJhY3JvbnltIiwiYWRkcmVzcyIsImJpZyIsImJsb2NrcXVvdGUiLCJidXR0b24iLCJjaXRlIiwiY29kZSIsImRkIiwiZGVsIiwiZGZuIiwiZGl2IiwiZHQiLCJlbSIsImZpZWxkc2V0IiwiZm9ybSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImlucyIsImtiZCIsImxhYmVsIiwibGkiLCJwIiwicHJlIiwicSIsInNhbXAiLCJzbWFsbCIsInNwYW4iLCJzdHJvbmciLCJzdWIiLCJzdXAiLCJ0ZCIsInR0IiwiYXV0b2Nsb3NlIiwiYXJlYSIsImJhc2UiLCJiYXNlZm9udCIsImJyIiwiY29sIiwiZnJhbWUiLCJociIsImltZyIsImlucHV0IiwibGluayIsIm1ldGEiLCJwYXJhbSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/cron-ui.js\n\n}");
/***/ }),
/***/ "./app/utils/finderjs.js":
/*!*******************************!*\
!*** ./app/utils/finderjs.js ***!
\*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULTS: () => (/* binding */ DEFAULTS),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! eventemitter3 */ \"./node_modules/eventemitter3/index.mjs\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * (c) Trilby Media, LLC\n * Author Djamil Legato\n *\n * Based on Mark Matyas's Finderjs\n * MIT License\n */\n\n\n\nvar DEFAULTS = {\n labelKey: 'name',\n valueKey: 'value',\n // new\n childKey: 'children',\n iconKey: 'icon',\n // new\n itemKey: 'item-key',\n // new\n pathBar: true,\n className: {\n container: 'fjs-container',\n pathBar: 'fjs-path-bar',\n col: 'fjs-col',\n list: 'fjs-list',\n item: 'fjs-item',\n active: 'fjs-active',\n children: 'fjs-has-children',\n url: 'fjs-url',\n itemPrepend: 'fjs-item-prepend',\n itemContent: 'fjs-item-content',\n itemAppend: 'fjs-item-append'\n }\n};\nvar Finder = /*#__PURE__*/function () {\n function Finder(container, data, options) {\n var _this = this;\n _classCallCheck(this, Finder);\n this.$emitter = new eventemitter3__WEBPACK_IMPORTED_MODULE_1__[\"default\"]();\n this.container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n this.data = data;\n this.config = jquery__WEBPACK_IMPORTED_MODULE_0___default().extend({}, DEFAULTS, options);\n\n // dom events\n this.container.on('click', this.clickEvent.bind(this));\n this.container.on('keydown', this.keydownEvent.bind(this));\n\n // internal events\n this.$emitter.on('item-selected', this.itemSelected.bind(this));\n this.$emitter.on('create-column', this.addColumn.bind(this));\n this.$emitter.on('navigate', this.navigate.bind(this));\n this.$emitter.on('go-to', this.goTo.bind(this, this.data));\n this.container.addClass(this.config.className.container).attr('tabindex', 0);\n this.createColumn(this.data);\n if (this.config.pathBar) {\n this.pathBar = this.createPathBar();\n this.pathBar.on('click', '[data-breadcrumb-node]', function (event) {\n event.preventDefault();\n var location = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).data('breadcrumbNode');\n _this.goTo(_this.data, location);\n });\n }\n\n // '' is \n if (this.config.defaultPath || this.config.defaultPath === '') {\n this.goTo(this.data, this.config.defaultPath);\n }\n }\n return _createClass(Finder, [{\n key: \"reload\",\n value: function reload() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.data;\n this.createColumn(data);\n\n // '' is \n if (this.config.defaultPath || this.config.defaultPath === '') {\n this.goTo(data, this.config.defaultPath);\n }\n }\n }, {\n key: \"createColumn\",\n value: function createColumn(data, parent) {\n var _this2 = this;\n var callback = function callback(data) {\n return _this2.createColumn(data, parent);\n };\n if (typeof data === 'function') {\n data.call(this, parent, callback);\n } else if (Array.isArray(data) || _typeof(data) === 'object') {\n if (_typeof(data) === 'object') {\n data = Array.from(data);\n }\n var list = this.createList(data);\n var div = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
');\n div.append(list).addClass(this.config.className.col);\n this.$emitter.emit('create-column', div);\n return div;\n } else {\n throw new Error('Unknown data type');\n }\n }\n }, {\n key: \"createPathBar\",\n value: function createPathBar() {\n this.container.siblings(\".\".concat(this.config.className.pathBar)).remove();\n var pathBar = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"
\"));\n pathBar.insertAfter(this.container);\n return pathBar;\n }\n }, {\n key: \"clickEvent\",\n value: function clickEvent(event) {\n event.stopPropagation();\n event.preventDefault();\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var column = target.closest(\".\".concat(this.config.className.col));\n var item = target.closest(\".\".concat(this.config.className.item));\n if (item.length) {\n this.$emitter.emit('item-selected', {\n column: column,\n item: item\n });\n }\n }\n }, {\n key: \"keydownEvent\",\n value: function keydownEvent(event) {\n var codes = {\n 37: 'left',\n 38: 'up',\n 39: 'right',\n 40: 'down'\n };\n if (event.keyCode in codes) {\n event.stopPropagation();\n event.preventDefault();\n this.$emitter.emit('navigate', {\n direction: codes[event.keyCode]\n });\n }\n }\n }, {\n key: \"itemSelected\",\n value: function itemSelected(value) {\n var element = value.item;\n if (!element.length) {\n return false;\n }\n var item = element[0]._item;\n var column = value.column;\n var data = item[this.config.childKey] || this.data;\n var active = jquery__WEBPACK_IMPORTED_MODULE_0___default()(column).find(\".\".concat(this.config.className.active));\n if (active.length) {\n active.removeClass(this.config.className.active);\n }\n element.addClass(this.config.className.active);\n column.nextAll().remove(); // ?!?!?\n\n this.container[0].focus();\n window.scrollTo(window.pageXOffset, window.pageYOffset);\n this.updatePathBar();\n var newColumn;\n if (data) {\n newColumn = this.createColumn(data, item);\n this.$emitter.emit('interior-selected', item);\n } else {\n this.$emitter.emit('leaf-selected', item);\n }\n return newColumn;\n }\n }, {\n key: \"addColumn\",\n value: function addColumn(column) {\n this.container.append(column);\n this.$emitter.emit('column-created', column);\n }\n }, {\n key: \"navigate\",\n value: function navigate(value) {\n var active = this.findLastActive();\n var direction = value.direction;\n var column;\n var item;\n var target;\n if (active) {\n item = active.item;\n column = active.column;\n if (direction === 'up' && item.prev().length) {\n target = item.prev();\n } else if (direction === 'down' && item.next().length) {\n target = item.next();\n } else if (direction === 'right' && column.next().length) {\n column = column.next();\n target = column.find(\".\".concat(this.config.className.item)).first();\n } else if (direction === 'left' && column.prev().length) {\n column = column.prev();\n target = column.find(\".\".concat(this.config.className.active)).first() || column.find(\".\".concat(this.config.className.item));\n }\n } else {\n column = this.container.find(\".\".concat(this.config.className.col)).first();\n target = column.find(\".\".concat(this.config.className.item)).first();\n }\n if (target) {\n this.$emitter.emit('item-selected', {\n column: column,\n item: target\n });\n }\n }\n }, {\n key: \"goTo\",\n value: function goTo(data, path) {\n var _this3 = this;\n path = Array.isArray(path) ? path : path.split('/').map(function (bit) {\n return bit.trim();\n }).filter(Boolean);\n if (path.length) {\n this.container.children().remove();\n }\n if (typeof data === 'function') {\n data.call(this, null, function (data) {\n return _this3.selectPath(path, data);\n });\n } else {\n this.selectPath(path, data);\n }\n }\n }, {\n key: \"selectPath\",\n value: function selectPath(path, data, column) {\n var _this4 = this;\n column = column || (path.length ? this.createColumn(data) : this.container.find(\"> .\".concat(this.config.className.col)));\n var current = path[0] || '';\n var children = data.find(function (item) {\n return item[_this4.config.itemKey] === current;\n });\n var newColumn = this.itemSelected({\n column: column,\n item: column.find(\"[data-fjs-item=\\\"\".concat(current, \"\\\"]\")).first()\n });\n path.shift();\n if (path.length && children) {\n this.selectPath(path, children[this.config.childKey], newColumn);\n }\n }\n }, {\n key: \"findLastActive\",\n value: function findLastActive() {\n var active = this.container.find(\".\".concat(this.config.className.active));\n if (!active.length) {\n return null;\n }\n var item = active.last();\n var column = item.closest(\".\".concat(this.config.className.col));\n return {\n item: item,\n column: column\n };\n }\n }, {\n key: \"createList\",\n value: function createList(data) {\n var _this5 = this;\n var list = jquery__WEBPACK_IMPORTED_MODULE_0___default()('');\n var items = data.map(function (item) {\n return _this5.createItem(item);\n });\n var fragments = items.reduce(function (fragment, current) {\n fragment.appendChild(current[0] || current);\n return fragment;\n }, document.createDocumentFragment());\n list.append(fragments).addClass(this.config.className.list);\n return list;\n }\n }, {\n key: \"createItem\",\n value: function createItem(item) {\n var listItem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(' ');\n var listItemClasses = [this.config.className.item];\n var link = jquery__WEBPACK_IMPORTED_MODULE_0___default()(' ');\n var createItemContent = this.config.createItemContent || this.createItemContent;\n var fragment = createItemContent.call(this, item);\n link.append(fragment).attr('href', '').attr('tabindex', -1);\n if (item.url) {\n link.attr('href', item.url);\n listItemClasses.push(item.className);\n }\n if (item[this.config.childKey]) {\n listItemClasses.push(this.config.className[this.config.childKey]);\n }\n listItemClasses.push(\"fjs-item-\".concat(item.type));\n listItem.addClass(listItemClasses.join(' '));\n listItem.append(link).attr('data-fjs-item', item[this.config.itemKey]);\n listItem[0]._item = item;\n return listItem;\n }\n }, {\n key: \"updatePathBar\",\n value: function updatePathBar() {\n var _this6 = this;\n if (!this.config.pathBar) {\n return false;\n }\n var activeItems = this.container.find(\".\".concat(this.config.className.active));\n var itemKeys = '';\n this.pathBar.children().empty();\n activeItems.each(function (index, activeItem) {\n var item = activeItem._item;\n var isLast = index + 1 === activeItems.length;\n itemKeys += \"/\".concat(item[_this6.config.itemKey]);\n _this6.pathBar.append(\"\\n \\n \\n \").concat(jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').html(item[_this6.config.labelKey]).html(), \" \\n \").concat(!isLast ? ' ' : '', \"\\n \\n \"));\n });\n }\n }, {\n key: \"getIcon\",\n value: function getIcon(type) {\n switch (type) {\n case 'root':\n return 'fa-sitemap';\n case 'file':\n return 'fa-file-o';\n case 'dir':\n default:\n return 'fa-folder';\n }\n }\n }]);\n}();\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Finder);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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L3V0aWxzL2ZpbmRlcmpzLmpzP2NmNGMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAoYykgVHJpbGJ5IE1lZGlhLCBMTENcbiAqIEF1dGhvciBEamFtaWwgTGVnYXRvXG4gKlxuICogQmFzZWQgb24gTWFyayBNYXR5YXMncyBGaW5kZXJqc1xuICogTUlUIExpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IEV2ZW50RW1pdHRlciBmcm9tICdldmVudGVtaXR0ZXIzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRTID0ge1xuICAgIGxhYmVsS2V5OiAnbmFtZScsXG4gICAgdmFsdWVLZXk6ICd2YWx1ZScsIC8vIG5ld1xuICAgIGNoaWxkS2V5OiAnY2hpbGRyZW4nLFxuICAgIGljb25LZXk6ICdpY29uJywgLy8gbmV3XG4gICAgaXRlbUtleTogJ2l0ZW0ta2V5JywgLy8gbmV3XG4gICAgcGF0aEJhcjogdHJ1ZSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgY29udGFpbmVyOiAnZmpzLWNvbnRhaW5lcicsXG4gICAgICAgIHBhdGhCYXI6ICdmanMtcGF0aC1iYXInLFxuICAgICAgICBjb2w6ICdmanMtY29sJyxcbiAgICAgICAgbGlzdDogJ2Zqcy1saXN0JyxcbiAgICAgICAgaXRlbTogJ2Zqcy1pdGVtJyxcbiAgICAgICAgYWN0aXZlOiAnZmpzLWFjdGl2ZScsXG4gICAgICAgIGNoaWxkcmVuOiAnZmpzLWhhcy1jaGlsZHJlbicsXG4gICAgICAgIHVybDogJ2Zqcy11cmwnLFxuICAgICAgICBpdGVtUHJlcGVuZDogJ2Zqcy1pdGVtLXByZXBlbmQnLFxuICAgICAgICBpdGVtQ29udGVudDogJ2Zqcy1pdGVtLWNvbnRlbnQnLFxuICAgICAgICBpdGVtQXBwZW5kOiAnZmpzLWl0ZW0tYXBwZW5kJ1xuICAgIH1cbn07XG5cbmNsYXNzIEZpbmRlciB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyLCBkYXRhLCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuJGVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gJChjb250YWluZXIpO1xuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhO1xuXG4gICAgICAgIHRoaXMuY29uZmlnID0gJC5leHRlbmQoe30sIERFRkFVTFRTLCBvcHRpb25zKTtcblxuICAgICAgICAvLyBkb20gZXZlbnRzXG4gICAgICAgIHRoaXMuY29udGFpbmVyLm9uKCdjbGljaycsIHRoaXMuY2xpY2tFdmVudC5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5jb250YWluZXIub24oJ2tleWRvd24nLCB0aGlzLmtleWRvd25FdmVudC5iaW5kKHRoaXMpKTtcblxuICAgICAgICAvLyBpbnRlcm5hbCBldmVudHNcbiAgICAgICAgdGhpcy4kZW1pdHRlci5vbignaXRlbS1zZWxlY3RlZCcsIHRoaXMuaXRlbVNlbGVjdGVkLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLiRlbWl0dGVyLm9uKCdjcmVhdGUtY29sdW1uJywgdGhpcy5hZGRDb2x1bW4uYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuJGVtaXR0ZXIub24oJ25hdmlnYXRlJywgdGhpcy5uYXZpZ2F0ZS5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy4kZW1pdHRlci5vbignZ28tdG8nLCB0aGlzLmdvVG8uYmluZCh0aGlzLCB0aGlzLmRhdGEpKTtcblxuICAgICAgICB0aGlzLmNvbnRhaW5lci5hZGRDbGFzcyh0aGlzLmNvbmZpZy5jbGFzc05hbWUuY29udGFpbmVyKS5hdHRyKCd0YWJpbmRleCcsIDApO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlQ29sdW1uKHRoaXMuZGF0YSk7XG5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLnBhdGhCYXIpIHtcbiAgICAgICAgICAgIHRoaXMucGF0aEJhciA9IHRoaXMuY3JlYXRlUGF0aEJhcigpO1xuICAgICAgICAgICAgdGhpcy5wYXRoQmFyLm9uKCdjbGljaycsICdbZGF0YS1icmVhZGNydW1iLW5vZGVdJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9ICQoZXZlbnQuY3VycmVudFRhcmdldCkuZGF0YSgnYnJlYWRjcnVtYk5vZGUnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmdvVG8odGhpcy5kYXRhLCBsb2NhdGlvbik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vICcnIGlzIDxSb290PlxuICAgICAgICBpZiAodGhpcy5jb25maWcuZGVmYXVsdFBhdGggfHwgdGhpcy5jb25maWcuZGVmYXVsdFBhdGggPT09ICcnKSB7XG4gICAgICAgICAgICB0aGlzLmdvVG8odGhpcy5kYXRhLCB0aGlzLmNvbmZpZy5kZWZhdWx0UGF0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWxvYWQoZGF0YSA9IHRoaXMuZGF0YSkge1xuICAgICAgICB0aGlzLmNyZWF0ZUNvbHVtbihkYXRhKTtcblxuICAgICAgICAvLyAnJyBpcyA8Um9vdD5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmRlZmF1bHRQYXRoIHx8IHRoaXMuY29uZmlnLmRlZmF1bHRQYXRoID09PSAnJykge1xuICAgICAgICAgICAgdGhpcy5nb1RvKGRhdGEsIHRoaXMuY29uZmlnLmRlZmF1bHRQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZUNvbHVtbihkYXRhLCBwYXJlbnQpIHtcbiAgICAgICAgY29uc3QgY2FsbGJhY2sgPSAoZGF0YSkgPT4gdGhpcy5jcmVhdGVDb2x1bW4oZGF0YSwgcGFyZW50KTtcblxuICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGRhdGEuY2FsbCh0aGlzLCBwYXJlbnQsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGRhdGEpIHx8IHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBBcnJheS5mcm9tKGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGlzdCA9IHRoaXMuY3JlYXRlTGlzdChkYXRhKTtcbiAgICAgICAgICAgIGNvbnN0IGRpdiA9ICQoJzxkaXYgLz4nKTtcbiAgICAgICAgICAgIGRpdi5hcHBlbmQobGlzdCkuYWRkQ2xhc3ModGhpcy5jb25maWcuY2xhc3NOYW1lLmNvbCk7XG4gICAgICAgICAgICB0aGlzLiRlbWl0dGVyLmVtaXQoJ2NyZWF0ZS1jb2x1bW4nLCBkaXYpO1xuXG4gICAgICAgICAgICByZXR1cm4gZGl2O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGRhdGEgdHlwZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlUGF0aEJhcigpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIuc2libGluZ3MoYC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZS5wYXRoQmFyfWApLnJlbW92ZSgpO1xuICAgICAgICBjb25zdCBwYXRoQmFyID0gJChgPGRpdiBjbGFzcz1cIiR7dGhpcy5jb25maWcuY2xhc3NOYW1lLnBhdGhCYXJ9XCIgLz5gKTtcbiAgICAgICAgcGF0aEJhci5pbnNlcnRBZnRlcih0aGlzLmNvbnRhaW5lcik7XG5cbiAgICAgICAgcmV0dXJuIHBhdGhCYXI7XG4gICAgfVxuXG4gICAgY2xpY2tFdmVudChldmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHRhcmdldC5jbG9zZXN0KGAuJHt0aGlzLmNvbmZpZy5jbGFzc05hbWUuY29sfWApO1xuICAgICAgICBjb25zdCBpdGVtID0gdGFyZ2V0LmNsb3Nlc3QoYC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZS5pdGVtfWApO1xuXG4gICAgICAgIGlmIChpdGVtLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy4kZW1pdHRlci5lbWl0KCdpdGVtLXNlbGVjdGVkJywgeyBjb2x1bW4sIGl0ZW0gfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBrZXlkb3duRXZlbnQoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgY29kZXMgPSB7IDM3OiAnbGVmdCcsIDM4OiAndXAnLCAzOTogJ3JpZ2h0JywgNDA6ICdkb3duJyB9O1xuXG4gICAgICAgIGlmIChldmVudC5rZXlDb2RlIGluIGNvZGVzKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgIHRoaXMuJGVtaXR0ZXIuZW1pdCgnbmF2aWdhdGUnLCB7XG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBjb2Rlc1tldmVudC5rZXlDb2RlXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpdGVtU2VsZWN0ZWQodmFsdWUpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHZhbHVlLml0ZW07XG4gICAgICAgIGlmICghZWxlbWVudC5sZW5ndGgpIHsgcmV0dXJuIGZhbHNlOyB9XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBlbGVtZW50WzBdLl9pdGVtO1xuICAgICAgICBjb25zdCBjb2x1bW4gPSB2YWx1ZS5jb2x1bW47XG4gICAgICAgIGNvbnN0IGRhdGEgPSBpdGVtW3RoaXMuY29uZmlnLmNoaWxkS2V5XSB8fCB0aGlzLmRhdGE7XG4gICAgICAgIGNvbnN0IGFjdGl2ZSA9ICQoY29sdW1uKS5maW5kKGAuJHt0aGlzLmNvbmZpZy5jbGFzc05hbWUuYWN0aXZlfWApO1xuXG4gICAgICAgIGlmIChhY3RpdmUubGVuZ3RoKSB7XG4gICAgICAgICAgICBhY3RpdmUucmVtb3ZlQ2xhc3ModGhpcy5jb25maWcuY2xhc3NOYW1lLmFjdGl2ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBlbGVtZW50LmFkZENsYXNzKHRoaXMuY29uZmlnLmNsYXNzTmFtZS5hY3RpdmUpO1xuICAgICAgICBjb2x1bW4ubmV4dEFsbCgpLnJlbW92ZSgpOyAvLyA/IT8hP1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyWzBdLmZvY3VzKCk7XG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbyh3aW5kb3cucGFnZVhPZmZzZXQsIHdpbmRvdy5wYWdlWU9mZnNldCk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVQYXRoQmFyKCk7XG5cbiAgICAgICAgbGV0IG5ld0NvbHVtbjtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG5ld0NvbHVtbiA9IHRoaXMuY3JlYXRlQ29sdW1uKGRhdGEsIGl0ZW0pO1xuICAgICAgICAgICAgdGhpcy4kZW1pdHRlci5lbWl0KCdpbnRlcmlvci1zZWxlY3RlZCcsIGl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy4kZW1pdHRlci5lbWl0KCdsZWFmLXNlbGVjdGVkJywgaXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3Q29sdW1uO1xuICAgIH1cblxuICAgIGFkZENvbHVtbihjb2x1bW4pIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIuYXBwZW5kKGNvbHVtbik7XG4gICAgICAgIHRoaXMuJGVtaXR0ZXIuZW1pdCgnY29sdW1uLWNyZWF0ZWQnLCBjb2x1bW4pO1xuICAgIH1cblxuICAgIG5hdmlnYXRlKHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuZmluZExhc3RBY3RpdmUoKTtcbiAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gdmFsdWUuZGlyZWN0aW9uO1xuICAgICAgICBsZXQgY29sdW1uO1xuICAgICAgICBsZXQgaXRlbTtcbiAgICAgICAgbGV0IHRhcmdldDtcblxuICAgICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgICAgICBpdGVtID0gYWN0aXZlLml0ZW07XG4gICAgICAgICAgICBjb2x1bW4gPSBhY3RpdmUuY29sdW1uO1xuXG4gICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09PSAndXAnICYmIGl0ZW0ucHJldigpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRhcmdldCA9IGl0ZW0ucHJldigpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdkb3duJyAmJiBpdGVtLm5leHQoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSBpdGVtLm5leHQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAncmlnaHQnICYmIGNvbHVtbi5uZXh0KCkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY29sdW1uID0gY29sdW1uLm5leHQoKTtcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSBjb2x1bW4uZmluZChgLiR7dGhpcy5jb25maWcuY2xhc3NOYW1lLml0ZW19YCkuZmlyc3QoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAnbGVmdCcgJiYgY29sdW1uLnByZXYoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjb2x1bW4gPSBjb2x1bW4ucHJldigpO1xuICAgICAgICAgICAgICAgIHRhcmdldCA9IGNvbHVtbi5maW5kKGAuJHt0aGlzLmNvbmZpZy5jbGFzc05hbWUuYWN0aXZlfWApLmZpcnN0KCkgfHwgY29sdW1uLmZpbmQoYC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZS5pdGVtfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29sdW1uID0gdGhpcy5jb250YWluZXIuZmluZChgLiR7dGhpcy5jb25maWcuY2xhc3NOYW1lLmNvbH1gKS5maXJzdCgpO1xuICAgICAgICAgICAgdGFyZ2V0ID0gY29sdW1uLmZpbmQoYC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZS5pdGVtfWApLmZpcnN0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGFyZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLiRlbWl0dGVyLmVtaXQoJ2l0ZW0tc2VsZWN0ZWQnLCB7XG4gICAgICAgICAgICAgICAgY29sdW1uLFxuICAgICAgICAgICAgICAgIGl0ZW06IHRhcmdldFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnb1RvKGRhdGEsIHBhdGgpIHtcbiAgICAgICAgcGF0aCA9IEFycmF5LmlzQXJyYXkocGF0aCkgPyBwYXRoIDogcGF0aC5zcGxpdCgnLycpLm1hcChiaXQgPT4gYml0LnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pO1xuXG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuY2hpbGRyZW4oKS5yZW1vdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgZGF0YS5jYWxsKHRoaXMsIG51bGwsIChkYXRhKSA9PiB0aGlzLnNlbGVjdFBhdGgocGF0aCwgZGF0YSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RQYXRoKHBhdGgsIGRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0UGF0aChwYXRoLCBkYXRhLCBjb2x1bW4pIHtcbiAgICAgICAgY29sdW1uID0gY29sdW1uIHx8IChwYXRoLmxlbmd0aCA/IHRoaXMuY3JlYXRlQ29sdW1uKGRhdGEpIDogdGhpcy5jb250YWluZXIuZmluZChgPiAuJHt0aGlzLmNvbmZpZy5jbGFzc05hbWUuY29sfWApKTtcblxuICAgICAgICBjb25zdCBjdXJyZW50ID0gcGF0aFswXSB8fCAnJztcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBkYXRhLmZpbmQoKGl0ZW0pID0+IGl0ZW1bdGhpcy5jb25maWcuaXRlbUtleV0gPT09IGN1cnJlbnQpO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSB0aGlzLml0ZW1TZWxlY3RlZCh7XG4gICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgICBpdGVtOiBjb2x1bW4uZmluZChgW2RhdGEtZmpzLWl0ZW09XCIke2N1cnJlbnR9XCJdYCkuZmlyc3QoKVxuICAgICAgICB9KTtcblxuICAgICAgICBwYXRoLnNoaWZ0KCk7XG5cbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoICYmIGNoaWxkcmVuKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdFBhdGgocGF0aCwgY2hpbGRyZW5bdGhpcy5jb25maWcuY2hpbGRLZXldLCBuZXdDb2x1bW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZmluZExhc3RBY3RpdmUoKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuY29udGFpbmVyLmZpbmQoYC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZS5hY3RpdmV9YCk7XG4gICAgICAgIGlmICghYWN0aXZlLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpdGVtID0gYWN0aXZlLmxhc3QoKTtcbiAgICAgICAgY29uc3QgY29sdW1uID0gaXRlbS5jbG9zZXN0KGAuJHt0aGlzLmNvbmZpZy5jbGFzc05hbWUuY29sfWApO1xuXG4gICAgICAgIHJldHVybiB7IGl0ZW0sIGNvbHVtbiB9O1xuICAgIH1cblxuICAgIGNyZWF0ZUxpc3QoZGF0YSkge1xuICAgICAgICBjb25zdCBsaXN0ID0gJCgnPHVsIC8+Jyk7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gZGF0YS5tYXAoKGl0ZW0pID0+IHRoaXMuY3JlYXRlSXRlbShpdGVtKSk7XG5cbiAgICAgICAgY29uc3QgZnJhZ21lbnRzID0gaXRlbXMucmVkdWNlKChmcmFnbWVudCwgY3VycmVudCkgPT4ge1xuICAgICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoY3VycmVudFswXSB8fCBjdXJyZW50KTtcblxuICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50O1xuICAgICAgICB9LCBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkpO1xuXG4gICAgICAgIGxpc3QuYXBwZW5kKGZyYWdtZW50cykuYWRkQ2xhc3ModGhpcy5jb25maWcuY2xhc3NOYW1lLmxpc3QpO1xuXG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIGNyZWF0ZUl0ZW0oaXRlbSkge1xuICAgICAgICBjb25zdCBsaXN0SXRlbSA9ICQoJzxsaSAvPicpO1xuICAgICAgICBjb25zdCBsaXN0SXRlbUNsYXNzZXMgPSBbdGhpcy5jb25maWcuY2xhc3NOYW1lLml0ZW1dO1xuICAgICAgICBjb25zdCBsaW5rID0gJCgnPGEgLz4nKTtcbiAgICAgICAgY29uc3QgY3JlYXRlSXRlbUNvbnRlbnQgPSB0aGlzLmNvbmZpZy5jcmVhdGVJdGVtQ29udGVudCB8fCB0aGlzLmNyZWF0ZUl0ZW1Db250ZW50O1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IGNyZWF0ZUl0ZW1Db250ZW50LmNhbGwodGhpcywgaXRlbSk7XG4gICAgICAgIGxpbmsuYXBwZW5kKGZyYWdtZW50KVxuICAgICAgICAgICAgLmF0dHIoJ2hyZWYnLCAnJylcbiAgICAgICAgICAgIC5hdHRyKCd0YWJpbmRleCcsIC0xKTtcblxuICAgICAgICBpZiAoaXRlbS51cmwpIHtcbiAgICAgICAgICAgIGxpbmsuYXR0cignaHJlZicsIGl0ZW0udXJsKTtcbiAgICAgICAgICAgIGxpc3RJdGVtQ2xhc3Nlcy5wdXNoKGl0ZW0uY2xhc3NOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpdGVtW3RoaXMuY29uZmlnLmNoaWxkS2V5XSkge1xuICAgICAgICAgICAgbGlzdEl0ZW1DbGFzc2VzLnB1c2godGhpcy5jb25maWcuY2xhc3NOYW1lW3RoaXMuY29uZmlnLmNoaWxkS2V5XSk7XG4gICAgICAgIH1cblxuICAgICAgICBsaXN0SXRlbUNsYXNzZXMucHVzaChgZmpzLWl0ZW0tJHtpdGVtLnR5cGV9YCk7XG4gICAgICAgIGxpc3RJdGVtLmFkZENsYXNzKGxpc3RJdGVtQ2xhc3Nlcy5qb2luKCcgJykpO1xuICAgICAgICBsaXN0SXRlbS5hcHBlbmQobGluaylcbiAgICAgICAgICAgIC5hdHRyKCdkYXRhLWZqcy1pdGVtJywgaXRlbVt0aGlzLmNvbmZpZy5pdGVtS2V5XSk7XG5cbiAgICAgICAgbGlzdEl0ZW1bMF0uX2l0ZW0gPSBpdGVtO1xuXG4gICAgICAgIHJldHVybiBsaXN0SXRlbTtcbiAgICB9XG5cbiAgICB1cGRhdGVQYXRoQmFyKCkge1xuICAgICAgICBpZiAoIXRoaXMuY29uZmlnLnBhdGhCYXIpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgICAgICAgY29uc3QgYWN0aXZlSXRlbXMgPSB0aGlzLmNvbnRhaW5lci5maW5kKGAuJHt0aGlzLmNvbmZpZy5jbGFzc05hbWUuYWN0aXZlfWApO1xuICAgICAgICBsZXQgaXRlbUtleXMgPSAnJztcbiAgICAgICAgdGhpcy5wYXRoQmFyLmNoaWxkcmVuKCkuZW1wdHkoKTtcbiAgICAgICAgYWN0aXZlSXRlbXMuZWFjaCgoaW5kZXgsIGFjdGl2ZUl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBhY3RpdmVJdGVtLl9pdGVtO1xuICAgICAgICAgICAgY29uc3QgaXNMYXN0ID0gKGluZGV4ICsgMSkgPT09IGFjdGl2ZUl0ZW1zLmxlbmd0aDtcbiAgICAgICAgICAgIGl0ZW1LZXlzICs9IGAvJHtpdGVtW3RoaXMuY29uZmlnLml0ZW1LZXldfWA7XG4gICAgICAgICAgICB0aGlzLnBhdGhCYXIuYXBwZW5kKGBcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJyZWFkY3J1bWItbm9kZSBicmVhZGNydW1iLW5vZGUtJHtpdGVtLnR5cGV9XCIgJHtpdGVtLnR5cGUgPT09ICdkaXInID8gYGRhdGEtYnJlYWRjcnVtYi1ub2RlPVwiJHtpdGVtS2V5c31cImAgOiAnJ30+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZncgJHt0aGlzLmdldEljb24oaXRlbS50eXBlKX1cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnJlYWRjcnVtYi1ub2RlLW5hbWVcIj4keyQoJzxkaXYgLz4nKS5odG1sKGl0ZW1bdGhpcy5jb25maWcubGFiZWxLZXldKS5odG1sKCl9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAkeyFpc0xhc3QgPyAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1jaGV2cm9uLXJpZ2h0XCI+PC9pPicgOiAnJ31cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICBgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0SWNvbih0eXBlKSB7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSAncm9vdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdmYS1zaXRlbWFwJztcbiAgICAgICAgICAgIGNhc2UgJ2ZpbGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZmEtZmlsZS1vJztcbiAgICAgICAgICAgIGNhc2UgJ2Rpcic6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAnZmEtZm9sZGVyJztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRmluZGVyO1xuIl0sIm5hbWVzIjpbIiQiLCJFdmVudEVtaXR0ZXIiLCJERUZBVUxUUyIsImxhYmVsS2V5IiwidmFsdWVLZXkiLCJjaGlsZEtleSIsImljb25LZXkiLCJpdGVtS2V5IiwicGF0aEJhciIsImNsYXNzTmFtZSIsImNvbnRhaW5lciIsImNvbCIsImxpc3QiLCJpdGVtIiwiYWN0aXZlIiwiY2hpbGRyZW4iLCJ1cmwiLCJpdGVtUHJlcGVuZCIsIml0ZW1Db250ZW50IiwiaXRlbUFwcGVuZCIsIkZpbmRlciIsImRhdGEiLCJvcHRpb25zIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2siLCIkZW1pdHRlciIsImNvbmZpZyIsImV4dGVuZCIsIm9uIiwiY2xpY2tFdmVudCIsImJpbmQiLCJrZXlkb3duRXZlbnQiLCJpdGVtU2VsZWN0ZWQiLCJhZGRDb2x1bW4iLCJuYXZpZ2F0ZSIsImdvVG8iLCJhZGRDbGFzcyIsImF0dHIiLCJjcmVhdGVDb2x1bW4iLCJjcmVhdGVQYXRoQmFyIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsImxvY2F0aW9uIiwiY3VycmVudFRhcmdldCIsImRlZmF1bHRQYXRoIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJyZWxvYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJwYXJlbnQiLCJfdGhpczIiLCJjYWxsYmFjayIsImNhbGwiLCJBcnJheSIsImlzQXJyYXkiLCJfdHlwZW9mIiwiZnJvbSIsImNyZWF0ZUxpc3QiLCJkaXYiLCJhcHBlbmQiLCJlbWl0IiwiRXJyb3IiLCJzaWJsaW5ncyIsImNvbmNhdCIsInJlbW92ZSIsImluc2VydEFmdGVyIiwic3RvcFByb3BhZ2F0aW9uIiwidGFyZ2V0IiwiY29sdW1uIiwiY2xvc2VzdCIsImNvZGVzIiwia2V5Q29kZSIsImRpcmVjdGlvbiIsImVsZW1lbnQiLCJfaXRlbSIsImZpbmQiLCJyZW1vdmVDbGFzcyIsIm5leHRBbGwiLCJmb2N1cyIsIndpbmRvdyIsInNjcm9sbFRvIiwicGFnZVhPZmZzZXQiLCJwYWdlWU9mZnNldCIsInVwZGF0ZVBhdGhCYXIiLCJuZXdDb2x1bW4iLCJmaW5kTGFzdEFjdGl2ZSIsInByZXYiLCJuZXh0IiwiZmlyc3QiLCJwYXRoIiwiX3RoaXMzIiwic3BsaXQiLCJtYXAiLCJiaXQiLCJ0cmltIiwiZmlsdGVyIiwiQm9vbGVhbiIsInNlbGVjdFBhdGgiLCJfdGhpczQiLCJjdXJyZW50Iiwic2hpZnQiLCJsYXN0IiwiX3RoaXM1IiwiaXRlbXMiLCJjcmVhdGVJdGVtIiwiZnJhZ21lbnRzIiwicmVkdWNlIiwiZnJhZ21lbnQiLCJhcHBlbmRDaGlsZCIsImRvY3VtZW50IiwiY3JlYXRlRG9jdW1lbnRGcmFnbWVudCIsImxpc3RJdGVtIiwibGlzdEl0ZW1DbGFzc2VzIiwibGluayIsImNyZWF0ZUl0ZW1Db250ZW50IiwicHVzaCIsInR5cGUiLCJqb2luIiwiX3RoaXM2IiwiYWN0aXZlSXRlbXMiLCJpdGVtS2V5cyIsImVtcHR5IiwiZWFjaCIsImluZGV4IiwiYWN0aXZlSXRlbSIsImlzTGFzdCIsImdldEljb24iLCJodG1sIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/finderjs.js\n\n}");
/***/ }),
/***/ "./app/utils/formatbytes.js":
/*!**********************************!*\
!*** ./app/utils/formatbytes.js ***!
\**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ formatBytes)\n/* harmony export */ });\nvar sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\nfunction formatBytes(bytes, decimals) {\n if (bytes === 0) return '0 Byte';\n var k = 1000;\n var value = Math.floor(Math.log(bytes) / Math.log(k));\n var decimal = decimals + 1 || 3;\n return (bytes / Math.pow(k, value)).toPrecision(decimal) + ' ' + sizes[value];\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvZm9ybWF0Ynl0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQU1BLEtBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0FBRXhELFNBQVNDLFdBQVdBLENBQUNDLEtBQUssRUFBRUMsUUFBUSxFQUFFO0VBQ2pELElBQUlELEtBQUssS0FBSyxDQUFDLEVBQUUsT0FBTyxRQUFRO0VBRWhDLElBQUlFLENBQUMsR0FBRyxJQUFJO0VBQ1osSUFBSUMsS0FBSyxHQUFHQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0QsSUFBSSxDQUFDRSxHQUFHLENBQUNOLEtBQUssQ0FBQyxHQUFHSSxJQUFJLENBQUNFLEdBQUcsQ0FBQ0osQ0FBQyxDQUFDLENBQUM7RUFDckQsSUFBSUssT0FBTyxHQUFHTixRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUM7RUFFL0IsT0FBTyxDQUFDRCxLQUFLLEdBQUdJLElBQUksQ0FBQ0ksR0FBRyxDQUFDTixDQUFDLEVBQUVDLEtBQUssQ0FBQyxFQUFFTSxXQUFXLENBQUNGLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBR1QsS0FBSyxDQUFDSyxLQUFLLENBQUM7QUFDakYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2Zvcm1hdGJ5dGVzLmpzP2FhZDMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgc2l6ZXMgPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZvcm1hdEJ5dGVzKGJ5dGVzLCBkZWNpbWFscykge1xuICAgIGlmIChieXRlcyA9PT0gMCkgcmV0dXJuICcwIEJ5dGUnO1xuXG4gICAgbGV0IGsgPSAxMDAwO1xuICAgIGxldCB2YWx1ZSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coaykpO1xuICAgIGxldCBkZWNpbWFsID0gZGVjaW1hbHMgKyAxIHx8IDM7XG5cbiAgICByZXR1cm4gKGJ5dGVzIC8gTWF0aC5wb3coaywgdmFsdWUpKS50b1ByZWNpc2lvbihkZWNpbWFsKSArICcgJyArIHNpemVzW3ZhbHVlXTtcbn1cbiJdLCJuYW1lcyI6WyJzaXplcyIsImZvcm1hdEJ5dGVzIiwiYnl0ZXMiLCJkZWNpbWFscyIsImsiLCJ2YWx1ZSIsIk1hdGgiLCJmbG9vciIsImxvZyIsImRlY2ltYWwiLCJwb3ciLCJ0b1ByZWNpc2lvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/formatbytes.js\n\n}");
/***/ }),
/***/ "./app/utils/gpm.js":
/*!**************************!*\
!*** ./app/utils/gpm.js ***!
\**************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Instance: () => (/* binding */ Instance),\n/* harmony export */ \"default\": () => (/* binding */ GPM)\n/* harmony export */ });\n/* harmony import */ var _response__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./response */ \"./app/utils/response.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! events */ \"./node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\n\n\n\nvar GPM = /*#__PURE__*/function (_EventEmitter) {\n function GPM() {\n var _this;\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'getUpdates';\n _classCallCheck(this, GPM);\n _this = _callSuper(this, GPM);\n _this.payload = {};\n _this.raw = {};\n _this.action = action;\n return _this;\n }\n _inherits(GPM, _EventEmitter);\n return _createClass(GPM, [{\n key: \"setPayload\",\n value: function setPayload() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.payload = payload;\n this.emit('payload', payload);\n return this;\n }\n }, {\n key: \"setAction\",\n value: function setAction() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'getUpdates';\n this.action = action;\n this.emit('action', action);\n return this;\n }\n }, {\n key: \"fetch\",\n value: function (_fetch) {\n function fetch() {\n return _fetch.apply(this, arguments);\n }\n fetch.toString = function () {\n return _fetch.toString();\n };\n return fetch;\n }(function () {\n var _this2 = this;\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {\n return true;\n };\n var flush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var data = new FormData();\n data.append('admin-nonce', grav_config__WEBPACK_IMPORTED_MODULE_1__.config.admin_nonce);\n if (flush) {\n data.append('flush', true);\n }\n this.emit('fetching', this);\n fetch(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/update.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"getUpdates\"), {\n credentials: 'same-origin',\n method: 'post',\n body: data\n }).then(function (response) {\n _this2.raw = response;\n return response;\n }).then(_response__WEBPACK_IMPORTED_MODULE_0__.parseStatus).then(_response__WEBPACK_IMPORTED_MODULE_0__.parseJSON).then(function (response) {\n return _this2.response(response);\n }).then(function (response) {\n return callback(response, _this2.raw);\n }).then(function (response) {\n return _this2.emit('fetched', _this2.payload, _this2.raw, _this2);\n })[\"catch\"](_response__WEBPACK_IMPORTED_MODULE_0__.userFeedbackError);\n })\n }, {\n key: \"response\",\n value: function response(_response) {\n this.payload = _response;\n return _response;\n }\n }]);\n}((events__WEBPACK_IMPORTED_MODULE_2___default()));\n\nvar Instance = new GPM();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvZ3BtLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXVFO0FBQ2xDO0FBQ0g7QUFBQSxJQUViSyxHQUFHLDBCQUFBQyxhQUFBO0VBQ3BCLFNBQUFELElBQUEsRUFBbUM7SUFBQSxJQUFBRSxLQUFBO0lBQUEsSUFBdkJDLE1BQU0sR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsWUFBWTtJQUFBRyxlQUFBLE9BQUFQLEdBQUE7SUFDN0JFLEtBQUEsR0FBQU0sVUFBQSxPQUFBUixHQUFBO0lBQ0FFLEtBQUEsQ0FBS08sT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNqQlAsS0FBQSxDQUFLUSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ2JSLEtBQUEsQ0FBS0MsTUFBTSxHQUFHQSxNQUFNO0lBQUMsT0FBQUQsS0FBQTtFQUN6QjtFQUFDUyxTQUFBLENBQUFYLEdBQUEsRUFBQUMsYUFBQTtFQUFBLE9BQUFXLFlBQUEsQ0FBQVosR0FBQTtJQUFBYSxHQUFBO0lBQUFDLEtBQUEsRUFFRCxTQUFBQyxVQUFVQSxDQUFBLEVBQWU7TUFBQSxJQUFkTixPQUFPLEdBQUFMLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLENBQUMsQ0FBQztNQUNuQixJQUFJLENBQUNLLE9BQU8sR0FBR0EsT0FBTztNQUN0QixJQUFJLENBQUNPLElBQUksQ0FBQyxTQUFTLEVBQUVQLE9BQU8sQ0FBQztNQUU3QixPQUFPLElBQUk7SUFDZjtFQUFDO0lBQUFJLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUFHLFNBQVNBLENBQUEsRUFBd0I7TUFBQSxJQUF2QmQsTUFBTSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxZQUFZO01BQzNCLElBQUksQ0FBQ0QsTUFBTSxHQUFHQSxNQUFNO01BQ3BCLElBQUksQ0FBQ2EsSUFBSSxDQUFDLFFBQVEsRUFBRWIsTUFBTSxDQUFDO01BRTNCLE9BQU8sSUFBSTtJQUNmO0VBQUM7SUFBQVUsR0FBQTtJQUFBQyxLQUFBLFlBQUFJLE1BQUE7TUFBQSxTQUVEQyxLQUFLQSxDQUFBO1FBQUEsT0FBQUQsTUFBQSxDQUFBRSxLQUFBLE9BQUFoQixTQUFBO01BQUE7TUFBTGUsS0FBSyxDQUFBRSxRQUFBO1FBQUEsT0FBQUgsTUFBQSxDQUFBRyxRQUFBO01BQUE7TUFBQSxPQUFMRixLQUFLO0lBQUEsRUFBTCxZQUE0QztNQUFBLElBQUFHLE1BQUE7TUFBQSxJQUF0Q0MsUUFBUSxHQUFBbkIsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUc7UUFBQSxPQUFNLElBQUk7TUFBQTtNQUFBLElBQUVvQixLQUFLLEdBQUFwQixTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxLQUFLO01BQ3RDLElBQUlxQixJQUFJLEdBQUcsSUFBSUMsUUFBUSxDQUFDLENBQUM7TUFDekJELElBQUksQ0FBQ0UsTUFBTSxDQUFDLGFBQWEsRUFBRTdCLCtDQUFNLENBQUM4QixXQUFXLENBQUM7TUFFOUMsSUFBSUosS0FBSyxFQUFFO1FBQ1BDLElBQUksQ0FBQ0UsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7TUFDOUI7TUFFQSxJQUFJLENBQUNYLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDO01BRTNCRyxLQUFLLElBQUFVLE1BQUEsQ0FBSS9CLCtDQUFNLENBQUNnQyxpQkFBaUIsdUJBQUFELE1BQUEsQ0FBb0IvQiwrQ0FBTSxDQUFDaUMsU0FBUyxpQkFBYztRQUMvRUMsV0FBVyxFQUFFLGFBQWE7UUFDMUJDLE1BQU0sRUFBRSxNQUFNO1FBQ2RDLElBQUksRUFBRVQ7TUFDVixDQUFDLENBQUMsQ0FBQ1UsSUFBSSxDQUFDLFVBQUNDLFFBQVEsRUFBSztRQUFFZCxNQUFJLENBQUNaLEdBQUcsR0FBRzBCLFFBQVE7UUFBRSxPQUFPQSxRQUFRO01BQUUsQ0FBQyxDQUFDLENBQzNERCxJQUFJLENBQUN2QyxrREFBVyxDQUFDLENBQ2pCdUMsSUFBSSxDQUFDeEMsZ0RBQVMsQ0FBQyxDQUNmd0MsSUFBSSxDQUFDLFVBQUNDLFFBQVE7UUFBQSxPQUFLZCxNQUFJLENBQUNjLFFBQVEsQ0FBQ0EsUUFBUSxDQUFDO01BQUEsRUFBQyxDQUMzQ0QsSUFBSSxDQUFDLFVBQUNDLFFBQVE7UUFBQSxPQUFLYixRQUFRLENBQUNhLFFBQVEsRUFBRWQsTUFBSSxDQUFDWixHQUFHLENBQUM7TUFBQSxFQUFDLENBQ2hEeUIsSUFBSSxDQUFDLFVBQUNDLFFBQVE7UUFBQSxPQUFLZCxNQUFJLENBQUNOLElBQUksQ0FBQyxTQUFTLEVBQUVNLE1BQUksQ0FBQ2IsT0FBTyxFQUFFYSxNQUFJLENBQUNaLEdBQUcsRUFBRVksTUFBSSxDQUFDO01BQUEsRUFBQyxTQUNqRSxDQUFDekIsd0RBQWlCLENBQUM7SUFDakMsQ0FBQztFQUFBO0lBQUFnQixHQUFBO0lBQUFDLEtBQUEsRUFFRCxTQUFBc0IsUUFBUUEsQ0FBQ0EsU0FBUSxFQUFFO01BQ2YsSUFBSSxDQUFDM0IsT0FBTyxHQUFHMkIsU0FBUTtNQUV2QixPQUFPQSxTQUFRO0lBQ25CO0VBQUM7QUFBQSxFQWpENEJyQywrQ0FBWTtBQUFyQjtBQW9EakIsSUFBSXVDLFFBQVEsR0FBRyxJQUFJdEMsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2dwbS5qcz83OWI2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlSlNPTiwgcGFyc2VTdGF0dXMsIHVzZXJGZWVkYmFja0Vycm9yIH0gZnJvbSAnLi9yZXNwb25zZSc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICdncmF2LWNvbmZpZyc7XG5pbXBvcnQgRXZlbnRFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdQTSBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gICAgY29uc3RydWN0b3IoYWN0aW9uID0gJ2dldFVwZGF0ZXMnKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMucGF5bG9hZCA9IHt9O1xuICAgICAgICB0aGlzLnJhdyA9IHt9O1xuICAgICAgICB0aGlzLmFjdGlvbiA9IGFjdGlvbjtcbiAgICB9XG5cbiAgICBzZXRQYXlsb2FkKHBheWxvYWQgPSB7fSkge1xuICAgICAgICB0aGlzLnBheWxvYWQgPSBwYXlsb2FkO1xuICAgICAgICB0aGlzLmVtaXQoJ3BheWxvYWQnLCBwYXlsb2FkKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBzZXRBY3Rpb24oYWN0aW9uID0gJ2dldFVwZGF0ZXMnKSB7XG4gICAgICAgIHRoaXMuYWN0aW9uID0gYWN0aW9uO1xuICAgICAgICB0aGlzLmVtaXQoJ2FjdGlvbicsIGFjdGlvbik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZmV0Y2goY2FsbGJhY2sgPSAoKSA9PiB0cnVlLCBmbHVzaCA9IGZhbHNlKSB7XG4gICAgICAgIGxldCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGRhdGEuYXBwZW5kKCdhZG1pbi1ub25jZScsIGNvbmZpZy5hZG1pbl9ub25jZSk7XG5cbiAgICAgICAgaWYgKGZsdXNoKSB7XG4gICAgICAgICAgICBkYXRhLmFwcGVuZCgnZmx1c2gnLCB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZW1pdCgnZmV0Y2hpbmcnLCB0aGlzKTtcblxuICAgICAgICBmZXRjaChgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9L3VwZGF0ZS5qc29uL3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9Z2V0VXBkYXRlc2AsIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuICAgICAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgICAgICBib2R5OiBkYXRhXG4gICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7IHRoaXMucmF3ID0gcmVzcG9uc2U7IHJldHVybiByZXNwb25zZTsgfSlcbiAgICAgICAgICAgIC50aGVuKHBhcnNlU3RhdHVzKVxuICAgICAgICAgICAgLnRoZW4ocGFyc2VKU09OKVxuICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB0aGlzLnJlc3BvbnNlKHJlc3BvbnNlKSlcbiAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gY2FsbGJhY2socmVzcG9uc2UsIHRoaXMucmF3KSlcbiAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gdGhpcy5lbWl0KCdmZXRjaGVkJywgdGhpcy5wYXlsb2FkLCB0aGlzLnJhdywgdGhpcykpXG4gICAgICAgICAgICAuY2F0Y2godXNlckZlZWRiYWNrRXJyb3IpO1xuICAgIH1cblxuICAgIHJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgICAgIHRoaXMucGF5bG9hZCA9IHJlc3BvbnNlO1xuXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG59XG5cbmV4cG9ydCBsZXQgSW5zdGFuY2UgPSBuZXcgR1BNKCk7XG4iXSwibmFtZXMiOlsicGFyc2VKU09OIiwicGFyc2VTdGF0dXMiLCJ1c2VyRmVlZGJhY2tFcnJvciIsImNvbmZpZyIsIkV2ZW50RW1pdHRlciIsIkdQTSIsIl9FdmVudEVtaXR0ZXIiLCJfdGhpcyIsImFjdGlvbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIl9jbGFzc0NhbGxDaGVjayIsIl9jYWxsU3VwZXIiLCJwYXlsb2FkIiwicmF3IiwiX2luaGVyaXRzIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJzZXRQYXlsb2FkIiwiZW1pdCIsInNldEFjdGlvbiIsIl9mZXRjaCIsImZldGNoIiwiYXBwbHkiLCJ0b1N0cmluZyIsIl90aGlzMiIsImNhbGxiYWNrIiwiZmx1c2giLCJkYXRhIiwiRm9ybURhdGEiLCJhcHBlbmQiLCJhZG1pbl9ub25jZSIsImNvbmNhdCIsImJhc2VfdXJsX3JlbGF0aXZlIiwicGFyYW1fc2VwIiwiY3JlZGVudGlhbHMiLCJtZXRob2QiLCJib2R5IiwidGhlbiIsInJlc3BvbnNlIiwiZGVmYXVsdCIsIkluc3RhbmNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/gpm.js\n\n}");
/***/ }),
/***/ "./app/utils/jquery-utils.js":
/*!***********************************!*\
!*** ./app/utils/jquery-utils.js ***!
\***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var speakingurl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! speakingurl */ \"./node_modules/speakingurl/index.js\");\n/* harmony import */ var speakingurl__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(speakingurl__WEBPACK_IMPORTED_MODULE_1__);\nvar _this = undefined;\n\n\n\n// jQuery no parents filter\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().expr)[':']['noparents'] = jquery__WEBPACK_IMPORTED_MODULE_0___default().expr.createPseudo(function (text) {\n return function (element) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).parents(text).length < 1;\n };\n});\n\n// Slugify\n// CommonJS and ES6 version of https://github.com/madflow/jquery-slugify\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().fn).slugify = function (source, options) {\n return _this.each(function (element) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n var source = jquery__WEBPACK_IMPORTED_MODULE_0___default()(source);\n target.on('keyup change', function () {\n target.data('locked', target.val() !== '' && target.val() !== undefined);\n });\n source.on('keyup change', function () {\n if (target.data('locked') === true) {\n return true;\n }\n var isInput = target.is('input') || target.is('textarea');\n target[isInput ? 'val' : 'text'](jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify(source.val(), options));\n });\n });\n};\n\n// Static method.\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify) = function (sourceString, options) {\n options = jquery__WEBPACK_IMPORTED_MODULE_0___default().extend({}, (jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify).options, options);\n options.lang = options.lang || jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').prop('lang');\n if (typeof options.preSlug === 'function') {\n sourceString = options.preSlug(sourceString);\n }\n sourceString = options.slugFunc(sourceString, options);\n if (typeof options.postSlug === 'function') {\n sourceString = options.postSlug(sourceString);\n }\n return sourceString;\n};\n\n// Default plugin options\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify).options = {\n preSlug: null,\n postSlug: null,\n slugFunc: function slugFunc(input, opts) {\n return speakingurl__WEBPACK_IMPORTED_MODULE_1___default()(input, opts);\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LXV0aWxzLmpzPzkwZGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBnZXRTbHVnIGZyb20gJ3NwZWFraW5ndXJsJztcblxuLy8galF1ZXJ5IG5vIHBhcmVudHMgZmlsdGVyXG4kLmV4cHJbJzonXVsnbm9wYXJlbnRzJ10gPSAkLmV4cHIuY3JlYXRlUHNldWRvKCh0ZXh0KSA9PiAoZWxlbWVudCkgPT4gJChlbGVtZW50KS5wYXJlbnRzKHRleHQpLmxlbmd0aCA8IDEpO1xuXG4vLyBTbHVnaWZ5XG4vLyBDb21tb25KUyBhbmQgRVM2IHZlcnNpb24gb2YgaHR0cHM6Ly9naXRodWIuY29tL21hZGZsb3cvanF1ZXJ5LXNsdWdpZnlcbiQuZm4uc2x1Z2lmeSA9IChzb3VyY2UsIG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gdGhpcy5lYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGxldCB0YXJnZXQgPSAkKGVsZW1lbnQpO1xuICAgICAgICBsZXQgc291cmNlID0gJChzb3VyY2UpO1xuXG4gICAgICAgIHRhcmdldC5vbigna2V5dXAgY2hhbmdlJywgKCkgPT4ge1xuICAgICAgICAgICAgdGFyZ2V0LmRhdGEoJ2xvY2tlZCcsIHRhcmdldC52YWwoKSAhPT0gJycgJiYgdGFyZ2V0LnZhbCgpICE9PSB1bmRlZmluZWQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBzb3VyY2Uub24oJ2tleXVwIGNoYW5nZScsICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0YXJnZXQuZGF0YSgnbG9ja2VkJykgPT09IHRydWUpIHsgcmV0dXJuIHRydWU7IH1cblxuICAgICAgICAgICAgbGV0IGlzSW5wdXQgPSB0YXJnZXQuaXMoJ2lucHV0JykgfHwgdGFyZ2V0LmlzKCd0ZXh0YXJlYScpO1xuICAgICAgICAgICAgdGFyZ2V0W2lzSW5wdXQgPyAndmFsJyA6ICd0ZXh0J10oJC5zbHVnaWZ5KHNvdXJjZS52YWwoKSwgb3B0aW9ucykpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn07XG5cbi8vIFN0YXRpYyBtZXRob2QuXG4kLnNsdWdpZnkgPSAoc291cmNlU3RyaW5nLCBvcHRpb25zKSA9PiB7XG4gICAgb3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCAkLnNsdWdpZnkub3B0aW9ucywgb3B0aW9ucyk7XG4gICAgb3B0aW9ucy5sYW5nID0gb3B0aW9ucy5sYW5nIHx8ICQoJ2h0bWwnKS5wcm9wKCdsYW5nJyk7XG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMucHJlU2x1ZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBzb3VyY2VTdHJpbmcgPSBvcHRpb25zLnByZVNsdWcoc291cmNlU3RyaW5nKTtcbiAgICB9XG5cbiAgICBzb3VyY2VTdHJpbmcgPSBvcHRpb25zLnNsdWdGdW5jKHNvdXJjZVN0cmluZywgb3B0aW9ucyk7XG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMucG9zdFNsdWcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgc291cmNlU3RyaW5nID0gb3B0aW9ucy5wb3N0U2x1Zyhzb3VyY2VTdHJpbmcpO1xuICAgIH1cblxuICAgIHJldHVybiBzb3VyY2VTdHJpbmc7XG59O1xuXG4vLyBEZWZhdWx0IHBsdWdpbiBvcHRpb25zXG4kLnNsdWdpZnkub3B0aW9ucyA9IHtcbiAgICBwcmVTbHVnOiBudWxsLFxuICAgIHBvc3RTbHVnOiBudWxsLFxuICAgIHNsdWdGdW5jOiAoaW5wdXQsIG9wdHMpID0+IGdldFNsdWcoaW5wdXQsIG9wdHMpXG59O1xuIl0sIm5hbWVzIjpbIiQiLCJnZXRTbHVnIiwiZXhwciIsImNyZWF0ZVBzZXVkbyIsInRleHQiLCJlbGVtZW50IiwicGFyZW50cyIsImxlbmd0aCIsImZuIiwic2x1Z2lmeSIsInNvdXJjZSIsIm9wdGlvbnMiLCJfdGhpcyIsImVhY2giLCJ0YXJnZXQiLCJvbiIsImRhdGEiLCJ2YWwiLCJ1bmRlZmluZWQiLCJpc0lucHV0IiwiaXMiLCJzb3VyY2VTdHJpbmciLCJleHRlbmQiLCJsYW5nIiwicHJvcCIsInByZVNsdWciLCJzbHVnRnVuYyIsInBvc3RTbHVnIiwiaW5wdXQiLCJvcHRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/jquery-utils.js\n\n}");
/***/ }),
/***/ "./app/utils/keepalive.js":
/*!********************************!*\
!*** ./app/utils/keepalive.js ***!
\********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _response__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./response */ \"./app/utils/response.js\");\n/* harmony import */ var _session_expired__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./session-expired */ \"./app/utils/session-expired.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\nvar MAX_SAFE_DELAY = 2147483647;\nvar KeepAlive = /*#__PURE__*/function () {\n function KeepAlive() {\n _classCallCheck(this, KeepAlive);\n this.active = false;\n }\n return _createClass(KeepAlive, [{\n key: \"start\",\n value: function start() {\n var _this = this;\n var timeout = grav_config__WEBPACK_IMPORTED_MODULE_0__.config.admin_timeout / 1.5 * 1000;\n this.timer = setInterval(function () {\n return _this.fetch();\n }, Math.min(timeout, MAX_SAFE_DELAY));\n this.active = true;\n }\n }, {\n key: \"stop\",\n value: function stop() {\n clearInterval(this.timer);\n this.active = false;\n }\n }, {\n key: \"checkOnce\",\n value: function checkOnce() {\n var data = new FormData();\n data.append('admin-nonce', grav_config__WEBPACK_IMPORTED_MODULE_0__.config.admin_nonce);\n return fetch(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_0__.config.base_url_relative, \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_0__.config.param_sep, \"keepAlive\"), {\n credentials: 'same-origin',\n method: 'post',\n body: data\n }).then(function (response) {\n if (response && (response.status === 401 || response.status === 403)) {\n return false;\n }\n return true;\n })[\"catch\"](function () {\n return false;\n });\n }\n }, {\n key: \"fetch\",\n value: function fetch() {\n return this.checkOnce().then(function (ok) {\n if (!ok) {\n (0,_session_expired__WEBPACK_IMPORTED_MODULE_2__.showSessionExpiredModal)();\n }\n })[\"catch\"](_response__WEBPACK_IMPORTED_MODULE_1__.userFeedbackError);\n }\n }]);\n}();\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (new KeepAlive());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMva2VlcGFsaXZlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQXFDO0FBQ1U7QUFDYTtBQUU1RCxJQUFNRyxjQUFjLEdBQUcsVUFBVTtBQUFDLElBRTVCQyxTQUFTO0VBQ1gsU0FBQUEsVUFBQSxFQUFjO0lBQUFDLGVBQUEsT0FBQUQsU0FBQTtJQUNWLElBQUksQ0FBQ0UsTUFBTSxHQUFHLEtBQUs7RUFDdkI7RUFBQyxPQUFBQyxZQUFBLENBQUFILFNBQUE7SUFBQUksR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBQUMsS0FBS0EsQ0FBQSxFQUFHO01BQUEsSUFBQUMsS0FBQTtNQUNKLElBQUlDLE9BQU8sR0FBR1osK0NBQU0sQ0FBQ2EsYUFBYSxHQUFHLEdBQUcsR0FBRyxJQUFJO01BQy9DLElBQUksQ0FBQ0MsS0FBSyxHQUFHQyxXQUFXLENBQUM7UUFBQSxPQUFNSixLQUFJLENBQUNLLEtBQUssQ0FBQyxDQUFDO01BQUEsR0FBRUMsSUFBSSxDQUFDQyxHQUFHLENBQUNOLE9BQU8sRUFBRVQsY0FBYyxDQUFDLENBQUM7TUFDL0UsSUFBSSxDQUFDRyxNQUFNLEdBQUcsSUFBSTtJQUN0QjtFQUFDO0lBQUFFLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUFVLElBQUlBLENBQUEsRUFBRztNQUNIQyxhQUFhLENBQUMsSUFBSSxDQUFDTixLQUFLLENBQUM7TUFDekIsSUFBSSxDQUFDUixNQUFNLEdBQUcsS0FBSztJQUN2QjtFQUFDO0lBQUFFLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUFZLFNBQVNBLENBQUEsRUFBRztNQUNSLElBQUlDLElBQUksR0FBRyxJQUFJQyxRQUFRLENBQUMsQ0FBQztNQUN6QkQsSUFBSSxDQUFDRSxNQUFNLENBQUMsYUFBYSxFQUFFeEIsK0NBQU0sQ0FBQ3lCLFdBQVcsQ0FBQztNQUU5QyxPQUFPVCxLQUFLLElBQUFVLE1BQUEsQ0FBSTFCLCtDQUFNLENBQUMyQixpQkFBaUIsV0FBQUQsTUFBQSxDQUFRMUIsK0NBQU0sQ0FBQzRCLFNBQVMsZ0JBQWE7UUFDekVDLFdBQVcsRUFBRSxhQUFhO1FBQzFCQyxNQUFNLEVBQUUsTUFBTTtRQUNkQyxJQUFJLEVBQUVUO01BQ1YsQ0FBQyxDQUFDLENBQ0dVLElBQUksQ0FBQyxVQUFDQyxRQUFRLEVBQUs7UUFDaEIsSUFBSUEsUUFBUSxLQUFLQSxRQUFRLENBQUNDLE1BQU0sS0FBSyxHQUFHLElBQUlELFFBQVEsQ0FBQ0MsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1VBQ2xFLE9BQU8sS0FBSztRQUNoQjtRQUNBLE9BQU8sSUFBSTtNQUNmLENBQUMsQ0FBQyxTQUNJLENBQUM7UUFBQSxPQUFNLEtBQUs7TUFBQSxFQUFDO0lBQzNCO0VBQUM7SUFBQTFCLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUFPLEtBQUtBLENBQUEsRUFBRztNQUNKLE9BQU8sSUFBSSxDQUFDSyxTQUFTLENBQUMsQ0FBQyxDQUFDVyxJQUFJLENBQUMsVUFBQ0csRUFBRSxFQUFLO1FBQ2pDLElBQUksQ0FBQ0EsRUFBRSxFQUFFO1VBQUVqQyx5RUFBdUIsQ0FBQyxDQUFDO1FBQUU7TUFDMUMsQ0FBQyxDQUFDLFNBQU0sQ0FBQ0Qsd0RBQWlCLENBQUM7SUFDL0I7RUFBQztBQUFBO0FBR0wsaUVBQWUsSUFBSUcsU0FBUyxDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2tlZXBhbGl2ZS5qcz9jNWNhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCB7IHVzZXJGZWVkYmFja0Vycm9yIH0gZnJvbSAnLi9yZXNwb25zZSc7XG5pbXBvcnQgeyBzaG93U2Vzc2lvbkV4cGlyZWRNb2RhbCB9IGZyb20gJy4vc2Vzc2lvbi1leHBpcmVkJztcblxuY29uc3QgTUFYX1NBRkVfREVMQVkgPSAyMTQ3NDgzNjQ3O1xuXG5jbGFzcyBLZWVwQWxpdmUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHN0YXJ0KCkge1xuICAgICAgICBsZXQgdGltZW91dCA9IGNvbmZpZy5hZG1pbl90aW1lb3V0IC8gMS41ICogMTAwMDtcbiAgICAgICAgdGhpcy50aW1lciA9IHNldEludGVydmFsKCgpID0+IHRoaXMuZmV0Y2goKSwgTWF0aC5taW4odGltZW91dCwgTUFYX1NBRkVfREVMQVkpKTtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgIH1cblxuICAgIHN0b3AoKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgY2hlY2tPbmNlKCkge1xuICAgICAgICBsZXQgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBkYXRhLmFwcGVuZCgnYWRtaW4tbm9uY2UnLCBjb25maWcuYWRtaW5fbm9uY2UpO1xuXG4gICAgICAgIHJldHVybiBmZXRjaChgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9L3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9a2VlcEFsaXZlYCwge1xuICAgICAgICAgICAgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbicsXG4gICAgICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgICAgIGJvZHk6IGRhdGFcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZSAmJiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDEgfHwgcmVzcG9uc2Uuc3RhdHVzID09PSA0MDMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IGZhbHNlKTtcbiAgICB9XG5cbiAgICBmZXRjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tPbmNlKCkudGhlbigob2spID0+IHtcbiAgICAgICAgICAgIGlmICghb2spIHsgc2hvd1Nlc3Npb25FeHBpcmVkTW9kYWwoKTsgfVxuICAgICAgICB9KS5jYXRjaCh1c2VyRmVlZGJhY2tFcnJvcik7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgS2VlcEFsaXZlKCk7XG4iXSwibmFtZXMiOlsiY29uZmlnIiwidXNlckZlZWRiYWNrRXJyb3IiLCJzaG93U2Vzc2lvbkV4cGlyZWRNb2RhbCIsIk1BWF9TQUZFX0RFTEFZIiwiS2VlcEFsaXZlIiwiX2NsYXNzQ2FsbENoZWNrIiwiYWN0aXZlIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJzdGFydCIsIl90aGlzIiwidGltZW91dCIsImFkbWluX3RpbWVvdXQiLCJ0aW1lciIsInNldEludGVydmFsIiwiZmV0Y2giLCJNYXRoIiwibWluIiwic3RvcCIsImNsZWFySW50ZXJ2YWwiLCJjaGVja09uY2UiLCJkYXRhIiwiRm9ybURhdGEiLCJhcHBlbmQiLCJhZG1pbl9ub25jZSIsImNvbmNhdCIsImJhc2VfdXJsX3JlbGF0aXZlIiwicGFyYW1fc2VwIiwiY3JlZGVudGlhbHMiLCJtZXRob2QiLCJib2R5IiwidGhlbiIsInJlc3BvbnNlIiwic3RhdHVzIiwib2siXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/utils/keepalive.js\n\n}");
/***/ }),
/***/ "./app/utils/offline.js":
/*!******************************!*\
!*** ./app/utils/offline.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_offline__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/offline */ \"./app/utils/offline.js\");\n\n\nvar offlineElement = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#offline-status');\njquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('offline', function () {\n offlineElement.slideDown();\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('online', function () {\n offlineElement.slideUp();\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {\n if (!_utils_offline__WEBPACK_IMPORTED_MODULE_1__[\"default\"]) {\n offlineElement.slideDown();\n }\n});\n\n// assume online if can't check\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof __webpack_require__.g.navigator.onLine !== 'undefined' ? __webpack_require__.g.navigator.onLine : true);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvb2ZmbGluZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXVCO0FBQ2lCO0FBRXhDLElBQU1FLGNBQWMsR0FBR0YsNkNBQUMsQ0FBQyxpQkFBaUIsQ0FBQztBQUUzQ0EsNkNBQUMsQ0FBQ0csTUFBTSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsWUFBTTtFQUMxQkYsY0FBYyxDQUFDRyxTQUFTLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUM7QUFFRkwsNkNBQUMsQ0FBQ0csTUFBTSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBTTtFQUN6QkYsY0FBYyxDQUFDSSxPQUFPLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFFRk4sNkNBQUMsQ0FBQ08sUUFBUSxDQUFDLENBQUNDLEtBQUssQ0FBQyxZQUFNO0VBQ3BCLElBQUksQ0FBQ1Asc0RBQVEsRUFBRTtJQUNYQyxjQUFjLENBQUNHLFNBQVMsQ0FBQyxDQUFDO0VBQzlCO0FBQ0osQ0FBQyxDQUFDOztBQUVGO0FBQ0EsaUVBQWUsT0FBT0kscUJBQU0sQ0FBQ0MsU0FBUyxDQUFDQyxNQUFNLEtBQUssV0FBVyxHQUFHRixxQkFBTSxDQUFDQyxTQUFTLENBQUNDLE1BQU0sR0FBRyxJQUFJIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC91dGlscy9vZmZsaW5lLmpzPzg3NGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBpc09ubGluZSBmcm9tICcuLi91dGlscy9vZmZsaW5lJztcblxuY29uc3Qgb2ZmbGluZUVsZW1lbnQgPSAkKCcjb2ZmbGluZS1zdGF0dXMnKTtcblxuJCh3aW5kb3cpLm9uKCdvZmZsaW5lJywgKCkgPT4ge1xuICAgIG9mZmxpbmVFbGVtZW50LnNsaWRlRG93bigpO1xufSk7XG5cbiQod2luZG93KS5vbignb25saW5lJywgKCkgPT4ge1xuICAgIG9mZmxpbmVFbGVtZW50LnNsaWRlVXAoKTtcbn0pO1xuXG4kKGRvY3VtZW50KS5yZWFkeSgoKSA9PiB7XG4gICAgaWYgKCFpc09ubGluZSkge1xuICAgICAgICBvZmZsaW5lRWxlbWVudC5zbGlkZURvd24oKTtcbiAgICB9XG59KTtcblxuLy8gYXNzdW1lIG9ubGluZSBpZiBjYW4ndCBjaGVja1xuZXhwb3J0IGRlZmF1bHQgdHlwZW9mIGdsb2JhbC5uYXZpZ2F0b3Iub25MaW5lICE9PSAndW5kZWZpbmVkJyA/IGdsb2JhbC5uYXZpZ2F0b3Iub25MaW5lIDogdHJ1ZTtcbiJdLCJuYW1lcyI6WyIkIiwiaXNPbmxpbmUiLCJvZmZsaW5lRWxlbWVudCIsIndpbmRvdyIsIm9uIiwic2xpZGVEb3duIiwic2xpZGVVcCIsImRvY3VtZW50IiwicmVhZHkiLCJnbG9iYWwiLCJuYXZpZ2F0b3IiLCJvbkxpbmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/utils/offline.js\n\n}");
/***/ }),
/***/ "./app/utils/packages.js":
/*!*******************************!*\
!*** ./app/utils/packages.js ***!
\*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var _utils_gpm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/gpm */ \"./app/utils/gpm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\nvar Sorter = /*#__PURE__*/function () {\n function Sorter() {\n _classCallCheck(this, Sorter);\n }\n return _createClass(Sorter, [{\n key: \"getElements\",\n value: function getElements(elements, container) {\n this.elements = elements || document.querySelectorAll('[data-gpm-plugin], [data-gpm-theme]');\n this.container = container || document.querySelector('.gpm-plugins > table > tbody, .gpm-themes > .themes.card-row');\n return this.elements;\n }\n }, {\n key: \"byCommon\",\n value: function byCommon() {\n var _this = this;\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var elements = this.getElements();\n this.removeGumroad();\n Array.from(elements).sort(function (a, b) {\n var A = a.dataset[data].toString().toLowerCase();\n var B = b.dataset[data].toString().toLowerCase();\n return Sorter.sort(A, B, direction);\n }).forEach(function (element) {\n _this.container.appendChild(element);\n });\n this.addGumroad();\n return this.container;\n }\n }, {\n key: \"byName\",\n value: function byName() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmName';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"byAuthor\",\n value: function byAuthor() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmAuthor';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"byOfficial\",\n value: function byOfficial() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmOfficial';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"byPremium\",\n value: function byPremium() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmPremium';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"byReleaseDate\",\n value: function byReleaseDate() {\n var _this2 = this;\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmReleaseDate';\n var elements = this.getElements();\n this.removeGumroad();\n Array.from(elements).sort(function (a, b) {\n var A = new Date(a.dataset[data]).getTime();\n var B = new Date(b.dataset[data]).getTime();\n return Sorter.sort(A, B, direction === 'asc' ? 'desc' : 'asc');\n }).forEach(function (element) {\n _this2.container.appendChild(element);\n });\n this.addGumroad();\n return this.container;\n }\n }, {\n key: \"byUpdatable\",\n value: function byUpdatable() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmUpdatable';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"byEnabled\",\n value: function byEnabled() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmEnabled';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"byTesting\",\n value: function byTesting() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmTesting';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"addGumroad\",\n value: function addGumroad() {\n if (window.GumroadOverlay) {\n window.GumroadOverlay.startNodeAdditionObserver();\n }\n }\n }, {\n key: \"removeGumroad\",\n value: function removeGumroad() {\n if (window.GumroadOverlay) {\n window.GumroadOverlay.nodeAdditionObserver.disconnect();\n }\n }\n }], [{\n key: \"sort\",\n value: function sort(A, B) {\n var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'asc';\n if (A > B) {\n return direction === 'asc' ? 1 : -1;\n }\n if (A < B) {\n return direction === 'asc' ? -1 : 1;\n }\n return 0;\n }\n }]);\n}();\nvar Packages = /*#__PURE__*/function () {\n function Packages() {\n _classCallCheck(this, Packages);\n this.Sort = new Sorter();\n }\n return _createClass(Packages, [{\n key: \"addDependenciesToList\",\n value: function addDependenciesToList(dependencies) {\n var slug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n dependencies.forEach(function (dependency) {\n Packages.addDependencyToList('plugin', dependency.name || dependency, slug);\n });\n }\n }, {\n key: \"removePackage\",\n value: function removePackage(type, slug) {\n var _this3 = this;\n var url = Packages.getRemovePackageUrl(type);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post',\n body: {\n \"package\": slug\n }\n }, function (response) {\n if (response.status === 'success') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remove-package-confirm').addClass('hidden');\n if (response.dependencies && response.dependencies.length > 0) {\n _this3.addDependenciesToList(response.dependencies);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remove-package-dependencies').removeClass('hidden');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remove-package-done').removeClass('hidden');\n }\n\n // The package was removed. When the modal closes, move to the packages list\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('closing', '[data-remodal-id=\"remove-package\"]', function () {\n Packages.getBackToList(type);\n });\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remove-package-confirm').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remove-package-error').removeClass('hidden');\n }\n });\n }\n }, {\n key: \"reinstallPackage\",\n value: function reinstallPackage(type, slug, package_name, current_version) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.button-bar button').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.button-bar .spinning-wheel').removeClass('hidden');\n var url = Packages.getReinstallPackageUrl(type);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post',\n body: {\n slug: slug,\n type: type,\n package_name: package_name,\n current_version: current_version\n }\n }, function (response) {\n if (response.status === 'success') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reinstall-package-confirm').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reinstall-package-done').removeClass('hidden');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reinstall-package-confirm').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reinstall-package-error').removeClass('hidden');\n }\n window.location.reload();\n });\n }\n }, {\n key: \"removeDependency\",\n value: function removeDependency(type, slug, button) {\n var _this4 = this;\n var url = Packages.getRemovePackageUrl(type);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post',\n body: {\n \"package\": slug\n }\n }, function (response) {\n if (response.status === 'success') {\n button.removeClass('button');\n button.replaceWith(jquery__WEBPACK_IMPORTED_MODULE_0___default()('Removed successfully '));\n if (response.dependencies && response.dependencies.length > 0) {\n _this4.addDependenciesToList(response.dependencies, slug);\n }\n }\n });\n }\n }, {\n key: \"getPackagesDependencies\",\n value: function getPackagesDependencies(type, slugs, finishedLoadingCallback) {\n var url = Packages.getGetPackagesDependenciesUrl(type);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post',\n body: {\n packages: slugs\n }\n }, function (response) {\n finishedLoadingCallback();\n if (response.status === 'success') {\n if (response.dependencies) {\n var hasDependencies = false;\n for (var dependency in response.dependencies) {\n if (response.dependencies.hasOwnProperty(dependency)) {\n if (dependency === 'grav') {\n continue;\n }\n hasDependencies = true;\n var dependencyName = dependency;\n var action = response.dependencies[dependency];\n Packages.addNeededDependencyToList(action, dependencyName);\n }\n }\n if (hasDependencies) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-dependencies-package-container').removeClass('hidden');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-container').removeClass('hidden');\n }\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-container').removeClass('hidden');\n }\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-error').removeClass('hidden');\n }\n });\n }\n }, {\n key: \"installDependenciesOfPackages\",\n value: function installDependenciesOfPackages(type, slugs, callbackSuccess, callbackError) {\n var url = Packages.getInstallDependenciesOfPackagesUrl(type);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post',\n body: {\n packages: slugs\n }\n }, callbackSuccess);\n }\n }, {\n key: \"installPackages\",\n value: function installPackages(type, slugs, callbackSuccess) {\n var url = Packages.getInstallPackageUrl(type);\n __webpack_require__.g.Promise.all(slugs.map(function (slug) {\n return new __webpack_require__.g.Promise(function (resolve, reject) {\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post',\n body: {\n \"package\": slug,\n type: type\n }\n }, function (response) {\n resolve(response);\n });\n });\n })).then(callbackSuccess);\n }\n }, {\n key: \"handleGettingPackageDependencies\",\n value: function handleGettingPackageDependencies(type, event) {\n var action = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'update';\n var slugs = Packages.getSlugsFromEvent(event);\n if (!slugs) {\n alert('No slug set');\n return;\n }\n\n // Cleanup\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.packages-names-list').html('');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.install-dependencies-package-container li').remove();\n slugs.forEach(function (slug) {\n if (action === 'update') {\n var current_version = '';\n var available_version = '';\n var _name = '';\n var resources = _utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.payload.payload.resources;\n if (resources.plugins[slug]) {\n available_version = resources.plugins[slug].available;\n current_version = resources.plugins[slug].version;\n _name = resources.plugins[slug].name;\n } else if (resources.themes[slug]) {\n available_version = resources.themes[slug].available;\n current_version = resources.themes[slug].version;\n _name = resources.themes[slug].name;\n }\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.packages-names-list').append(\"\".concat(_name ? _name : slug, \", \").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.FROM, \" v\").concat(current_version, \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.TO, \" v\").concat(available_version, \" \"));\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.packages-names-list').append(\"\".concat(name ? name : slug, \" \"));\n }\n });\n event.preventDefault();\n event.stopPropagation();\n\n // fix mismatching types when sharing install modal between plugins/themes\n var query = '[data-packages-modal] [data-theme-action], [data-packages-modal] [data-plugin-action]';\n var data = jquery__WEBPACK_IMPORTED_MODULE_0___default()(query).data('themeAction') || jquery__WEBPACK_IMPORTED_MODULE_0___default()(query).data('pluginAction');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(query).removeAttr('data-theme-action').removeAttr('data-plugin-action').attr(\"data-\".concat(type, \"-action\"), data);\n\n // Restore original state\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .loading').removeClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-dependencies-package-container').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-container').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-dependencies').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-package').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installation-complete').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-error').addClass('hidden');\n this.getPackagesDependencies(type, slugs, function () {\n var slugs_string = slugs.join();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-packages-modal] [data-\".concat(type, \"-action=\\\"install-dependencies-and-package\\\"]\")).attr('data-packages-slugs', slugs_string);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-packages-modal] [data-\".concat(type, \"-action=\\\"install-package\\\"]\")).attr('data-packages-slugs', slugs_string);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .loading').addClass('hidden');\n });\n }\n }, {\n key: \"handleInstallingDependenciesAndPackage\",\n value: function handleInstallingDependenciesAndPackage(type, event) {\n var _this5 = this;\n var slugs = Packages.getSlugsFromEvent(event);\n event.preventDefault();\n event.stopPropagation();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-dependencies-package-container').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-container').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-dependencies').removeClass('hidden');\n this.installDependenciesOfPackages(type, slugs, function (response) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-dependencies').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-package').removeClass('hidden');\n _this5.installPackages(type, slugs, function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-package').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installation-complete').removeClass('hidden');\n if (response.status === 'error') {\n var remodal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal).lookup[jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal]').data('remodal')];\n remodal.close();\n return;\n }\n setTimeout(function () {\n if (slugs.length === 1) {\n __webpack_require__.g.location.href = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/\").concat(type, \"s/\").concat(slugs[0]);\n } else {\n __webpack_require__.g.location.href = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/\").concat(type, \"s\");\n }\n }, 1000);\n });\n });\n }\n }, {\n key: \"handleInstallingPackage\",\n value: function handleInstallingPackage(type, event) {\n var slugs = Packages.getSlugsFromEvent(event);\n event.preventDefault();\n event.stopPropagation();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-container').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-package').removeClass('hidden');\n this.installPackages(type, slugs, function (response) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-package').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installation-complete').removeClass('hidden');\n var errors = Array.from(response).filter(function (r) {\n return r.status === 'error';\n });\n if (errors && errors.length) {\n var remodal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal).lookup[jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal].remodal-is-opened').data('remodal')];\n remodal.close();\n return;\n }\n if (slugs.length === 1) {\n __webpack_require__.g.location.href = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/\").concat(type, \"s/\").concat(slugs[0]);\n } else {\n __webpack_require__.g.location.href = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/\").concat(type, \"s\");\n }\n });\n }\n }, {\n key: \"handleRemovingPackage\",\n value: function handleRemovingPackage(type, event) {\n var slug = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).attr('data-packages-slugs');\n event.preventDefault();\n event.stopPropagation();\n this.removePackage(type, slug);\n }\n }, {\n key: \"handleReinstallPackage\",\n value: function handleReinstallPackage(type, event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var slug = target.attr('data-package-slug');\n var package_name = target.attr('data-package-name');\n var current_version = target.attr('data-package-current-version');\n event.preventDefault();\n event.stopPropagation();\n this.reinstallPackage(type, slug, package_name, current_version);\n }\n }, {\n key: \"handleRemovingDependency\",\n value: function handleRemovingDependency(type, event) {\n var slug = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).attr('data-dependency-slug');\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n event.preventDefault();\n event.stopPropagation();\n this.removeDependency(type, slug, button);\n }\n }], [{\n key: \"getBackToList\",\n value: function getBackToList(type) {\n __webpack_require__.g.location.href = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/\").concat(type, \"s\");\n }\n }, {\n key: \"addDependencyToList\",\n value: function addDependencyToList(type, dependency) {\n var slug = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n if (['admin', 'form', 'login', 'email', 'grav'].indexOf(dependency) !== -1) {\n return;\n }\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.package-dependencies-container');\n var text = \"\".concat(dependency, \" Remove \");\n if (slug) {\n text += \" (was needed by \".concat(slug, \")\");\n }\n container.append(\"\".concat(text, \" \"));\n }\n }, {\n key: \"getTaskUrl\",\n value: function getTaskUrl(type, task) {\n var url = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative);\n url += \"/\".concat(type, \"s.json\");\n url += \"/task\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(task);\n return url;\n }\n }, {\n key: \"getRemovePackageUrl\",\n value: function getRemovePackageUrl(type) {\n return \"\".concat(Packages.getTaskUrl(type, 'removePackage'));\n }\n }, {\n key: \"getReinstallPackageUrl\",\n value: function getReinstallPackageUrl(type) {\n return \"\".concat(Packages.getTaskUrl(type, 'reinstallPackage'));\n }\n }, {\n key: \"getGetPackagesDependenciesUrl\",\n value: function getGetPackagesDependenciesUrl(type) {\n return \"\".concat(Packages.getTaskUrl(type, 'getPackagesDependencies'));\n }\n }, {\n key: \"getInstallDependenciesOfPackagesUrl\",\n value: function getInstallDependenciesOfPackagesUrl(type) {\n return \"\".concat(Packages.getTaskUrl(type, 'installDependenciesOfPackages'));\n }\n }, {\n key: \"getInstallPackageUrl\",\n value: function getInstallPackageUrl(type) {\n return \"\".concat(Packages.getTaskUrl(type, 'installPackage'));\n }\n }, {\n key: \"addNeededDependencyToList\",\n value: function addNeededDependencyToList(action, slug) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.install-dependencies-package-container .type-' + action).removeClass('hidden');\n var list = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.install-dependencies-package-container .type-' + action + ' ul');\n if (action !== 'install') {\n var current_version = '';\n var available_version = '';\n var _name2 = '';\n var resources = _utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.payload.payload.resources;\n if (resources.plugins[slug]) {\n available_version = resources.plugins[slug].available;\n current_version = resources.plugins[slug].version;\n _name2 = resources.plugins[slug].name;\n } else if (resources.themes[slug]) {\n available_version = resources.themes[slug].available;\n current_version = resources.themes[slug].version;\n _name2 = resources.themes[slug].name;\n }\n list.append(\"\".concat(_name2 ? _name2 : slug, \", \").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.FROM, \" v\").concat(current_version, \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.TO, \" v\").concat(available_version, \" \"));\n } else {\n list.append(\"\".concat(name ? name : slug, \" \"));\n }\n }\n }, {\n key: \"getSlugsFromEvent\",\n value: function getSlugsFromEvent(event) {\n var slugs = '';\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).is('[data-packages-slugs]')) {\n slugs = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).attr('data-packages-slugs');\n } else {\n slugs = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parent('[data-packages-slugs]').attr('data-packages-slugs');\n }\n if (typeof slugs === 'undefined') {\n return null;\n }\n slugs = slugs.split(',');\n return typeof slugs === 'string' ? [slugs] : slugs;\n }\n }]);\n}();\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (new Packages());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvcGFja2FnZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUM0QjtBQUNaO0FBQ1E7QUFBQSxJQUV6Q00sTUFBTTtFQUFBLFNBQUFBLE9BQUE7SUFBQUMsZUFBQSxPQUFBRCxNQUFBO0VBQUE7RUFBQSxPQUFBRSxZQUFBLENBQUFGLE1BQUE7SUFBQUcsR0FBQTtJQUFBQyxLQUFBLEVBQ1IsU0FBQUMsV0FBV0EsQ0FBQ0MsUUFBUSxFQUFFQyxTQUFTLEVBQUU7TUFDN0IsSUFBSSxDQUFDRCxRQUFRLEdBQUdBLFFBQVEsSUFBSUUsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQyxxQ0FBcUMsQ0FBQztNQUM1RixJQUFJLENBQUNGLFNBQVMsR0FBR0EsU0FBUyxJQUFJQyxRQUFRLENBQUNFLGFBQWEsQ0FBQyw4REFBOEQsQ0FBQztNQUVwSCxPQUFPLElBQUksQ0FBQ0osUUFBUTtJQUN4QjtFQUFDO0lBQUFILEdBQUE7SUFBQUMsS0FBQSxFQVNELFNBQUFPLFFBQVFBLENBQUEsRUFBK0I7TUFBQSxJQUFBQyxLQUFBO01BQUEsSUFBOUJDLFNBQVMsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsS0FBSztNQUFBLElBQUVHLElBQUksR0FBQUgsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsRUFBRTtNQUNqQyxJQUFNUixRQUFRLEdBQUcsSUFBSSxDQUFDRCxXQUFXLENBQUMsQ0FBQztNQUNuQyxJQUFJLENBQUNhLGFBQWEsQ0FBQyxDQUFDO01BRXBCQyxLQUFLLENBQUNDLElBQUksQ0FBQ2QsUUFBUSxDQUFDLENBQUNlLElBQUksQ0FBQyxVQUFDQyxDQUFDLEVBQUVDLENBQUMsRUFBSztRQUNoQyxJQUFJQyxDQUFDLEdBQUdGLENBQUMsQ0FBQ0csT0FBTyxDQUFDUixJQUFJLENBQUMsQ0FBQ1MsUUFBUSxDQUFDLENBQUMsQ0FBQ0MsV0FBVyxDQUFDLENBQUM7UUFDaEQsSUFBSUMsQ0FBQyxHQUFHTCxDQUFDLENBQUNFLE9BQU8sQ0FBQ1IsSUFBSSxDQUFDLENBQUNTLFFBQVEsQ0FBQyxDQUFDLENBQUNDLFdBQVcsQ0FBQyxDQUFDO1FBRWhELE9BQU8zQixNQUFNLENBQUNxQixJQUFJLENBQUNHLENBQUMsRUFBRUksQ0FBQyxFQUFFZixTQUFTLENBQUM7TUFDdkMsQ0FBQyxDQUFDLENBQUNnQixPQUFPLENBQUMsVUFBQ0MsT0FBTyxFQUFLO1FBQ3RCbEIsS0FBSSxDQUFDTCxTQUFTLENBQUN3QixXQUFXLENBQUNELE9BQU8sQ0FBQztNQUNyQyxDQUFDLENBQUM7TUFFRixJQUFJLENBQUNFLFVBQVUsQ0FBQyxDQUFDO01BQ2pCLE9BQU8sSUFBSSxDQUFDekIsU0FBUztJQUN6QjtFQUFDO0lBQUFKLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUE2QixNQUFNQSxDQUFBLEVBQXNDO01BQUEsSUFBckNwQixTQUFTLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLEtBQUs7TUFBQSxJQUFFRyxJQUFJLEdBQUFILFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLFNBQVM7TUFDdEMsT0FBTyxJQUFJLENBQUNILFFBQVEsQ0FBQ0UsU0FBUyxFQUFFSSxJQUFJLENBQUM7SUFDekM7RUFBQztJQUFBZCxHQUFBO0lBQUFDLEtBQUEsRUFFRCxTQUFBOEIsUUFBUUEsQ0FBQSxFQUF3QztNQUFBLElBQXZDckIsU0FBUyxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxLQUFLO01BQUEsSUFBRUcsSUFBSSxHQUFBSCxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxXQUFXO01BQzFDLE9BQU8sSUFBSSxDQUFDSCxRQUFRLENBQUNFLFNBQVMsRUFBRUksSUFBSSxDQUFDO0lBQ3pDO0VBQUM7SUFBQWQsR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBQStCLFVBQVVBLENBQUEsRUFBMEM7TUFBQSxJQUF6Q3RCLFNBQVMsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsS0FBSztNQUFBLElBQUVHLElBQUksR0FBQUgsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsYUFBYTtNQUNoRCxPQUFPLElBQUksQ0FBQ0gsUUFBUSxDQUFDRSxTQUFTLEVBQUVJLElBQUksQ0FBQztJQUN2QztFQUFDO0lBQUFkLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUFnQyxTQUFTQSxDQUFBLEVBQXlDO01BQUEsSUFBeEN2QixTQUFTLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLEtBQUs7TUFBQSxJQUFFRyxJQUFJLEdBQUFILFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLFlBQVk7TUFDOUMsT0FBTyxJQUFJLENBQUNILFFBQVEsQ0FBQ0UsU0FBUyxFQUFFSSxJQUFJLENBQUM7SUFDdkM7RUFBQztJQUFBZCxHQUFBO0lBQUFDLEtBQUEsRUFFRCxTQUFBaUMsYUFBYUEsQ0FBQSxFQUE2QztNQUFBLElBQUFDLE1BQUE7TUFBQSxJQUE1Q3pCLFNBQVMsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsS0FBSztNQUFBLElBQUVHLElBQUksR0FBQUgsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsZ0JBQWdCO01BQ3BELElBQU1SLFFBQVEsR0FBRyxJQUFJLENBQUNELFdBQVcsQ0FBQyxDQUFDO01BRW5DLElBQUksQ0FBQ2EsYUFBYSxDQUFDLENBQUM7TUFDcEJDLEtBQUssQ0FBQ0MsSUFBSSxDQUFDZCxRQUFRLENBQUMsQ0FBQ2UsSUFBSSxDQUFDLFVBQUNDLENBQUMsRUFBRUMsQ0FBQyxFQUFLO1FBQ2hDLElBQUlDLENBQUMsR0FBRyxJQUFJZSxJQUFJLENBQUNqQixDQUFDLENBQUNHLE9BQU8sQ0FBQ1IsSUFBSSxDQUFDLENBQUMsQ0FBQ3VCLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLElBQUlaLENBQUMsR0FBRyxJQUFJVyxJQUFJLENBQUNoQixDQUFDLENBQUNFLE9BQU8sQ0FBQ1IsSUFBSSxDQUFDLENBQUMsQ0FBQ3VCLE9BQU8sQ0FBQyxDQUFDO1FBRTNDLE9BQU94QyxNQUFNLENBQUNxQixJQUFJLENBQUNHLENBQUMsRUFBRUksQ0FBQyxFQUFFZixTQUFTLEtBQUssS0FBSyxHQUFHLE1BQU0sR0FBRyxLQUFLLENBQUM7TUFDbEUsQ0FBQyxDQUFDLENBQUNnQixPQUFPLENBQUMsVUFBQ0MsT0FBTyxFQUFLO1FBQ3RCUSxNQUFJLENBQUMvQixTQUFTLENBQUN3QixXQUFXLENBQUNELE9BQU8sQ0FBQztNQUNyQyxDQUFDLENBQUM7TUFFSixJQUFJLENBQUNFLFVBQVUsQ0FBQyxDQUFDO01BQ2pCLE9BQU8sSUFBSSxDQUFDekIsU0FBUztJQUN2QjtFQUFDO0lBQUFKLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUFxQyxXQUFXQSxDQUFBLEVBQTJDO01BQUEsSUFBMUM1QixTQUFTLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLEtBQUs7TUFBQSxJQUFFRyxJQUFJLEdBQUFILFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLGNBQWM7TUFDaEQsT0FBTyxJQUFJLENBQUNILFFBQVEsQ0FBQ0UsU0FBUyxFQUFFSSxJQUFJLENBQUM7SUFDekM7RUFBQztJQUFBZCxHQUFBO0lBQUFDLEtBQUEsRUFFRCxTQUFBc0MsU0FBU0EsQ0FBQSxFQUF5QztNQUFBLElBQXhDN0IsU0FBUyxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxLQUFLO01BQUEsSUFBRUcsSUFBSSxHQUFBSCxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxZQUFZO01BQzVDLE9BQU8sSUFBSSxDQUFDSCxRQUFRLENBQUNFLFNBQVMsRUFBRUksSUFBSSxDQUFDO0lBQ3pDO0VBQUM7SUFBQWQsR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBQXVDLFNBQVNBLENBQUEsRUFBeUM7TUFBQSxJQUF4QzlCLFNBQVMsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsS0FBSztNQUFBLElBQUVHLElBQUksR0FBQUgsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsWUFBWTtNQUM1QyxPQUFPLElBQUksQ0FBQ0gsUUFBUSxDQUFDRSxTQUFTLEVBQUVJLElBQUksQ0FBQztJQUN6QztFQUFDO0lBQUFkLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUE0QixVQUFVQSxDQUFBLEVBQUc7TUFDWCxJQUFJWSxNQUFNLENBQUNDLGNBQWMsRUFBRTtRQUN6QkQsTUFBTSxDQUFDQyxjQUFjLENBQUNDLHlCQUF5QixDQUFDLENBQUM7TUFDbkQ7SUFDRjtFQUFDO0lBQUEzQyxHQUFBO0lBQUFDLEtBQUEsRUFFRCxTQUFBYyxhQUFhQSxDQUFBLEVBQUc7TUFDZCxJQUFJMEIsTUFBTSxDQUFDQyxjQUFjLEVBQUU7UUFDekJELE1BQU0sQ0FBQ0MsY0FBYyxDQUFDRSxvQkFBb0IsQ0FBQ0MsVUFBVSxDQUFDLENBQUM7TUFDekQ7SUFDRjtFQUFDO0lBQUE3QyxHQUFBO0lBQUFDLEtBQUEsRUEvRUQsU0FBT2lCLElBQUlBLENBQUNHLENBQUMsRUFBRUksQ0FBQyxFQUFxQjtNQUFBLElBQW5CZixTQUFTLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLEtBQUs7TUFDL0IsSUFBSVUsQ0FBQyxHQUFHSSxDQUFDLEVBQUU7UUFBRSxPQUFRZixTQUFTLEtBQUssS0FBSyxHQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7TUFBRTtNQUNwRCxJQUFJVyxDQUFDLEdBQUdJLENBQUMsRUFBRTtRQUFFLE9BQVFmLFNBQVMsS0FBSyxLQUFLLEdBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQztNQUFFO01BRXBELE9BQU8sQ0FBQztJQUNaO0VBQUM7QUFBQTtBQUFBLElBNkVDb0MsUUFBUTtFQUNWLFNBQUFBLFNBQUEsRUFBYztJQUFBaEQsZUFBQSxPQUFBZ0QsUUFBQTtJQUNWLElBQUksQ0FBQ0MsSUFBSSxHQUFHLElBQUlsRCxNQUFNLENBQUMsQ0FBQztFQUM1QjtFQUFDLE9BQUFFLFlBQUEsQ0FBQStDLFFBQUE7SUFBQTlDLEdBQUE7SUFBQUMsS0FBQSxFQWtCRCxTQUFBK0MscUJBQXFCQSxDQUFDQyxZQUFZLEVBQWE7TUFBQSxJQUFYQyxJQUFJLEdBQUF2QyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxFQUFFO01BQ3pDc0MsWUFBWSxDQUFDdkIsT0FBTyxDQUFDLFVBQUN5QixVQUFVLEVBQUs7UUFDakNMLFFBQVEsQ0FBQ00sbUJBQW1CLENBQUMsUUFBUSxFQUFFRCxVQUFVLENBQUNFLElBQUksSUFBSUYsVUFBVSxFQUFFRCxJQUFJLENBQUM7TUFDL0UsQ0FBQyxDQUFDO0lBQ047RUFBQztJQUFBbEQsR0FBQTtJQUFBQyxLQUFBLEVBNkJELFNBQUFxRCxhQUFhQSxDQUFDQyxJQUFJLEVBQUVMLElBQUksRUFBRTtNQUFBLElBQUFNLE1BQUE7TUFDdEIsSUFBSUMsR0FBRyxHQUFHWCxRQUFRLENBQUNZLG1CQUFtQixDQUFDSCxJQUFJLENBQUM7TUFFNUM3RCwwREFBTyxDQUFDK0QsR0FBRyxFQUFFO1FBQ1RFLE1BQU0sRUFBRSxNQUFNO1FBQ2RDLElBQUksRUFBRTtVQUNGLFdBQVNWO1FBQ2I7TUFDSixDQUFDLEVBQUUsVUFBQ1csUUFBUSxFQUFLO1FBQ2IsSUFBSUEsUUFBUSxDQUFDQyxNQUFNLEtBQUssU0FBUyxFQUFFO1VBQy9CdkUsNkNBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDd0UsUUFBUSxDQUFDLFFBQVEsQ0FBQztVQUUvQyxJQUFJRixRQUFRLENBQUNaLFlBQVksSUFBSVksUUFBUSxDQUFDWixZQUFZLENBQUNyQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNENEMsTUFBSSxDQUFDUixxQkFBcUIsQ0FBQ2EsUUFBUSxDQUFDWixZQUFZLENBQUM7WUFDakQxRCw2Q0FBQyxDQUFDLDhCQUE4QixDQUFDLENBQUN5RSxXQUFXLENBQUMsUUFBUSxDQUFDO1VBQzNELENBQUMsTUFBTTtZQUNIekUsNkNBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDeUUsV0FBVyxDQUFDLFFBQVEsQ0FBQztVQUNuRDs7VUFFQTtVQUNBekUsNkNBQUMsQ0FBQ2MsUUFBUSxDQUFDLENBQUM0RCxFQUFFLENBQUMsU0FBUyxFQUFFLG9DQUFvQyxFQUFFLFlBQU07WUFDbEVuQixRQUFRLENBQUNvQixhQUFhLENBQUNYLElBQUksQ0FBQztVQUNoQyxDQUFDLENBQUM7UUFDTixDQUFDLE1BQU07VUFDSGhFLDZDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQ3dFLFFBQVEsQ0FBQyxRQUFRLENBQUM7VUFDL0N4RSw2Q0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUN5RSxXQUFXLENBQUMsUUFBUSxDQUFDO1FBQ3BEO01BQ0osQ0FBQyxDQUFDO0lBQ047RUFBQztJQUFBaEUsR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBQWtFLGdCQUFnQkEsQ0FBQ1osSUFBSSxFQUFFTCxJQUFJLEVBQUVrQixZQUFZLEVBQUVDLGVBQWUsRUFBRTtNQUN4RDlFLDZDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQ3dFLFFBQVEsQ0FBQyxRQUFRLENBQUM7TUFDMUN4RSw2Q0FBQyxDQUFDLDZCQUE2QixDQUFDLENBQUN5RSxXQUFXLENBQUMsUUFBUSxDQUFDO01BRXRELElBQUlQLEdBQUcsR0FBR1gsUUFBUSxDQUFDd0Isc0JBQXNCLENBQUNmLElBQUksQ0FBQztNQUUvQzdELDBEQUFPLENBQUMrRCxHQUFHLEVBQUU7UUFDVEUsTUFBTSxFQUFFLE1BQU07UUFDZEMsSUFBSSxFQUFFO1VBQ0ZWLElBQUksRUFBRUEsSUFBSTtVQUNWSyxJQUFJLEVBQUVBLElBQUk7VUFDVmEsWUFBWSxFQUFFQSxZQUFZO1VBQzFCQyxlQUFlLEVBQUVBO1FBQ3JCO01BQ0osQ0FBQyxFQUFFLFVBQUNSLFFBQVEsRUFBSztRQUNiLElBQUlBLFFBQVEsQ0FBQ0MsTUFBTSxLQUFLLFNBQVMsRUFBRTtVQUMvQnZFLDZDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQ3dFLFFBQVEsQ0FBQyxRQUFRLENBQUM7VUFDbER4RSw2Q0FBQyxDQUFDLHlCQUF5QixDQUFDLENBQUN5RSxXQUFXLENBQUMsUUFBUSxDQUFDO1FBQ3RELENBQUMsTUFBTTtVQUNIekUsNkNBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDd0UsUUFBUSxDQUFDLFFBQVEsQ0FBQztVQUNsRHhFLDZDQUFDLENBQUMsMEJBQTBCLENBQUMsQ0FBQ3lFLFdBQVcsQ0FBQyxRQUFRLENBQUM7UUFDdkQ7UUFFQXZCLE1BQU0sQ0FBQzhCLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDLENBQUM7TUFDNUIsQ0FBQyxDQUFDO0lBQ047RUFBQztJQUFBeEUsR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBQXdFLGdCQUFnQkEsQ0FBQ2xCLElBQUksRUFBRUwsSUFBSSxFQUFFd0IsTUFBTSxFQUFFO01BQUEsSUFBQUMsTUFBQTtNQUNqQyxJQUFJbEIsR0FBRyxHQUFHWCxRQUFRLENBQUNZLG1CQUFtQixDQUFDSCxJQUFJLENBQUM7TUFFNUM3RCwwREFBTyxDQUFDK0QsR0FBRyxFQUFFO1FBQ1RFLE1BQU0sRUFBRSxNQUFNO1FBQ2RDLElBQUksRUFBRTtVQUNGLFdBQVNWO1FBQ2I7TUFDSixDQUFDLEVBQUUsVUFBQ1csUUFBUSxFQUFLO1FBQ2IsSUFBSUEsUUFBUSxDQUFDQyxNQUFNLEtBQUssU0FBUyxFQUFFO1VBQy9CWSxNQUFNLENBQUNWLFdBQVcsQ0FBQyxRQUFRLENBQUM7VUFDNUJVLE1BQU0sQ0FBQ0UsV0FBVyxDQUFDckYsNkNBQUMsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1VBRTFELElBQUlzRSxRQUFRLENBQUNaLFlBQVksSUFBSVksUUFBUSxDQUFDWixZQUFZLENBQUNyQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNEK0QsTUFBSSxDQUFDM0IscUJBQXFCLENBQUNhLFFBQVEsQ0FBQ1osWUFBWSxFQUFFQyxJQUFJLENBQUM7VUFDM0Q7UUFDSjtNQUNKLENBQUMsQ0FBQztJQUNOO0VBQUM7SUFBQWxELEdBQUE7SUFBQUMsS0FBQSxFQTZCRCxTQUFBNEUsdUJBQXVCQSxDQUFDdEIsSUFBSSxFQUFFdUIsS0FBSyxFQUFFQyx1QkFBdUIsRUFBRTtNQUMxRCxJQUFJdEIsR0FBRyxHQUFHWCxRQUFRLENBQUNrQyw2QkFBNkIsQ0FBQ3pCLElBQUksQ0FBQztNQUV0RDdELDBEQUFPLENBQUMrRCxHQUFHLEVBQUU7UUFDVEUsTUFBTSxFQUFFLE1BQU07UUFDZEMsSUFBSSxFQUFFO1VBQ0ZxQixRQUFRLEVBQUVIO1FBQ2Q7TUFDSixDQUFDLEVBQUUsVUFBQ2pCLFFBQVEsRUFBSztRQUVia0IsdUJBQXVCLENBQUMsQ0FBQztRQUV6QixJQUFJbEIsUUFBUSxDQUFDQyxNQUFNLEtBQUssU0FBUyxFQUFFO1VBQy9CLElBQUlELFFBQVEsQ0FBQ1osWUFBWSxFQUFFO1lBQ3ZCLElBQUlpQyxlQUFlLEdBQUcsS0FBSztZQUMzQixLQUFLLElBQUkvQixVQUFVLElBQUlVLFFBQVEsQ0FBQ1osWUFBWSxFQUFFO2NBQzFDLElBQUlZLFFBQVEsQ0FBQ1osWUFBWSxDQUFDa0MsY0FBYyxDQUFDaEMsVUFBVSxDQUFDLEVBQUU7Z0JBQ2xELElBQUlBLFVBQVUsS0FBSyxNQUFNLEVBQUU7a0JBQ3ZCO2dCQUNKO2dCQUNBK0IsZUFBZSxHQUFHLElBQUk7Z0JBQ3RCLElBQUlFLGNBQWMsR0FBR2pDLFVBQVU7Z0JBQy9CLElBQUlrQyxNQUFNLEdBQUd4QixRQUFRLENBQUNaLFlBQVksQ0FBQ0UsVUFBVSxDQUFDO2dCQUU5Q0wsUUFBUSxDQUFDd0MseUJBQXlCLENBQUNELE1BQU0sRUFBRUQsY0FBYyxDQUFDO2NBQzlEO1lBQ0o7WUFFQSxJQUFJRixlQUFlLEVBQUU7Y0FDakIzRiw2Q0FBQyxDQUFDLCtEQUErRCxDQUFDLENBQUN5RSxXQUFXLENBQUMsUUFBUSxDQUFDO1lBQzVGLENBQUMsTUFBTTtjQUNIekUsNkNBQUMsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDeUUsV0FBVyxDQUFDLFFBQVEsQ0FBQztZQUMvRTtVQUNKLENBQUMsTUFBTTtZQUNIekUsNkNBQUMsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDeUUsV0FBVyxDQUFDLFFBQVEsQ0FBQztVQUMvRTtRQUNKLENBQUMsTUFBTTtVQUNIekUsNkNBQUMsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDeUUsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUMzRTtNQUNKLENBQUMsQ0FBQztJQUNOO0VBQUM7SUFBQWhFLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUFzRiw2QkFBNkJBLENBQUNoQyxJQUFJLEVBQUV1QixLQUFLLEVBQUVVLGVBQWUsRUFBRUMsYUFBYSxFQUFFO01BQ3ZFLElBQUloQyxHQUFHLEdBQUdYLFFBQVEsQ0FBQzRDLG1DQUFtQyxDQUFDbkMsSUFBSSxDQUFDO01BRTVEN0QsMERBQU8sQ0FBQytELEdBQUcsRUFBRTtRQUNURSxNQUFNLEVBQUUsTUFBTTtRQUNkQyxJQUFJLEVBQUU7VUFDRnFCLFFBQVEsRUFBRUg7UUFDZDtNQUNKLENBQUMsRUFBRVUsZUFBZSxDQUFDO0lBQ3ZCO0VBQUM7SUFBQXhGLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUEwRixlQUFlQSxDQUFDcEMsSUFBSSxFQUFFdUIsS0FBSyxFQUFFVSxlQUFlLEVBQUU7TUFDMUMsSUFBSS9CLEdBQUcsR0FBR1gsUUFBUSxDQUFDOEMsb0JBQW9CLENBQUNyQyxJQUFJLENBQUM7TUFFN0NzQyxxQkFBTSxDQUFDQyxPQUFPLENBQUNDLEdBQUcsQ0FBQ2pCLEtBQUssQ0FBQ2tCLEdBQUcsQ0FBQyxVQUFDOUMsSUFBSSxFQUFLO1FBQ25DLE9BQU8sSUFBSTJDLHFCQUFNLENBQUNDLE9BQU8sQ0FBQyxVQUFDRyxPQUFPLEVBQUVDLE1BQU0sRUFBSztVQUMzQ3hHLDBEQUFPLENBQUMrRCxHQUFHLEVBQUU7WUFDVEUsTUFBTSxFQUFFLE1BQU07WUFDZEMsSUFBSSxFQUFFO2NBQ0YsV0FBU1YsSUFBSTtjQUNiSyxJQUFJLEVBQUVBO1lBQ1Y7VUFDSixDQUFDLEVBQUUsVUFBQ00sUUFBUSxFQUFLO1lBQ2JvQyxPQUFPLENBQUNwQyxRQUFRLENBQUM7VUFDckIsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDO01BQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQ3NDLElBQUksQ0FBQ1gsZUFBZSxDQUFDO0lBRTdCO0VBQUM7SUFBQXhGLEdBQUE7SUFBQUMsS0FBQSxFQWtCRCxTQUFBbUcsZ0NBQWdDQSxDQUFDN0MsSUFBSSxFQUFFOEMsS0FBSyxFQUFxQjtNQUFBLElBQW5CaEIsTUFBTSxHQUFBMUUsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsUUFBUTtNQUMzRCxJQUFJbUUsS0FBSyxHQUFHaEMsUUFBUSxDQUFDd0QsaUJBQWlCLENBQUNELEtBQUssQ0FBQztNQUU3QyxJQUFJLENBQUN2QixLQUFLLEVBQUU7UUFDUnlCLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDcEI7TUFDSjs7TUFFQTtNQUNBaEgsNkNBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDaUgsSUFBSSxDQUFDLEVBQUUsQ0FBQztNQUNsQ2pILDZDQUFDLENBQUMsNENBQTRDLENBQUMsQ0FBQ2tILE1BQU0sQ0FBQyxDQUFDO01BRXhEM0IsS0FBSyxDQUFDcEQsT0FBTyxDQUFDLFVBQUN3QixJQUFJLEVBQUs7UUFDcEIsSUFBSW1DLE1BQU0sS0FBSyxRQUFRLEVBQUU7VUFDckIsSUFBSWhCLGVBQWUsR0FBRyxFQUFFO1VBQ3hCLElBQUlxQyxpQkFBaUIsR0FBRyxFQUFFO1VBQzFCLElBQUlyRCxLQUFJLEdBQUcsRUFBRTtVQUViLElBQUlzRCxTQUFTLEdBQUcvRyxnREFBRyxDQUFDZ0gsT0FBTyxDQUFDQSxPQUFPLENBQUNELFNBQVM7VUFFN0MsSUFBSUEsU0FBUyxDQUFDRSxPQUFPLENBQUMzRCxJQUFJLENBQUMsRUFBRTtZQUN6QndELGlCQUFpQixHQUFHQyxTQUFTLENBQUNFLE9BQU8sQ0FBQzNELElBQUksQ0FBQyxDQUFDNEQsU0FBUztZQUNyRHpDLGVBQWUsR0FBR3NDLFNBQVMsQ0FBQ0UsT0FBTyxDQUFDM0QsSUFBSSxDQUFDLENBQUM2RCxPQUFPO1lBQ2pEMUQsS0FBSSxHQUFHc0QsU0FBUyxDQUFDRSxPQUFPLENBQUMzRCxJQUFJLENBQUMsQ0FBQ0csSUFBSTtVQUN2QyxDQUFDLE1BQU0sSUFBSXNELFNBQVMsQ0FBQ0ssTUFBTSxDQUFDOUQsSUFBSSxDQUFDLEVBQUU7WUFDL0J3RCxpQkFBaUIsR0FBR0MsU0FBUyxDQUFDSyxNQUFNLENBQUM5RCxJQUFJLENBQUMsQ0FBQzRELFNBQVM7WUFDcER6QyxlQUFlLEdBQUdzQyxTQUFTLENBQUNLLE1BQU0sQ0FBQzlELElBQUksQ0FBQyxDQUFDNkQsT0FBTztZQUNoRDFELEtBQUksR0FBR3NELFNBQVMsQ0FBQ0ssTUFBTSxDQUFDOUQsSUFBSSxDQUFDLENBQUNHLElBQUk7VUFDdEM7VUFFQTlELDZDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQzBILE1BQU0sUUFBQUMsTUFBQSxDQUFRN0QsS0FBSSxHQUFHQSxLQUFJLEdBQUdILElBQUksUUFBQWdFLE1BQUEsQ0FBS3pILHFEQUFZLENBQUMwSCxZQUFZLENBQUNDLElBQUksZ0JBQUFGLE1BQUEsQ0FBYTdDLGVBQWUsZ0JBQUE2QyxNQUFBLENBQWF6SCxxREFBWSxDQUFDMEgsWUFBWSxDQUFDRSxFQUFFLGdCQUFBSCxNQUFBLENBQWFSLGlCQUFpQixtQkFBZ0IsQ0FBQztRQUNyTixDQUFDLE1BQU07VUFDSG5ILDZDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQzBILE1BQU0sUUFBQUMsTUFBQSxDQUFRN0QsSUFBSSxHQUFHQSxJQUFJLEdBQUdILElBQUksVUFBTyxDQUFDO1FBQ3RFO01BQ0osQ0FBQyxDQUFDO01BRUZtRCxLQUFLLENBQUNpQixjQUFjLENBQUMsQ0FBQztNQUN0QmpCLEtBQUssQ0FBQ2tCLGVBQWUsQ0FBQyxDQUFDOztNQUV2QjtNQUNBLElBQU1DLEtBQUssR0FBRyx1RkFBdUY7TUFDckcsSUFBTTFHLElBQUksR0FBR3ZCLDZDQUFDLENBQUNpSSxLQUFLLENBQUMsQ0FBQzFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSXZCLDZDQUFDLENBQUNpSSxLQUFLLENBQUMsQ0FBQzFHLElBQUksQ0FBQyxjQUFjLENBQUM7TUFDMUV2Qiw2Q0FBQyxDQUFDaUksS0FBSyxDQUFDLENBQUNDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDQSxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQ0MsSUFBSSxTQUFBUixNQUFBLENBQVMzRCxJQUFJLGNBQVd6QyxJQUFJLENBQUM7O01BRTNHO01BQ0F2Qiw2Q0FBQyxDQUFDLGdDQUFnQyxDQUFDLENBQUN5RSxXQUFXLENBQUMsUUFBUSxDQUFDO01BQ3pEekUsNkNBQUMsQ0FBQywrREFBK0QsQ0FBQyxDQUFDd0UsUUFBUSxDQUFDLFFBQVEsQ0FBQztNQUNyRnhFLDZDQUFDLENBQUMsa0RBQWtELENBQUMsQ0FBQ3dFLFFBQVEsQ0FBQyxRQUFRLENBQUM7TUFDeEV4RSw2Q0FBQyxDQUFDLGdEQUFnRCxDQUFDLENBQUN3RSxRQUFRLENBQUMsUUFBUSxDQUFDO01BQ3RFeEUsNkNBQUMsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDd0UsUUFBUSxDQUFDLFFBQVEsQ0FBQztNQUNqRXhFLDZDQUFDLENBQUMsOENBQThDLENBQUMsQ0FBQ3dFLFFBQVEsQ0FBQyxRQUFRLENBQUM7TUFDcEV4RSw2Q0FBQyxDQUFDLDhDQUE4QyxDQUFDLENBQUN3RSxRQUFRLENBQUMsUUFBUSxDQUFDO01BRXBFLElBQUksQ0FBQ2MsdUJBQXVCLENBQUN0QixJQUFJLEVBQUV1QixLQUFLLEVBQUUsWUFBTTtRQUM1QyxJQUFJNkMsWUFBWSxHQUFHN0MsS0FBSyxDQUFDOEMsSUFBSSxDQUFDLENBQUM7UUFDL0JySSw2Q0FBQyxnQ0FBQTJILE1BQUEsQ0FBZ0MzRCxJQUFJLGtEQUE2QyxDQUFDLENBQUNtRSxJQUFJLENBQUMscUJBQXFCLEVBQUVDLFlBQVksQ0FBQztRQUM3SHBJLDZDQUFDLGdDQUFBMkgsTUFBQSxDQUFnQzNELElBQUksaUNBQTRCLENBQUMsQ0FBQ21FLElBQUksQ0FBQyxxQkFBcUIsRUFBRUMsWUFBWSxDQUFDO1FBQzVHcEksNkNBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDd0UsUUFBUSxDQUFDLFFBQVEsQ0FBQztNQUMxRCxDQUFDLENBQUM7SUFDTjtFQUFDO0lBQUEvRCxHQUFBO0lBQUFDLEtBQUEsRUFFRCxTQUFBNEgsc0NBQXNDQSxDQUFDdEUsSUFBSSxFQUFFOEMsS0FBSyxFQUFFO01BQUEsSUFBQXlCLE1BQUE7TUFDaEQsSUFBSWhELEtBQUssR0FBR2hDLFFBQVEsQ0FBQ3dELGlCQUFpQixDQUFDRCxLQUFLLENBQUM7TUFDN0NBLEtBQUssQ0FBQ2lCLGNBQWMsQ0FBQyxDQUFDO01BQ3RCakIsS0FBSyxDQUFDa0IsZUFBZSxDQUFDLENBQUM7TUFFdkJoSSw2Q0FBQyxDQUFDLCtEQUErRCxDQUFDLENBQUN3RSxRQUFRLENBQUMsUUFBUSxDQUFDO01BQ3JGeEUsNkNBQUMsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDd0UsUUFBUSxDQUFDLFFBQVEsQ0FBQztNQUN4RXhFLDZDQUFDLENBQUMsZ0RBQWdELENBQUMsQ0FBQ3lFLFdBQVcsQ0FBQyxRQUFRLENBQUM7TUFFekUsSUFBSSxDQUFDdUIsNkJBQTZCLENBQUNoQyxJQUFJLEVBQUV1QixLQUFLLEVBQUUsVUFBQ2pCLFFBQVEsRUFBSztRQUMxRHRFLDZDQUFDLENBQUMsZ0RBQWdELENBQUMsQ0FBQ3dFLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdEV4RSw2Q0FBQyxDQUFDLDJDQUEyQyxDQUFDLENBQUN5RSxXQUFXLENBQUMsUUFBUSxDQUFDO1FBQ3BFOEQsTUFBSSxDQUFDbkMsZUFBZSxDQUFDcEMsSUFBSSxFQUFFdUIsS0FBSyxFQUFFLFlBQU07VUFDcEN2Riw2Q0FBQyxDQUFDLDJDQUEyQyxDQUFDLENBQUN3RSxRQUFRLENBQUMsUUFBUSxDQUFDO1VBQ2pFeEUsNkNBQUMsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDeUUsV0FBVyxDQUFDLFFBQVEsQ0FBQztVQUV2RSxJQUFJSCxRQUFRLENBQUNDLE1BQU0sS0FBSyxPQUFPLEVBQUU7WUFDN0IsSUFBSWlFLE9BQU8sR0FBR3hJLHVEQUFTLENBQUN5SSxNQUFNLENBQUN6SSw2Q0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUN1QixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUVpSCxPQUFPLENBQUNFLEtBQUssQ0FBQyxDQUFDO1lBRWY7VUFDSjtVQUVBQyxVQUFVLENBQUMsWUFBTTtZQUNiLElBQUlwRCxLQUFLLENBQUNsRSxNQUFNLEtBQUssQ0FBQyxFQUFFO2NBQ3BCaUYscUJBQU0sQ0FBQ3RCLFFBQVEsQ0FBQzRELElBQUksTUFBQWpCLE1BQUEsQ0FBTTFILCtDQUFNLENBQUM0SSxpQkFBaUIsT0FBQWxCLE1BQUEsQ0FBSTNELElBQUksUUFBQTJELE1BQUEsQ0FBS3BDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBRTtZQUM3RSxDQUFDLE1BQU07Y0FDSGUscUJBQU0sQ0FBQ3RCLFFBQVEsQ0FBQzRELElBQUksTUFBQWpCLE1BQUEsQ0FBTTFILCtDQUFNLENBQUM0SSxpQkFBaUIsT0FBQWxCLE1BQUEsQ0FBSTNELElBQUksTUFBRztZQUNqRTtVQUNKLENBQUMsRUFBRSxJQUFJLENBQUM7UUFFWixDQUFDLENBQUM7TUFDTixDQUFDLENBQUM7SUFDTjtFQUFDO0lBQUF2RCxHQUFBO0lBQUFDLEtBQUEsRUFFRCxTQUFBb0ksdUJBQXVCQSxDQUFDOUUsSUFBSSxFQUFFOEMsS0FBSyxFQUFFO01BQ2pDLElBQUl2QixLQUFLLEdBQUdoQyxRQUFRLENBQUN3RCxpQkFBaUIsQ0FBQ0QsS0FBSyxDQUFDO01BQzdDQSxLQUFLLENBQUNpQixjQUFjLENBQUMsQ0FBQztNQUN0QmpCLEtBQUssQ0FBQ2tCLGVBQWUsQ0FBQyxDQUFDO01BRXZCaEksNkNBQUMsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDd0UsUUFBUSxDQUFDLFFBQVEsQ0FBQztNQUN4RXhFLDZDQUFDLENBQUMsMkNBQTJDLENBQUMsQ0FBQ3lFLFdBQVcsQ0FBQyxRQUFRLENBQUM7TUFFcEUsSUFBSSxDQUFDMkIsZUFBZSxDQUFDcEMsSUFBSSxFQUFFdUIsS0FBSyxFQUFFLFVBQUNqQixRQUFRLEVBQUs7UUFDNUN0RSw2Q0FBQyxDQUFDLDJDQUEyQyxDQUFDLENBQUN3RSxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ2pFeEUsNkNBQUMsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDeUUsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUV2RSxJQUFNc0UsTUFBTSxHQUFHdEgsS0FBSyxDQUFDQyxJQUFJLENBQUM0QyxRQUFRLENBQUMsQ0FBQzBFLE1BQU0sQ0FBQyxVQUFDQyxDQUFDO1VBQUEsT0FBS0EsQ0FBQyxDQUFDMUUsTUFBTSxLQUFLLE9BQU87UUFBQSxFQUFDO1FBRXZFLElBQUl3RSxNQUFNLElBQUlBLE1BQU0sQ0FBQzFILE1BQU0sRUFBRTtVQUN6QixJQUFJbUgsT0FBTyxHQUFHeEksdURBQVMsQ0FBQ3lJLE1BQU0sQ0FBQ3pJLDZDQUFDLENBQUMseUNBQXlDLENBQUMsQ0FBQ3VCLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztVQUM1RmlILE9BQU8sQ0FBQ0UsS0FBSyxDQUFDLENBQUM7VUFFZjtRQUNKO1FBRUEsSUFBSW5ELEtBQUssQ0FBQ2xFLE1BQU0sS0FBSyxDQUFDLEVBQUU7VUFDcEJpRixxQkFBTSxDQUFDdEIsUUFBUSxDQUFDNEQsSUFBSSxNQUFBakIsTUFBQSxDQUFNMUgsK0NBQU0sQ0FBQzRJLGlCQUFpQixPQUFBbEIsTUFBQSxDQUFJM0QsSUFBSSxRQUFBMkQsTUFBQSxDQUFLcEMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFFO1FBQzdFLENBQUMsTUFBTTtVQUNIZSxxQkFBTSxDQUFDdEIsUUFBUSxDQUFDNEQsSUFBSSxNQUFBakIsTUFBQSxDQUFNMUgsK0NBQU0sQ0FBQzRJLGlCQUFpQixPQUFBbEIsTUFBQSxDQUFJM0QsSUFBSSxNQUFHO1FBQ2pFO01BQ0osQ0FBQyxDQUFDO0lBQ047RUFBQztJQUFBdkQsR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBQXdJLHFCQUFxQkEsQ0FBQ2xGLElBQUksRUFBRThDLEtBQUssRUFBRTtNQUMvQixJQUFJbkQsSUFBSSxHQUFHM0QsNkNBQUMsQ0FBQzhHLEtBQUssQ0FBQ3FDLE1BQU0sQ0FBQyxDQUFDaEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDO01BQ3REckIsS0FBSyxDQUFDaUIsY0FBYyxDQUFDLENBQUM7TUFDdEJqQixLQUFLLENBQUNrQixlQUFlLENBQUMsQ0FBQztNQUV2QixJQUFJLENBQUNqRSxhQUFhLENBQUNDLElBQUksRUFBRUwsSUFBSSxDQUFDO0lBQ2xDO0VBQUM7SUFBQWxELEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUEwSSxzQkFBc0JBLENBQUNwRixJQUFJLEVBQUU4QyxLQUFLLEVBQUU7TUFDaEMsSUFBSXFDLE1BQU0sR0FBR25KLDZDQUFDLENBQUM4RyxLQUFLLENBQUNxQyxNQUFNLENBQUM7TUFDNUIsSUFBSXhGLElBQUksR0FBR3dGLE1BQU0sQ0FBQ2hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztNQUMzQyxJQUFJdEQsWUFBWSxHQUFHc0UsTUFBTSxDQUFDaEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDO01BQ25ELElBQUlyRCxlQUFlLEdBQUdxRSxNQUFNLENBQUNoQixJQUFJLENBQUMsOEJBQThCLENBQUM7TUFFakVyQixLQUFLLENBQUNpQixjQUFjLENBQUMsQ0FBQztNQUN0QmpCLEtBQUssQ0FBQ2tCLGVBQWUsQ0FBQyxDQUFDO01BRXZCLElBQUksQ0FBQ3BELGdCQUFnQixDQUFDWixJQUFJLEVBQUVMLElBQUksRUFBRWtCLFlBQVksRUFBRUMsZUFBZSxDQUFDO0lBQ3BFO0VBQUM7SUFBQXJFLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUEySSx3QkFBd0JBLENBQUNyRixJQUFJLEVBQUU4QyxLQUFLLEVBQUU7TUFDbEMsSUFBSW5ELElBQUksR0FBRzNELDZDQUFDLENBQUM4RyxLQUFLLENBQUNxQyxNQUFNLENBQUMsQ0FBQ2hCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztNQUN2RCxJQUFJaEQsTUFBTSxHQUFHbkYsNkNBQUMsQ0FBQzhHLEtBQUssQ0FBQ3FDLE1BQU0sQ0FBQztNQUM1QnJDLEtBQUssQ0FBQ2lCLGNBQWMsQ0FBQyxDQUFDO01BQ3RCakIsS0FBSyxDQUFDa0IsZUFBZSxDQUFDLENBQUM7TUFFdkIsSUFBSSxDQUFDOUMsZ0JBQWdCLENBQUNsQixJQUFJLEVBQUVMLElBQUksRUFBRXdCLE1BQU0sQ0FBQztJQUM3QztFQUFDO0lBQUExRSxHQUFBO0lBQUFDLEtBQUEsRUF6WUQsU0FBT2lFLGFBQWFBLENBQUNYLElBQUksRUFBRTtNQUN2QnNDLHFCQUFNLENBQUN0QixRQUFRLENBQUM0RCxJQUFJLE1BQUFqQixNQUFBLENBQU0xSCwrQ0FBTSxDQUFDNEksaUJBQWlCLE9BQUFsQixNQUFBLENBQUkzRCxJQUFJLE1BQUc7SUFDakU7RUFBQztJQUFBdkQsR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBT21ELG1CQUFtQkEsQ0FBQ0csSUFBSSxFQUFFSixVQUFVLEVBQWE7TUFBQSxJQUFYRCxJQUFJLEdBQUF2QyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxFQUFFO01BQ2xELElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUNrSSxPQUFPLENBQUMxRixVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUFFO01BQVE7TUFDdEYsSUFBSS9DLFNBQVMsR0FBR2IsNkNBQUMsQ0FBQyxpQ0FBaUMsQ0FBQztNQUNwRCxJQUFJdUosSUFBSSxNQUFBNUIsTUFBQSxDQUFNL0QsVUFBVSw2REFBQStELE1BQUEsQ0FBcUQvRCxVQUFVLGNBQUErRCxNQUFBLENBQVUzRCxJQUFJLHFEQUFnRDtNQUVySixJQUFJTCxJQUFJLEVBQUU7UUFDTjRGLElBQUksdUJBQUE1QixNQUFBLENBQXVCaEUsSUFBSSxNQUFHO01BQ3RDO01BRUE5QyxTQUFTLENBQUM2RyxNQUFNLFFBQUFDLE1BQUEsQ0FBUTRCLElBQUksVUFBTyxDQUFDO0lBQ3hDO0VBQUM7SUFBQTlJLEdBQUE7SUFBQUMsS0FBQSxFQVFELFNBQU84SSxVQUFVQSxDQUFDeEYsSUFBSSxFQUFFeUYsSUFBSSxFQUFFO01BQzFCLElBQUl2RixHQUFHLE1BQUF5RCxNQUFBLENBQU0xSCwrQ0FBTSxDQUFDNEksaUJBQWlCLENBQUU7TUFDdkMzRSxHQUFHLFFBQUF5RCxNQUFBLENBQVEzRCxJQUFJLFdBQVE7TUFDdkJFLEdBQUcsWUFBQXlELE1BQUEsQ0FBWTFILCtDQUFNLENBQUN5SixTQUFTLEVBQUEvQixNQUFBLENBQUc4QixJQUFJLENBQUU7TUFDeEMsT0FBT3ZGLEdBQUc7SUFDZDtFQUFDO0lBQUF6RCxHQUFBO0lBQUFDLEtBQUEsRUFFRCxTQUFPeUQsbUJBQW1CQSxDQUFDSCxJQUFJLEVBQUU7TUFDN0IsVUFBQTJELE1BQUEsQ0FBVXBFLFFBQVEsQ0FBQ2lHLFVBQVUsQ0FBQ3hGLElBQUksRUFBRSxlQUFlLENBQUM7SUFDeEQ7RUFBQztJQUFBdkQsR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBT3FFLHNCQUFzQkEsQ0FBQ2YsSUFBSSxFQUFFO01BQ2hDLFVBQUEyRCxNQUFBLENBQVVwRSxRQUFRLENBQUNpRyxVQUFVLENBQUN4RixJQUFJLEVBQUUsa0JBQWtCLENBQUM7SUFDM0Q7RUFBQztJQUFBdkQsR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBTytFLDZCQUE2QkEsQ0FBQ3pCLElBQUksRUFBRTtNQUN2QyxVQUFBMkQsTUFBQSxDQUFVcEUsUUFBUSxDQUFDaUcsVUFBVSxDQUFDeEYsSUFBSSxFQUFFLHlCQUF5QixDQUFDO0lBQ2xFO0VBQUM7SUFBQXZELEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQU95RixtQ0FBbUNBLENBQUNuQyxJQUFJLEVBQUU7TUFDN0MsVUFBQTJELE1BQUEsQ0FBVXBFLFFBQVEsQ0FBQ2lHLFVBQVUsQ0FBQ3hGLElBQUksRUFBRSwrQkFBK0IsQ0FBQztJQUN4RTtFQUFDO0lBQUF2RCxHQUFBO0lBQUFDLEtBQUEsRUFFRCxTQUFPMkYsb0JBQW9CQSxDQUFDckMsSUFBSSxFQUFFO01BQzlCLFVBQUEyRCxNQUFBLENBQVVwRSxRQUFRLENBQUNpRyxVQUFVLENBQUN4RixJQUFJLEVBQUUsZ0JBQWdCLENBQUM7SUFDekQ7RUFBQztJQUFBdkQsR0FBQTtJQUFBQyxLQUFBLEVBK0VELFNBQU9xRix5QkFBeUJBLENBQUNELE1BQU0sRUFBRW5DLElBQUksRUFBRTtNQUMzQzNELDZDQUFDLENBQUMsZ0RBQWdELEdBQUc4RixNQUFNLENBQUMsQ0FBQ3JCLFdBQVcsQ0FBQyxRQUFRLENBQUM7TUFDbEYsSUFBSWtGLElBQUksR0FBRzNKLDZDQUFDLENBQUMsZ0RBQWdELEdBQUc4RixNQUFNLEdBQUcsS0FBSyxDQUFDO01BRS9FLElBQUlBLE1BQU0sS0FBSyxTQUFTLEVBQUU7UUFDdEIsSUFBSWhCLGVBQWUsR0FBRyxFQUFFO1FBQ3hCLElBQUlxQyxpQkFBaUIsR0FBRyxFQUFFO1FBQzFCLElBQUlyRCxNQUFJLEdBQUcsRUFBRTtRQUViLElBQUlzRCxTQUFTLEdBQUcvRyxnREFBRyxDQUFDZ0gsT0FBTyxDQUFDQSxPQUFPLENBQUNELFNBQVM7UUFFN0MsSUFBSUEsU0FBUyxDQUFDRSxPQUFPLENBQUMzRCxJQUFJLENBQUMsRUFBRTtVQUN6QndELGlCQUFpQixHQUFHQyxTQUFTLENBQUNFLE9BQU8sQ0FBQzNELElBQUksQ0FBQyxDQUFDNEQsU0FBUztVQUNyRHpDLGVBQWUsR0FBR3NDLFNBQVMsQ0FBQ0UsT0FBTyxDQUFDM0QsSUFBSSxDQUFDLENBQUM2RCxPQUFPO1VBQ2pEMUQsTUFBSSxHQUFHc0QsU0FBUyxDQUFDRSxPQUFPLENBQUMzRCxJQUFJLENBQUMsQ0FBQ0csSUFBSTtRQUN2QyxDQUFDLE1BQU0sSUFBSXNELFNBQVMsQ0FBQ0ssTUFBTSxDQUFDOUQsSUFBSSxDQUFDLEVBQUU7VUFDL0J3RCxpQkFBaUIsR0FBR0MsU0FBUyxDQUFDSyxNQUFNLENBQUM5RCxJQUFJLENBQUMsQ0FBQzRELFNBQVM7VUFDcER6QyxlQUFlLEdBQUdzQyxTQUFTLENBQUNLLE1BQU0sQ0FBQzlELElBQUksQ0FBQyxDQUFDNkQsT0FBTztVQUNoRDFELE1BQUksR0FBR3NELFNBQVMsQ0FBQ0ssTUFBTSxDQUFDOUQsSUFBSSxDQUFDLENBQUNHLElBQUk7UUFDdEM7UUFFQTZGLElBQUksQ0FBQ2pDLE1BQU0sUUFBQUMsTUFBQSxDQUFRN0QsTUFBSSxHQUFHQSxNQUFJLEdBQUdILElBQUksUUFBQWdFLE1BQUEsQ0FBS3pILHFEQUFZLENBQUMwSCxZQUFZLENBQUNDLElBQUksZ0JBQUFGLE1BQUEsQ0FBYTdDLGVBQWUsZ0JBQUE2QyxNQUFBLENBQWF6SCxxREFBWSxDQUFDMEgsWUFBWSxDQUFDRSxFQUFFLGdCQUFBSCxNQUFBLENBQWFSLGlCQUFpQixtQkFBZ0IsQ0FBQztNQUNoTSxDQUFDLE1BQU07UUFDSHdDLElBQUksQ0FBQ2pDLE1BQU0sUUFBQUMsTUFBQSxDQUFRN0QsSUFBSSxHQUFHQSxJQUFJLEdBQUdILElBQUksVUFBTyxDQUFDO01BQ2pEO0lBQ0o7RUFBQztJQUFBbEQsR0FBQTtJQUFBQyxLQUFBLEVBMEVELFNBQU9xRyxpQkFBaUJBLENBQUNELEtBQUssRUFBRTtNQUM1QixJQUFJdkIsS0FBSyxHQUFHLEVBQUU7TUFDZCxJQUFJdkYsNkNBQUMsQ0FBQzhHLEtBQUssQ0FBQ3FDLE1BQU0sQ0FBQyxDQUFDUyxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBRTtRQUM3Q3JFLEtBQUssR0FBR3ZGLDZDQUFDLENBQUM4RyxLQUFLLENBQUNxQyxNQUFNLENBQUMsQ0FBQ2hCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztNQUN2RCxDQUFDLE1BQU07UUFDSDVDLEtBQUssR0FBR3ZGLDZDQUFDLENBQUM4RyxLQUFLLENBQUNxQyxNQUFNLENBQUMsQ0FBQ1UsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUMxQixJQUFJLENBQUMscUJBQXFCLENBQUM7TUFDdkY7TUFFQSxJQUFJLE9BQU81QyxLQUFLLEtBQUssV0FBVyxFQUFFO1FBQzlCLE9BQU8sSUFBSTtNQUNmO01BRUFBLEtBQUssR0FBR0EsS0FBSyxDQUFDdUUsS0FBSyxDQUFDLEdBQUcsQ0FBQztNQUN4QixPQUFPLE9BQU92RSxLQUFLLEtBQUssUUFBUSxHQUFHLENBQUNBLEtBQUssQ0FBQyxHQUFHQSxLQUFLO0lBQ3REO0VBQUM7QUFBQTtBQThKTCxpRUFBZSxJQUFJaEMsUUFBUSxDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3BhY2thZ2VzLmpzP2VhZWEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IGNvbmZpZywgdHJhbnNsYXRpb25zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5pbXBvcnQgeyBJbnN0YW5jZSBhcyBncG0gfSBmcm9tICcuLi91dGlscy9ncG0nO1xuXG5jbGFzcyBTb3J0ZXIge1xuICAgIGdldEVsZW1lbnRzKGVsZW1lbnRzLCBjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50cyA9IGVsZW1lbnRzIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWdwbS1wbHVnaW5dLCBbZGF0YS1ncG0tdGhlbWVdJyk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ncG0tcGx1Z2lucyA+IHRhYmxlID4gdGJvZHksIC5ncG0tdGhlbWVzID4gLnRoZW1lcy5jYXJkLXJvdycpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRzO1xuICAgIH1cblxuICAgIHN0YXRpYyBzb3J0KEEsIEIsIGRpcmVjdGlvbiA9ICdhc2MnKSB7XG4gICAgICAgIGlmIChBID4gQikgeyByZXR1cm4gKGRpcmVjdGlvbiA9PT0gJ2FzYycpID8gMSA6IC0xOyB9XG4gICAgICAgIGlmIChBIDwgQikgeyByZXR1cm4gKGRpcmVjdGlvbiA9PT0gJ2FzYycpID8gLTEgOiAxOyB9XG5cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgYnlDb21tb24oZGlyZWN0aW9uID0gJ2FzYycsIGRhdGEgPSAnJykge1xuICAgICAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZ2V0RWxlbWVudHMoKTtcbiAgICAgICAgdGhpcy5yZW1vdmVHdW1yb2FkKCk7XG5cbiAgICAgICAgQXJyYXkuZnJvbShlbGVtZW50cykuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgbGV0IEEgPSBhLmRhdGFzZXRbZGF0YV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgbGV0IEIgPSBiLmRhdGFzZXRbZGF0YV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgICAgICByZXR1cm4gU29ydGVyLnNvcnQoQSwgQiwgZGlyZWN0aW9uKTtcbiAgICAgICAgfSkuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuY29udGFpbmVyLmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFkZEd1bXJvYWQoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyO1xuICAgIH1cblxuICAgIGJ5TmFtZShkaXJlY3Rpb24gPSAnYXNjJywgZGF0YSA9ICdncG1OYW1lJykge1xuICAgICAgICByZXR1cm4gdGhpcy5ieUNvbW1vbihkaXJlY3Rpb24sIGRhdGEpO1xuICAgIH1cblxuICAgIGJ5QXV0aG9yKGRpcmVjdGlvbiA9ICdhc2MnLCBkYXRhID0gJ2dwbUF1dGhvcicpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnlDb21tb24oZGlyZWN0aW9uLCBkYXRhKTtcbiAgICB9XG5cbiAgICBieU9mZmljaWFsKGRpcmVjdGlvbiA9ICdhc2MnLCBkYXRhID0gJ2dwbU9mZmljaWFsJykge1xuICAgICAgcmV0dXJuIHRoaXMuYnlDb21tb24oZGlyZWN0aW9uLCBkYXRhKTtcbiAgICB9XG5cbiAgICBieVByZW1pdW0oZGlyZWN0aW9uID0gJ2FzYycsIGRhdGEgPSAnZ3BtUHJlbWl1bScpIHtcbiAgICAgIHJldHVybiB0aGlzLmJ5Q29tbW9uKGRpcmVjdGlvbiwgZGF0YSk7XG4gICAgfVxuXG4gICAgYnlSZWxlYXNlRGF0ZShkaXJlY3Rpb24gPSAnYXNjJywgZGF0YSA9ICdncG1SZWxlYXNlRGF0ZScpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLmdldEVsZW1lbnRzKCk7XG5cbiAgICAgICAgdGhpcy5yZW1vdmVHdW1yb2FkKCk7XG4gICAgICAgIEFycmF5LmZyb20oZWxlbWVudHMpLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIGxldCBBID0gbmV3IERhdGUoYS5kYXRhc2V0W2RhdGFdKS5nZXRUaW1lKCk7XG4gICAgICAgICAgICBsZXQgQiA9IG5ldyBEYXRlKGIuZGF0YXNldFtkYXRhXSkuZ2V0VGltZSgpO1xuXG4gICAgICAgICAgICByZXR1cm4gU29ydGVyLnNvcnQoQSwgQiwgZGlyZWN0aW9uID09PSAnYXNjJyA/ICdkZXNjJyA6ICdhc2MnKTtcbiAgICAgICAgfSkuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuY29udGFpbmVyLmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy5hZGRHdW1yb2FkKCk7XG4gICAgICByZXR1cm4gdGhpcy5jb250YWluZXI7XG4gICAgfVxuXG4gICAgYnlVcGRhdGFibGUoZGlyZWN0aW9uID0gJ2FzYycsIGRhdGEgPSAnZ3BtVXBkYXRhYmxlJykge1xuICAgICAgICByZXR1cm4gdGhpcy5ieUNvbW1vbihkaXJlY3Rpb24sIGRhdGEpO1xuICAgIH1cblxuICAgIGJ5RW5hYmxlZChkaXJlY3Rpb24gPSAnYXNjJywgZGF0YSA9ICdncG1FbmFibGVkJykge1xuICAgICAgICByZXR1cm4gdGhpcy5ieUNvbW1vbihkaXJlY3Rpb24sIGRhdGEpO1xuICAgIH1cblxuICAgIGJ5VGVzdGluZyhkaXJlY3Rpb24gPSAnYXNjJywgZGF0YSA9ICdncG1UZXN0aW5nJykge1xuICAgICAgICByZXR1cm4gdGhpcy5ieUNvbW1vbihkaXJlY3Rpb24sIGRhdGEpO1xuICAgIH1cblxuICAgIGFkZEd1bXJvYWQoKSB7XG4gICAgICBpZiAod2luZG93Lkd1bXJvYWRPdmVybGF5KSB7XG4gICAgICAgIHdpbmRvdy5HdW1yb2FkT3ZlcmxheS5zdGFydE5vZGVBZGRpdGlvbk9ic2VydmVyKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVtb3ZlR3Vtcm9hZCgpIHtcbiAgICAgIGlmICh3aW5kb3cuR3Vtcm9hZE92ZXJsYXkpIHtcbiAgICAgICAgd2luZG93Lkd1bXJvYWRPdmVybGF5Lm5vZGVBZGRpdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9XG59XG5cbmNsYXNzIFBhY2thZ2VzIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5Tb3J0ID0gbmV3IFNvcnRlcigpO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRCYWNrVG9MaXN0KHR5cGUpIHtcbiAgICAgICAgZ2xvYmFsLmxvY2F0aW9uLmhyZWYgPSBgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9LyR7dHlwZX1zYDtcbiAgICB9XG5cbiAgICBzdGF0aWMgYWRkRGVwZW5kZW5jeVRvTGlzdCh0eXBlLCBkZXBlbmRlbmN5LCBzbHVnID0gJycpIHtcbiAgICAgICAgaWYgKFsnYWRtaW4nLCAnZm9ybScsICdsb2dpbicsICdlbWFpbCcsICdncmF2J10uaW5kZXhPZihkZXBlbmRlbmN5KSAhPT0gLTEpIHsgcmV0dXJuOyB9XG4gICAgICAgIGxldCBjb250YWluZXIgPSAkKCcucGFja2FnZS1kZXBlbmRlbmNpZXMtY29udGFpbmVyJyk7XG4gICAgICAgIGxldCB0ZXh0ID0gYCR7ZGVwZW5kZW5jeX0gPGEgaHJlZj1cIiNcIiBjbGFzcz1cImJ1dHRvblwiIGRhdGEtZGVwZW5kZW5jeS1zbHVnPVwiJHtkZXBlbmRlbmN5fVwiIGRhdGEtJHt0eXBlfS1hY3Rpb249XCJyZW1vdmUtZGVwZW5kZW5jeS1wYWNrYWdlXCI+UmVtb3ZlPC9hPmA7XG5cbiAgICAgICAgaWYgKHNsdWcpIHtcbiAgICAgICAgICAgIHRleHQgKz0gYCAod2FzIG5lZWRlZCBieSAke3NsdWd9KWA7XG4gICAgICAgIH1cblxuICAgICAgICBjb250YWluZXIuYXBwZW5kKGA8bGk+JHt0ZXh0fTwvbGk+YCk7XG4gICAgfVxuXG4gICAgYWRkRGVwZW5kZW5jaWVzVG9MaXN0KGRlcGVuZGVuY2llcywgc2x1ZyA9ICcnKSB7XG4gICAgICAgIGRlcGVuZGVuY2llcy5mb3JFYWNoKChkZXBlbmRlbmN5KSA9PiB7XG4gICAgICAgICAgICBQYWNrYWdlcy5hZGREZXBlbmRlbmN5VG9MaXN0KCdwbHVnaW4nLCBkZXBlbmRlbmN5Lm5hbWUgfHwgZGVwZW5kZW5jeSwgc2x1Zyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRUYXNrVXJsKHR5cGUsIHRhc2spIHtcbiAgICAgICAgbGV0IHVybCA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX1gO1xuICAgICAgICB1cmwgKz0gYC8ke3R5cGV9cy5qc29uYDtcbiAgICAgICAgdXJsICs9IGAvdGFzayR7Y29uZmlnLnBhcmFtX3NlcH0ke3Rhc2t9YDtcbiAgICAgICAgcmV0dXJuIHVybDtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0UmVtb3ZlUGFja2FnZVVybCh0eXBlKSB7XG4gICAgICAgIHJldHVybiBgJHtQYWNrYWdlcy5nZXRUYXNrVXJsKHR5cGUsICdyZW1vdmVQYWNrYWdlJyl9YDtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0UmVpbnN0YWxsUGFja2FnZVVybCh0eXBlKSB7XG4gICAgICAgIHJldHVybiBgJHtQYWNrYWdlcy5nZXRUYXNrVXJsKHR5cGUsICdyZWluc3RhbGxQYWNrYWdlJyl9YDtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0R2V0UGFja2FnZXNEZXBlbmRlbmNpZXNVcmwodHlwZSkge1xuICAgICAgICByZXR1cm4gYCR7UGFja2FnZXMuZ2V0VGFza1VybCh0eXBlLCAnZ2V0UGFja2FnZXNEZXBlbmRlbmNpZXMnKX1gO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRJbnN0YWxsRGVwZW5kZW5jaWVzT2ZQYWNrYWdlc1VybCh0eXBlKSB7XG4gICAgICAgIHJldHVybiBgJHtQYWNrYWdlcy5nZXRUYXNrVXJsKHR5cGUsICdpbnN0YWxsRGVwZW5kZW5jaWVzT2ZQYWNrYWdlcycpfWA7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldEluc3RhbGxQYWNrYWdlVXJsKHR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGAke1BhY2thZ2VzLmdldFRhc2tVcmwodHlwZSwgJ2luc3RhbGxQYWNrYWdlJyl9YDtcbiAgICB9XG5cbiAgICByZW1vdmVQYWNrYWdlKHR5cGUsIHNsdWcpIHtcbiAgICAgICAgbGV0IHVybCA9IFBhY2thZ2VzLmdldFJlbW92ZVBhY2thZ2VVcmwodHlwZSk7XG5cbiAgICAgICAgcmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHBhY2thZ2U6IHNsdWdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICAgICAgICAkKCcucmVtb3ZlLXBhY2thZ2UtY29uZmlybScpLmFkZENsYXNzKCdoaWRkZW4nKTtcblxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5kZXBlbmRlbmNpZXMgJiYgcmVzcG9uc2UuZGVwZW5kZW5jaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGREZXBlbmRlbmNpZXNUb0xpc3QocmVzcG9uc2UuZGVwZW5kZW5jaWVzKTtcbiAgICAgICAgICAgICAgICAgICAgJCgnLnJlbW92ZS1wYWNrYWdlLWRlcGVuZGVuY2llcycpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKCcucmVtb3ZlLXBhY2thZ2UtZG9uZScpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBUaGUgcGFja2FnZSB3YXMgcmVtb3ZlZC4gV2hlbiB0aGUgbW9kYWwgY2xvc2VzLCBtb3ZlIHRvIHRoZSBwYWNrYWdlcyBsaXN0XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oJ2Nsb3NpbmcnLCAnW2RhdGEtcmVtb2RhbC1pZD1cInJlbW92ZS1wYWNrYWdlXCJdJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBQYWNrYWdlcy5nZXRCYWNrVG9MaXN0KHR5cGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKCcucmVtb3ZlLXBhY2thZ2UtY29uZmlybScpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAkKCcucmVtb3ZlLXBhY2thZ2UtZXJyb3InKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlaW5zdGFsbFBhY2thZ2UodHlwZSwgc2x1ZywgcGFja2FnZV9uYW1lLCBjdXJyZW50X3ZlcnNpb24pIHtcbiAgICAgICAgJCgnLmJ1dHRvbi1iYXIgYnV0dG9uJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAkKCcuYnV0dG9uLWJhciAuc3Bpbm5pbmctd2hlZWwnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG5cbiAgICAgICAgbGV0IHVybCA9IFBhY2thZ2VzLmdldFJlaW5zdGFsbFBhY2thZ2VVcmwodHlwZSk7XG5cbiAgICAgICAgcmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHNsdWc6IHNsdWcsXG4gICAgICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICAgICAgICBwYWNrYWdlX25hbWU6IHBhY2thZ2VfbmFtZSxcbiAgICAgICAgICAgICAgICBjdXJyZW50X3ZlcnNpb246IGN1cnJlbnRfdmVyc2lvblxuICAgICAgICAgICAgfVxuICAgICAgICB9LCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgICQoJy5yZWluc3RhbGwtcGFja2FnZS1jb25maXJtJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICQoJy5yZWluc3RhbGwtcGFja2FnZS1kb25lJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKCcucmVpbnN0YWxsLXBhY2thZ2UtY29uZmlybScpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAkKCcucmVpbnN0YWxsLXBhY2thZ2UtZXJyb3InKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlRGVwZW5kZW5jeSh0eXBlLCBzbHVnLCBidXR0b24pIHtcbiAgICAgICAgbGV0IHVybCA9IFBhY2thZ2VzLmdldFJlbW92ZVBhY2thZ2VVcmwodHlwZSk7XG5cbiAgICAgICAgcmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHBhY2thZ2U6IHNsdWdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICAgICAgICBidXR0b24ucmVtb3ZlQ2xhc3MoJ2J1dHRvbicpO1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5yZXBsYWNlV2l0aCgkKCc8c3Bhbj5SZW1vdmVkIHN1Y2Nlc3NmdWxseTwvc3Bhbj4nKSk7XG5cbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZGVwZW5kZW5jaWVzICYmIHJlc3BvbnNlLmRlcGVuZGVuY2llcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkRGVwZW5kZW5jaWVzVG9MaXN0KHJlc3BvbnNlLmRlcGVuZGVuY2llcywgc2x1Zyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgYWRkTmVlZGVkRGVwZW5kZW5jeVRvTGlzdChhY3Rpb24sIHNsdWcpIHtcbiAgICAgICAgJCgnLmluc3RhbGwtZGVwZW5kZW5jaWVzLXBhY2thZ2UtY29udGFpbmVyIC50eXBlLScgKyBhY3Rpb24pLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgbGV0IGxpc3QgPSAkKCcuaW5zdGFsbC1kZXBlbmRlbmNpZXMtcGFja2FnZS1jb250YWluZXIgLnR5cGUtJyArIGFjdGlvbiArICcgdWwnKTtcblxuICAgICAgICBpZiAoYWN0aW9uICE9PSAnaW5zdGFsbCcpIHtcbiAgICAgICAgICAgIGxldCBjdXJyZW50X3ZlcnNpb24gPSAnJztcbiAgICAgICAgICAgIGxldCBhdmFpbGFibGVfdmVyc2lvbiA9ICcnO1xuICAgICAgICAgICAgbGV0IG5hbWUgPSAnJztcblxuICAgICAgICAgICAgbGV0IHJlc291cmNlcyA9IGdwbS5wYXlsb2FkLnBheWxvYWQucmVzb3VyY2VzO1xuXG4gICAgICAgICAgICBpZiAocmVzb3VyY2VzLnBsdWdpbnNbc2x1Z10pIHtcbiAgICAgICAgICAgICAgICBhdmFpbGFibGVfdmVyc2lvbiA9IHJlc291cmNlcy5wbHVnaW5zW3NsdWddLmF2YWlsYWJsZTtcbiAgICAgICAgICAgICAgICBjdXJyZW50X3ZlcnNpb24gPSByZXNvdXJjZXMucGx1Z2luc1tzbHVnXS52ZXJzaW9uO1xuICAgICAgICAgICAgICAgIG5hbWUgPSByZXNvdXJjZXMucGx1Z2luc1tzbHVnXS5uYW1lO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNvdXJjZXMudGhlbWVzW3NsdWddKSB7XG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlX3ZlcnNpb24gPSByZXNvdXJjZXMudGhlbWVzW3NsdWddLmF2YWlsYWJsZTtcbiAgICAgICAgICAgICAgICBjdXJyZW50X3ZlcnNpb24gPSByZXNvdXJjZXMudGhlbWVzW3NsdWddLnZlcnNpb247XG4gICAgICAgICAgICAgICAgbmFtZSA9IHJlc291cmNlcy50aGVtZXNbc2x1Z10ubmFtZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGlzdC5hcHBlbmQoYDxsaT4ke25hbWUgPyBuYW1lIDogc2x1Z30sICR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5GUk9NfSB2PHN0cm9uZz4ke2N1cnJlbnRfdmVyc2lvbn08L3N0cm9uZz4gJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlRPfSB2PHN0cm9uZz4ke2F2YWlsYWJsZV92ZXJzaW9ufTwvc3Ryb25nPjwvbGk+YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsaXN0LmFwcGVuZChgPGxpPiR7bmFtZSA/IG5hbWUgOiBzbHVnfTwvbGk+YCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRQYWNrYWdlc0RlcGVuZGVuY2llcyh0eXBlLCBzbHVncywgZmluaXNoZWRMb2FkaW5nQ2FsbGJhY2spIHtcbiAgICAgICAgbGV0IHVybCA9IFBhY2thZ2VzLmdldEdldFBhY2thZ2VzRGVwZW5kZW5jaWVzVXJsKHR5cGUpO1xuXG4gICAgICAgIHJlcXVlc3QodXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICBwYWNrYWdlczogc2x1Z3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgKHJlc3BvbnNlKSA9PiB7XG5cbiAgICAgICAgICAgIGZpbmlzaGVkTG9hZGluZ0NhbGxiYWNrKCk7XG5cbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGhhc0RlcGVuZGVuY2llcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBkZXBlbmRlbmN5IGluIHJlc3BvbnNlLmRlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmRlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShkZXBlbmRlbmN5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXBlbmRlbmN5ID09PSAnZ3JhdicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0RlcGVuZGVuY2llcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0aW9uID0gcmVzcG9uc2UuZGVwZW5kZW5jaWVzW2RlcGVuZGVuY3ldO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZXMuYWRkTmVlZGVkRGVwZW5kZW5jeVRvTGlzdChhY3Rpb24sIGRlcGVuZGVuY3lOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChoYXNEZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbC1kZXBlbmRlbmNpZXMtcGFja2FnZS1jb250YWluZXInKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGwtcGFja2FnZS1jb250YWluZXInKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGwtcGFja2FnZS1jb250YWluZXInKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGwtcGFja2FnZS1lcnJvcicpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaW5zdGFsbERlcGVuZGVuY2llc09mUGFja2FnZXModHlwZSwgc2x1Z3MsIGNhbGxiYWNrU3VjY2VzcywgY2FsbGJhY2tFcnJvcikge1xuICAgICAgICBsZXQgdXJsID0gUGFja2FnZXMuZ2V0SW5zdGFsbERlcGVuZGVuY2llc09mUGFja2FnZXNVcmwodHlwZSk7XG5cbiAgICAgICAgcmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHBhY2thZ2VzOiBzbHVnc1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBjYWxsYmFja1N1Y2Nlc3MpO1xuICAgIH1cblxuICAgIGluc3RhbGxQYWNrYWdlcyh0eXBlLCBzbHVncywgY2FsbGJhY2tTdWNjZXNzKSB7XG4gICAgICAgIGxldCB1cmwgPSBQYWNrYWdlcy5nZXRJbnN0YWxsUGFja2FnZVVybCh0eXBlKTtcblxuICAgICAgICBnbG9iYWwuUHJvbWlzZS5hbGwoc2x1Z3MubWFwKChzbHVnKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IGdsb2JhbC5Qcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0KHVybCwge1xuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFja2FnZTogc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHR5cGVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KSkudGhlbihjYWxsYmFja1N1Y2Nlc3MpO1xuXG4gICAgfVxuXG4gICAgc3RhdGljIGdldFNsdWdzRnJvbUV2ZW50KGV2ZW50KSB7XG4gICAgICAgIGxldCBzbHVncyA9ICcnO1xuICAgICAgICBpZiAoJChldmVudC50YXJnZXQpLmlzKCdbZGF0YS1wYWNrYWdlcy1zbHVnc10nKSkge1xuICAgICAgICAgICAgc2x1Z3MgPSAkKGV2ZW50LnRhcmdldCkuYXR0cignZGF0YS1wYWNrYWdlcy1zbHVncycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2x1Z3MgPSAkKGV2ZW50LnRhcmdldCkucGFyZW50KCdbZGF0YS1wYWNrYWdlcy1zbHVnc10nKS5hdHRyKCdkYXRhLXBhY2thZ2VzLXNsdWdzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHNsdWdzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBzbHVncyA9IHNsdWdzLnNwbGl0KCcsJyk7XG4gICAgICAgIHJldHVybiB0eXBlb2Ygc2x1Z3MgPT09ICdzdHJpbmcnID8gW3NsdWdzXSA6IHNsdWdzO1xuICAgIH1cblxuICAgIGhhbmRsZUdldHRpbmdQYWNrYWdlRGVwZW5kZW5jaWVzKHR5cGUsIGV2ZW50LCBhY3Rpb24gPSAndXBkYXRlJykge1xuICAgICAgICBsZXQgc2x1Z3MgPSBQYWNrYWdlcy5nZXRTbHVnc0Zyb21FdmVudChldmVudCk7XG5cbiAgICAgICAgaWYgKCFzbHVncykge1xuICAgICAgICAgICAgYWxlcnQoJ05vIHNsdWcgc2V0Jyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDbGVhbnVwXG4gICAgICAgICQoJy5wYWNrYWdlcy1uYW1lcy1saXN0JykuaHRtbCgnJyk7XG4gICAgICAgICQoJy5pbnN0YWxsLWRlcGVuZGVuY2llcy1wYWNrYWdlLWNvbnRhaW5lciBsaScpLnJlbW92ZSgpO1xuXG4gICAgICAgIHNsdWdzLmZvckVhY2goKHNsdWcpID0+IHtcbiAgICAgICAgICAgIGlmIChhY3Rpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRfdmVyc2lvbiA9ICcnO1xuICAgICAgICAgICAgICAgIGxldCBhdmFpbGFibGVfdmVyc2lvbiA9ICcnO1xuICAgICAgICAgICAgICAgIGxldCBuYW1lID0gJyc7XG5cbiAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2VzID0gZ3BtLnBheWxvYWQucGF5bG9hZC5yZXNvdXJjZXM7XG5cbiAgICAgICAgICAgICAgICBpZiAocmVzb3VyY2VzLnBsdWdpbnNbc2x1Z10pIHtcbiAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlX3ZlcnNpb24gPSByZXNvdXJjZXMucGx1Z2luc1tzbHVnXS5hdmFpbGFibGU7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfdmVyc2lvbiA9IHJlc291cmNlcy5wbHVnaW5zW3NsdWddLnZlcnNpb247XG4gICAgICAgICAgICAgICAgICAgIG5hbWUgPSByZXNvdXJjZXMucGx1Z2luc1tzbHVnXS5uYW1lO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzb3VyY2VzLnRoZW1lc1tzbHVnXSkge1xuICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGVfdmVyc2lvbiA9IHJlc291cmNlcy50aGVtZXNbc2x1Z10uYXZhaWxhYmxlO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50X3ZlcnNpb24gPSByZXNvdXJjZXMudGhlbWVzW3NsdWddLnZlcnNpb247XG4gICAgICAgICAgICAgICAgICAgIG5hbWUgPSByZXNvdXJjZXMudGhlbWVzW3NsdWddLm5hbWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJCgnLnBhY2thZ2VzLW5hbWVzLWxpc3QnKS5hcHBlbmQoYDxsaT4ke25hbWUgPyBuYW1lIDogc2x1Z30sICR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5GUk9NfSB2PHN0cm9uZz4ke2N1cnJlbnRfdmVyc2lvbn08L3N0cm9uZz4gJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlRPfSB2PHN0cm9uZz4ke2F2YWlsYWJsZV92ZXJzaW9ufTwvc3Ryb25nPjwvbGk+YCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICQoJy5wYWNrYWdlcy1uYW1lcy1saXN0JykuYXBwZW5kKGA8bGk+JHtuYW1lID8gbmFtZSA6IHNsdWd9PC9saT5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgLy8gZml4IG1pc21hdGNoaW5nIHR5cGVzIHdoZW4gc2hhcmluZyBpbnN0YWxsIG1vZGFsIGJldHdlZW4gcGx1Z2lucy90aGVtZXNcbiAgICAgICAgY29uc3QgcXVlcnkgPSAnW2RhdGEtcGFja2FnZXMtbW9kYWxdIFtkYXRhLXRoZW1lLWFjdGlvbl0sIFtkYXRhLXBhY2thZ2VzLW1vZGFsXSBbZGF0YS1wbHVnaW4tYWN0aW9uXSc7XG4gICAgICAgIGNvbnN0IGRhdGEgPSAkKHF1ZXJ5KS5kYXRhKCd0aGVtZUFjdGlvbicpIHx8ICQocXVlcnkpLmRhdGEoJ3BsdWdpbkFjdGlvbicpO1xuICAgICAgICAkKHF1ZXJ5KS5yZW1vdmVBdHRyKCdkYXRhLXRoZW1lLWFjdGlvbicpLnJlbW92ZUF0dHIoJ2RhdGEtcGx1Z2luLWFjdGlvbicpLmF0dHIoYGRhdGEtJHt0eXBlfS1hY3Rpb25gLCBkYXRhKTtcblxuICAgICAgICAvLyBSZXN0b3JlIG9yaWdpbmFsIHN0YXRlXG4gICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAubG9hZGluZycpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsLWRlcGVuZGVuY2llcy1wYWNrYWdlLWNvbnRhaW5lcicpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsLXBhY2thZ2UtY29udGFpbmVyJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGxpbmctZGVwZW5kZW5jaWVzJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGxpbmctcGFja2FnZScpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsYXRpb24tY29tcGxldGUnKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbC1wYWNrYWdlLWVycm9yJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuXG4gICAgICAgIHRoaXMuZ2V0UGFja2FnZXNEZXBlbmRlbmNpZXModHlwZSwgc2x1Z3MsICgpID0+IHtcbiAgICAgICAgICAgIGxldCBzbHVnc19zdHJpbmcgPSBzbHVncy5qb2luKCk7XG4gICAgICAgICAgICAkKGBbZGF0YS1wYWNrYWdlcy1tb2RhbF0gW2RhdGEtJHt0eXBlfS1hY3Rpb249XCJpbnN0YWxsLWRlcGVuZGVuY2llcy1hbmQtcGFja2FnZVwiXWApLmF0dHIoJ2RhdGEtcGFja2FnZXMtc2x1Z3MnLCBzbHVnc19zdHJpbmcpO1xuICAgICAgICAgICAgJChgW2RhdGEtcGFja2FnZXMtbW9kYWxdIFtkYXRhLSR7dHlwZX0tYWN0aW9uPVwiaW5zdGFsbC1wYWNrYWdlXCJdYCkuYXR0cignZGF0YS1wYWNrYWdlcy1zbHVncycsIHNsdWdzX3N0cmluZyk7XG4gICAgICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmxvYWRpbmcnKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhbmRsZUluc3RhbGxpbmdEZXBlbmRlbmNpZXNBbmRQYWNrYWdlKHR5cGUsIGV2ZW50KSB7XG4gICAgICAgIGxldCBzbHVncyA9IFBhY2thZ2VzLmdldFNsdWdzRnJvbUV2ZW50KGV2ZW50KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsLWRlcGVuZGVuY2llcy1wYWNrYWdlLWNvbnRhaW5lcicpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsLXBhY2thZ2UtY29udGFpbmVyJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGxpbmctZGVwZW5kZW5jaWVzJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuXG4gICAgICAgIHRoaXMuaW5zdGFsbERlcGVuZGVuY2llc09mUGFja2FnZXModHlwZSwgc2x1Z3MsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsaW5nLWRlcGVuZGVuY2llcycpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbGluZy1wYWNrYWdlJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAgICAgdGhpcy5pbnN0YWxsUGFja2FnZXModHlwZSwgc2x1Z3MsICgpID0+IHtcbiAgICAgICAgICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGxpbmctcGFja2FnZScpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGxhdGlvbi1jb21wbGV0ZScpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcblxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlbW9kYWwgPSAkLnJlbW9kYWwubG9va3VwWyQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXScpLmRhdGEoJ3JlbW9kYWwnKV07XG4gICAgICAgICAgICAgICAgICAgIHJlbW9kYWwuY2xvc2UoKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzbHVncy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC5sb2NhdGlvbi5ocmVmID0gYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS8ke3R5cGV9cy8ke3NsdWdzWzBdfWA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwubG9jYXRpb24uaHJlZiA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vJHt0eXBlfXNgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgMTAwMCk7XG5cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYW5kbGVJbnN0YWxsaW5nUGFja2FnZSh0eXBlLCBldmVudCkge1xuICAgICAgICBsZXQgc2x1Z3MgPSBQYWNrYWdlcy5nZXRTbHVnc0Zyb21FdmVudChldmVudCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbC1wYWNrYWdlLWNvbnRhaW5lcicpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsaW5nLXBhY2thZ2UnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG5cbiAgICAgICAgdGhpcy5pbnN0YWxsUGFja2FnZXModHlwZSwgc2x1Z3MsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsaW5nLXBhY2thZ2UnKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGxhdGlvbi1jb21wbGV0ZScpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcblxuICAgICAgICAgICAgY29uc3QgZXJyb3JzID0gQXJyYXkuZnJvbShyZXNwb25zZSkuZmlsdGVyKChyKSA9PiByLnN0YXR1cyA9PT0gJ2Vycm9yJyk7XG5cbiAgICAgICAgICAgIGlmIChlcnJvcnMgJiYgZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGxldCByZW1vZGFsID0gJC5yZW1vZGFsLmxvb2t1cFskKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0ucmVtb2RhbC1pcy1vcGVuZWQnKS5kYXRhKCdyZW1vZGFsJyldO1xuICAgICAgICAgICAgICAgIHJlbW9kYWwuY2xvc2UoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNsdWdzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGdsb2JhbC5sb2NhdGlvbi5ocmVmID0gYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS8ke3R5cGV9cy8ke3NsdWdzWzBdfWA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGdsb2JhbC5sb2NhdGlvbi5ocmVmID0gYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS8ke3R5cGV9c2A7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhbmRsZVJlbW92aW5nUGFja2FnZSh0eXBlLCBldmVudCkge1xuICAgICAgICBsZXQgc2x1ZyA9ICQoZXZlbnQudGFyZ2V0KS5hdHRyKCdkYXRhLXBhY2thZ2VzLXNsdWdzJyk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMucmVtb3ZlUGFja2FnZSh0eXBlLCBzbHVnKTtcbiAgICB9XG5cbiAgICBoYW5kbGVSZWluc3RhbGxQYWNrYWdlKHR5cGUsIGV2ZW50KSB7XG4gICAgICAgIGxldCB0YXJnZXQgPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGxldCBzbHVnID0gdGFyZ2V0LmF0dHIoJ2RhdGEtcGFja2FnZS1zbHVnJyk7XG4gICAgICAgIGxldCBwYWNrYWdlX25hbWUgPSB0YXJnZXQuYXR0cignZGF0YS1wYWNrYWdlLW5hbWUnKTtcbiAgICAgICAgbGV0IGN1cnJlbnRfdmVyc2lvbiA9IHRhcmdldC5hdHRyKCdkYXRhLXBhY2thZ2UtY3VycmVudC12ZXJzaW9uJyk7XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5yZWluc3RhbGxQYWNrYWdlKHR5cGUsIHNsdWcsIHBhY2thZ2VfbmFtZSwgY3VycmVudF92ZXJzaW9uKTtcbiAgICB9XG5cbiAgICBoYW5kbGVSZW1vdmluZ0RlcGVuZGVuY3kodHlwZSwgZXZlbnQpIHtcbiAgICAgICAgbGV0IHNsdWcgPSAkKGV2ZW50LnRhcmdldCkuYXR0cignZGF0YS1kZXBlbmRlbmN5LXNsdWcnKTtcbiAgICAgICAgbGV0IGJ1dHRvbiA9ICQoZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5yZW1vdmVEZXBlbmRlbmN5KHR5cGUsIHNsdWcsIGJ1dHRvbik7XG4gICAgfVxuXG59XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBQYWNrYWdlcygpO1xuIl0sIm5hbWVzIjpbIiQiLCJjb25maWciLCJ0cmFuc2xhdGlvbnMiLCJyZXF1ZXN0IiwiSW5zdGFuY2UiLCJncG0iLCJTb3J0ZXIiLCJfY2xhc3NDYWxsQ2hlY2siLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJ2YWx1ZSIsImdldEVsZW1lbnRzIiwiZWxlbWVudHMiLCJjb250YWluZXIiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJxdWVyeVNlbGVjdG9yIiwiYnlDb21tb24iLCJfdGhpcyIsImRpcmVjdGlvbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImRhdGEiLCJyZW1vdmVHdW1yb2FkIiwiQXJyYXkiLCJmcm9tIiwic29ydCIsImEiLCJiIiwiQSIsImRhdGFzZXQiLCJ0b1N0cmluZyIsInRvTG93ZXJDYXNlIiwiQiIsImZvckVhY2giLCJlbGVtZW50IiwiYXBwZW5kQ2hpbGQiLCJhZGRHdW1yb2FkIiwiYnlOYW1lIiwiYnlBdXRob3IiLCJieU9mZmljaWFsIiwiYnlQcmVtaXVtIiwiYnlSZWxlYXNlRGF0ZSIsIl90aGlzMiIsIkRhdGUiLCJnZXRUaW1lIiwiYnlVcGRhdGFibGUiLCJieUVuYWJsZWQiLCJieVRlc3RpbmciLCJ3aW5kb3ciLCJHdW1yb2FkT3ZlcmxheSIsInN0YXJ0Tm9kZUFkZGl0aW9uT2JzZXJ2ZXIiLCJub2RlQWRkaXRpb25PYnNlcnZlciIsImRpc2Nvbm5lY3QiLCJQYWNrYWdlcyIsIlNvcnQiLCJhZGREZXBlbmRlbmNpZXNUb0xpc3QiLCJkZXBlbmRlbmNpZXMiLCJzbHVnIiwiZGVwZW5kZW5jeSIsImFkZERlcGVuZGVuY3lUb0xpc3QiLCJuYW1lIiwicmVtb3ZlUGFja2FnZSIsInR5cGUiLCJfdGhpczMiLCJ1cmwiLCJnZXRSZW1vdmVQYWNrYWdlVXJsIiwibWV0aG9kIiwiYm9keSIsInJlc3BvbnNlIiwic3RhdHVzIiwiYWRkQ2xhc3MiLCJyZW1vdmVDbGFzcyIsIm9uIiwiZ2V0QmFja1RvTGlzdCIsInJlaW5zdGFsbFBhY2thZ2UiLCJwYWNrYWdlX25hbWUiLCJjdXJyZW50X3ZlcnNpb24iLCJnZXRSZWluc3RhbGxQYWNrYWdlVXJsIiwibG9jYXRpb24iLCJyZWxvYWQiLCJyZW1vdmVEZXBlbmRlbmN5IiwiYnV0dG9uIiwiX3RoaXM0IiwicmVwbGFjZVdpdGgiLCJnZXRQYWNrYWdlc0RlcGVuZGVuY2llcyIsInNsdWdzIiwiZmluaXNoZWRMb2FkaW5nQ2FsbGJhY2siLCJnZXRHZXRQYWNrYWdlc0RlcGVuZGVuY2llc1VybCIsInBhY2thZ2VzIiwiaGFzRGVwZW5kZW5jaWVzIiwiaGFzT3duUHJvcGVydHkiLCJkZXBlbmRlbmN5TmFtZSIsImFjdGlvbiIsImFkZE5lZWRlZERlcGVuZGVuY3lUb0xpc3QiLCJpbnN0YWxsRGVwZW5kZW5jaWVzT2ZQYWNrYWdlcyIsImNhbGxiYWNrU3VjY2VzcyIsImNhbGxiYWNrRXJyb3IiLCJnZXRJbnN0YWxsRGVwZW5kZW5jaWVzT2ZQYWNrYWdlc1VybCIsImluc3RhbGxQYWNrYWdlcyIsImdldEluc3RhbGxQYWNrYWdlVXJsIiwiZ2xvYmFsIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsInJlc29sdmUiLCJyZWplY3QiLCJ0aGVuIiwiaGFuZGxlR2V0dGluZ1BhY2thZ2VEZXBlbmRlbmNpZXMiLCJldmVudCIsImdldFNsdWdzRnJvbUV2ZW50IiwiYWxlcnQiLCJodG1sIiwicmVtb3ZlIiwiYXZhaWxhYmxlX3ZlcnNpb24iLCJyZXNvdXJjZXMiLCJwYXlsb2FkIiwicGx1Z2lucyIsImF2YWlsYWJsZSIsInZlcnNpb24iLCJ0aGVtZXMiLCJhcHBlbmQiLCJjb25jYXQiLCJQTFVHSU5fQURNSU4iLCJGUk9NIiwiVE8iLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInF1ZXJ5IiwicmVtb3ZlQXR0ciIsImF0dHIiLCJzbHVnc19zdHJpbmciLCJqb2luIiwiaGFuZGxlSW5zdGFsbGluZ0RlcGVuZGVuY2llc0FuZFBhY2thZ2UiLCJfdGhpczUiLCJyZW1vZGFsIiwibG9va3VwIiwiY2xvc2UiLCJzZXRUaW1lb3V0IiwiaHJlZiIsImJhc2VfdXJsX3JlbGF0aXZlIiwiaGFuZGxlSW5zdGFsbGluZ1BhY2thZ2UiLCJlcnJvcnMiLCJmaWx0ZXIiLCJyIiwiaGFuZGxlUmVtb3ZpbmdQYWNrYWdlIiwidGFyZ2V0IiwiaGFuZGxlUmVpbnN0YWxsUGFja2FnZSIsImhhbmRsZVJlbW92aW5nRGVwZW5kZW5jeSIsImluZGV4T2YiLCJ0ZXh0IiwiZ2V0VGFza1VybCIsInRhc2siLCJwYXJhbV9zZXAiLCJsaXN0IiwiaXMiLCJwYXJlbnQiLCJzcGxpdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/packages.js\n\n}");
/***/ }),
/***/ "./app/utils/remodal.js":
/*!******************************!*\
!*** ./app/utils/remodal.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* Remodal from https://github.com/vodkabears/Remodal\n * With Stackable option from https://github.com/antstorm/Remodal patch\n */\n\n\n!function (root, factory) {\n return factory(root, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n}(undefined, function (global, $) {\n 'use strict';\n\n /**\n * Name of the plugin\n * @private\n * @const\n * @type {String}\n */\n var PLUGIN_NAME = 'remodal';\n\n /**\n * Namespace for CSS and events\n * @private\n * @const\n * @type {String}\n */\n var NAMESPACE = window.REMODAL_GLOBALS && window.REMODAL_GLOBALS.NAMESPACE || PLUGIN_NAME;\n\n /**\n * Animationstart event with vendor prefixes\n * @private\n * @const\n * @type {String}\n */\n var ANIMATIONSTART_EVENTS = $.map(['animationstart', 'webkitAnimationStart', 'MSAnimationStart', 'oAnimationStart'], function (eventName) {\n return eventName + '.' + NAMESPACE;\n }).join(' ');\n\n /**\n * Animationend event with vendor prefixes\n * @private\n * @const\n * @type {String}\n */\n var ANIMATIONEND_EVENTS = $.map(['animationend', 'webkitAnimationEnd', 'MSAnimationEnd', 'oAnimationEnd'], function (eventName) {\n return eventName + '.' + NAMESPACE;\n }).join(' ');\n\n /**\n * Default settings\n * @private\n * @const\n * @type {Object}\n */\n var DEFAULTS = $.extend({\n hashTracking: true,\n closeOnConfirm: true,\n closeOnCancel: true,\n closeOnEscape: true,\n closeOnOutsideClick: true,\n modifier: '',\n stack: false,\n appendTo: null\n }, window.REMODAL_GLOBALS && window.REMODAL_GLOBALS.DEFAULTS);\n\n /**\n * States of the Remodal\n * @private\n * @const\n * @enum {String}\n */\n var STATES = {\n CLOSING: 'closing',\n CLOSED: 'closed',\n OPENING: 'opening',\n OPENED: 'opened'\n };\n\n /**\n * Reasons of the state change.\n * @private\n * @const\n * @enum {String}\n */\n var STATE_CHANGE_REASONS = {\n CONFIRMATION: 'confirmation',\n CANCELLATION: 'cancellation'\n };\n\n /**\n * Is animation supported?\n * @private\n * @const\n * @type {Boolean}\n */\n var IS_ANIMATION = function () {\n var style = document.createElement('div').style;\n return style.animationName !== undefined || style.WebkitAnimationName !== undefined || style.MozAnimationName !== undefined || style.msAnimationName !== undefined || style.OAnimationName !== undefined;\n }();\n\n /**\n * Is iOS?\n * @private\n * @const\n * @type {Boolean}\n */\n var IS_IOS = /iPad|iPhone|iPod/.test(navigator.platform);\n\n /**\n * Current modal\n * @private\n * @type {Remodal}\n */\n var openModals = [];\n\n /**\n * Scrollbar position\n * @private\n * @type {Number}\n */\n var scrollTop;\n\n /**\n * Returns an animation duration\n * @private\n * @param {jQuery} $elem\n * @returns {Number}\n */\n function getAnimationDuration($elem) {\n if (IS_ANIMATION && $elem.css('animation-name') === 'none' && $elem.css('-webkit-animation-name') === 'none' && $elem.css('-moz-animation-name') === 'none' && $elem.css('-o-animation-name') === 'none' && $elem.css('-ms-animation-name') === 'none') {\n return 0;\n }\n var duration = $elem.css('animation-duration') || $elem.css('-webkit-animation-duration') || $elem.css('-moz-animation-duration') || $elem.css('-o-animation-duration') || $elem.css('-ms-animation-duration') || '0s';\n var delay = $elem.css('animation-delay') || $elem.css('-webkit-animation-delay') || $elem.css('-moz-animation-delay') || $elem.css('-o-animation-delay') || $elem.css('-ms-animation-delay') || '0s';\n var iterationCount = $elem.css('animation-iteration-count') || $elem.css('-webkit-animation-iteration-count') || $elem.css('-moz-animation-iteration-count') || $elem.css('-o-animation-iteration-count') || $elem.css('-ms-animation-iteration-count') || '1';\n var max;\n var len;\n var num;\n var i;\n duration = duration.split(', ');\n delay = delay.split(', ');\n iterationCount = iterationCount.split(', ');\n\n // The 'duration' size is the same as the 'delay' size\n for (i = 0, len = duration.length, max = Number.NEGATIVE_INFINITY; i < len; i++) {\n num = parseFloat(duration[i]) * parseInt(iterationCount[i], 10) + parseFloat(delay[i]);\n if (num > max) {\n max = num;\n }\n }\n return max;\n }\n\n /**\n * Returns a scrollbar width\n * @private\n * @returns {Number}\n */\n function getScrollbarWidth() {\n if ($(document).height() <= $(window).height()) {\n return 0;\n }\n var outer = document.createElement('div');\n var inner = document.createElement('div');\n var widthNoScroll;\n var widthWithScroll;\n outer.style.visibility = 'hidden';\n outer.style.width = '100px';\n document.body.appendChild(outer);\n widthNoScroll = outer.offsetWidth;\n\n // Force scrollbars\n outer.style.overflow = 'scroll';\n\n // Add inner div\n inner.style.width = '100%';\n outer.appendChild(inner);\n widthWithScroll = inner.offsetWidth;\n\n // Remove divs\n outer.parentNode.removeChild(outer);\n return widthNoScroll - widthWithScroll;\n }\n\n /**\n * Locks the screen\n * @private\n */\n function lockScreen() {\n if (IS_IOS) {\n return;\n }\n var $html = $('html');\n var lockedClass = namespacify('is-locked');\n var paddingRight;\n var $body;\n if (!$html.hasClass(lockedClass)) {\n $body = $(document.body);\n\n // Zepto does not support '-=', '+=' in the `css` method\n paddingRight = parseInt($body.css('padding-right'), 10) + getScrollbarWidth();\n $body.css('padding-right', paddingRight + 'px');\n $html.addClass(lockedClass);\n }\n }\n\n /**\n * Unlocks the screen\n * @private\n */\n function unlockScreen() {\n if (IS_IOS) {\n return;\n }\n var $html = $('html');\n var lockedClass = namespacify('is-locked');\n var paddingRight;\n var $body;\n if ($html.hasClass(lockedClass)) {\n $body = $(document.body);\n\n // Zepto does not support '-=', '+=' in the `css` method\n paddingRight = parseInt($body.css('padding-right'), 10) - getScrollbarWidth();\n $body.css('padding-right', paddingRight + 'px');\n $html.removeClass(lockedClass);\n }\n }\n\n /**\n * Sets a state for an instance\n * @private\n * @param {Remodal} instance\n * @param {STATES} state\n * @param {Boolean} isSilent If true, Remodal does not trigger events\n * @param {String} Reason of a state change.\n */\n function setState(instance, state, isSilent, reason) {\n var newState = namespacify('is', state);\n var allStates = [namespacify('is', STATES.CLOSING), namespacify('is', STATES.OPENING), namespacify('is', STATES.CLOSED), namespacify('is', STATES.OPENED)].join(' ');\n instance.$bg.removeClass(allStates).addClass(newState);\n instance.$overlay.removeClass(allStates).addClass(newState);\n instance.$wrapper.removeClass(allStates).addClass(newState);\n instance.$modal.removeClass(allStates).addClass(newState);\n instance.state = state;\n !isSilent && instance.$modal.trigger({\n type: state,\n reason: reason\n }, [{\n reason: reason\n }]);\n }\n\n /**\n * Synchronizes with the animation\n * @param {Function} doBeforeAnimation\n * @param {Function} doAfterAnimation\n * @param {Remodal} instance\n */\n function syncWithAnimation(doBeforeAnimation, doAfterAnimation, instance) {\n var runningAnimationsCount = 0;\n var handleAnimationStart = function handleAnimationStart(e) {\n if (e.target !== this) {\n return;\n }\n runningAnimationsCount++;\n };\n var handleAnimationEnd = function handleAnimationEnd(e) {\n if (e.target !== this) {\n return;\n }\n if (--runningAnimationsCount === 0) {\n // Remove event listeners\n $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) {\n instance[elemName].off(ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS);\n });\n doAfterAnimation();\n }\n };\n $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) {\n instance[elemName].on(ANIMATIONSTART_EVENTS, handleAnimationStart).on(ANIMATIONEND_EVENTS, handleAnimationEnd);\n });\n doBeforeAnimation();\n\n // If the animation is not supported by a browser or its duration is 0\n if (getAnimationDuration(instance.$bg) === 0 && getAnimationDuration(instance.$overlay) === 0 && getAnimationDuration(instance.$wrapper) === 0 && getAnimationDuration(instance.$modal) === 0) {\n // Remove event listeners\n $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) {\n instance[elemName].off(ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS);\n });\n doAfterAnimation();\n }\n }\n\n /**\n * Closes immediately\n * @private\n * @param {Remodal} instance\n */\n function halt(instance) {\n if (instance.state === STATES.CLOSED) {\n return;\n }\n $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) {\n instance[elemName].off(ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS);\n });\n removeModal(instance);\n instance.$bg.removeClass(instance.settings.modifier);\n instance.$overlay.removeClass(instance.settings.modifier).hide();\n instance.$wrapper.hide();\n if (openModals.length === 0) {\n unlockScreen();\n }\n setState(instance, STATES.CLOSED, true);\n }\n\n /**\n * Parses a string with options\n * @private\n * @param str\n * @returns {Object}\n */\n function parseOptions(str) {\n var obj = {};\n var arr;\n var len;\n var val;\n var i;\n\n // Remove spaces before and after delimiters\n str = str.replace(/\\s*:\\s*/g, ':').replace(/\\s*,\\s*/g, ',');\n\n // Parse a string\n arr = str.split(',');\n for (i = 0, len = arr.length; i < len; i++) {\n arr[i] = arr[i].split(':');\n val = arr[i][1];\n\n // Convert a string value if it is like a boolean\n if (typeof val === 'string' || val instanceof String) {\n val = val === 'true' || (val === 'false' ? false : val);\n }\n\n // Convert a string value if it is like a number\n if (typeof val === 'string' || val instanceof String) {\n val = !isNaN(val) ? +val : val;\n }\n obj[arr[i][0]] = val;\n }\n return obj;\n }\n\n /**\n * Generates a string separated by dashes and prefixed with NAMESPACE\n * @private\n * @param {...String}\n * @returns {String}\n */\n function namespacify() {\n var result = NAMESPACE;\n for (var i = 0; i < arguments.length; ++i) {\n result += '-' + arguments[i];\n }\n return result;\n }\n\n /**\n * Handles the hashchange event\n * @private\n * @listens hashchange\n */\n function handleHashChangeEvent() {\n var id = location.hash.replace('#', '');\n var instance;\n var $elem;\n var current = currentModal();\n if (!id) {\n // Check if we have currently opened modal and animation was completed\n if (current && current.state === STATES.OPENED && current.settings.hashTracking) {\n current.close();\n }\n } else {\n if (!current || current.id !== id) {\n // Catch syntax error if your hash is bad\n try {\n $elem = $('[data-' + PLUGIN_NAME + '-id=\"' + id + '\"]');\n } catch (err) {}\n if ($elem && $elem.length) {\n instance = $[PLUGIN_NAME].lookup[$elem.data(PLUGIN_NAME)];\n if (instance && instance.settings.hashTracking) {\n instance.open();\n }\n }\n }\n }\n }\n function currentModal() {\n return openModals[openModals.length - 1];\n }\n function removeModal(remodal) {\n var index = openModals.indexOf(remodal);\n if (index >= 0) {\n openModals.slice(index, 1);\n }\n }\n\n /**\n * Remodal constructor\n * @constructor\n * @param {jQuery} $modal\n * @param {Object} options\n */\n function Remodal($modal, options) {\n var $body = $(document.body);\n var $appendTo = $body;\n var remodal = this;\n remodal.id = $modal.attr('data-' + PLUGIN_NAME + '-id');\n remodal.settings = $.extend({}, DEFAULTS, options);\n remodal.index = $[PLUGIN_NAME].lookup.push(remodal) - 1;\n remodal.state = STATES.CLOSED;\n\n // remodal.$overlay = $('.' + namespacify('overlay'));\n\n if (remodal.settings.appendTo !== null && remodal.settings.appendTo.length) {\n $appendTo = $(remodal.settings.appendTo);\n }\n if (!remodal.$overlay) {\n remodal.$overlay = $('').addClass(namespacify('overlay') + ' ' + namespacify('is', STATES.CLOSED)).hide();\n $appendTo.append(remodal.$overlay);\n }\n remodal.$bg = $('.' + namespacify('bg')).addClass(namespacify('is', STATES.CLOSED));\n remodal.$modal = $modal.addClass(NAMESPACE + ' ' + namespacify('is-initialized') + ' ' + remodal.settings.modifier + ' ' + namespacify('is', STATES.CLOSED)).attr('tabindex', '-1');\n remodal.$wrapper = $('
').addClass(namespacify('wrapper') + ' ' + remodal.settings.modifier + ' ' + namespacify('is', STATES.CLOSED)).hide().append(remodal.$modal);\n $appendTo.append(remodal.$wrapper);\n\n // Add the event listener for the close button\n remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action=\"close\"]', function (e) {\n e.preventDefault();\n remodal.close();\n });\n\n // Add the event listener for the cancel button\n remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action=\"cancel\"]', function (e) {\n e.preventDefault();\n remodal.$modal.trigger(STATE_CHANGE_REASONS.CANCELLATION);\n if (remodal.settings.closeOnCancel) {\n remodal.close(STATE_CHANGE_REASONS.CANCELLATION);\n }\n });\n\n // Add the event listener for the confirm button\n remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action=\"confirm\"]', function (e) {\n e.preventDefault();\n remodal.$modal.trigger(STATE_CHANGE_REASONS.CONFIRMATION);\n if (remodal.settings.closeOnConfirm) {\n remodal.close(STATE_CHANGE_REASONS.CONFIRMATION);\n }\n });\n\n // Add the event listener for the overlay\n remodal.$wrapper.on('click.' + NAMESPACE, function (e) {\n var $target = $(e.target);\n var isWrapper = $target.hasClass(namespacify('wrapper'));\n var isWithin = $target.closest('.' + namespacify('is', STATES.OPENED)).length;\n if (!isWrapper && isWithin) {\n return;\n }\n if (remodal.settings.closeOnOutsideClick) {\n remodal.close();\n }\n });\n }\n\n /**\n * Opens a modal window\n * @public\n */\n Remodal.prototype.open = function () {\n var remodal = this;\n var current;\n var modalCount;\n\n // Check if the animation was completed\n if (remodal.state === STATES.OPENING || remodal.state === STATES.CLOSING) {\n return;\n }\n\n // id = remodal.$modal.attr('data-' + PLUGIN_NAME + '-id');\n\n if (remodal.id && remodal.settings.hashTracking) {\n scrollTop = $(window).scrollTop();\n location.hash = remodal.id;\n }\n if (!remodal.settings.stack) {\n current = currentModal();\n if (current && current !== remodal) {\n halt(current);\n }\n }\n modalCount = openModals.push(remodal);\n remodal.$overlay.css('z-index', function (_, value) {\n return parseInt(value, 10) + modalCount;\n });\n remodal.$wrapper.css('z-index', function (_, value) {\n return parseInt(value, 10) + modalCount;\n });\n lockScreen();\n remodal.$bg.addClass(remodal.settings.modifier);\n remodal.$overlay.addClass(remodal.settings.modifier).show();\n remodal.$wrapper.show().scrollTop(0);\n remodal.$modal.focus();\n syncWithAnimation(function () {\n setState(remodal, STATES.OPENING);\n }, function () {\n setState(remodal, STATES.OPENED);\n }, remodal);\n };\n\n /**\n * Closes a modal window\n * @public\n * @param {String} reason\n */\n Remodal.prototype.close = function (reason) {\n var remodal = this;\n var current;\n\n // Check if the animation was completed\n if (remodal.state === STATES.OPENING || remodal.state === STATES.CLOSING || remodal.state === STATES.CLOSED) {\n return;\n }\n removeModal(remodal);\n if (remodal.settings.hashTracking && remodal.id === location.hash.substr(1)) {\n current = currentModal();\n if (current) {\n location.hash = current.id;\n } else {\n location.hash = '';\n $(window).scrollTop(scrollTop);\n }\n }\n syncWithAnimation(function () {\n setState(remodal, STATES.CLOSING, false, reason);\n }, function () {\n remodal.$bg.removeClass(remodal.settings.modifier);\n remodal.$overlay.removeClass(remodal.settings.modifier).hide();\n remodal.$wrapper.hide();\n if (openModals.length === 0) {\n unlockScreen();\n }\n setState(remodal, STATES.CLOSED, false, reason);\n }, remodal);\n };\n\n /**\n * Returns a current state of a modal\n * @public\n * @returns {STATES}\n */\n Remodal.prototype.getState = function () {\n return this.state;\n };\n\n /**\n * Destroys a modal\n * @public\n */\n Remodal.prototype.destroy = function () {\n var lookup = $[PLUGIN_NAME].lookup;\n var instanceCount;\n halt(this);\n this.$wrapper.remove();\n delete lookup[this.index];\n instanceCount = $.grep(lookup, function (instance) {\n return !!instance;\n }).length;\n if (instanceCount === 0) {\n this.$overlay.remove();\n this.$bg.removeClass(namespacify('is', STATES.CLOSING) + ' ' + namespacify('is', STATES.OPENING) + ' ' + namespacify('is', STATES.CLOSED) + ' ' + namespacify('is', STATES.OPENED));\n }\n };\n\n /**\n * Special plugin object for instances\n * @public\n * @type {Object}\n */\n $[PLUGIN_NAME] = {\n lookup: []\n };\n\n /**\n * Plugin constructor\n * @constructor\n * @param {Object} options\n * @returns {JQuery}\n */\n $.fn[PLUGIN_NAME] = function (opts) {\n var instance;\n var $elem;\n this.each(function (index, elem) {\n $elem = $(elem);\n if ($elem.data(PLUGIN_NAME) == null) {\n instance = new Remodal($elem, opts);\n $elem.data(PLUGIN_NAME, instance.index);\n if (instance.settings.hashTracking && instance.id === location.hash.substr(1)) {\n instance.open();\n }\n } else {\n instance = $[PLUGIN_NAME].lookup[$elem.data(PLUGIN_NAME)];\n }\n });\n return instance;\n };\n $(document).ready(function () {\n // data-remodal-target opens a modal window with the special Id\n $(document).on('click', '[data-' + PLUGIN_NAME + '-target]', function (e) {\n e.preventDefault();\n var elem = e.currentTarget;\n var id = elem.getAttribute('data-' + PLUGIN_NAME + '-target');\n var $target = $('[data-' + PLUGIN_NAME + '-id=\"' + id + '\"]');\n $[PLUGIN_NAME].lookup[$target.data(PLUGIN_NAME)].open();\n });\n\n // Auto initialization of modal windows\n // They should have the 'remodal' class attribute\n // Also you can write the `data-remodal-options` attribute to pass params into the modal\n $(document).find('.' + NAMESPACE).each(function (i, container) {\n var $container = $(container);\n var options = $container.data(PLUGIN_NAME + '-options');\n if (!options) {\n options = {};\n } else if (typeof options === 'string' || options instanceof String) {\n options = parseOptions(options);\n }\n $container[PLUGIN_NAME](options);\n });\n\n // Handles the keydown event\n $(document).on('keydown.' + NAMESPACE, function (e) {\n var current = currentModal();\n if (current && current.settings.closeOnEscape && current.state === STATES.OPENED && e.keyCode === 27) {\n current.close();\n }\n });\n\n // Handles the hashchange event\n $(window).on('hashchange.' + NAMESPACE, handleHashChangeEvent);\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNwSSxXQUFXLEdBQUcsVUFBVSxDQUFDO01BRXZELElBQUksQ0FBQzBJLE9BQU8sRUFBRTtRQUNWQSxPQUFPLEdBQUcsQ0FBQyxDQUFDO01BQ2hCLENBQUMsTUFBTSxJQUFJLE9BQU9BLE9BQU8sS0FBSyxRQUFRLElBQUlBLE9BQU8sWUFBWW5CLE1BQU0sRUFBRTtRQUNqRW1CLE9BQU8sR0FBR3pCLFlBQVksQ0FBQ3lCLE9BQU8sQ0FBQztNQUNuQztNQUVBOEIsVUFBVSxDQUFDeEssV0FBVyxDQUFDLENBQUMwSSxPQUFPLENBQUM7SUFDcEMsQ0FBQyxDQUFDOztJQUVGO0lBQ0E5SSxDQUFDLENBQUNpQyxRQUFRLENBQUMsQ0FBQytFLEVBQUUsQ0FBQyxVQUFVLEdBQUczRyxTQUFTLEVBQUUsVUFBU29HLENBQUMsRUFBRTtNQUMvQyxJQUFJMEIsT0FBTyxHQUFHQyxZQUFZLENBQUMsQ0FBQztNQUU1QixJQUFJRCxPQUFPLElBQUlBLE9BQU8sQ0FBQ2hCLFFBQVEsQ0FBQ2pHLGFBQWEsSUFBSWlILE9BQU8sQ0FBQzFDLEtBQUssS0FBS2xFLE1BQU0sQ0FBQ0ksTUFBTSxJQUFJOEUsQ0FBQyxDQUFDb0UsT0FBTyxLQUFLLEVBQUUsRUFBRTtRQUNsRzFDLE9BQU8sQ0FBQ0UsS0FBSyxDQUFDLENBQUM7TUFDbkI7SUFDSixDQUFDLENBQUM7O0lBRUY7SUFDQXJJLENBQUMsQ0FBQ00sTUFBTSxDQUFDLENBQUMwRyxFQUFFLENBQUMsYUFBYSxHQUFHM0csU0FBUyxFQUFFMEgscUJBQXFCLENBQUM7RUFDbEUsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC91dGlscy9yZW1vZGFsLmpzPzNjOWYiXSwic291cmNlc0NvbnRlbnQiOlsiLyogUmVtb2RhbCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2RrYWJlYXJzL1JlbW9kYWxcbiAqIFdpdGggU3RhY2thYmxlIG9wdGlvbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnRzdG9ybS9SZW1vZGFsIHBhdGNoXG4gKi9cblxuaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuIShmdW5jdGlvbihyb290LCBmYWN0b3J5KSB7XG4gICAgcmV0dXJuIGZhY3Rvcnkocm9vdCwgJCk7XG59KSh0aGlzLCBmdW5jdGlvbihnbG9iYWwsICQpIHtcblxuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIHBsdWdpblxuICAgICAqIEBwcml2YXRlXG4gICAgICogQGNvbnN0XG4gICAgICogQHR5cGUge1N0cmluZ31cbiAgICAgKi9cbiAgICB2YXIgUExVR0lOX05BTUUgPSAncmVtb2RhbCc7XG5cbiAgICAvKipcbiAgICAgKiBOYW1lc3BhY2UgZm9yIENTUyBhbmQgZXZlbnRzXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RcbiAgICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgICAqL1xuICAgIHZhciBOQU1FU1BBQ0UgPSB3aW5kb3cuUkVNT0RBTF9HTE9CQUxTICYmIHdpbmRvdy5SRU1PREFMX0dMT0JBTFMuTkFNRVNQQUNFIHx8IFBMVUdJTl9OQU1FO1xuXG4gICAgLyoqXG4gICAgICogQW5pbWF0aW9uc3RhcnQgZXZlbnQgd2l0aCB2ZW5kb3IgcHJlZml4ZXNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdFxuICAgICAqIEB0eXBlIHtTdHJpbmd9XG4gICAgICovXG4gICAgdmFyIEFOSU1BVElPTlNUQVJUX0VWRU5UUyA9ICQubWFwKFxuICAgICAgICBbJ2FuaW1hdGlvbnN0YXJ0JywgJ3dlYmtpdEFuaW1hdGlvblN0YXJ0JywgJ01TQW5pbWF0aW9uU3RhcnQnLCAnb0FuaW1hdGlvblN0YXJ0J10sXG5cbiAgICAgICAgZnVuY3Rpb24oZXZlbnROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gZXZlbnROYW1lICsgJy4nICsgTkFNRVNQQUNFO1xuICAgICAgICB9XG5cbiAgICApLmpvaW4oJyAnKTtcblxuICAgIC8qKlxuICAgICAqIEFuaW1hdGlvbmVuZCBldmVudCB3aXRoIHZlbmRvciBwcmVmaXhlc1xuICAgICAqIEBwcml2YXRlXG4gICAgICogQGNvbnN0XG4gICAgICogQHR5cGUge1N0cmluZ31cbiAgICAgKi9cbiAgICB2YXIgQU5JTUFUSU9ORU5EX0VWRU5UUyA9ICQubWFwKFxuICAgICAgICBbJ2FuaW1hdGlvbmVuZCcsICd3ZWJraXRBbmltYXRpb25FbmQnLCAnTVNBbmltYXRpb25FbmQnLCAnb0FuaW1hdGlvbkVuZCddLFxuXG4gICAgICAgIGZ1bmN0aW9uKGV2ZW50TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50TmFtZSArICcuJyArIE5BTUVTUEFDRTtcbiAgICAgICAgfVxuXG4gICAgKS5qb2luKCcgJyk7XG5cbiAgICAvKipcbiAgICAgKiBEZWZhdWx0IHNldHRpbmdzXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RcbiAgICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgICAqL1xuICAgIHZhciBERUZBVUxUUyA9ICQuZXh0ZW5kKHtcbiAgICAgICAgaGFzaFRyYWNraW5nOiB0cnVlLFxuICAgICAgICBjbG9zZU9uQ29uZmlybTogdHJ1ZSxcbiAgICAgICAgY2xvc2VPbkNhbmNlbDogdHJ1ZSxcbiAgICAgICAgY2xvc2VPbkVzY2FwZTogdHJ1ZSxcbiAgICAgICAgY2xvc2VPbk91dHNpZGVDbGljazogdHJ1ZSxcbiAgICAgICAgbW9kaWZpZXI6ICcnLFxuICAgICAgICBzdGFjazogZmFsc2UsXG4gICAgICAgIGFwcGVuZFRvOiBudWxsXG4gICAgfSwgd2luZG93LlJFTU9EQUxfR0xPQkFMUyAmJiB3aW5kb3cuUkVNT0RBTF9HTE9CQUxTLkRFRkFVTFRTKTtcblxuICAgIC8qKlxuICAgICAqIFN0YXRlcyBvZiB0aGUgUmVtb2RhbFxuICAgICAqIEBwcml2YXRlXG4gICAgICogQGNvbnN0XG4gICAgICogQGVudW0ge1N0cmluZ31cbiAgICAgKi9cbiAgICB2YXIgU1RBVEVTID0ge1xuICAgICAgICBDTE9TSU5HOiAnY2xvc2luZycsXG4gICAgICAgIENMT1NFRDogJ2Nsb3NlZCcsXG4gICAgICAgIE9QRU5JTkc6ICdvcGVuaW5nJyxcbiAgICAgICAgT1BFTkVEOiAnb3BlbmVkJ1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZWFzb25zIG9mIHRoZSBzdGF0ZSBjaGFuZ2UuXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RcbiAgICAgKiBAZW51bSB7U3RyaW5nfVxuICAgICAqL1xuICAgIHZhciBTVEFURV9DSEFOR0VfUkVBU09OUyA9IHtcbiAgICAgICAgQ09ORklSTUFUSU9OOiAnY29uZmlybWF0aW9uJyxcbiAgICAgICAgQ0FOQ0VMTEFUSU9OOiAnY2FuY2VsbGF0aW9uJ1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBJcyBhbmltYXRpb24gc3VwcG9ydGVkP1xuICAgICAqIEBwcml2YXRlXG4gICAgICogQGNvbnN0XG4gICAgICogQHR5cGUge0Jvb2xlYW59XG4gICAgICovXG4gICAgdmFyIElTX0FOSU1BVElPTiA9IChmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jykuc3R5bGU7XG5cbiAgICAgICAgcmV0dXJuIHN0eWxlLmFuaW1hdGlvbk5hbWUgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgc3R5bGUuV2Via2l0QW5pbWF0aW9uTmFtZSAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBzdHlsZS5Nb3pBbmltYXRpb25OYW1lICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIHN0eWxlLm1zQW5pbWF0aW9uTmFtZSAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBzdHlsZS5PQW5pbWF0aW9uTmFtZSAhPT0gdW5kZWZpbmVkO1xuICAgIH0pKCk7XG5cbiAgICAvKipcbiAgICAgKiBJcyBpT1M/XG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RcbiAgICAgKiBAdHlwZSB7Qm9vbGVhbn1cbiAgICAgKi9cbiAgICB2YXIgSVNfSU9TID0gL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKTtcblxuICAgIC8qKlxuICAgICAqIEN1cnJlbnQgbW9kYWxcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEB0eXBlIHtSZW1vZGFsfVxuICAgICAqL1xuICAgIHZhciBvcGVuTW9kYWxzID0gW107XG5cbiAgICAvKipcbiAgICAgKiBTY3JvbGxiYXIgcG9zaXRpb25cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICovXG4gICAgdmFyIHNjcm9sbFRvcDtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gYW5pbWF0aW9uIGR1cmF0aW9uXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge2pRdWVyeX0gJGVsZW1cbiAgICAgKiBAcmV0dXJucyB7TnVtYmVyfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldEFuaW1hdGlvbkR1cmF0aW9uKCRlbGVtKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIElTX0FOSU1BVElPTiAmJlxuICAgICAgICAgICAgJGVsZW0uY3NzKCdhbmltYXRpb24tbmFtZScpID09PSAnbm9uZScgJiZcbiAgICAgICAgICAgICRlbGVtLmNzcygnLXdlYmtpdC1hbmltYXRpb24tbmFtZScpID09PSAnbm9uZScgJiZcbiAgICAgICAgICAgICRlbGVtLmNzcygnLW1vei1hbmltYXRpb24tbmFtZScpID09PSAnbm9uZScgJiZcbiAgICAgICAgICAgICRlbGVtLmNzcygnLW8tYW5pbWF0aW9uLW5hbWUnKSA9PT0gJ25vbmUnICYmXG4gICAgICAgICAgICAkZWxlbS5jc3MoJy1tcy1hbmltYXRpb24tbmFtZScpID09PSAnbm9uZSdcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBkdXJhdGlvbiA9ICRlbGVtLmNzcygnYW5pbWF0aW9uLWR1cmF0aW9uJykgfHxcbiAgICAgICAgICAgICRlbGVtLmNzcygnLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb24nKSB8fFxuICAgICAgICAgICAgJGVsZW0uY3NzKCctbW96LWFuaW1hdGlvbi1kdXJhdGlvbicpIHx8XG4gICAgICAgICAgICAkZWxlbS5jc3MoJy1vLWFuaW1hdGlvbi1kdXJhdGlvbicpIHx8XG4gICAgICAgICAgICAkZWxlbS5jc3MoJy1tcy1hbmltYXRpb24tZHVyYXRpb24nKSB8fFxuICAgICAgICAgICAgJzBzJztcblxuICAgICAgICB2YXIgZGVsYXkgPSAkZWxlbS5jc3MoJ2FuaW1hdGlvbi1kZWxheScpIHx8XG4gICAgICAgICAgICAkZWxlbS5jc3MoJy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5JykgfHxcbiAgICAgICAgICAgICRlbGVtLmNzcygnLW1vei1hbmltYXRpb24tZGVsYXknKSB8fFxuICAgICAgICAgICAgJGVsZW0uY3NzKCctby1hbmltYXRpb24tZGVsYXknKSB8fFxuICAgICAgICAgICAgJGVsZW0uY3NzKCctbXMtYW5pbWF0aW9uLWRlbGF5JykgfHxcbiAgICAgICAgICAgICcwcyc7XG5cbiAgICAgICAgdmFyIGl0ZXJhdGlvbkNvdW50ID0gJGVsZW0uY3NzKCdhbmltYXRpb24taXRlcmF0aW9uLWNvdW50JykgfHxcbiAgICAgICAgICAgICRlbGVtLmNzcygnLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50JykgfHxcbiAgICAgICAgICAgICRlbGVtLmNzcygnLW1vei1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50JykgfHxcbiAgICAgICAgICAgICRlbGVtLmNzcygnLW8tYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCcpIHx8XG4gICAgICAgICAgICAkZWxlbS5jc3MoJy1tcy1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50JykgfHxcbiAgICAgICAgICAgICcxJztcblxuICAgICAgICB2YXIgbWF4O1xuICAgICAgICB2YXIgbGVuO1xuICAgICAgICB2YXIgbnVtO1xuICAgICAgICB2YXIgaTtcblxuICAgICAgICBkdXJhdGlvbiA9IGR1cmF0aW9uLnNwbGl0KCcsICcpO1xuICAgICAgICBkZWxheSA9IGRlbGF5LnNwbGl0KCcsICcpO1xuICAgICAgICBpdGVyYXRpb25Db3VudCA9IGl0ZXJhdGlvbkNvdW50LnNwbGl0KCcsICcpO1xuXG4gICAgICAgIC8vIFRoZSAnZHVyYXRpb24nIHNpemUgaXMgdGhlIHNhbWUgYXMgdGhlICdkZWxheScgc2l6ZVxuICAgICAgICBmb3IgKGkgPSAwLCBsZW4gPSBkdXJhdGlvbi5sZW5ndGgsIG1heCA9IE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICBudW0gPSBwYXJzZUZsb2F0KGR1cmF0aW9uW2ldKSAqIHBhcnNlSW50KGl0ZXJhdGlvbkNvdW50W2ldLCAxMCkgKyBwYXJzZUZsb2F0KGRlbGF5W2ldKTtcblxuICAgICAgICAgICAgaWYgKG51bSA+IG1heCkge1xuICAgICAgICAgICAgICAgIG1heCA9IG51bTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIHNjcm9sbGJhciB3aWR0aFxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHJldHVybnMge051bWJlcn1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRTY3JvbGxiYXJXaWR0aCgpIHtcbiAgICAgICAgaWYgKCQoZG9jdW1lbnQpLmhlaWdodCgpIDw9ICQod2luZG93KS5oZWlnaHQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgb3V0ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdmFyIGlubmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHZhciB3aWR0aE5vU2Nyb2xsO1xuICAgICAgICB2YXIgd2lkdGhXaXRoU2Nyb2xsO1xuXG4gICAgICAgIG91dGVyLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgb3V0ZXIuc3R5bGUud2lkdGggPSAnMTAwcHgnO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG91dGVyKTtcblxuICAgICAgICB3aWR0aE5vU2Nyb2xsID0gb3V0ZXIub2Zmc2V0V2lkdGg7XG5cbiAgICAgICAgLy8gRm9yY2Ugc2Nyb2xsYmFyc1xuICAgICAgICBvdXRlci5zdHlsZS5vdmVyZmxvdyA9ICdzY3JvbGwnO1xuXG4gICAgICAgIC8vIEFkZCBpbm5lciBkaXZcbiAgICAgICAgaW5uZXIuc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgICAgIG91dGVyLmFwcGVuZENoaWxkKGlubmVyKTtcblxuICAgICAgICB3aWR0aFdpdGhTY3JvbGwgPSBpbm5lci5vZmZzZXRXaWR0aDtcblxuICAgICAgICAvLyBSZW1vdmUgZGl2c1xuICAgICAgICBvdXRlci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG91dGVyKTtcblxuICAgICAgICByZXR1cm4gd2lkdGhOb1Njcm9sbCAtIHdpZHRoV2l0aFNjcm9sbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2NrcyB0aGUgc2NyZWVuXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBsb2NrU2NyZWVuKCkge1xuICAgICAgICBpZiAoSVNfSU9TKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgJGh0bWwgPSAkKCdodG1sJyk7XG4gICAgICAgIHZhciBsb2NrZWRDbGFzcyA9IG5hbWVzcGFjaWZ5KCdpcy1sb2NrZWQnKTtcbiAgICAgICAgdmFyIHBhZGRpbmdSaWdodDtcbiAgICAgICAgdmFyICRib2R5O1xuXG4gICAgICAgIGlmICghJGh0bWwuaGFzQ2xhc3MobG9ja2VkQ2xhc3MpKSB7XG4gICAgICAgICAgICAkYm9keSA9ICQoZG9jdW1lbnQuYm9keSk7XG5cbiAgICAgICAgICAgIC8vIFplcHRvIGRvZXMgbm90IHN1cHBvcnQgJy09JywgJys9JyBpbiB0aGUgYGNzc2AgbWV0aG9kXG4gICAgICAgICAgICBwYWRkaW5nUmlnaHQgPSBwYXJzZUludCgkYm9keS5jc3MoJ3BhZGRpbmctcmlnaHQnKSwgMTApICsgZ2V0U2Nyb2xsYmFyV2lkdGgoKTtcblxuICAgICAgICAgICAgJGJvZHkuY3NzKCdwYWRkaW5nLXJpZ2h0JywgcGFkZGluZ1JpZ2h0ICsgJ3B4Jyk7XG4gICAgICAgICAgICAkaHRtbC5hZGRDbGFzcyhsb2NrZWRDbGFzcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVbmxvY2tzIHRoZSBzY3JlZW5cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVubG9ja1NjcmVlbigpIHtcbiAgICAgICAgaWYgKElTX0lPUykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyICRodG1sID0gJCgnaHRtbCcpO1xuICAgICAgICB2YXIgbG9ja2VkQ2xhc3MgPSBuYW1lc3BhY2lmeSgnaXMtbG9ja2VkJyk7XG4gICAgICAgIHZhciBwYWRkaW5nUmlnaHQ7XG4gICAgICAgIHZhciAkYm9keTtcblxuICAgICAgICBpZiAoJGh0bWwuaGFzQ2xhc3MobG9ja2VkQ2xhc3MpKSB7XG4gICAgICAgICAgICAkYm9keSA9ICQoZG9jdW1lbnQuYm9keSk7XG5cbiAgICAgICAgICAgIC8vIFplcHRvIGRvZXMgbm90IHN1cHBvcnQgJy09JywgJys9JyBpbiB0aGUgYGNzc2AgbWV0aG9kXG4gICAgICAgICAgICBwYWRkaW5nUmlnaHQgPSBwYXJzZUludCgkYm9keS5jc3MoJ3BhZGRpbmctcmlnaHQnKSwgMTApIC0gZ2V0U2Nyb2xsYmFyV2lkdGgoKTtcblxuICAgICAgICAgICAgJGJvZHkuY3NzKCdwYWRkaW5nLXJpZ2h0JywgcGFkZGluZ1JpZ2h0ICsgJ3B4Jyk7XG4gICAgICAgICAgICAkaHRtbC5yZW1vdmVDbGFzcyhsb2NrZWRDbGFzcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgc3RhdGUgZm9yIGFuIGluc3RhbmNlXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge1JlbW9kYWx9IGluc3RhbmNlXG4gICAgICogQHBhcmFtIHtTVEFURVN9IHN0YXRlXG4gICAgICogQHBhcmFtIHtCb29sZWFufSBpc1NpbGVudCBJZiB0cnVlLCBSZW1vZGFsIGRvZXMgbm90IHRyaWdnZXIgZXZlbnRzXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IFJlYXNvbiBvZiBhIHN0YXRlIGNoYW5nZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzZXRTdGF0ZShpbnN0YW5jZSwgc3RhdGUsIGlzU2lsZW50LCByZWFzb24pIHtcblxuICAgICAgICB2YXIgbmV3U3RhdGUgPSBuYW1lc3BhY2lmeSgnaXMnLCBzdGF0ZSk7XG4gICAgICAgIHZhciBhbGxTdGF0ZXMgPSBbbmFtZXNwYWNpZnkoJ2lzJywgU1RBVEVTLkNMT1NJTkcpLFxuICAgICAgICAgICAgbmFtZXNwYWNpZnkoJ2lzJywgU1RBVEVTLk9QRU5JTkcpLFxuICAgICAgICAgICAgbmFtZXNwYWNpZnkoJ2lzJywgU1RBVEVTLkNMT1NFRCksXG4gICAgICAgICAgICBuYW1lc3BhY2lmeSgnaXMnLCBTVEFURVMuT1BFTkVEKV0uam9pbignICcpO1xuXG4gICAgICAgIGluc3RhbmNlLiRiZ1xuICAgICAgICAgICAgLnJlbW92ZUNsYXNzKGFsbFN0YXRlcylcbiAgICAgICAgICAgIC5hZGRDbGFzcyhuZXdTdGF0ZSk7XG5cbiAgICAgICAgaW5zdGFuY2UuJG92ZXJsYXlcbiAgICAgICAgICAgIC5yZW1vdmVDbGFzcyhhbGxTdGF0ZXMpXG4gICAgICAgICAgICAuYWRkQ2xhc3MobmV3U3RhdGUpO1xuXG4gICAgICAgIGluc3RhbmNlLiR3cmFwcGVyXG4gICAgICAgICAgICAucmVtb3ZlQ2xhc3MoYWxsU3RhdGVzKVxuICAgICAgICAgICAgLmFkZENsYXNzKG5ld1N0YXRlKTtcblxuICAgICAgICBpbnN0YW5jZS4kbW9kYWxcbiAgICAgICAgICAgIC5yZW1vdmVDbGFzcyhhbGxTdGF0ZXMpXG4gICAgICAgICAgICAuYWRkQ2xhc3MobmV3U3RhdGUpO1xuXG4gICAgICAgIGluc3RhbmNlLnN0YXRlID0gc3RhdGU7XG4gICAgICAgICFpc1NpbGVudCAmJiBpbnN0YW5jZS4kbW9kYWwudHJpZ2dlcih7XG4gICAgICAgICAgICB0eXBlOiBzdGF0ZSxcbiAgICAgICAgICAgIHJlYXNvbjogcmVhc29uXG4gICAgICAgIH0sIFt7IHJlYXNvbjogcmVhc29uIH1dKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTeW5jaHJvbml6ZXMgd2l0aCB0aGUgYW5pbWF0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZG9CZWZvcmVBbmltYXRpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBkb0FmdGVyQW5pbWF0aW9uXG4gICAgICogQHBhcmFtIHtSZW1vZGFsfSBpbnN0YW5jZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN5bmNXaXRoQW5pbWF0aW9uKGRvQmVmb3JlQW5pbWF0aW9uLCBkb0FmdGVyQW5pbWF0aW9uLCBpbnN0YW5jZSkge1xuICAgICAgICB2YXIgcnVubmluZ0FuaW1hdGlvbnNDb3VudCA9IDA7XG5cbiAgICAgICAgdmFyIGhhbmRsZUFuaW1hdGlvblN0YXJ0ID0gZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgaWYgKGUudGFyZ2V0ICE9PSB0aGlzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBydW5uaW5nQW5pbWF0aW9uc0NvdW50Kys7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGhhbmRsZUFuaW1hdGlvbkVuZCA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIGlmIChlLnRhcmdldCAhPT0gdGhpcykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKC0tcnVubmluZ0FuaW1hdGlvbnNDb3VudCA9PT0gMCkge1xuXG4gICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGV2ZW50IGxpc3RlbmVyc1xuICAgICAgICAgICAgICAgICQuZWFjaChbJyRiZycsICckb3ZlcmxheScsICckd3JhcHBlcicsICckbW9kYWwnXSwgZnVuY3Rpb24oaW5kZXgsIGVsZW1OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlW2VsZW1OYW1lXS5vZmYoQU5JTUFUSU9OU1RBUlRfRVZFTlRTICsgJyAnICsgQU5JTUFUSU9ORU5EX0VWRU5UUyk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBkb0FmdGVyQW5pbWF0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgJC5lYWNoKFsnJGJnJywgJyRvdmVybGF5JywgJyR3cmFwcGVyJywgJyRtb2RhbCddLCBmdW5jdGlvbihpbmRleCwgZWxlbU5hbWUpIHtcbiAgICAgICAgICAgIGluc3RhbmNlW2VsZW1OYW1lXVxuICAgICAgICAgICAgICAgIC5vbihBTklNQVRJT05TVEFSVF9FVkVOVFMsIGhhbmRsZUFuaW1hdGlvblN0YXJ0KVxuICAgICAgICAgICAgICAgIC5vbihBTklNQVRJT05FTkRfRVZFTlRTLCBoYW5kbGVBbmltYXRpb25FbmQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBkb0JlZm9yZUFuaW1hdGlvbigpO1xuXG4gICAgICAgIC8vIElmIHRoZSBhbmltYXRpb24gaXMgbm90IHN1cHBvcnRlZCBieSBhIGJyb3dzZXIgb3IgaXRzIGR1cmF0aW9uIGlzIDBcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZ2V0QW5pbWF0aW9uRHVyYXRpb24oaW5zdGFuY2UuJGJnKSA9PT0gMCAmJlxuICAgICAgICAgICAgZ2V0QW5pbWF0aW9uRHVyYXRpb24oaW5zdGFuY2UuJG92ZXJsYXkpID09PSAwICYmXG4gICAgICAgICAgICBnZXRBbmltYXRpb25EdXJhdGlvbihpbnN0YW5jZS4kd3JhcHBlcikgPT09IDAgJiZcbiAgICAgICAgICAgIGdldEFuaW1hdGlvbkR1cmF0aW9uKGluc3RhbmNlLiRtb2RhbCkgPT09IDBcbiAgICAgICAgKSB7XG5cbiAgICAgICAgICAgIC8vIFJlbW92ZSBldmVudCBsaXN0ZW5lcnNcbiAgICAgICAgICAgICQuZWFjaChbJyRiZycsICckb3ZlcmxheScsICckd3JhcHBlcicsICckbW9kYWwnXSwgZnVuY3Rpb24oaW5kZXgsIGVsZW1OYW1lKSB7XG4gICAgICAgICAgICAgICAgaW5zdGFuY2VbZWxlbU5hbWVdLm9mZihBTklNQVRJT05TVEFSVF9FVkVOVFMgKyAnICcgKyBBTklNQVRJT05FTkRfRVZFTlRTKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBkb0FmdGVyQW5pbWF0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZXMgaW1tZWRpYXRlbHlcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7UmVtb2RhbH0gaW5zdGFuY2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYWx0KGluc3RhbmNlKSB7XG4gICAgICAgIGlmIChpbnN0YW5jZS5zdGF0ZSA9PT0gU1RBVEVTLkNMT1NFRCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgJC5lYWNoKFsnJGJnJywgJyRvdmVybGF5JywgJyR3cmFwcGVyJywgJyRtb2RhbCddLCBmdW5jdGlvbihpbmRleCwgZWxlbU5hbWUpIHtcbiAgICAgICAgICAgIGluc3RhbmNlW2VsZW1OYW1lXS5vZmYoQU5JTUFUSU9OU1RBUlRfRVZFTlRTICsgJyAnICsgQU5JTUFUSU9ORU5EX0VWRU5UUyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJlbW92ZU1vZGFsKGluc3RhbmNlKTtcbiAgICAgICAgaW5zdGFuY2UuJGJnLnJlbW92ZUNsYXNzKGluc3RhbmNlLnNldHRpbmdzLm1vZGlmaWVyKTtcbiAgICAgICAgaW5zdGFuY2UuJG92ZXJsYXkucmVtb3ZlQ2xhc3MoaW5zdGFuY2Uuc2V0dGluZ3MubW9kaWZpZXIpLmhpZGUoKTtcbiAgICAgICAgaW5zdGFuY2UuJHdyYXBwZXIuaGlkZSgpO1xuXG4gICAgICAgIGlmIChvcGVuTW9kYWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdW5sb2NrU2NyZWVuKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRTdGF0ZShpbnN0YW5jZSwgU1RBVEVTLkNMT1NFRCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFyc2VzIGEgc3RyaW5nIHdpdGggb3B0aW9uc1xuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHN0clxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9XG4gICAgICovXG4gICAgZnVuY3Rpb24gcGFyc2VPcHRpb25zKHN0cikge1xuICAgICAgICB2YXIgb2JqID0ge307XG4gICAgICAgIHZhciBhcnI7XG4gICAgICAgIHZhciBsZW47XG4gICAgICAgIHZhciB2YWw7XG4gICAgICAgIHZhciBpO1xuXG4gICAgICAgIC8vIFJlbW92ZSBzcGFjZXMgYmVmb3JlIGFuZCBhZnRlciBkZWxpbWl0ZXJzXG4gICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKC9cXHMqOlxccyovZywgJzonKS5yZXBsYWNlKC9cXHMqLFxccyovZywgJywnKTtcblxuICAgICAgICAvLyBQYXJzZSBhIHN0cmluZ1xuICAgICAgICBhcnIgPSBzdHIuc3BsaXQoJywnKTtcbiAgICAgICAgZm9yIChpID0gMCwgbGVuID0gYXJyLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICBhcnJbaV0gPSBhcnJbaV0uc3BsaXQoJzonKTtcbiAgICAgICAgICAgIHZhbCA9IGFycltpXVsxXTtcblxuICAgICAgICAgICAgLy8gQ29udmVydCBhIHN0cmluZyB2YWx1ZSBpZiBpdCBpcyBsaWtlIGEgYm9vbGVhblxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHZhbCBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgICAgICAgICAgICAgIHZhbCA9IHZhbCA9PT0gJ3RydWUnIHx8ICh2YWwgPT09ICdmYWxzZScgPyBmYWxzZSA6IHZhbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIENvbnZlcnQgYSBzdHJpbmcgdmFsdWUgaWYgaXQgaXMgbGlrZSBhIG51bWJlclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHZhbCBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgICAgICAgICAgICAgIHZhbCA9ICFpc05hTih2YWwpID8gK3ZhbCA6IHZhbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb2JqW2FycltpXVswXV0gPSB2YWw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlcyBhIHN0cmluZyBzZXBhcmF0ZWQgYnkgZGFzaGVzIGFuZCBwcmVmaXhlZCB3aXRoIE5BTUVTUEFDRVxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsuLi5TdHJpbmd9XG4gICAgICogQHJldHVybnMge1N0cmluZ31cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBuYW1lc3BhY2lmeSgpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IE5BTUVTUEFDRTtcblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgcmVzdWx0ICs9ICctJyArIGFyZ3VtZW50c1tpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlcyB0aGUgaGFzaGNoYW5nZSBldmVudFxuICAgICAqIEBwcml2YXRlXG4gICAgICogQGxpc3RlbnMgaGFzaGNoYW5nZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGhhbmRsZUhhc2hDaGFuZ2VFdmVudCgpIHtcbiAgICAgICAgdmFyIGlkID0gbG9jYXRpb24uaGFzaC5yZXBsYWNlKCcjJywgJycpO1xuICAgICAgICB2YXIgaW5zdGFuY2U7XG4gICAgICAgIHZhciAkZWxlbTtcblxuICAgICAgICB2YXIgY3VycmVudCA9IGN1cnJlbnRNb2RhbCgpO1xuXG4gICAgICAgIGlmICghaWQpIHtcblxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBjdXJyZW50bHkgb3BlbmVkIG1vZGFsIGFuZCBhbmltYXRpb24gd2FzIGNvbXBsZXRlZFxuICAgICAgICAgICAgaWYgKGN1cnJlbnQgJiYgY3VycmVudC5zdGF0ZSA9PT0gU1RBVEVTLk9QRU5FRCAmJiBjdXJyZW50LnNldHRpbmdzLmhhc2hUcmFja2luZykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnQuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgaWYgKCFjdXJyZW50IHx8IGN1cnJlbnQuaWQgIT09IGlkKSB7XG4gICAgICAgICAgICAgICAgLy8gQ2F0Y2ggc3ludGF4IGVycm9yIGlmIHlvdXIgaGFzaCBpcyBiYWRcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAkZWxlbSA9ICQoXG4gICAgICAgICAgICAgICAgICAgICAgICAnW2RhdGEtJyArIFBMVUdJTl9OQU1FICsgJy1pZD1cIicgKyBpZCArICdcIl0nXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCRlbGVtICYmICRlbGVtLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSA9ICRbUExVR0lOX05BTUVdLmxvb2t1cFskZWxlbS5kYXRhKFBMVUdJTl9OQU1FKV07XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc3RhbmNlICYmIGluc3RhbmNlLnNldHRpbmdzLmhhc2hUcmFja2luZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2Uub3BlbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjdXJyZW50TW9kYWwoKSB7XG4gICAgICAgIHJldHVybiBvcGVuTW9kYWxzW29wZW5Nb2RhbHMubGVuZ3RoIC0gMV07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVtb3ZlTW9kYWwocmVtb2RhbCkge1xuICAgICAgICB2YXIgaW5kZXggPSBvcGVuTW9kYWxzLmluZGV4T2YocmVtb2RhbCk7XG5cbiAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgIG9wZW5Nb2RhbHMuc2xpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb2RhbCBjb25zdHJ1Y3RvclxuICAgICAqIEBjb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSB7alF1ZXJ5fSAkbW9kYWxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIFJlbW9kYWwoJG1vZGFsLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciAkYm9keSA9ICQoZG9jdW1lbnQuYm9keSk7XG4gICAgICAgIHZhciAkYXBwZW5kVG8gPSAkYm9keTtcbiAgICAgICAgdmFyIHJlbW9kYWwgPSB0aGlzO1xuXG4gICAgICAgIHJlbW9kYWwuaWQgPSAkbW9kYWwuYXR0cignZGF0YS0nICsgUExVR0lOX05BTUUgKyAnLWlkJyk7XG4gICAgICAgIHJlbW9kYWwuc2V0dGluZ3MgPSAkLmV4dGVuZCh7fSwgREVGQVVMVFMsIG9wdGlvbnMpO1xuICAgICAgICByZW1vZGFsLmluZGV4ID0gJFtQTFVHSU5fTkFNRV0ubG9va3VwLnB1c2gocmVtb2RhbCkgLSAxO1xuICAgICAgICByZW1vZGFsLnN0YXRlID0gU1RBVEVTLkNMT1NFRDtcblxuICAgICAgICAvLyByZW1vZGFsLiRvdmVybGF5ID0gJCgnLicgKyBuYW1lc3BhY2lmeSgnb3ZlcmxheScpKTtcblxuICAgICAgICBpZiAocmVtb2RhbC5zZXR0aW5ncy5hcHBlbmRUbyAhPT0gbnVsbCAmJiByZW1vZGFsLnNldHRpbmdzLmFwcGVuZFRvLmxlbmd0aCkge1xuICAgICAgICAgICAgJGFwcGVuZFRvID0gJChyZW1vZGFsLnNldHRpbmdzLmFwcGVuZFRvKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcmVtb2RhbC4kb3ZlcmxheSkge1xuICAgICAgICAgICAgcmVtb2RhbC4kb3ZlcmxheSA9ICQoJzxkaXY+JykuYWRkQ2xhc3MobmFtZXNwYWNpZnkoJ292ZXJsYXknKSArICcgJyArIG5hbWVzcGFjaWZ5KCdpcycsIFNUQVRFUy5DTE9TRUQpKS5oaWRlKCk7XG4gICAgICAgICAgICAkYXBwZW5kVG8uYXBwZW5kKHJlbW9kYWwuJG92ZXJsYXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVtb2RhbC4kYmcgPSAkKCcuJyArIG5hbWVzcGFjaWZ5KCdiZycpKS5hZGRDbGFzcyhuYW1lc3BhY2lmeSgnaXMnLCBTVEFURVMuQ0xPU0VEKSk7XG5cbiAgICAgICAgcmVtb2RhbC4kbW9kYWwgPSAkbW9kYWxcbiAgICAgICAgICAgIC5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICBOQU1FU1BBQ0UgKyAnICcgK1xuICAgICAgICAgICAgICAgIG5hbWVzcGFjaWZ5KCdpcy1pbml0aWFsaXplZCcpICsgJyAnICtcbiAgICAgICAgICAgICAgICByZW1vZGFsLnNldHRpbmdzLm1vZGlmaWVyICsgJyAnICtcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2lmeSgnaXMnLCBTVEFURVMuQ0xPU0VEKSlcbiAgICAgICAgICAgIC5hdHRyKCd0YWJpbmRleCcsICctMScpO1xuXG4gICAgICAgIHJlbW9kYWwuJHdyYXBwZXIgPSAkKCc8ZGl2PicpXG4gICAgICAgICAgICAuYWRkQ2xhc3MoXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNpZnkoJ3dyYXBwZXInKSArICcgJyArXG4gICAgICAgICAgICAgICAgcmVtb2RhbC5zZXR0aW5ncy5tb2RpZmllciArICcgJyArXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNpZnkoJ2lzJywgU1RBVEVTLkNMT1NFRCkpXG4gICAgICAgICAgICAuaGlkZSgpXG4gICAgICAgICAgICAuYXBwZW5kKHJlbW9kYWwuJG1vZGFsKTtcbiAgICAgICAgJGFwcGVuZFRvLmFwcGVuZChyZW1vZGFsLiR3cmFwcGVyKTtcblxuICAgICAgICAvLyBBZGQgdGhlIGV2ZW50IGxpc3RlbmVyIGZvciB0aGUgY2xvc2UgYnV0dG9uXG4gICAgICAgIHJlbW9kYWwuJHdyYXBwZXIub24oJ2NsaWNrLicgKyBOQU1FU1BBQ0UsICdbZGF0YS0nICsgUExVR0lOX05BTUUgKyAnLWFjdGlvbj1cImNsb3NlXCJdJywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICByZW1vZGFsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCB0aGUgZXZlbnQgbGlzdGVuZXIgZm9yIHRoZSBjYW5jZWwgYnV0dG9uXG4gICAgICAgIHJlbW9kYWwuJHdyYXBwZXIub24oJ2NsaWNrLicgKyBOQU1FU1BBQ0UsICdbZGF0YS0nICsgUExVR0lOX05BTUUgKyAnLWFjdGlvbj1cImNhbmNlbFwiXScsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgcmVtb2RhbC4kbW9kYWwudHJpZ2dlcihTVEFURV9DSEFOR0VfUkVBU09OUy5DQU5DRUxMQVRJT04pO1xuXG4gICAgICAgICAgICBpZiAocmVtb2RhbC5zZXR0aW5ncy5jbG9zZU9uQ2FuY2VsKSB7XG4gICAgICAgICAgICAgICAgcmVtb2RhbC5jbG9zZShTVEFURV9DSEFOR0VfUkVBU09OUy5DQU5DRUxMQVRJT04pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBBZGQgdGhlIGV2ZW50IGxpc3RlbmVyIGZvciB0aGUgY29uZmlybSBidXR0b25cbiAgICAgICAgcmVtb2RhbC4kd3JhcHBlci5vbignY2xpY2suJyArIE5BTUVTUEFDRSwgJ1tkYXRhLScgKyBQTFVHSU5fTkFNRSArICctYWN0aW9uPVwiY29uZmlybVwiXScsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgcmVtb2RhbC4kbW9kYWwudHJpZ2dlcihTVEFURV9DSEFOR0VfUkVBU09OUy5DT05GSVJNQVRJT04pO1xuXG4gICAgICAgICAgICBpZiAocmVtb2RhbC5zZXR0aW5ncy5jbG9zZU9uQ29uZmlybSkge1xuICAgICAgICAgICAgICAgIHJlbW9kYWwuY2xvc2UoU1RBVEVfQ0hBTkdFX1JFQVNPTlMuQ09ORklSTUFUSU9OKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQWRkIHRoZSBldmVudCBsaXN0ZW5lciBmb3IgdGhlIG92ZXJsYXlcbiAgICAgICAgcmVtb2RhbC4kd3JhcHBlci5vbignY2xpY2suJyArIE5BTUVTUEFDRSwgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgdmFyICR0YXJnZXQgPSAkKGUudGFyZ2V0KTtcbiAgICAgICAgICAgIHZhciBpc1dyYXBwZXIgPSAkdGFyZ2V0Lmhhc0NsYXNzKG5hbWVzcGFjaWZ5KCd3cmFwcGVyJykpO1xuICAgICAgICAgICAgdmFyIGlzV2l0aGluID0gJHRhcmdldC5jbG9zZXN0KCcuJyArIG5hbWVzcGFjaWZ5KCdpcycsIFNUQVRFUy5PUEVORUQpKS5sZW5ndGg7XG5cbiAgICAgICAgICAgIGlmICghaXNXcmFwcGVyICYmIGlzV2l0aGluKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVtb2RhbC5zZXR0aW5ncy5jbG9zZU9uT3V0c2lkZUNsaWNrKSB7XG4gICAgICAgICAgICAgICAgcmVtb2RhbC5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVucyBhIG1vZGFsIHdpbmRvd1xuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBSZW1vZGFsLnByb3RvdHlwZS5vcGVuID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciByZW1vZGFsID0gdGhpcztcbiAgICAgICAgdmFyIGN1cnJlbnQ7XG4gICAgICAgIHZhciBtb2RhbENvdW50O1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBhbmltYXRpb24gd2FzIGNvbXBsZXRlZFxuICAgICAgICBpZiAocmVtb2RhbC5zdGF0ZSA9PT0gU1RBVEVTLk9QRU5JTkcgfHwgcmVtb2RhbC5zdGF0ZSA9PT0gU1RBVEVTLkNMT1NJTkcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlkID0gcmVtb2RhbC4kbW9kYWwuYXR0cignZGF0YS0nICsgUExVR0lOX05BTUUgKyAnLWlkJyk7XG5cbiAgICAgICAgaWYgKHJlbW9kYWwuaWQgJiYgcmVtb2RhbC5zZXR0aW5ncy5oYXNoVHJhY2tpbmcpIHtcbiAgICAgICAgICAgIHNjcm9sbFRvcCA9ICQod2luZG93KS5zY3JvbGxUb3AoKTtcbiAgICAgICAgICAgIGxvY2F0aW9uLmhhc2ggPSByZW1vZGFsLmlkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFyZW1vZGFsLnNldHRpbmdzLnN0YWNrKSB7XG4gICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudE1vZGFsKCk7XG4gICAgICAgICAgICBpZiAoY3VycmVudCAmJiBjdXJyZW50ICE9PSByZW1vZGFsKSB7XG4gICAgICAgICAgICAgICAgaGFsdChjdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG1vZGFsQ291bnQgPSBvcGVuTW9kYWxzLnB1c2gocmVtb2RhbCk7XG4gICAgICAgIHJlbW9kYWwuJG92ZXJsYXkuY3NzKCd6LWluZGV4JywgZnVuY3Rpb24oXywgdmFsdWUpIHsgcmV0dXJuIHBhcnNlSW50KHZhbHVlLCAxMCkgKyBtb2RhbENvdW50OyB9KTtcbiAgICAgICAgcmVtb2RhbC4kd3JhcHBlci5jc3MoJ3otaW5kZXgnLCBmdW5jdGlvbihfLCB2YWx1ZSkgeyByZXR1cm4gcGFyc2VJbnQodmFsdWUsIDEwKSArIG1vZGFsQ291bnQ7IH0pO1xuXG4gICAgICAgIGxvY2tTY3JlZW4oKTtcbiAgICAgICAgcmVtb2RhbC4kYmcuYWRkQ2xhc3MocmVtb2RhbC5zZXR0aW5ncy5tb2RpZmllcik7XG4gICAgICAgIHJlbW9kYWwuJG92ZXJsYXkuYWRkQ2xhc3MocmVtb2RhbC5zZXR0aW5ncy5tb2RpZmllcikuc2hvdygpO1xuICAgICAgICByZW1vZGFsLiR3cmFwcGVyLnNob3coKS5zY3JvbGxUb3AoMCk7XG4gICAgICAgIHJlbW9kYWwuJG1vZGFsLmZvY3VzKCk7XG5cbiAgICAgICAgc3luY1dpdGhBbmltYXRpb24oXG4gICAgICAgICAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBzZXRTdGF0ZShyZW1vZGFsLCBTVEFURVMuT1BFTklORyk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBzZXRTdGF0ZShyZW1vZGFsLCBTVEFURVMuT1BFTkVEKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHJlbW9kYWwpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZXMgYSBtb2RhbCB3aW5kb3dcbiAgICAgKiBAcHVibGljXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHJlYXNvblxuICAgICAqL1xuICAgIFJlbW9kYWwucHJvdG90eXBlLmNsb3NlID0gZnVuY3Rpb24ocmVhc29uKSB7XG4gICAgICAgIHZhciByZW1vZGFsID0gdGhpcztcbiAgICAgICAgdmFyIGN1cnJlbnQ7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGFuaW1hdGlvbiB3YXMgY29tcGxldGVkXG4gICAgICAgIGlmIChyZW1vZGFsLnN0YXRlID09PSBTVEFURVMuT1BFTklORyB8fCByZW1vZGFsLnN0YXRlID09PSBTVEFURVMuQ0xPU0lORyB8fCByZW1vZGFsLnN0YXRlID09PSBTVEFURVMuQ0xPU0VEKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICByZW1vdmVNb2RhbChyZW1vZGFsKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICByZW1vZGFsLnNldHRpbmdzLmhhc2hUcmFja2luZyAmJlxuICAgICAgICAgICAgcmVtb2RhbC5pZCA9PT0gbG9jYXRpb24uaGFzaC5zdWJzdHIoMSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudE1vZGFsKCk7XG4gICAgICAgICAgICBpZiAoY3VycmVudCkge1xuICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhhc2ggPSBjdXJyZW50LmlkO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2NhdGlvbi5oYXNoID0gJyc7XG4gICAgICAgICAgICAgICAgJCh3aW5kb3cpLnNjcm9sbFRvcChzY3JvbGxUb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3luY1dpdGhBbmltYXRpb24oXG4gICAgICAgICAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBzZXRTdGF0ZShyZW1vZGFsLCBTVEFURVMuQ0xPU0lORywgZmFsc2UsIHJlYXNvbik7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZW1vZGFsLiRiZy5yZW1vdmVDbGFzcyhyZW1vZGFsLnNldHRpbmdzLm1vZGlmaWVyKTtcbiAgICAgICAgICAgICAgICByZW1vZGFsLiRvdmVybGF5LnJlbW92ZUNsYXNzKHJlbW9kYWwuc2V0dGluZ3MubW9kaWZpZXIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICByZW1vZGFsLiR3cmFwcGVyLmhpZGUoKTtcblxuICAgICAgICAgICAgICAgIGlmIChvcGVuTW9kYWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB1bmxvY2tTY3JlZW4oKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzZXRTdGF0ZShyZW1vZGFsLCBTVEFURVMuQ0xPU0VELCBmYWxzZSwgcmVhc29uKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHJlbW9kYWwpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgY3VycmVudCBzdGF0ZSBvZiBhIG1vZGFsXG4gICAgICogQHB1YmxpY1xuICAgICAqIEByZXR1cm5zIHtTVEFURVN9XG4gICAgICovXG4gICAgUmVtb2RhbC5wcm90b3R5cGUuZ2V0U3RhdGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGU7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIERlc3Ryb3lzIGEgbW9kYWxcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgUmVtb2RhbC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgbG9va3VwID0gJFtQTFVHSU5fTkFNRV0ubG9va3VwO1xuICAgICAgICB2YXIgaW5zdGFuY2VDb3VudDtcblxuICAgICAgICBoYWx0KHRoaXMpO1xuICAgICAgICB0aGlzLiR3cmFwcGVyLnJlbW92ZSgpO1xuXG4gICAgICAgIGRlbGV0ZSBsb29rdXBbdGhpcy5pbmRleF07XG4gICAgICAgIGluc3RhbmNlQ291bnQgPSAkLmdyZXAobG9va3VwLCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICAgICAgICAgICAgcmV0dXJuICEhaW5zdGFuY2U7XG4gICAgICAgIH0pLmxlbmd0aDtcblxuICAgICAgICBpZiAoaW5zdGFuY2VDb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy4kb3ZlcmxheS5yZW1vdmUoKTtcbiAgICAgICAgICAgIHRoaXMuJGJnLnJlbW92ZUNsYXNzKFxuICAgICAgICAgICAgICAgIG5hbWVzcGFjaWZ5KCdpcycsIFNUQVRFUy5DTE9TSU5HKSArICcgJyArXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNpZnkoJ2lzJywgU1RBVEVTLk9QRU5JTkcpICsgJyAnICtcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2lmeSgnaXMnLCBTVEFURVMuQ0xPU0VEKSArICcgJyArXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNpZnkoJ2lzJywgU1RBVEVTLk9QRU5FRCkpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNwZWNpYWwgcGx1Z2luIG9iamVjdCBmb3IgaW5zdGFuY2VzXG4gICAgICogQHB1YmxpY1xuICAgICAqIEB0eXBlIHtPYmplY3R9XG4gICAgICovXG4gICAgJFtQTFVHSU5fTkFNRV0gPSB7XG4gICAgICAgIGxvb2t1cDogW11cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUGx1Z2luIGNvbnN0cnVjdG9yXG4gICAgICogQGNvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICAgKiBAcmV0dXJucyB7SlF1ZXJ5fVxuICAgICAqL1xuICAgICQuZm5bUExVR0lOX05BTUVdID0gZnVuY3Rpb24ob3B0cykge1xuICAgICAgICB2YXIgaW5zdGFuY2U7XG4gICAgICAgIHZhciAkZWxlbTtcblxuICAgICAgICB0aGlzLmVhY2goZnVuY3Rpb24oaW5kZXgsIGVsZW0pIHtcbiAgICAgICAgICAgICRlbGVtID0gJChlbGVtKTtcblxuICAgICAgICAgICAgaWYgKCRlbGVtLmRhdGEoUExVR0lOX05BTUUpID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZSA9IG5ldyBSZW1vZGFsKCRlbGVtLCBvcHRzKTtcbiAgICAgICAgICAgICAgICAkZWxlbS5kYXRhKFBMVUdJTl9OQU1FLCBpbnN0YW5jZS5pbmRleCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLnNldHRpbmdzLmhhc2hUcmFja2luZyAmJlxuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5pZCA9PT0gbG9jYXRpb24uaGFzaC5zdWJzdHIoMSlcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2Uub3BlbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaW5zdGFuY2UgPSAkW1BMVUdJTl9OQU1FXS5sb29rdXBbJGVsZW0uZGF0YShQTFVHSU5fTkFNRSldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgfTtcblxuICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkge1xuXG4gICAgICAgIC8vIGRhdGEtcmVtb2RhbC10YXJnZXQgb3BlbnMgYSBtb2RhbCB3aW5kb3cgd2l0aCB0aGUgc3BlY2lhbCBJZFxuICAgICAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtJyArIFBMVUdJTl9OQU1FICsgJy10YXJnZXRdJywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICB2YXIgZWxlbSA9IGUuY3VycmVudFRhcmdldDtcbiAgICAgICAgICAgIHZhciBpZCA9IGVsZW0uZ2V0QXR0cmlidXRlKCdkYXRhLScgKyBQTFVHSU5fTkFNRSArICctdGFyZ2V0Jyk7XG4gICAgICAgICAgICB2YXIgJHRhcmdldCA9ICQoJ1tkYXRhLScgKyBQTFVHSU5fTkFNRSArICctaWQ9XCInICsgaWQgKyAnXCJdJyk7XG5cbiAgICAgICAgICAgICRbUExVR0lOX05BTUVdLmxvb2t1cFskdGFyZ2V0LmRhdGEoUExVR0lOX05BTUUpXS5vcGVuKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEF1dG8gaW5pdGlhbGl6YXRpb24gb2YgbW9kYWwgd2luZG93c1xuICAgICAgICAvLyBUaGV5IHNob3VsZCBoYXZlIHRoZSAncmVtb2RhbCcgY2xhc3MgYXR0cmlidXRlXG4gICAgICAgIC8vIEFsc28geW91IGNhbiB3cml0ZSB0aGUgYGRhdGEtcmVtb2RhbC1vcHRpb25zYCBhdHRyaWJ1dGUgdG8gcGFzcyBwYXJhbXMgaW50byB0aGUgbW9kYWxcbiAgICAgICAgJChkb2N1bWVudCkuZmluZCgnLicgKyBOQU1FU1BBQ0UpLmVhY2goZnVuY3Rpb24oaSwgY29udGFpbmVyKSB7XG4gICAgICAgICAgICB2YXIgJGNvbnRhaW5lciA9ICQoY29udGFpbmVyKTtcbiAgICAgICAgICAgIHZhciBvcHRpb25zID0gJGNvbnRhaW5lci5kYXRhKFBMVUdJTl9OQU1FICsgJy1vcHRpb25zJyk7XG5cbiAgICAgICAgICAgIGlmICghb3B0aW9ucykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdzdHJpbmcnIHx8IG9wdGlvbnMgaW5zdGFuY2VvZiBTdHJpbmcpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zID0gcGFyc2VPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAkY29udGFpbmVyW1BMVUdJTl9OQU1FXShvcHRpb25zKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gSGFuZGxlcyB0aGUga2V5ZG93biBldmVudFxuICAgICAgICAkKGRvY3VtZW50KS5vbigna2V5ZG93bi4nICsgTkFNRVNQQUNFLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICB2YXIgY3VycmVudCA9IGN1cnJlbnRNb2RhbCgpO1xuXG4gICAgICAgICAgICBpZiAoY3VycmVudCAmJiBjdXJyZW50LnNldHRpbmdzLmNsb3NlT25Fc2NhcGUgJiYgY3VycmVudC5zdGF0ZSA9PT0gU1RBVEVTLk9QRU5FRCAmJiBlLmtleUNvZGUgPT09IDI3KSB7XG4gICAgICAgICAgICAgICAgY3VycmVudC5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBIYW5kbGVzIHRoZSBoYXNoY2hhbmdlIGV2ZW50XG4gICAgICAgICQod2luZG93KS5vbignaGFzaGNoYW5nZS4nICsgTkFNRVNQQUNFLCBoYW5kbGVIYXNoQ2hhbmdlRXZlbnQpO1xuICAgIH0pO1xufSk7XG4iXSwibmFtZXMiOlsiJCIsInJvb3QiLCJmYWN0b3J5IiwiZ2xvYmFsIiwiUExVR0lOX05BTUUiLCJOQU1FU1BBQ0UiLCJ3aW5kb3ciLCJSRU1PREFMX0dMT0JBTFMiLCJBTklNQVRJT05TVEFSVF9FVkVOVFMiLCJtYXAiLCJldmVudE5hbWUiLCJqb2luIiwiQU5JTUFUSU9ORU5EX0VWRU5UUyIsIkRFRkFVTFRTIiwiZXh0ZW5kIiwiaGFzaFRyYWNraW5nIiwiY2xvc2VPbkNvbmZpcm0iLCJjbG9zZU9uQ2FuY2VsIiwiY2xvc2VPbkVzY2FwZSIsImNsb3NlT25PdXRzaWRlQ2xpY2siLCJtb2RpZmllciIsInN0YWNrIiwiYXBwZW5kVG8iLCJTVEFURVMiLCJDTE9TSU5HIiwiQ0xPU0VEIiwiT1BFTklORyIsIk9QRU5FRCIsIlNUQVRFX0NIQU5HRV9SRUFTT05TIiwiQ09ORklSTUFUSU9OIiwiQ0FOQ0VMTEFUSU9OIiwiSVNfQU5JTUFUSU9OIiwic3R5bGUiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJhbmltYXRpb25OYW1lIiwidW5kZWZpbmVkIiwiV2Via2l0QW5pbWF0aW9uTmFtZSIsIk1vekFuaW1hdGlvbk5hbWUiLCJtc0FuaW1hdGlvbk5hbWUiLCJPQW5pbWF0aW9uTmFtZSIsIklTX0lPUyIsInRlc3QiLCJuYXZpZ2F0b3IiLCJwbGF0Zm9ybSIsIm9wZW5Nb2RhbHMiLCJzY3JvbGxUb3AiLCJnZXRBbmltYXRpb25EdXJhdGlvbiIsIiRlbGVtIiwiY3NzIiwiZHVyYXRpb24iLCJkZWxheSIsIml0ZXJhdGlvbkNvdW50IiwibWF4IiwibGVuIiwibnVtIiwiaSIsInNwbGl0IiwibGVuZ3RoIiwiTnVtYmVyIiwiTkVHQVRJVkVfSU5GSU5JVFkiLCJwYXJzZUZsb2F0IiwicGFyc2VJbnQiLCJnZXRTY3JvbGxiYXJXaWR0aCIsImhlaWdodCIsIm91dGVyIiwiaW5uZXIiLCJ3aWR0aE5vU2Nyb2xsIiwid2lkdGhXaXRoU2Nyb2xsIiwidmlzaWJpbGl0eSIsIndpZHRoIiwiYm9keSIsImFwcGVuZENoaWxkIiwib2Zmc2V0V2lkdGgiLCJvdmVyZmxvdyIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsImxvY2tTY3JlZW4iLCIkaHRtbCIsImxvY2tlZENsYXNzIiwibmFtZXNwYWNpZnkiLCJwYWRkaW5nUmlnaHQiLCIkYm9keSIsImhhc0NsYXNzIiwiYWRkQ2xhc3MiLCJ1bmxvY2tTY3JlZW4iLCJyZW1vdmVDbGFzcyIsInNldFN0YXRlIiwiaW5zdGFuY2UiLCJzdGF0ZSIsImlzU2lsZW50IiwicmVhc29uIiwibmV3U3RhdGUiLCJhbGxTdGF0ZXMiLCIkYmciLCIkb3ZlcmxheSIsIiR3cmFwcGVyIiwiJG1vZGFsIiwidHJpZ2dlciIsInR5cGUiLCJzeW5jV2l0aEFuaW1hdGlvbiIsImRvQmVmb3JlQW5pbWF0aW9uIiwiZG9BZnRlckFuaW1hdGlvbiIsInJ1bm5pbmdBbmltYXRpb25zQ291bnQiLCJoYW5kbGVBbmltYXRpb25TdGFydCIsImUiLCJ0YXJnZXQiLCJoYW5kbGVBbmltYXRpb25FbmQiLCJlYWNoIiwiaW5kZXgiLCJlbGVtTmFtZSIsIm9mZiIsIm9uIiwiaGFsdCIsInJlbW92ZU1vZGFsIiwic2V0dGluZ3MiLCJoaWRlIiwicGFyc2VPcHRpb25zIiwic3RyIiwib2JqIiwiYXJyIiwidmFsIiwicmVwbGFjZSIsIlN0cmluZyIsImlzTmFOIiwicmVzdWx0IiwiYXJndW1lbnRzIiwiaGFuZGxlSGFzaENoYW5nZUV2ZW50IiwiaWQiLCJsb2NhdGlvbiIsImhhc2giLCJjdXJyZW50IiwiY3VycmVudE1vZGFsIiwiY2xvc2UiLCJlcnIiLCJsb29rdXAiLCJkYXRhIiwib3BlbiIsInJlbW9kYWwiLCJpbmRleE9mIiwic2xpY2UiLCJSZW1vZGFsIiwib3B0aW9ucyIsIiRhcHBlbmRUbyIsImF0dHIiLCJwdXNoIiwiYXBwZW5kIiwicHJldmVudERlZmF1bHQiLCIkdGFyZ2V0IiwiaXNXcmFwcGVyIiwiaXNXaXRoaW4iLCJjbG9zZXN0IiwicHJvdG90eXBlIiwibW9kYWxDb3VudCIsIl8iLCJ2YWx1ZSIsInNob3ciLCJmb2N1cyIsInN1YnN0ciIsImdldFN0YXRlIiwiZGVzdHJveSIsImluc3RhbmNlQ291bnQiLCJyZW1vdmUiLCJncmVwIiwiZm4iLCJvcHRzIiwiZWxlbSIsInJlYWR5IiwiY3VycmVudFRhcmdldCIsImdldEF0dHJpYnV0ZSIsImZpbmQiLCJjb250YWluZXIiLCIkY29udGFpbmVyIiwia2V5Q29kZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/remodal.js\n\n}");
/***/ }),
/***/ "./app/utils/request.js":
/*!******************************!*\
!*** ./app/utils/request.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _response__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./response */ \"./app/utils/response.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n\n\nvar raw;\nvar request = function request(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {\n return true;\n };\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (options.method && options.method === 'post') {\n var data = new FormData();\n options.body = Object.assign({\n 'admin-nonce': grav_config__WEBPACK_IMPORTED_MODULE_1__.config.admin_nonce\n }, options.body || {});\n if (options.body && _typeof(options.body) === 'object') {\n Object.keys(options.body).map(function (key) {\n return data.append(key, options.body[key]);\n });\n }\n options.body = data;\n }\n options = Object.assign({\n credentials: 'same-origin',\n headers: {\n 'Accept': 'application/json'\n }\n }, options);\n return fetch(url, options).then(function (response) {\n raw = response;\n return response;\n }).then(_response__WEBPACK_IMPORTED_MODULE_0__.parseStatus).then(_response__WEBPACK_IMPORTED_MODULE_0__.parseJSON).then(_response__WEBPACK_IMPORTED_MODULE_0__.userFeedback).then(function (response) {\n return callback(response, raw);\n })[\"catch\"](_response__WEBPACK_IMPORTED_MODULE_0__.userFeedbackError);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (request);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvcmVxdWVzdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFxRjtBQUNoRDtBQUVyQyxJQUFJSyxHQUFHO0FBQ1AsSUFBSUMsT0FBTyxHQUFHLFNBQVZBLE9BQU9BLENBQVlDLEdBQUcsRUFBdUM7RUFBQSxJQUFyQ0MsT0FBTyxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDLENBQUM7RUFBQSxJQUFFRyxRQUFRLEdBQUFILFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHO0lBQUEsT0FBTSxJQUFJO0VBQUE7RUFDM0QsSUFBSSxPQUFPRCxPQUFPLEtBQUssVUFBVSxFQUFFO0lBQy9CSSxRQUFRLEdBQUdKLE9BQU87SUFDbEJBLE9BQU8sR0FBRyxDQUFDLENBQUM7RUFDaEI7RUFFQSxJQUFJQSxPQUFPLENBQUNLLE1BQU0sSUFBSUwsT0FBTyxDQUFDSyxNQUFNLEtBQUssTUFBTSxFQUFFO0lBQzdDLElBQUlDLElBQUksR0FBRyxJQUFJQyxRQUFRLENBQUMsQ0FBQztJQUV6QlAsT0FBTyxDQUFDUSxJQUFJLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDO01BQUUsYUFBYSxFQUFFZCwrQ0FBTSxDQUFDZTtJQUFZLENBQUMsRUFBRVgsT0FBTyxDQUFDUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkYsSUFBSVIsT0FBTyxDQUFDUSxJQUFJLElBQUlJLE9BQUEsQ0FBT1osT0FBTyxDQUFDUSxJQUFJLE1BQUssUUFBUSxFQUFFO01BQ2xEQyxNQUFNLENBQUNJLElBQUksQ0FBQ2IsT0FBTyxDQUFDUSxJQUFJLENBQUMsQ0FBQ00sR0FBRyxDQUFDLFVBQUNDLEdBQUc7UUFBQSxPQUFLVCxJQUFJLENBQUNVLE1BQU0sQ0FBQ0QsR0FBRyxFQUFFZixPQUFPLENBQUNRLElBQUksQ0FBQ08sR0FBRyxDQUFDLENBQUM7TUFBQSxFQUFDO0lBQy9FO0lBQ0FmLE9BQU8sQ0FBQ1EsSUFBSSxHQUFHRixJQUFJO0VBQ3ZCO0VBRUFOLE9BQU8sR0FBR1MsTUFBTSxDQUFDQyxNQUFNLENBQUM7SUFDcEJPLFdBQVcsRUFBRSxhQUFhO0lBQzFCQyxPQUFPLEVBQUU7TUFDTCxRQUFRLEVBQUU7SUFDZDtFQUNKLENBQUMsRUFBRWxCLE9BQU8sQ0FBQztFQUVYLE9BQU9tQixLQUFLLENBQUNwQixHQUFHLEVBQUVDLE9BQU8sQ0FBQyxDQUNyQm9CLElBQUksQ0FBQyxVQUFDQyxRQUFRLEVBQUs7SUFDaEJ4QixHQUFHLEdBQUd3QixRQUFRO0lBQ2QsT0FBT0EsUUFBUTtFQUNuQixDQUFDLENBQUMsQ0FDREQsSUFBSSxDQUFDNUIsa0RBQVcsQ0FBQyxDQUNqQjRCLElBQUksQ0FBQzNCLGdEQUFTLENBQUMsQ0FDZjJCLElBQUksQ0FBQzFCLG1EQUFZLENBQUMsQ0FDbEIwQixJQUFJLENBQUMsVUFBQ0MsUUFBUTtJQUFBLE9BQUtqQixRQUFRLENBQUNpQixRQUFRLEVBQUV4QixHQUFHLENBQUM7RUFBQSxFQUFDLFNBQ3RDLENBQUNGLHdEQUFpQixDQUFDO0FBQ2pDLENBQUM7QUFFRCxpRUFBZUcsT0FBTyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXRpbHMvcmVxdWVzdC5qcz8xNzZhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlU3RhdHVzLCBwYXJzZUpTT04sIHVzZXJGZWVkYmFjaywgdXNlckZlZWRiYWNrRXJyb3IgfSBmcm9tICcuL3Jlc3BvbnNlJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcblxubGV0IHJhdztcbmxldCByZXF1ZXN0ID0gZnVuY3Rpb24odXJsLCBvcHRpb25zID0ge30sIGNhbGxiYWNrID0gKCkgPT4gdHJ1ZSkge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5tZXRob2QgJiYgb3B0aW9ucy5tZXRob2QgPT09ICdwb3N0Jykge1xuICAgICAgICBsZXQgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXG4gICAgICAgIG9wdGlvbnMuYm9keSA9IE9iamVjdC5hc3NpZ24oeyAnYWRtaW4tbm9uY2UnOiBjb25maWcuYWRtaW5fbm9uY2UgfSwgb3B0aW9ucy5ib2R5IHx8IHt9KTtcbiAgICAgICAgaWYgKG9wdGlvbnMuYm9keSAmJiB0eXBlb2Ygb3B0aW9ucy5ib2R5ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMob3B0aW9ucy5ib2R5KS5tYXAoKGtleSkgPT4gZGF0YS5hcHBlbmQoa2V5LCBvcHRpb25zLmJvZHlba2V5XSkpO1xuICAgICAgICB9XG4gICAgICAgIG9wdGlvbnMuYm9keSA9IGRhdGE7XG4gICAgfVxuXG4gICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICB9XG4gICAgfSwgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4gZmV0Y2godXJsLCBvcHRpb25zKVxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHJhdyA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICB9KVxuICAgICAgICAudGhlbihwYXJzZVN0YXR1cylcbiAgICAgICAgLnRoZW4ocGFyc2VKU09OKVxuICAgICAgICAudGhlbih1c2VyRmVlZGJhY2spXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gY2FsbGJhY2socmVzcG9uc2UsIHJhdykpXG4gICAgICAgIC5jYXRjaCh1c2VyRmVlZGJhY2tFcnJvcik7XG59O1xuXG5leHBvcnQgZGVmYXVsdCByZXF1ZXN0O1xuIl0sIm5hbWVzIjpbInBhcnNlU3RhdHVzIiwicGFyc2VKU09OIiwidXNlckZlZWRiYWNrIiwidXNlckZlZWRiYWNrRXJyb3IiLCJjb25maWciLCJyYXciLCJyZXF1ZXN0IiwidXJsIiwib3B0aW9ucyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImNhbGxiYWNrIiwibWV0aG9kIiwiZGF0YSIsIkZvcm1EYXRhIiwiYm9keSIsIk9iamVjdCIsImFzc2lnbiIsImFkbWluX25vbmNlIiwiX3R5cGVvZiIsImtleXMiLCJtYXAiLCJrZXkiLCJhcHBlbmQiLCJjcmVkZW50aWFscyIsImhlYWRlcnMiLCJmZXRjaCIsInRoZW4iLCJyZXNwb25zZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/request.js\n\n}");
/***/ }),
/***/ "./app/utils/response.js":
/*!*******************************!*\
!*** ./app/utils/response.js ***!
\*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ parseJSON: () => (/* binding */ parseJSON),\n/* harmony export */ parseStatus: () => (/* binding */ parseStatus),\n/* harmony export */ userFeedback: () => (/* binding */ userFeedback),\n/* harmony export */ userFeedbackError: () => (/* binding */ userFeedbackError)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _toastr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toastr */ \"./app/utils/toastr.js\");\n/* harmony import */ var _offline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./offline */ \"./app/utils/offline.js\");\n/* harmony import */ var mout_string_trim__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! mout/string/trim */ \"./node_modules/mout/string/trim.js\");\n/* harmony import */ var mout_string_trim__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(mout_string_trim__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _session_expired__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./session-expired */ \"./app/utils/session-expired.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n\n\n\n// import { config } from 'grav-config';\n\n\nvar UNLOADING = false;\nvar error = function error(response) {\n var error = new Error(response.statusText || response || '');\n error.response = response;\n return error;\n};\nfunction parseStatus(response) {\n return response;\n\n /* Whoops can handle JSON responses so we don't need this for now.\n if (response.status >= 200 && response.status < 300) {\n return response;\n } else {\n throw error(response);\n }\n */\n}\nfunction parseJSON(response) {\n // If the session is no longer valid, surface a blocking modal instead of generic errors\n if (response && (response.status === 401 || response.status === 403)) {\n (0,_session_expired__WEBPACK_IMPORTED_MODULE_4__.showSessionExpiredModal)();\n throw new Error('Unauthorized');\n }\n return response.text().then(function (text) {\n var parsed = text;\n try {\n parsed = JSON.parse(text);\n } catch (error) {\n var content = document.createElement('div');\n content.innerHTML = text;\n var the_error = new Error();\n the_error.stack = mout_string_trim__WEBPACK_IMPORTED_MODULE_3___default()(content.innerText);\n throw the_error;\n }\n return parsed;\n });\n}\nfunction userFeedback(response) {\n if (UNLOADING) {\n return true;\n }\n var status = response.status || (response.error ? 'error' : '');\n var message = response.message || (response.error ? response.error.message : null);\n var settings = response.toastr || null;\n var backup;\n switch (status) {\n case 'unauthenticated':\n // Show a blocking modal and stop further processing\n (0,_session_expired__WEBPACK_IMPORTED_MODULE_4__.showSessionExpiredModal)();\n throw error('Logged out');\n case 'unauthorized':\n status = 'error';\n message = message || 'Unauthorized.';\n break;\n case 'error':\n status = 'error';\n message = message || 'Unknown error.';\n break;\n case 'success':\n status = 'success';\n message = message || '';\n break;\n default:\n status = 'error';\n message = message || 'Invalid AJAX response.';\n break;\n }\n if (settings && _typeof(settings) === 'object' && settings !== null) {\n backup = Object.assign({}, _toastr__WEBPACK_IMPORTED_MODULE_1__[\"default\"].options);\n Object.keys(settings).forEach(function (key) {\n _toastr__WEBPACK_IMPORTED_MODULE_1__[\"default\"].options[key] = settings[key];\n });\n }\n if (message && (_offline__WEBPACK_IMPORTED_MODULE_2__[\"default\"] || !_offline__WEBPACK_IMPORTED_MODULE_2__[\"default\"] && status !== 'error')) {\n _toastr__WEBPACK_IMPORTED_MODULE_1__[\"default\"][status === 'success' ? 'success' : 'error'](message);\n }\n if (settings) {\n _toastr__WEBPACK_IMPORTED_MODULE_1__[\"default\"].options = backup;\n }\n return response;\n}\nfunction userFeedbackError(error) {\n if (UNLOADING) {\n return true;\n }\n // If we can detect an unauthorized state here, show modal\n var unauthorized = error && (error.message === 'Unauthorized' || error.response && (error.response.status === 401 || error.response.status === 403));\n if (unauthorized) {\n (0,_session_expired__WEBPACK_IMPORTED_MODULE_4__.showSessionExpiredModal)();\n return;\n }\n var stack = error.stack ? \"
\".concat(error.stack, \"\") : '';\n _toastr__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(\"Fetch Failed:
\".concat(error.message, \" \").concat(stack));\n console.error(\"\".concat(error.message, \" at \").concat(error.stack));\n}\njquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).on('beforeunload._ajax', function () {\n UNLOADING = true;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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S0FBSyxDQUFDaUIsS0FBSyxpQkFBQWUsTUFBQSxDQUFpQmhDLEtBQUssQ0FBQ2lCLEtBQUsscUJBQWtCLEVBQUU7RUFDdkV0QiwrQ0FBTSxDQUFDSyxLQUFLLHlCQUFBZ0MsTUFBQSxDQUF5QmhDLEtBQUssQ0FBQ29CLE9BQU8sT0FBQVksTUFBQSxDQUFJZixLQUFLLENBQUUsQ0FBQztFQUM5RGdCLE9BQU8sQ0FBQ2pDLEtBQUssSUFBQWdDLE1BQUEsQ0FBSWhDLEtBQUssQ0FBQ29CLE9BQU8sVUFBQVksTUFBQSxDQUFPaEMsS0FBSyxDQUFDaUIsS0FBSyxDQUFFLENBQUM7QUFDdkQ7QUFFQXZCLDZDQUFDLENBQUN3QyxxQkFBTSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxZQUFNO0VBQ3JDcEMsU0FBUyxHQUFHLElBQUk7QUFDcEIsQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC91dGlscy9yZXNwb25zZS5qcz9hYWIyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgdG9hc3RyIGZyb20gJy4vdG9hc3RyJztcbmltcG9ydCBpc09ubGluZSBmcm9tICcuL29mZmxpbmUnO1xuLy8gaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHRyaW0gZnJvbSAnbW91dC9zdHJpbmcvdHJpbSc7XG5pbXBvcnQgeyBzaG93U2Vzc2lvbkV4cGlyZWRNb2RhbCB9IGZyb20gJy4vc2Vzc2lvbi1leHBpcmVkJztcblxubGV0IFVOTE9BRElORyA9IGZhbHNlO1xubGV0IGVycm9yID0gZnVuY3Rpb24ocmVzcG9uc2UpIHtcbiAgICBsZXQgZXJyb3IgPSBuZXcgRXJyb3IocmVzcG9uc2Uuc3RhdHVzVGV4dCB8fCByZXNwb25zZSB8fCAnJyk7XG4gICAgZXJyb3IucmVzcG9uc2UgPSByZXNwb25zZTtcblxuICAgIHJldHVybiBlcnJvcjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVN0YXR1cyhyZXNwb25zZSkge1xuICAgIHJldHVybiByZXNwb25zZTtcblxuICAgIC8qIFdob29wcyBjYW4gaGFuZGxlIEpTT04gcmVzcG9uc2VzIHNvIHdlIGRvbid0IG5lZWQgdGhpcyBmb3Igbm93LlxuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID49IDIwMCAmJiByZXNwb25zZS5zdGF0dXMgPCAzMDApIHtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IGVycm9yKHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICovXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUpTT04ocmVzcG9uc2UpIHtcbiAgICAvLyBJZiB0aGUgc2Vzc2lvbiBpcyBubyBsb25nZXIgdmFsaWQsIHN1cmZhY2UgYSBibG9ja2luZyBtb2RhbCBpbnN0ZWFkIG9mIGdlbmVyaWMgZXJyb3JzXG4gICAgaWYgKHJlc3BvbnNlICYmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMSB8fCByZXNwb25zZS5zdGF0dXMgPT09IDQwMykpIHtcbiAgICAgICAgc2hvd1Nlc3Npb25FeHBpcmVkTW9kYWwoKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmF1dGhvcml6ZWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4oKHRleHQpID0+IHtcbiAgICAgICAgbGV0IHBhcnNlZCA9IHRleHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwYXJzZWQgPSBKU09OLnBhcnNlKHRleHQpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgbGV0IGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIGNvbnRlbnQuaW5uZXJIVE1MID0gdGV4dDtcblxuICAgICAgICAgICAgbGV0IHRoZV9lcnJvciA9IG5ldyBFcnJvcigpO1xuICAgICAgICAgICAgdGhlX2Vycm9yLnN0YWNrID0gdHJpbShjb250ZW50LmlubmVyVGV4dCk7XG5cbiAgICAgICAgICAgIHRocm93IHRoZV9lcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJzZWQ7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VyRmVlZGJhY2socmVzcG9uc2UpIHtcbiAgICBpZiAoVU5MT0FESU5HKSB7IHJldHVybiB0cnVlOyB9XG5cbiAgICBsZXQgc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzIHx8IChyZXNwb25zZS5lcnJvciA/ICdlcnJvcicgOiAnJyk7XG4gICAgbGV0IG1lc3NhZ2UgPSByZXNwb25zZS5tZXNzYWdlIHx8IChyZXNwb25zZS5lcnJvciA/IHJlc3BvbnNlLmVycm9yLm1lc3NhZ2UgOiBudWxsKTtcbiAgICBsZXQgc2V0dGluZ3MgPSByZXNwb25zZS50b2FzdHIgfHwgbnVsbDtcbiAgICBsZXQgYmFja3VwO1xuXG4gICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgICAgY2FzZSAndW5hdXRoZW50aWNhdGVkJzpcbiAgICAgICAgICAgIC8vIFNob3cgYSBibG9ja2luZyBtb2RhbCBhbmQgc3RvcCBmdXJ0aGVyIHByb2Nlc3NpbmdcbiAgICAgICAgICAgIHNob3dTZXNzaW9uRXhwaXJlZE1vZGFsKCk7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcignTG9nZ2VkIG91dCcpO1xuICAgICAgICBjYXNlICd1bmF1dGhvcml6ZWQnOlxuICAgICAgICAgICAgc3RhdHVzID0gJ2Vycm9yJztcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlIHx8ICdVbmF1dGhvcml6ZWQuJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgICBzdGF0dXMgPSAnZXJyb3InO1xuICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3IuJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgICAgIHN0YXR1cyA9ICdzdWNjZXNzJztcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlIHx8ICcnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBzdGF0dXMgPSAnZXJyb3InO1xuICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UgfHwgJ0ludmFsaWQgQUpBWCByZXNwb25zZS4nO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKHNldHRpbmdzICYmIHR5cGVvZiBzZXR0aW5ncyA9PT0gJ29iamVjdCcgJiYgc2V0dGluZ3MgIT09IG51bGwpIHtcbiAgICAgICAgYmFja3VwID0gT2JqZWN0LmFzc2lnbih7fSwgdG9hc3RyLm9wdGlvbnMpO1xuICAgICAgICBPYmplY3Qua2V5cyhzZXR0aW5ncykuZm9yRWFjaCgoa2V5KSA9PiB7IHRvYXN0ci5vcHRpb25zW2tleV0gPSBzZXR0aW5nc1trZXldOyB9KTtcbiAgICB9XG5cbiAgICBpZiAobWVzc2FnZSAmJiAoaXNPbmxpbmUgfHwgKCFpc09ubGluZSAmJiBzdGF0dXMgIT09ICdlcnJvcicpKSkge1xuICAgICAgICB0b2FzdHJbc3RhdHVzID09PSAnc3VjY2VzcycgPyAnc3VjY2VzcycgOiAnZXJyb3InXShtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAoc2V0dGluZ3MpIHtcbiAgICAgICAgdG9hc3RyLm9wdGlvbnMgPSBiYWNrdXA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlckZlZWRiYWNrRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAoVU5MT0FESU5HKSB7IHJldHVybiB0cnVlOyB9XG4gICAgLy8gSWYgd2UgY2FuIGRldGVjdCBhbiB1bmF1dGhvcml6ZWQgc3RhdGUgaGVyZSwgc2hvdyBtb2RhbFxuICAgIGNvbnN0IHVuYXV0aG9yaXplZCA9IChlcnJvciAmJiAoZXJyb3IubWVzc2FnZSA9PT0gJ1VuYXV0aG9yaXplZCcgfHwgKGVycm9yLnJlc3BvbnNlICYmIChlcnJvci5yZXNwb25zZS5zdGF0dXMgPT09IDQwMSB8fCBlcnJvci5yZXNwb25zZS5zdGF0dXMgPT09IDQwMykpKSk7XG4gICAgaWYgKHVuYXV0aG9yaXplZCkge1xuICAgICAgICBzaG93U2Vzc2lvbkV4cGlyZWRNb2RhbCgpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHN0YWNrID0gZXJyb3Iuc3RhY2sgPyBgPHByZT48Y29kZT4ke2Vycm9yLnN0YWNrfTwvY29kZT48L3ByZT5gIDogJyc7XG4gICAgdG9hc3RyLmVycm9yKGBGZXRjaCBGYWlsZWQ6IDxiciAvPiAke2Vycm9yLm1lc3NhZ2V9ICR7c3RhY2t9YCk7XG4gICAgY29uc29sZS5lcnJvcihgJHtlcnJvci5tZXNzYWdlfSBhdCAke2Vycm9yLnN0YWNrfWApO1xufVxuXG4kKGdsb2JhbCkub24oJ2JlZm9yZXVubG9hZC5fYWpheCcsICgpID0+IHtcbiAgICBVTkxPQURJTkcgPSB0cnVlO1xufSk7XG4iXSwibmFtZXMiOlsiJCIsInRvYXN0ciIsImlzT25saW5lIiwidHJpbSIsInNob3dTZXNzaW9uRXhwaXJlZE1vZGFsIiwiVU5MT0FESU5HIiwiZXJyb3IiLCJyZXNwb25zZSIsIkVycm9yIiwic3RhdHVzVGV4dCIsInBhcnNlU3RhdHVzIiwicGFyc2VKU09OIiwic3RhdHVzIiwidGV4dCIsInRoZW4iLCJwYXJzZWQiLCJKU09OIiwicGFyc2UiLCJjb250ZW50IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaW5uZXJIVE1MIiwidGhlX2Vycm9yIiwic3RhY2siLCJpbm5lclRleHQiLCJ1c2VyRmVlZGJhY2siLCJtZXNzYWdlIiwic2V0dGluZ3MiLCJiYWNrdXAiLCJfdHlwZW9mIiwiT2JqZWN0IiwiYXNzaWduIiwib3B0aW9ucyIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwidXNlckZlZWRiYWNrRXJyb3IiLCJ1bmF1dGhvcml6ZWQiLCJjb25jYXQiLCJjb25zb2xlIiwiZ2xvYmFsIiwib24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/utils/response.js\n\n}");
/***/ }),
/***/ "./app/utils/selectize-option-click.js":
/*!*********************************************!*\
!*** ./app/utils/selectize-option-click.js ***!
\*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! selectize */ \"./node_modules/selectize/dist/js/selectize.js\");\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(selectize__WEBPACK_IMPORTED_MODULE_1__);\n\n\nselectize__WEBPACK_IMPORTED_MODULE_1___default().define('option_click', function (options) {\n var self = this;\n var setup = self.setup;\n this.setup = function () {\n setup.apply(self, arguments);\n var clicking = false;\n\n // Detect click on a .clickable\n self.$dropdown_content.on('mousedown click', function (e) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target);\n if (target.hasClass('clickable') || target.closest('.clickable').length) {\n if (e.type === 'mousedown') {\n clicking = true;\n self.isFocused = false; // awful hack to defuse the document mousedown listener\n } else {\n self.isFocused = true;\n setTimeout(function () {\n clicking = false; // wait until blur has been preempted\n });\n }\n } else {\n // cleanup in case user right-clicked or dragged off the element\n clicking = false;\n self.isFocused = true;\n }\n });\n\n // Intercept default handlers\n self.$dropdown.off('mousedown click', '[data-selectable]').on('mousedown click', '[data-selectable]', function () {\n if (!clicking) {\n return self.onOptionSelect.apply(self, arguments);\n }\n });\n self.$control_input.off('blur').on('blur', function () {\n if (!clicking) {\n return self.onBlur.apply(self, arguments);\n }\n });\n };\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvc2VsZWN0aXplLW9wdGlvbi1jbGljay5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF1QjtBQUNXO0FBRWxDQyx1REFBZ0IsQ0FBQyxjQUFjLEVBQUUsVUFBU0UsT0FBTyxFQUFFO0VBQy9DLElBQU1DLElBQUksR0FBRyxJQUFJO0VBQ2pCLElBQU1DLEtBQUssR0FBR0QsSUFBSSxDQUFDQyxLQUFLO0VBQ3hCLElBQUksQ0FBQ0EsS0FBSyxHQUFHLFlBQVc7SUFDcEJBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDRixJQUFJLEVBQUVHLFNBQVMsQ0FBQztJQUM1QixJQUFJQyxRQUFRLEdBQUcsS0FBSzs7SUFFcEI7SUFDQUosSUFBSSxDQUFDSyxpQkFBaUIsQ0FBQ0MsRUFBRSxDQUFDLGlCQUFpQixFQUFFLFVBQVNDLENBQUMsRUFBRTtNQUNyRCxJQUFNQyxNQUFNLEdBQUdaLDZDQUFDLENBQUNXLENBQUMsQ0FBQ0MsTUFBTSxDQUFDO01BQzFCLElBQUlBLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJRCxNQUFNLENBQUNFLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQ0MsTUFBTSxFQUFFO1FBQ3JFLElBQUlKLENBQUMsQ0FBQ0ssSUFBSSxLQUFLLFdBQVcsRUFBRTtVQUN4QlIsUUFBUSxHQUFHLElBQUk7VUFDZkosSUFBSSxDQUFDYSxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxNQUFNO1VBQ0hiLElBQUksQ0FBQ2EsU0FBUyxHQUFHLElBQUk7VUFDckJDLFVBQVUsQ0FBQyxZQUFXO1lBQ2xCVixRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUM7VUFDdEIsQ0FBQyxDQUFDO1FBQ047TUFDSixDQUFDLE1BQU07UUFBRTtRQUNMQSxRQUFRLEdBQUcsS0FBSztRQUNoQkosSUFBSSxDQUFDYSxTQUFTLEdBQUcsSUFBSTtNQUN6QjtJQUNKLENBQUMsQ0FBQzs7SUFFRjtJQUNBYixJQUFJLENBQUNlLFNBQVMsQ0FBQ0MsR0FBRyxDQUFDLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLENBQUNWLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxZQUFXO01BQzdHLElBQUksQ0FBQ0YsUUFBUSxFQUFFO1FBQ1gsT0FBT0osSUFBSSxDQUFDaUIsY0FBYyxDQUFDZixLQUFLLENBQUNGLElBQUksRUFBRUcsU0FBUyxDQUFDO01BQ3JEO0lBQ0osQ0FBQyxDQUFDO0lBQ0ZILElBQUksQ0FBQ2tCLGNBQWMsQ0FBQ0YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDVixFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVc7TUFDbEQsSUFBSSxDQUFDRixRQUFRLEVBQUU7UUFDWCxPQUFPSixJQUFJLENBQUNtQixNQUFNLENBQUNqQixLQUFLLENBQUNGLElBQUksRUFBRUcsU0FBUyxDQUFDO01BQzdDO0lBQ0osQ0FBQyxDQUFDO0VBQ04sQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXRpbHMvc2VsZWN0aXplLW9wdGlvbi1jbGljay5qcz81YjY4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgU2VsZWN0aXplIGZyb20gJ3NlbGVjdGl6ZSc7XG5cblNlbGVjdGl6ZS5kZWZpbmUoJ29wdGlvbl9jbGljaycsIGZ1bmN0aW9uKG9wdGlvbnMpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjb25zdCBzZXR1cCA9IHNlbGYuc2V0dXA7XG4gICAgdGhpcy5zZXR1cCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBzZXR1cC5hcHBseShzZWxmLCBhcmd1bWVudHMpO1xuICAgICAgICBsZXQgY2xpY2tpbmcgPSBmYWxzZTtcblxuICAgICAgICAvLyBEZXRlY3QgY2xpY2sgb24gYSAuY2xpY2thYmxlXG4gICAgICAgIHNlbGYuJGRyb3Bkb3duX2NvbnRlbnQub24oJ21vdXNlZG93biBjbGljaycsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9ICQoZS50YXJnZXQpO1xuICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNDbGFzcygnY2xpY2thYmxlJykgfHwgdGFyZ2V0LmNsb3Nlc3QoJy5jbGlja2FibGUnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBpZiAoZS50eXBlID09PSAnbW91c2Vkb3duJykge1xuICAgICAgICAgICAgICAgICAgICBjbGlja2luZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHNlbGYuaXNGb2N1c2VkID0gZmFsc2U7IC8vIGF3ZnVsIGhhY2sgdG8gZGVmdXNlIHRoZSBkb2N1bWVudCBtb3VzZWRvd24gbGlzdGVuZXJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGlja2luZyA9IGZhbHNlOyAvLyB3YWl0IHVudGlsIGJsdXIgaGFzIGJlZW4gcHJlZW1wdGVkXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7IC8vIGNsZWFudXAgaW4gY2FzZSB1c2VyIHJpZ2h0LWNsaWNrZWQgb3IgZHJhZ2dlZCBvZmYgdGhlIGVsZW1lbnRcbiAgICAgICAgICAgICAgICBjbGlja2luZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHNlbGYuaXNGb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gSW50ZXJjZXB0IGRlZmF1bHQgaGFuZGxlcnNcbiAgICAgICAgc2VsZi4kZHJvcGRvd24ub2ZmKCdtb3VzZWRvd24gY2xpY2snLCAnW2RhdGEtc2VsZWN0YWJsZV0nKS5vbignbW91c2Vkb3duIGNsaWNrJywgJ1tkYXRhLXNlbGVjdGFibGVdJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAoIWNsaWNraW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYub25PcHRpb25TZWxlY3QuYXBwbHkoc2VsZiwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHNlbGYuJGNvbnRyb2xfaW5wdXQub2ZmKCdibHVyJykub24oJ2JsdXInLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlmICghY2xpY2tpbmcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5vbkJsdXIuYXBwbHkoc2VsZiwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJTZWxlY3RpemUiLCJkZWZpbmUiLCJvcHRpb25zIiwic2VsZiIsInNldHVwIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJjbGlja2luZyIsIiRkcm9wZG93bl9jb250ZW50Iiwib24iLCJlIiwidGFyZ2V0IiwiaGFzQ2xhc3MiLCJjbG9zZXN0IiwibGVuZ3RoIiwidHlwZSIsImlzRm9jdXNlZCIsInNldFRpbWVvdXQiLCIkZHJvcGRvd24iLCJvZmYiLCJvbk9wdGlvblNlbGVjdCIsIiRjb250cm9sX2lucHV0Iiwib25CbHVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/selectize-option-click.js\n\n}");
/***/ }),
/***/ "./app/utils/selectize-required-fix.js":
/*!*********************************************!*\
!*** ./app/utils/selectize-required-fix.js ***!
\*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! selectize */ \"./node_modules/selectize/dist/js/selectize.js\");\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(selectize__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * This is a plugin to override the `.refreshValidityState` method of\n * the Selectize library (https://selectize.github.io/selectize.js/).\n * The library is not maintained anymore (as of 2017-09-13) and contains\n * a bug which causes Microsoft Edge to not work with selectized [required]\n * form fields. This plugin should be removed if\n * https://github.com/selectize/selectize.js/pull/1320 is ever merged\n * and a new version of Selectize gets released.\n */\n\n\nselectize__WEBPACK_IMPORTED_MODULE_0___default().define('required-fix', function (options) {\n var _this = this;\n this.refreshValidityState = function () {\n if (!_this.isRequired) return false;\n var invalid = !_this.items.length;\n _this.isInvalid = invalid;\n if (invalid) {\n _this.$control_input.attr('required', '');\n _this.$input.removeAttr('required');\n } else {\n _this.$control_input.removeAttr('required');\n _this.$input.attr('required');\n }\n };\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvc2VsZWN0aXplLXJlcXVpcmVkLWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWtDO0FBRWxDQSx1REFBZ0IsQ0FBQyxjQUFjLEVBQUUsVUFBU0UsT0FBTyxFQUFFO0VBQUEsSUFBQUMsS0FBQTtFQUMvQyxJQUFJLENBQUNDLG9CQUFvQixHQUFHLFlBQU07SUFDOUIsSUFBSSxDQUFDRCxLQUFJLENBQUNFLFVBQVUsRUFBRSxPQUFPLEtBQUs7SUFFbEMsSUFBSUMsT0FBTyxHQUFHLENBQUNILEtBQUksQ0FBQ0ksS0FBSyxDQUFDQyxNQUFNO0lBQ2hDTCxLQUFJLENBQUNNLFNBQVMsR0FBR0gsT0FBTztJQUV4QixJQUFJQSxPQUFPLEVBQUU7TUFDVEgsS0FBSSxDQUFDTyxjQUFjLENBQUNDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO01BQ3hDUixLQUFJLENBQUNTLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDLFVBQVUsQ0FBQztJQUN0QyxDQUFDLE1BQU07TUFDSFYsS0FBSSxDQUFDTyxjQUFjLENBQUNHLFVBQVUsQ0FBQyxVQUFVLENBQUM7TUFDMUNWLEtBQUksQ0FBQ1MsTUFBTSxDQUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ2hDO0VBQ0osQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXRpbHMvc2VsZWN0aXplLXJlcXVpcmVkLWZpeC5qcz85ZDk2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBpcyBhIHBsdWdpbiB0byBvdmVycmlkZSB0aGUgYC5yZWZyZXNoVmFsaWRpdHlTdGF0ZWAgbWV0aG9kIG9mXG4gKiB0aGUgU2VsZWN0aXplIGxpYnJhcnkgKGh0dHBzOi8vc2VsZWN0aXplLmdpdGh1Yi5pby9zZWxlY3RpemUuanMvKS5cbiAqIFRoZSBsaWJyYXJ5IGlzIG5vdCBtYWludGFpbmVkIGFueW1vcmUgKGFzIG9mIDIwMTctMDktMTMpIGFuZCBjb250YWluc1xuICogYSBidWcgd2hpY2ggY2F1c2VzIE1pY3Jvc29mdCBFZGdlIHRvIG5vdCB3b3JrIHdpdGggc2VsZWN0aXplZCBbcmVxdWlyZWRdXG4gKiBmb3JtIGZpZWxkcy4gVGhpcyBwbHVnaW4gc2hvdWxkIGJlIHJlbW92ZWQgaWZcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zZWxlY3RpemUvc2VsZWN0aXplLmpzL3B1bGwvMTMyMCBpcyBldmVyIG1lcmdlZFxuICogYW5kIGEgbmV3IHZlcnNpb24gb2YgU2VsZWN0aXplIGdldHMgcmVsZWFzZWQuXG4gKi9cblxuaW1wb3J0IFNlbGVjdGl6ZSBmcm9tICdzZWxlY3RpemUnO1xuXG5TZWxlY3RpemUuZGVmaW5lKCdyZXF1aXJlZC1maXgnLCBmdW5jdGlvbihvcHRpb25zKSB7XG4gICAgdGhpcy5yZWZyZXNoVmFsaWRpdHlTdGF0ZSA9ICgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzUmVxdWlyZWQpIHJldHVybiBmYWxzZTtcblxuICAgICAgICBsZXQgaW52YWxpZCA9ICF0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICAgICAgdGhpcy5pc0ludmFsaWQgPSBpbnZhbGlkO1xuXG4gICAgICAgIGlmIChpbnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLiRjb250cm9sX2lucHV0LmF0dHIoJ3JlcXVpcmVkJywgJycpO1xuICAgICAgICAgICAgdGhpcy4kaW5wdXQucmVtb3ZlQXR0cigncmVxdWlyZWQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuJGNvbnRyb2xfaW5wdXQucmVtb3ZlQXR0cigncmVxdWlyZWQnKTtcbiAgICAgICAgICAgIHRoaXMuJGlucHV0LmF0dHIoJ3JlcXVpcmVkJyk7XG4gICAgICAgIH1cbiAgICB9O1xufSk7XG4iXSwibmFtZXMiOlsiU2VsZWN0aXplIiwiZGVmaW5lIiwib3B0aW9ucyIsIl90aGlzIiwicmVmcmVzaFZhbGlkaXR5U3RhdGUiLCJpc1JlcXVpcmVkIiwiaW52YWxpZCIsIml0ZW1zIiwibGVuZ3RoIiwiaXNJbnZhbGlkIiwiJGNvbnRyb2xfaW5wdXQiLCJhdHRyIiwiJGlucHV0IiwicmVtb3ZlQXR0ciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/selectize-required-fix.js\n\n}");
/***/ }),
/***/ "./app/utils/session-expired.js":
/*!**************************************!*\
!*** ./app/utils/session-expired.js ***!
\**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ bindGlobalAjaxTrap: () => (/* binding */ bindGlobalAjaxTrap),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ installNavigationGuard: () => (/* binding */ installNavigationGuard),\n/* harmony export */ showSessionExpiredModal: () => (/* binding */ showSessionExpiredModal)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _keepalive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keepalive */ \"./app/utils/keepalive.js\");\n\n\n\nvar shown = false;\nfunction showSessionExpiredModal() {\n if (shown) {\n return;\n }\n shown = true;\n try {\n localStorage.setItem('grav:admin:sessionExpiredShown', '1');\n } catch (e) {}\n try {\n _keepalive__WEBPACK_IMPORTED_MODULE_2__[\"default\"].stop();\n } catch (e) {}\n\n // Ensure modal exists (in case a custom layout removed it)\n var $modal = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"session-expired\"]');\n if (!$modal.length) {\n var html = \"\\n
\";\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').append(html);\n $modal = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"session-expired\"]');\n }\n\n // Harden the modal: no escape/overlay close\n var instance = $modal.remodal({\n hashTracking: false,\n closeOnEscape: false,\n closeOnOutsideClick: false,\n closeOnCancel: false,\n closeOnConfirm: true,\n stack: false\n });\n\n // Style overlay + blur background\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').addClass('session-expired-active');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remodal-overlay').addClass('session-expired');\n\n // On confirm, redirect to login\n $modal.off('.session-expired').on('confirmation.session-expired', function () {\n // Keep suppression flag for the next page load (login) so we don't double prompt\n window.location.href = grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative;\n });\n\n // Open modal\n instance.open();\n}\n\n// Bind a jQuery global ajax error trap for legacy XHR paths\nfunction bindGlobalAjaxTrap() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).off('ajaxError._grav_session').on('ajaxError._grav_session', function (event, xhr) {\n if (!xhr) {\n return;\n }\n var status = xhr.status || 0;\n if (status === 401 || status === 403) {\n showSessionExpiredModal();\n }\n });\n}\n\n// Intercept in-admin link clicks to show the modal before any server redirect to login\nfunction installNavigationGuard() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).off('click._grav_session_nav').on('click._grav_session_nav', 'a[href]', function (e) {\n var $a = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var href = $a.attr('href');\n if (!href || href === '#' || href.indexOf('javascript:') === 0) {\n return;\n }\n if (e.isDefaultPrevented()) {\n return;\n }\n if ($a.attr('target') === '_blank' || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) {\n return;\n }\n\n // Only guard admin-relative links\n var base = window.GravAdmin && window.GravAdmin.config && window.GravAdmin.config.base_url_relative || '';\n var isAdminLink = href.indexOf(base + '/') === 0 || href === base || href.indexOf('/') === 0;\n if (!isAdminLink) {\n return;\n }\n e.preventDefault();\n\n // Quick session check, if invalid show modal, else proceed with navigation\n try {\n _keepalive__WEBPACK_IMPORTED_MODULE_2__[\"default\"].checkOnce().then(function (ok) {\n if (ok) {\n window.location.href = href;\n } else {\n showSessionExpiredModal();\n }\n });\n } catch (err) {\n // On any error, just navigate\n window.location.href = href;\n }\n });\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n showSessionExpiredModal: showSessionExpiredModal,\n bindGlobalAjaxTrap: bindGlobalAjaxTrap\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDO0FBQ047QUFFQSxpRUFBZTtFQUFFdEIsdUJBQXVCLEVBQXZCQSx1QkFBdUI7RUFBRXlCLGtCQUFrQixFQUFsQkE7QUFBbUIsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXRpbHMvc2Vzc2lvbi1leHBpcmVkLmpzPzA0YTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCBLZWVwQWxpdmUgZnJvbSAnLi9rZWVwYWxpdmUnO1xuXG5sZXQgc2hvd24gPSBmYWxzZTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dTZXNzaW9uRXhwaXJlZE1vZGFsKCkge1xuICAgIGlmIChzaG93bikgeyByZXR1cm47IH1cbiAgICBzaG93biA9IHRydWU7XG5cbiAgICB0cnkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZ3JhdjphZG1pbjpzZXNzaW9uRXhwaXJlZFNob3duJywgJzEnKTsgfSBjYXRjaCAoZSkge31cbiAgICB0cnkgeyBLZWVwQWxpdmUuc3RvcCgpOyB9IGNhdGNoIChlKSB7fVxuXG4gICAgLy8gRW5zdXJlIG1vZGFsIGV4aXN0cyAoaW4gY2FzZSBhIGN1c3RvbSBsYXlvdXQgcmVtb3ZlZCBpdClcbiAgICBsZXQgJG1vZGFsID0gJCgnW2RhdGEtcmVtb2RhbC1pZD1cInNlc3Npb24tZXhwaXJlZFwiXScpO1xuICAgIGlmICghJG1vZGFsLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBodG1sID0gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbW9kYWxcIiBkYXRhLXJlbW9kYWwtaWQ9XCJzZXNzaW9uLWV4cGlyZWRcIiBkYXRhLXJlbW9kYWwtb3B0aW9ucz1cImhhc2hUcmFja2luZzogZmFsc2VcIj5cbiAgICAgICAgICAgICAgICA8Zm9ybT5cbiAgICAgICAgICAgICAgICAgICAgPGgxPlNlc3Npb24gRXhwaXJlZDwvaDE+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYmlnZ2VyXCI+WW91ciBhZG1pbiBsb2dpbiBzZXNzaW9uIGhhcyBleHBpcmVkLiBQbGVhc2UgbG9nIGluIGFnYWluLjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1iYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uIHJlbW9kYWwtY29uZmlybVwiIGRhdGEtcmVtb2RhbC1hY3Rpb249XCJjb25maXJtXCIgaHJlZj1cIiNcIj5PSzwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgJCgnYm9keScpLmFwcGVuZChodG1sKTtcbiAgICAgICAgJG1vZGFsID0gJCgnW2RhdGEtcmVtb2RhbC1pZD1cInNlc3Npb24tZXhwaXJlZFwiXScpO1xuICAgIH1cblxuICAgIC8vIEhhcmRlbiB0aGUgbW9kYWw6IG5vIGVzY2FwZS9vdmVybGF5IGNsb3NlXG4gICAgY29uc3QgaW5zdGFuY2UgPSAkbW9kYWwucmVtb2RhbCh7IGhhc2hUcmFja2luZzogZmFsc2UsIGNsb3NlT25Fc2NhcGU6IGZhbHNlLCBjbG9zZU9uT3V0c2lkZUNsaWNrOiBmYWxzZSwgY2xvc2VPbkNhbmNlbDogZmFsc2UsIGNsb3NlT25Db25maXJtOiB0cnVlLCBzdGFjazogZmFsc2UgfSk7XG5cbiAgICAvLyBTdHlsZSBvdmVybGF5ICsgYmx1ciBiYWNrZ3JvdW5kXG4gICAgJCgnaHRtbCcpLmFkZENsYXNzKCdzZXNzaW9uLWV4cGlyZWQtYWN0aXZlJyk7XG4gICAgJCgnLnJlbW9kYWwtb3ZlcmxheScpLmFkZENsYXNzKCdzZXNzaW9uLWV4cGlyZWQnKTtcblxuICAgIC8vIE9uIGNvbmZpcm0sIHJlZGlyZWN0IHRvIGxvZ2luXG4gICAgJG1vZGFsLm9mZignLnNlc3Npb24tZXhwaXJlZCcpLm9uKCdjb25maXJtYXRpb24uc2Vzc2lvbi1leHBpcmVkJywgKCkgPT4ge1xuICAgICAgICAvLyBLZWVwIHN1cHByZXNzaW9uIGZsYWcgZm9yIHRoZSBuZXh0IHBhZ2UgbG9hZCAobG9naW4pIHNvIHdlIGRvbid0IGRvdWJsZSBwcm9tcHRcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBjb25maWcuYmFzZV91cmxfcmVsYXRpdmU7XG4gICAgfSk7XG5cbiAgICAvLyBPcGVuIG1vZGFsXG4gICAgaW5zdGFuY2Uub3BlbigpO1xufVxuXG4vLyBCaW5kIGEgalF1ZXJ5IGdsb2JhbCBhamF4IGVycm9yIHRyYXAgZm9yIGxlZ2FjeSBYSFIgcGF0aHNcbmV4cG9ydCBmdW5jdGlvbiBiaW5kR2xvYmFsQWpheFRyYXAoKSB7XG4gICAgJChkb2N1bWVudCkub2ZmKCdhamF4RXJyb3IuX2dyYXZfc2Vzc2lvbicpLm9uKCdhamF4RXJyb3IuX2dyYXZfc2Vzc2lvbicsIChldmVudCwgeGhyKSA9PiB7XG4gICAgICAgIGlmICgheGhyKSB7IHJldHVybjsgfVxuICAgICAgICBjb25zdCBzdGF0dXMgPSB4aHIuc3RhdHVzIHx8IDA7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwMSB8fCBzdGF0dXMgPT09IDQwMykge1xuICAgICAgICAgICAgc2hvd1Nlc3Npb25FeHBpcmVkTW9kYWwoKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG4vLyBJbnRlcmNlcHQgaW4tYWRtaW4gbGluayBjbGlja3MgdG8gc2hvdyB0aGUgbW9kYWwgYmVmb3JlIGFueSBzZXJ2ZXIgcmVkaXJlY3QgdG8gbG9naW5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YWxsTmF2aWdhdGlvbkd1YXJkKCkge1xuICAgICQoZG9jdW1lbnQpLm9mZignY2xpY2suX2dyYXZfc2Vzc2lvbl9uYXYnKS5vbignY2xpY2suX2dyYXZfc2Vzc2lvbl9uYXYnLCAnYVtocmVmXScsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgY29uc3QgJGEgPSAkKHRoaXMpO1xuICAgICAgICBjb25zdCBocmVmID0gJGEuYXR0cignaHJlZicpO1xuICAgICAgICBpZiAoIWhyZWYgfHwgaHJlZiA9PT0gJyMnIHx8IGhyZWYuaW5kZXhPZignamF2YXNjcmlwdDonKSA9PT0gMCkgeyByZXR1cm47IH1cbiAgICAgICAgaWYgKGUuaXNEZWZhdWx0UHJldmVudGVkKCkpIHsgcmV0dXJuOyB9XG4gICAgICAgIGlmICgkYS5hdHRyKCd0YXJnZXQnKSA9PT0gJ19ibGFuaycgfHwgZS5tZXRhS2V5IHx8IGUuY3RybEtleSB8fCBlLnNoaWZ0S2V5IHx8IGUuYWx0S2V5KSB7IHJldHVybjsgfVxuXG4gICAgICAgIC8vIE9ubHkgZ3VhcmQgYWRtaW4tcmVsYXRpdmUgbGlua3NcbiAgICAgICAgY29uc3QgYmFzZSA9ICh3aW5kb3cuR3JhdkFkbWluICYmIHdpbmRvdy5HcmF2QWRtaW4uY29uZmlnICYmIHdpbmRvdy5HcmF2QWRtaW4uY29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlKSB8fCAnJztcbiAgICAgICAgY29uc3QgaXNBZG1pbkxpbmsgPSBocmVmLmluZGV4T2YoYmFzZSArICcvJykgPT09IDAgfHwgaHJlZiA9PT0gYmFzZSB8fCBocmVmLmluZGV4T2YoJy8nKSA9PT0gMDtcbiAgICAgICAgaWYgKCFpc0FkbWluTGluaykgeyByZXR1cm47IH1cblxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgLy8gUXVpY2sgc2Vzc2lvbiBjaGVjaywgaWYgaW52YWxpZCBzaG93IG1vZGFsLCBlbHNlIHByb2NlZWQgd2l0aCBuYXZpZ2F0aW9uXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBLZWVwQWxpdmUuY2hlY2tPbmNlKCkudGhlbigob2spID0+IHtcbiAgICAgICAgICAgICAgICBpZiAob2spIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBocmVmO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNob3dTZXNzaW9uRXhwaXJlZE1vZGFsKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gT24gYW55IGVycm9yLCBqdXN0IG5hdmlnYXRlXG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGhyZWY7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgeyBzaG93U2Vzc2lvbkV4cGlyZWRNb2RhbCwgYmluZEdsb2JhbEFqYXhUcmFwIH07XG4iXSwibmFtZXMiOlsiJCIsImNvbmZpZyIsIktlZXBBbGl2ZSIsInNob3duIiwic2hvd1Nlc3Npb25FeHBpcmVkTW9kYWwiLCJsb2NhbFN0b3JhZ2UiLCJzZXRJdGVtIiwiZSIsInN0b3AiLCIkbW9kYWwiLCJsZW5ndGgiLCJodG1sIiwiYXBwZW5kIiwiaW5zdGFuY2UiLCJyZW1vZGFsIiwiaGFzaFRyYWNraW5nIiwiY2xvc2VPbkVzY2FwZSIsImNsb3NlT25PdXRzaWRlQ2xpY2siLCJjbG9zZU9uQ2FuY2VsIiwiY2xvc2VPbkNvbmZpcm0iLCJzdGFjayIsImFkZENsYXNzIiwib2ZmIiwib24iLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJiYXNlX3VybF9yZWxhdGl2ZSIsIm9wZW4iLCJiaW5kR2xvYmFsQWpheFRyYXAiLCJkb2N1bWVudCIsImV2ZW50IiwieGhyIiwic3RhdHVzIiwiaW5zdGFsbE5hdmlnYXRpb25HdWFyZCIsIiRhIiwiYXR0ciIsImluZGV4T2YiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJtZXRhS2V5IiwiY3RybEtleSIsInNoaWZ0S2V5IiwiYWx0S2V5IiwiYmFzZSIsIkdyYXZBZG1pbiIsImlzQWRtaW5MaW5rIiwicHJldmVudERlZmF1bHQiLCJjaGVja09uY2UiLCJ0aGVuIiwib2siLCJlcnIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/utils/session-expired.js\n\n}");
/***/ }),
/***/ "./app/utils/sidebar.js":
/*!******************************!*\
!*** ./app/utils/sidebar.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Instance: () => (/* binding */ Instance),\n/* harmony export */ \"default\": () => (/* binding */ Sidebar)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_cookies__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/cookies */ \"./app/utils/cookies.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\nvar MOBILE_BREAKPOINT = 48 - 0.062;\nvar DESKTOP_BREAKPOINT = 75 + 0.063;\nvar EVENTS = 'touchstart._grav click._grav';\nvar TARGETS = '[data-sidebar-mobile-toggle], #overlay';\nvar MOBILE_QUERY = \"(max-width: \".concat(MOBILE_BREAKPOINT, \"em)\");\nvar DESKTOP_QUERY = \"(min-width: \".concat(DESKTOP_BREAKPOINT, \"em)\");\nvar map = new __webpack_require__.g.Map();\nvar Sidebar = /*#__PURE__*/function () {\n function Sidebar() {\n _classCallCheck(this, Sidebar);\n this.timeout = null;\n this.isOpen = false;\n this.body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n this.matchMedia = __webpack_require__.g.matchMedia(MOBILE_QUERY);\n this.enable();\n }\n return _createClass(Sidebar, [{\n key: \"enable\",\n value: function enable() {\n var sidebar = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar');\n this.matchMedia.addListener(this._getBound('checkMatch'));\n this.checkMatch(this.matchMedia);\n this.body.on(EVENTS, '[data-sidebar-toggle]', this._getBound('toggleSidebarState'));\n if (sidebar.data('quickopen')) {\n sidebar.hover(this._getBound('quickOpenIn'), this._getBound('quickOpenOut'));\n }\n }\n }, {\n key: \"disable\",\n value: function disable() {\n var sidebar = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar');\n this.close();\n this.matchMedia.removeListener(this._getBound('checkMatch'));\n this.body.off(EVENTS, '[data-sidebar-toggle]', this._getBound('toggleSidebarState'));\n if (sidebar.data('quickopen')) {\n sidebar.off('mouseenter mouseleave');\n }\n }\n }, {\n key: \"attach\",\n value: function attach() {\n this.body.on(EVENTS, TARGETS, this._getBound('toggle'));\n }\n }, {\n key: \"detach\",\n value: function detach() {\n this.body.off(EVENTS, TARGETS, this._getBound('toggle'));\n }\n }, {\n key: \"quickOpenIn\",\n value: function quickOpenIn(/* event */\n ) {\n var _this = this;\n var isDesktop = __webpack_require__.g.matchMedia(DESKTOP_QUERY).matches;\n var delay = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar').data('quickopen-delay') || 500;\n if (this.body.hasClass('sidebar-mobile-open')) {\n return;\n }\n var shouldQuickOpen = isDesktop ? this.body.hasClass('sidebar-closed') : !this.body.hasClass('sidebar-open');\n if (!shouldQuickOpen && !this.body.hasClass('sidebar-quickopen')) {\n return this.quickOpenOut();\n }\n this.timeout = setTimeout(function () {\n _this.body.addClass('sidebar-open sidebar-quickopen');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).trigger('sidebar_state._grav', isDesktop);\n }, delay);\n }\n }, {\n key: \"quickOpenOut\",\n value: function quickOpenOut(/* event */\n ) {\n clearTimeout(this.timeout);\n if (this.body.hasClass('sidebar-quickopen')) {\n this.body.removeClass('sidebar-open sidebar-quickopen');\n }\n return true;\n }\n }, {\n key: \"open\",\n value: function open(event) {\n var _this2 = this;\n var quick = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (event) {\n event.preventDefault();\n }\n var overlay = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#overlay');\n var sidebar = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar');\n this.body.addClass('sidebar-mobile-open');\n overlay.css('display', 'block');\n if (!quick) {\n sidebar.css('display', 'block').animate({\n opacity: 1\n }, 200, function () {\n _this2.isOpen = true;\n });\n } else {\n sidebar.css({\n display: 'block',\n opacity: 1\n });\n this.isOpen = true;\n }\n }\n }, {\n key: \"close\",\n value: function close(event) {\n var _this3 = this;\n var quick = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (event) {\n event.preventDefault();\n }\n var overlay = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#overlay');\n var sidebar = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar');\n this.body.removeClass('sidebar-mobile-open');\n overlay.css('display', 'none');\n if (!quick) {\n sidebar.animate({\n opacity: 0\n }, 200, function () {\n sidebar.css('display', 'none');\n _this3.isOpen = false;\n });\n } else {\n sidebar.css({\n opacity: 0,\n display: 'none'\n });\n this.isOpen = false;\n }\n }\n }, {\n key: \"toggle\",\n value: function toggle(event) {\n if (event) {\n event.preventDefault();\n }\n return this[this.isOpen ? 'close' : 'open'](event);\n }\n }, {\n key: \"toggleSidebarState\",\n value: function toggleSidebarState(event) {\n if (event) {\n event.preventDefault();\n }\n clearTimeout(this.timeout);\n var isDesktop = __webpack_require__.g.matchMedia(DESKTOP_QUERY).matches;\n var cookie = null;\n if (isDesktop) {\n this.body.removeClass('sidebar-open');\n }\n if (!isDesktop) {\n this.body.removeClass('sidebar-closed');\n this.body.removeClass('sidebar-mobile-open');\n }\n this.body.toggleClass(\"sidebar-\".concat(isDesktop ? 'closed' : 'open'));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).trigger('sidebar_state._grav', isDesktop);\n if (isDesktop) {\n cookie = !this.body.hasClass('sidebar-closed');\n } else {\n cookie = this.body.hasClass('sidebar-open');\n }\n _utils_cookies__WEBPACK_IMPORTED_MODULE_1__[\"default\"].set('grav-admin-sidebar', cookie, {\n expires: Infinity\n });\n }\n }, {\n key: \"checkMatch\",\n value: function checkMatch(data) {\n var sidebar = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar');\n var overlay = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#overlay');\n this.isOpen = false;\n overlay.css('display', 'none');\n sidebar.css({\n display: data.matches ? 'none' : 'inherit',\n opacity: data.matches ? 0 : 1\n });\n if (data.matches) {\n this.body.removeClass('sidebar-open sidebar-closed');\n }\n this[data.matches ? 'attach' : 'detach']();\n }\n }, {\n key: \"_resetMap\",\n value: function _resetMap() {\n return map.clear();\n }\n }, {\n key: \"_getBound\",\n value: function _getBound(fn) {\n if (map.has(fn)) {\n return map.get(fn);\n }\n return map.set(fn, this[fn].bind(this)).get(fn);\n }\n }]);\n}();\n\nvar Instance = new Sidebar();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RyxDQUFDSyxFQUFFLEVBQUUsSUFBSSxDQUFDQSxFQUFFLENBQUMsQ0FBQ0csSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUNELEdBQUcsQ0FBQ0YsRUFBRSxDQUFDO0lBQ25EO0VBQUM7QUFBQTtBQXBLdUI7QUF1S3JCLElBQUlLLFFBQVEsR0FBRyxJQUFJaEUsT0FBTyxDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3NpZGViYXIuanM/MzM1MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IENvb2tpZXMgZnJvbSAnLi4vdXRpbHMvY29va2llcyc7XG5cbmNvbnN0IE1PQklMRV9CUkVBS1BPSU5UID0gNDggLSAwLjA2MjtcbmNvbnN0IERFU0tUT1BfQlJFQUtQT0lOVCA9IDc1ICsgMC4wNjM7XG5jb25zdCBFVkVOVFMgPSAndG91Y2hzdGFydC5fZ3JhdiBjbGljay5fZ3Jhdic7XG5jb25zdCBUQVJHRVRTID0gJ1tkYXRhLXNpZGViYXItbW9iaWxlLXRvZ2dsZV0sICNvdmVybGF5JztcbmNvbnN0IE1PQklMRV9RVUVSWSA9IGAobWF4LXdpZHRoOiAke01PQklMRV9CUkVBS1BPSU5UfWVtKWA7XG5jb25zdCBERVNLVE9QX1FVRVJZID0gYChtaW4td2lkdGg6ICR7REVTS1RPUF9CUkVBS1BPSU5UfWVtKWA7XG5cbmxldCBtYXAgPSBuZXcgZ2xvYmFsLk1hcCgpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTaWRlYmFyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy50aW1lb3V0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ib2R5ID0gJCgnYm9keScpO1xuICAgICAgICB0aGlzLm1hdGNoTWVkaWEgPSBnbG9iYWwubWF0Y2hNZWRpYShNT0JJTEVfUVVFUlkpO1xuICAgICAgICB0aGlzLmVuYWJsZSgpO1xuICAgIH1cblxuICAgIGVuYWJsZSgpIHtcbiAgICAgICAgY29uc3Qgc2lkZWJhciA9ICQoJyNhZG1pbi1zaWRlYmFyJyk7XG5cbiAgICAgICAgdGhpcy5tYXRjaE1lZGlhLmFkZExpc3RlbmVyKHRoaXMuX2dldEJvdW5kKCdjaGVja01hdGNoJykpO1xuICAgICAgICB0aGlzLmNoZWNrTWF0Y2godGhpcy5tYXRjaE1lZGlhKTtcbiAgICAgICAgdGhpcy5ib2R5Lm9uKEVWRU5UUywgJ1tkYXRhLXNpZGViYXItdG9nZ2xlXScsIHRoaXMuX2dldEJvdW5kKCd0b2dnbGVTaWRlYmFyU3RhdGUnKSk7XG5cbiAgICAgICAgaWYgKHNpZGViYXIuZGF0YSgncXVpY2tvcGVuJykpIHtcbiAgICAgICAgICAgIHNpZGViYXIuaG92ZXIodGhpcy5fZ2V0Qm91bmQoJ3F1aWNrT3BlbkluJyksIHRoaXMuX2dldEJvdW5kKCdxdWlja09wZW5PdXQnKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkaXNhYmxlKCkge1xuICAgICAgICBjb25zdCBzaWRlYmFyID0gJCgnI2FkbWluLXNpZGViYXInKTtcblxuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIHRoaXMubWF0Y2hNZWRpYS5yZW1vdmVMaXN0ZW5lcih0aGlzLl9nZXRCb3VuZCgnY2hlY2tNYXRjaCcpKTtcbiAgICAgICAgdGhpcy5ib2R5Lm9mZihFVkVOVFMsICdbZGF0YS1zaWRlYmFyLXRvZ2dsZV0nLCB0aGlzLl9nZXRCb3VuZCgndG9nZ2xlU2lkZWJhclN0YXRlJykpO1xuICAgICAgICBpZiAoc2lkZWJhci5kYXRhKCdxdWlja29wZW4nKSkge1xuICAgICAgICAgICAgc2lkZWJhci5vZmYoJ21vdXNlZW50ZXIgbW91c2VsZWF2ZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXR0YWNoKCkge1xuICAgICAgICB0aGlzLmJvZHkub24oRVZFTlRTLCBUQVJHRVRTLCB0aGlzLl9nZXRCb3VuZCgndG9nZ2xlJykpO1xuICAgIH1cblxuICAgIGRldGFjaCgpIHtcbiAgICAgICAgdGhpcy5ib2R5Lm9mZihFVkVOVFMsIFRBUkdFVFMsIHRoaXMuX2dldEJvdW5kKCd0b2dnbGUnKSk7XG4gICAgfVxuXG4gICAgcXVpY2tPcGVuSW4oLyogZXZlbnQgKi8pIHtcbiAgICAgICAgbGV0IGlzRGVza3RvcCA9IGdsb2JhbC5tYXRjaE1lZGlhKERFU0tUT1BfUVVFUlkpLm1hdGNoZXM7XG4gICAgICAgIGxldCBkZWxheSA9ICQoJyNhZG1pbi1zaWRlYmFyJykuZGF0YSgncXVpY2tvcGVuLWRlbGF5JykgfHwgNTAwO1xuICAgICAgICBpZiAodGhpcy5ib2R5Lmhhc0NsYXNzKCdzaWRlYmFyLW1vYmlsZS1vcGVuJykpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgbGV0IHNob3VsZFF1aWNrT3BlbiA9IGlzRGVza3RvcCA/IHRoaXMuYm9keS5oYXNDbGFzcygnc2lkZWJhci1jbG9zZWQnKSA6ICF0aGlzLmJvZHkuaGFzQ2xhc3MoJ3NpZGViYXItb3BlbicpO1xuICAgICAgICBpZiAoIXNob3VsZFF1aWNrT3BlbiAmJiAhdGhpcy5ib2R5Lmhhc0NsYXNzKCdzaWRlYmFyLXF1aWNrb3BlbicpKSB7IHJldHVybiB0aGlzLnF1aWNrT3Blbk91dCgpOyB9XG5cbiAgICAgICAgdGhpcy50aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmJvZHkuYWRkQ2xhc3MoJ3NpZGViYXItb3BlbiBzaWRlYmFyLXF1aWNrb3BlbicpO1xuICAgICAgICAgICAgJChnbG9iYWwpLnRyaWdnZXIoJ3NpZGViYXJfc3RhdGUuX2dyYXYnLCBpc0Rlc2t0b3ApO1xuICAgICAgICB9LCBkZWxheSk7XG4gICAgfVxuXG4gICAgcXVpY2tPcGVuT3V0KC8qIGV2ZW50ICovKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xuICAgICAgICBpZiAodGhpcy5ib2R5Lmhhc0NsYXNzKCdzaWRlYmFyLXF1aWNrb3BlbicpKSB7XG4gICAgICAgICAgICB0aGlzLmJvZHkucmVtb3ZlQ2xhc3MoJ3NpZGViYXItb3BlbiBzaWRlYmFyLXF1aWNrb3BlbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgb3BlbihldmVudCwgcXVpY2sgPSBmYWxzZSkge1xuICAgICAgICBpZiAoZXZlbnQpIHsgZXZlbnQucHJldmVudERlZmF1bHQoKTsgfVxuICAgICAgICBsZXQgb3ZlcmxheSA9ICQoJyNvdmVybGF5Jyk7XG4gICAgICAgIGxldCBzaWRlYmFyID0gJCgnI2FkbWluLXNpZGViYXInKTtcblxuICAgICAgICB0aGlzLmJvZHkuYWRkQ2xhc3MoJ3NpZGViYXItbW9iaWxlLW9wZW4nKTtcbiAgICAgICAgb3ZlcmxheS5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKTtcblxuICAgICAgICBpZiAoIXF1aWNrKSB7XG4gICAgICAgICAgICBzaWRlYmFyLmNzcygnZGlzcGxheScsICdibG9jaycpLmFuaW1hdGUoe1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDFcbiAgICAgICAgICAgIH0sIDIwMCwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2lkZWJhci5jc3MoeyBkaXNwbGF5OiAnYmxvY2snLCBvcGFjaXR5OiAxIH0pO1xuICAgICAgICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xvc2UoZXZlbnQsIHF1aWNrID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKGV2ZW50KSB7IGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IH1cbiAgICAgICAgbGV0IG92ZXJsYXkgPSAkKCcjb3ZlcmxheScpO1xuICAgICAgICBsZXQgc2lkZWJhciA9ICQoJyNhZG1pbi1zaWRlYmFyJyk7XG5cbiAgICAgICAgdGhpcy5ib2R5LnJlbW92ZUNsYXNzKCdzaWRlYmFyLW1vYmlsZS1vcGVuJyk7XG4gICAgICAgIG92ZXJsYXkuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblxuICAgICAgICBpZiAoIXF1aWNrKSB7XG4gICAgICAgICAgICBzaWRlYmFyLmFuaW1hdGUoe1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDBcbiAgICAgICAgICAgIH0sIDIwMCwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNpZGViYXIuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzaWRlYmFyLmNzcyh7IG9wYWNpdHk6IDAsIGRpc3BsYXk6ICdub25lJyB9KTtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b2dnbGUoZXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50KSB7IGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IH1cbiAgICAgICAgcmV0dXJuIHRoaXNbdGhpcy5pc09wZW4gPyAnY2xvc2UnIDogJ29wZW4nXShldmVudCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlU2lkZWJhclN0YXRlKGV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudCkgeyBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyB9XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xuICAgICAgICBsZXQgaXNEZXNrdG9wID0gZ2xvYmFsLm1hdGNoTWVkaWEoREVTS1RPUF9RVUVSWSkubWF0Y2hlcztcbiAgICAgICAgbGV0IGNvb2tpZSA9IG51bGw7XG5cbiAgICAgICAgaWYgKGlzRGVza3RvcCkge1xuICAgICAgICAgICAgdGhpcy5ib2R5LnJlbW92ZUNsYXNzKCdzaWRlYmFyLW9wZW4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNEZXNrdG9wKSB7XG4gICAgICAgICAgICB0aGlzLmJvZHkucmVtb3ZlQ2xhc3MoJ3NpZGViYXItY2xvc2VkJyk7XG4gICAgICAgICAgICB0aGlzLmJvZHkucmVtb3ZlQ2xhc3MoJ3NpZGViYXItbW9iaWxlLW9wZW4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYm9keS50b2dnbGVDbGFzcyhgc2lkZWJhci0ke2lzRGVza3RvcCA/ICdjbG9zZWQnIDogJ29wZW4nfWApO1xuICAgICAgICAkKGdsb2JhbCkudHJpZ2dlcignc2lkZWJhcl9zdGF0ZS5fZ3JhdicsIGlzRGVza3RvcCk7XG5cbiAgICAgICAgaWYgKGlzRGVza3RvcCkge1xuICAgICAgICAgICAgY29va2llID0gIXRoaXMuYm9keS5oYXNDbGFzcygnc2lkZWJhci1jbG9zZWQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvb2tpZSA9IHRoaXMuYm9keS5oYXNDbGFzcygnc2lkZWJhci1vcGVuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBDb29raWVzLnNldCgnZ3Jhdi1hZG1pbi1zaWRlYmFyJywgY29va2llLCB7IGV4cGlyZXM6IEluZmluaXR5IH0pO1xuICAgIH1cblxuICAgIGNoZWNrTWF0Y2goZGF0YSkge1xuICAgICAgICBsZXQgc2lkZWJhciA9ICQoJyNhZG1pbi1zaWRlYmFyJyk7XG4gICAgICAgIGxldCBvdmVybGF5ID0gJCgnI292ZXJsYXknKTtcbiAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcblxuICAgICAgICBvdmVybGF5LmNzcygnZGlzcGxheScsICdub25lJyk7XG4gICAgICAgIHNpZGViYXIuY3NzKHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGRhdGEubWF0Y2hlcyA/ICdub25lJyA6ICdpbmhlcml0JyxcbiAgICAgICAgICAgIG9wYWNpdHk6IGRhdGEubWF0Y2hlcyA/IDAgOiAxXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChkYXRhLm1hdGNoZXMpIHtcbiAgICAgICAgICAgIHRoaXMuYm9keS5yZW1vdmVDbGFzcygnc2lkZWJhci1vcGVuIHNpZGViYXItY2xvc2VkJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzW2RhdGEubWF0Y2hlcyA/ICdhdHRhY2gnIDogJ2RldGFjaCddKCk7XG4gICAgfVxuXG4gICAgX3Jlc2V0TWFwKCkge1xuICAgICAgICByZXR1cm4gbWFwLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgX2dldEJvdW5kKGZuKSB7XG4gICAgICAgIGlmIChtYXAuaGFzKGZuKSkge1xuICAgICAgICAgICAgcmV0dXJuIG1hcC5nZXQoZm4pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1hcC5zZXQoZm4sIHRoaXNbZm5dLmJpbmQodGhpcykpLmdldChmbik7XG4gICAgfVxufVxuXG5leHBvcnQgbGV0IEluc3RhbmNlID0gbmV3IFNpZGViYXIoKTtcbiJdLCJuYW1lcyI6WyIkIiwiQ29va2llcyIsIk1PQklMRV9CUkVBS1BPSU5UIiwiREVTS1RPUF9CUkVBS1BPSU5UIiwiRVZFTlRTIiwiVEFSR0VUUyIsIk1PQklMRV9RVUVSWSIsImNvbmNhdCIsIkRFU0tUT1BfUVVFUlkiLCJtYXAiLCJnbG9iYWwiLCJNYXAiLCJTaWRlYmFyIiwiX2NsYXNzQ2FsbENoZWNrIiwidGltZW91dCIsImlzT3BlbiIsImJvZHkiLCJtYXRjaE1lZGlhIiwiZW5hYmxlIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJzaWRlYmFyIiwiYWRkTGlzdGVuZXIiLCJfZ2V0Qm91bmQiLCJjaGVja01hdGNoIiwib24iLCJkYXRhIiwiaG92ZXIiLCJkaXNhYmxlIiwiY2xvc2UiLCJyZW1vdmVMaXN0ZW5lciIsIm9mZiIsImF0dGFjaCIsImRldGFjaCIsInF1aWNrT3BlbkluIiwiX3RoaXMiLCJpc0Rlc2t0b3AiLCJtYXRjaGVzIiwiZGVsYXkiLCJoYXNDbGFzcyIsInNob3VsZFF1aWNrT3BlbiIsInF1aWNrT3Blbk91dCIsInNldFRpbWVvdXQiLCJhZGRDbGFzcyIsInRyaWdnZXIiLCJjbGVhclRpbWVvdXQiLCJyZW1vdmVDbGFzcyIsIm9wZW4iLCJldmVudCIsIl90aGlzMiIsInF1aWNrIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwicHJldmVudERlZmF1bHQiLCJvdmVybGF5IiwiY3NzIiwiYW5pbWF0ZSIsIm9wYWNpdHkiLCJkaXNwbGF5IiwiX3RoaXMzIiwidG9nZ2xlIiwidG9nZ2xlU2lkZWJhclN0YXRlIiwiY29va2llIiwidG9nZ2xlQ2xhc3MiLCJzZXQiLCJleHBpcmVzIiwiSW5maW5pdHkiLCJfcmVzZXRNYXAiLCJjbGVhciIsImZuIiwiaGFzIiwiZ2V0IiwiYmluZCIsImRlZmF1bHQiLCJJbnN0YW5jZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/sidebar.js\n\n}");
/***/ }),
/***/ "./app/utils/storage.js":
/*!******************************!*\
!*** ./app/utils/storage.js ***!
\******************************/
/***/ (() => {
eval("{// localStorage\n(function () {\n function isSupported() {\n var item = 'localStoragePollyfill';\n try {\n localStorage.setItem(item, item);\n localStorage.removeItem(item);\n sessionStorage.setItem(item, item);\n sessionStorage.removeItem(item);\n return true;\n } catch (e) {\n return false;\n }\n }\n if (!isSupported()) {\n try {\n Storage.prototype._data = {};\n Storage.prototype.setItem = function (id, val) {\n this._data[id] = String(val);\n return this._data[id];\n };\n Storage.prototype.getItem = function (id) {\n return this._data.hasOwnProperty(id) ? this._data[id] : undefined;\n };\n Storage.prototype.removeItem = function (id) {\n return delete this._data[id];\n };\n Storage.prototype.clear = function () {\n this._data = {};\n return this._data;\n };\n } catch (e) {\n console.error('localStorage pollyfill error: ', e);\n }\n }\n})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvc3RvcmFnZS5qcyIsIm5hbWVzIjpbImlzU3VwcG9ydGVkIiwiaXRlbSIsImxvY2FsU3RvcmFnZSIsInNldEl0ZW0iLCJyZW1vdmVJdGVtIiwic2Vzc2lvblN0b3JhZ2UiLCJlIiwiU3RvcmFnZSIsInByb3RvdHlwZSIsIl9kYXRhIiwiaWQiLCJ2YWwiLCJTdHJpbmciLCJnZXRJdGVtIiwiaGFzT3duUHJvcGVydHkiLCJ1bmRlZmluZWQiLCJjbGVhciIsImNvbnNvbGUiLCJlcnJvciJdLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC91dGlscy9zdG9yYWdlLmpzP2I1MzYiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gbG9jYWxTdG9yYWdlXG4oZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gaXNTdXBwb3J0ZWQoKSB7XG4gICAgICAgIHZhciBpdGVtID0gJ2xvY2FsU3RvcmFnZVBvbGx5ZmlsbCc7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShpdGVtLCBpdGVtKTtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGl0ZW0pO1xuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShpdGVtLCBpdGVtKTtcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oaXRlbSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFpc1N1cHBvcnRlZCgpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBTdG9yYWdlLnByb3RvdHlwZS5fZGF0YSA9IHt9O1xuXG4gICAgICAgICAgICBTdG9yYWdlLnByb3RvdHlwZS5zZXRJdGVtID0gZnVuY3Rpb24oaWQsIHZhbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFbaWRdID0gU3RyaW5nKHZhbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFbaWRdO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgU3RvcmFnZS5wcm90b3R5cGUuZ2V0SXRlbSA9IGZ1bmN0aW9uKGlkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGEuaGFzT3duUHJvcGVydHkoaWQpID8gdGhpcy5fZGF0YVtpZF0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBTdG9yYWdlLnByb3RvdHlwZS5yZW1vdmVJdGVtID0gZnVuY3Rpb24oaWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVsZXRlIHRoaXMuX2RhdGFbaWRdO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgU3RvcmFnZS5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhID0ge307XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdsb2NhbFN0b3JhZ2UgcG9sbHlmaWxsIGVycm9yOiAnLCBlKTtcbiAgICAgICAgfVxuICAgIH1cbn0oKSk7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0MsYUFBVztFQUNSLFNBQVNBLFdBQVdBLENBQUEsRUFBRztJQUNuQixJQUFJQyxJQUFJLEdBQUcsdUJBQXVCO0lBQ2xDLElBQUk7TUFDQUMsWUFBWSxDQUFDQyxPQUFPLENBQUNGLElBQUksRUFBRUEsSUFBSSxDQUFDO01BQ2hDQyxZQUFZLENBQUNFLFVBQVUsQ0FBQ0gsSUFBSSxDQUFDO01BQzdCSSxjQUFjLENBQUNGLE9BQU8sQ0FBQ0YsSUFBSSxFQUFFQSxJQUFJLENBQUM7TUFDbENJLGNBQWMsQ0FBQ0QsVUFBVSxDQUFDSCxJQUFJLENBQUM7TUFDL0IsT0FBTyxJQUFJO0lBQ2YsQ0FBQyxDQUFDLE9BQU9LLENBQUMsRUFBRTtNQUNSLE9BQU8sS0FBSztJQUNoQjtFQUNKO0VBRUEsSUFBSSxDQUFDTixXQUFXLENBQUMsQ0FBQyxFQUFFO0lBQ2hCLElBQUk7TUFDQU8sT0FBTyxDQUFDQyxTQUFTLENBQUNDLEtBQUssR0FBRyxDQUFDLENBQUM7TUFFNUJGLE9BQU8sQ0FBQ0MsU0FBUyxDQUFDTCxPQUFPLEdBQUcsVUFBU08sRUFBRSxFQUFFQyxHQUFHLEVBQUU7UUFDMUMsSUFBSSxDQUFDRixLQUFLLENBQUNDLEVBQUUsQ0FBQyxHQUFHRSxNQUFNLENBQUNELEdBQUcsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQ0YsS0FBSyxDQUFDQyxFQUFFLENBQUM7TUFDekIsQ0FBQztNQUVESCxPQUFPLENBQUNDLFNBQVMsQ0FBQ0ssT0FBTyxHQUFHLFVBQVNILEVBQUUsRUFBRTtRQUNyQyxPQUFPLElBQUksQ0FBQ0QsS0FBSyxDQUFDSyxjQUFjLENBQUNKLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQ0QsS0FBSyxDQUFDQyxFQUFFLENBQUMsR0FBR0ssU0FBUztNQUNyRSxDQUFDO01BRURSLE9BQU8sQ0FBQ0MsU0FBUyxDQUFDSixVQUFVLEdBQUcsVUFBU00sRUFBRSxFQUFFO1FBQ3hDLE9BQU8sT0FBTyxJQUFJLENBQUNELEtBQUssQ0FBQ0MsRUFBRSxDQUFDO01BQ2hDLENBQUM7TUFFREgsT0FBTyxDQUFDQyxTQUFTLENBQUNRLEtBQUssR0FBRyxZQUFXO1FBQ2pDLElBQUksQ0FBQ1AsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNmLE9BQU8sSUFBSSxDQUFDQSxLQUFLO01BQ3JCLENBQUM7SUFDTCxDQUFDLENBQUMsT0FBT0gsQ0FBQyxFQUFFO01BQ1JXLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLGdDQUFnQyxFQUFFWixDQUFDLENBQUM7SUFDdEQ7RUFDSjtBQUNKLENBQUMsRUFBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119\n//# sourceURL=webpack-internal:///./app/utils/storage.js\n\n}");
/***/ }),
/***/ "./app/utils/tabs-memory.js":
/*!**********************************!*\
!*** ./app/utils/tabs-memory.js ***!
\**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_cookies__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/cookies */ \"./app/utils/cookies.js\");\n/* harmony import */ var _forms_fields_editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../forms/fields/editor */ \"./app/forms/fields/editor.js\");\n\n\n\nvar Data = JSON.parse(_utils_cookies__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get('grav-tabs-state') || '{}');\njquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('touchstart click', '[data-tabid]', function (event) {\n event && event.stopPropagation();\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n Data[target.data('tabkey')] = target.data('scope');\n _utils_cookies__WEBPACK_IMPORTED_MODULE_1__[\"default\"].set('grav-tabs-state', JSON.stringify(Data), {\n expires: Infinity\n });\n var panel = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[id=\\\"\".concat(target.data('tabid'), \"\\\"]\"));\n target.siblings('[data-tabid]').removeClass('active');\n target.addClass('active');\n panel.siblings('[id]').removeClass('active');\n panel.addClass('active');\n _forms_fields_editor__WEBPACK_IMPORTED_MODULE_2__.Instance.editors.each(function (index, editor) {\n var codemirror = jquery__WEBPACK_IMPORTED_MODULE_0___default()(editor).data('codemirror');\n if (!codemirror) {\n return;\n }\n if (codemirror.display.lastWrapWidth === 0) {\n codemirror.refresh();\n }\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvdGFicy1tZW1vcnkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBdUI7QUFDZ0I7QUFDc0I7QUFFN0QsSUFBSUksSUFBSSxHQUFHQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0wsc0RBQU8sQ0FBQ00sR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksSUFBSSxDQUFDO0FBRTdEUCw2Q0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDUSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFVBQUNDLEtBQUssRUFBSztFQUN4REEsS0FBSyxJQUFJQSxLQUFLLENBQUNDLGVBQWUsQ0FBQyxDQUFDO0VBQ2hDLElBQUlDLE1BQU0sR0FBR1gsNkNBQUMsQ0FBQ1MsS0FBSyxDQUFDRyxhQUFhLENBQUM7RUFFbkNSLElBQUksQ0FBQ08sTUFBTSxDQUFDRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBR0YsTUFBTSxDQUFDRSxJQUFJLENBQUMsT0FBTyxDQUFDO0VBQ2xEWixzREFBTyxDQUFDYSxHQUFHLENBQUMsaUJBQWlCLEVBQUVULElBQUksQ0FBQ1UsU0FBUyxDQUFDWCxJQUFJLENBQUMsRUFBRTtJQUFFWSxPQUFPLEVBQUVDO0VBQVMsQ0FBQyxDQUFDO0VBRTNFLElBQU1DLEtBQUssR0FBR2xCLDZDQUFDLFVBQUFtQixNQUFBLENBQVNSLE1BQU0sQ0FBQ0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFJLENBQUM7RUFFakRGLE1BQU0sQ0FBQ1MsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDQyxXQUFXLENBQUMsUUFBUSxDQUFDO0VBQ3JEVixNQUFNLENBQUNXLFFBQVEsQ0FBQyxRQUFRLENBQUM7RUFFekJKLEtBQUssQ0FBQ0UsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDQyxXQUFXLENBQUMsUUFBUSxDQUFDO0VBQzVDSCxLQUFLLENBQUNJLFFBQVEsQ0FBQyxRQUFRLENBQUM7RUFFeEJuQiwwREFBTyxDQUFDb0IsT0FBTyxDQUFDQyxJQUFJLENBQUMsVUFBQ0MsS0FBSyxFQUFFQyxNQUFNLEVBQUs7SUFDcEMsSUFBSUMsVUFBVSxHQUFHM0IsNkNBQUMsQ0FBQzBCLE1BQU0sQ0FBQyxDQUFDYixJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdDLElBQUksQ0FBQ2MsVUFBVSxFQUFFO01BQUU7SUFBUTtJQUMzQixJQUFJQSxVQUFVLENBQUNDLE9BQU8sQ0FBQ0MsYUFBYSxLQUFLLENBQUMsRUFBRTtNQUN4Q0YsVUFBVSxDQUFDRyxPQUFPLENBQUMsQ0FBQztJQUN4QjtFQUNKLENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXRpbHMvdGFicy1tZW1vcnkuanM/MzliMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IENvb2tpZXMgZnJvbSAnLi4vdXRpbHMvY29va2llcyc7XG5pbXBvcnQgeyBJbnN0YW5jZSBhcyBFZGl0b3JzIH0gZnJvbSAnLi4vZm9ybXMvZmllbGRzL2VkaXRvcic7XG5cbmxldCBEYXRhID0gSlNPTi5wYXJzZShDb29raWVzLmdldCgnZ3Jhdi10YWJzLXN0YXRlJykgfHwgJ3t9Jyk7XG5cbiQoJ2JvZHknKS5vbigndG91Y2hzdGFydCBjbGljaycsICdbZGF0YS10YWJpZF0nLCAoZXZlbnQpID0+IHtcbiAgICBldmVudCAmJiBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBsZXQgdGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcblxuICAgIERhdGFbdGFyZ2V0LmRhdGEoJ3RhYmtleScpXSA9IHRhcmdldC5kYXRhKCdzY29wZScpO1xuICAgIENvb2tpZXMuc2V0KCdncmF2LXRhYnMtc3RhdGUnLCBKU09OLnN0cmluZ2lmeShEYXRhKSwgeyBleHBpcmVzOiBJbmZpbml0eSB9KTtcblxuICAgIGNvbnN0IHBhbmVsID0gJChgW2lkPVwiJHt0YXJnZXQuZGF0YSgndGFiaWQnKX1cIl1gKTtcblxuICAgIHRhcmdldC5zaWJsaW5ncygnW2RhdGEtdGFiaWRdJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgIHRhcmdldC5hZGRDbGFzcygnYWN0aXZlJyk7XG5cbiAgICBwYW5lbC5zaWJsaW5ncygnW2lkXScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICBwYW5lbC5hZGRDbGFzcygnYWN0aXZlJyk7XG5cbiAgICBFZGl0b3JzLmVkaXRvcnMuZWFjaCgoaW5kZXgsIGVkaXRvcikgPT4ge1xuICAgICAgICBsZXQgY29kZW1pcnJvciA9ICQoZWRpdG9yKS5kYXRhKCdjb2RlbWlycm9yJyk7XG4gICAgICAgIGlmICghY29kZW1pcnJvcikgeyByZXR1cm47IH1cbiAgICAgICAgaWYgKGNvZGVtaXJyb3IuZGlzcGxheS5sYXN0V3JhcFdpZHRoID09PSAwKSB7XG4gICAgICAgICAgICBjb2RlbWlycm9yLnJlZnJlc2goKTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG4iXSwibmFtZXMiOlsiJCIsIkNvb2tpZXMiLCJJbnN0YW5jZSIsIkVkaXRvcnMiLCJEYXRhIiwiSlNPTiIsInBhcnNlIiwiZ2V0Iiwib24iLCJldmVudCIsInN0b3BQcm9wYWdhdGlvbiIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJkYXRhIiwic2V0Iiwic3RyaW5naWZ5IiwiZXhwaXJlcyIsIkluZmluaXR5IiwicGFuZWwiLCJjb25jYXQiLCJzaWJsaW5ncyIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCJlZGl0b3JzIiwiZWFjaCIsImluZGV4IiwiZWRpdG9yIiwiY29kZW1pcnJvciIsImRpc3BsYXkiLCJsYXN0V3JhcFdpZHRoIiwicmVmcmVzaCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/tabs-memory.js\n\n}");
/***/ }),
/***/ "./app/utils/toastr.js":
/*!*****************************!*\
!*** ./app/utils/toastr.js ***!
\*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var toastr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! toastr */ \"./node_modules/toastr/toastr.js\");\n/* harmony import */ var toastr__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(toastr__WEBPACK_IMPORTED_MODULE_0__);\n\n(toastr__WEBPACK_IMPORTED_MODULE_0___default().options).positionClass = 'toast-top-right';\n(toastr__WEBPACK_IMPORTED_MODULE_0___default().options).preventDuplicates = true;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((toastr__WEBPACK_IMPORTED_MODULE_0___default()));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvdG9hc3RyLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE0QjtBQUU1QkEsdURBQWMsQ0FBQ0UsYUFBYSxHQUFHLGlCQUFpQjtBQUNoREYsdURBQWMsQ0FBQ0csaUJBQWlCLEdBQUcsSUFBSTtBQUV2QyxpRUFBZUgsK0NBQU0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3RvYXN0ci5qcz9jZjdiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0b2FzdHIgZnJvbSAndG9hc3RyJztcblxudG9hc3RyLm9wdGlvbnMucG9zaXRpb25DbGFzcyA9ICd0b2FzdC10b3AtcmlnaHQnO1xudG9hc3RyLm9wdGlvbnMucHJldmVudER1cGxpY2F0ZXMgPSB0cnVlO1xuXG5leHBvcnQgZGVmYXVsdCB0b2FzdHI7XG4iXSwibmFtZXMiOlsidG9hc3RyIiwib3B0aW9ucyIsInBvc2l0aW9uQ2xhc3MiLCJwcmV2ZW50RHVwbGljYXRlcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/toastr.js\n\n}");
/***/ }),
/***/ "./app/whitelabel/compile.js":
/*!***********************************!*\
!*** ./app/whitelabel/compile.js ***!
\***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ prepareElement: () => (/* binding */ prepareElement),\n/* harmony export */ resetElement: () => (/* binding */ resetElement)\n/* harmony export */ });\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$preview = _ref.preview,\n preview = _ref$preview === void 0 ? false : _ref$preview,\n _ref$exportScss = _ref.exportScss,\n exportScss = _ref$exportScss === void 0 ? false : _ref$exportScss,\n _ref$color_scheme = _ref.color_scheme,\n color_scheme = _ref$color_scheme === void 0 ? {} : _ref$color_scheme,\n _ref$fonts = _ref.fonts,\n fonts = _ref$fonts === void 0 ? {} : _ref$fonts,\n _ref$callback = _ref.callback,\n callback = _ref$callback === void 0 ? function () {} : _ref$callback;\n var task = exportScss ? 'exportScss' : 'compileScss';\n // console.log(config);\n var URI = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_0__.config.base_url_relative, \".json/task:\").concat(task);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(URI, {\n method: 'post',\n body: Object.assign({}, preview ? {\n preview: preview\n } : null, color_scheme)\n }, callback);\n});\nvar prepareElement = function prepareElement(element) {\n element.data('busy_right_now', true);\n if (!element.data('current_icon')) {\n element.data('current_icon', element.find('.fa').attr('class'));\n }\n element.find('.fa').attr('class', 'fa fa-fw fa-spin fa-refresh');\n};\nvar resetElement = function resetElement(element) {\n element.data('busy_right_now', false);\n element.find('.fa').attr('class', element.data('current_icon'));\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvd2hpdGVsYWJlbC9jb21waWxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFxQztBQUNFO0FBRXZDLGlFQUFlLFlBQXNHO0VBQUEsSUFBQUUsSUFBQSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBUCxDQUFDLENBQUM7SUFBQUcsWUFBQSxHQUFBSixJQUFBLENBQTlGSyxPQUFPO0lBQVBBLE9BQU8sR0FBQUQsWUFBQSxjQUFHLEtBQUssR0FBQUEsWUFBQTtJQUFBRSxlQUFBLEdBQUFOLElBQUEsQ0FBRU8sVUFBVTtJQUFWQSxVQUFVLEdBQUFELGVBQUEsY0FBRyxLQUFLLEdBQUFBLGVBQUE7SUFBQUUsaUJBQUEsR0FBQVIsSUFBQSxDQUFFUyxZQUFZO0lBQVpBLFlBQVksR0FBQUQsaUJBQUEsY0FBRyxDQUFDLENBQUMsR0FBQUEsaUJBQUE7SUFBQUUsVUFBQSxHQUFBVixJQUFBLENBQUVXLEtBQUs7SUFBTEEsS0FBSyxHQUFBRCxVQUFBLGNBQUcsQ0FBQyxDQUFDLEdBQUFBLFVBQUE7SUFBQUUsYUFBQSxHQUFBWixJQUFBLENBQUVhLFFBQVE7SUFBUkEsUUFBUSxHQUFBRCxhQUFBLGNBQUcsWUFBTSxDQUFDLENBQUMsR0FBQUEsYUFBQTtFQUNyRyxJQUFJRSxJQUFJLEdBQUdQLFVBQVUsR0FBRyxZQUFZLEdBQUcsYUFBYTtFQUNwRDtFQUNBLElBQU1RLEdBQUcsTUFBQUMsTUFBQSxDQUFNbEIsK0NBQU0sQ0FBQ21CLGlCQUFpQixpQkFBQUQsTUFBQSxDQUFjRixJQUFJLENBQUU7RUFDM0RmLDBEQUFPLENBQUNnQixHQUFHLEVBQUU7SUFDVEcsTUFBTSxFQUFFLE1BQU07SUFDZEMsSUFBSSxFQUFFQyxNQUFNLENBQUNDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRWhCLE9BQU8sR0FBRztNQUFFQSxPQUFPLEVBQVBBO0lBQVEsQ0FBQyxHQUFHLElBQUksRUFBRUksWUFBWTtFQUN0RSxDQUFDLEVBQUVJLFFBQVEsQ0FBQztBQUNoQixDQUFDO0FBRU0sSUFBTVMsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJQyxPQUFPLEVBQUs7RUFDdkNBLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQztFQUNwQyxJQUFJLENBQUNELE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFO0lBQy9CRCxPQUFPLENBQUNDLElBQUksQ0FBQyxjQUFjLEVBQUVELE9BQU8sQ0FBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7RUFDbkU7RUFDQUgsT0FBTyxDQUFDRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUNDLElBQUksQ0FBQyxPQUFPLEVBQUUsNkJBQTZCLENBQUM7QUFDcEUsQ0FBQztBQUVNLElBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJSixPQUFPLEVBQUs7RUFDckNBLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQztFQUNyQ0QsT0FBTyxDQUFDRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUNDLElBQUksQ0FBQyxPQUFPLEVBQUVILE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ25FLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3doaXRlbGFiZWwvY29tcGlsZS5qcz9iZjI3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCByZXF1ZXN0IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QnO1xuXG5leHBvcnQgZGVmYXVsdCAoeyBwcmV2aWV3ID0gZmFsc2UsIGV4cG9ydFNjc3MgPSBmYWxzZSwgY29sb3Jfc2NoZW1lID0ge30sIGZvbnRzID0ge30sIGNhbGxiYWNrID0gKCkgPT4ge30gfSA9IHt9KSA9PiB7XG4gICAgbGV0IHRhc2sgPSBleHBvcnRTY3NzID8gJ2V4cG9ydFNjc3MnIDogJ2NvbXBpbGVTY3NzJztcbiAgICAvLyBjb25zb2xlLmxvZyhjb25maWcpO1xuICAgIGNvbnN0IFVSSSA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0uanNvbi90YXNrOiR7dGFza31gO1xuICAgIHJlcXVlc3QoVVJJLCB7XG4gICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICBib2R5OiBPYmplY3QuYXNzaWduKHt9LCBwcmV2aWV3ID8geyBwcmV2aWV3IH0gOiBudWxsLCBjb2xvcl9zY2hlbWUpXG4gICAgfSwgY2FsbGJhY2spO1xufTtcblxuZXhwb3J0IGNvbnN0IHByZXBhcmVFbGVtZW50ID0gKGVsZW1lbnQpID0+IHtcbiAgICBlbGVtZW50LmRhdGEoJ2J1c3lfcmlnaHRfbm93JywgdHJ1ZSk7XG4gICAgaWYgKCFlbGVtZW50LmRhdGEoJ2N1cnJlbnRfaWNvbicpKSB7XG4gICAgICAgIGVsZW1lbnQuZGF0YSgnY3VycmVudF9pY29uJywgZWxlbWVudC5maW5kKCcuZmEnKS5hdHRyKCdjbGFzcycpKTtcbiAgICB9XG4gICAgZWxlbWVudC5maW5kKCcuZmEnKS5hdHRyKCdjbGFzcycsICdmYSBmYS1mdyBmYS1zcGluIGZhLXJlZnJlc2gnKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXNldEVsZW1lbnQgPSAoZWxlbWVudCkgPT4ge1xuICAgIGVsZW1lbnQuZGF0YSgnYnVzeV9yaWdodF9ub3cnLCBmYWxzZSk7XG4gICAgZWxlbWVudC5maW5kKCcuZmEnKS5hdHRyKCdjbGFzcycsIGVsZW1lbnQuZGF0YSgnY3VycmVudF9pY29uJykpO1xufTtcbiJdLCJuYW1lcyI6WyJjb25maWciLCJyZXF1ZXN0IiwiX3JlZiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIl9yZWYkcHJldmlldyIsInByZXZpZXciLCJfcmVmJGV4cG9ydFNjc3MiLCJleHBvcnRTY3NzIiwiX3JlZiRjb2xvcl9zY2hlbWUiLCJjb2xvcl9zY2hlbWUiLCJfcmVmJGZvbnRzIiwiZm9udHMiLCJfcmVmJGNhbGxiYWNrIiwiY2FsbGJhY2siLCJ0YXNrIiwiVVJJIiwiY29uY2F0IiwiYmFzZV91cmxfcmVsYXRpdmUiLCJtZXRob2QiLCJib2R5IiwiT2JqZWN0IiwiYXNzaWduIiwicHJlcGFyZUVsZW1lbnQiLCJlbGVtZW50IiwiZGF0YSIsImZpbmQiLCJhdHRyIiwicmVzZXRFbGVtZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/whitelabel/compile.js\n\n}");
/***/ }),
/***/ "./app/whitelabel/index.js":
/*!*********************************!*\
!*** ./app/whitelabel/index.js ***!
\*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _compile__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compile */ \"./app/whitelabel/compile.js\");\n/* harmony import */ var _forms__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../forms */ \"./app/forms/index.js\");\n/* harmony import */ var _utils_colors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/colors */ \"./app/utils/colors.js\");\n/* harmony import */ var _presets__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./presets */ \"./app/whitelabel/presets.js\");\n\n\n\n\n\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\nvar FormState = _forms__WEBPACK_IMPORTED_MODULE_2__[\"default\"].FormState.Instance;\nvar compiler = function compiler(element) {\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var exportScss = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};\n (0,_compile__WEBPACK_IMPORTED_MODULE_1__.prepareElement)(element);\n var fields = FormState.collect();\n (0,_compile__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n preview: preview,\n exportScss: exportScss,\n color_scheme: !fields ? [] : fields.filter(function (value, key) {\n return key.match(/^data\\[whitelabel]\\[color_scheme]/);\n }).toJS(),\n callback: function callback(response) {\n _callback.call(_callback, response);\n (0,_compile__WEBPACK_IMPORTED_MODULE_1__.resetElement)(element);\n }\n });\n};\nbody.on('click', '[data-preview-scss]', function (event) {\n event && event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n if (element.data('busy_right_now')) {\n return false;\n }\n compiler(element, true, false, function (response) {\n if (response.files) {\n Object.keys(response.files).forEach(function (key) {\n var file = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#admin-pro-preview-\".concat(key));\n var timestamp = Date.now();\n if (!file.length) {\n file = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"
\"));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('head').append(file);\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-reset-scss]').length) {\n var reset = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
Reset');\n reset.insertAfter(element);\n }\n }\n file.attr('href', \"\".concat(response.files[key], \"?\").concat(timestamp));\n });\n }\n });\n});\nbody.on('click', '[data-recompile-scss]', function (event) {\n event && event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n if (element.data('busy_right_now')) {\n return false;\n }\n compiler(element, true, false);\n});\nbody.on('click', '[data-export-scss]', function (event) {\n event && event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n if (element.data('busy_right_now')) {\n return false;\n }\n compiler(element, true, true, function (response) {\n if (response.files) {\n Object.keys(response.files).forEach(function (key) {\n if (key === 'download') {\n var _element = document.createElement('a');\n _element.setAttribute('href', response.files[key]);\n _element.setAttribute('download', '');\n _element.style.display = 'none';\n document.body.appendChild(_element);\n _element.click();\n document.body.removeChild(_element);\n }\n });\n }\n });\n});\nbody.on('change._grav_colorpicker', '[data-grav-colorpicker]', function (event, input, hex, opacity) {\n var RGB = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hex2rgb)(hex);\n var YIQ = (RGB.r * 299 + RGB.g * 587 + RGB.b * 114) / 1000;\n var contrast = YIQ >= 128 || opacity <= 0.50 ? 'dark' : 'light';\n input.parent().removeClass('dark-text light-text').addClass(\"\".concat(contrast, \"-text\"));\n});\nbody.ready(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-colorpicker]').trigger('keyup');\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QVEsVUFBTyxDQUFDO0FBQ25GLENBQUMsQ0FBQztBQUVGdkQsSUFBSSxDQUFDMkQsS0FBSyxDQUFDLFlBQU07RUFDYmpFLDZDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQ2tFLE9BQU8sQ0FBQyxPQUFPLENBQUM7QUFDakQsQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC93aGl0ZWxhYmVsL2luZGV4LmpzPzIyOTgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBDb21waWxlLCB7IHByZXBhcmVFbGVtZW50LCByZXNldEVsZW1lbnQgfSBmcm9tICcuL2NvbXBpbGUnO1xuaW1wb3J0IEZvcm1zIGZyb20gJy4uL2Zvcm1zJztcbmltcG9ydCB7IGhleDJyZ2IgfSBmcm9tICcuLi91dGlscy9jb2xvcnMnO1xuaW1wb3J0ICcuL3ByZXNldHMnO1xuXG5jb25zdCBib2R5ID0gJCgnYm9keScpO1xuY29uc3QgRm9ybVN0YXRlID0gRm9ybXMuRm9ybVN0YXRlLkluc3RhbmNlO1xuY29uc3QgY29tcGlsZXIgPSAoZWxlbWVudCwgcHJldmlldyA9IGZhbHNlLCBleHBvcnRTY3NzID0gZmFsc2UsIGNhbGxiYWNrID0gKCkgPT4ge30pID0+IHtcbiAgICBwcmVwYXJlRWxlbWVudChlbGVtZW50KTtcblxuICAgIGxldCBmaWVsZHMgPSBGb3JtU3RhdGUuY29sbGVjdCgpO1xuICAgIENvbXBpbGUoe1xuICAgICAgICBwcmV2aWV3LFxuICAgICAgICBleHBvcnRTY3NzLFxuICAgICAgICBjb2xvcl9zY2hlbWU6ICFmaWVsZHMgPyBbXSA6IGZpZWxkcy5maWx0ZXIoKHZhbHVlLCBrZXkpID0+IGtleS5tYXRjaCgvXmRhdGFcXFt3aGl0ZWxhYmVsXVxcW2NvbG9yX3NjaGVtZV0vKSkudG9KUygpLFxuICAgICAgICBjYWxsYmFjazogKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBjYWxsYmFjay5jYWxsKGNhbGxiYWNrLCByZXNwb25zZSk7XG4gICAgICAgICAgICByZXNldEVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn07XG5cbmJvZHkub24oJ2NsaWNrJywgJ1tkYXRhLXByZXZpZXctc2Nzc10nLCAoZXZlbnQpID0+IHtcbiAgICBldmVudCAmJiBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGxldCBlbGVtZW50ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBpZiAoZWxlbWVudC5kYXRhKCdidXN5X3JpZ2h0X25vdycpKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gICAgY29tcGlsZXIoZWxlbWVudCwgdHJ1ZSwgZmFsc2UsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UuZmlsZXMpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHJlc3BvbnNlLmZpbGVzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgZmlsZSA9ICQoYCNhZG1pbi1wcm8tcHJldmlldy0ke2tleX1gKTtcbiAgICAgICAgICAgICAgICBsZXQgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICBpZiAoIWZpbGUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGUgPSAkKGA8bGluayBpZD1cImFkbWluLXByby1wcmV2aWV3LSR7a2V5fVwiIHR5cGU9XCJ0ZXh0L2Nzc1wiIHJlbD1cInN0eWxlc2hlZXRcIiAvPmApO1xuICAgICAgICAgICAgICAgICAgICAkKCdoZWFkJykuYXBwZW5kKGZpbGUpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghJCgnW2RhdGEtcmVzZXQtc2Nzc10nKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXNldCA9ICQoJzxidXR0b24gY2xhc3M9XCJidXR0b25cIiBkYXRhLXJlc2V0LXNjc3Mgc3R5bGU9XCJtYXJnaW4tbGVmdDogNXB4O1wiPjxpIGNsYXNzPVwiZmEgZmEtZncgZmEtaGlzdG9yeVwiPjwvaT4gUmVzZXQ8L2J1dHRvbj4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0Lmluc2VydEFmdGVyKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZmlsZS5hdHRyKCdocmVmJywgYCR7cmVzcG9uc2UuZmlsZXNba2V5XX0/JHt0aW1lc3RhbXB9YCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG5cbmJvZHkub24oJ2NsaWNrJywgJ1tkYXRhLXJlY29tcGlsZS1zY3NzXScsIChldmVudCkgPT4ge1xuICAgIGV2ZW50ICYmIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgbGV0IGVsZW1lbnQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGlmIChlbGVtZW50LmRhdGEoJ2J1c3lfcmlnaHRfbm93JykpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgICBjb21waWxlcihlbGVtZW50LCB0cnVlLCBmYWxzZSk7XG59KTtcblxuYm9keS5vbignY2xpY2snLCAnW2RhdGEtZXhwb3J0LXNjc3NdJywgKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQgJiYgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBsZXQgZWxlbWVudCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgaWYgKGVsZW1lbnQuZGF0YSgnYnVzeV9yaWdodF9ub3cnKSkgeyByZXR1cm4gZmFsc2U7IH1cblxuICAgIGNvbXBpbGVyKGVsZW1lbnQsIHRydWUsIHRydWUsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UuZmlsZXMpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHJlc3BvbnNlLmZpbGVzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAnZG93bmxvYWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsIHJlc3BvbnNlLmZpbGVzW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCAnJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xpY2soKTtcblxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG59KTtcblxuYm9keS5vbignY2hhbmdlLl9ncmF2X2NvbG9ycGlja2VyJywgJ1tkYXRhLWdyYXYtY29sb3JwaWNrZXJdJywgKGV2ZW50LCBpbnB1dCwgaGV4LCBvcGFjaXR5KSA9PiB7XG4gICAgbGV0IFJHQiA9IGhleDJyZ2IoaGV4KTtcbiAgICBsZXQgWUlRID0gKChSR0IuciAqIDI5OSkgKyAoUkdCLmcgKiA1ODcpICsgKFJHQi5iICogMTE0KSkgLyAxMDAwO1xuICAgIGxldCBjb250cmFzdCA9IFlJUSA+PSAxMjggfHwgb3BhY2l0eSA8PSAwLjUwID8gJ2RhcmsnIDogJ2xpZ2h0JztcblxuICAgIGlucHV0LnBhcmVudCgpLnJlbW92ZUNsYXNzKCdkYXJrLXRleHQgbGlnaHQtdGV4dCcpLmFkZENsYXNzKGAke2NvbnRyYXN0fS10ZXh0YCk7XG59KTtcblxuYm9keS5yZWFkeSgoKSA9PiB7XG4gICAgJCgnW2RhdGEtZ3Jhdi1jb2xvcnBpY2tlcl0nKS50cmlnZ2VyKCdrZXl1cCcpO1xufSk7XG4iXSwibmFtZXMiOlsiJCIsIkNvbXBpbGUiLCJwcmVwYXJlRWxlbWVudCIsInJlc2V0RWxlbWVudCIsIkZvcm1zIiwiaGV4MnJnYiIsImJvZHkiLCJGb3JtU3RhdGUiLCJJbnN0YW5jZSIsImNvbXBpbGVyIiwiZWxlbWVudCIsInByZXZpZXciLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJleHBvcnRTY3NzIiwiY2FsbGJhY2siLCJmaWVsZHMiLCJjb2xsZWN0IiwiY29sb3Jfc2NoZW1lIiwiZmlsdGVyIiwidmFsdWUiLCJrZXkiLCJtYXRjaCIsInRvSlMiLCJyZXNwb25zZSIsImNhbGwiLCJvbiIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJjdXJyZW50VGFyZ2V0IiwiZGF0YSIsImZpbGVzIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJmaWxlIiwiY29uY2F0IiwidGltZXN0YW1wIiwiRGF0ZSIsIm5vdyIsImFwcGVuZCIsInJlc2V0IiwiaW5zZXJ0QWZ0ZXIiLCJhdHRyIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwic3R5bGUiLCJkaXNwbGF5IiwiYXBwZW5kQ2hpbGQiLCJjbGljayIsInJlbW92ZUNoaWxkIiwiaW5wdXQiLCJoZXgiLCJvcGFjaXR5IiwiUkdCIiwiWUlRIiwiciIsImciLCJiIiwiY29udHJhc3QiLCJwYXJlbnQiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwicmVhZHkiLCJ0cmlnZ2VyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/whitelabel/index.js\n\n}");
/***/ }),
/***/ "./app/whitelabel/presets.js":
/*!***********************************!*\
!*** ./app/whitelabel/presets.js ***!
\***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _forms__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../forms */ \"./app/forms/index.js\");\n\n\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\nvar fields = [];\nvar FormState = _forms__WEBPACK_IMPORTED_MODULE_1__[\"default\"].FormState.Instance;\nvar setField = function setField(field, value) {\n var name = field.prop('name');\n var tag = field.prop('tagName').toLowerCase();\n var type = field.prop('type');\n fields.push(name);\n switch (tag) {\n case 'select':\n field.val(value);\n field.data('selectize').setValue(value);\n field.trigger('change');\n break;\n case 'input':\n if (type === 'radio') {\n var strValue = value ? '1' : '0';\n field.filter(function (index, radio) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(radio).val() === strValue;\n }).prop('checked', true);\n break;\n }\n if (type === 'checkbox') {\n field.prop('checked', value);\n break;\n }\n field.val(value);\n field.trigger('keyup');\n }\n};\nbody.on('click', '[data-preset-values]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var data = target.data('preset-values');\n Object.keys(data).forEach(function (section) {\n if (typeof data[section] === 'string') {\n return;\n }\n Object.keys(data[section]).forEach(function (key) {\n var field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[name=\\\"data[whitelabel][color_scheme][\".concat(section, \"][\").concat(key, \"]\\\"], [name=\\\"data[\").concat(section, \"][\").concat(key, \"]\\\"]\"));\n var value = data[section][key];\n setField(field, value);\n });\n });\n});\nbody.on('click', '[data-reset-scss]', function (event) {\n event && event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var links = jquery__WEBPACK_IMPORTED_MODULE_0___default()('link[id^=admin-pro-preview-]');\n element.remove();\n links.remove();\n fields.forEach(function (field) {\n var value = FormState.loadState.get(field);\n setField(jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[name=\\\"\".concat(field, \"\\\"]\")), value);\n });\n fields = [];\n});\n\n// Horizontal Scroll Functionality\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().fn).hscrollarrows = function () {\n return this.each(function () {\n var navNext = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
');\n var navPrev = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
');\n var scrollTime = null;\n var resizeTime = null;\n var scrolling = false;\n var elm_w = 0;\n var elem_data_w = 0;\n var max_scroll = 0;\n var inc_scroll = 0;\n var calcData = function calcData() {\n elm_w = elem.width();\n elem_data_w = elem_data.get(0).scrollWidth;\n max_scroll = elem_data_w - elm_w;\n inc_scroll = elm_w * 0.3; // 20%\n };\n var revalidate = function revalidate() {\n calcData();\n stateNavs();\n };\n var run = function run() {\n calcData();\n setupNavs();\n };\n var setupNavs = function setupNavs() {\n elem.parent().prepend(navNext);\n elem.parent().prepend(navPrev);\n navNext.on('click', next);\n navPrev.on('click', prev);\n stateNavs();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(elem).scroll(function () {\n if (!scrolling) {\n clearTimeout(scrollTime);\n scrollTime = setTimeout(function () {\n stateNavs();\n }, 250);\n }\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).resize(function () {\n clearTimeout(resizeTime);\n resizeTime = setTimeout(function () {\n revalidate();\n }, 250);\n });\n };\n var stateNavs = function stateNavs() {\n var current_scroll = elem.scrollLeft();\n if (current_scroll < max_scroll) {\n navNext.removeClass('hide');\n } else {\n navNext.addClass('hide');\n }\n if (current_scroll > 0) {\n navPrev.removeClass('hide');\n } else {\n navPrev.addClass('hide');\n }\n scrolling = false;\n };\n var next = function next() {\n var current_scroll = elem.scrollLeft();\n if (current_scroll < max_scroll) {\n scrolling = true;\n elem.stop().animate({\n scrollLeft: current_scroll + inc_scroll\n }, stateNavs);\n }\n };\n var prev = function prev() {\n var current_scroll = elem.scrollLeft();\n if (current_scroll > 0) {\n scrolling = true;\n elem.stop().animate({\n scrollLeft: current_scroll - inc_scroll\n }, stateNavs);\n }\n };\n var elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var elem_data = jquery__WEBPACK_IMPORTED_MODULE_0___default()(':first-child', elem);\n run();\n });\n};\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.jquery-horizontal-scroll').hscrollarrows();\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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TUFDbEIsSUFBSU0sY0FBYyxHQUFHakIsSUFBSSxDQUFDa0IsVUFBVSxDQUFDLENBQUM7TUFDdEMsSUFBSUQsY0FBYyxHQUFHLENBQUMsRUFBRTtRQUNwQnZCLFNBQVMsR0FBRyxJQUFJO1FBQ2hCTSxJQUFJLENBQUNxQixJQUFJLENBQUMsQ0FBQyxDQUFDQyxPQUFPLENBQUM7VUFDaEJKLFVBQVUsRUFBR0QsY0FBYyxHQUFHbkI7UUFDbEMsQ0FBQyxFQUFFTyxTQUFTLENBQUM7TUFDakI7SUFDSixDQUFDO0lBRUQsSUFBSUwsSUFBSSxHQUFHcEQsNkNBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbEIsSUFBSXNELFNBQVMsR0FBR3RELDZDQUFDLENBQUMsY0FBYyxFQUFFb0QsSUFBSSxDQUFDO0lBQ3ZDTSxHQUFHLENBQUMsQ0FBQztFQUVULENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRDFELDZDQUFDLENBQUMyRSxRQUFRLENBQUMsQ0FBQ0MsS0FBSyxDQUFDLFlBQU07RUFDcEI1RSw2Q0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUN3QyxhQUFhLENBQUMsQ0FBQztBQUNsRCxDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3doaXRlbGFiZWwvcHJlc2V0cy5qcz8zMjNjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgRm9ybXMgZnJvbSAnLi4vZm9ybXMnO1xuXG5sZXQgYm9keSA9ICQoJ2JvZHknKTtcbmxldCBmaWVsZHMgPSBbXTtcbmNvbnN0IEZvcm1TdGF0ZSA9IEZvcm1zLkZvcm1TdGF0ZS5JbnN0YW5jZTtcbmNvbnN0IHNldEZpZWxkID0gKGZpZWxkLCB2YWx1ZSkgPT4ge1xuICAgIGxldCBuYW1lID0gZmllbGQucHJvcCgnbmFtZScpO1xuICAgIGxldCB0YWcgPSBmaWVsZC5wcm9wKCd0YWdOYW1lJykudG9Mb3dlckNhc2UoKTtcbiAgICBsZXQgdHlwZSA9IGZpZWxkLnByb3AoJ3R5cGUnKTtcblxuICAgIGZpZWxkcy5wdXNoKG5hbWUpO1xuICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgICAgICBmaWVsZC52YWwodmFsdWUpO1xuICAgICAgICAgICAgZmllbGQuZGF0YSgnc2VsZWN0aXplJykuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgZmllbGQudHJpZ2dlcignY2hhbmdlJyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaW5wdXQnOlxuICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdyYWRpbycpIHtcbiAgICAgICAgICAgICAgICBsZXQgc3RyVmFsdWUgPSB2YWx1ZSA/ICcxJyA6ICcwJztcbiAgICAgICAgICAgICAgICBmaWVsZC5maWx0ZXIoKGluZGV4LCByYWRpbykgPT4gJChyYWRpbykudmFsKCkgPT09IHN0clZhbHVlKS5wcm9wKCdjaGVja2VkJywgdHJ1ZSk7XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdjaGVja2JveCcpIHtcbiAgICAgICAgICAgICAgICBmaWVsZC5wcm9wKCdjaGVja2VkJywgdmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmllbGQudmFsKHZhbHVlKTtcbiAgICAgICAgICAgIGZpZWxkLnRyaWdnZXIoJ2tleXVwJyk7XG4gICAgfVxufTtcblxuYm9keS5vbignY2xpY2snLCAnW2RhdGEtcHJlc2V0LXZhbHVlc10nLCAoZXZlbnQpID0+IHtcbiAgICBsZXQgdGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBsZXQgZGF0YSA9IHRhcmdldC5kYXRhKCdwcmVzZXQtdmFsdWVzJyk7XG5cbiAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChzZWN0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0YVtzZWN0aW9uXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC5rZXlzKGRhdGFbc2VjdGlvbl0pLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgbGV0IGZpZWxkID0gJChgW25hbWU9XCJkYXRhW3doaXRlbGFiZWxdW2NvbG9yX3NjaGVtZV1bJHtzZWN0aW9ufV1bJHtrZXl9XVwiXSwgW25hbWU9XCJkYXRhWyR7c2VjdGlvbn1dWyR7a2V5fV1cIl1gKTtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IGRhdGFbc2VjdGlvbl1ba2V5XTtcbiAgICAgICAgICAgIHNldEZpZWxkKGZpZWxkLCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufSk7XG5cbmJvZHkub24oJ2NsaWNrJywgJ1tkYXRhLXJlc2V0LXNjc3NdJywgKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQgJiYgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBsZXQgZWxlbWVudCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgbGV0IGxpbmtzID0gJCgnbGlua1tpZF49YWRtaW4tcHJvLXByZXZpZXctXScpO1xuXG4gICAgZWxlbWVudC5yZW1vdmUoKTtcbiAgICBsaW5rcy5yZW1vdmUoKTtcblxuICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICBsZXQgdmFsdWUgPSBGb3JtU3RhdGUubG9hZFN0YXRlLmdldChmaWVsZCk7XG4gICAgICAgIHNldEZpZWxkKCQoYFtuYW1lPVwiJHtmaWVsZH1cIl1gKSwgdmFsdWUpO1xuICAgIH0pO1xuICAgIGZpZWxkcyA9IFtdO1xufSk7XG5cbi8vIEhvcml6b250YWwgU2Nyb2xsIEZ1bmN0aW9uYWxpdHlcbiQuZm4uaHNjcm9sbGFycm93cyA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgbGV0IG5hdk5leHQgPSAkKCc8YSBjbGFzcz1cIm5hdi1uZXh0IGhpZGVcIj48L2E+Jyk7XG4gICAgICAgIGxldCBuYXZQcmV2ID0gJCgnPGEgY2xhc3M9XCJuYXYtcHJldiBoaWRlXCI+PC9hPicpO1xuICAgICAgICBsZXQgc2Nyb2xsVGltZSA9IG51bGw7XG4gICAgICAgIGxldCByZXNpemVUaW1lID0gbnVsbDtcbiAgICAgICAgbGV0IHNjcm9sbGluZyA9IGZhbHNlO1xuXG4gICAgICAgIGxldCBlbG1fdyA9IDA7XG4gICAgICAgIGxldCBlbGVtX2RhdGFfdyA9IDA7XG4gICAgICAgIGxldCBtYXhfc2Nyb2xsID0gMDtcbiAgICAgICAgbGV0IGluY19zY3JvbGwgPSAwO1xuXG4gICAgICAgIGxldCBjYWxjRGF0YSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgZWxtX3cgPSBlbGVtLndpZHRoKCk7XG4gICAgICAgICAgICBlbGVtX2RhdGFfdyA9IGVsZW1fZGF0YS5nZXQoMCkuc2Nyb2xsV2lkdGg7XG4gICAgICAgICAgICBtYXhfc2Nyb2xsID0gZWxlbV9kYXRhX3cgLSBlbG1fdztcbiAgICAgICAgICAgIGluY19zY3JvbGwgPSBlbG1fdyAqIDAuMzsgLy8gMjAlXG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IHJldmFsaWRhdGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNhbGNEYXRhKCk7XG4gICAgICAgICAgICBzdGF0ZU5hdnMoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgcnVuID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjYWxjRGF0YSgpO1xuICAgICAgICAgICAgc2V0dXBOYXZzKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IHNldHVwTmF2cyA9IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICBlbGVtLnBhcmVudCgpLnByZXBlbmQobmF2TmV4dCk7XG4gICAgICAgICAgICBlbGVtLnBhcmVudCgpLnByZXBlbmQobmF2UHJldik7XG4gICAgICAgICAgICBuYXZOZXh0Lm9uKCdjbGljaycsIG5leHQpO1xuICAgICAgICAgICAgbmF2UHJldi5vbignY2xpY2snLCBwcmV2KTtcbiAgICAgICAgICAgIHN0YXRlTmF2cygpO1xuXG4gICAgICAgICAgICAkKGVsZW0pLnNjcm9sbChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXNjcm9sbGluZykge1xuICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZSk7XG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbFRpbWUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVOYXZzKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDI1MCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICQod2luZG93KS5yZXNpemUoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHJlc2l6ZVRpbWUpO1xuICAgICAgICAgICAgICAgIHJlc2l6ZVRpbWUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlKCk7XG4gICAgICAgICAgICAgICAgfSwgMjUwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBzdGF0ZU5hdnMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGxldCBjdXJyZW50X3Njcm9sbCA9IGVsZW0uc2Nyb2xsTGVmdCgpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRfc2Nyb2xsIDwgbWF4X3Njcm9sbCkge1xuICAgICAgICAgICAgICAgIG5hdk5leHQucmVtb3ZlQ2xhc3MoJ2hpZGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmF2TmV4dC5hZGRDbGFzcygnaGlkZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGN1cnJlbnRfc2Nyb2xsID4gMCkge1xuICAgICAgICAgICAgICAgIG5hdlByZXYucmVtb3ZlQ2xhc3MoJ2hpZGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmF2UHJldi5hZGRDbGFzcygnaGlkZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2Nyb2xsaW5nID0gZmFsc2U7XG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IG5leHQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGxldCBjdXJyZW50X3Njcm9sbCA9IGVsZW0uc2Nyb2xsTGVmdCgpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRfc2Nyb2xsIDwgbWF4X3Njcm9sbCkge1xuICAgICAgICAgICAgICAgIHNjcm9sbGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgZWxlbS5zdG9wKCkuYW5pbWF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ6IChjdXJyZW50X3Njcm9sbCArIGluY19zY3JvbGwpXG4gICAgICAgICAgICAgICAgfSwgc3RhdGVOYXZzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgcHJldiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRfc2Nyb2xsID0gZWxlbS5zY3JvbGxMZWZ0KCk7XG4gICAgICAgICAgICBpZiAoY3VycmVudF9zY3JvbGwgPiAwKSB7XG4gICAgICAgICAgICAgICAgc2Nyb2xsaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBlbGVtLnN0b3AoKS5hbmltYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsTGVmdDogKGN1cnJlbnRfc2Nyb2xsIC0gaW5jX3Njcm9sbClcbiAgICAgICAgICAgICAgICB9LCBzdGF0ZU5hdnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBlbGVtID0gJCh0aGlzKTtcbiAgICAgICAgbGV0IGVsZW1fZGF0YSA9ICQoJzpmaXJzdC1jaGlsZCcsIGVsZW0pO1xuICAgICAgICBydW4oKTtcblxuICAgIH0pO1xufTtcblxuJChkb2N1bWVudCkucmVhZHkoKCkgPT4ge1xuICAgICQoJy5qcXVlcnktaG9yaXpvbnRhbC1zY3JvbGwnKS5oc2Nyb2xsYXJyb3dzKCk7XG59KTtcbiJdLCJuYW1lcyI6WyIkIiwiRm9ybXMiLCJib2R5IiwiZmllbGRzIiwiRm9ybVN0YXRlIiwiSW5zdGFuY2UiLCJzZXRGaWVsZCIsImZpZWxkIiwidmFsdWUiLCJuYW1lIiwicHJvcCIsInRhZyIsInRvTG93ZXJDYXNlIiwidHlwZSIsInB1c2giLCJ2YWwiLCJkYXRhIiwic2V0VmFsdWUiLCJ0cmlnZ2VyIiwic3RyVmFsdWUiLCJmaWx0ZXIiLCJpbmRleCIsInJhZGlvIiwib24iLCJldmVudCIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInNlY3Rpb24iLCJrZXkiLCJjb25jYXQiLCJwcmV2ZW50RGVmYXVsdCIsImVsZW1lbnQiLCJsaW5rcyIsInJlbW92ZSIsImxvYWRTdGF0ZSIsImdldCIsImZuIiwiaHNjcm9sbGFycm93cyIsImVhY2giLCJuYXZOZXh0IiwibmF2UHJldiIsInNjcm9sbFRpbWUiLCJyZXNpemVUaW1lIiwic2Nyb2xsaW5nIiwiZWxtX3ciLCJlbGVtX2RhdGFfdyIsIm1heF9zY3JvbGwiLCJpbmNfc2Nyb2xsIiwiY2FsY0RhdGEiLCJlbGVtIiwid2lkdGgiLCJlbGVtX2RhdGEiLCJzY3JvbGxXaWR0aCIsInJldmFsaWRhdGUiLCJzdGF0ZU5hdnMiLCJydW4iLCJzZXR1cE5hdnMiLCJwYXJlbnQiLCJwcmVwZW5kIiwibmV4dCIsInByZXYiLCJzY3JvbGwiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0Iiwid2luZG93IiwicmVzaXplIiwiY3VycmVudF9zY3JvbGwiLCJzY3JvbGxMZWZ0IiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsInN0b3AiLCJhbmltYXRlIiwiZG9jdW1lbnQiLCJyZWFkeSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/whitelabel/presets.js\n\n}");
/***/ }),
/***/ "./node_modules/moment/locale sync recursive ^\\.\\/.*$":
/*!***************************************************!*\
!*** ./node_modules/moment/locale/ sync ^\.\/.*$ ***!
\***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var map = {
"./af": "./node_modules/moment/locale/af.js",
"./af.js": "./node_modules/moment/locale/af.js",
"./ar": "./node_modules/moment/locale/ar.js",
"./ar-dz": "./node_modules/moment/locale/ar-dz.js",
"./ar-dz.js": "./node_modules/moment/locale/ar-dz.js",
"./ar-kw": "./node_modules/moment/locale/ar-kw.js",
"./ar-kw.js": "./node_modules/moment/locale/ar-kw.js",
"./ar-ly": "./node_modules/moment/locale/ar-ly.js",
"./ar-ly.js": "./node_modules/moment/locale/ar-ly.js",
"./ar-ma": "./node_modules/moment/locale/ar-ma.js",
"./ar-ma.js": "./node_modules/moment/locale/ar-ma.js",
"./ar-sa": "./node_modules/moment/locale/ar-sa.js",
"./ar-sa.js": "./node_modules/moment/locale/ar-sa.js",
"./ar-tn": "./node_modules/moment/locale/ar-tn.js",
"./ar-tn.js": "./node_modules/moment/locale/ar-tn.js",
"./ar.js": "./node_modules/moment/locale/ar.js",
"./az": "./node_modules/moment/locale/az.js",
"./az.js": "./node_modules/moment/locale/az.js",
"./be": "./node_modules/moment/locale/be.js",
"./be.js": "./node_modules/moment/locale/be.js",
"./bg": "./node_modules/moment/locale/bg.js",
"./bg.js": "./node_modules/moment/locale/bg.js",
"./bm": "./node_modules/moment/locale/bm.js",
"./bm.js": "./node_modules/moment/locale/bm.js",
"./bn": "./node_modules/moment/locale/bn.js",
"./bn-bd": "./node_modules/moment/locale/bn-bd.js",
"./bn-bd.js": "./node_modules/moment/locale/bn-bd.js",
"./bn.js": "./node_modules/moment/locale/bn.js",
"./bo": "./node_modules/moment/locale/bo.js",
"./bo.js": "./node_modules/moment/locale/bo.js",
"./br": "./node_modules/moment/locale/br.js",
"./br.js": "./node_modules/moment/locale/br.js",
"./bs": "./node_modules/moment/locale/bs.js",
"./bs.js": "./node_modules/moment/locale/bs.js",
"./ca": "./node_modules/moment/locale/ca.js",
"./ca.js": "./node_modules/moment/locale/ca.js",
"./cs": "./node_modules/moment/locale/cs.js",
"./cs.js": "./node_modules/moment/locale/cs.js",
"./cv": "./node_modules/moment/locale/cv.js",
"./cv.js": "./node_modules/moment/locale/cv.js",
"./cy": "./node_modules/moment/locale/cy.js",
"./cy.js": "./node_modules/moment/locale/cy.js",
"./da": "./node_modules/moment/locale/da.js",
"./da.js": "./node_modules/moment/locale/da.js",
"./de": "./node_modules/moment/locale/de.js",
"./de-at": "./node_modules/moment/locale/de-at.js",
"./de-at.js": "./node_modules/moment/locale/de-at.js",
"./de-ch": "./node_modules/moment/locale/de-ch.js",
"./de-ch.js": "./node_modules/moment/locale/de-ch.js",
"./de.js": "./node_modules/moment/locale/de.js",
"./dv": "./node_modules/moment/locale/dv.js",
"./dv.js": "./node_modules/moment/locale/dv.js",
"./el": "./node_modules/moment/locale/el.js",
"./el.js": "./node_modules/moment/locale/el.js",
"./en-au": "./node_modules/moment/locale/en-au.js",
"./en-au.js": "./node_modules/moment/locale/en-au.js",
"./en-ca": "./node_modules/moment/locale/en-ca.js",
"./en-ca.js": "./node_modules/moment/locale/en-ca.js",
"./en-gb": "./node_modules/moment/locale/en-gb.js",
"./en-gb.js": "./node_modules/moment/locale/en-gb.js",
"./en-ie": "./node_modules/moment/locale/en-ie.js",
"./en-ie.js": "./node_modules/moment/locale/en-ie.js",
"./en-il": "./node_modules/moment/locale/en-il.js",
"./en-il.js": "./node_modules/moment/locale/en-il.js",
"./en-in": "./node_modules/moment/locale/en-in.js",
"./en-in.js": "./node_modules/moment/locale/en-in.js",
"./en-nz": "./node_modules/moment/locale/en-nz.js",
"./en-nz.js": "./node_modules/moment/locale/en-nz.js",
"./en-sg": "./node_modules/moment/locale/en-sg.js",
"./en-sg.js": "./node_modules/moment/locale/en-sg.js",
"./eo": "./node_modules/moment/locale/eo.js",
"./eo.js": "./node_modules/moment/locale/eo.js",
"./es": "./node_modules/moment/locale/es.js",
"./es-do": "./node_modules/moment/locale/es-do.js",
"./es-do.js": "./node_modules/moment/locale/es-do.js",
"./es-mx": "./node_modules/moment/locale/es-mx.js",
"./es-mx.js": "./node_modules/moment/locale/es-mx.js",
"./es-us": "./node_modules/moment/locale/es-us.js",
"./es-us.js": "./node_modules/moment/locale/es-us.js",
"./es.js": "./node_modules/moment/locale/es.js",
"./et": "./node_modules/moment/locale/et.js",
"./et.js": "./node_modules/moment/locale/et.js",
"./eu": "./node_modules/moment/locale/eu.js",
"./eu.js": "./node_modules/moment/locale/eu.js",
"./fa": "./node_modules/moment/locale/fa.js",
"./fa.js": "./node_modules/moment/locale/fa.js",
"./fi": "./node_modules/moment/locale/fi.js",
"./fi.js": "./node_modules/moment/locale/fi.js",
"./fil": "./node_modules/moment/locale/fil.js",
"./fil.js": "./node_modules/moment/locale/fil.js",
"./fo": "./node_modules/moment/locale/fo.js",
"./fo.js": "./node_modules/moment/locale/fo.js",
"./fr": "./node_modules/moment/locale/fr.js",
"./fr-ca": "./node_modules/moment/locale/fr-ca.js",
"./fr-ca.js": "./node_modules/moment/locale/fr-ca.js",
"./fr-ch": "./node_modules/moment/locale/fr-ch.js",
"./fr-ch.js": "./node_modules/moment/locale/fr-ch.js",
"./fr.js": "./node_modules/moment/locale/fr.js",
"./fy": "./node_modules/moment/locale/fy.js",
"./fy.js": "./node_modules/moment/locale/fy.js",
"./ga": "./node_modules/moment/locale/ga.js",
"./ga.js": "./node_modules/moment/locale/ga.js",
"./gd": "./node_modules/moment/locale/gd.js",
"./gd.js": "./node_modules/moment/locale/gd.js",
"./gl": "./node_modules/moment/locale/gl.js",
"./gl.js": "./node_modules/moment/locale/gl.js",
"./gom-deva": "./node_modules/moment/locale/gom-deva.js",
"./gom-deva.js": "./node_modules/moment/locale/gom-deva.js",
"./gom-latn": "./node_modules/moment/locale/gom-latn.js",
"./gom-latn.js": "./node_modules/moment/locale/gom-latn.js",
"./gu": "./node_modules/moment/locale/gu.js",
"./gu.js": "./node_modules/moment/locale/gu.js",
"./he": "./node_modules/moment/locale/he.js",
"./he.js": "./node_modules/moment/locale/he.js",
"./hi": "./node_modules/moment/locale/hi.js",
"./hi.js": "./node_modules/moment/locale/hi.js",
"./hr": "./node_modules/moment/locale/hr.js",
"./hr.js": "./node_modules/moment/locale/hr.js",
"./hu": "./node_modules/moment/locale/hu.js",
"./hu.js": "./node_modules/moment/locale/hu.js",
"./hy-am": "./node_modules/moment/locale/hy-am.js",
"./hy-am.js": "./node_modules/moment/locale/hy-am.js",
"./id": "./node_modules/moment/locale/id.js",
"./id.js": "./node_modules/moment/locale/id.js",
"./is": "./node_modules/moment/locale/is.js",
"./is.js": "./node_modules/moment/locale/is.js",
"./it": "./node_modules/moment/locale/it.js",
"./it-ch": "./node_modules/moment/locale/it-ch.js",
"./it-ch.js": "./node_modules/moment/locale/it-ch.js",
"./it.js": "./node_modules/moment/locale/it.js",
"./ja": "./node_modules/moment/locale/ja.js",
"./ja.js": "./node_modules/moment/locale/ja.js",
"./jv": "./node_modules/moment/locale/jv.js",
"./jv.js": "./node_modules/moment/locale/jv.js",
"./ka": "./node_modules/moment/locale/ka.js",
"./ka.js": "./node_modules/moment/locale/ka.js",
"./kk": "./node_modules/moment/locale/kk.js",
"./kk.js": "./node_modules/moment/locale/kk.js",
"./km": "./node_modules/moment/locale/km.js",
"./km.js": "./node_modules/moment/locale/km.js",
"./kn": "./node_modules/moment/locale/kn.js",
"./kn.js": "./node_modules/moment/locale/kn.js",
"./ko": "./node_modules/moment/locale/ko.js",
"./ko.js": "./node_modules/moment/locale/ko.js",
"./ku": "./node_modules/moment/locale/ku.js",
"./ku.js": "./node_modules/moment/locale/ku.js",
"./ky": "./node_modules/moment/locale/ky.js",
"./ky.js": "./node_modules/moment/locale/ky.js",
"./lb": "./node_modules/moment/locale/lb.js",
"./lb.js": "./node_modules/moment/locale/lb.js",
"./lo": "./node_modules/moment/locale/lo.js",
"./lo.js": "./node_modules/moment/locale/lo.js",
"./lt": "./node_modules/moment/locale/lt.js",
"./lt.js": "./node_modules/moment/locale/lt.js",
"./lv": "./node_modules/moment/locale/lv.js",
"./lv.js": "./node_modules/moment/locale/lv.js",
"./me": "./node_modules/moment/locale/me.js",
"./me.js": "./node_modules/moment/locale/me.js",
"./mi": "./node_modules/moment/locale/mi.js",
"./mi.js": "./node_modules/moment/locale/mi.js",
"./mk": "./node_modules/moment/locale/mk.js",
"./mk.js": "./node_modules/moment/locale/mk.js",
"./ml": "./node_modules/moment/locale/ml.js",
"./ml.js": "./node_modules/moment/locale/ml.js",
"./mn": "./node_modules/moment/locale/mn.js",
"./mn.js": "./node_modules/moment/locale/mn.js",
"./mr": "./node_modules/moment/locale/mr.js",
"./mr.js": "./node_modules/moment/locale/mr.js",
"./ms": "./node_modules/moment/locale/ms.js",
"./ms-my": "./node_modules/moment/locale/ms-my.js",
"./ms-my.js": "./node_modules/moment/locale/ms-my.js",
"./ms.js": "./node_modules/moment/locale/ms.js",
"./mt": "./node_modules/moment/locale/mt.js",
"./mt.js": "./node_modules/moment/locale/mt.js",
"./my": "./node_modules/moment/locale/my.js",
"./my.js": "./node_modules/moment/locale/my.js",
"./nb": "./node_modules/moment/locale/nb.js",
"./nb.js": "./node_modules/moment/locale/nb.js",
"./ne": "./node_modules/moment/locale/ne.js",
"./ne.js": "./node_modules/moment/locale/ne.js",
"./nl": "./node_modules/moment/locale/nl.js",
"./nl-be": "./node_modules/moment/locale/nl-be.js",
"./nl-be.js": "./node_modules/moment/locale/nl-be.js",
"./nl.js": "./node_modules/moment/locale/nl.js",
"./nn": "./node_modules/moment/locale/nn.js",
"./nn.js": "./node_modules/moment/locale/nn.js",
"./oc-lnc": "./node_modules/moment/locale/oc-lnc.js",
"./oc-lnc.js": "./node_modules/moment/locale/oc-lnc.js",
"./pa-in": "./node_modules/moment/locale/pa-in.js",
"./pa-in.js": "./node_modules/moment/locale/pa-in.js",
"./pl": "./node_modules/moment/locale/pl.js",
"./pl.js": "./node_modules/moment/locale/pl.js",
"./pt": "./node_modules/moment/locale/pt.js",
"./pt-br": "./node_modules/moment/locale/pt-br.js",
"./pt-br.js": "./node_modules/moment/locale/pt-br.js",
"./pt.js": "./node_modules/moment/locale/pt.js",
"./ro": "./node_modules/moment/locale/ro.js",
"./ro.js": "./node_modules/moment/locale/ro.js",
"./ru": "./node_modules/moment/locale/ru.js",
"./ru.js": "./node_modules/moment/locale/ru.js",
"./sd": "./node_modules/moment/locale/sd.js",
"./sd.js": "./node_modules/moment/locale/sd.js",
"./se": "./node_modules/moment/locale/se.js",
"./se.js": "./node_modules/moment/locale/se.js",
"./si": "./node_modules/moment/locale/si.js",
"./si.js": "./node_modules/moment/locale/si.js",
"./sk": "./node_modules/moment/locale/sk.js",
"./sk.js": "./node_modules/moment/locale/sk.js",
"./sl": "./node_modules/moment/locale/sl.js",
"./sl.js": "./node_modules/moment/locale/sl.js",
"./sq": "./node_modules/moment/locale/sq.js",
"./sq.js": "./node_modules/moment/locale/sq.js",
"./sr": "./node_modules/moment/locale/sr.js",
"./sr-cyrl": "./node_modules/moment/locale/sr-cyrl.js",
"./sr-cyrl.js": "./node_modules/moment/locale/sr-cyrl.js",
"./sr.js": "./node_modules/moment/locale/sr.js",
"./ss": "./node_modules/moment/locale/ss.js",
"./ss.js": "./node_modules/moment/locale/ss.js",
"./sv": "./node_modules/moment/locale/sv.js",
"./sv.js": "./node_modules/moment/locale/sv.js",
"./sw": "./node_modules/moment/locale/sw.js",
"./sw.js": "./node_modules/moment/locale/sw.js",
"./ta": "./node_modules/moment/locale/ta.js",
"./ta.js": "./node_modules/moment/locale/ta.js",
"./te": "./node_modules/moment/locale/te.js",
"./te.js": "./node_modules/moment/locale/te.js",
"./tet": "./node_modules/moment/locale/tet.js",
"./tet.js": "./node_modules/moment/locale/tet.js",
"./tg": "./node_modules/moment/locale/tg.js",
"./tg.js": "./node_modules/moment/locale/tg.js",
"./th": "./node_modules/moment/locale/th.js",
"./th.js": "./node_modules/moment/locale/th.js",
"./tk": "./node_modules/moment/locale/tk.js",
"./tk.js": "./node_modules/moment/locale/tk.js",
"./tl-ph": "./node_modules/moment/locale/tl-ph.js",
"./tl-ph.js": "./node_modules/moment/locale/tl-ph.js",
"./tlh": "./node_modules/moment/locale/tlh.js",
"./tlh.js": "./node_modules/moment/locale/tlh.js",
"./tr": "./node_modules/moment/locale/tr.js",
"./tr.js": "./node_modules/moment/locale/tr.js",
"./tzl": "./node_modules/moment/locale/tzl.js",
"./tzl.js": "./node_modules/moment/locale/tzl.js",
"./tzm": "./node_modules/moment/locale/tzm.js",
"./tzm-latn": "./node_modules/moment/locale/tzm-latn.js",
"./tzm-latn.js": "./node_modules/moment/locale/tzm-latn.js",
"./tzm.js": "./node_modules/moment/locale/tzm.js",
"./ug-cn": "./node_modules/moment/locale/ug-cn.js",
"./ug-cn.js": "./node_modules/moment/locale/ug-cn.js",
"./uk": "./node_modules/moment/locale/uk.js",
"./uk.js": "./node_modules/moment/locale/uk.js",
"./ur": "./node_modules/moment/locale/ur.js",
"./ur.js": "./node_modules/moment/locale/ur.js",
"./uz": "./node_modules/moment/locale/uz.js",
"./uz-latn": "./node_modules/moment/locale/uz-latn.js",
"./uz-latn.js": "./node_modules/moment/locale/uz-latn.js",
"./uz.js": "./node_modules/moment/locale/uz.js",
"./vi": "./node_modules/moment/locale/vi.js",
"./vi.js": "./node_modules/moment/locale/vi.js",
"./x-pseudo": "./node_modules/moment/locale/x-pseudo.js",
"./x-pseudo.js": "./node_modules/moment/locale/x-pseudo.js",
"./yo": "./node_modules/moment/locale/yo.js",
"./yo.js": "./node_modules/moment/locale/yo.js",
"./zh-cn": "./node_modules/moment/locale/zh-cn.js",
"./zh-cn.js": "./node_modules/moment/locale/zh-cn.js",
"./zh-hk": "./node_modules/moment/locale/zh-hk.js",
"./zh-hk.js": "./node_modules/moment/locale/zh-hk.js",
"./zh-mo": "./node_modules/moment/locale/zh-mo.js",
"./zh-mo.js": "./node_modules/moment/locale/zh-mo.js",
"./zh-tw": "./node_modules/moment/locale/zh-tw.js",
"./zh-tw.js": "./node_modules/moment/locale/zh-tw.js"
};
function webpackContext(req) {
var id = webpackContextResolve(req);
return __webpack_require__(id);
}
function webpackContextResolve(req) {
if(!__webpack_require__.o(map, req)) {
var e = new Error("Cannot find module '" + req + "'");
e.code = 'MODULE_NOT_FOUND';
throw e;
}
return map[req];
}
webpackContext.keys = function webpackContextKeys() {
return Object.keys(map);
};
webpackContext.resolve = webpackContextResolve;
module.exports = webpackContext;
webpackContext.id = "./node_modules/moment/locale sync recursive ^\\.\\/.*$";
/***/ }),
/***/ "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg== ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((module) => {
"use strict";
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==";
/***/ }),
/***/ "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII= ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((module) => {
"use strict";
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=";
/***/ }),
/***/ "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC":
/*!******************************************************************************************************************************************************************************************************!*\
!*** data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC ***!
\******************************************************************************************************************************************************************************************************/
/***/ ((module) => {
"use strict";
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC";
/***/ }),
/***/ "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII= ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((module) => {
"use strict";
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=";
/***/ }),
/***/ "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII= ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((module) => {
"use strict";
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=";
/***/ }),
/***/ "grav-config":
/*!****************************!*\
!*** external "GravAdmin" ***!
\****************************/
/***/ ((module) => {
"use strict";
module.exports = GravAdmin;
/***/ }),
/***/ "jquery":
/*!*************************!*\
!*** external "jQuery" ***!
\*************************/
/***/ ((module) => {
"use strict";
module.exports = jQuery;
/***/ })
/******/ });
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ id: moduleId,
/******/ loaded: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = __webpack_modules__;
/******/
/************************************************************************/
/******/ /* webpack/runtime/amd define */
/******/ (() => {
/******/ __webpack_require__.amdD = function () {
/******/ throw new Error('define cannot be used indirect');
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/chunk loaded */
/******/ (() => {
/******/ var deferred = [];
/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => {
/******/ if(chunkIds) {
/******/ priority = priority || 0;
/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
/******/ deferred[i] = [chunkIds, fn, priority];
/******/ return;
/******/ }
/******/ var notFulfilled = Infinity;
/******/ for (var i = 0; i < deferred.length; i++) {
/******/ var [chunkIds, fn, priority] = deferred[i];
/******/ var fulfilled = true;
/******/ for (var j = 0; j < chunkIds.length; j++) {
/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {
/******/ chunkIds.splice(j--, 1);
/******/ } else {
/******/ fulfilled = false;
/******/ if(priority < notFulfilled) notFulfilled = priority;
/******/ }
/******/ }
/******/ if(fulfilled) {
/******/ deferred.splice(i--, 1)
/******/ var r = fn();
/******/ if (r !== undefined) result = r;
/******/ }
/******/ }
/******/ return result;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/compat get default export */
/******/ (() => {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = (module) => {
/******/ var getter = module && module.__esModule ?
/******/ () => (module['default']) :
/******/ () => (module);
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/global */
/******/ (() => {
/******/ __webpack_require__.g = (function() {
/******/ if (typeof globalThis === 'object') return globalThis;
/******/ try {
/******/ return this || new Function('return this')();
/******/ } catch (e) {
/******/ if (typeof window === 'object') return window;
/******/ }
/******/ })();
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ (() => {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = (exports) => {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/node module decorator */
/******/ (() => {
/******/ __webpack_require__.nmd = (module) => {
/******/ module.paths = [];
/******/ if (!module.children) module.children = [];
/******/ return module;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/jsonp chunk loading */
/******/ (() => {
/******/ __webpack_require__.b = document.baseURI || self.location.href;
/******/
/******/ // object to store loaded and loading chunks
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
/******/ var installedChunks = {
/******/ "admin": 0
/******/ };
/******/
/******/ // no chunk on demand loading
/******/
/******/ // no prefetching
/******/
/******/ // no preloaded
/******/
/******/ // no HMR
/******/
/******/ // no HMR manifest
/******/
/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);
/******/
/******/ // install a JSONP callback for chunk loading
/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
/******/ var [chunkIds, moreModules, runtime] = data;
/******/ // add "moreModules" to the modules object,
/******/ // then flag all "chunkIds" as loaded and fire callback
/******/ var moduleId, chunkId, i = 0;
/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) {
/******/ for(moduleId in moreModules) {
/******/ if(__webpack_require__.o(moreModules, moduleId)) {
/******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
/******/ }
/******/ }
/******/ if(runtime) var result = runtime(__webpack_require__);
/******/ }
/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
/******/ for(;i < chunkIds.length; i++) {
/******/ chunkId = chunkIds[i];
/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
/******/ installedChunks[chunkId][0]();
/******/ }
/******/ installedChunks[chunkId] = 0;
/******/ }
/******/ return __webpack_require__.O(result);
/******/ }
/******/
/******/ var chunkLoadingGlobal = self["webpackChunkGrav"] = self["webpackChunkGrav"] || [];
/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
/******/ })();
/******/
/******/ /* webpack/runtime/nonce */
/******/ (() => {
/******/ __webpack_require__.nc = undefined;
/******/ })();
/******/
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module depends on other loaded chunks and execution need to be delayed
/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["vendor"], () => (__webpack_require__("./app/main.js")))
/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__);
/******/ Grav = __webpack_exports__;
/******/
/******/ })()
;