Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/components/bitrix/main.ui.grid/templates/.default/
Upload File :
Current File : /var/www/homesaver/www/bitrix/components/bitrix/main.ui.grid/templates/.default/script.js.map

{"version":3,"file":"script.js","sources":["src/js/action-panel.js","src/js/baseclass.js","src/js/cell-action-state.js","src/js/cell-actions.js","src/js/cols-sortable.js","src/js/counters.js","src/js/data.js","src/js/dropdown.js","src/js/dropdown-manager.js","src/js/element.js","src/js/fader.js","src/js/grid.js","src/js/gridupdater.js","src/js/image-field.js","src/js/inline-editor.js","src/js/label.js","src/js/loader.js","src/js/manager.js","src/js/message.js","src/js/observer.js","src/js/pagesize.js","src/js/pagination.js","src/js/pin-header.js","src/js/pin-panel.js","src/js/realtime.js","src/js/resize.js","src/js/row.js","src/js/rows.js","src/js/rows-sortable.js","src/js/settings.js","src/js/settings-window/checkboxlist.js","src/js/settings-window/column.js","src/js/settings-window/manager.js","src/js/settings-window/popup.js","src/js/useroptions.js","src/js/utils.js"],"sourcesContent":["(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.ActionPanel\n\t *\n\t * @param {BX.Main.grid} parent\n\t * @param {object} actions List of available actions Bitrix\\Main\\Grid\\Panel\\Actions::getList()\n\t * @param {string} actions.CREATE\n\t * @param {string} actions.SEND\n\t * @param {string} actions.ACTIVATE\n\t * @param {string} actions.SHOW\n\t * @param {string} actions.HIDE\n\t * @param {string} actions.REMOVE\n\t * @param {string} actions.CALLBACK\n\t * @param {string} actions.INLINE_EDIT\n\t * @param {string} actions.HIDE_ALL_EXPECT\n\t * @param {string} actions.SHOW_ALL\n\t * @param {string} actions.RESET_CONTROLS\n\t *\n\t * @param {object} types List of available control types\n\t * of the actions panel Bitrix\\Main\\Grid\\Panel\\Types::getList()\n\t * @param {string} types.DROPDOWN\n\t * @param {string} types.CHECKBOX\n\t * @param {string} types.TEXT\n\t * @param {string} types.BUTTON\n\t * @param {string} types.LINK\n\t * @param {string} types.CUSTOM\n\t * @param {string} types.HIDDEN\n\t *\n\t * @constructor\n\t */\n\tBX.Grid.ActionPanel = function(parent, actions, types)\n\t{\n\t\tthis.parent = null;\n\t\tthis.rel = {};\n\t\tthis.actions = null;\n\t\tthis.types = null;\n\t\tthis.lastActivated = [];\n\t\tthis.init(parent, actions, types);\n\t\tthis.button = [];\n\t\tthis.elements = [];\n\t\tthis.buttonOnChange = [];\n\t\tthis.buttonData = {};\n\t};\n\n\tBX.Grid.ActionPanel.prototype = {\n\t\tinit(parent, actions, types)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tthis.actions = eval(actions);\n\t\t\tthis.types = eval(types);\n\n\t\t\tBX.addCustomEvent(window, 'Dropdown::change', BX.proxy(this._dropdownEventHandle, this));\n\n\t\t\tBX.addCustomEvent(window, 'Dropdown::load', BX.proxy(this._dropdownEventHandle, this));\n\n\t\t\tconst panel = this.getPanel();\n\t\t\tBX.bind(panel, 'change', BX.delegate(this._checkboxChange, this));\n\t\t\tBX.bind(panel, 'click', BX.delegate(this._clickOnButton, this));\n\n\t\t\tBX.addCustomEvent(window, 'Grid::updated', BX.proxy(this._gridUpdatedEventHandle, this));\n\t\t},\n\n\t\tdestroy()\n\t\t{\n\t\t\tBX.removeCustomEvent(window, 'Dropdown::change', BX.proxy(this._dropdownEventHandle, this));\n\t\t\tBX.removeCustomEvent(window, 'Dropdown::load', BX.proxy(this._dropdownEventHandle, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::updated', BX.proxy(this._gridUpdatedEventHandle, this));\n\t\t},\n\n\t\t_gridUpdatedEventHandle()\n\t\t{\n\t\t\tconst cancelButton = BX('grid_cancel_button');\n\t\t\tcancelButton && BX.fireEvent(BX.firstChild(cancelButton), 'click');\n\t\t},\n\n\t\t_dropdownEventHandle(id, event, item, dataItem)\n\t\t{\n\t\t\tthis.isPanelControl(BX(id)) && this._dropdownChange(id, event, item, dataItem);\n\t\t},\n\n\t\tresetForAllCheckbox()\n\t\t{\n\t\t\tconst checkbox = this.getForAllCheckbox();\n\n\t\t\tif (BX.type.isDomNode(checkbox))\n\t\t\t{\n\t\t\t\tcheckbox.checked = null;\n\t\t\t}\n\t\t},\n\n\t\tgetForAllCheckbox()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getPanel(), this.parent.settings.get('classForAllCheckbox'), true);\n\t\t},\n\n\t\tgetPanel()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.parent.getContainer(), this.parent.settings.get('classActionPanel'), true);\n\t\t},\n\n\t\tgetApplyButton()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getPanel(), this.parent.settings.get('classPanelApplyButton'), true);\n\t\t},\n\n\t\tisPanelControl(node)\n\t\t{\n\t\t\treturn BX.hasClass(node, this.parent.settings.get('classPanelControl'));\n\t\t},\n\n\t\tgetTextInputs()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getBySelector(this.getPanel(), 'input[type=\"text\"]');\n\t\t},\n\n\t\tgetHiddenInputs()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getBySelector(this.getPanel(), 'input[type=\"hidden\"]');\n\t\t},\n\n\t\tgetSelects()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getBySelector(this.getPanel(), 'select');\n\t\t},\n\n\t\tgetDropdowns()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getPanel(), this.parent.settings.get('classDropdown'));\n\t\t},\n\n\t\tgetCheckboxes()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getPanel(), this.parent.settings.get('classPanelCheckbox'));\n\t\t},\n\n\t\tgetButtons()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getPanel(), this.parent.settings.get('classPanelButton'));\n\t\t},\n\n\t\tisDropdown(node)\n\t\t{\n\t\t\treturn BX.hasClass(node, this.parent.settings.get('classDropdown'));\n\t\t},\n\n\t\tisCheckbox(node)\n\t\t{\n\t\t\treturn BX.hasClass(node, this.parent.settings.get('classPanelCheckbox'));\n\t\t},\n\n\t\tisTextInput(node)\n\t\t{\n\t\t\treturn node.type === 'text';\n\t\t},\n\n\t\tisHiddenInput(node)\n\t\t{\n\t\t\treturn node.type === 'hidden';\n\t\t},\n\n\t\tisSelect(node)\n\t\t{\n\t\t\treturn node.tagName === 'SELECT';\n\t\t},\n\n\t\tcreateDropdown(data, relative)\n\t\t{\n\t\t\tconst emptyText = data.EMPTY_TEXT || '';\n\t\t\tconst isMultiple = data.MULTIPLE === 'Y';\n\t\t\tconst container = this.createContainer(data.ID, relative, {});\n\t\t\tconst dropdown = BX.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'main-dropdown main-grid-panel-control',\n\t\t\t\t\tid: `${data.ID}_control`,\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\tname: data.NAME,\n\t\t\t\t\t'data-name': data.NAME,\n\t\t\t\t\t'data-empty-text': emptyText,\n\t\t\t\t\t'data-multiple': isMultiple ? 'Y' : 'N',\n\t\t\t\t\t'data-items': JSON.stringify(data.ITEMS),\n\t\t\t\t\t'data-value': isMultiple ? '' : data.ITEMS[0].VALUE,\n\t\t\t\t\t'data-popup-position': 'fixed',\n\t\t\t\t},\n\t\t\t\tchildren: [BX.create('span', {\n\t\t\t\t\tprops: { className: 'main-dropdown-inner' },\n\t\t\t\t\thtml: isMultiple ? emptyText : data.ITEMS[0].NAME,\n\t\t\t\t})],\n\t\t\t});\n\n\t\t\tcontainer.appendChild(dropdown);\n\n\t\t\treturn container;\n\t\t},\n\n\t\tcreateCheckbox(data, relative)\n\t\t{\n\t\t\tconst checkbox = this.createContainer(data.ID, relative, {});\n\n\t\t\tconst inner = BX.create('span', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'main-grid-checkbox-container',\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tconst titleSpan = BX.create('span', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'main-grid-control-panel-content-title',\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tconst input = BX.create('input', {\n\t\t\t\tprops: {\n\t\t\t\t\ttype: 'checkbox',\n\t\t\t\t\tclassName: `${this.parent.settings.get('classPanelCheckbox')} main-grid-checkbox`,\n\t\t\t\t\tid: `${data.ID}_control`,\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\tvalue: data.VALUE || '',\n\t\t\t\t\ttitle: data.TITLE || '',\n\t\t\t\t\tname: data.NAME || '',\n\t\t\t\t\t'data-onchange': JSON.stringify(data.ONCHANGE),\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tinput.checked = data.CHECKED || null;\n\n\t\t\tcheckbox.appendChild(inner);\n\t\t\tcheckbox.appendChild(titleSpan);\n\n\t\t\tinner.appendChild(input);\n\n\t\t\tinner.appendChild(BX.create('label', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'main-grid-checkbox',\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\tfor: `${data.ID}_control`,\n\t\t\t\t\ttitle: data.TITLE,\n\t\t\t\t},\n\t\t\t}));\n\n\t\t\ttitleSpan.appendChild(BX.create('label', {\n\t\t\t\tattrs: {\n\t\t\t\t\tfor: `${data.ID}_control`,\n\t\t\t\t\ttitle: data.TITLE,\n\t\t\t\t},\n\t\t\t\thtml: data.LABEL,\n\t\t\t}));\n\n\t\t\treturn checkbox;\n\t\t},\n\n\t\t/**\n\t\t * @param {object} data\n\t\t * @param {object} data.ID\n\t\t * @param {object} data.TITLE\n\t\t * @param {object} data.PLACEHOLDER\n\t\t * @param {object} data.ONCHANGE\n\t\t * @param {string} relative\n\t\t * @returns {*}\n\t\t */\n\t\tcreateText(data, relative)\n\t\t{\n\t\t\tconst container = this.createContainer(data.ID, relative, {});\n\t\t\tconst title = BX.type.isNotEmptyString(data.TITLE) ? data.TITLE : '';\n\t\t\tif (title !== '')\n\t\t\t{\n\t\t\t\tcontainer.appendChild(\n\t\t\t\t\tBX.create(\n\t\t\t\t\t\t'label',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tattrs: { title, for: `${data.ID}_control` },\n\t\t\t\t\t\t\ttext: title,\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t\tcontainer.appendChild(\n\t\t\t\tBX.create(\n\t\t\t\t\t'input',\n\t\t\t\t\t{\n\t\t\t\t\t\tprops:\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tclassName: 'main-grid-control-panel-input-text main-grid-panel-control',\n\t\t\t\t\t\t\t\tid: `${data.ID}_control`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\tattrs:\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: data.NAME,\n\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\tplaceholder: data.PLACEHOLDER || '',\n\t\t\t\t\t\t\t\tvalue: data.VALUE || '',\n\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t'data-onchange': JSON.stringify(data.ONCHANGE || []),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\n\t\t\treturn container;\n\t\t},\n\n\t\tcreateHidden(data, relative)\n\t\t{\n\t\t\tconst container = this.createContainer(\n\t\t\t\tdata.ID,\n\t\t\t\trelative,\n\t\t\t\t{ CLASS: 'main-grid-panel-hidden-control-container' },\n\t\t\t);\n\t\t\tcontainer.appendChild(\n\t\t\t\tBX.create(\n\t\t\t\t\t'input',\n\t\t\t\t\t{\n\t\t\t\t\t\tprops:\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: `${data.ID}_control`,\n\t\t\t\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\tattrs:\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: data.NAME,\n\t\t\t\t\t\t\t\tvalue: data.VALUE || '',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\n\t\t\treturn container;\n\t\t},\n\n\t\tcreateButton(data, relative)\n\t\t{\n\t\t\tthis.buttonOnChange = (data.ONCHANGE || []);\n\t\t\tthis.buttonData = data;\n\n\t\t\tthis.button = this.createButtonNode(data);\n\n\t\t\tBX.removeCustomEvent(window, 'Grid::unselectRow', BX.proxy(this.prepareButton, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::selectRow', BX.proxy(this.prepareButton, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::allRowsSelected', BX.proxy(this.prepareButton, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::allRowsUnselected', BX.proxy(this.prepareButton, this));\n\n\t\t\tif (\n\t\t\t\tthis.buttonData.SETTINGS\n\t\t\t\t&& data.ID === this.buttonData.SETTINGS.buttonId\n\t\t\t)\n\t\t\t{\n\t\t\t\tBX.addCustomEvent(window, 'Grid::unselectRow', BX.proxy(this.prepareButton, this));\n\t\t\t\tBX.addCustomEvent(window, 'Grid::selectRow', BX.proxy(this.prepareButton, this));\n\t\t\t\tBX.addCustomEvent(window, 'Grid::allRowsSelected', BX.proxy(this.prepareButton, this));\n\t\t\t\tBX.addCustomEvent(window, 'Grid::allRowsUnselected', BX.proxy(this.prepareButton, this));\n\t\t\t}\n\n\t\t\tthis.prepareButton();\n\n\t\t\tconst container = this.createContainer(data.ID, relative, {});\n\t\t\tcontainer.appendChild(this.button);\n\n\t\t\treturn container;\n\t\t},\n\n\t\tcreateButtonNode(data)\n\t\t{\n\t\t\treturn BX.create('button', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: `ui-btn${data.CLASS ? ` ${data.CLASS}` : ''}`,\n\t\t\t\t\tid: `${data.ID}_control`,\n\t\t\t\t\ttitle: BX.type.isNotEmptyString(data.TITLE) ? data.TITLE : '',\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\tname: data.NAME || '',\n\t\t\t\t},\n\t\t\t\thtml: data.TEXT,\n\t\t\t});\n\t\t},\n\n\t\tprepareButton()\n\t\t{\n\t\t\tif (this.isSetButtonDisabled())\n\t\t\t{\n\t\t\t\tBX.Dom.attr(this.button, 'data-onchange', []);\n\t\t\t\tBX.Dom.addClass(this.button, 'ui-btn-disabled');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.Dom.attr(this.button, 'data-onchange', this.buttonOnChange);\n\t\t\t\tBX.Dom.removeClass(this.button, 'ui-btn-disabled');\n\t\t\t}\n\t\t},\n\n\t\tisSetButtonDisabled()\n\t\t{\n\t\t\treturn Boolean(this.buttonData.SETTINGS\n\t\t\t\t&& this.buttonData.SETTINGS.minSelectedRows\n\t\t\t\t&& (this.getSelectedIds().length < this.buttonData.SETTINGS.minSelectedRows));\n\t\t},\n\n\t\t/**\n\t\t * @param {object} data\n\t\t * @param {object} data.ID\n\t\t * @param {object} data.TITLE\n\t\t * @param {object} data.PLACEHOLDER\n\t\t * @param {object} data.ONCHANGE\n\t\t * @param {object} data.CLASS\n\t\t * @param {object} data.HREF\n\t\t * @param {string} relative\n\t\t * @returns {*}\n\t\t */\n\t\tcreateLink(data, relative)\n\t\t{\n\t\t\tconst container = this.createContainer(data.ID, relative, {});\n\t\t\tconst link = BX.create('a', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: `main-grid-link${data.CLASS ? ` ${data.CLASS}` : ''}`,\n\t\t\t\t\tid: `${data.ID}_control`,\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\thref: data.HREF || '',\n\t\t\t\t\t'data-onchange': JSON.stringify(data.ONCHANGE || []),\n\t\t\t\t},\n\t\t\t\thtml: data.TEXT,\n\t\t\t});\n\n\t\t\tcontainer.appendChild(link);\n\n\t\t\treturn container;\n\t\t},\n\n\t\tcreateCustom(data, relative)\n\t\t{\n\t\t\tconst container = this.createContainer(\n\t\t\t\tdata.ID,\n\t\t\t\trelative,\n\t\t\t\t{ CLASS: 'main-grid-panel-hidden-control-container' },\n\t\t\t);\n\n\t\t\tconst custom = BX.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: `main-grid-panel-custom${data.CLASS ? ` ${data.CLASS}` : ''}`,\n\t\t\t\t},\n\t\t\t\thtml: data.VALUE,\n\t\t\t});\n\n\t\t\tcontainer.appendChild(custom);\n\n\t\t\treturn container;\n\t\t},\n\n\t\tcreateContainer(id, relative, options)\n\t\t{\n\t\t\tid = id.replace('_control', '');\n\t\t\trelative = relative.replace('_control', '');\n\t\t\toptions = options || {};\n\n\t\t\treturn BX.create('span', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: this.parent.settings.get('classPanelControlContainer') + (options.CLASS ? ` ${options.CLASS}` : ''),\n\t\t\t\t\tid,\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\t'data-relative': relative,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\n\t\tremoveItemsRelativeCurrent(node)\n\t\t{\n\t\t\tlet element = node;\n\t\t\tconst relative = [node.id];\n\t\t\tconst result = [];\n\t\t\tlet dataRelative;\n\n\t\t\twhile (element)\n\t\t\t{\n\t\t\t\tdataRelative = BX.data(element, 'relative');\n\n\t\t\t\tif (relative.includes(dataRelative))\n\t\t\t\t{\n\t\t\t\t\trelative.push(element.id);\n\t\t\t\t\tresult.push(element);\n\t\t\t\t}\n\n\t\t\t\telement = element.nextElementSibling;\n\t\t\t}\n\n\t\t\tresult.forEach((current) => {\n\t\t\t\tBX.remove(current);\n\t\t\t});\n\t\t},\n\n\t\tvalidateData(data)\n\t\t{\n\t\t\treturn (\n\t\t\t\t('ONCHANGE' in data)\n\t\t\t\t&& BX.type.isArray(data.ONCHANGE)\n\t\t\t);\n\t\t},\n\n\t\tactivateControl(id)\n\t\t{\n\t\t\tconst element = BX(id);\n\n\t\t\tif (BX.type.isDomNode(element))\n\t\t\t{\n\t\t\t\tBX.removeClass(element, this.parent.settings.get('classDisable'));\n\t\t\t\telement.disabled = null;\n\t\t\t}\n\t\t},\n\n\t\tdeactivateControl(id)\n\t\t{\n\t\t\tconst element = BX(id);\n\n\t\t\tif (BX.type.isDomNode(element))\n\t\t\t{\n\t\t\t\tBX.addClass(element, this.parent.settings.get('classDisable'));\n\t\t\t\telement.disabled = true;\n\t\t\t}\n\t\t},\n\n\t\tshowControl(id)\n\t\t{\n\t\t\tconst control = BX(id);\n\t\t\tcontrol && BX.show(control);\n\t\t},\n\n\t\thideControl(id)\n\t\t{\n\t\t\tconst control = BX(id);\n\t\t\tcontrol && BX.hide(control);\n\t\t},\n\n\t\tvalidateActionObject(action)\n\t\t{\n\t\t\treturn (\n\t\t\t\tBX.type.isPlainObject(action) && ('ACTION' in action) && BX.type.isNotEmptyString(action.ACTION) && (\n\t\t\t\t\taction.ACTION === this.actions.RESET_CONTROLS\n\t\t\t\t\t|| ('DATA' in action) && BX.type.isArray(action.DATA)\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\n\t\tvalidateControlObject(controlObject)\n\t\t{\n\t\t\treturn (\n\t\t\t\tBX.type.isPlainObject(controlObject)\n\t\t\t\t&& ('TYPE' in controlObject)\n\t\t\t\t&& ('ID' in controlObject)\n\t\t\t);\n\t\t},\n\n\t\tcreateDate(data, relative)\n\t\t{\n\t\t\tconst container = this.createContainer(data.ID, relative, {});\n\t\t\tconst date = BX.decl({\n\t\t\t\tblock: 'main-ui-date',\n\t\t\t\tmix: ['main-grid-panel-date'],\n\t\t\t\tcalendarButton: true,\n\t\t\t\tvalueDelete: true,\n\t\t\t\tplaceholder: 'PLACEHOLDER' in data ? data.PLACEHOLDER : '',\n\t\t\t\tname: 'NAME' in data ? `${data.NAME}_from` : '',\n\t\t\t\ttabindex: 'TABINDEX' in data ? data.TABINDEX : '',\n\t\t\t\tvalue: 'VALUE' in data ? data.VALUE : '',\n\t\t\t\tenableTime: 'TIME' in data ? (data.TIME ? 'true' : 'false') : 'false',\n\t\t\t});\n\n\t\t\tcontainer.appendChild(date);\n\n\t\t\treturn container;\n\t\t},\n\n\t\tcreateControl(controlObject, relativeId)\n\t\t{\n\t\t\tlet newElement = null;\n\t\t\tswitch (controlObject.TYPE)\n\t\t\t{\n\t\t\t\tcase this.types.DROPDOWN:\n\t\t\t\t\tnewElement = this.createDropdown(controlObject, relativeId);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase this.types.CHECKBOX:\n\t\t\t\t\tnewElement = this.createCheckbox(controlObject, relativeId);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase this.types.TEXT:\n\t\t\t\t\tnewElement = this.createText(controlObject, relativeId);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase this.types.HIDDEN:\n\t\t\t\t\tnewElement = this.createHidden(controlObject, relativeId);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase this.types.BUTTON:\n\t\t\t\t\tnewElement = this.createButton(controlObject, relativeId);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase this.types.LINK:\n\t\t\t\t\tnewElement = this.createLink(controlObject, relativeId);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase this.types.CUSTOM:\n\t\t\t\t\tnewElement = this.createCustom(controlObject, relativeId);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase this.types.DATE:\n\t\t\t\t\tnewElement = this.createDate(controlObject, relativeId);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn newElement;\n\t\t},\n\n\t\tonChangeHandler(container, actions, isPseudo)\n\t\t{\n\t\t\tlet newElement; let\n\t\t\t\tcallback;\n\t\t\tconst self = this;\n\n\t\t\tif (BX.type.isDomNode(container) && BX.type.isArray(actions))\n\t\t\t{\n\t\t\t\tactions.forEach(function(action) {\n\t\t\t\t\tif (self.validateActionObject(action))\n\t\t\t\t\t{\n\t\t\t\t\t\tif (action.ACTION === self.actions.CREATE)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.removeItemsRelativeCurrent(container);\n\t\t\t\t\t\t\tconst preparedData = BX.Runtime.clone(action.DATA).reverse();\n\n\t\t\t\t\t\t\tpreparedData.forEach((controlObject) => {\n\t\t\t\t\t\t\t\tif (self.validateControlObject(controlObject))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tnewElement = self.createControl(controlObject, container.id || BX.data(container, 'relative'));\n\n\t\t\t\t\t\t\t\t\tif (BX.type.isDomNode(newElement))\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tBX.insertAfter(newElement, container);\n\n\t\t\t\t\t\t\t\t\t\tif (('ONCHANGE' in controlObject)\n\t\t\t\t\t\t\t\t\t\t\t&& controlObject.TYPE === self.types.CHECKBOX\n\t\t\t\t\t\t\t\t\t\t\t&& ('CHECKED' in controlObject)\n\t\t\t\t\t\t\t\t\t\t\t&& controlObject.CHECKED)\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tself.onChangeHandler(newElement, controlObject.ONCHANGE);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif (controlObject.TYPE === self.types.DROPDOWN\n\t\t\t\t\t\t\t\t\t\t\t&& BX.type.isArray(controlObject.ITEMS)\n\t\t\t\t\t\t\t\t\t\t\t&& controlObject.ITEMS.length > 0\n\t\t\t\t\t\t\t\t\t\t\t&& ('ONCHANGE' in controlObject.ITEMS[0])\n\t\t\t\t\t\t\t\t\t\t\t&& BX.type.isArray(controlObject.ITEMS[0].ONCHANGE))\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tself.onChangeHandler(newElement, controlObject.ITEMS[0].ONCHANGE);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (action.ACTION === self.actions.ACTIVATE)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.removeItemsRelativeCurrent(container);\n\n\t\t\t\t\t\t\tif (BX.type.isArray(action.DATA))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\taction.DATA.forEach((currentId) => {\n\t\t\t\t\t\t\t\t\tself.lastActivated.push(currentId.ID);\n\t\t\t\t\t\t\t\t\tself.activateControl(currentId.ID);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (action.ACTION === self.actions.SHOW && BX.type.isArray(action.DATA))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\taction.DATA.forEach((showCurrent) => {\n\t\t\t\t\t\t\t\tself.showControl(showCurrent.ID);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (action.ACTION === self.actions.HIDE && BX.type.isArray(action.DATA))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\taction.DATA.forEach((hideCurrent) => {\n\t\t\t\t\t\t\t\tself.hideControl(hideCurrent.ID);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (action.ACTION === self.actions.HIDE_ALL_EXPECT && BX.type.isArray(action.DATA))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t(self.getControls() || []).forEach((current) => {\n\t\t\t\t\t\t\t\tif (!action.DATA.some((el) => { return el.ID === current.id;\n\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tself.hideControl(current.id);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (action.ACTION === self.actions.SHOW_ALL)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t(self.getControls() || []).forEach((current) => {\n\t\t\t\t\t\t\t\tself.showControl(current.id);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (action.ACTION === self.actions.REMOVE && BX.type.isArray(action.DATA))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\taction.DATA.forEach((removeCurrent) => {\n\t\t\t\t\t\t\t\tBX.remove(BX(removeCurrent.ID));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (action.ACTION === self.actions.CALLBACK)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.confirmDialog(action, BX.delegate(() => {\n\t\t\t\t\t\t\t\tif (BX.type.isArray(action.DATA))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\taction.DATA.forEach(\n\t\t\t\t\t\t\t\t\t\t(currentCallback) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentCallback.JS.includes('Grid.'))\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tcallback = currentCallback.JS.replace('Grid', 'self.parent');\n\t\t\t\t\t\t\t\t\t\t\t\tcallback = callback.replace('()', '');\n\t\t\t\t\t\t\t\t\t\t\t\tcallback += '.apply(self.parent, [container])';\n\t\t\t\t\t\t\t\t\t\t\t\ttry\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\teval(callback); // jshint ignore:line\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tcatch (err)\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tthrow new Error(err);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (BX.type.isNotEmptyString(currentCallback.JS))\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttry\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\teval(currentCallback.JS);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tcatch (err)\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tthrow new Error(err);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, this));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (action.ACTION === self.actions.RESET_CONTROLS)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.removeItemsRelativeCurrent(container);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (!isPseudo)\n\t\t\t\t{\n\t\t\t\t\tthis.removeItemsRelativeCurrent(container);\n\t\t\t\t}\n\n\t\t\t\tself.lastActivated.forEach((current) => {\n\t\t\t\t\tself.deactivateControl(current);\n\t\t\t\t});\n\n\t\t\t\tself.lastActivated = [];\n\t\t\t}\n\t\t},\n\n\t\tconfirmDialog(action, then, cancel)\n\t\t{\n\t\t\tthis.parent.confirmDialog(action, then, cancel);\n\t\t},\n\n\t\t/**\n\t\t * Dropdown value change handler\n\t\t * @param {string} id Dropdown id\n\t\t * @param {object} event\n\t\t * @param item\n\t\t * @param {object} dataItem\n\t\t * @param {object} dataItem.ONCHANGE\n\t\t * @param {boolean} dataItem.PSEUDO\n\t\t * @private\n\t\t */\n\t\t_dropdownChange(id, event, item, dataItem)\n\t\t{\n\t\t\tconst dropdown = BX(id);\n\t\t\tconst container = dropdown.parentNode;\n\t\t\tconst onChange = dataItem && ('ONCHANGE' in dataItem) ? dataItem.ONCHANGE : null;\n\t\t\tconst isPseudo = dataItem && ('PSEUDO' in dataItem && dataItem.PSEUDO !== false);\n\n\t\t\tthis.onChangeHandler(container, onChange, isPseudo);\n\t\t},\n\n\t\t_checkboxChange(event)\n\t\t{\n\t\t\tlet onChange;\n\n\t\t\ttry\n\t\t\t{\n\t\t\t\tonChange = eval(BX.data(event.target, 'onchange'));\n\t\t\t}\n\t\t\tcatch\n\t\t\t{\n\t\t\t\tonChange = null;\n\t\t\t}\n\n\t\t\tthis.onChangeHandler(\n\t\t\t\tBX.findParent(event.target, {\n\t\t\t\t\tclassName: this.parent.settings.get('classPanelContainer'),\n\t\t\t\t}, true, false),\n\t\t\t\tevent.target.checked || event.target.id.includes('actallrows_') ? onChange : null,\n\t\t\t);\n\t\t},\n\n\t\t_clickOnButton(event)\n\t\t{\n\t\t\tlet onChange;\n\n\t\t\tif (this.isButton(event.target))\n\t\t\t{\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\ttry\n\t\t\t\t{\n\t\t\t\t\tonChange = eval(BX.data(event.target, 'onchange'));\n\t\t\t\t}\n\t\t\t\tcatch\n\t\t\t\t{\n\t\t\t\t\tonChange = null;\n\t\t\t\t}\n\n\t\t\t\tthis.onChangeHandler(\n\t\t\t\t\tBX.findParent(event.target, {\n\t\t\t\t\t\tclassName: this.parent.settings.get('classPanelContainer'),\n\t\t\t\t\t}, true, false),\n\t\t\t\t\tonChange,\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\n\t\tisButton(node)\n\t\t{\n\t\t\treturn BX.hasClass(node, this.parent.settings.get('classPanelButton'));\n\t\t},\n\n\t\tgetSelectedIds()\n\t\t{\n\t\t\tconst rows = this.parent.getRows().getSelected().filter((row) => { return row.isShown();\n\t\t\t});\n\n\t\t\treturn rows.map((current) => {\n\t\t\t\treturn current.getId();\n\t\t\t});\n\t\t},\n\n\t\tgetControls()\n\t\t{\n\t\t\treturn BX.findChild(this.getPanel(), {\n\t\t\t\tclassName: this.parent.settings.get('classPanelControlContainer'),\n\t\t\t}, true, true);\n\t\t},\n\n\t\tgetValues()\n\t\t{\n\t\t\tconst data = {};\n\t\t\tconst self = this;\n\t\t\tconst controls = [].concat(\n\t\t\t\tthis.getDropdowns(),\n\t\t\t\tthis.getTextInputs(),\n\t\t\t\tthis.getHiddenInputs(),\n\t\t\t\tthis.getSelects(),\n\t\t\t\tthis.getCheckboxes(),\n\t\t\t\tthis.getButtons(),\n\t\t\t);\n\n\t\t\t(controls || []).forEach((current) => {\n\t\t\t\tif (BX.type.isDomNode(current))\n\t\t\t\t{\n\t\t\t\t\tif (self.isDropdown(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tlet dropdownValue = BX.data(current, 'value');\n\t\t\t\t\t\tconst multiple = BX.data(current, 'multiple') === 'Y';\n\t\t\t\t\t\tdropdownValue = (dropdownValue !== null && dropdownValue !== undefined) ? dropdownValue : '';\n\t\t\t\t\t\tdata[BX.data(current, 'name')] = multiple ? dropdownValue.split(',') : dropdownValue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.isSelect(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tdata[current.getAttribute('name')] = current.options[current.selectedIndex].value;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.isCheckbox(current) && current.checked)\n\t\t\t\t\t{\n\t\t\t\t\t\tdata[current.getAttribute('name')] = current.value;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.isTextInput(current) || self.isHiddenInput(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tdata[current.getAttribute('name')] = current.value;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.isButton(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tconst name = BX.data(current, 'name');\n\t\t\t\t\t\tlet value = BX.data(current, 'value');\n\t\t\t\t\t\tvalue = (value !== null && value !== undefined) ? value : '';\n\n\t\t\t\t\t\tif (name)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdata[name] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn data;\n\t\t},\n\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * Base class\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.BaseClass = function(parent)\n\t{\n\t\tthis.parent = parent;\n\t};\n\n\tBX.Grid.BaseClass.prototype = {\n\t\tgetParent()\n\t\t{\n\t\t\treturn this.parent;\n\t\t},\n\t};\n})();\n","import { Reflection } from 'main.core';\n\n/**\n * @memberOf BX.Grid\n */\nexport class CellActionState\n{\n\tstatic SHOW_BY_HOVER = 'main-grid-cell-content-action-by-hover';\n\tstatic ACTIVE = 'main-grid-cell-content-action-active';\n}\n\nconst namespace = Reflection.namespace('BX.Grid');\nnamespace.CellActionState = CellActionState;\n","import { Reflection } from 'main.core';\n\n/**\n * @memberOf BX.Grid\n */\nexport class CellActions\n{\n\tstatic PIN = 'main-grid-cell-content-action-pin';\n\tstatic MUTE = 'main-grid-cell-content-action-mute';\n}\n\nconst namespace = Reflection.namespace('BX.Grid');\nnamespace.CellActions = CellActions;\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.ColsSortable\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.ColsSortable = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.dragItem = null;\n\t\tthis.targetItem = null;\n\t\tthis.rowsList = null;\n\t\tthis.colsList = null;\n\t\tthis.dragRect = null;\n\t\tthis.offset = null;\n\t\tthis.startDragOffset = null;\n\t\tthis.dragColumn = null;\n\t\tthis.targetColumn = null;\n\t\tthis.isDrag = null;\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.ColsSortable.prototype = {\n\t\tinit(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tthis.colsList = this.getColsList();\n\t\t\tthis.rowsList = this.getRowsList();\n\n\t\t\tif (!this.inited)\n\t\t\t{\n\t\t\t\tthis.inited = true;\n\t\t\t\tBX.addCustomEvent('Grid::updated', BX.proxy(this.reinit, this));\n\t\t\t\tBX.addCustomEvent('Grid::headerUpdated', BX.proxy(this.reinit, this));\n\t\t\t}\n\n\t\t\tthis.registerObjects();\n\t\t},\n\n\t\tdestroy()\n\t\t{\n\t\t\tBX.removeCustomEvent('Grid::updated', BX.proxy(this.reinit, this));\n\t\t\tthis.unregisterObjects();\n\t\t},\n\n\t\treinit()\n\t\t{\n\t\t\tthis.unregisterObjects();\n\t\t\tthis.reset();\n\t\t\tthis.init(this.parent);\n\t\t},\n\n\t\treset()\n\t\t{\n\t\t\tthis.dragItem = null;\n\t\t\tthis.targetItem = null;\n\t\t\tthis.rowsList = null;\n\t\t\tthis.colsList = null;\n\t\t\tthis.dragRect = null;\n\t\t\tthis.offset = null;\n\t\t\tthis.startDragOffset = null;\n\t\t\tthis.dragColumn = null;\n\t\t\tthis.targetColumn = null;\n\t\t\tthis.isDrag = null;\n\t\t\tthis.fixedTableColsList = null;\n\t\t},\n\n\t\tisActive()\n\t\t{\n\t\t\treturn this.isDrag;\n\t\t},\n\n\t\tregisterObjects()\n\t\t{\n\t\t\tthis.unregisterObjects();\n\t\t\tthis.getColsList().forEach(this.register, this);\n\t\t\tthis.getFixedHeaderColsList().forEach(this.register, this);\n\t\t},\n\n\t\tunregisterObjects()\n\t\t{\n\t\t\tthis.getColsList().forEach(this.unregister, this);\n\t\t\tthis.getFixedHeaderColsList().forEach(this.unregister, this);\n\t\t},\n\n\t\tunregister(column)\n\t\t{\n\t\t\tjsDD.unregisterObject(column);\n\t\t},\n\n\t\tregister(column)\n\t\t{\n\t\t\tcolumn.onbxdragstart = BX.proxy(this._onDragStart, this);\n\t\t\tcolumn.onbxdrag = BX.proxy(this._onDrag, this);\n\t\t\tcolumn.onbxdragstop = BX.proxy(this._onDragEnd, this);\n\t\t\tjsDD.registerObject(column);\n\t\t},\n\n\t\tgetColsList()\n\t\t{\n\t\t\tif (!this.colsList)\n\t\t\t{\n\t\t\t\tthis.colsList = BX.Grid.Utils.getByTag(this.parent.getRows().getHeadFirstChild().getNode(), 'th');\n\t\t\t\tthis.colsList = this.colsList.filter(function(current) {\n\t\t\t\t\treturn !this.isStatic(current);\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\treturn this.colsList;\n\t\t},\n\n\t\tgetFixedHeaderColsList()\n\t\t{\n\t\t\tif (!this.fixedTableColsList && this.parent.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\tthis.fixedTableColsList = BX.Grid.Utils.getByTag(this.parent.getPinHeader().getFixedTable(), 'th');\n\t\t\t\tthis.fixedTableColsList = this.fixedTableColsList.filter(function(current) {\n\t\t\t\t\treturn !this.isStatic(current);\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\treturn this.fixedTableColsList || [];\n\t\t},\n\n\t\tgetRowsList()\n\t\t{\n\t\t\tlet rowsList = this.parent.getRows().getSourceRows();\n\n\t\t\tif (this.parent.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\trowsList = rowsList.concat(BX.Grid.Utils.getByTag(this.parent.getPinHeader().getFixedTable(), 'tr'));\n\t\t\t}\n\n\t\t\treturn rowsList;\n\t\t},\n\n\t\tisStatic(item)\n\t\t{\n\t\t\treturn (\n\t\t\t\tBX.hasClass(item, this.parent.settings.get('classCellStatic'))\n\t\t\t\t&& !BX.hasClass(item, 'main-grid-fixed-column')\n\t\t\t);\n\t\t},\n\n\t\tgetDragOffset()\n\t\t{\n\t\t\tconst offset = this.parent.getScrollContainer().scrollLeft - this.startScrollOffset;\n\n\t\t\treturn ((jsDD.x - this.startDragOffset - this.dragRect.left) + offset);\n\t\t},\n\n\t\tgetColumn(cell)\n\t\t{\n\t\t\tlet column = [];\n\n\t\t\tif (cell instanceof HTMLTableCellElement)\n\t\t\t{\n\t\t\t\tcolumn = this.rowsList.map((row) => {\n\t\t\t\t\treturn row.cells[cell.cellIndex];\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn column;\n\t\t},\n\n\t\t_onDragStart()\n\t\t{\n\t\t\tif (this.parent.getParam('ALLOW_PIN_HEADER') && this.parent.getPinHeader().isPinned())\n\t\t\t{\n\t\t\t\tthis.colsList = this.getFixedHeaderColsList();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.colsList = this.getColsList();\n\t\t\t}\n\n\t\t\tthis.startScrollOffset = this.parent.getScrollContainer().scrollLeft;\n\t\t\tthis.isDrag = true;\n\t\t\tthis.dragItem = jsDD.current_node;\n\t\t\tthis.dragRect = this.dragItem.getBoundingClientRect();\n\t\t\tthis.offset = Math.ceil(this.dragRect.width);\n\t\t\tthis.startDragOffset = jsDD.start_x - this.dragRect.left;\n\t\t\tthis.dragColumn = this.getColumn(this.dragItem);\n\t\t\tthis.dragIndex = BX.Grid.Utils.getIndex(this.colsList, this.dragItem);\n\t\t\tthis.parent.preventSortableClick = true;\n\t\t},\n\n\t\tisDragToRight(node, index)\n\t\t{\n\t\t\tconst nodeClientRect = node.getBoundingClientRect();\n\t\t\tconst nodeCenter = Math.ceil(nodeClientRect.left + (nodeClientRect.width / 2) + BX.scrollLeft(window));\n\t\t\tconst dragIndex = this.dragIndex;\n\t\t\tconst x = jsDD.x;\n\n\t\t\treturn index > dragIndex && x > nodeCenter;\n\t\t},\n\n\t\tisDragToLeft(node, index)\n\t\t{\n\t\t\tconst nodeClientRect = node.getBoundingClientRect();\n\t\t\tconst nodeCenter = Math.ceil(nodeClientRect.left + (nodeClientRect.width / 2) + BX.scrollLeft(window));\n\t\t\tconst dragIndex = this.dragIndex;\n\t\t\tconst x = jsDD.x;\n\n\t\t\treturn index < dragIndex && x < nodeCenter;\n\t\t},\n\n\t\tisDragToBack(node, index)\n\t\t{\n\t\t\tconst nodeClientRect = node.getBoundingClientRect();\n\t\t\tconst nodeCenter = Math.ceil(nodeClientRect.left + (nodeClientRect.width / 2) + BX.scrollLeft(window));\n\t\t\tconst dragIndex = this.dragIndex;\n\t\t\tconst x = jsDD.x;\n\n\t\t\treturn (index > dragIndex && x < nodeCenter) || (index < dragIndex && x > nodeCenter);\n\t\t},\n\n\t\tisMovedToRight(node)\n\t\t{\n\t\t\treturn node.style.transform === `translate3d(${-this.offset}px, 0px, 0px)`;\n\t\t},\n\n\t\tisMovedToLeft(node)\n\t\t{\n\t\t\treturn node.style.transform === `translate3d(${this.offset}px, 0px, 0px)`;\n\t\t},\n\n\t\tisMoved(node)\n\t\t{\n\t\t\treturn (node.style.transform !== 'translate3d(0px, 0px, 0px)' && node.style.transform !== '');\n\t\t},\n\n\t\t/**\n\t\t * Moves grid column by offset\n\t\t * @param {array} column - Array cells of column\n\t\t * @param {int} offset - Pixels offset\n\t\t * @param {int} [transition = 300] - Transition duration in milliseconds\n\t\t */\n\t\tmoveColumn(column, offset, transition)\n\t\t{\n\t\t\ttransition = BX.type.isNumber(transition) ? transition : 300;\n\t\t\tBX.Grid.Utils.styleForEach(column, {\n\t\t\t\ttransition: `${transition}ms`,\n\t\t\t\ttransform: `translate3d(${offset}px, 0px, 0px)`,\n\t\t\t});\n\t\t},\n\n\t\t_onDrag()\n\t\t{\n\t\t\tthis.dragOffset = this.getDragOffset();\n\t\t\tthis.targetItem = this.targetItem || this.dragItem;\n\t\t\tthis.targetColumn = this.targetColumn || this.dragColumn;\n\n\t\t\tconst leftOffset = -this.offset;\n\t\t\tconst rightOffset = this.offset;\n\t\t\tconst defaultOffset = 0;\n\t\t\tconst dragTransitionDuration = 0;\n\n\t\t\tthis.moveColumn(this.dragColumn, this.dragOffset, dragTransitionDuration);\n\n\t\t\t[].forEach.call(this.colsList, function(current, index) {\n\t\t\t\tif (current && !current.classList.contains('main-grid-cell-static'))\n\t\t\t\t{\n\t\t\t\t\tif (this.isDragToRight(current, index) && !this.isMovedToRight(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.targetColumn = this.getColumn(current);\n\t\t\t\t\t\tthis.moveColumn(this.targetColumn, leftOffset);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.isDragToLeft(current, index) && !this.isMovedToLeft(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.targetColumn = this.getColumn(current);\n\t\t\t\t\t\tthis.moveColumn(this.targetColumn, rightOffset);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.isDragToBack(current, index) && this.isMoved(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.targetColumn = this.getColumn(current);\n\t\t\t\t\t\tthis.moveColumn(this.targetColumn, defaultOffset);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, this);\n\t\t},\n\n\t\t_onDragEnd()\n\t\t{\n\t\t\t[].forEach.call(this.dragColumn, function(current, index) {\n\t\t\t\tBX.Grid.Utils.collectionSort(current, this.targetColumn[index]);\n\t\t\t}, this);\n\n\t\t\tthis.rowsList.forEach((current) => {\n\t\t\t\tBX.Grid.Utils.styleForEach(current.cells, {\n\t\t\t\t\ttransition: '',\n\t\t\t\t\ttransform: '',\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tthis.reinit();\n\n\t\t\tconst columns = this.colsList.map((current) => {\n\t\t\t\treturn BX.data(current, 'name');\n\t\t\t});\n\n\t\t\tthis.parent.getUserOptions().setColumns(columns);\n\t\t\tBX.onCustomEvent(this.parent.getContainer(), 'Grid::columnMoved', [this.parent]);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.parent.preventSortableClick = false;\n\t\t\t}, 10);\n\t\t},\n\t};\n})();\n","import 'ui.cnt';\nimport { Reflection } from 'main.core';\n\n/**\n * @memberOf BX.Grid\n */\nexport class Counters\n{\n\tstatic Type = {\n\t\tLEFT: 'left',\n\t\tLEFT_ALIGNED: 'left-aligned',\n\t\tRIGHT: 'right',\n\t};\n\n\tstatic Color = {\n\t\tDANGER: 'ui-counter-danger',\n\t\tSUCCESS: 'ui-counter-success',\n\t\tPRIMARY: 'ui-counter-primary',\n\t\tGRAY: 'ui-counter-gray',\n\t\tLIGHT: 'ui-counter-light',\n\t\tDARK: 'ui-counter-dark',\n\t\tWARNING: 'ui-counter-warning',\n\t};\n\n\tstatic Size = {\n\t\tLARGE: 'ui-counter-lg',\n\t\tMEDIUM: 'ui-counter-md',\n\t};\n}\n\nconst namespace = Reflection.namespace('BX.Grid');\nnamespace.Counters = Counters;\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\tconst originalUpdatePageData = window.parent.BX.ajax.UpdatePageData;\n\n\tfunction disableBxAjaxUpdatePageData()\n\t{\n\t\twindow.parent.BX.ajax.UpdatePageData = function() {};\n\t}\n\n\tfunction enableBxAjaxUpdatePageData()\n\t{\n\t\twindow.parent.BX.ajax.UpdatePageData = originalUpdatePageData;\n\t}\n\n\t/**\n\t * Works with requests and server response\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.Data = function(parent)\n\t{\n\t\tthis.parent = parent;\n\t\tthis.reset();\n\t};\n\n\t/**\n\t * Reset to default values\n\t * @private\n\t */\n\tBX.Grid.Data.prototype.reset = function()\n\t{\n\t\tthis.response = null;\n\t\tthis.xhr = null;\n\t\tthis.headRows = null;\n\t\tthis.bodyRows = null;\n\t\tthis.footRows = null;\n\t\tthis.moreButton = null;\n\t\tthis.pagination = null;\n\t\tthis.counterDisplayed = null;\n\t\tthis.counterSelected = null;\n\t\tthis.counterTotal = null;\n\t\tthis.limit = null;\n\t\tthis.actionPanel = null;\n\t\tthis.rowsByParentId = {};\n\t\tthis.rowById = {};\n\t\tthis.isValidResponse = null;\n\t};\n\n\t/**\n\t * Gets filter\n\t * @return {BX.Main.Filter}\n\t */\n\tBX.Grid.Data.prototype.getParent = function()\n\t{\n\t\treturn this.parent;\n\t};\n\n\t/**\n\t * Validates server response\n\t * @return {boolean}\n\t */\n\tBX.Grid.Data.prototype.validateResponse = function()\n\t{\n\t\tif (!BX.type.isBoolean(this.isValidResponse))\n\t\t{\n\t\t\tthis.isValidResponse = Boolean(this.getResponse()) && Boolean(BX.Grid.Utils.getByClass(this.getResponse(), this.getParent().settings.get('classContainer'), true));\n\t\t}\n\n\t\treturn this.isValidResponse;\n\t};\n\n\t/**\n\t * Send request\n\t * @param {string} [url]\n\t * @param {string} [method]\n\t * @param {object} [data]\n\t * @param {string} [action]\n\t * @param {function} [then]\n\t * @param {function} [error]\n\t */\n\tBX.Grid.Data.prototype.request = function(url, method, data, action, then, error)\n\t{\n\t\tif (!BX.type.isString(url))\n\t\t{\n\t\t\turl = '';\n\t\t}\n\n\t\tif (!BX.type.isNotEmptyString(method))\n\t\t{\n\t\t\tmethod = 'GET';\n\t\t}\n\n\t\tif (!BX.type.isPlainObject(data))\n\t\t{\n\t\t\tdata = {};\n\t\t}\n\n\t\tconst eventArgs =\t\t\t{\n\t\t\tgridId: this.parent.getId(),\n\t\t\turl,\n\t\t\tmethod,\n\t\t\tdata,\n\t\t};\n\n\t\tthis.parent.disableCheckAllCheckboxes();\n\t\tBX.onCustomEvent(\n\t\t\twindow,\n\t\t\t'Grid::beforeRequest',\n\t\t\t[this, eventArgs],\n\t\t);\n\n\t\tif (eventArgs.hasOwnProperty('cancelRequest') && eventArgs.cancelRequest === true)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\turl = eventArgs.url;\n\n\t\tif (!BX.type.isNotEmptyString(url))\n\t\t{\n\t\t\turl = this.parent.baseUrl;\n\t\t}\n\n\t\turl = BX.Grid.Utils.addUrlParams(url, { sessid: BX.bitrix_sessid(), internal: 'true', grid_id: this.parent.getId() });\n\n\t\tif ('apply_filter' in data && data.apply_filter === 'Y')\n\t\t{\n\t\t\turl = BX.Grid.Utils.addUrlParams(url, { apply_filter: 'Y' });\n\t\t}\n\t\telse\n\t\t{\n\t\t\turl = BX.util.remove_url_param(url, 'apply_filter');\n\t\t}\n\n\t\tif ('clear_nav' in data && data.clear_nav === 'Y')\n\t\t{\n\t\t\turl = BX.Grid.Utils.addUrlParams(url, { clear_nav: 'Y' });\n\t\t}\n\t\telse\n\t\t{\n\t\t\turl = BX.util.remove_url_param(url, 'clear_nav');\n\t\t}\n\n\t\turl = BX.Grid.Utils.addUrlParams(url, { grid_action: action || 'showpage' });\n\n\t\tmethod = eventArgs.method;\n\t\tdata = eventArgs.data;\n\n\t\tthis.reset();\n\n\t\tconst self = this;\n\n\t\tsetTimeout(() => {\n\t\t\tconst formData = BX.Http.Data.convertObjectToFormData(data);\n\n\t\t\tdisableBxAjaxUpdatePageData();\n\n\t\t\tvar xhr = BX.ajax({\n\t\t\t\turl: BX.Grid.Utils.ajaxUrl(url, self.getParent().getAjaxId()),\n\t\t\t\tdata: formData,\n\t\t\t\tmethod,\n\t\t\t\tdataType: 'html',\n\t\t\t\theaders: [\n\t\t\t\t\t{ name: 'X-Ajax-Grid-UID', value: self.getParent().getAjaxId() },\n\t\t\t\t\t{ name: 'X-Ajax-Grid-Req', value: JSON.stringify({ action: action || 'showpage' }) },\n\t\t\t\t],\n\t\t\t\tprocessData: true,\n\t\t\t\tscriptsRunFirst: false,\n\t\t\t\tstart: false,\n\t\t\t\tpreparePost: false,\n\t\t\t\tonsuccess(response) {\n\t\t\t\t\tself.response = BX.create('div', { html: response });\n\t\t\t\t\tself.response = self.response.querySelector(`#${self.parent.getContainerId()}`);\n\t\t\t\t\tself.xhr = xhr;\n\n\t\t\t\t\tif (self.parent.getParam('HANDLE_RESPONSE_ERRORS'))\n\t\t\t\t\t{\n\t\t\t\t\t\tlet res;\n\n\t\t\t\t\t\ttry\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tres = JSON.parse(response);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tres = { messages: [] };\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (res.messages.length > 0)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.parent.arParams.MESSAGES = res.messages;\n\t\t\t\t\t\t\tself.parent.messages.show();\n\n\t\t\t\t\t\t\tself.parent.tableUnfade();\n\n\t\t\t\t\t\t\tif (BX.type.isFunction(error))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.delegate(error, self)(xhr);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (BX.type.isFunction(then))\n\t\t\t\t\t{\n\t\t\t\t\t\tself.parent.enableCheckAllCheckboxes();\n\t\t\t\t\t\tBX.delegate(then, self)(response, xhr);\n\t\t\t\t\t}\n\n\t\t\t\t\tenableBxAjaxUpdatePageData();\n\t\t\t\t},\n\t\t\t\tonerror(err) {\n\t\t\t\t\tself.error = error;\n\t\t\t\t\tself.xhr = xhr;\n\n\t\t\t\t\tif (BX.type.isFunction(error))\n\t\t\t\t\t{\n\t\t\t\t\t\tself.parent.enableCheckAllCheckboxes();\n\t\t\t\t\t\tBX.delegate(error, self)(xhr, err);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\n\t\t\txhr.send(formData);\n\t\t}, 0);\n\t};\n\n\t/**\n\t * Gets server response\n\t * @return {?Element}\n\t */\n\tBX.Grid.Data.prototype.getResponse = function()\n\t{\n\t\treturn this.response;\n\t};\n\n\t/**\n\t * Returns a grid container\n\t * @return {?Element}\n\t */\n\tBX.Grid.Data.prototype.getContainer = function()\n\t{\n\t\tconst className = this.getParent().settings.get('classContainer');\n\t\tif (BX.Dom.hasClass(this.getResponse(), className))\n\t\t{\n\t\t\treturn this.getResponse();\n\t\t}\n\n\t\treturn BX.Grid.Utils.getByClass(this.getResponse(), className, true);\n\t};\n\n\t/**\n\t * Gets head rows of grid from server response\n\t * @return {?HTMLTableRowElement[]}\n\t */\n\tBX.Grid.Data.prototype.getHeadRows = function()\n\t{\n\t\tif (!this.headRows)\n\t\t{\n\t\t\tthis.headRows = BX.Grid.Utils.getByClass(this.getResponse(), this.getParent().settings.get('classHeadRow'));\n\t\t}\n\n\t\treturn this.headRows;\n\t};\n\n\t/**\n\t * Gets body rows of grid form server request\n\t * @return {?HTMLTableRowElement[]}\n\t */\n\tBX.Grid.Data.prototype.getBodyRows = function()\n\t{\n\t\tif (!this.bodyRows)\n\t\t{\n\t\t\tthis.bodyRows = BX.Grid.Utils.getByClass(this.getResponse(), this.getParent().settings.get('classBodyRow'));\n\t\t}\n\n\t\treturn this.bodyRows;\n\t};\n\n\t/**\n\t * Gets rows by parent id\n\t * @param {string|number} id\n\t * @return {?HTMLTableRowElement[]}\n\t */\n\tBX.Grid.Data.prototype.getRowsByParentId = function(id)\n\t{\n\t\tif (!(id in this.rowsByParentId))\n\t\t{\n\t\t\tthis.rowsByParentId[id] = BX.Grid.Utils.getBySelector(\n\t\t\t\tthis.getResponse(),\n\t\t\t\t`.${this.getParent().settings.get('classBodyRow')}[data-parent-id=\"${id}\"]`,\n\t\t\t);\n\t\t}\n\n\t\treturn this.rowsByParentId[id];\n\t};\n\n\t/**\n\t * Gets row by row id\n\t * @param {string|number} id\n\t * @return {?HTMLTableRowElement}\n\t */\n\tBX.Grid.Data.prototype.getRowById = function(id)\n\t{\n\t\tif (!(id in this.rowById))\n\t\t{\n\t\t\tthis.rowById[id] = BX.Grid.Utils.getBySelector(\n\t\t\t\tthis.getResponse(),\n\t\t\t\t`.${this.getParent().settings.get('classBodyRow')}[data-id=\"${id}\"]`,\n\t\t\t\ttrue,\n\t\t\t);\n\t\t}\n\n\t\treturn this.rowById[id];\n\t};\n\n\t/**\n\t * Gets tfoot rows of grid from request\n\t * @return {?HTMLTableRowElement[]}\n\t */\n\tBX.Grid.Data.prototype.getFootRows = function()\n\t{\n\t\tif (!this.footRows)\n\t\t{\n\t\t\tthis.footRows = BX.Grid.Utils.getByClass(this.getResponse(), this.getParent().settings.get('classFootRow'));\n\t\t}\n\n\t\treturn this.footRows;\n\t};\n\n\t/**\n\t * Gets more button from request\n\t * @return {?HTMLElement}\n\t */\n\tBX.Grid.Data.prototype.getMoreButton = function()\n\t{\n\t\tif (!this.moreButton)\n\t\t{\n\t\t\tthis.moreButton = BX.Grid.Utils.getByClass(\n\t\t\t\tthis.getResponse(),\n\t\t\t\tthis.getParent().settings.get('classMoreButton'),\n\t\t\t\ttrue,\n\t\t\t);\n\t\t}\n\n\t\treturn this.moreButton;\n\t};\n\n\t/**\n\t * Gets pagination of grid from request\n\t * @return {?HTMLElement}\n\t */\n\tBX.Grid.Data.prototype.getPagination = function()\n\t{\n\t\tif (!this.pagination)\n\t\t{\n\t\t\tthis.pagination = BX.Grid.Utils.getByClass(\n\t\t\t\tthis.getResponse(),\n\t\t\t\tthis.getParent().settings.get('classPagination'),\n\t\t\t\ttrue,\n\t\t\t);\n\n\t\t\tif (BX.type.isDomNode(this.pagination))\n\t\t\t{\n\t\t\t\tthis.pagination = BX.firstChild(this.pagination);\n\t\t\t}\n\t\t}\n\n\t\treturn this.pagination;\n\t};\n\n\t/**\n\t * Gets counter of displayed rows\n\t * @return {?HTMLElement}\n\t */\n\tBX.Grid.Data.prototype.getCounterDisplayed = function()\n\t{\n\t\tif (!this.counterDisplayed)\n\t\t{\n\t\t\tthis.counterDisplayed = BX.Grid.Utils.getByClass(\n\t\t\t\tthis.getResponse(),\n\t\t\t\tthis.getParent().settings.get('classCounterDisplayed'),\n\t\t\t\ttrue,\n\t\t\t);\n\t\t}\n\n\t\treturn this.counterDisplayed;\n\t};\n\n\t/**\n\t * Gets counter of selected rows\n\t * @return {?HTMLElement}\n\t */\n\tBX.Grid.Data.prototype.getCounterSelected = function()\n\t{\n\t\tif (!this.counterSelected)\n\t\t{\n\t\t\tthis.counterSelected = BX.Grid.Utils.getByClass(\n\t\t\t\tthis.getResponse(),\n\t\t\t\tthis.getParent().settings.get('classCounterSelected'),\n\t\t\t\ttrue,\n\t\t\t);\n\t\t}\n\n\t\treturn this.counterSelected;\n\t};\n\n\t/**\n\t * Gets counter of total rows count\n\t * @return {?HTMLElement}\n\t */\n\tBX.Grid.Data.prototype.getCounterTotal = function()\n\t{\n\t\tif (!BX.type.isDomNode(this.counterTotal))\n\t\t{\n\t\t\tconst selector = `.${this.getParent().settings.get('classCounterTotal')} .${this.getParent().settings.get('classPanelCellContent')}`;\n\t\t\tthis.counterTotal = BX.Grid.Utils.getBySelector(this.getResponse(), selector, true);\n\t\t}\n\n\t\treturn this.counterTotal;\n\t};\n\n\t/**\n\t * Gets dropdown of pagesize\n\t * @return {?HTMLElement}\n\t */\n\tBX.Grid.Data.prototype.getLimit = function()\n\t{\n\t\tif (!this.limit)\n\t\t{\n\t\t\tthis.limit = BX.Grid.Utils.getByClass(this.getResponse(), this.getParent().settings.get('classPageSize'), true);\n\t\t}\n\n\t\treturn this.limit;\n\t};\n\n\t/**\n\t * Gets dropdown of pagesize\n\t * @alias BX.Grid.Data.prototype.getLimit\n\t * @return {?HTMLElement}\n\t */\n\tBX.Grid.Data.prototype.getPageSize = function()\n\t{\n\t\treturn this.getLimit();\n\t};\n\n\t/**\n\t * Gets action panel of grid\n\t * @return {?HTMLElement}\n\t */\n\tBX.Grid.Data.prototype.getActionPanel = function()\n\t{\n\t\tif (!this.actionPanel)\n\t\t{\n\t\t\tthis.actionPanel = BX.Grid.Utils.getByClass(\n\t\t\t\tthis.getResponse(),\n\t\t\t\tthis.getParent().settings.get('classActionPanel'),\n\t\t\t\ttrue,\n\t\t\t);\n\t\t}\n\n\t\treturn this.actionPanel;\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main');\n\n\t/**\n\t * BX.Main.dropdown\n\t * @param dropdown\n\t */\n\tBX.Main.dropdown = function(dropdown)\n\t{\n\t\tthis.id = null;\n\t\tthis.dropdown = null;\n\t\tthis.items = null;\n\t\tthis.value = null;\n\t\tthis.menuId = null;\n\t\tthis.menu = null;\n\t\tthis.menuItems = null;\n\t\tthis.multiple = null;\n\t\tthis.emptyText = null;\n\t\tthis.dataItems = 'items';\n\t\tthis.dataValue = 'value';\n\t\tthis.dataPseudo = 'pseudo';\n\t\tthis.dropdownItemClass = 'main-dropdown-item';\n\t\tthis.activeClass = 'main-dropdown-active';\n\t\tthis.selectedClass = 'main-dropdown-item-selected';\n\t\tthis.notSelectedClass = 'main-dropdown-item-not-selected';\n\t\tthis.lockedClass = 'main-dropdown-item-locked';\n\t\tthis.menuItemClass = 'menu-popup-item';\n\t\tthis.init(dropdown);\n\t};\n\n\tBX.Main.dropdown.prototype = {\n\t\tinit(dropdown)\n\t\t{\n\t\t\tthis.id = dropdown.id;\n\t\t\tthis.dropdown = dropdown;\n\t\t\tthis.items = this.getItems();\n\t\t\tthis.value = this.getValue();\n\t\t\tthis.menuId = this.getMenuId();\n\t\t\tthis.multiple = this.getMultiple();\n\t\t\tthis.emptyText = this.getEmptyText();\n\t\t\tthis.menu = this.createMenu();\n\t\t\tthis.menu.popupWindow.show();\n\t\t\tthis.adjustPosition();\n\n\t\t\tBX.bind(this.dropdown, 'click', BX.delegate(this.showMenu, this));\n\t\t},\n\n\t\tgetMenuId()\n\t\t{\n\t\t\treturn `${this.id}_menu`;\n\t\t},\n\n\t\tgetItems()\n\t\t{\n\t\t\tlet result;\n\n\t\t\ttry\n\t\t\t{\n\t\t\t\tconst str = this.dropdown.dataset[this.dataItems];\n\t\t\t\tresult = JSON.parse(str);\n\t\t\t\tresult = result.map((item) => {\n\t\t\t\t\titem.VALUE = String(item.VALUE);\n\n\t\t\t\t\treturn item;\n\t\t\t\t});\n\t\t\t}\n\t\t\tcatch\n\t\t\t{\n\t\t\t\tresult = [];\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\t// single\n\t\tgetValue()\n\t\t{\n\t\t\treturn this.dropdown.dataset[this.dataValue];\n\t\t},\n\n\t\tgetValueItem()\n\t\t{\n\t\t\tconst value = this.getValue();\n\n\t\t\treturn this.items.find((item) => item.VALUE === value);\n\t\t},\n\n\t\t// multiple\n\t\tgetValueAsArray()\n\t\t{\n\t\t\tlet value = this.getValue();\n\t\t\tif (value === undefined)\n\t\t\t{\n\t\t\t\tvalue = '';\n\t\t\t}\n\n\t\t\treturn value.toString().split(',').filter((i) => i !== '');\n\t\t},\n\n\t\tgetValueItems()\n\t\t{\n\t\t\tconst values = this.getValueAsArray();\n\n\t\t\treturn this.items.filter((item) => values.includes(item.VALUE));\n\t\t},\n\n\t\ttoggleValue(value)\n\t\t{\n\t\t\tif (this.multiple)\n\t\t\t{\n\t\t\t\tif (value || value === 0 || value === '0')\n\t\t\t\t{\n\t\t\t\t\tconst values = this.getValueAsArray();\n\t\t\t\t\tconst index = values.indexOf(value);\n\n\t\t\t\t\tif (index < 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tvalues.push(value);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tvalues.splice(index, 1);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.dropdown.dataset[this.dataValue] = values.join(',');\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.dropdown.dataset[this.dataValue] = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.dropdown.dataset[this.dataValue] = value;\n\t\t\t}\n\t\t},\n\n\t\tgetValueText()\n\t\t{\n\t\t\tif (this.multiple)\n\t\t\t{\n\t\t\t\treturn this.getValueItems().map((item) => item.NAME).filter((i) => Boolean(i)).join(', ') || this.emptyText;\n\t\t\t}\n\n\t\t\tconst item = this.getValueItem();\n\n\t\t\treturn item ? item.NAME : this.emptyText;\n\t\t},\n\n\t\tgetMultiple()\n\t\t{\n\t\t\treturn this.dropdown.dataset.multiple === 'Y';\n\t\t},\n\n\t\tgetEmptyText()\n\t\t{\n\t\t\treturn this.dropdown.dataset.emptyText || null;\n\t\t},\n\n\t\tprepareMenuItems()\n\t\t{\n\t\t\tconst self = this;\n\t\t\tlet attrs; let\n\t\t\t\tsubItem;\n\t\t\tconst currentValue = this.multiple ? this.getValueAsArray() : this.getValue();\n\n\t\t\tfunction prepareItems(items)\n\t\t\t{\n\t\t\t\tconst isHtmlEntity = self.dropdown.dataset.htmlEntity === 'true';\n\n\t\t\t\treturn items.map((item) => {\n\t\t\t\t\tattrs = {};\n\t\t\t\t\tattrs[`data-${self.dataValue}`] = item.VALUE;\n\t\t\t\t\tattrs[`data-${self.dataPseudo}`] = 'PSEUDO' in item && item.PSEUDO ? 'true' : 'false';\n\n\t\t\t\t\tsubItem = BX.create('div', {\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\tBX.create('span', {\n\t\t\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\t\t\tclassName: self.dropdownItemClass,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tattrs,\n\t\t\t\t\t\t\t\thtml: isHtmlEntity ? item.NAME : null,\n\t\t\t\t\t\t\t\ttext: isHtmlEntity ? null : item.NAME,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t],\n\t\t\t\t\t});\n\n\t\t\t\t\tconst selected =\t\t\t\t\t\tself.multiple\n\t\t\t\t\t\t? currentValue.includes(item.VALUE)\n\t\t\t\t\t\t: currentValue === item.VALUE\n\t\t\t\t\t;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\thtml: subItem.innerHTML,\n\t\t\t\t\t\tclassName: selected ? self.selectedClass : self.notSelectedClass,\n\t\t\t\t\t\tdelimiter: item.DELIMITER,\n\t\t\t\t\t\titems: 'ITEMS' in item ? prepareItems(item.ITEMS) : null,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst items = prepareItems(this.items);\n\t\t\tBX.onCustomEvent(window, 'Dropdown::onPrepareItems', [this.id, this.menuId, items]);\n\n\t\t\treturn items;\n\t\t},\n\n\t\tcreateMenu()\n\t\t{\n\t\t\tconst self = this;\n\n\t\t\treturn BX.PopupMenu.create(\n\t\t\t\tthis.getMenuId(),\n\t\t\t\tthis.dropdown,\n\t\t\t\tthis.prepareMenuItems(),\n\t\t\t\t{\n\t\t\t\t\tautoHide: true,\n\t\t\t\t\toffsetTop: -8,\n\t\t\t\t\toffsetLeft: Number(this.dropdown.dataset.menuOffsetLeft || 40),\n\t\t\t\t\tmaxHeight: Number(this.dropdown.dataset.menuMaxHeight || 170),\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tonPopupClose: BX.delegate(this._onCloseMenu, this),\n\t\t\t\t\t\tonPopupShow() {\n\t\t\t\t\t\t\tself._onShowMenu();\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t},\n\n\t\tshowMenu()\n\t\t{\n\t\t\tthis.menu = BX.PopupMenu.getMenuById(this.menuId);\n\n\t\t\tif (!this.menu)\n\t\t\t{\n\t\t\t\tthis.menu = this.createMenu();\n\t\t\t\tthis.menu.popupWindow.show();\n\t\t\t}\n\n\t\t\tthis.adjustPosition();\n\t\t},\n\n\t\tadjustPosition()\n\t\t{\n\t\t\tif (this.dropdown.dataset.popupPosition === 'fixed')\n\t\t\t{\n\t\t\t\tconst container = this.menu.popupWindow.popupContainer;\n\n\t\t\t\tcontainer.style.setProperty('top', 'auto');\n\t\t\t\tcontainer.style.setProperty('bottom', '45px');\n\t\t\t\tcontainer.style.setProperty('left', '0px');\n\n\t\t\t\tthis.dropdown.appendChild(container);\n\t\t\t}\n\t\t},\n\n\t\tgetSubItem(node)\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(node, this.dropdownItemClass, true);\n\t\t},\n\n\t\trefresh(item)\n\t\t{\n\t\t\tconst subItem = this.getSubItem(item);\n\t\t\tlet value = BX.data(subItem, this.dataValue);\n\t\t\tif (BX.Type.isUndefined(value))\n\t\t\t{\n\t\t\t\tvalue = '';\n\t\t\t}\n\n\t\t\tthis.toggleValue(value);\n\t\t\tif (this.dropdown.dataset.htmlEntity === 'true')\n\t\t\t{\n\t\t\t\tBX.firstChild(this.dropdown).innerHTML = this.getValueText();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.firstChild(this.dropdown).innerText = this.getValueText();\n\t\t\t}\n\t\t},\n\n\t\tselectItem(node)\n\t\t{\n\t\t\tconst self = this;\n\n\t\t\t(this.menu.menuItems || []).forEach((current) => {\n\t\t\t\t// multiple\n\t\t\t\tif (self.multiple)\n\t\t\t\t{\n\t\t\t\t\tif (node === current.layout.item)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (BX.hasClass(node, self.selectedClass))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.addClass(current.layout.item, self.notSelectedClass);\n\t\t\t\t\t\t\tBX.removeClass(current.layout.item, self.selectedClass);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.removeClass(current.layout.item, self.notSelectedClass);\n\t\t\t\t\t\t\tBX.addClass(current.layout.item, self.selectedClass);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// single\n\t\t\t\tBX.removeClass(current.layout.item, self.selectedClass);\n\n\t\t\t\tif (node === current.layout.item)\n\t\t\t\t{\n\t\t\t\t\tBX.removeClass(current.layout.item, self.notSelectedClass);\n\t\t\t\t\tBX.addClass(current.layout.item, self.selectedClass);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tBX.addClass(current.layout.item, self.notSelectedClass);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tlockedItem(node) {\n\t\t\tBX.addClass(node, this.lockedClass);\n\t\t},\n\n\t\tgetDataItemIndexByValue(items, value)\n\t\t{\n\t\t\tlet result;\n\n\t\t\tif (BX.type.isArray(items))\n\t\t\t{\n\t\t\t\titems.map((current, index) => {\n\t\t\t\t\tif (current.VALUE === value)\n\t\t\t\t\t{\n\t\t\t\t\t\tresult = index;\n\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\tgetDataItemByValue(value)\n\t\t{\n\t\t\tconst result = this.items.filter((current) => {\n\t\t\t\treturn current.VALUE === value;\n\t\t\t});\n\n\t\t\treturn result.length > 0 ? result[0] : null;\n\t\t},\n\n\t\t_onShowMenu()\n\t\t{\n\t\t\tconst self = this;\n\n\t\t\tBX.addClass(this.dropdown, this.activeClass);\n\t\t\t(this.menu.menuItems || []).forEach((current) => {\n\t\t\t\tBX.bind(current.layout.item, 'click', BX.delegate(self._onItemClick, self));\n\t\t\t});\n\t\t},\n\n\t\t_onCloseMenu()\n\t\t{\n\t\t\tBX.removeClass(this.dropdown, this.activeClass);\n\t\t\tBX.PopupMenu.destroy(this.menuId);\n\t\t},\n\n\t\t_onItemClick(event)\n\t\t{\n\t\t\tconst item = this.getMenuItem(event.target);\n\t\t\tlet value; let\n\t\t\t\tdataItem;\n\t\t\tconst subItem = this.getSubItem(item);\n\t\t\tconst isPseudo = BX.data(subItem, 'pseudo');\n\n\t\t\tif (isPseudo === 'true')\n\t\t\t{\n\t\t\t\tvalue = BX.data(subItem, 'value');\n\t\t\t\tdataItem = this.getDataItemByValue(value);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.refresh(item);\n\t\t\t\tthis.selectItem(item);\n\n\t\t\t\tif (!this.multiple)\n\t\t\t\t{\n\t\t\t\t\tthis.menu.popupWindow.close();\n\t\t\t\t}\n\n\t\t\t\tvalue = this.getValue();\n\t\t\t\tdataItem = this.getDataItemByValue(value);\n\t\t\t}\n\n\t\t\tevent.stopPropagation();\n\n\t\t\tBX.onCustomEvent(window, 'Dropdown::change', [this.dropdown.id, event, item, dataItem, value]);\n\t\t},\n\n\t\tgetMenuItem(node)\n\t\t{\n\t\t\tlet item = node;\n\n\t\t\tif (!BX.hasClass(item, this.menuItemClass))\n\t\t\t{\n\t\t\t\titem = BX.findParent(item, { class: this.menuItemClass });\n\t\t\t}\n\n\t\t\treturn item;\n\t\t},\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main');\n\n\tBX.Main.dropdownManager = {\n\t\tdropdownClass: 'main-dropdown',\n\t\tdata: {},\n\t\tinit()\n\t\t{\n\t\t\tconst self = this;\n\t\t\tlet result;\n\t\t\tlet onLoadItems;\n\t\t\tlet items;\n\n\t\t\tBX.bind(document, 'click', BX.delegate(function(event) {\n\t\t\t\tif (BX.hasClass(event.target, this.dropdownClass))\n\t\t\t\t{\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tresult = this.getById(event.target.id);\n\n\t\t\t\t\tif (result && result.dropdown === event.target)\n\t\t\t\t\t{\n\t\t\t\t\t\tself.push(event.target.id, this.getById(event.target.id));\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tself.push(event.target.id, new BX.Main.dropdown(event.target));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, this));\n\n\t\t\tonLoadItems = BX.Grid.Utils.getByClass(document.body, this.dropdownClass);\n\n\t\t\tif (BX.type.isArray(onLoadItems))\n\t\t\t{\n\t\t\t\tonLoadItems.forEach((current) => {\n\t\t\t\t\tresult = self.getById(current.id);\n\t\t\t\t\ttry\n\t\t\t\t\t{\n\t\t\t\t\t\titems = eval(BX.data(current, 'items'));\n\t\t\t\t\t}\n\t\t\t\t\tcatch\n\t\t\t\t\t{}\n\n\t\t\t\t\tBX.onCustomEvent(window, 'Dropdown::load', [current.id, {}, null, BX.type.isArray(items) && items.length > 0 ? items[0] : [], BX.data(current, 'value')]);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tpush(id, instance)\n\t\t{\n\t\t\tthis.data[id] = instance;\n\t\t},\n\n\t\tgetById(id)\n\t\t{\n\t\t\treturn (id in this.data) ? this.data[id] : null;\n\t\t},\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * @param {HtmlElement} node\n\t * @param {BX.Main.grid} [parent]\n\t * @constructor\n\t */\n\tBX.Grid.Element = function(node, parent)\n\t{\n\t\tthis.node = null;\n\t\tthis.href = null;\n\t\tthis.parent = null;\n\t\tthis.init(node, parent);\n\t};\n\n\tBX.Grid.Element.prototype = {\n\t\tinit(node, parent)\n\t\t{\n\t\t\tthis.node = node;\n\t\t\tthis.parent = parent;\n\t\t\tthis.resetOnclickAttr();\n\t\t},\n\n\t\tgetParent()\n\t\t{\n\t\t\treturn this.parent;\n\t\t},\n\n\t\tload()\n\t\t{\n\t\t\tBX.addClass(this.getNode(), this.getParent().settings.get('classLoad'));\n\t\t},\n\n\t\tunload()\n\t\t{\n\t\t\tBX.removeClass(this.getNode(), this.getParent().settings.get('classLoad'));\n\t\t},\n\n\t\tisLoad()\n\t\t{\n\t\t\treturn BX.hasClass(this.getNode(), this.getParent().settings.get('classLoad'));\n\t\t},\n\n\t\tresetOnclickAttr()\n\t\t{\n\t\t\tif (BX.type.isDomNode(this.getNode()))\n\t\t\t{\n\t\t\t\tthis.getNode().onclick = null;\n\t\t\t}\n\t\t},\n\n\t\tgetObserver()\n\t\t{\n\t\t\treturn BX.Grid.observer;\n\t\t},\n\n\t\tgetNode()\n\t\t{\n\t\t\treturn this.node;\n\t\t},\n\n\t\tgetLink()\n\t\t{\n\t\t\tlet result;\n\n\t\t\ttry\n\t\t\t{\n\t\t\t\tresult = this.getNode().href;\n\t\t\t}\n\t\t\tcatch\n\t\t\t{\n\t\t\t\tresult = null;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.Fader\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.Fader = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.table = null;\n\t\tthis.container = null;\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.Fader.prototype = {\n\t\tinit(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tthis.table = this.parent.getTable();\n\t\t\tthis.container = this.table.parentNode;\n\t\t\tthis.scrollStartEventName = this.parent.isTouch() ? 'touchstart' : 'mouseenter';\n\t\t\tthis.scrollEndEventName = this.parent.isTouch() ? 'touchend' : 'mouseleave';\n\n\t\t\tif (this.parent.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\tthis.fixedTable = this.parent.getPinHeader().getFixedTable();\n\t\t\t}\n\n\t\t\tthis.debounceScrollHandler = BX.debounce(this._onWindowScroll, 400, this);\n\n\t\t\tBX.bind(window, 'resize', BX.proxy(this.toggle, this));\n\t\t\tdocument.addEventListener('scroll', this.debounceScrollHandler, BX.Grid.Utils.listenerParams({ passive: true }));\n\t\t\tthis.container.addEventListener('scroll', BX.proxy(this.toggle, this), BX.Grid.Utils.listenerParams({ passive: true }));\n\t\t\tBX.addCustomEvent(window, 'Grid::updated', BX.proxy(this.toggle, this));\n\t\t\tBX.addCustomEvent(window, 'Grid::resize', BX.proxy(this.toggle, this));\n\t\t\tBX.addCustomEvent(window, 'Grid::headerUpdated', BX.proxy(this._onHeaderUpdated, this));\n\t\t\tBX.addCustomEvent(window, 'Grid::columnResize', BX.proxy(this.toggle, this));\n\t\t\tBX.bind(this.getEarLeft(), this.scrollStartEventName, BX.proxy(this._onMouseoverLeft, this));\n\t\t\tBX.bind(this.getEarRight(), this.scrollStartEventName, BX.proxy(this._onMouseoverRight, this));\n\t\t\tBX.bind(this.getEarLeft(), this.scrollEndEventName, BX.proxy(this.stopScroll, this));\n\t\t\tBX.bind(this.getEarRight(), this.scrollEndEventName, BX.proxy(this.stopScroll, this));\n\n\t\t\tthis.toggle();\n\t\t\tthis.adjustEarOffset(true);\n\t\t},\n\n\t\tdestroy()\n\t\t{\n\t\t\tBX.unbind(window, 'resize', BX.proxy(this.toggle, this));\n\t\t\tdocument.removeEventListener('scroll', this.debounceScrollHandler, BX.Grid.Utils.listenerParams({ passive: true }));\n\t\t\tthis.container.removeEventListener('scroll', BX.proxy(this.toggle, this), BX.Grid.Utils.listenerParams({ passive: true }));\n\t\t\tBX.removeCustomEvent(window, 'Grid::updated', BX.proxy(this.toggle, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::headerUpdated', BX.proxy(this._onHeaderUpdated, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::columnResize', BX.proxy(this.toggle, this));\n\t\t\tBX.unbind(this.getEarLeft(), this.scrollStartEventName, BX.proxy(this._onMouseoverLeft, this));\n\t\t\tBX.unbind(this.getEarRight(), this.scrollStartEventName, BX.proxy(this._onMouseoverRight, this));\n\t\t\tBX.unbind(this.getEarLeft(), this.scrollEndEventName, BX.proxy(this.stopScroll, this));\n\t\t\tBX.unbind(this.getEarRight(), this.scrollEndEventName, BX.proxy(this.stopScroll, this));\n\t\t\tthis.hideLeftEar();\n\t\t\tthis.hideRightEar();\n\t\t\tthis.stopScroll();\n\t\t},\n\n\t\t_onHeaderUpdated()\n\t\t{\n\t\t\tif (this.parent.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\tthis.fixedTable = this.parent.getPinHeader().getFixedTable();\n\t\t\t}\n\t\t},\n\n\t\t_onMouseoverLeft(event)\n\t\t{\n\t\t\tthis.parent.isTouch() && event.preventDefault();\n\t\t\tthis.startScrollByDirection('left');\n\t\t},\n\n\t\t_onMouseoverRight(event)\n\t\t{\n\t\t\tthis.parent.isTouch() && event.preventDefault();\n\t\t\tthis.startScrollByDirection('right');\n\t\t},\n\n\t\tstopScroll()\n\t\t{\n\t\t\tclearTimeout(this.scrollTimer);\n\t\t\tclearInterval(this.scrollInterval);\n\t\t},\n\n\t\tstartScrollByDirection(direction)\n\t\t{\n\t\t\tconst container = this.container;\n\t\t\tlet offset = container.scrollLeft;\n\t\t\tconst self = this;\n\t\t\tconst stepLength = 8;\n\t\t\tconst stepTime = ((1000 / 60) / 2);\n\n\t\t\tthis.scrollTimer = setTimeout(() => {\n\t\t\t\tself.scrollInterval = setInterval(() => {\n\t\t\t\t\tcontainer.scrollLeft = direction == 'right' ? (offset += stepLength) : (offset -= stepLength);\n\t\t\t\t}, stepTime);\n\t\t\t}, 100);\n\t\t},\n\n\t\tgetEarLeft()\n\t\t{\n\t\t\tif (!this.earLeft)\n\t\t\t{\n\t\t\t\tthis.earLeft = BX.Grid.Utils.getByClass(this.parent.getContainer(), this.parent.settings.get('classEarLeft'), true);\n\t\t\t}\n\n\t\t\treturn this.earLeft;\n\t\t},\n\n\t\tgetEarRight()\n\t\t{\n\t\t\tif (!this.earRight)\n\t\t\t{\n\t\t\t\tthis.earRight = BX.Grid.Utils.getByClass(this.parent.getContainer(), this.parent.settings.get('classEarRight'), true);\n\t\t\t}\n\n\t\t\treturn this.earRight;\n\t\t},\n\n\t\tgetShadowLeft()\n\t\t{\n\t\t\treturn this.parent.getContainer().querySelector('.main-grid-fade-shadow-left');\n\t\t},\n\n\t\tgetShadowRight()\n\t\t{\n\t\t\treturn this.parent.getContainer().querySelector('.main-grid-fade-shadow-right');\n\t\t},\n\n\t\tadjustEarOffset(prepare)\n\t\t{\n\t\t\tif (prepare)\n\t\t\t{\n\t\t\t\tthis.windowHeight = BX.height(window);\n\t\t\t\tthis.tbodyPos = BX.pos(this.table.tBodies[0]);\n\t\t\t\tthis.headerPos = BX.pos(this.table.tHead);\n\t\t\t}\n\n\t\t\tlet scrollY = window.scrollY;\n\n\t\t\tif (this.parent.isIE())\n\t\t\t{\n\t\t\t\tscrollY = document.documentElement.scrollTop;\n\t\t\t}\n\n\t\t\tlet bottomPos = (scrollY + this.windowHeight) - this.tbodyPos.top;\n\t\t\tlet posTop = scrollY - this.tbodyPos.top;\n\n\t\t\tif (bottomPos > (this.tbodyPos.bottom - this.tbodyPos.top))\n\t\t\t{\n\t\t\t\tbottomPos = this.tbodyPos.bottom - this.tbodyPos.top;\n\t\t\t}\n\n\t\t\tif (posTop < this.headerPos.height)\n\t\t\t{\n\t\t\t\tposTop = this.headerPos.height;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tbottomPos -= posTop;\n\t\t\t\tbottomPos += this.headerPos.height;\n\t\t\t}\n\n\t\t\tBX.Grid.Utils.requestAnimationFrame(BX.proxy(function() {\n\t\t\t\tif (posTop !== this.lastPosTop)\n\t\t\t\t{\n\t\t\t\t\tconst translate = `translate3d(0px, ${posTop}px, 0)`;\n\t\t\t\t\tthis.getEarLeft().style.transform = translate;\n\t\t\t\t\tthis.getEarRight().style.transform = translate;\n\t\t\t\t}\n\n\t\t\t\tif (bottomPos !== this.lastBottomPos)\n\t\t\t\t{\n\t\t\t\t\tthis.getEarLeft().style.height = `${bottomPos}px`;\n\t\t\t\t\tthis.getEarRight().style.height = `${bottomPos}px`;\n\t\t\t\t}\n\n\t\t\t\tthis.lastPosTop = posTop;\n\t\t\t\tthis.lastBottomPos = bottomPos;\n\t\t\t}, this));\n\t\t},\n\n\t\t_onWindowScroll()\n\t\t{\n\t\t\tthis.adjustEarOffset();\n\t\t},\n\n\t\thasScroll()\n\t\t{\n\t\t\treturn this.table.offsetWidth > this.container.clientWidth;\n\t\t},\n\n\t\thasScrollLeft()\n\t\t{\n\t\t\treturn this.container.scrollLeft > 0;\n\t\t},\n\n\t\thasScrollRight()\n\t\t{\n\t\t\treturn this.table.offsetWidth > Math.round(this.container.scrollLeft + this.container.clientWidth);\n\t\t},\n\n\t\tshowLeftEar()\n\t\t{\n\t\t\tBX.addClass(this.container.parentNode, this.parent.settings.get('classFadeContainerLeft'));\n\t\t\tBX.addClass(this.getEarLeft(), this.parent.settings.get('classShow'));\n\t\t},\n\n\t\thideLeftEar()\n\t\t{\n\t\t\tBX.removeClass(this.container.parentNode, this.parent.settings.get('classFadeContainerLeft'));\n\t\t\tBX.removeClass(this.getEarLeft(), this.parent.settings.get('classShow'));\n\t\t},\n\n\t\tshowRightEar()\n\t\t{\n\t\t\tBX.addClass(this.container.parentNode, this.parent.settings.get('classFadeContainerRight'));\n\t\t\tBX.addClass(this.getEarRight(), this.parent.settings.get('classShow'));\n\t\t},\n\n\t\thideRightEar()\n\t\t{\n\t\t\tBX.removeClass(this.container.parentNode, this.parent.settings.get('classFadeContainerRight'));\n\t\t\tBX.removeClass(this.getEarRight(), this.parent.settings.get('classShow'));\n\t\t},\n\n\t\tadjustFixedTablePosition()\n\t\t{\n\t\t\tconst left = this.container.scrollLeft;\n\n\t\t\tBX.Grid.Utils.requestAnimationFrame(BX.delegate(function() {\n\t\t\t\tthis.fixedTable.style.marginLeft = `${-left}px`;\n\t\t\t}, this));\n\t\t},\n\n\t\ttoggle()\n\t\t{\n\t\t\tthis.adjustEarOffset(true);\n\t\t\tthis.fixedTable && this.adjustFixedTablePosition();\n\n\t\t\tif (this.hasScroll())\n\t\t\t{\n\t\t\t\tthis.hasScrollLeft() ? this.showLeftEar() : this.hideLeftEar();\n\t\t\t\tthis.hasScrollRight() ? this.showRightEar() : this.hideRightEar();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.hideLeftEar();\n\t\t\t\tthis.hideRightEar();\n\t\t\t}\n\t\t},\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main');\n\n\t/**\n\t * @event Grid::ready\n\t * @event Grid::columnMoved\n\t * @event Grid::rowMoved\n\t * @event Grid::pageSizeChanged\n\t * @event Grid::optionsUpdated\n\t * @event Grid::dataSorted\n\t * @event Grid::thereSelectedRows\n\t * @event Grid::allRowsSelected\n\t * @event Grid::allRowsUnselected\n\t * @event Grid::noSelectedRows\n\t * @event Grid::updated\n\t * @event Grid::headerPinned\n\t * @event Grid::headerUnpinned\n\t * @event Grid::beforeRequest\n\t * @param {string} containerId\n\t * @param {object} arParams\n\t * @param {boolean} arParams.ALLOW_COLUMNS_SORT\n\t * @param {boolean} arParams.ALLOW_ROWS_SORT\n\t * @param {boolean} arParams.ALLOW_COLUMNS_RESIZE\n\t * @param {boolean} arParams.SHOW_ROW_CHECKBOXES\n\t * @param {boolean} arParams.ALLOW_HORIZONTAL_SCROLL\n\t * @param {boolean} arParams.ALLOW_PIN_HEADER\n\t * @param {boolean} arParams.SHOW_ACTION_PANEL\n\t * @param {boolean} arParams.PRESERVE_HISTORY\n\t * @param {boolean} arParams.ALLOW_CONTEXT_MENU\n\t * @param {object} arParams.DEFAULT_COLUMNS\n\t * @param {boolean} arParams.ENABLE_COLLAPSIBLE_ROWS\n\t * @param {object} arParams.EDITABLE_DATA\n\t * @param {string} arParams.SETTINGS_TITLE\n\t * @param {string} arParams.APPLY_SETTINGS\n\t * @param {string} arParams.CANCEL_SETTINGS\n\t * @param {string} arParams.CONFIRM_APPLY\n\t * @param {string} arParams.CONFIRM_CANCEL\n\t * @param {string} arParams.CONFIRM_MESSAGE\n\t * @param {string} arParams.CONFIRM_FOR_ALL_MESSAGE\n\t * @param {string} arParams.CONFIRM_RESET_MESSAGE\n\t * @param {object} arParams.COLUMNS_ALL_WITH_SECTIONS\n\t * @param {boolean} arParams.ENABLE_FIELDS_SEARCH\n\t * @param {object} arParams.CHECKBOX_LIST_OPTIONS\n\t * @param {array} arParams.HEADERS_SECTIONS\n\t * @param {string} arParams.RESET_DEFAULT\n\t * @param {object} userOptions\n\t * @param {object} userOptionsActions\n\t * @param {object} userOptionsHandlerUrl\n\t * @param {object} panelActions\n\t * @param {object} panelTypes\n\t * @param {object} editorTypes\n\t * @param {object} messageTypes\n\t * @constructor\n\t */\n\tBX.Main.grid = function(\n\t\tcontainerId,\n\t\tarParams,\n\t\tuserOptions,\n\t\tuserOptionsActions,\n\t\tuserOptionsHandlerUrl,\n\t\tpanelActions,\n\t\tpanelTypes,\n\t\teditorTypes,\n\t\tmessageTypes,\n\t)\n\t{\n\t\tBX.Event.EventEmitter.makeObservable(this, 'BX.Main.Grid');\n\t\tthis.settings = null;\n\t\tthis.containerId = '';\n\t\tthis.container = null;\n\t\tthis.wrapper = null;\n\t\tthis.fadeContainer = null;\n\t\tthis.scrollContainer = null;\n\t\tthis.pagination = null;\n\t\tthis.moreButton = null;\n\t\tthis.table = null;\n\t\tthis.rows = null;\n\t\tthis.history = false;\n\t\tthis.userOptions = null;\n\t\tthis.checkAll = null;\n\t\tthis.sortable = null;\n\t\tthis.updater = null;\n\t\tthis.data = null;\n\t\tthis.fader = null;\n\t\tthis.editor = null;\n\t\tthis.isEditMode = null;\n\t\tthis.pinHeader = null;\n\t\tthis.pinPanel = null;\n\t\tthis.arParams = null;\n\t\tthis.resize = null;\n\t\tthis.editableRows = [];\n\n\t\tthis.init(\n\t\t\tcontainerId,\n\t\t\tarParams,\n\t\t\tuserOptions,\n\t\t\tuserOptionsActions,\n\t\t\tuserOptionsHandlerUrl,\n\t\t\tpanelActions,\n\t\t\tpanelTypes,\n\t\t\teditorTypes,\n\t\t\tmessageTypes,\n\t\t);\n\t};\n\n\tBX.Main.grid.prototype = {\n\t\tinit(containerId, arParams, userOptions, userOptionsActions, userOptionsHandlerUrl, panelActions, panelTypes, editorTypes, messageTypes)\n\t\t{\n\t\t\tthis.baseUrl = window.location.pathname + window.location.search;\n\t\t\tthis.container = BX(containerId);\n\n\t\t\tif (!BX.type.isNotEmptyString(containerId))\n\t\t\t{\n\t\t\t\tthrow 'BX.Main.grid.init: parameter containerId is empty';\n\t\t\t}\n\n\t\t\tif (BX.type.isPlainObject(arParams))\n\t\t\t{\n\t\t\t\tthis.arParams = arParams;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthrow new TypeError('BX.Main.grid.init: arParams isn\\'t object');\n\t\t\t}\n\n\t\t\tthis.settings = new BX.Grid.Settings();\n\t\t\tthis.containerId = containerId;\n\t\t\tthis.userOptions = new BX.Grid.UserOptions(this, userOptions, userOptionsActions, userOptionsHandlerUrl);\n\t\t\tthis.gridSettings = new BX.Grid.SettingsWindow.Manager(this);\n\t\t\tthis.messages = new BX.Grid.Message(this, messageTypes);\n\t\t\tthis.cache = new BX.Cache.MemoryCache();\n\n\t\t\tif (this.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\tthis.pinHeader = new BX.Grid.PinHeader(this);\n\t\t\t\tBX.addCustomEvent(window, 'Grid::headerUpdated', BX.proxy(this.bindOnCheckAll, this));\n\t\t\t}\n\n\t\t\tthis.bindOnCheckAll();\n\n\t\t\tif (this.getParam('ALLOW_HORIZONTAL_SCROLL'))\n\t\t\t{\n\t\t\t\tthis.fader = new BX.Grid.Fader(this);\n\t\t\t}\n\n\t\t\tthis.pageSize = new BX.Grid.Pagesize(this);\n\t\t\tthis.editor = new BX.Grid.InlineEditor(this, editorTypes);\n\n\t\t\tif (this.getParam('SHOW_ACTION_PANEL'))\n\t\t\t{\n\t\t\t\tthis.actionPanel = new BX.Grid.ActionPanel(this, panelActions, panelTypes);\n\t\t\t\tthis.pinPanel = new BX.Grid.PinPanel(this);\n\t\t\t}\n\n\t\t\tthis.isEditMode = false;\n\n\t\t\tif (!BX.type.isDomNode(this.getContainer()))\n\t\t\t{\n\t\t\t\tthrow `BX.Main.grid.init: Failed to find container with id ${this.getContainerId()}`;\n\t\t\t}\n\n\t\t\tif (!BX.type.isDomNode(this.getTable()))\n\t\t\t{\n\t\t\t\tthrow 'BX.Main.grid.init: Failed to find table';\n\t\t\t}\n\n\t\t\tthis.bindOnRowEvents();\n\n\t\t\tif (this.getParam('ALLOW_COLUMNS_RESIZE'))\n\t\t\t{\n\t\t\t\tthis.resize = new BX.Grid.Resize(this);\n\t\t\t}\n\n\t\t\tthis.bindOnMoreButtonEvents();\n\t\t\tthis.bindOnClickPaginationLinks();\n\t\t\tthis.bindOnClickHeader();\n\n\t\t\tif (this.getParam('ALLOW_ROWS_SORT'))\n\t\t\t{\n\t\t\t\tthis.initRowsDragAndDrop();\n\t\t\t}\n\n\t\t\tif (this.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t{\n\t\t\t\tthis.initColsDragAndDrop();\n\t\t\t}\n\n\t\t\tthis.getRows().initSelected();\n\t\t\tthis.adjustEmptyTable(this.getRows().getSourceBodyChild());\n\t\t\tBX.onCustomEvent(this.getContainer(), 'Grid::ready', [this]);\n\t\t\tBX.addCustomEvent(window, 'Grid::unselectRow', BX.proxy(this._onUnselectRows, this));\n\t\t\tBX.addCustomEvent(window, 'Grid::unselectRows', BX.proxy(this._onUnselectRows, this));\n\t\t\tBX.addCustomEvent(window, 'Grid::allRowsUnselected', BX.proxy(this._onUnselectRows, this));\n\t\t\tBX.addCustomEvent(window, 'Grid::updated', BX.proxy(this._onGridUpdated, this));\n\t\t\twindow.frames[this.getFrameId()].onresize = BX.throttle(this._onFrameResize, 20, this);\n\n\t\t\tif (this.getParam('ALLOW_STICKED_COLUMNS'))\n\t\t\t{\n\t\t\t\tthis.initStickedColumns();\n\t\t\t}\n\t\t},\n\n\t\tdestroy()\n\t\t{\n\t\t\tBX.removeCustomEvent(window, 'Grid::unselectRow', BX.proxy(this._onUnselectRows, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::unselectRows', BX.proxy(this._onUnselectRows, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::allRowsUnselected', BX.proxy(this._onUnselectRows, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::headerPinned', BX.proxy(this.bindOnCheckAll, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::updated', BX.proxy(this._onGridUpdated, this));\n\t\t\tthis.getPinHeader() && this.getPinHeader().destroy();\n\t\t\tthis.getFader() && this.getFader().destroy();\n\t\t\tthis.getResize() && this.getResize().destroy();\n\t\t\tthis.getColsSortable() && this.getColsSortable().destroy();\n\t\t\tthis.getRowsSortable() && this.getRowsSortable().destroy();\n\t\t\tthis.getSettingsWindow() && this.getSettingsWindow().destroy();\n\t\t\tthis.getActionsPanel() && this.getActionsPanel().destroy();\n\t\t\tthis.getPinPanel() && this.getPinPanel().destroy();\n\t\t\tthis.getPageSize() && this.getPageSize().destroy();\n\t\t},\n\n\t\t_onFrameResize()\n\t\t{\n\t\t\tBX.onCustomEvent(window, 'Grid::resize', [this]);\n\t\t},\n\n\t\t_onGridUpdated()\n\t\t{\n\t\t\tthis.initStickedColumns();\n\t\t\tthis.adjustFadePosition(this.getFadeOffset());\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t * @return {string}\n\t\t */\n\t\tgetFrameId()\n\t\t{\n\t\t\treturn `main-grid-tmp-frame-${this.getContainerId()}`;\n\t\t},\n\n\t\tenableActionsPanel()\n\t\t{\n\t\t\tif (this.getParam('SHOW_ACTION_PANEL'))\n\t\t\t{\n\t\t\t\tconst panel = this.getActionsPanel().getPanel();\n\n\t\t\t\tif (BX.type.isDomNode(panel))\n\t\t\t\t{\n\t\t\t\t\tBX.removeClass(panel, this.settings.get('classDisable'));\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tdisableActionsPanel()\n\t\t{\n\t\t\tif (this.getParam('SHOW_ACTION_PANEL'))\n\t\t\t{\n\t\t\t\tconst panel = this.getActionsPanel().getPanel();\n\n\t\t\t\tif (BX.type.isDomNode(panel))\n\t\t\t\t{\n\t\t\t\t\tBX.addClass(panel, this.settings.get('classDisable'));\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tgetSettingsWindow()\n\t\t{\n\t\t\treturn this.gridSettings;\n\t\t},\n\n\t\t_onUnselectRows()\n\t\t{\n\t\t\tconst panel = this.getActionsPanel();\n\t\t\tlet checkbox;\n\n\t\t\tif (panel instanceof BX.Grid.ActionPanel)\n\t\t\t{\n\t\t\t\tcheckbox = panel.getForAllCheckbox();\n\n\t\t\t\tif (BX.type.isDomNode(checkbox))\n\t\t\t\t{\n\t\t\t\t\tcheckbox.checked = null;\n\t\t\t\t\tthis.disableForAllCounter();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.adjustCheckAllCheckboxes();\n\t\t},\n\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\tisIE()\n\t\t{\n\t\t\tif (!BX.type.isBoolean(this.ie))\n\t\t\t{\n\t\t\t\tthis.ie = BX.hasClass(document.documentElement, 'bx-ie');\n\t\t\t}\n\n\t\t\treturn this.ie;\n\t\t},\n\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\tisTouch()\n\t\t{\n\t\t\tif (!BX.type.isBoolean(this.touch))\n\t\t\t{\n\t\t\t\tthis.touch = BX.hasClass(document.documentElement, 'bx-touch');\n\t\t\t}\n\n\t\t\treturn this.touch;\n\t\t},\n\n\t\t/**\n\t\t * @param {string} paramName\n\t\t * @param {*} [defaultValue]\n\t\t * @return {*}\n\t\t */\n\t\tgetParam(paramName, defaultValue)\n\t\t{\n\t\t\tif (defaultValue === undefined)\n\t\t\t{\n\t\t\t\tdefaultValue = null;\n\t\t\t}\n\n\t\t\treturn (this.arParams.hasOwnProperty(paramName) ? this.arParams[paramName] : defaultValue);\n\t\t},\n\n\t\t/**\n\t\t * @return {HTMLElement[]}\n\t\t */\n\t\tgetCounterTotal()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classCounterTotal'), true);\n\t\t},\n\n\t\tgetActionKey()\n\t\t{\n\t\t\treturn (`action_button_${this.getId()}`);\n\t\t},\n\n\t\t/**\n\t\t * @return {?BX.Grid.PinHeader}\n\t\t */\n\t\tgetPinHeader()\n\t\t{\n\t\t\tif (this.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\tthis.pinHeader = this.pinHeader || new BX.Grid.PinHeader(this);\n\t\t\t}\n\n\t\t\treturn this.pinHeader;\n\t\t},\n\n\t\t/**\n\t\t * @return {BX.Grid.Resize}\n\t\t */\n\t\tgetResize()\n\t\t{\n\t\t\tif (!(this.resize instanceof BX.Grid.Resize) && this.getParam('ALLOW_COLUMNS_RESIZE'))\n\t\t\t{\n\t\t\t\tthis.resize = new BX.Grid.Resize(this);\n\t\t\t}\n\n\t\t\treturn this.resize;\n\t\t},\n\n\t\tconfirmForAll(container)\n\t\t{\n\t\t\tlet checkbox;\n\t\t\tconst self = this;\n\n\t\t\tif (BX.type.isDomNode(container))\n\t\t\t{\n\t\t\t\tcheckbox = BX.Grid.Utils.getByTag(container, 'input', true);\n\t\t\t}\n\n\t\t\tif (checkbox.checked)\n\t\t\t{\n\t\t\t\tthis.getActionsPanel().confirmDialog(\n\t\t\t\t\t{ CONFIRM: true, CONFIRM_MESSAGE: this.arParams.CONFIRM_FOR_ALL_MESSAGE },\n\t\t\t\t\t() => {\n\t\t\t\t\t\tif (BX.type.isDomNode(checkbox))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcheckbox.checked = true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tself.selectAllCheckAllCheckboxes();\n\t\t\t\t\t\tself.getRows().selectAll();\n\t\t\t\t\t\tself.enableForAllCounter();\n\t\t\t\t\t\tself.updateCounterDisplayed();\n\t\t\t\t\t\tself.updateCounterSelected();\n\t\t\t\t\t\tself.enableActionsPanel();\n\t\t\t\t\t\tself.adjustCheckAllCheckboxes();\n\t\t\t\t\t\tself.lastRowAction = null;\n\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::allRowsSelected', []);\n\t\t\t\t\t},\n\t\t\t\t\t() => {\n\t\t\t\t\t\tif (BX.type.isDomNode(checkbox))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcheckbox.checked = null;\n\t\t\t\t\t\t\tself.disableForAllCounter();\n\t\t\t\t\t\t\tself.updateCounterDisplayed();\n\t\t\t\t\t\t\tself.updateCounterSelected();\n\t\t\t\t\t\t\tself.adjustCheckAllCheckboxes();\n\t\t\t\t\t\t\tself.lastRowAction = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.unselectAllCheckAllCheckboxes();\n\t\t\t\tthis.adjustCheckAllCheckboxes();\n\t\t\t\tthis.getRows().unselectAll();\n\t\t\t\tthis.disableForAllCounter();\n\t\t\t\tthis.updateCounterDisplayed();\n\t\t\t\tthis.updateCounterSelected();\n\t\t\t\tthis.disableActionsPanel();\n\t\t\t\tBX.onCustomEvent(window, 'Grid::allRowsUnselected', []);\n\t\t\t}\n\t\t},\n\n\t\tdisableCheckAllCheckboxes()\n\t\t{\n\t\t\tthis.getCheckAllCheckboxes().forEach((checkbox) => {\n\t\t\t\tcheckbox.getNode().disabled = true;\n\t\t\t});\n\t\t},\n\n\t\tenableCheckAllCheckboxes()\n\t\t{\n\t\t\tthis.getCheckAllCheckboxes().forEach((checkbox) => {\n\t\t\t\tcheckbox.getNode().disabled = false;\n\t\t\t});\n\t\t},\n\n\t\tindeterminateCheckAllCheckboxes()\n\t\t{\n\t\t\tthis.getCheckAllCheckboxes().forEach((checkbox) => {\n\t\t\t\tcheckbox.getNode().indeterminate = true;\n\t\t\t});\n\t\t},\n\n\t\tdeterminateCheckAllCheckboxes()\n\t\t{\n\t\t\tthis.getCheckAllCheckboxes().forEach((checkbox) => {\n\t\t\t\tcheckbox.getNode().indeterminate = false;\n\t\t\t});\n\t\t},\n\n\t\teditSelected()\n\t\t{\n\t\t\tthis.disableCheckAllCheckboxes();\n\t\t\tthis.getRows().editSelected();\n\n\t\t\tif (this.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\tthis.getPinHeader()._onGridUpdate();\n\t\t\t}\n\n\t\t\tBX.onCustomEvent(window, 'Grid::resize', [this]);\n\t\t},\n\n\t\teditSelectedSave()\n\t\t{\n\t\t\tconst data = { FIELDS: this.getRows().getEditSelectedValues(true) };\n\n\t\t\tif (this.getParam('ALLOW_VALIDATE'))\n\t\t\t{\n\t\t\t\tthis.tableFade();\n\t\t\t\tdata[this.getActionKey()] = 'validate';\n\t\t\t\tthis.getData().request('', 'POST', data, 'validate', (res) => {\n\t\t\t\t\tres = JSON.parse(res);\n\n\t\t\t\t\tif (res.messages.length > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.arParams.MESSAGES = res.messages;\n\t\t\t\t\t\tthis.messages.show();\n\n\t\t\t\t\t\tconst editButton = this.getActionsPanel().getButtons()\n\t\t\t\t\t\t\t.find((button) => {\n\t\t\t\t\t\t\t\treturn button.id === 'grid_edit_button_control';\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.tableUnfade();\n\t\t\t\t\t\tBX.fireEvent(editButton, 'click');\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tdata[this.getActionKey()] = 'edit';\n\t\t\t\t\t\tthis.reloadTable('POST', data);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.getParam('HANDLE_RESPONSE_ERRORS'))\n\t\t\t{\n\t\t\t\tdata[this.getActionKey()] = 'edit';\n\n\t\t\t\tconst self = this;\n\t\t\t\tthis.tableFade();\n\n\t\t\t\tthis.getData().request(\n\t\t\t\t\t'',\n\t\t\t\t\t'POST',\n\t\t\t\t\tdata,\n\t\t\t\t\t'',\n\t\t\t\t\tfunction(res) {\n\t\t\t\t\t\ttry\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tres = JSON.parse(res);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tres = { messages: [] };\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (res.messages.length > 0)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.arParams.MESSAGES = res.messages;\n\t\t\t\t\t\t\tself.messages.show();\n\n\t\t\t\t\t\t\tconst editButton = self.getActionsPanel().getButtons()\n\t\t\t\t\t\t\t\t.find((button) => {\n\t\t\t\t\t\t\t\t\treturn button.id === 'grid_edit_button_control';\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tself.tableUnfade();\n\t\t\t\t\t\t\tBX.fireEvent(editButton, 'click');\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tself.getRows().reset();\n\t\t\t\t\t\tconst bodyRows = this.getBodyRows();\n\n\t\t\t\t\t\tself.getUpdater().updateContainer(this.getContainer());\n\t\t\t\t\t\tself.getUpdater().updateHeadRows(this.getHeadRows());\n\t\t\t\t\t\tself.getUpdater().updateBodyRows(bodyRows);\n\t\t\t\t\t\tself.getUpdater().updateFootRows(this.getFootRows());\n\t\t\t\t\t\tself.getUpdater().updatePagination(this.getPagination());\n\t\t\t\t\t\tself.getUpdater().updateMoreButton(this.getMoreButton());\n\t\t\t\t\t\tself.getUpdater().updateCounterTotal(this.getCounterTotal());\n\n\t\t\t\t\t\tself.adjustEmptyTable(bodyRows);\n\n\t\t\t\t\t\tself.bindOnRowEvents();\n\n\t\t\t\t\t\tself.bindOnMoreButtonEvents();\n\t\t\t\t\t\tself.bindOnClickPaginationLinks();\n\t\t\t\t\t\tself.bindOnClickHeader();\n\t\t\t\t\t\tself.bindOnCheckAll();\n\t\t\t\t\t\tself.updateCounterDisplayed();\n\t\t\t\t\t\tself.updateCounterSelected();\n\t\t\t\t\t\tself.disableActionsPanel();\n\t\t\t\t\t\tself.disableForAllCounter();\n\n\t\t\t\t\t\tif (self.getParam('SHOW_ACTION_PANEL'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.getUpdater().updateGroupActions(this.getActionPanel());\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (self.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.colsSortable.reinit();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (self.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.rowsSortable.reinit();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tself.tableUnfade();\n\n\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::updated', [self]);\n\t\t\t\t\t},\n\t\t\t\t\t(res) => {\n\t\t\t\t\t\tconst editButton = self.getActionsPanel().getButtons()\n\t\t\t\t\t\t\t.find((button) => {\n\t\t\t\t\t\t\t\treturn button.id === 'grid_edit_button_control';\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\tself.tableUnfade();\n\t\t\t\t\t\tBX.fireEvent(editButton, 'click');\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdata[this.getActionKey()] = 'edit';\n\t\t\tthis.reloadTable('POST', data);\n\t\t},\n\n\t\tgetForAllKey()\n\t\t{\n\t\t\treturn `action_all_rows_${this.getId()}`;\n\t\t},\n\n\t\tupdateRow(id, data, url, callback)\n\t\t{\n\t\t\tconst row = this.getRows().getById(id);\n\n\t\t\tif (row instanceof BX.Grid.Row)\n\t\t\t{\n\t\t\t\trow.update(data, url, callback);\n\t\t\t}\n\t\t},\n\n\t\tremoveRow(id, data, url, callback)\n\t\t{\n\t\t\tconst row = this.getRows().getById(id);\n\n\t\t\tif (row instanceof BX.Grid.Row)\n\t\t\t{\n\t\t\t\trow.remove(data, url, callback);\n\t\t\t}\n\t\t},\n\n\t\taddRow(data, url, callback)\n\t\t{\n\t\t\tconst action = this.getUserOptions().getAction('GRID_ADD_ROW');\n\t\t\tconst rowData = { action, data };\n\t\t\tconst self = this;\n\n\t\t\tthis.tableFade();\n\t\t\tthis.getData().request(url, 'POST', rowData, null, function() {\n\t\t\t\tconst bodyRows = this.getBodyRows();\n\t\t\t\tself.getUpdater().updateBodyRows(bodyRows);\n\t\t\t\tself.tableUnfade();\n\t\t\t\tself.getRows().reset();\n\t\t\t\tself.getUpdater().updateFootRows(this.getFootRows());\n\t\t\t\tself.getUpdater().updatePagination(this.getPagination());\n\t\t\t\tself.getUpdater().updateMoreButton(this.getMoreButton());\n\t\t\t\tself.getUpdater().updateCounterTotal(this.getCounterTotal());\n\t\t\t\tself.bindOnRowEvents();\n\t\t\t\tself.adjustEmptyTable(bodyRows);\n\n\t\t\t\tself.bindOnMoreButtonEvents();\n\t\t\t\tself.bindOnClickPaginationLinks();\n\t\t\t\tself.updateCounterDisplayed();\n\t\t\t\tself.updateCounterSelected();\n\n\t\t\t\tif (self.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.colsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tif (self.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.rowsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tBX.onCustomEvent(window, 'Grid::rowAdded', [{ data, grid: self, response: this }]);\n\t\t\t\tBX.onCustomEvent(window, 'Grid::updated', [self]);\n\n\t\t\t\tif (BX.type.isFunction(callback))\n\t\t\t\t{\n\t\t\t\t\tcallback({ data, grid: self, response: this });\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\teditSelectedCancel()\n\t\t{\n\t\t\tthis.getRows().editSelectedCancel();\n\t\t\tthis.enableCheckAllCheckboxes();\n\n\t\t\tif (this.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\tthis.getPinHeader()._onGridUpdate();\n\t\t\t}\n\t\t},\n\n\t\tremoveSelected()\n\t\t{\n\t\t\tconst data = { ID: this.getRows().getSelectedIds() };\n\t\t\tconst values = this.getActionsPanel().getValues();\n\t\t\tdata[this.getActionKey()] = 'delete';\n\t\t\tdata[this.getForAllKey()] = this.getForAllKey() in values ? values[this.getForAllKey()] : 'N';\n\t\t\tthis.reloadTable('POST', data);\n\t\t},\n\n\t\tsendSelected()\n\t\t{\n\t\t\tconst values = this.getActionsPanel().getValues();\n\t\t\tconst selectedRows = this.getRows().getSelectedIds();\n\t\t\tconst data = {\n\t\t\t\trows: selectedRows,\n\t\t\t\tcontrols: values,\n\t\t\t};\n\n\t\t\tthis.reloadTable('POST', data);\n\t\t},\n\n\t\tsendRowAction(action, data)\n\t\t{\n\t\t\tif (!BX.type.isPlainObject(data))\n\t\t\t{\n\t\t\t\tdata = {};\n\t\t\t}\n\n\t\t\tdata[this.getActionKey()] = action;\n\n\t\t\tthis.reloadTable('POST', data);\n\t\t},\n\n\t\t/**\n\t\t * @return {?BX.Grid.ActionPanel}\n\t\t */\n\t\tgetActionsPanel()\n\t\t{\n\t\t\treturn this.actionPanel;\n\t\t},\n\n\t\tgetPinPanel()\n\t\t{\n\t\t\treturn this.pinPanel;\n\t\t},\n\n\t\tgetApplyButton()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classPanelButton'), true);\n\t\t},\n\n\t\tgetEditor()\n\t\t{\n\t\t\treturn this.editor;\n\t\t},\n\n\t\treload(url)\n\t\t{\n\t\t\tthis.reloadTable('GET', {}, null, url);\n\t\t},\n\n\t\tgetPanels()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classPanels'), true);\n\t\t},\n\n\t\tgetEmptyBlock()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classEmptyBlock'), true);\n\t\t},\n\n\t\tadjustEmptyTable(rows)\n\t\t{\n\t\t\tfunction adjustEmptyBlockPosition(event)\n\t\t\t{\n\t\t\t\tconst target = event.currentTarget;\n\t\t\t\tBX.style(emptyBlock, 'transform', `translate3d(${BX.scrollLeft(target)}px, 0px, 0`);\n\t\t\t}\n\n\t\t\tconst filteredRows = rows.filter((row) => {\n\t\t\t\treturn (\n\t\t\t\t\tBX.Dom.attr(row, 'data-id') !== 'template_0'\n\t\t\t\t\t&& !BX.Dom.hasClass(row, 'main-grid-hide')\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tif (\n\t\t\t\t!BX.hasClass(document.documentElement, 'bx-ie')\n\t\t\t\t&& filteredRows.length === 1\n\t\t\t\t&& BX.hasClass(filteredRows[0], this.settings.get('classEmptyRows'))\n\t\t\t)\n\t\t\t{\n\t\t\t\tconst gridRect = BX.pos(this.getContainer());\n\t\t\t\tconst scrollBottom = BX.scrollTop(window) + BX.height(window);\n\t\t\t\tconst diff = gridRect.bottom - scrollBottom;\n\t\t\t\tconst panelsHeight = BX.height(this.getPanels());\n\t\t\t\tvar emptyBlock = this.getEmptyBlock();\n\t\t\t\tconst containerWidth = BX.width(this.getContainer());\n\n\t\t\t\tif (containerWidth)\n\t\t\t\t{\n\t\t\t\t\tBX.width(emptyBlock, containerWidth);\n\t\t\t\t}\n\n\t\t\t\tBX.style(emptyBlock, 'transform', `translate3d(${BX.scrollLeft(this.getScrollContainer())}px, 0px, 0`);\n\n\t\t\t\tBX.unbind(this.getScrollContainer(), 'scroll', adjustEmptyBlockPosition);\n\t\t\t\tBX.bind(this.getScrollContainer(), 'scroll', adjustEmptyBlockPosition);\n\n\t\t\t\tlet parent = this.getContainer();\n\t\t\t\tlet paddingOffset = 0;\n\n\t\t\t\twhile (parent = parent.parentElement)\n\t\t\t\t{\n\t\t\t\t\tconst parentPaddingTop = parseFloat(BX.style(parent, 'padding-top'));\n\t\t\t\t\tconst parentPaddingBottom = parseFloat(BX.style(parent, 'padding-bottom'));\n\n\t\t\t\t\tif (!isNaN(parentPaddingTop))\n\t\t\t\t\t{\n\t\t\t\t\t\tpaddingOffset += parentPaddingTop;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!isNaN(parentPaddingBottom))\n\t\t\t\t\t{\n\t\t\t\t\t\tpaddingOffset += parentPaddingBottom;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (diff > 0)\n\t\t\t\t{\n\t\t\t\t\tBX.style(this.getTable(), 'min-height', `${gridRect.height - diff - panelsHeight - paddingOffset}px`);\n\t\t\t\t}\n\t\t\t\telse if (Math.abs(diff) === scrollBottom)\n\t\t\t\t{\n\t\t\t\t\t// If the grid is hidden\n\t\t\t\t\tBX.style(this.getTable(), 'min-height', '');\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tBX.style(this.getTable(), 'min-height', `${gridRect.height + Math.abs(diff) - panelsHeight - paddingOffset}px`);\n\t\t\t\t}\n\n\t\t\t\tBX.Dom.addClass(this.getContainer(), 'main-grid-empty-stub');\n\n\t\t\t\tif (this.getCurrentPage() <= 1)\n\t\t\t\t{\n\t\t\t\t\tthis.hidePanels();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.style(this.getTable(), 'min-height', '');\n\n\t\t\t\t// Chrome hack for 0116845 bug. @todo refactoring\n\t\t\t\tBX.style(this.getTable(), 'height', '1px');\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\tBX.style(this.getTable(), 'height', '1px');\n\t\t\t\t});\n\n\t\t\t\tthis.showPanels();\n\t\t\t\tBX.Dom.removeClass(this.getContainer(), 'main-grid-empty-stub');\n\t\t\t}\n\t\t},\n\n\t\treloadTable(method, data, callback, url)\n\t\t{\n\t\t\tlet bodyRows;\n\n\t\t\tif (!BX.type.isNotEmptyString(method))\n\t\t\t{\n\t\t\t\tmethod = 'GET';\n\t\t\t}\n\n\t\t\tif (!BX.type.isPlainObject(data))\n\t\t\t{\n\t\t\t\tdata = {};\n\t\t\t}\n\n\t\t\tconst self = this;\n\t\t\tthis.tableFade();\n\n\t\t\tif (!BX.type.isString(url))\n\t\t\t{\n\t\t\t\turl = '';\n\t\t\t}\n\n\t\t\tthis.getData().request(url, method, data, '', function() {\n\t\t\t\tBX.onCustomEvent(window, 'BX.Main.Grid:onBeforeReload', [self]);\n\t\t\t\tself.getRows().reset();\n\t\t\t\tbodyRows = this.getBodyRows();\n\n\t\t\t\tself.getUpdater().updateContainer(this.getContainer());\n\t\t\t\tself.getUpdater().updateHeadRows(this.getHeadRows());\n\t\t\t\tself.getUpdater().updateBodyRows(bodyRows);\n\t\t\t\tself.getUpdater().updateFootRows(this.getFootRows());\n\t\t\t\tself.getUpdater().updatePagination(this.getPagination());\n\t\t\t\tself.getUpdater().updateMoreButton(this.getMoreButton());\n\t\t\t\tself.getUpdater().updateCounterTotal(this.getCounterTotal());\n\n\t\t\t\tself.adjustEmptyTable(bodyRows);\n\n\t\t\t\tself.bindOnRowEvents();\n\n\t\t\t\tself.bindOnMoreButtonEvents();\n\t\t\t\tself.bindOnClickPaginationLinks();\n\t\t\t\tself.bindOnClickHeader();\n\t\t\t\tself.bindOnCheckAll();\n\t\t\t\tself.updateCounterDisplayed();\n\t\t\t\tself.updateCounterSelected();\n\t\t\t\tself.disableActionsPanel();\n\t\t\t\tself.disableForAllCounter();\n\n\t\t\t\tif (self.getParam('SHOW_ACTION_PANEL'))\n\t\t\t\t{\n\t\t\t\t\tself.getUpdater().updateGroupActions(this.getActionPanel());\n\t\t\t\t}\n\n\t\t\t\tif (self.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.colsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tif (self.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.rowsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tself.tableUnfade();\n\n\t\t\t\tBX.onCustomEvent(window, 'Grid::updated', [self]);\n\n\t\t\t\tif (BX.type.isFunction(callback))\n\t\t\t\t{\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\n\t\t\t\tif (self.getParam('ALLOW_PIN_HEADER'))\n\t\t\t\t{\n\t\t\t\t\tself.getPinHeader()._onGridUpdate();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tgetGroupEditButton()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classGroupEditButton'), true);\n\t\t},\n\n\t\tgetGroupDeleteButton()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classGroupDeleteButton'), true);\n\t\t},\n\n\t\tenableGroupActions()\n\t\t{\n\t\t\tconst editButton = this.getGroupEditButton();\n\t\t\tconst deleteButton = this.getGroupDeleteButton();\n\n\t\t\tif (BX.type.isDomNode(editButton))\n\t\t\t{\n\t\t\t\tBX.removeClass(editButton, this.settings.get('classGroupActionsDisabled'));\n\t\t\t}\n\n\t\t\tif (BX.type.isDomNode(deleteButton))\n\t\t\t{\n\t\t\t\tBX.removeClass(deleteButton, this.settings.get('classGroupActionsDisabled'));\n\t\t\t}\n\t\t},\n\n\t\tdisableGroupActions()\n\t\t{\n\t\t\tconst editButton = this.getGroupEditButton();\n\t\t\tconst deleteButton = this.getGroupDeleteButton();\n\n\t\t\tif (BX.type.isDomNode(editButton))\n\t\t\t{\n\t\t\t\tBX.addClass(editButton, this.settings.get('classGroupActionsDisabled'));\n\t\t\t}\n\n\t\t\tif (BX.type.isDomNode(deleteButton))\n\t\t\t{\n\t\t\t\tBX.addClass(deleteButton, this.settings.get('classGroupActionsDisabled'));\n\t\t\t}\n\t\t},\n\n\t\tcloseActionsMenu()\n\t\t{\n\t\t\tconst rows = this.getRows().getRows();\n\t\t\tfor (let i = 0, l = rows.length; i < l; i++)\n\t\t\t{\n\t\t\t\trows[i].closeActionsMenu();\n\t\t\t}\n\t\t},\n\n\t\tgetPageSize()\n\t\t{\n\t\t\treturn this.pageSize;\n\t\t},\n\n\t\t/**\n\t\t * @return {?BX.Grid.Fader}\n\t\t */\n\t\tgetFader()\n\t\t{\n\t\t\treturn this.fader;\n\t\t},\n\n\t\t/**\n\t\t * @return {BX.Grid.Data}\n\t\t */\n\t\tgetData()\n\t\t{\n\t\t\tthis.data = this.data || new BX.Grid.Data(this);\n\n\t\t\treturn this.data;\n\t\t},\n\n\t\t/**\n\t\t * @return {BX.Grid.Updater}\n\t\t */\n\t\tgetUpdater()\n\t\t{\n\t\t\tthis.updater = this.updater || new BX.Grid.Updater(this);\n\n\t\t\treturn this.updater;\n\t\t},\n\n\t\tisSortableHeader(item)\n\t\t{\n\t\t\treturn (\n\t\t\t\tBX.hasClass(item, this.settings.get('classHeaderSortable'))\n\t\t\t);\n\t\t},\n\n\t\tisNoSortableHeader(item)\n\t\t{\n\t\t\treturn (\n\t\t\t\tBX.hasClass(item, this.settings.get('classHeaderNoSortable'))\n\t\t\t);\n\t\t},\n\n\t\tbindOnClickHeader()\n\t\t{\n\t\t\tconst self = this;\n\t\t\tlet cell;\n\n\t\t\tBX.bind(this.getContainer(), 'click', (event) => {\n\t\t\t\tcell = BX.findParent(event.target, { tag: 'th' }, true, false);\n\n\t\t\t\tif (cell && self.isSortableHeader(cell) && !self.preventSortableClick)\n\t\t\t\t{\n\t\t\t\t\tconst onBeforeSortEvent = new BX.Event.BaseEvent({\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tgrid: self,\n\t\t\t\t\t\t\tcolumnName: BX.data(cell, 'name'),\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tBX.Event.EventEmitter.emit('BX.Main.grid:onBeforeSort', onBeforeSortEvent);\n\t\t\t\t\tif (onBeforeSortEvent.isDefaultPrevented())\n\t\t\t\t\t{\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tself.preventSortableClick = false;\n\t\t\t\t\tself._clickOnSortableHeader(cell, event);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tenableEditMode()\n\t\t{\n\t\t\tthis.isEditMode = true;\n\t\t},\n\n\t\tdisableEditMode()\n\t\t{\n\t\t\tthis.isEditMode = false;\n\t\t},\n\n\t\tisEditMode()\n\t\t{\n\t\t\treturn this.isEditMode;\n\t\t},\n\n\t\tgetColumnHeaderCellByName(name)\n\t\t{\n\t\t\treturn BX.Grid.Utils.getBySelector(\n\t\t\t\tthis.getContainer(),\n\t\t\t\t`#${this.getId()} th[data-name=\"${name}\"]`,\n\t\t\t\ttrue,\n\t\t\t);\n\t\t},\n\n\t\tgetColumnByName(name)\n\t\t{\n\t\t\tconst columns = this.getParam('DEFAULT_COLUMNS');\n\n\t\t\treturn Boolean(name) && name in columns ? columns[name] : null;\n\t\t},\n\n\t\tadjustIndex(index)\n\t\t{\n\t\t\tconst fixedCells = this.getAllRows()[0]\n\t\t\t\t.querySelectorAll('.main-grid-fixed-column').length;\n\n\t\t\treturn (index + fixedCells);\n\t\t},\n\n\t\tgetColumnByIndex(index)\n\t\t{\n\t\t\tindex = this.adjustIndex(index);\n\n\t\t\treturn this.getAllRows()\n\t\t\t\t.reduce((accumulator, row) => {\n\t\t\t\t\tif (!row.classList.contains('main-grid-row-custom') && !row.classList.contains('main-grid-row-empty'))\n\t\t\t\t\t{\n\t\t\t\t\t\taccumulator.push(row.children[index]);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn accumulator;\n\t\t\t\t}, []);\n\t\t},\n\n\t\tgetAllRows()\n\t\t{\n\t\t\tconst rows = [].slice.call(this.getTable().rows);\n\t\t\tconst fixedTable = this.getContainer().parentElement.querySelector('.main-grid-fixed-bar table');\n\n\t\t\tif (fixedTable)\n\t\t\t{\n\t\t\t\trows.push(fixedTable.rows[0]);\n\t\t\t}\n\n\t\t\treturn rows;\n\t\t},\n\n\t\thasEmptyRow(): boolean\n\t\t{\n\t\t\treturn this.getAllRows().some((row) => BX.hasClass(row, 'main-grid-row-empty'));\n\t\t},\n\n\t\tinitStickedColumns()\n\t\t{\n\t\t\tif (this.hasEmptyRow())\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t[].slice.call(this.getAllRows()[0].children).forEach(function(cell, index) {\n\t\t\t\tif (cell.classList.contains('main-grid-sticked-column'))\n\t\t\t\t{\n\t\t\t\t\tthis.stickyColumnByIndex(index);\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\tif (this.getParam('ALLOW_COLUMNS_RESIZE'))\n\t\t\t{\n\t\t\t\tthis.getResize().destroy();\n\t\t\t\tthis.getResize().init(this);\n\t\t\t}\n\t\t},\n\n\t\tsetStickedColumns(columns)\n\t\t{\n\t\t\tif (BX.type.isArray(columns))\n\t\t\t{\n\t\t\t\tconst options = this.getUserOptions();\n\t\t\t\tconst actions = [\n\t\t\t\t\t{\n\t\t\t\t\t\taction: options.getAction('GRID_SET_STICKED_COLUMNS'),\n\t\t\t\t\t\tstickedColumns: columns,\n\t\t\t\t\t},\n\t\t\t\t];\n\n\t\t\t\toptions.batch(actions, () => {\n\t\t\t\t\tthis.reloadTable();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tgetStickedColumns()\n\t\t{\n\t\t\tconst columns = [].slice.call(this.getHead().querySelectorAll('.main-grid-cell-head'));\n\n\t\t\treturn columns.reduce((acc, column) => {\n\t\t\t\tif (\n\t\t\t\t\tBX.hasClass(column, 'main-grid-fixed-column')\n\t\t\t\t\t&& !BX.hasClass(column, 'main-grid-cell-checkbox')\n\t\t\t\t\t&& !BX.hasClass(column, 'main-grid-cell-action')\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tacc.push(column.dataset.name);\n\t\t\t\t}\n\n\t\t\t\treturn acc;\n\t\t\t}, []);\n\t\t},\n\n\t\tstickyColumnByIndex(index)\n\t\t{\n\t\t\tconst column = this.getColumnByIndex(index);\n\t\t\tconst cellWidth = column[0].clientWidth;\n\n\t\t\tconst heights = column.map((cell) => {\n\t\t\t\treturn BX.height(cell);\n\t\t\t});\n\n\t\t\tcolumn.forEach(function(cell, cellIndex) {\n\t\t\t\tcell.style.minWidth = `${cellWidth}px`;\n\t\t\t\tcell.style.width = `${cellWidth}px`;\n\t\t\t\tcell.style.minHeight = `${heights[cellIndex]}px`;\n\n\t\t\t\tconst clone = BX.clone(cell);\n\n\t\t\t\tconst lastStickyCell = this.getLastStickyCellFromRowByIndex(cellIndex);\n\n\t\t\t\tif (lastStickyCell)\n\t\t\t\t{\n\t\t\t\t\tlet lastStickyCellLeft = parseInt(BX.style(lastStickyCell, 'left'));\n\t\t\t\t\tlet lastStickyCellWidth = parseInt(BX.style(lastStickyCell, 'width'));\n\n\t\t\t\t\tlastStickyCellLeft = isNaN(lastStickyCellLeft) ? 0 : lastStickyCellLeft;\n\t\t\t\t\tlastStickyCellWidth = isNaN(lastStickyCellWidth) ? 0 : lastStickyCellWidth;\n\n\t\t\t\t\tcell.style.left = `${lastStickyCellLeft + lastStickyCellWidth}px`;\n\t\t\t\t}\n\n\t\t\t\tcell.classList.add('main-grid-fixed-column');\n\t\t\t\tcell.classList.add('main-grid-cell-static');\n\t\t\t\tclone.classList.add('main-grid-cell-static');\n\n\t\t\t\tif (this.getColsSortable())\n\t\t\t\t{\n\t\t\t\t\tthis.getColsSortable().unregister(cell);\n\t\t\t\t\tthis.getColsSortable().unregister(clone);\n\t\t\t\t}\n\n\t\t\t\tBX.insertAfter(clone, cell);\n\t\t\t}, this);\n\n\t\t\tthis.adjustFadePosition(this.getFadeOffset());\n\t\t},\n\n\t\tadjustFixedColumnsPosition()\n\t\t{\n\t\t\tconst fixedCells = this.getAllRows()[0]\n\t\t\t\t.querySelectorAll('.main-grid-fixed-column').length;\n\n\t\t\tconst columnsPosition = [].slice.call(this.getAllRows()[0].children)\n\t\t\t\t.reduce((accumulator, cell, index, columns) => {\n\t\t\t\t\tlet cellLeft;\n\t\t\t\t\tlet cellWidth;\n\n\t\t\t\t\tif (columns[index - 1] && columns[index - 1].classList.contains('main-grid-fixed-column'))\n\t\t\t\t\t{\n\t\t\t\t\t\tcellLeft = parseInt(BX.style(columns[index - 1], 'left'));\n\t\t\t\t\t\tcellWidth = parseInt(BX.style(columns[index - 1], 'width'));\n\n\t\t\t\t\t\tcellLeft = isNaN(cellLeft) ? 0 : cellLeft;\n\t\t\t\t\t\tcellWidth = isNaN(cellWidth) ? 0 : cellWidth;\n\n\t\t\t\t\t\taccumulator.push({ index: index + 1, left: (cellLeft + cellWidth) });\n\t\t\t\t\t}\n\n\t\t\t\t\treturn accumulator;\n\t\t\t\t}, []);\n\n\t\t\tcolumnsPosition\n\t\t\t\t.forEach(function(item) {\n\t\t\t\t\tconst column = this.getColumnByIndex(item.index - fixedCells);\n\n\t\t\t\t\tcolumn.forEach((cell) => {\n\t\t\t\t\t\tif (item.index !== columnsPosition[columnsPosition.length - 1].index)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcell.style.left = `${item.left}px`;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}, this);\n\n\t\t\tthis.getAllRows()\n\t\t\t\t.forEach((row) => {\n\t\t\t\t\tconst height = BX.height(row);\n\t\t\t\t\tconst cells = [].slice.call(row.children);\n\n\t\t\t\t\tcells.forEach((cell) => {\n\t\t\t\t\t\tcell.style.minHeight = `${height}px`;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t},\n\n\t\tgetLastStickyCellFromRowByIndex(index)\n\t\t{\n\t\t\treturn [].slice.call(this.getAllRows()[index].children)\n\t\t\t\t.reduceRight((accumulator, cell) => {\n\t\t\t\t\tif (!accumulator && cell.classList.contains('main-grid-fixed-column'))\n\t\t\t\t\t{\n\t\t\t\t\t\taccumulator = cell;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn accumulator;\n\t\t\t\t}, null);\n\t\t},\n\n\t\tgetFadeOffset()\n\t\t{\n\t\t\tlet fadeOffset = 0;\n\t\t\tconst lastStickyCell = this.getLastStickyCellFromRowByIndex(0);\n\n\t\t\tif (lastStickyCell)\n\t\t\t{\n\t\t\t\tlet lastStickyCellLeft = parseInt(BX.style(lastStickyCell, 'left'));\n\t\t\t\tlet lastStickyCellWidth = lastStickyCell.offsetWidth;\n\n\t\t\t\tlastStickyCellLeft = isNaN(lastStickyCellLeft) ? 0 : lastStickyCellLeft;\n\t\t\t\tlastStickyCellWidth = isNaN(lastStickyCellWidth) ? 0 : lastStickyCellWidth;\n\n\t\t\t\tfadeOffset = lastStickyCellLeft + lastStickyCellWidth;\n\t\t\t}\n\n\t\t\treturn fadeOffset;\n\t\t},\n\n\t\tadjustFadePosition(offset)\n\t\t{\n\t\t\tconst earLeft = this.getFader().getEarLeft();\n\t\t\tconst shadowLeft = this.getFader().getShadowLeft();\n\n\t\t\tearLeft.style.left = `${offset}px`;\n\t\t\tshadowLeft.style.left = `${offset}px`;\n\t\t},\n\n\t\t/**\n\t\t * @param {string|object} column\n\t\t */\n\t\tsortByColumn(column)\n\t\t{\n\t\t\tlet headerCell = null;\n\t\t\tlet header = null;\n\n\t\t\tif (BX.type.isPlainObject(column))\n\t\t\t{\n\t\t\t\theader = column;\n\t\t\t\theader.sort_url = this.prepareSortUrl(column);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\theaderCell = this.getColumnHeaderCellByName(column);\n\t\t\t\theader = this.getColumnByName(column);\n\t\t\t}\n\n\t\t\tif (header && (Boolean(headerCell) && !BX.hasClass(headerCell, this.settings.get('classLoad')) || !headerCell))\n\t\t\t{\n\t\t\t\tBoolean(headerCell) && BX.addClass(headerCell, this.settings.get('classLoad'));\n\t\t\t\tthis.tableFade();\n\n\t\t\t\tconst self = this;\n\n\t\t\t\tthis.getUserOptions().setSort(header.sort_by, header.sort_order, () => {\n\t\t\t\t\tself.getData().request(header.sort_url, null, null, 'sort', function() {\n\t\t\t\t\t\tself.rows = null;\n\t\t\t\t\t\tself.getUpdater().updateHeadRows(this.getHeadRows());\n\t\t\t\t\t\tself.getUpdater().updateBodyRows(this.getBodyRows());\n\t\t\t\t\t\tself.getUpdater().updatePagination(this.getPagination());\n\t\t\t\t\t\tself.getUpdater().updateMoreButton(this.getMoreButton());\n\n\t\t\t\t\t\tself.bindOnRowEvents();\n\n\t\t\t\t\t\tself.bindOnMoreButtonEvents();\n\t\t\t\t\t\tself.bindOnClickPaginationLinks();\n\t\t\t\t\t\tself.bindOnCheckAll();\n\t\t\t\t\t\tself.updateCounterDisplayed();\n\t\t\t\t\t\tself.updateCounterSelected();\n\t\t\t\t\t\tself.disableActionsPanel();\n\t\t\t\t\t\tself.disableForAllCounter();\n\n\t\t\t\t\t\tif (self.getParam('SHOW_ACTION_PANEL'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.getActionsPanel().resetForAllCheckbox();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (self.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.rowsSortable.reinit();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (self.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.colsSortable.reinit();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tBX.onCustomEvent(window, 'BX.Main.grid:sort', [header, self]);\n\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::updated', [self]);\n\t\t\t\t\t\tself.tableUnfade();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tprepareSortUrl(header)\n\t\t{\n\t\t\tlet url = window.location.toString();\n\n\t\t\tif ('sort_by' in header)\n\t\t\t{\n\t\t\t\turl = BX.util.add_url_param(url, { by: header.sort_by });\n\t\t\t}\n\n\t\t\tif ('sort_order' in header)\n\t\t\t{\n\t\t\t\turl = BX.util.add_url_param(url, { order: header.sort_order });\n\t\t\t}\n\n\t\t\treturn url;\n\t\t},\n\n\t\t_clickOnSortableHeader(header, event)\n\t\t{\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.sortByColumn(BX.data(header, 'name'));\n\t\t},\n\n\t\tgetObserver()\n\t\t{\n\t\t\treturn BX.Grid.observer;\n\t\t},\n\n\t\tinitRowsDragAndDrop()\n\t\t{\n\t\t\tthis.rowsSortable = new BX.Grid.RowsSortable(this);\n\t\t},\n\n\t\tinitColsDragAndDrop()\n\t\t{\n\t\t\tthis.colsSortable = new BX.Grid.ColsSortable(this);\n\t\t},\n\n\t\t/**\n\t\t * @return {BX.Grid.RowsSortable}\n\t\t */\n\t\tgetRowsSortable()\n\t\t{\n\t\t\treturn this.rowsSortable;\n\t\t},\n\n\t\t/**\n\t\t * @return {BX.Grid.ColsSortable}\n\t\t */\n\t\tgetColsSortable()\n\t\t{\n\t\t\treturn this.colsSortable;\n\t\t},\n\n\t\tgetUserOptionsHandlerUrl()\n\t\t{\n\t\t\treturn this.userOptionsHandlerUrl || '';\n\t\t},\n\n\t\t/**\n\t\t * @return {BX.Grid.UserOptions}\n\t\t */\n\t\tgetUserOptions()\n\t\t{\n\t\t\treturn this.userOptions;\n\t\t},\n\n\t\tgetCheckAllCheckboxes()\n\t\t{\n\t\t\tconst checkAllNodes = BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classCheckAllCheckboxes'));\n\n\t\t\treturn checkAllNodes.map((current) => {\n\t\t\t\treturn new BX.Grid.Element(current);\n\t\t\t});\n\t\t},\n\n\t\tselectAllCheckAllCheckboxes()\n\t\t{\n\t\t\tthis.getCheckAllCheckboxes().forEach((current) => {\n\t\t\t\tcurrent.getNode().checked = true;\n\t\t\t});\n\t\t},\n\n\t\tunselectAllCheckAllCheckboxes()\n\t\t{\n\t\t\tthis.getCheckAllCheckboxes().forEach((current) => {\n\t\t\t\tcurrent.getNode().checked = false;\n\t\t\t});\n\t\t},\n\n\t\tadjustCheckAllCheckboxes()\n\t\t{\n\t\t\tconst total = this.getRows().getBodyChild().filter((row) => {\n\t\t\t\treturn row.isShown() && Boolean(row.getCheckbox());\n\t\t\t}).length;\n\n\t\t\tconst selected = this.getRows().getSelected().filter((row) => {\n\t\t\t\treturn row.isShown();\n\t\t\t}).length;\n\n\t\t\tif (total > 0 && selected > 0 && total === selected)\n\t\t\t{\n\t\t\t\tthis.selectAllCheckAllCheckboxes();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.unselectAllCheckAllCheckboxes();\n\t\t\t}\n\n\t\t\tif (selected > 0 && selected < total)\n\t\t\t{\n\t\t\t\tthis.indeterminateCheckAllCheckboxes();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.determinateCheckAllCheckboxes();\n\t\t\t}\n\t\t},\n\n\t\tbindOnCheckAll()\n\t\t{\n\t\t\tconst self = this;\n\n\t\t\tthis.getCheckAllCheckboxes().forEach((current) => {\n\t\t\t\tcurrent.getObserver().add(\n\t\t\t\t\tcurrent.getNode(),\n\t\t\t\t\t'change',\n\t\t\t\t\tself._clickOnCheckAll,\n\t\t\t\t\tself,\n\t\t\t\t);\n\t\t\t});\n\t\t},\n\n\t\t_clickOnCheckAll(event)\n\t\t{\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.toggleSelectionAll();\n\t\t\tthis.determinateCheckAllCheckboxes();\n\t\t},\n\n\t\ttoggleSelectionAll()\n\t\t{\n\t\t\tif (!this.getRows().isAllSelected()\n\t\t\t\t&& (this.lastRowAction === 'select' || !this.lastRowAction))\n\t\t\t{\n\t\t\t\tthis.getRows().selectAll();\n\t\t\t\tthis.selectAllCheckAllCheckboxes();\n\t\t\t\tthis.enableActionsPanel();\n\t\t\t\tBX.onCustomEvent(window, 'Grid::allRowsSelected', [this]);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.getRows().unselectAll();\n\t\t\t\tthis.unselectAllCheckAllCheckboxes();\n\t\t\t\tthis.disableActionsPanel();\n\t\t\t\tBX.onCustomEvent(window, 'Grid::allRowsUnselected', [this]);\n\t\t\t}\n\n\t\t\tdelete this.lastRowAction;\n\n\t\t\tthis.updateCounterSelected();\n\t\t},\n\n\t\tbindOnClickPaginationLinks()\n\t\t{\n\t\t\tconst self = this;\n\n\t\t\tthis.getPagination().getLinks().forEach((current) => {\n\t\t\t\tcurrent.getObserver().add(\n\t\t\t\t\tcurrent.getNode(),\n\t\t\t\t\t'click',\n\t\t\t\t\tself._clickOnPaginationLink,\n\t\t\t\t\tself,\n\t\t\t\t);\n\t\t\t});\n\t\t},\n\n\t\tbindOnMoreButtonEvents()\n\t\t{\n\t\t\tconst self = this;\n\n\t\t\tthis.getMoreButton().getObserver().add(\n\t\t\t\tthis.getMoreButton().getNode(),\n\t\t\t\t'click',\n\t\t\t\tself._clickOnMoreButton,\n\t\t\t\tself,\n\t\t\t);\n\t\t},\n\n\t\tbindOnRowEvents()\n\t\t{\n\t\t\tconst observer = this.getObserver();\n\t\t\tconst showCheckboxes = this.getParam('SHOW_ROW_CHECKBOXES');\n\t\t\tconst enableCollapsibleRows = this.getParam('ENABLE_COLLAPSIBLE_ROWS');\n\n\t\t\tthis.getRows().getBodyChild().forEach(function(current) {\n\t\t\t\tshowCheckboxes && observer.add(current.getNode(), 'click', this._onClickOnRow, this);\n\t\t\t\tcurrent.getDefaultAction() && observer.add(current.getNode(), 'dblclick', this._onRowDblclick, this);\n\t\t\t\tcurrent.getActionsButton() && observer.add(current.getActionsButton(), 'click', this._clickOnRowActionsButton, this);\n\t\t\t\tenableCollapsibleRows && current.getCollapseButton() && observer.add(current.getCollapseButton(), 'click', this._onCollapseButtonClick, this);\n\t\t\t}, this);\n\t\t},\n\n\t\t_onCollapseButtonClick(event)\n\t\t{\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\n\t\t\tconst row = this.getRows().get(event.currentTarget);\n\t\t\trow.toggleChildRows();\n\n\t\t\tif (row.isCustom())\n\t\t\t{\n\t\t\t\tthis.getUserOptions().setCollapsedGroups(this.getRows().getIdsCollapsedGroups());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.getUserOptions().setExpandedRows(this.getRows().getIdsExpandedRows());\n\t\t\t}\n\n\t\t\tBX.fireEvent(document.body, 'click');\n\t\t},\n\n\t\t_clickOnRowActionsButton(event)\n\t\t{\n\t\t\tconst row = this.getRows().get(event.target);\n\t\t\tevent.preventDefault();\n\n\t\t\tif (row.actionsMenuIsShown())\n\t\t\t{\n\t\t\t\trow.closeActionsMenu();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\trow.showActionsMenu();\n\t\t\t}\n\t\t},\n\n\t\t_onRowDblclick(event)\n\t\t{\n\t\t\tevent.preventDefault();\n\t\t\tconst row = this.getRows().get(event.target);\n\t\t\tlet defaultJs = '';\n\n\t\t\tif (!row.isEdit())\n\t\t\t{\n\t\t\t\tclearTimeout(this.clickTimer);\n\t\t\t\tthis.clickPrevent = true;\n\n\t\t\t\ttry\n\t\t\t\t{\n\t\t\t\t\tdefaultJs = row.getDefaultAction();\n\t\t\t\t\teval(defaultJs);\n\t\t\t\t}\n\t\t\t\tcatch (err)\n\t\t\t\t{\n\t\t\t\t\tconsole.warn(err);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_onClickOnRow(event)\n\t\t{\n\t\t\tconst clickDelay = 50;\n\t\t\tconst selection = window.getSelection();\n\n\t\t\tif (event.target.nodeName === 'LABEL')\n\t\t\t{\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tif (event.shiftKey || selection.toString().length === 0)\n\t\t\t{\n\t\t\t\tif (event.shiftKey)\n\t\t\t\t{\n\t\t\t\t\tselection.removeAllRanges();\n\t\t\t\t}\n\n\t\t\t\tthis.clickTimer = setTimeout(BX.delegate(function() {\n\t\t\t\t\tif (!this.clickPrevent)\n\t\t\t\t\t{\n\t\t\t\t\t\tclickActions.apply(this, [event]);\n\t\t\t\t\t}\n\t\t\t\t\tthis.clickPrevent = false;\n\t\t\t\t}, this), clickDelay);\n\t\t\t}\n\n\t\t\tfunction clickActions(event)\n\t\t\t{\n\t\t\t\tlet rows; let row; let containsNotSelected; let min; let max; let\n\t\t\t\t\tcontentContainer;\n\t\t\t\tlet isPrevent = true;\n\n\t\t\t\tif (event.target.nodeName !== 'A' && event.target.nodeName !== 'INPUT')\n\t\t\t\t{\n\t\t\t\t\trow = this.getRows().get(event.target);\n\t\t\t\t\tif (row)\n\t\t\t\t\t{\n\t\t\t\t\t\tcontentContainer = row.getContentContainer(event.target);\n\n\t\t\t\t\t\tif (BX.type.isDomNode(contentContainer) && event.target.nodeName !== 'TD' && event.target !== contentContainer)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tisPrevent = BX.data(contentContainer, 'prevent-default') === 'true';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (isPrevent)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (row.getCheckbox())\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\trows = [];\n\n\t\t\t\t\t\t\t\tthis.currentIndex = 0;\n\n\t\t\t\t\t\t\t\tthis.getRows().getRows().forEach(function(currentRow, index) {\n\t\t\t\t\t\t\t\t\tif (currentRow === row)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tthis.currentIndex = index;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}, this);\n\n\t\t\t\t\t\t\t\tthis.lastIndex = this.lastIndex || this.currentIndex;\n\n\t\t\t\t\t\t\t\tif (event.shiftKey)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmin = Math.min(this.currentIndex, this.lastIndex);\n\t\t\t\t\t\t\t\t\tmax = Math.max(this.currentIndex, this.lastIndex);\n\n\t\t\t\t\t\t\t\t\twhile (min <= max)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\trows.push(this.getRows().getRows()[min]);\n\t\t\t\t\t\t\t\t\t\tmin++;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tcontainsNotSelected = rows.some((current) => {\n\t\t\t\t\t\t\t\t\t\treturn !current.isSelected();\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (containsNotSelected)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\trows.forEach((current) => {\n\t\t\t\t\t\t\t\t\t\t\tcurrent.select();\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tthis.lastRowAction = 'select';\n\t\t\t\t\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::selectRows', [rows, this]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\trows.forEach((current) => {\n\t\t\t\t\t\t\t\t\t\t\tcurrent.unselect();\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tthis.lastRowAction = 'unselect';\n\t\t\t\t\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::unselectRows', [rows, this]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\tif (row.isSelected())\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tthis.lastRowAction = 'unselect';\n\t\t\t\t\t\t\t\t\t\trow.unselect();\n\t\t\t\t\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::unselectRow', [row, this]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tthis.lastRowAction = 'select';\n\t\t\t\t\t\t\t\t\t\trow.select();\n\t\t\t\t\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::selectRow', [row, this]);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tthis.updateCounterSelected();\n\t\t\t\t\t\t\t\tthis.lastIndex = this.currentIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.adjustRows();\n\t\t\t\t\t\t\tthis.adjustCheckAllCheckboxes();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tadjustRows()\n\t\t{\n\t\t\tif (this.getRows().isSelected())\n\t\t\t{\n\t\t\t\tBX.onCustomEvent(window, 'Grid::thereSelectedRows', [this]);\n\t\t\t\tthis.enableActionsPanel();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.onCustomEvent(window, 'Grid::noSelectedRows', []);\n\t\t\t\tthis.disableActionsPanel();\n\t\t\t}\n\t\t},\n\n\t\tgetPagination()\n\t\t{\n\t\t\treturn new BX.Grid.Pagination(this);\n\t\t},\n\n\t\tgetState()\n\t\t{\n\t\t\treturn window.history.state;\n\t\t},\n\n\t\ttableFade()\n\t\t{\n\t\t\tBX.addClass(this.getTable(), this.settings.get('classTableFade'));\n\t\t\tthis.getLoader().show();\n\t\t\tBX.onCustomEvent('Grid::disabled', [this]);\n\t\t},\n\n\t\ttableUnfade()\n\t\t{\n\t\t\tBX.removeClass(this.getTable(), this.settings.get('classTableFade'));\n\t\t\tthis.getLoader().hide();\n\t\t\tBX.onCustomEvent('Grid::enabled', [this]);\n\t\t},\n\n\t\t_clickOnPaginationLink(event)\n\t\t{\n\t\t\tevent.preventDefault();\n\n\t\t\tconst self = this;\n\t\t\tconst link = this.getPagination().getLink(event.target);\n\n\t\t\tif (!link.isLoad())\n\t\t\t{\n\t\t\t\tthis.getUserOptions().resetExpandedRows();\n\n\t\t\t\tlink.load();\n\t\t\t\tthis.tableFade();\n\n\t\t\t\tthis.getData().request(link.getLink(), null, null, 'pagination', function() {\n\t\t\t\t\tself.rows = null;\n\t\t\t\t\tself.getUpdater().updateBodyRows(this.getBodyRows());\n\t\t\t\t\tself.getUpdater().updateHeadRows(this.getHeadRows());\n\t\t\t\t\tself.getUpdater().updateMoreButton(this.getMoreButton());\n\t\t\t\t\tself.getUpdater().updatePagination(this.getPagination());\n\n\t\t\t\t\tself.bindOnRowEvents();\n\t\t\t\t\tself.bindOnMoreButtonEvents();\n\t\t\t\t\tself.bindOnClickPaginationLinks();\n\t\t\t\t\tself.bindOnCheckAll();\n\t\t\t\t\tself.updateCounterDisplayed();\n\t\t\t\t\tself.updateCounterSelected();\n\t\t\t\t\tself.disableActionsPanel();\n\t\t\t\t\tself.disableForAllCounter();\n\n\t\t\t\t\tif (self.getParam('SHOW_ACTION_PANEL'))\n\t\t\t\t\t{\n\t\t\t\t\t\tself.getActionsPanel().resetForAllCheckbox();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t\t{\n\t\t\t\t\t\tself.rowsSortable.reinit();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t\t{\n\t\t\t\t\t\tself.colsSortable.reinit();\n\t\t\t\t\t}\n\n\t\t\t\t\tlink.unload();\n\t\t\t\t\tself.tableUnfade();\n\n\t\t\t\t\tBX.onCustomEvent(window, 'Grid::updated', [self]);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t_clickOnMoreButton(event)\n\t\t{\n\t\t\tevent.preventDefault();\n\n\t\t\tconst self = this;\n\t\t\tconst moreButton = this.getMoreButton();\n\n\t\t\tmoreButton.load();\n\n\t\t\tthis.getData().request(moreButton.getLink(), null, null, 'more', function() {\n\t\t\t\tself.getUpdater().appendBodyRows(this.getBodyRows());\n\t\t\t\tself.getUpdater().updateMoreButton(this.getMoreButton());\n\t\t\t\tself.getUpdater().updatePagination(this.getPagination());\n\n\t\t\t\tself.getRows().reset();\n\t\t\t\tself.bindOnRowEvents();\n\n\t\t\t\tself.bindOnMoreButtonEvents();\n\t\t\t\tself.bindOnClickPaginationLinks();\n\t\t\t\tself.bindOnCheckAll();\n\t\t\t\tself.updateCounterDisplayed();\n\t\t\t\tself.updateCounterSelected();\n\n\t\t\t\tif (self.getParam('ALLOW_PIN_HEADER'))\n\t\t\t\t{\n\t\t\t\t\tself.getPinHeader()._onGridUpdate();\n\t\t\t\t}\n\n\t\t\t\tif (self.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.rowsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tif (self.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.colsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tself.unselectAllCheckAllCheckboxes();\n\n\t\t\t\tBX.onCustomEvent(window, 'Grid::updated', [self]);\n\t\t\t});\n\t\t},\n\n\t\tgetAjaxId()\n\t\t{\n\t\t\treturn BX.data(\n\t\t\t\tthis.getContainer(),\n\t\t\t\tthis.settings.get('ajaxIdDataProp'),\n\t\t\t);\n\t\t},\n\n\t\tupdate(data, action)\n\t\t{\n\t\t\tlet newRows; let newHeadRows; let newNavPanel; let thisBody; let thisHead; let\n\t\t\t\tthisNavPanel;\n\n\t\t\tif (!BX.type.isNotEmptyString(data))\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthisBody = BX.Grid.Utils.getByTag(this.getTable(), 'tbody', true);\n\t\t\tthisHead = BX.Grid.Utils.getByTag(this.getTable(), 'thead', true);\n\t\t\tthisNavPanel = BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classNavPanel'), true);\n\n\t\t\tdata = BX.create('div', { html: data });\n\t\t\tnewHeadRows = BX.Grid.Utils.getByClass(data, this.settings.get('classHeadRow'));\n\t\t\tnewRows = BX.Grid.Utils.getByClass(data, this.settings.get('classDataRows'));\n\t\t\tnewNavPanel = BX.Grid.Utils.getByClass(data, this.settings.get('classNavPanel'), true);\n\n\t\t\tif (action === this.settings.get('updateActionMore'))\n\t\t\t{\n\t\t\t\tthis.getRows().addRows(newRows);\n\t\t\t\tthis.unselectAllCheckAllCheckboxes();\n\t\t\t}\n\n\t\t\tif (action === this.settings.get('updateActionPagination'))\n\t\t\t{\n\t\t\t\tBX.cleanNode(thisBody);\n\t\t\t\tthis.getRows().addRows(newRows);\n\t\t\t\tthis.unselectAllCheckAllCheckboxes();\n\t\t\t}\n\n\t\t\tif (action === this.settings.get('updateActionSort'))\n\t\t\t{\n\t\t\t\tBX.cleanNode(thisHead);\n\t\t\t\tBX.cleanNode(thisBody);\n\t\t\t\tthisHead.appendChild(newHeadRows[0]);\n\t\t\t\tthis.getRows().addRows(newRows);\n\t\t\t}\n\n\t\t\tthisNavPanel.innerHTML = newNavPanel.innerHTML;\n\n\t\t\tthis.bindOnRowEvents();\n\n\t\t\tthis.bindOnMoreButtonEvents();\n\t\t\tthis.bindOnClickPaginationLinks();\n\t\t\tthis.bindOnClickHeader();\n\t\t\tthis.bindOnCheckAll();\n\t\t\tthis.updateCounterDisplayed();\n\t\t\tthis.updateCounterSelected();\n\t\t\tthis.sortable.reinit();\n\t\t},\n\n\t\tgetCounterDisplayed()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classCounterDisplayed'));\n\t\t},\n\n\t\tgetCounterSelected()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classCounterSelected'));\n\t\t},\n\n\t\tupdateCounterDisplayed()\n\t\t{\n\t\t\tconst counterDisplayed = this.getCounterDisplayed();\n\t\t\tlet rows;\n\n\t\t\tif (BX.type.isArray(counterDisplayed))\n\t\t\t{\n\t\t\t\trows = this.getRows();\n\t\t\t\tcounterDisplayed.forEach((current) => {\n\t\t\t\t\tif (BX.type.isDomNode(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tcurrent.innerText = rows.getCountDisplayed();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tupdateCounterSelected()\n\t\t{\n\t\t\tconst counterSelected = this.getCounterSelected();\n\t\t\tlet rows;\n\n\t\t\tif (BX.type.isArray(counterSelected))\n\t\t\t{\n\t\t\t\trows = this.getRows();\n\t\t\t\tcounterSelected.forEach((current) => {\n\t\t\t\t\tif (BX.type.isDomNode(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tcurrent.innerText = rows.getCountSelected();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tgetContainerId()\n\t\t{\n\t\t\treturn this.containerId;\n\t\t},\n\n\t\tgetId()\n\t\t{\n\t\t\t// ID is equals to container Id\n\t\t\treturn this.containerId;\n\t\t},\n\n\t\tgetContainer()\n\t\t{\n\t\t\treturn BX(this.getContainerId());\n\t\t},\n\n\t\tgetCounter()\n\t\t{\n\t\t\tif (!this.counter)\n\t\t\t{\n\t\t\t\tthis.counter = BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classCounter'));\n\t\t\t}\n\n\t\t\treturn this.counter;\n\t\t},\n\n\t\tenableForAllCounter()\n\t\t{\n\t\t\tconst counter = this.getCounter();\n\n\t\t\tif (BX.type.isArray(counter))\n\t\t\t{\n\t\t\t\tcounter.forEach(function(current) {\n\t\t\t\t\tBX.addClass(current, this.settings.get('classForAllCounterEnabled'));\n\t\t\t\t}, this);\n\t\t\t}\n\t\t},\n\n\t\tdisableForAllCounter()\n\t\t{\n\t\t\tconst counter = this.getCounter();\n\n\t\t\tif (BX.type.isArray(counter))\n\t\t\t{\n\t\t\t\tcounter.forEach(function(current) {\n\t\t\t\t\tBX.removeClass(current, this.settings.get('classForAllCounterEnabled'));\n\t\t\t\t}, this);\n\t\t\t}\n\t\t},\n\n\t\tgetScrollContainer()\n\t\t{\n\t\t\tif (!this.scrollContainer)\n\t\t\t{\n\t\t\t\tthis.scrollContainer = BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classScrollContainer'), true);\n\t\t\t}\n\n\t\t\treturn this.scrollContainer;\n\t\t},\n\n\t\tgetWrapper()\n\t\t{\n\t\t\tif (!this.wrapper)\n\t\t\t{\n\t\t\t\tthis.wrapper = BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classWrapper'), true);\n\t\t\t}\n\n\t\t\treturn this.wrapper;\n\t\t},\n\n\t\tgetFadeContainer()\n\t\t{\n\t\t\tif (!this.fadeContainer)\n\t\t\t{\n\t\t\t\tthis.fadeContainer = BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classFadeContainer'), true);\n\t\t\t}\n\n\t\t\treturn this.fadeContainer;\n\t\t},\n\n\t\tgetTable()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classTable'), true);\n\t\t},\n\n\t\tgetHeaders()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getBySelector(this.getWrapper(), `.main-grid-header[data-relative=\"${this.getContainerId()}\"]`);\n\t\t},\n\n\t\tgetHead()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByTag(this.getContainer(), 'thead', true);\n\t\t},\n\n\t\tgetBody()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByTag(this.getContainer(), 'tbody', true);\n\t\t},\n\n\t\tgetFoot()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByTag(this.getContainer(), 'tfoot', true);\n\t\t},\n\n\t\t/**\n\t\t * @return {BX.Grid.Rows}\n\t\t */\n\t\tgetRows()\n\t\t{\n\t\t\tif (!(this.rows instanceof BX.Grid.Rows))\n\t\t\t{\n\t\t\t\tthis.rows = new BX.Grid.Rows(this);\n\t\t\t}\n\n\t\t\treturn this.rows;\n\t\t},\n\n\t\tgetMoreButton()\n\t\t{\n\t\t\tconst node = BX.Grid.Utils.getByClass(this.getContainer(), this.settings.get('classMoreButton'), true);\n\n\t\t\treturn new BX.Grid.Element(node, this);\n\t\t},\n\n\t\t/**\n\t\t * Gets loader instance\n\t\t * @return {BX.Grid.Loader}\n\t\t */\n\t\tgetLoader()\n\t\t{\n\t\t\tif (!(this.loader instanceof BX.Grid.Loader))\n\t\t\t{\n\t\t\t\tthis.loader = new BX.Grid.Loader(this);\n\t\t\t}\n\n\t\t\treturn this.loader;\n\t\t},\n\n\t\tblockSorting()\n\t\t{\n\t\t\tconst headerCells = BX.Grid.Utils.getByClass(\n\t\t\t\tthis.getContainer(),\n\t\t\t\tthis.settings.get('classHeadCell'),\n\t\t\t);\n\n\t\t\theaderCells.forEach(function(header) {\n\t\t\t\tif (this.isSortableHeader(header))\n\t\t\t\t{\n\t\t\t\t\tBX.removeClass(header, this.settings.get('classHeaderSortable'));\n\t\t\t\t\tBX.addClass(header, this.settings.get('classHeaderNoSortable'));\n\t\t\t\t}\n\t\t\t}, this);\n\t\t},\n\n\t\tunblockSorting()\n\t\t{\n\t\t\tconst headerCells = BX.Grid.Utils.getByClass(\n\t\t\t\tthis.getContainer(),\n\t\t\t\tthis.settings.get('classHeadCell'),\n\t\t\t);\n\n\t\t\theaderCells.forEach(function(header) {\n\t\t\t\tif (this.isNoSortableHeader(header) && header.dataset.sortBy)\n\t\t\t\t{\n\t\t\t\t\tBX.addClass(header, this.settings.get('classHeaderSortable'));\n\t\t\t\t\tBX.removeClass(header, this.settings.get('classHeaderNoSortable'));\n\t\t\t\t}\n\t\t\t}, this);\n\t\t},\n\n\t\tconfirmDialog(action, then, cancel)\n\t\t{\n\t\t\tlet dialog; let popupContainer; let applyButton; let\n\t\t\t\tcancelButton;\n\n\t\t\tif ('CONFIRM' in action && action.CONFIRM)\n\t\t\t{\n\t\t\t\taction.CONFIRM_MESSAGE = action.CONFIRM_MESSAGE || this.arParams.CONFIRM_MESSAGE;\n\t\t\t\taction.CONFIRM_APPLY_BUTTON = action.CONFIRM_APPLY_BUTTON || this.arParams.CONFIRM_APPLY;\n\t\t\t\taction.CONFIRM_CANCEL_BUTTON = action.CONFIRM_CANCEL_BUTTON || this.arParams.CONFIRM_CANCEL;\n\n\t\t\t\tdialog = new BX.PopupWindow(\n\t\t\t\t\t`${this.getContainerId()}-confirm-dialog`,\n\t\t\t\t\tnull,\n\t\t\t\t\t{\n\t\t\t\t\t\tcontent: `<div class=\"main-grid-confirm-content\">${action.CONFIRM_MESSAGE}</div>`,\n\t\t\t\t\t\ttitleBar: 'CONFIRM_TITLE' in action ? action.CONFIRM_TITLE : '',\n\t\t\t\t\t\tautoHide: false,\n\t\t\t\t\t\tzIndex: 9999,\n\t\t\t\t\t\toverlay: 0.4,\n\t\t\t\t\t\toffsetTop: -100,\n\t\t\t\t\t\tcloseIcon: false,\n\t\t\t\t\t\tcloseByEsc: true,\n\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\tonClose()\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.unbind(window, 'keydown', hotKey);\n\t\t\t\t\t\t\t\tdialog.destroy();\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttons: [\n\t\t\t\t\t\t\tnew BX.PopupWindowButton({\n\t\t\t\t\t\t\t\ttext: action.CONFIRM_APPLY_BUTTON,\n\t\t\t\t\t\t\t\tid: `${this.getContainerId()}-confirm-dialog-apply-button`,\n\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\tclick()\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tBX.type.isFunction(then) ? then() : null;\n\t\t\t\t\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\t\t\t\t\tthis.popupWindow.destroy();\n\t\t\t\t\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::confirmDialogApply', [this]);\n\t\t\t\t\t\t\t\t\t\tBX.unbind(window, 'keydown', hotKey);\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tnew BX.PopupWindowButtonLink({\n\t\t\t\t\t\t\t\ttext: action.CONFIRM_CANCEL_BUTTON,\n\t\t\t\t\t\t\t\tid: `${this.getContainerId()}-confirm-dialog-cancel-button`,\n\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\tclick()\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tBX.type.isFunction(cancel) ? cancel() : null;\n\t\t\t\t\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\t\t\t\t\tthis.popupWindow.destroy();\n\t\t\t\t\t\t\t\t\t\tBX.onCustomEvent(window, 'Grid::confirmDialogCancel', [this]);\n\t\t\t\t\t\t\t\t\t\tBX.unbind(window, 'keydown', hotKey);\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tif (!dialog.isShown())\n\t\t\t\t{\n\t\t\t\t\tdialog.show();\n\t\t\t\t\tpopupContainer = dialog.popupContainer;\n\t\t\t\t\tBX.removeClass(popupContainer, this.settings.get('classCloseAnimation'));\n\t\t\t\t\tBX.addClass(popupContainer, this.settings.get('classShowAnimation'));\n\t\t\t\t\tapplyButton = BX(`${this.getContainerId()}-confirm-dialog-apply-button`);\n\t\t\t\t\tcancelButton = BX(`${this.getContainerId()}-confirm-dialog-cancel-button`);\n\n\t\t\t\t\tBX.bind(window, 'keydown', hotKey);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.type.isFunction(then) ? then() : null;\n\t\t\t}\n\n\t\t\tfunction hotKey(event)\n\t\t\t{\n\t\t\t\tif (event.code === 'Enter')\n\t\t\t\t{\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tBX.fireEvent(applyButton, 'click');\n\t\t\t\t}\n\n\t\t\t\tif (event.code === 'Escape')\n\t\t\t\t{\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tBX.fireEvent(cancelButton, 'click');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tgetCurrentPage()\n\t\t{\n\t\t\tconst currentPage = parseInt(this.arParams.CURRENT_PAGE);\n\t\t\tif (BX.Type.isNumber(currentPage))\n\t\t\t{\n\t\t\t\treturn currentPage;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t * @return {Element | any}\n\t\t */\n\t\tgetEmptyStub()\n\t\t{\n\t\t\treturn this.getTable().querySelector('.main-grid-row-empty');\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tshowEmptyStub()\n\t\t{\n\t\t\tconst stub = this.getEmptyStub();\n\t\t\tif (stub)\n\t\t\t{\n\t\t\t\tBX.Dom.attr(stub, 'hidden', null);\n\t\t\t\tBX.Dom.addClass(this.getContainer(), 'main-grid-empty-stub');\n\t\t\t\tif (this.getCurrentPage() <= 1)\n\t\t\t\t{\n\t\t\t\t\tthis.hidePanels();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\thideEmptyStub()\n\t\t{\n\t\t\tconst stub = this.getEmptyStub();\n\t\t\tif (stub)\n\t\t\t{\n\t\t\t\tBX.Dom.attr(stub, 'hidden', true);\n\t\t\t\tBX.Dom.removeClass(this.getContainer(), 'main-grid-empty-stub');\n\t\t\t\tBX.Dom.style(this.getTable(), 'min-height', null);\n\t\t\t\tthis.showPanels();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tshowPanels()\n\t\t{\n\t\t\tBX.Dom.show(this.getPanels());\n\t\t\tif (this.getPanels().offsetHeight > 0)\n\t\t\t{\n\t\t\t\tBX.Dom.removeClass(this.getContainer(), 'main-grid-empty-footer');\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\thidePanels()\n\t\t{\n\t\t\tBX.Dom.hide(this.getPanels());\n\t\t\tBX.Dom.addClass(this.getContainer(), 'main-grid-empty-footer');\n\t\t},\n\n\t\t/**\n\t\t * @return {BX.Grid.Row}\n\t\t */\n\t\tgetTemplateRow()\n\t\t{\n\t\t\tconst templateRow = BX.Runtime.clone(\n\t\t\t\tthis.getRows().getBodyChild(true).find((row) => {\n\t\t\t\t\treturn row.getId() === 'template_0';\n\t\t\t\t}),\n\t\t\t);\n\t\t\tconst cloned = BX.Runtime.clone(templateRow.getNode());\n\t\t\tBX.Dom.prepend(cloned, this.getBody());\n\n\t\t\tconst checkbox = cloned.querySelector('[type=\"checkbox\"]');\n\t\t\tif (checkbox)\n\t\t\t{\n\t\t\t\tBX.Dom.attr(checkbox, 'disabled', null);\n\t\t\t\tBX.Dom.attr(checkbox, 'data-disabled', null);\n\t\t\t}\n\n\t\t\treturn new BX.Grid.Row(this, cloned);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t * @return {{}[]}\n\t\t */\n\t\tgetRowEditorValue(withTemplate)\n\t\t{\n\t\t\tthis.rows = null;\n\n\t\t\treturn this.getRows().getSelected(withTemplate).map((row) => {\n\t\t\t\treturn row.getEditorValue();\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t * @return {HTMLElement|HTMLBodyElement}\n\t\t */\n\t\tgetRowEditorActionPanel()\n\t\t{\n\t\t\tif (!this.rowEditorActionPanel)\n\t\t\t{\n\t\t\t\tthis.rowEditorActionPanel = BX.Dom.create({\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tprops: { className: 'main-ui-grid-row-editor-actions-panel' },\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tBX.Dom.create({\n\t\t\t\t\t\t\ttag: 'span',\n\t\t\t\t\t\t\tprops: { className: 'ui-btn ui-btn-success' },\n\t\t\t\t\t\t\ttext: this.arParams.SAVE_BUTTON_LABEL,\n\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\tclick: this.saveRows.bind(this),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tBX.Dom.create({\n\t\t\t\t\t\t\ttag: 'span',\n\t\t\t\t\t\t\tprops: { className: 'ui-btn ui-btn-link' },\n\t\t\t\t\t\t\ttext: this.arParams.CANCEL_BUTTON_LABEL,\n\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\tclick: this.hideRowsEditor.bind(this),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}),\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn this.rowEditorActionPanel;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tshowRowEditorActionsPanel()\n\t\t{\n\t\t\tconst panel = this.getRowEditorActionPanel();\n\t\t\tBX.Dom.append(panel, this.actionPanel.getPanel());\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\thideRowEditorActionsPanel()\n\t\t{\n\t\t\tBX.Dom.remove(this.getRowEditorActionPanel());\n\t\t},\n\n\t\t/**\n\t\t * @return {BX.Grid.Row}\n\t\t */\n\t\tprependRowEditor()\n\t\t{\n\t\t\treturn this.addRowEditor('prepend');\n\t\t},\n\n\t\t/**\n\t\t * @return {BX.Grid.Row}\n\t\t */\n\t\tappendRowEditor()\n\t\t{\n\t\t\treturn this.addRowEditor('append');\n\t\t},\n\n\t\t/**\n\t\t * @return {BX.Grid.Row}\n\t\t */\n\t\taddRowEditor(direction = 'prepend')\n\t\t{\n\t\t\tBX.Dom.style(this.getTable(), 'min-height', null);\n\t\t\tconst templateRow = this.getTemplateRow();\n\t\t\tthis.editableRows.push(templateRow);\n\n\t\t\tif (direction === 'prepend')\n\t\t\t{\n\t\t\t\ttemplateRow.prependTo(this.getBody());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\ttemplateRow.appendTo(this.getBody());\n\t\t\t}\n\n\t\t\ttemplateRow.show();\n\t\t\ttemplateRow.select();\n\t\t\ttemplateRow.edit();\n\n\t\t\tthis.getRows().reset();\n\n\t\t\tif (this.getParam('ALLOW_ROWS_SORT'))\n\t\t\t{\n\t\t\t\tthis.rowsSortable.reinit();\n\t\t\t}\n\n\t\t\tif (this.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t{\n\t\t\t\tthis.colsSortable.reinit();\n\t\t\t}\n\n\t\t\tthis.hideEmptyStub();\n\n\t\t\treturn templateRow;\n\t\t},\n\n\t\thideRowsEditor()\n\t\t{\n\t\t\tthis.editableRows.forEach((row) => {\n\t\t\t\tBX.Dom.remove(row.getNode());\n\t\t\t});\n\t\t\tthis.editableRows = [];\n\t\t},\n\n\t\tsaveRows()\n\t\t{\n\t\t\tconst value = this.getRowEditorValue(true);\n\n\t\t\tthis.emitAsync('onAddRowsAsync', { rows: value })\n\t\t\t\t.then((result) => {\n\t\t\t\t\tresult.forEach((rowData, rowIndex) => {\n\t\t\t\t\t\tconst row = this.editableRows[rowIndex];\n\t\t\t\t\t\tif (row)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\trow.editCancel();\n\t\t\t\t\t\t\trow.unselect();\n\t\t\t\t\t\t\trow.makeCountable();\n\n\t\t\t\t\t\t\trow.setId(rowData.id);\n\t\t\t\t\t\t\trow.setActions(rowData.actions);\n\t\t\t\t\t\t\trow.setCellsContent(rowData.columns);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.bindOnRowEvents();\n\t\t\t\t\tthis.updateCounterDisplayed();\n\t\t\t\t\tthis.updateCounterSelected();\n\n\t\t\t\t\tthis.editableRows = [];\n\t\t\t\t});\n\t\t},\n\n\t\tgetRealtime(): BX.Grid.Realtime\n\t\t{\n\t\t\treturn this.cache.remember('realtime', () => {\n\t\t\t\treturn new BX.Grid.Realtime({\n\t\t\t\t\tgrid: this,\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * Updates grid\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.Updater = function(parent)\n\t{\n\t\tthis.parent = parent;\n\t};\n\n\t/**\n\t * Gets parent object\n\t * @return {?BX.Main.grid}\n\t */\n\tBX.Grid.Updater.prototype.getParent = function()\n\t{\n\t\treturn this.parent;\n\t};\n\n\t/**\n\t * Updates head rows\n\t * @param {?HTMLTableRowElement[]} rows\n\t */\n\tBX.Grid.Updater.prototype.updateHeadRows = function(rows)\n\t{\n\t\tlet headers;\n\n\t\tif (BX.type.isArray(rows) && rows.length > 0)\n\t\t{\n\t\t\theaders = this.getParent().getHeaders();\n\t\t\theaders.forEach((header) => {\n\t\t\t\theader = BX.cleanNode(header);\n\t\t\t\trows.forEach((row) => {\n\t\t\t\t\tif (BX.type.isDomNode(row))\n\t\t\t\t\t{\n\t\t\t\t\t\theader.appendChild(BX.clone(row));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n\t * Appends head rows\n\t * @param {?HTMLTableRowElement[]} rows\n\t */\n\tBX.Grid.Updater.prototype.appendHeadRows = function(rows)\n\t{\n\t\tlet headers;\n\n\t\tif (BX.type.isArray(rows) && rows.length > 0)\n\t\t{\n\t\t\theaders = this.getParent().getHeaders();\n\n\t\t\theaders.forEach((header) => {\n\t\t\t\trows.forEach((row) => {\n\t\t\t\t\tif (BX.type.isDomNode(row))\n\t\t\t\t\t{\n\t\t\t\t\t\theader.appendChild(BX.clone(row));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n\t * Prepends head rows\n\t * @param {?HTMLTableRowElement[]} rows\n\t */\n\tBX.Grid.Updater.prototype.prependHeadRows = function(rows)\n\t{\n\t\tlet headers;\n\n\t\tif (BX.type.isArray(rows) && rows.length > 0)\n\t\t{\n\t\t\theaders = this.getParent().getHeaders();\n\n\t\t\theaders.forEach((header) => {\n\t\t\t\theader = BX.cleanNode(header);\n\t\t\t\trows.forEach((row) => {\n\t\t\t\t\tif (BX.type.isDomNode(row))\n\t\t\t\t\t{\n\t\t\t\t\t\theader.prepend(BX.clone(row));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n\t * Updates body row by row id\n\t * @param {?string|number} id\n\t * @param {HTMLTableRowElement} row\n\t */\n\tBX.Grid.Updater.prototype.updateBodyRowById = function(id, row)\n\t{\n\t\tif ((BX.type.isNumber(id) || BX.type.isNotEmptyString(id)) && BX.type.isDomNode(row))\n\t\t{\n\t\t\tconst currentRow = this.getParent().getRows().getById(id);\n\n\t\t\tif (currentRow)\n\t\t\t{\n\t\t\t\tconst currentNode = currentRow.getNode();\n\t\t\t\tBX.insertAfter(row, currentNode);\n\t\t\t\tBX.remove(currentNode);\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * Updates all body rows.\n\t * @param {?HTMLTableRowElement[]} rows\n\t */\n\tBX.Grid.Updater.prototype.updateBodyRows = function(rows)\n\t{\n\t\tif (BX.type.isArray(rows))\n\t\t{\n\t\t\tconst body = this.getParent().getBody();\n\t\t\tbody.innerHTML = '';\n\n\t\t\trows.forEach((current) => {\n\t\t\t\tBoolean(current) && body.appendChild(current);\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n\t * Appends body rows.\n\t * @param {?HTMLTableRowElement[]} rows\n\t */\n\tBX.Grid.Updater.prototype.appendBodyRows = function(rows)\n\t{\n\t\tlet body;\n\n\t\tif (BX.type.isArray(rows))\n\t\t{\n\t\t\tbody = this.getParent().getBody();\n\t\t\trows.forEach((current) => {\n\t\t\t\tif (BX.type.isDomNode(current))\n\t\t\t\t{\n\t\t\t\t\tbody.appendChild(current);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n\t * Prepends body rows\n\t * @param {?HTMLTableRowElement[]} rows\n\t */\n\tBX.Grid.Updater.prototype.prependBodyRows = function(rows)\n\t{\n\t\tlet body;\n\n\t\tif (BX.type.isArray(rows))\n\t\t{\n\t\t\tbody = this.getParent().getBody();\n\t\t\trows.forEach((current) => {\n\t\t\t\tif (BX.type.isDomNode(current))\n\t\t\t\t{\n\t\t\t\t\tBX.prepend(body, current);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n\t * Updates table footer rows.\n\t * @param {?HTMLTableRowElement[]} rows\n\t */\n\tBX.Grid.Updater.prototype.updateFootRows = function(rows)\n\t{\n\t\tlet foot;\n\n\t\tif (BX.type.isArray(rows))\n\t\t{\n\t\t\tfoot = BX.cleanNode(this.getParent().getFoot());\n\t\t\trows.forEach((current) => {\n\t\t\t\tif (BX.type.isDomNode(current))\n\t\t\t\t{\n\t\t\t\t\tfoot.appendChild(current);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n\t * Updates total rows counter\n\t * @param {?HTMLElement} counter\n\t */\n\tBX.Grid.Updater.prototype.updateCounterTotal = function(counter)\n\t{\n\t\tlet counterCell;\n\n\t\tif (BX.type.isDomNode(counter))\n\t\t{\n\t\t\tcounterCell = BX.cleanNode(this.getParent().getCounterTotal());\n\t\t\tcounterCell.appendChild(counter);\n\t\t}\n\t};\n\n\t/**\n\t * Updates grid pagination\n\t * @param {?HTMLElement} pagination\n\t */\n\tBX.Grid.Updater.prototype.updatePagination = function(pagination)\n\t{\n\t\tconst paginationCell = this.getParent().getPagination().getContainer();\n\n\t\tif (paginationCell)\n\t\t{\n\t\t\tpaginationCell.innerHTML = '';\n\n\t\t\tif (BX.type.isDomNode(pagination))\n\t\t\t{\n\t\t\t\tpaginationCell.appendChild(pagination);\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * Updates more button\n\t * @param {?HTMLElement} button\n\t */\n\tBX.Grid.Updater.prototype.updateMoreButton = function(button)\n\t{\n\t\tif (BX.type.isDomNode(button))\n\t\t{\n\t\t\tconst buttonParent = BX.Grid.Utils.closestParent(this.getParent().getMoreButton().getNode());\n\t\t\tbuttonParent.innerHTML = '';\n\t\t\tbuttonParent.appendChild(button);\n\t\t}\n\t};\n\n\t/**\n\t * Updates group actions panel\n\t * @param {HTMLElement} panel\n\t */\n\tBX.Grid.Updater.prototype.updateGroupActions = function(panel)\n\t{\n\t\tconst GroupActions = this.parent.getActionsPanel();\n\n\t\tif (Boolean(GroupActions) && BX.type.isDomNode(panel))\n\t\t{\n\t\t\tconst panelNode = GroupActions.getPanel();\n\n\t\t\tif (BX.type.isDomNode(panelNode))\n\t\t\t{\n\t\t\t\tpanelNode.innerHTML = '';\n\n\t\t\t\tconst panelChild = BX.firstChild(panel);\n\n\t\t\t\tif (BX.type.isDomNode(panelChild))\n\t\t\t\t{\n\t\t\t\t\tpanelNode.appendChild(panelChild);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * Updates a grid container\n\t * @param {?HTMLElement} container\n\t */\n\tBX.Grid.Updater.prototype.updateContainer = function(container)\n\t{\n\t\tif (BX.Type.isDomNode(container))\n\t\t{\n\t\t\tthis.getParent().getContainer().className = container.className;\n\t\t}\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.Reflection.namespace('BX.Grid');\n\n\tBX.Grid.ImageField = function(parent, options) {\n\t\tthis.parent = parent;\n\t\tthis.options = options;\n\t\tthis.cache = new BX.Cache.MemoryCache();\n\t};\n\n\tBX.Grid.ImageField.prototype = {\n\t\tgetPreview()\n\t\t{\n\t\t\treturn this.cache.remember('preview', () => {\n\t\t\t\treturn BX.create('img', {\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: 'main-grid-image-editor-preview',\n\t\t\t\t\t},\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tsrc: this.options.VALUE,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\tgetFileInput()\n\t\t{\n\t\t\treturn this.cache.remember('fileInput', () => {\n\t\t\t\treturn BX.create('input', {\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: 'main-grid-image-editor-file-input',\n\t\t\t\t\t},\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\ttype: 'file',\n\t\t\t\t\t\taccept: 'image/*',\n\t\t\t\t\t\tname: this.options.NAME,\n\t\t\t\t\t},\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tchange: function(event) {\n\t\t\t\t\t\t\tconst reader = new FileReader();\n\t\t\t\t\t\t\treader.onload = function(event) {\n\t\t\t\t\t\t\t\tthis.getPreview().src = event.currentTarget.result;\n\t\t\t\t\t\t\t}.bind(this);\n\n\t\t\t\t\t\t\treader.readAsDataURL(event.target.files[0]);\n\n\t\t\t\t\t\t\tBX.Dom.remove(this.getFakeField());\n\t\t\t\t\t\t\tBX.Dom.append(this.getFileInput(), this.getLayout());\n\t\t\t\t\t\t\tBX.Dom.removeClass(this.getRemoveButton(), 'ui-btn-disabled');\n\t\t\t\t\t\t\tBX.Dom.style(this.getPreview(), null);\n\t\t\t\t\t\t}.bind(this),\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\tgetUploadButton()\n\t\t{\n\t\t\treturn this.cache.remember('uploadButton', () => {\n\t\t\t\treturn BX.create('button', {\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: 'ui-btn ui-btn-xs',\n\t\t\t\t\t},\n\t\t\t\t\ttext: this.parent.getParam('MAIN_UI_GRID_IMAGE_EDITOR_BUTTON_EDIT'),\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tclick: function(event) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tthis.getFileInput().click();\n\t\t\t\t\t\t}.bind(this),\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\tgetRemoveButton()\n\t\t{\n\t\t\treturn this.cache.remember('removeButton', () => {\n\t\t\t\treturn BX.create('button', {\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: 'ui-btn ui-btn-xs ui-btn-danger',\n\t\t\t\t\t},\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tclick: function(event) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tBX.Dom.append(this.getFakeField(), this.getLayout());\n\t\t\t\t\t\t\tBX.Dom.remove(this.getFileInput());\n\t\t\t\t\t\t\tBX.Dom.addClass(this.getRemoveButton(), 'ui-btn-disabled');\n\t\t\t\t\t\t\tBX.Dom.style(this.getPreview(), {\n\t\t\t\t\t\t\t\topacity: 0.4,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}.bind(this),\n\t\t\t\t\t},\n\t\t\t\t\ttext: this.parent.getParam('MAIN_UI_GRID_IMAGE_EDITOR_BUTTON_REMOVE'),\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\tgetFakeField()\n\t\t{\n\t\t\treturn this.cache.remember('deleted', () => {\n\t\t\t\treturn BX.create('input', {\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: 'main-grid-image-editor-fake-file-input',\n\t\t\t\t\t},\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\t\tname: this.options.NAME,\n\t\t\t\t\t\tvalue: 'null',\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\tgetLayout()\n\t\t{\n\t\t\treturn this.cache.remember('layout', () => {\n\t\t\t\treturn BX.create('div', {\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: 'main-grid-image-editor main-grid-editor',\n\t\t\t\t\t},\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tname: this.options.NAME,\n\t\t\t\t\t},\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tBX.create('div', {\n\t\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\t\tclassName: 'main-grid-image-editor-left',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\tthis.getPreview(),\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tBX.create('div', {\n\t\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\t\tclassName: 'main-grid-image-editor-right',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\tthis.getUploadButton(),\n\t\t\t\t\t\t\t\tthis.getRemoveButton(),\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tthis.getFileInput(),\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\t};\n})();\n","import { Event } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\n\n(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.InlineEditor\n\t * @param {BX.Main.grid} parent\n\t * @param {Object} types\n\t * @constructor\n\t */\n\tBX.Grid.InlineEditor = function(parent, types)\n\t{\n\t\tthis.parent = null;\n\t\tthis.types = null;\n\t\tthis.isDropdownChangeEventSubscribed = false;\n\t\tthis.init(parent, types);\n\t};\n\n\tBX.Grid.InlineEditor.prototype = {\n\t\tinit(parent, types)\n\t\t{\n\t\t\tthis.parent = parent;\n\n\t\t\ttry\n\t\t\t{\n\t\t\t\tthis.types = eval(types);\n\t\t\t}\n\t\t\tcatch\n\t\t\t{\n\t\t\t\tthis.types = null;\n\t\t\t}\n\t\t},\n\n\t\tcreateContainer()\n\t\t{\n\t\t\treturn BX.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: this.parent.settings.get('classEditorContainer'),\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\n\t\tcreateTextarea(editObject, height)\n\t\t{\n\t\t\treturn BX.create('textarea', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: [\n\t\t\t\t\t\tthis.parent.settings.get('classEditor'),\n\t\t\t\t\t\tthis.parent.settings.get('classEditorTextarea'),\n\t\t\t\t\t].join(' '),\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\tname: editObject.NAME,\n\t\t\t\t\tstyle: `height:${height}px`,\n\t\t\t\t},\n\t\t\t\thtml: editObject.VALUE || '',\n\t\t\t});\n\t\t},\n\n\t\tcreateInput(editObject)\n\t\t{\n\t\t\tlet className = this.parent.settings.get('classEditorText');\n\t\t\tconst attrs =\t\t\t\t{\n\t\t\t\tvalue: (editObject.VALUE !== undefined && editObject.VALUE !== null) ? BX.util.htmlspecialcharsback(editObject.VALUE) : '',\n\t\t\t\tname: (editObject.NAME !== undefined && editObject.NAME !== null) ? editObject.NAME : '',\n\t\t\t};\n\n\t\t\tif (editObject.TYPE === this.types.CHECKBOX)\n\t\t\t{\n\t\t\t\tclassName = this.parent.settings.get('classEditorCheckbox');\n\t\t\t\tattrs.type = 'checkbox';\n\t\t\t\tattrs.checked = (attrs.value == 'Y');\n\t\t\t}\n\n\t\t\tif (editObject.TYPE === this.types.DATE)\n\t\t\t{\n\t\t\t\tclassName = [className, this.parent.settings.get('classEditorDate')].join(' ');\n\t\t\t}\n\n\t\t\tif (editObject.TYPE === this.types.NUMBER)\n\t\t\t{\n\t\t\t\tclassName = [className, this.parent.settings.get('classEditorNumber')].join(' ');\n\t\t\t\tattrs.type = 'number';\n\t\t\t}\n\n\t\t\tif (editObject.TYPE === this.types.RANGE)\n\t\t\t{\n\t\t\t\tclassName = [className, this.parent.settings.get('classEditorRange')].join(' ');\n\t\t\t\tattrs.type = 'range';\n\n\t\t\t\tif (BX.type.isPlainObject(editObject.DATA))\n\t\t\t\t{\n\t\t\t\t\tattrs.min = editObject.DATA.MIN || '0';\n\t\t\t\t\tattrs.max = editObject.DATA.MAX || 99999;\n\t\t\t\t\tattrs.step = editObject.DATA.STEP || '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (BX.type.isNotEmptyString(editObject.PLACEHOLDER))\n\t\t\t{\n\t\t\t\tattrs.placeholder = BX.util.htmlspecialchars(editObject.PLACEHOLDER);\n\t\t\t}\n\n\t\t\tif (editObject.DISABLED)\n\t\t\t{\n\t\t\t\tattrs.disabled = true;\n\t\t\t}\n\n\t\t\tclassName = [this.parent.settings.get('classEditor'), className].join(' ');\n\n\t\t\treturn BX.create('input', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName,\n\t\t\t\t\tid: `${editObject.NAME}_control`,\n\t\t\t\t},\n\t\t\t\tattrs,\n\t\t\t});\n\t\t},\n\n\t\tcreateCustom(editObject)\n\t\t{\n\t\t\tlet className = this.parent.settings.get('classEditorCustom');\n\t\t\tclassName = [this.parent.settings.get('classEditor'), className].join(' ');\n\n\t\t\treturn BX.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName,\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\t'data-name': editObject.NAME,\n\t\t\t\t},\n\t\t\t\thtml: editObject.VALUE || '',\n\t\t\t});\n\t\t},\n\n\t\tcreateMoney(editObject)\n\t\t{\n\t\t\tconst value = editObject.VALUE;\n\t\t\tconst fieldChildren = [];\n\n\t\t\tconst priceObject = value.PRICE || {};\n\t\t\tpriceObject.PLACEHOLDER = editObject.PLACEHOLDER || '';\n\t\t\tfieldChildren.push(this.createMoneyPrice(priceObject));\n\n\t\t\tif ((BX.type.isArray(editObject.CURRENCY_LIST) && editObject.CURRENCY_LIST.length > 0))\n\t\t\t{\n\t\t\t\tconst currencyObject = value.CURRENCY || {};\n\t\t\t\tcurrencyObject.DATA = {\n\t\t\t\t\tITEMS: editObject.CURRENCY_LIST,\n\t\t\t\t};\n\t\t\t\tcurrencyObject.HTML_ENTITY = editObject.HTML_ENTITY || false;\n\t\t\t\tfieldChildren.push(this.createMoneyCurrency(currencyObject));\n\t\t\t}\n\n\t\t\tif (BX.type.isNotEmptyObject(value.HIDDEN))\n\t\t\t{\n\t\t\t\tfor (const fieldName in value.HIDDEN)\n\t\t\t\t{\n\t\t\t\t\tif (value.HIDDEN.hasOwnProperty(fieldName) && BX.type.isNotEmptyString(fieldName))\n\t\t\t\t\t{\n\t\t\t\t\t\tconst hidden = this.createInput({\n\t\t\t\t\t\t\tNAME: fieldName,\n\t\t\t\t\t\t\tVALUE: value.HIDDEN[fieldName],\n\t\t\t\t\t\t\tTYPE: this.types.TEXT,\n\t\t\t\t\t\t});\n\t\t\t\t\t\thidden.type = 'hidden';\n\t\t\t\t\t\tfieldChildren.push(hidden);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet className = this.parent.settings.get('classEditorMoney');\n\t\t\tclassName = [this.parent.settings.get('classEditor'), className].join(' ');\n\t\t\tconst attrs = value.ATTRIBUTES || {};\n\t\t\tattrs['data-name'] = editObject.NAME;\n\n\t\t\treturn BX.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName,\n\t\t\t\t},\n\t\t\t\tattrs,\n\t\t\t\tchildren: fieldChildren,\n\t\t\t});\n\t\t},\n\n\t\tcreateMoneyPrice(priceObject)\n\t\t{\n\t\t\tpriceObject.TYPE = this.types.NUMBER;\n\n\t\t\tconst priceInput = this.createInput(priceObject);\n\t\t\tpriceInput.classList.add('main-grid-editor-money-price');\n\t\t\tEvent.bind(priceInput, 'change', (event) => {\n\t\t\t\tconst fieldNode = event.target.parentNode;\n\t\t\t\tconst currencyDropdown = fieldNode.querySelector('.main-grid-editor-money-currency');\n\t\t\t\tconst eventData = {\n\t\t\t\t\tfield: fieldNode,\n\t\t\t\t\tvalues: {\n\t\t\t\t\t\tprice: event.target.value || '',\n\t\t\t\t\t\tcurrency: currencyDropdown.dataset.value || '',\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tEventEmitter.emit('Grid.MoneyField::change', eventData);\n\t\t\t});\n\n\t\t\treturn priceInput;\n\t\t},\n\n\t\tcreateMoneyCurrency(currencyObject)\n\t\t{\n\t\t\tconst currencyBlock = this.createDropdown(currencyObject);\n\t\t\tcurrencyBlock.dataset.menuOffsetLeft = 15;\n\t\t\tcurrencyBlock.dataset.menuMaxHeight = 200;\n\t\t\tcurrencyBlock.classList.add('main-grid-editor-money-currency');\n\t\t\tif (currencyObject.DISABLED === true)\n\t\t\t{\n\t\t\t\tcurrencyBlock.classList.remove('main-dropdown');\n\t\t\t\tcurrencyBlock.dataset.disabled = true;\n\t\t\t}\n\n\t\t\tif (!this.isDropdownChangeEventSubscribed)\n\t\t\t{\n\t\t\t\tthis.isDropdownChangeEventSubscribed = true;\n\t\t\t\tEventEmitter.subscribe('Dropdown::change', (event) => {\n\t\t\t\t\tconst [controlId] = event.getData();\n\t\t\t\t\tif (!BX.type.isNotEmptyString(controlId))\n\t\t\t\t\t{\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst dropdownObject = BX.Main.dropdownManager.getById(controlId);\n\t\t\t\t\tif (dropdownObject.dropdown && dropdownObject.dropdown.classList.contains('main-grid-editor-money-currency'))\n\t\t\t\t\t{\n\t\t\t\t\t\tconst fieldNode = dropdownObject.dropdown.parentNode;\n\t\t\t\t\t\tconst priceField = fieldNode.querySelector('.main-grid-editor-money-price');\n\t\t\t\t\t\tconst eventData = {\n\t\t\t\t\t\t\tfield: fieldNode,\n\t\t\t\t\t\t\tvalues: {\n\t\t\t\t\t\t\t\tprice: priceField.value || '',\n\t\t\t\t\t\t\t\tcurrency: dropdownObject.dropdown.dataset.value || '',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tEventEmitter.emit('Grid.MoneyField::change', eventData);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn currencyBlock;\n\t\t},\n\n\t\tcreateOutput(editObject)\n\t\t{\n\t\t\treturn BX.create('output', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: this.parent.settings.get('classEditorOutput') || '',\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\tfor: `${editObject.NAME}_control`,\n\t\t\t\t},\n\t\t\t\ttext: editObject.VALUE || '',\n\t\t\t});\n\t\t},\n\n\t\tgetDropdownValueItemByValue(items, value)\n\t\t{\n\t\t\tconst preparedValue = String(value);\n\t\t\tconst result = items.filter((current) => {\n\t\t\t\treturn String(current.VALUE) === preparedValue;\n\t\t\t});\n\n\t\t\treturn result.length > 0 ? result[0] : items[0];\n\t\t},\n\n\t\tcreateDropdown(editObject)\n\t\t{\n\t\t\tconst valueItem = this.getDropdownValueItemByValue(\n\t\t\t\teditObject.DATA.ITEMS,\n\t\t\t\teditObject.VALUE,\n\t\t\t);\n\t\t\tconst isHtmlEntity = 'HTML_ENTITY' in editObject && editObject.HTML_ENTITY === true;\n\n\t\t\treturn BX.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: [\n\t\t\t\t\t\tthis.parent.settings.get('classEditor'),\n\t\t\t\t\t\t'main-dropdown main-grid-editor-dropdown',\n\t\t\t\t\t].join(' '),\n\t\t\t\t\tid: `${editObject.NAME}_control`,\n\t\t\t\t},\n\t\t\t\tattrs: {\n\t\t\t\t\tname: editObject.NAME,\n\t\t\t\t\ttabindex: '0',\n\t\t\t\t\t'data-items': JSON.stringify(editObject.DATA.ITEMS),\n\t\t\t\t\t'data-value': valueItem.VALUE,\n\t\t\t\t\t'data-html-entity': editObject.HTML_ENTITY,\n\t\t\t\t},\n\t\t\t\tchildren: [BX.create('span', {\n\t\t\t\t\tprops: { className: 'main-dropdown-inner' },\n\t\t\t\t\thtml: isHtmlEntity ? valueItem.NAME : null,\n\t\t\t\t\ttext: isHtmlEntity ? null : valueItem.NAME,\n\t\t\t\t})],\n\t\t\t});\n\t\t},\n\n\t\tcreateMultiselect(editObject)\n\t\t{\n\t\t\tconst selectedValues = [];\n\t\t\tconst squares = (() => {\n\t\t\t\tif (BX.Type.isArrayFilled(editObject.VALUE))\n\t\t\t\t{\n\t\t\t\t\treturn editObject.VALUE.map((value) => {\n\t\t\t\t\t\tconst item = this.getDropdownValueItemByValue(editObject.DATA.ITEMS, value);\n\t\t\t\t\t\tselectedValues.push(item);\n\t\t\t\t\t\tconst itemName = item.HTML ?? BX.util.htmlspecialchars(item.NAME);\n\t\t\t\t\t\tconst renderedItem = BX.Tag.render`\n\t\t\t\t\t\t\t<span class=\"main-ui-square\">\n\t\t\t\t\t\t\t\t<span class=\"main-ui-square-item\">${itemName}</span>\n\t\t\t\t\t\t\t\t<span class=\"main-ui-item-icon main-ui-square-delete\"></span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t`;\n\n\t\t\t\t\t\tBX.Dom.attr(renderedItem, 'data-item', item);\n\n\t\t\t\t\t\treturn renderedItem;\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t})();\n\t\t\tconst layout = BX.Tag.render`\n\t\t\t\t<div\n\t\t\t\t\tclass=\"main-grid-editor main-ui-control main-ui-multi-select\"\n\t\t\t\t\tname=\"${BX.Text.encode(editObject.NAME)}\"\n\t\t\t\t\tid=\"${`${BX.Text.encode(editObject.NAME)}_control`}\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"main-ui-square-container\">${squares}</span>\n\t\t\t\t\t<span class=\"main-ui-hide main-ui-control-value-delete\">\n\t\t\t\t\t\t<span class=\"main-ui-control-value-delete-item\"></span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class=\"main-ui-square-search\">\n\t\t\t\t\t\t<input type=\"text\" class=\"main-ui-square-search-item\">\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tBX.Dom.attr(\n\t\t\t\tlayout,\n\t\t\t\t{\n\t\t\t\t\t'data-params': { isMulti: true },\n\t\t\t\t\t'data-items': editObject.DATA.ITEMS,\n\t\t\t\t\t'data-value': selectedValues,\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn layout;\n\t\t},\n\n\t\tvalidateEditObject(editObject)\n\t\t{\n\t\t\treturn (\n\t\t\t\tBX.type.isPlainObject(editObject)\n\t\t\t\t&& ('TYPE' in editObject)\n\t\t\t\t&& ('NAME' in editObject)\n\t\t\t\t&& ('VALUE' in editObject)\n\t\t\t\t&& (!('items' in editObject) || (BX.type.isArray(editObject.items) && editObject.items.length))\n\t\t\t);\n\t\t},\n\n\t\tinitCalendar(event)\n\t\t{\n\t\t\tBX.calendar({ node: event.target, field: event.target });\n\t\t},\n\n\t\tbindOnRangeChange(control, output)\n\t\t{\n\t\t\tfunction bubble(control, output)\n\t\t\t{\n\t\t\t\tBX.html(output, control.value);\n\n\t\t\t\tconst value = parseFloat(control.value);\n\t\t\t\tconst max = parseFloat(control.getAttribute('max'));\n\t\t\t\tconst min = parseFloat(control.getAttribute('min'));\n\t\t\t\tconst thumbWidth = 16;\n\t\t\t\tconst range = (max - min);\n\t\t\t\tconst position = (((value - min) / range) * 100);\n\t\t\t\tconst positionOffset = (Math.round(thumbWidth * position / 100) - (thumbWidth / 2));\n\n\t\t\t\toutput.style.left = `${position}%`;\n\t\t\t\toutput.style.marginLeft = `${-positionOffset}px`;\n\t\t\t}\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tbubble(control, output);\n\t\t\t}, 0);\n\n\t\t\tBX.bind(control, 'input', () => {\n\t\t\t\tbubble(control, output);\n\t\t\t});\n\t\t},\n\n\t\tcreateImageEditor(editObject)\n\t\t{\n\t\t\treturn (new BX.Grid.ImageField(this.parent, editObject)).getLayout();\n\t\t},\n\n\t\tgetEditor(editObject, height)\n\t\t{\n\t\t\tlet control; let\n\t\t\t\tspan;\n\t\t\tconst container = this.createContainer();\n\n\t\t\tif (this.validateEditObject(editObject))\n\t\t\t{\n\t\t\t\teditObject.VALUE = editObject.VALUE === null ? '' : editObject.VALUE;\n\n\t\t\t\tswitch (editObject.TYPE)\n\t\t\t\t{\n\t\t\t\t\tcase this.types.TEXT: {\n\t\t\t\t\t\tcontrol = this.createInput(editObject);\n\t\t\t\t\t\tBX.bind(control, 'click', (event) => { event.stopPropagation();\n\t\t\t\t\t\t});\n\t\t\t\t\t\tBX.bind(control, 'keydown', BX.delegate(this._onControlKeydown, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.DATE: {\n\t\t\t\t\t\tcontrol = this.createInput(editObject);\n\t\t\t\t\t\tBX.bind(control, 'click', this.initCalendar);\n\t\t\t\t\t\tBX.bind(control, 'click', (event) => { event.stopPropagation();\n\t\t\t\t\t\t});\n\t\t\t\t\t\tBX.bind(control, 'keydown', BX.delegate(this._onControlKeydown, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.NUMBER: {\n\t\t\t\t\t\tcontrol = this.createInput(editObject);\n\t\t\t\t\t\tBX.bind(control, 'click', (event) => { event.stopPropagation();\n\t\t\t\t\t\t});\n\t\t\t\t\t\tBX.bind(control, 'keydown', BX.delegate(this._onControlKeydown, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.RANGE: {\n\t\t\t\t\t\tcontrol = this.createInput(editObject);\n\t\t\t\t\t\tspan = this.createOutput(editObject);\n\t\t\t\t\t\tthis.bindOnRangeChange(control, span);\n\t\t\t\t\t\tBX.bind(control, 'click', (event) => { event.stopPropagation();\n\t\t\t\t\t\t});\n\t\t\t\t\t\tBX.bind(control, 'keydown', BX.delegate(this._onControlKeydown, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.CHECKBOX: {\n\t\t\t\t\t\tcontrol = this.createInput(editObject);\n\t\t\t\t\t\tBX.bind(control, 'click', (event) => { event.stopPropagation();\n\t\t\t\t\t\t});\n\t\t\t\t\t\tBX.bind(control, 'keydown', BX.delegate(this._onControlKeydown, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.TEXTAREA: {\n\t\t\t\t\t\tcontrol = this.createTextarea(editObject, height);\n\t\t\t\t\t\tBX.bind(control, 'click', (event) => { event.stopPropagation();\n\t\t\t\t\t\t});\n\t\t\t\t\t\tBX.bind(control, 'keydown', BX.delegate(this._onControlKeydown, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.DROPDOWN: {\n\t\t\t\t\t\tcontrol = this.createDropdown(editObject);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.MULTISELECT: {\n\t\t\t\t\t\tcontrol = this.createMultiselect(editObject);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.IMAGE: {\n\t\t\t\t\t\tcontrol = this.createImageEditor(editObject);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.MONEY: {\n\t\t\t\t\t\tcontrol = this.createMoney(editObject);\n\t\t\t\t\t\tBX.bind(control, 'keydown', BX.delegate(this._onControlKeydown, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.CUSTOM: {\n\t\t\t\t\t\tcontrol = this.createCustom(editObject);\n\n\t\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\t\tconst html = editObject.HTML || editObject.VALUE || null;\n\n\t\t\t\t\t\t\tif (html)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tconst res = BX.processHTML(html);\n\n\t\t\t\t\t\t\t\tres.SCRIPT.forEach((item) => {\n\t\t\t\t\t\t\t\t\tif (item.isInternal && item.JS)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tBX.evalGlobal(item.JS);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tBX.bind(control, 'click', (event) => { event.stopPropagation();\n\t\t\t\t\t\t});\n\t\t\t\t\t\tBX.bind(control, 'keydown', BX.delegate(this._onControlKeydown, this));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (BX.type.isDomNode(span))\n\t\t\t{\n\t\t\t\tcontainer.appendChild(span);\n\t\t\t}\n\n\t\t\tif (BX.type.isDomNode(control))\n\t\t\t{\n\t\t\t\tcontainer.appendChild(control);\n\t\t\t}\n\n\t\t\treturn container;\n\t\t},\n\n\t\t_onControlKeydown(event)\n\t\t{\n\t\t\tif (event.code === 'Enter')\n\t\t\t{\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tconst saveButton = BX.Grid.Utils.getBySelector(this.parent.getContainer(), '#grid_save_button > button', true);\n\n\t\t\t\tif (saveButton)\n\t\t\t\t{\n\t\t\t\t\tBX.fireEvent(saveButton, 'click');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t};\n})();\n","import {Reflection} from 'main.core';\n\n/**\n * @memberOf BX.Grid\n */\nexport class Label\n{\n\tstatic Color = {\n\t\tDEFAULT: 'ui-label-default',\n\t\tDANGER: 'ui-label-danger',\n\t\tSUCCESS: 'ui-label-success',\n\t\tWARNING: 'ui-label-warning',\n\t\tPRIMARY: 'ui-label-primary',\n\t\tSECONDARY: 'ui-label-secondary',\n\t\tLIGHTGREEN: 'ui-label-lightgreen',\n\t\tLIGHTBLUE: 'ui-label-lightblue',\n\t\tLIGHT: 'ui-label-light',\n\t};\n\n\tstatic RemoveButtonType = {\n\t\tINSIDE: 'main-grid-tag-remove-inside',\n\t\tOUTSIDE: 'main-grid-tag-remove-outside',\n\t};\n}\n\nconst namespace = Reflection.namespace('BX.Grid');\nnamespace.Label = Label;\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\tBX.Grid.Loader = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.container = null;\n\t\tthis.windowHeight = null;\n\t\tthis.tbodyPos = null;\n\t\tthis.headerPos = null;\n\t\tthis.lastPosTop = null;\n\t\tthis.lastBottomPos = null;\n\t\tthis.table = null;\n\t\tthis.loader = null;\n\t\tthis.adjustLoaderOffset = this.adjustLoaderOffset.bind(this);\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.Loader.prototype = {\n\t\tinit(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tthis.table = this.parent.getTable();\n\t\t\tthis.loader = new BX.Loader({\n\t\t\t\ttarget: this.getContainer(),\n\t\t\t});\n\t\t},\n\n\t\tadjustLoaderOffset()\n\t\t{\n\t\t\tthis.windowHeight = BX.height(window);\n\t\t\tthis.tbodyPos = BX.pos(this.table.tBodies[0]);\n\t\t\tthis.headerPos = BX.pos(this.table.tHead);\n\n\t\t\tlet scrollY = window.scrollY;\n\n\t\t\tif (this.parent.isIE())\n\t\t\t{\n\t\t\t\tscrollY = document.documentElement.scrollTop;\n\t\t\t}\n\n\t\t\tlet bottomPos = (scrollY + this.windowHeight) - this.tbodyPos.top;\n\t\t\tlet posTop = scrollY - this.tbodyPos.top;\n\n\t\t\tif (bottomPos > (this.tbodyPos.bottom - this.tbodyPos.top))\n\t\t\t{\n\t\t\t\tbottomPos = this.tbodyPos.bottom - this.tbodyPos.top;\n\t\t\t}\n\n\t\t\tif (posTop < this.headerPos.height)\n\t\t\t{\n\t\t\t\tposTop = this.headerPos.height;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tbottomPos -= posTop;\n\t\t\t\tbottomPos += this.headerPos.height;\n\t\t\t}\n\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tif (posTop !== this.lastPosTop)\n\t\t\t\t{\n\t\t\t\t\tthis.getContainer().style.transform = `translate3d(0px, ${posTop}px, 0)`;\n\t\t\t\t}\n\n\t\t\t\tif (bottomPos !== this.lastBottomPos)\n\t\t\t\t{\n\t\t\t\t\tthis.getContainer().style.height = `${bottomPos}px`;\n\t\t\t\t}\n\n\t\t\t\tthis.lastPosTop = posTop;\n\t\t\t\tthis.lastBottomPos = bottomPos;\n\t\t\t});\n\t\t},\n\n\t\tgetContainer()\n\t\t{\n\t\t\tif (!this.container)\n\t\t\t{\n\t\t\t\tthis.container = BX.Grid.Utils.getByClass(this.parent.getContainer(), this.parent.settings.get('classLoader'), true);\n\t\t\t}\n\n\t\t\treturn this.container;\n\t\t},\n\n\t\tshow()\n\t\t{\n\t\t\tif (!this.loader.isShown())\n\t\t\t{\n\t\t\t\tthis.adjustLoaderOffset();\n\t\t\t\tthis.getContainer().style.display = 'block';\n\t\t\t\tthis.getContainer().style.opacity = '1';\n\t\t\t\tthis.getContainer().style.visibility = 'visible';\n\n\t\t\t\tconst rowsCount = this.parent.getRows().getCountDisplayed();\n\n\t\t\t\tif (rowsCount > 0 && rowsCount <= 2)\n\t\t\t\t{\n\t\t\t\t\tthis.loader.setOptions({ size: 60 });\n\t\t\t\t\tthis.loader.show();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.loader.setOptions({ size: 110 });\n\t\t\t\t\tthis.loader.show();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\thide()\n\t\t{\n\t\t\tif (this.loader.isShown())\n\t\t\t{\n\t\t\t\tthis.adjustLoaderOffset();\n\t\t\t\tthis.loader.hide().then(() => {\n\t\t\t\t\tthis.getContainer().style.display = 'none';\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main');\n\n\t/**\n\t * Works with grid instances\n\t * @type {{data: Array, push: BX.Main.gridManager.push, getById: BX.Main.gridManager.getById}}\n\t */\n\n\tif (BX.Main.gridManager)\n\t{\n\t\treturn;\n\t}\n\n\tBX.Main.gridManager = {\n\t\tdata: [],\n\n\t\tpush(id, instance)\n\t\t{\n\t\t\tif (BX.type.isNotEmptyString(id) && instance)\n\t\t\t{\n\t\t\t\tconst object = {\n\t\t\t\t\tid,\n\t\t\t\t\tinstance,\n\t\t\t\t\told: null,\n\t\t\t\t};\n\n\t\t\t\tif (this.getById(id) === null)\n\t\t\t\t{\n\t\t\t\t\tthis.data.push(object);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.data[0] = object;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tgetById(id)\n\t\t{\n\t\t\tconst result = this.data.filter((current) => {\n\t\t\t\treturn (current.id === id) || (current.id.replace('main_grid_', '') === id);\n\t\t\t});\n\n\t\t\treturn result.length === 1 ? result[0] : null;\n\t\t},\n\n\t\tgetInstanceById(id)\n\t\t{\n\t\t\tconst result = this.getById(id);\n\n\t\t\treturn BX.type.isPlainObject(result) ? result.instance : null;\n\t\t},\n\n\t\treload(id, url)\n\t\t{\n\t\t\tconst instance = this.getInstanceById(id);\n\t\t\tif (instance)\n\t\t\t{\n\t\t\t\tinstance.reload(url);\n\t\t\t}\n\t\t},\n\n\t\tgetDataIndex(id)\n\t\t{\n\t\t\tlet result = null;\n\t\t\tthis.data.forEach((item, index) => {\n\t\t\t\tif (item.id === id)\n\t\t\t\t{\n\t\t\t\t\tresult = index;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result;\n\t\t},\n\n\t\tdestroy(id)\n\t\t{\n\t\t\tif (BX.type.isNotEmptyString(id))\n\t\t\t{\n\t\t\t\tconst grid = this.getInstanceById(id);\n\n\t\t\t\tif (grid instanceof BX.Main.grid)\n\t\t\t\t{\n\t\t\t\t\tgrid.destroy();\n\t\t\t\t\tconst index = this.getDataIndex(id);\n\n\t\t\t\t\tif (index !== null)\n\t\t\t\t\t{\n\t\t\t\t\t\tdelete this.data[index];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * Works with message\n\t * @param {BX.Main.grid} parent\n\t * @param {object} types - Types of message\n\t * @constructor\n\t */\n\tBX.Grid.Message = function(parent, types)\n\t{\n\t\tthis.parent = null;\n\t\tthis.types = null;\n\t\tthis.messages = null;\n\t\tthis.popup = null;\n\t\tthis.init(parent, types);\n\t};\n\n\tBX.Grid.Message.prototype = {\n\n\t\t/**\n\t\t * @private\n\t\t * @param {BX.Main.grid} parent\n\t\t * @param {object} types\n\t\t */\n\t\tinit(parent, types)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tthis.types = types;\n\t\t\tthis.show();\n\t\t\tBX.addCustomEvent('BX.Main.grid:paramsUpdated', BX.proxy(this.onUpdated, this));\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tonUpdated()\n\t\t{\n\t\t\tthis.show();\n\t\t},\n\n\t\t/**\n\t\t * Gets data for messages\n\t\t * @return {object[]}\n\t\t */\n\t\tgetData()\n\t\t{\n\t\t\treturn this.parent.arParams.MESSAGES;\n\t\t},\n\n\t\t/**\n\t\t * Checks is need show message\n\t\t * @return {boolean}\n\t\t */\n\t\tisNeedShow()\n\t\t{\n\t\t\treturn this.getData().length > 0;\n\t\t},\n\n\t\t/**\n\t\t * Show message\n\t\t */\n\t\tshow()\n\t\t{\n\t\t\tif (this.isNeedShow())\n\t\t\t{\n\t\t\t\tthis.getPopup().setContent(this.getContent());\n\t\t\t\tthis.getPopup().show();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Gets content for message popup\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetContent()\n\t\t{\n\t\t\tconst data = this.getData();\n\t\t\tlet content = null;\n\n\t\t\tif (BX.type.isArray(data) && data.length > 0)\n\t\t\t{\n\t\t\t\tconst messagesDecl = {\n\t\t\t\t\tblock: 'main-grid-messages',\n\t\t\t\t\tcontent: [],\n\t\t\t\t};\n\n\t\t\t\tdata.forEach((message) => {\n\t\t\t\t\tconst messageDecl = {\n\t\t\t\t\t\tblock: 'main-grid-message',\n\t\t\t\t\t\tmix: `main-grid-message-${message.TYPE.toLowerCase()}`,\n\t\t\t\t\t\tcontent: [],\n\t\t\t\t\t};\n\n\t\t\t\t\tif (BX.type.isNotEmptyString(message.TITLE))\n\t\t\t\t\t{\n\t\t\t\t\t\tmessageDecl.content.push({\n\t\t\t\t\t\t\tblock: 'main-grid-message-title',\n\t\t\t\t\t\t\tcontent: BX.create('div', { html: message.TITLE }).innerText,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (BX.type.isNotEmptyString(message.TEXT))\n\t\t\t\t\t{\n\t\t\t\t\t\tmessageDecl.content.push({\n\t\t\t\t\t\t\tblock: 'main-grid-message-text',\n\t\t\t\t\t\t\tcontent: BX.create('div', { html: message.TEXT }).innerText,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tmessagesDecl.content.push(messageDecl);\n\t\t\t\t});\n\n\t\t\t\tcontent = BX.decl(messagesDecl);\n\t\t\t}\n\n\t\t\treturn content;\n\t\t},\n\n\t\t/**\n\t\t * Gets popup of message\n\t\t * @return {BX.PopupWindow}\n\t\t */\n\t\tgetPopup()\n\t\t{\n\t\t\tif (this.popup === null)\n\t\t\t{\n\t\t\t\tthis.popup = new BX.PopupWindow(\n\t\t\t\t\tthis.getPopupId(),\n\t\t\t\t\tnull,\n\t\t\t\t\t{\n\t\t\t\t\t\tautoHide: true,\n\t\t\t\t\t\toverlay: 0.3,\n\t\t\t\t\t\tminWidth: 400,\n\t\t\t\t\t\tmaxWidth: 800,\n\t\t\t\t\t\tcontentNoPaddings: true,\n\t\t\t\t\t\tcloseByEsc: true,\n\t\t\t\t\t\tbuttons: [\n\t\t\t\t\t\t\tnew BX.PopupWindowButton({\n\t\t\t\t\t\t\t\ttext: this.parent.getParam('CLOSE'),\n\t\t\t\t\t\t\t\tclassName: 'webform-small-button-blue webform-small-button',\n\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\tclick()\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn this.popup;\n\t\t},\n\n\t\t/**\n\t\t * Gets popup id\n\t\t * @return {string}\n\t\t */\n\t\tgetPopupId()\n\t\t{\n\t\t\treturn `${this.parent.getContainerId()}-main-grid-message`;\n\t\t},\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\tBX.Grid.observer = {\n\t\thandlers: [],\n\t\tadd(node, event, handler, context)\n\t\t{\n\t\t\tBX.bind(node, event, context ? BX.proxy(handler, context) : handler);\n\t\t},\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\tBX.Grid.Pagesize = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.Pagesize.prototype = {\n\t\tinit(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tBX.addCustomEvent('Dropdown::change', BX.proxy(this.onChange, this));\n\t\t},\n\n\t\tdestroy()\n\t\t{\n\t\t\tBX.removeCustomEvent('Dropdown::change', BX.proxy(this.onChange, this));\n\t\t},\n\n\t\tonChange(id, event, item, dataValue, value)\n\t\t{\n\t\t\tconst self = this;\n\n\t\t\tif (id === `${this.parent.getContainerId()}_${this.parent.settings.get('pageSizeId')}` && value >= 0)\n\t\t\t{\n\t\t\t\tthis.parent.tableFade();\n\t\t\t\tthis.parent.getUserOptions().setPageSize(value, () => {\n\t\t\t\t\tself.parent.reloadTable();\n\t\t\t\t\tBX.onCustomEvent(self.parent.getContainer(), 'Grid::pageSizeChanged', [self.parent]);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.Pagination\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.Pagination = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.container = null;\n\t\tthis.links = null;\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.Pagination.prototype = {\n\t\tinit(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t},\n\n\t\tgetParent()\n\t\t{\n\t\t\treturn this.parent;\n\t\t},\n\n\t\tgetContainer()\n\t\t{\n\t\t\tif (!this.container)\n\t\t\t{\n\t\t\t\tthis.container = BX.Grid.Utils.getByClass(this.getParent().getContainer(), this.getParent().settings.get('classPagination'), true);\n\t\t\t}\n\n\t\t\treturn this.container;\n\t\t},\n\n\t\tgetLinks()\n\t\t{\n\t\t\tconst self = this;\n\t\t\tconst result = BX.Grid.Utils.getByTag(this.getContainer(), 'a');\n\n\t\t\tthis.links = [];\n\n\t\t\tif (result)\n\t\t\t{\n\t\t\t\tthis.links = result.map((current) => {\n\t\t\t\t\treturn new BX.Grid.Element(current, self.getParent());\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn this.links;\n\t\t},\n\n\t\tgetLink(node)\n\t\t{\n\t\t\tlet result = null;\n\t\t\tlet filter;\n\n\t\t\tif (BX.type.isDomNode(node))\n\t\t\t{\n\t\t\t\tfilter = this.getLinks().filter((current) => {\n\t\t\t\t\treturn node === current.getNode();\n\t\t\t\t});\n\n\t\t\t\tif (filter.length > 0)\n\t\t\t\t{\n\t\t\t\t\tresult = filter[0];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.PinHeader\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.PinHeader = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.table = null;\n\t\tthis.header = null;\n\t\tthis.container = null;\n\t\tthis.parentNodeResizeObserver = null;\n\n\t\tconst adminPanel = this.getAdminPanel();\n\n\t\tif (adminPanel)\n\t\t{\n\t\t\tthis.mo = new MutationObserver(this.onAdminPanelMutation.bind(this));\n\t\t\tthis.mo.observe(document.documentElement, { attributes: true });\n\t\t}\n\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.PinHeader.prototype = {\n\t\tinit(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tthis.rect = BX.pos(this.parent.getHead());\n\t\t\tthis.gridRect = BX.pos(this.parent.getTable());\n\n\t\t\tlet workArea = BX.Grid.Utils.getBySelector(document, '#workarea-content', true);\n\n\t\t\tif (!workArea)\n\t\t\t{\n\t\t\t\tworkArea = this.parent.getContainer().parentNode;\n\t\t\t\tworkArea = workArea ? workArea.parentNode : workArea;\n\t\t\t}\n\n\t\t\tif (workArea)\n\t\t\t{\n\t\t\t\tthis.parentNodeResizeObserver = new BX.ResizeObserver(BX.proxy(this.refreshRect, this));\n\t\t\t\tthis.parentNodeResizeObserver.observe(workArea);\n\t\t\t}\n\n\t\t\tthis.create(true);\n\n\t\t\tdocument.addEventListener('scroll', BX.proxy(this._onScroll, this), BX.Grid.Utils.listenerParams({ passive: true }));\n\t\t\tdocument.addEventListener('resize', BX.proxy(this._onResize, this), BX.Grid.Utils.listenerParams({ passive: true }));\n\t\t\tBX.addCustomEvent('Grid::updated', BX.proxy(this._onGridUpdate, this));\n\t\t\tBX.addCustomEvent('Grid::resize', BX.proxy(this._onGridUpdate, this));\n\t\t\tBX.bind(window, 'resize', BX.proxy(this._onGridUpdate, this));\n\t\t},\n\n\t\trefreshRect()\n\t\t{\n\t\t\tthis.gridRect = BX.pos(this.parent.getTable());\n\t\t\tthis.rect = BX.pos(this.parent.getHead());\n\t\t},\n\n\t\t_onGridUpdate()\n\t\t{\n\t\t\tconst isPinned = this.isPinned();\n\n\t\t\tBX.remove(this.getContainer());\n\t\t\tthis.create();\n\n\t\t\tisPinned && this.pin();\n\n\t\t\tthis.table = null;\n\t\t\tthis.refreshRect();\n\n\t\t\tthis._onScroll();\n\n\t\t\tBX.onCustomEvent(window, 'Grid::headerUpdated', []);\n\t\t},\n\n\t\tcreate(async)\n\t\t{\n\t\t\tconst cells = BX.Grid.Utils.getByTag(this.parent.getHead(), 'th');\n\t\t\tconst cloneThead = BX.clone(this.parent.getHead());\n\t\t\tconst cloneCells = BX.Grid.Utils.getByTag(cloneThead, 'th');\n\n\t\t\tconst resizeCloneCells = function()\n\t\t\t{\n\t\t\t\tcells.forEach(\n\t\t\t\t\t(cell, index) => {\n\t\t\t\t\t\tlet width = BX.width(cell);\n\n\t\t\t\t\t\tif (index > 0)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth -= parseInt(BX.style(cell, 'border-left-width'));\n\t\t\t\t\t\t\twidth -= parseInt(BX.style(cell, 'border-right-width'));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcloneCells[index].firstElementChild && (cloneCells[index].firstElementChild.style.width = `${width}px`);\n\n\t\t\t\t\t\tif (cells.length - 1 > index)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcloneCells[index].style.width = `${width}px`;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t};\n\n\t\t\tasync ? setTimeout(resizeCloneCells, 0) : resizeCloneCells();\n\n\t\t\tthis.container = BX.decl({\n\t\t\t\tblock: 'main-grid-fixed-bar',\n\t\t\t\tmix: 'main-grid-fixed-top',\n\t\t\t\tattrs: {\n\t\t\t\t\tstyle: `width: ${BX.width(this.parent.getContainer())}px`,\n\t\t\t\t},\n\t\t\t\tcontent: {\n\t\t\t\t\tblock: 'main-grid-table',\n\t\t\t\t\ttag: 'table',\n\t\t\t\t\tcontent: cloneThead,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tthis.container.hidden = true;\n\n\t\t\tthis.parent.getWrapper().appendChild(this.container);\n\t\t},\n\n\t\tgetContainer()\n\t\t{\n\t\t\treturn this.container;\n\t\t},\n\n\t\tgetFixedTable()\n\t\t{\n\t\t\treturn this.table || (this.table = BX.Grid.Utils.getByTag(this.getContainer(), 'table', true));\n\t\t},\n\n\t\tgetAdminPanel()\n\t\t{\n\t\t\tif (!this.adminPanel)\n\t\t\t{\n\t\t\t\tthis.adminPanel = document.querySelector('.adm-header');\n\t\t\t}\n\n\t\t\treturn this.adminPanel;\n\t\t},\n\n\t\tisAdminPanelPinned()\n\t\t{\n\t\t\treturn BX.hasClass(document.documentElement, 'adm-header-fixed');\n\t\t},\n\n\t\tgetPinOffset()\n\t\t{\n\t\t\tconst adminPanel = this.getAdminPanel();\n\n\t\t\tif (adminPanel && this.isAdminPanelPinned())\n\t\t\t{\n\t\t\t\treturn BX.Text.toNumber(BX.style(adminPanel, 'height'));\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t},\n\n\t\tpin()\n\t\t{\n\t\t\tconst container = this.getContainer();\n\n\t\t\tif (container)\n\t\t\t{\n\t\t\t\tcontainer.hidden = false;\n\t\t\t}\n\n\t\t\tBX.onCustomEvent(window, 'Grid::headerPinned', []);\n\t\t},\n\n\t\tunpin()\n\t\t{\n\t\t\tconst container = this.getContainer();\n\n\t\t\tif (container)\n\t\t\t{\n\t\t\t\tcontainer.hidden = true;\n\t\t\t}\n\n\t\t\tBX.onCustomEvent(window, 'Grid::headerUnpinned', []);\n\t\t},\n\n\t\tstopPin()\n\t\t{\n\t\t\tBX.Grid.Utils.styleForEach([this.getContainer()], {\n\t\t\t\tposition: 'absolute',\n\t\t\t\ttop: (`${this.gridRect.bottom - this.rect.height - this.gridRect.top}px`),\n\t\t\t\t'box-shadow': 'none',\n\t\t\t});\n\t\t},\n\n\t\tstartPin()\n\t\t{\n\t\t\tBX.Grid.Utils.styleForEach([this.getContainer()], {\n\t\t\t\tposition: 'fixed',\n\t\t\t\ttop: `${this.getPinOffset()}px`,\n\t\t\t\t'box-shadow': '',\n\t\t\t});\n\t\t},\n\n\t\tisPinned()\n\t\t{\n\t\t\treturn !this.getContainer().hidden;\n\t\t},\n\n\t\t_onScroll()\n\t\t{\n\t\t\tlet scrollY = 0;\n\n\t\t\tif (this.scrollRect)\n\t\t\t{\n\t\t\t\tscrollY = this.scrollRect.scrollTop;\n\t\t\t}\n\t\t\telse\n\t\t\t\tif (document.scrollingElement)\n\t\t\t\t{\n\t\t\t\t\tthis.scrollRect = document.scrollingElement;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tif (document.documentElement.scrollTop > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.scrollRect = document.documentElement;\n\t\t\t\t\t}\n\t\t\t\t\telse if (document.body.scrollTop > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.scrollRect = document.body;\n\t\t\t\t\t}\n\n\t\t\tif (this.gridRect.bottom > (scrollY + this.rect.height))\n\t\t\t{\n\t\t\t\tthis.startPin();\n\n\t\t\t\tconst offset = this.getPinOffset();\n\n\t\t\t\tif ((this.rect.top - offset) <= scrollY)\n\t\t\t\t{\n\t\t\t\t\t!this.isPinned() && this.pin();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.isPinned() && this.unpin();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.stopPin();\n\t\t\t}\n\t\t},\n\n\t\tonAdminPanelMutation()\n\t\t{\n\t\t\tthis._onScroll();\n\t\t},\n\n\t\t_onResize()\n\t\t{\n\t\t\tthis.rect = BX.pos(this.parent.getHead());\n\t\t},\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.PinPanel\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.PinPanel = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.panel = null;\n\t\tthis.isSelected = null;\n\t\tthis.offset = null;\n\t\tthis.animationDuration = null;\n\t\tthis.pinned = false;\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.PinPanel.prototype = {\n\t\tinit(parent) {\n\t\t\tthis.parent = parent;\n\t\t\tthis.offset = 10;\n\t\t\tthis.animationDuration = 200;\n\t\t\tthis.panel = this.getPanel();\n\t\t\tthis.bindOnRowsEvents();\n\t\t},\n\n\t\tdestroy()\n\t\t{\n\t\t\tthis.unbindOnRowsEvents();\n\t\t},\n\n\t\tbindOnRowsEvents()\n\t\t{\n\t\t\tBX.addCustomEvent('Grid::thereSelectedRows', BX.proxy(this._onThereSelectedRows, this));\n\t\t\tBX.addCustomEvent('Grid::allRowsSelected', BX.proxy(this._onThereSelectedRows, this));\n\t\t\tBX.addCustomEvent('Grid::noSelectedRows', BX.proxy(this._onNoSelectedRows, this));\n\t\t\tBX.addCustomEvent('Grid::allRowsUnselected', BX.proxy(this._onNoSelectedRows, this));\n\t\t\tBX.addCustomEvent('Grid::updated', BX.proxy(this._onNoSelectedRows, this));\n\t\t},\n\n\t\tunbindOnRowsEvents()\n\t\t{\n\t\t\tBX.removeCustomEvent('Grid::thereSelectedRows', BX.proxy(this._onThereSelectedRows, this));\n\t\t\tBX.removeCustomEvent('Grid::allRowsSelected', BX.proxy(this._onThereSelectedRows, this));\n\t\t\tBX.removeCustomEvent('Grid::noSelectedRows', BX.proxy(this._onNoSelectedRows, this));\n\t\t\tBX.removeCustomEvent('Grid::allRowsUnselected', BX.proxy(this._onNoSelectedRows, this));\n\t\t\tBX.removeCustomEvent('Grid::updated', BX.proxy(this._onNoSelectedRows, this));\n\t\t},\n\n\t\tbindOnWindowEvents()\n\t\t{\n\t\t\tBX.bind(window, 'resize', BX.proxy(this._onResize, this));\n\t\t\tdocument.addEventListener('scroll', BX.proxy(this._onScroll, this), BX.Grid.Utils.listenerParams({ passive: true }));\n\t\t},\n\n\t\tunbindOnWindowEvents()\n\t\t{\n\t\t\tBX.unbind(window, 'resize', BX.proxy(this._onResize, this));\n\t\t\tdocument.removeEventListener('scroll', BX.proxy(this._onScroll, this), BX.Grid.Utils.listenerParams({ passive: true }));\n\t\t},\n\n\t\tgetPanel() {\n\t\t\tthis.panel = this.panel || this.parent.getActionsPanel().getPanel();\n\n\t\t\treturn this.panel;\n\t\t},\n\n\t\tgetScrollBottom()\n\t\t{\n\t\t\treturn (BX.scrollTop(window) + this.getWindowHeight());\n\t\t},\n\n\t\tgetPanelRect()\n\t\t{\n\t\t\tif (!BX.type.isPlainObject(this.panelRect))\n\t\t\t{\n\t\t\t\tthis.panelRect = BX.pos(this.getPanel());\n\t\t\t}\n\n\t\t\treturn this.panelRect;\n\t\t},\n\n\t\tgetPanelPrevBottom()\n\t\t{\n\t\t\tconst prev = BX.previousSibling(this.getPanel());\n\n\t\t\treturn BX.pos(prev).bottom + parseFloat(BX.style(prev, 'margin-bottom'));\n\t\t},\n\n\t\tgetWindowHeight()\n\t\t{\n\t\t\tthis.windowHeight = this.windowHeight || BX.height(window);\n\n\t\t\treturn this.windowHeight;\n\t\t},\n\n\t\tpinPanel(withAnimation)\n\t\t{\n\t\t\tconst panel = this.getPanel();\n\t\t\tconst width = BX.width(this.getPanel().parentNode);\n\t\t\tconst height = BX.height(this.getPanel().parentNode);\n\t\t\tconst bodyRect = BX.pos(this.parent.getBody());\n\t\t\tconst offset = this.getStartDiffPanelPosition();\n\n\t\t\tpanel.parentNode.style.setProperty('height', `${height}px`);\n\n\t\t\tpanel.style.setProperty('transform', `translateY(${offset}px)`);\n\t\t\tpanel.classList.add('main-grid-fixed-bottom');\n\t\t\tpanel.style.setProperty('width', `${width}px`);\n\t\t\tpanel.style.removeProperty('position');\n\t\t\tpanel.style.removeProperty('top');\n\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tif (withAnimation !== false)\n\t\t\t\t{\n\t\t\t\t\tpanel.style.setProperty('transition', 'transform 200ms ease');\n\t\t\t\t}\n\n\t\t\t\tpanel.style.setProperty('transform', 'translateY(0)');\n\t\t\t});\n\n\t\t\tif (this.isNeedPinAbsolute() && !this.absolutePin)\n\t\t\t{\n\t\t\t\tthis.absolutePin = true;\n\t\t\t\tpanel.style.removeProperty('transition');\n\t\t\t\tpanel.style.setProperty('position', 'absolute');\n\t\t\t\tpanel.style.setProperty('top', `${bodyRect.top}px`);\n\t\t\t}\n\n\t\t\tif (!this.isNeedPinAbsolute() && this.absolutePin)\n\t\t\t{\n\t\t\t\tthis.absolutePin = false;\n\t\t\t}\n\n\t\t\tthis.adjustPanelPosition();\n\t\t\tthis.pinned = true;\n\t\t},\n\n\t\tunpinPanel(withAnimation)\n\t\t{\n\t\t\tconst panel = this.getPanel();\n\t\t\tconst panelRect = BX.pos(panel);\n\t\t\tconst parentRect = BX.pos(panel.parentNode);\n\t\t\tconst offset = Math.abs(panelRect.bottom - parentRect.bottom);\n\n\t\t\tif (withAnimation !== false)\n\t\t\t{\n\t\t\t\tpanel.style.setProperty('transition', 'transform 200ms ease');\n\t\t\t}\n\n\t\t\tconst translateOffset = offset < panelRect.height ? `${offset}px` : '100%';\n\t\t\tpanel.style.setProperty('transform', `translateY(${translateOffset})`);\n\n\t\t\tconst delay = function(cb, delay)\n\t\t\t{\n\t\t\t\tif (withAnimation !== false)\n\t\t\t\t{\n\t\t\t\t\treturn setTimeout(cb, delay);\n\t\t\t\t}\n\n\t\t\t\tcb();\n\t\t\t};\n\n\t\t\tdelay(() => {\n\t\t\t\tpanel.parentNode.style.removeProperty('height');\n\t\t\t\tpanel.classList.remove('main-grid-fixed-bottom');\n\t\t\t\tpanel.style.removeProperty('transition');\n\t\t\t\tpanel.style.removeProperty('transform');\n\t\t\t\tpanel.style.removeProperty('width');\n\t\t\t\tpanel.style.removeProperty('position');\n\t\t\t\tpanel.style.removeProperty('top');\n\t\t\t}, withAnimation === false ? 0 : 200);\n\n\t\t\tthis.pinned = false;\n\t\t},\n\n\t\tisSelectedRows()\n\t\t{\n\t\t\treturn this.isSelected;\n\t\t},\n\n\t\tisNeedPinAbsolute()\n\t\t{\n\t\t\treturn (\n\t\t\t\t((BX.pos(this.parent.getBody()).top + this.getPanelRect().height) >= this.getScrollBottom())\n\t\t\t);\n\t\t},\n\n\t\tisNeedPin()\n\t\t{\n\t\t\treturn (this.getScrollBottom() - this.getPanelRect().height) <= this.getPanelPrevBottom();\n\t\t},\n\n\t\tadjustPanelPosition()\n\t\t{\n\t\t\tconst scrollX = window.pageXOffset;\n\t\t\tthis.lastScrollX = this.lastScrollX === null ? scrollX : this.lastScrollX;\n\n\t\t\tBX.Grid.Utils.requestAnimationFrame(BX.proxy(function() {\n\t\t\t\tif (scrollX !== this.lastScrollX)\n\t\t\t\t{\n\t\t\t\t\tconst panelPos = this.getPanelRect();\n\t\t\t\t\tBX.style(this.getPanel(), 'left', `${panelPos.left - scrollX}px`);\n\t\t\t\t}\n\t\t\t}, this));\n\n\t\t\tthis.lastScrollX = scrollX;\n\t\t},\n\n\t\tpinController(withAnimation)\n\t\t{\n\t\t\tif (this.getPanel())\n\t\t\t{\n\t\t\t\tif (!this.isPinned() && this.isNeedPin() && this.isSelectedRows())\n\t\t\t\t{\n\t\t\t\t\treturn this.pinPanel(withAnimation);\n\t\t\t\t}\n\n\t\t\t\tif (this.isPinned() && !this.isNeedPin() || !this.isSelectedRows())\n\t\t\t\t{\n\t\t\t\t\tthis.unpinPanel(withAnimation);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tgetEndDiffPanelPosition()\n\t\t{\n\t\t\tconst panelPos = BX.pos(this.getPanel());\n\t\t\tconst prevPanelPos = BX.pos(BX.previousSibling(this.getPanel()));\n\t\t\tconst scrollTop = BX.scrollTop(window);\n\t\t\tconst scrollBottom = scrollTop + BX.height(window);\n\t\t\tlet diff = panelPos.height + this.offset;\n\t\t\tconst prevPanelBottom = (prevPanelPos.bottom + parseFloat(BX.style(this.getPanel(), 'margin-top')));\n\n\t\t\tif (prevPanelBottom < scrollBottom && (prevPanelBottom + panelPos.height) > scrollBottom)\n\t\t\t{\n\t\t\t\tdiff = Math.abs(scrollBottom - (prevPanelBottom + panelPos.height));\n\t\t\t}\n\n\t\t\treturn diff;\n\t\t},\n\n\t\tgetStartDiffPanelPosition()\n\t\t{\n\t\t\tconst panelPos = BX.pos(this.getPanel());\n\t\t\tconst scrollTop = BX.scrollTop(window);\n\t\t\tconst scrollBottom = scrollTop + BX.height(window);\n\t\t\tlet diff = panelPos.height;\n\n\t\t\tif (panelPos.bottom > scrollBottom && panelPos.top < scrollBottom)\n\t\t\t{\n\t\t\t\tdiff = panelPos.bottom - scrollBottom;\n\t\t\t}\n\n\t\t\treturn diff;\n\t\t},\n\n\t\tisPinned()\n\t\t{\n\t\t\treturn this.pinned;\n\t\t},\n\n\t\t_onThereSelectedRows()\n\t\t{\n\t\t\tthis.bindOnWindowEvents();\n\t\t\tthis.isSelected = true;\n\n\t\t\tif (this.lastIsSelected)\n\t\t\t{\n\t\t\t\tthis.pinController();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.lastIsSelected = true;\n\t\t\t\tthis.pinController();\n\t\t\t}\n\t\t},\n\n\t\t_onNoSelectedRows()\n\t\t{\n\t\t\tthis.unbindOnWindowEvents();\n\t\t\tthis.isSelected = false;\n\t\t\tthis.pinController();\n\t\t\tthis.lastIsSelected = false;\n\t\t},\n\n\t\t_onScroll()\n\t\t{\n\t\t\tthis.pinController(false);\n\t\t},\n\n\t\t_onResize()\n\t\t{\n\t\t\tthis.windowHeight = BX.height(window);\n\t\t\tthis.panel = this.parent.getActionsPanel().getPanel();\n\t\t\tthis.panelRect = this.getPanel().getBoundingClientRect();\n\t\t\tthis.pinController(false);\n\t\t},\n\t};\n})();\n","import { EventEmitter } from 'main.core.events';\nimport { Dom, Reflection, Type, Event, Tag, Text } from 'main.core';\n\ntype RealtimeOptions = {\n\tgrid: BX.Main.grid,\n};\n\ntype AddRowOptions = {\n\tid: number | string,\n\tactions?: Array<{[key: string]: any}>,\n\tcolumns?: {[key: string]: any},\n\tcellActions?: {[key: string]: any},\n\tappend?: true,\n\tprepend?: true,\n\tinsertBefore?: number | string,\n\tinsertAfter?: number | string,\n\tanimation?: boolean,\n\tcounters?: {\n\t\t[colId: string]: {\n\t\t\ttype: $Values<BX.Grid.Counters.Type>,\n\t\t\tcolor?: $Values<BX.Grid.Counters.Color>,\n\t\t\tsecondaryColor?: $Values<BX.Grid.Counters.Color>,\n\t\t\tvalue: string | number,\n\t\t\tisDouble?: boolean,\n\t\t},\n\t},\n};\n\ntype ShowStubOptions = {\n\tcontent?: HTMLElement | string | {title?: string, description?: string},\n};\n\n/**\n * @memberOf BX.Grid\n */\nexport class Realtime extends EventEmitter\n{\n\tconstructor(options: RealtimeOptions)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Grid.Realtime');\n\t\tthis.options = { ...options };\n\t}\n\n\taddRow(options: AddRowOptions)\n\t{\n\t\tconst { grid } = this.options;\n\t\tconst row = grid.getTemplateRow();\n\t\trow.makeCountable();\n\t\tgrid.hideEmptyStub();\n\n\t\tif (Type.isNumber(options.id) || Type.isStringFilled(options.id))\n\t\t{\n\t\t\trow.setId(options.id);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new ReferenceError('id is not number or string');\n\t\t}\n\n\t\tif (Type.isArrayFilled(options.actions))\n\t\t{\n\t\t\trow.setActions(options.actions);\n\t\t}\n\n\t\tif (Type.isPlainObject(options.columns))\n\t\t{\n\t\t\trow.setCellsContent(options.columns);\n\t\t}\n\n\t\tif (Type.isPlainObject(options.cellActions))\n\t\t{\n\t\t\trow.setCellActions(options.cellActions);\n\t\t}\n\n\t\tif (Type.isPlainObject(options.counters))\n\t\t{\n\t\t\tconst preparedCounters = Object.entries(options.counters).reduce((acc, [columnId, counter]) => {\n\t\t\t\tif (Type.isPlainObject(counter))\n\t\t\t\t{\n\t\t\t\t\tacc[columnId] = {\n\t\t\t\t\t\t...counter,\n\t\t\t\t\t\tisDouble: counter.isDouble ?? false,\n\t\t\t\t\t\tsecondaryColor: counter.secondaryColor,\n\t\t\t\t\t\tanimation: Text.toBoolean(counter.animation),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn acc;\n\t\t\t}, {});\n\n\t\t\trow.setCounters(preparedCounters);\n\t\t}\n\n\t\tif (options.prepend === true)\n\t\t{\n\t\t\trow.prependTo(grid.getBody());\n\t\t}\n\t\telse if (options.append === true)\n\t\t{\n\t\t\trow.appendTo(grid.getBody());\n\t\t}\n\t\telse if (Type.isNumber(options.insertBefore) || Type.isStringFilled(options.insertBefore))\n\t\t{\n\t\t\tconst targetRow = grid.getRows().getById(options.insertBefore);\n\t\t\tif (targetRow)\n\t\t\t{\n\t\t\t\tBX.Dom.insertBefore(row.getNode(), targetRow.getNode());\n\t\t\t}\n\t\t}\n\t\telse if (Type.isNumber(options.insertAfter) || Type.isStringFilled(options.insertAfter))\n\t\t{\n\t\t\tconst targetRow = grid.getRows().getById(options.insertAfter);\n\t\t\tif (targetRow)\n\t\t\t{\n\t\t\t\tBX.Dom.insertAfter(row.getNode(), targetRow.getNode());\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new ReferenceError('prepend, append, insertBefore or insertAfter not filled');\n\t\t}\n\n\t\trow.show();\n\n\t\tif (options.animation !== false)\n\t\t{\n\t\t\trow.enableAbsolutePosition();\n\n\t\t\tconst movedElements = grid.getRows().getSourceBodyChild().filter((currentRow) => {\n\t\t\t\treturn currentRow.rowIndex > row.getIndex();\n\t\t\t});\n\n\t\t\tconst fakeRowNode = document.createElement('tr');\n\t\t\tDom.style(fakeRowNode, {\n\t\t\t\theight: '0px',\n\t\t\t\ttransition: '200ms height linear',\n\t\t\t});\n\t\t\tDom.append(fakeRowNode, grid.getBody());\n\n\t\t\tconst offset = row.getHeight();\n\t\t\tDom.style(fakeRowNode, 'height', `${offset}px`);\n\t\t\tmovedElements.forEach((element) => {\n\t\t\t\tDom.style(element, {\n\t\t\t\t\ttransition: '200ms transform linear',\n\t\t\t\t\ttransform: `translateY(${offset}px) translateZ(0)`,\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tDom.addClass(row.getNode(), 'main-ui-grid-show-new-row');\n\n\t\t\tEvent.bind(row.getNode(), 'animationend', (event: AnimationEvent) => {\n\t\t\t\tif (event.animationName === 'showNewRow')\n\t\t\t\t{\n\t\t\t\t\tmovedElements.forEach((element) => {\n\t\t\t\t\t\tDom.style(element, {\n\t\t\t\t\t\t\ttransition: null,\n\t\t\t\t\t\t\ttransform: null,\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\tDom.remove(fakeRowNode);\n\t\t\t\t\trow.disableAbsolutePosition();\n\n\t\t\t\t\tDom.removeClass(row.getNode(), 'main-ui-grid-show-new-row');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tgrid.getRows().reset();\n\t\tgrid.bindOnRowEvents();\n\t\tgrid.updateCounterDisplayed();\n\t\tgrid.updateCounterSelected();\n\n\t\tif (grid.getParam('ALLOW_ROWS_SORT'))\n\t\t{\n\t\t\tgrid.rowsSortable.reinit();\n\t\t}\n\n\t\tif (grid.getParam('ALLOW_COLUMNS_SORT'))\n\t\t{\n\t\t\tgrid.colsSortable.reinit();\n\t\t}\n\t}\n\n\tshowStub(options: ShowStubOptions = {})\n\t{\n\t\tconst tr = document.createElement('tr');\n\t\tDom.addClass(tr, 'main-grid-row main-grid-row-empty main-grid-row-body');\n\n\t\tconst td = document.createElement('td');\n\t\tDom.addClass(td, 'main-grid-cell main-grid-cell-center');\n\t\tconst colspan = this.options.grid.getRows().getHeadFirstChild().getCells().length;\n\t\tDom.attr(td, 'colspan', colspan);\n\n\t\tconst content = (() => {\n\t\t\tif (Type.isPlainObject(options.content))\n\t\t\t{\n\t\t\t\tconst result = [];\n\t\t\t\tif (Type.isStringFilled(options.content.title))\n\t\t\t\t{\n\t\t\t\t\tresult.push(\n\t\t\t\t\t\tTag.render`\n\t\t\t\t\t\t\t<div class=\"main-grid-empty-block-title\">\n\t\t\t\t\t\t\t\t${options.content.title}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (Type.isStringFilled(options.content.description))\n\t\t\t\t{\n\t\t\t\t\tresult.push(\n\t\t\t\t\t\tTag.render`\n\t\t\t\t\t\t\t<div class=\"main-grid-empty-block-description\">\n\t\t\t\t\t\t\t\t${options.content.description}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tType.isStringFilled(options.content)\n\t\t\t\t|| Type.isDomNode(options.content)\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn options.content;\n\t\t\t}\n\n\t\t\treturn [\n\t\t\t\tTag.render`<div class=\"main-grid-empty-image\"></div>`,\n\t\t\t\tTag.render`<div class=\"main-grid-empty-text\">${this.options.grid.getParam('EMPTY_STUB_TEXT')}</div>`,\n\t\t\t];\n\t\t})();\n\n\t\tconst container = Tag.render`\n\t\t\t<div class=\"main-grid-empty-block\">\n\t\t\t\t<div class=\"main-grid-empty-inner\">\n\t\t\t\t\t${content}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\tDom.append(container, td);\n\t\tDom.append(td, tr);\n\n\t\tconst oldStub = this.options.grid.getBody().querySelector('.main-grid-row-empty');\n\t\tif (oldStub)\n\t\t{\n\t\t\tDom.remove(oldStub);\n\t\t}\n\n\t\tDom.append(tr, this.options.grid.getBody());\n\n\t\tthis.options.grid.getRows().getBodyChild().forEach((row) => {\n\t\t\trow.hide();\n\t\t});\n\n\t\tthis.options.grid.adjustEmptyTable(this.options.grid.getRows().getSourceBodyChild());\n\t}\n}\n\nconst namespace = Reflection.namespace('BX.Grid');\nnamespace.Realtime = Realtime;\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\tBX.Grid.Resize = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.lastRegisterButtons = null;\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.Resize.prototype = {\n\t\tinit(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\n\t\t\tBX.addCustomEvent(window, 'Grid::updated', BX.proxy(this.registerTableButtons, this));\n\t\t\tBX.addCustomEvent(window, 'Grid::headerUpdated', BX.proxy(this.registerPinnedTableButtons, this));\n\n\t\t\tthis.registerTableButtons();\n\t\t\tthis.registerPinnedTableButtons();\n\t\t},\n\n\t\tdestroy()\n\t\t{\n\t\t\tBX.removeCustomEvent(window, 'Grid::updated', BX.proxy(this.registerTableButtons, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::headerUpdated', BX.proxy(this.registerPinnedTableButtons, this));\n\t\t\tBX.type.isArray(this.lastRegisterButtons) && this.lastRegisterButtons.forEach(jsDD.unregisterObject);\n\t\t\t(this.getButtons() || []).forEach(jsDD.unregisterObject);\n\t\t},\n\n\t\tregisterTableButtons()\n\t\t{\n\t\t\t(this.getButtons() || []).forEach(this.register, this);\n\t\t\tthis.registerPinnedTableButtons();\n\t\t},\n\n\t\tregister(item)\n\t\t{\n\t\t\tif (BX.type.isDomNode(item))\n\t\t\t{\n\t\t\t\titem.onbxdragstart = BX.delegate(this._onDragStart, this);\n\t\t\t\titem.onbxdragstop = BX.delegate(this._onDragEnd, this);\n\t\t\t\titem.onbxdrag = BX.delegate(this._onDrag, this);\n\t\t\t\tjsDD.registerObject(item);\n\t\t\t}\n\t\t},\n\n\t\tregisterPinnedTableButtons()\n\t\t{\n\t\t\tif (this.parent.getParam('ALLOW_PIN_HEADER'))\n\t\t\t{\n\t\t\t\tconst pinnedTableButtons = this.getPinnedTableButtons();\n\n\t\t\t\tif (BX.type.isArray(this.lastRegisterButtons) && this.lastRegisterButtons.length > 0)\n\t\t\t\t{\n\t\t\t\t\tthis.lastRegisterButtons.forEach(jsDD.unregisterObject);\n\t\t\t\t}\n\n\t\t\t\tthis.lastRegisterButtons = pinnedTableButtons;\n\n\t\t\t\t(this.getPinnedTableButtons() || []).forEach(this.register, this);\n\t\t\t}\n\t\t},\n\n\t\tgetButtons()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.parent.getRows().getHeadFirstChild().getNode(), this.parent.settings.get('classResizeButton'));\n\t\t},\n\n\t\tgetPinnedTableButtons()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(this.parent.getPinHeader().getFixedTable(), this.parent.settings.get('classResizeButton'));\n\t\t},\n\n\t\t_onDragStart()\n\t\t{\n\t\t\tconst cell = BX.findParent(jsDD.current_node, { className: this.parent.settings.get('classHeadCell') });\n\t\t\tconst cells = this.parent.getRows().getHeadFirstChild().getCells();\n\t\t\tconst cellsKeys = Object.keys(cells);\n\t\t\tlet cellContainer;\n\n\t\t\tthis.__overlay = BX.create('div', { props: { className: 'main-grid-cell-overlay' } });\n\t\t\tBX.append(this.__overlay, cell);\n\t\t\tthis.__resizeCell = cell.cellIndex;\n\n\t\t\tcellsKeys.forEach((key) => {\n\t\t\t\tif (!BX.hasClass(cells[key], 'main-grid-special-empty'))\n\t\t\t\t{\n\t\t\t\t\tlet width = BX.width(cells[key]);\n\n\t\t\t\t\tif (key > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\twidth -= parseInt(BX.style(cells[key], 'border-left-width'));\n\t\t\t\t\t\twidth -= parseInt(BX.style(cells[key], 'border-right-width'));\n\t\t\t\t\t}\n\n\t\t\t\t\tBX.width(cells[key], width);\n\t\t\t\t\tcellContainer = BX.firstChild(cells[key]);\n\t\t\t\t\tBX.width(cellContainer, width);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_onDrag(x)\n\t\t{\n\t\t\tconst table = this.parent.getTable();\n\t\t\tconst fixedTable = this.parent.getParam('ALLOW_PIN_HEADER') ? this.parent.getPinHeader().getFixedTable() : null;\n\t\t\tconst cell = table.rows[0].cells[this.__resizeCell];\n\t\t\tlet fixedCell; let\n\t\t\t\tfixedCellContainer;\n\n\t\t\tconst cpos = BX.pos(cell);\n\t\t\tconst cellAttrWidth = parseFloat(cell.style.width);\n\t\t\tlet sX;\n\n\t\t\tx -= cpos.left;\n\t\t\tsX = x;\n\n\t\t\tif (cpos.width > cellAttrWidth)\n\t\t\t{\n\t\t\t\tx = cpos.width;\n\t\t\t}\n\n\t\t\tx = sX > x ? sX : x;\n\n\t\t\tx = Math.max(x, 80);\n\n\t\t\tif (x !== cpos.width)\n\t\t\t{\n\t\t\t\tconst fixedCells = this.parent.getAllRows()[0]\n\t\t\t\t\t.querySelectorAll('.main-grid-fixed-column').length;\n\t\t\t\tlet column = this.parent.getColumnByIndex(this.__resizeCell - fixedCells);\n\n\t\t\t\t// Resize current column\n\t\t\t\tcolumn.forEach((item) => {\n\t\t\t\t\titem.style.width = `${x}px`;\n\t\t\t\t\titem.style.minWidth = `${x}px`;\n\t\t\t\t\titem.style.maxWidth = `${x}px`;\n\t\t\t\t\tBX.Dom.style(item.firstElementChild, 'width', `${x}px`);\n\t\t\t\t});\n\n\t\t\t\t// Resize false columns\n\t\t\t\tif (column[0].classList.contains('main-grid-fixed-column'))\n\t\t\t\t{\n\t\t\t\t\tcolumn = this.parent.getColumnByIndex(this.__resizeCell - fixedCells + 1);\n\n\t\t\t\t\tcolumn.forEach((item) => {\n\t\t\t\t\t\titem.style.width = `${x}px`;\n\t\t\t\t\t\titem.style.minWidth = `${x}px`;\n\t\t\t\t\t\titem.style.maxWidth = `${x}px`;\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.parent.adjustFixedColumnsPosition();\n\t\t\t\tthis.parent.adjustFadePosition(this.parent.getFadeOffset());\n\n\t\t\t\tif (BX.type.isDomNode(fixedTable) && BX.type.isDomNode(fixedTable.rows[0]))\n\t\t\t\t{\n\t\t\t\t\tfixedCell = fixedTable.rows[0].cells[this.__resizeCell];\n\t\t\t\t\tfixedCellContainer = BX.firstChild(fixedCell);\n\t\t\t\t\tfixedCellContainer.style.width = `${x}px`;\n\t\t\t\t\tfixedCellContainer.style.minWidth = `${x}px`;\n\t\t\t\t\tfixedCell.style.width = `${x}px`;\n\t\t\t\t\tfixedCell.style.minWidth = `${x}px`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tBX.onCustomEvent(window, 'Grid::columnResize', []);\n\t\t},\n\n\t\t_onDragEnd()\n\t\t{\n\t\t\tthis.saveSizes();\n\t\t\tconst cell = BX.findParent(jsDD.current_node, { className: this.parent.settings.get('classHeadCell') });\n\t\t\tconst overlay = cell.querySelector('.main-grid-cell-overlay');\n\t\t\tif (overlay)\n\t\t\t{\n\t\t\t\tBX.Dom.remove(overlay);\n\t\t\t}\n\t\t},\n\n\t\tgetColumnSizes()\n\t\t{\n\t\t\tconst cells = this.parent.getRows().getHeadFirstChild().getCells();\n\t\t\tconst columns = {};\n\t\t\tlet name;\n\n\t\t\t[].forEach.call(cells, (current) => {\n\t\t\t\tname = BX.data(current, 'name');\n\n\t\t\t\tif (BX.type.isNotEmptyString(name))\n\t\t\t\t{\n\t\t\t\t\tcolumns[name] = BX.width(current);\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\treturn columns;\n\t\t},\n\n\t\tsaveSizes()\n\t\t{\n\t\t\tthis.parent.getUserOptions().setColumnSizes(this.getColumnSizes(), 1);\n\t\t},\n\t};\n})();\n","import { Type } from 'main.core';\n\n(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.Row\n\t * @param {BX.Main.Grid} parent\n\t * @param {HtmlElement} node\n\t * @constructor\n\t */\n\tBX.Grid.Row = function(parent, node)\n\t{\n\t\tthis.node = null;\n\t\tthis.checkbox = null;\n\t\tthis.sort = null;\n\t\tthis.actions = null;\n\t\tthis.settings = null;\n\t\tthis.index = null;\n\t\tthis.actionsButton = null;\n\t\tthis.parent = null;\n\t\tthis.depth = null;\n\t\tthis.parentId = null;\n\t\tthis.editData = null;\n\t\tthis.custom = null;\n\t\tthis.onElementClick = this.onElementClick.bind(this);\n\t\tthis.init(parent, node);\n\t\tthis.initElementsEvents();\n\t};\n\n\t// noinspection JSUnusedGlobalSymbols,JSUnusedGlobalSymbols\n\tBX.Grid.Row.prototype = {\n\t\tinit(parent, node)\n\t\t{\n\t\t\tif (BX.type.isDomNode(node))\n\t\t\t{\n\t\t\t\tthis.node = node;\n\t\t\t\tthis.parent = parent;\n\t\t\t\tthis.settings = new BX.Grid.Settings();\n\t\t\t\tthis.bindNodes = [];\n\n\t\t\t\tif (this.isBodyChild())\n\t\t\t\t{\n\t\t\t\t\tthis.bindNodes = [].slice.call(this.node.parentNode.querySelectorAll(`tr[data-bind=\"${this.getId()}\"]`));\n\t\t\t\t\tif (this.bindNodes.length > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.node.addEventListener('mouseover', this.onMouseOver.bind(this));\n\t\t\t\t\t\tthis.node.addEventListener('mouseleave', this.onMouseLeave.bind(this));\n\t\t\t\t\t\tthis.bindNodes.forEach(function(row) {\n\t\t\t\t\t\t\trow.addEventListener('mouseover', this.onMouseOver.bind(this));\n\t\t\t\t\t\t\trow.addEventListener('mouseleave', this.onMouseLeave.bind(this));\n\t\t\t\t\t\t\trow.addEventListener('click', () => {\n\t\t\t\t\t\t\t\tif (this.isSelected())\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tthis.unselect();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tthis.select();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}, this);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (this.parent.getParam('ALLOW_CONTEXT_MENU'))\n\t\t\t\t{\n\t\t\t\t\tBX.bind(this.getNode(), 'contextmenu', BX.delegate(this._onRightClick, this));\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tonMouseOver()\n\t\t{\n\t\t\tthis.node.classList.add('main-grid-row-over');\n\t\t\tthis.bindNodes.forEach((row) => {\n\t\t\t\trow.classList.add('main-grid-row-over');\n\t\t\t});\n\t\t},\n\n\t\tonMouseLeave()\n\t\t{\n\t\t\tthis.node.classList.remove('main-grid-row-over');\n\t\t\tthis.bindNodes.forEach((row) => {\n\t\t\t\trow.classList.remove('main-grid-row-over');\n\t\t\t});\n\t\t},\n\n\t\tisCustom()\n\t\t{\n\t\t\tif (this.custom === null)\n\t\t\t{\n\t\t\t\tthis.custom = BX.hasClass(this.getNode(), this.parent.settings.get('classRowCustom'));\n\t\t\t}\n\n\t\t\treturn this.custom;\n\t\t},\n\n\t\t_onRightClick(event)\n\t\t{\n\t\t\tevent.preventDefault();\n\t\t\tif (!this.isHeadChild())\n\t\t\t{\n\t\t\t\tthis.showActionsMenu(event);\n\t\t\t}\n\t\t},\n\n\t\tgetDefaultAction()\n\t\t{\n\t\t\treturn BX.data(this.getNode(), 'default-action');\n\t\t},\n\n\t\tgetEditorValue()\n\t\t{\n\t\t\tconst self = this;\n\t\t\tconst cells = this.getCells();\n\t\t\tconst values = {};\n\t\t\tlet cellValues;\n\n\t\t\t[].forEach.call(cells, (current) => {\n\t\t\t\tcellValues = self.getCellEditorValue(current);\n\t\t\t\tif (BX.type.isArray(cellValues))\n\t\t\t\t{\n\t\t\t\t\tcellValues.forEach((cellValue) => {\n\t\t\t\t\t\tvalues[cellValue.NAME] = cellValue.VALUE === undefined ? '' : cellValue.VALUE;\n\n\t\t\t\t\t\tif (cellValue.hasOwnProperty('RAW_NAME') && cellValue.hasOwnProperty('RAW_VALUE'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalues[`${cellValue.NAME}_custom`] = values[`${cellValue.NAME}_custom`] || {};\n\t\t\t\t\t\t\tvalues[`${cellValue.NAME}_custom`][cellValue.RAW_NAME] =\t\t\t\t\t\t\t\tvalues[`${cellValue.NAME}_custom`][cellValue.RAW_NAME] || cellValue.RAW_VALUE;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse if (cellValues)\n\t\t\t\t{\n\t\t\t\t\tvalues[cellValues.NAME] = cellValues.VALUE === undefined ? '' : cellValues.VALUE;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn values;\n\t\t},\n\n\t\t/**\n\t\t * @deprecated\n\t\t * @use this.getEditorValue()\n\t\t */\n\t\teditGetValues()\n\t\t{\n\t\t\treturn this.getEditorValue();\n\t\t},\n\n\t\tgetCellEditorValue(cell)\n\t\t{\n\t\t\tconst editor = BX.Grid.Utils.getByClass(cell, this.parent.settings.get('classEditor'), true);\n\t\t\tlet result = null;\n\n\t\t\tif (BX.type.isDomNode(editor))\n\t\t\t{\n\t\t\t\tif (BX.hasClass(editor, 'main-grid-editor-checkbox'))\n\t\t\t\t{\n\t\t\t\t\tresult = {\n\t\t\t\t\t\tNAME: editor.getAttribute('name'),\n\t\t\t\t\t\tVALUE: editor.checked ? 'Y' : 'N',\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse if (BX.hasClass(editor, 'main-grid-editor-custom'))\n\t\t\t\t{\n\t\t\t\t\tresult = this.getCustomValue(editor);\n\t\t\t\t}\n\t\t\t\telse if (BX.hasClass(editor, 'main-grid-editor-money'))\n\t\t\t\t{\n\t\t\t\t\tresult = this.getMoneyValue(editor);\n\t\t\t\t}\n\t\t\t\telse if (BX.hasClass(editor, 'main-ui-multi-select'))\n\t\t\t\t{\n\t\t\t\t\tresult = this.getMultiSelectValues(editor);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult = this.getImageValue(editor);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tisEdit()\n\t\t{\n\t\t\treturn BX.hasClass(this.getNode(), 'main-grid-row-edit');\n\t\t},\n\n\t\thide()\n\t\t{\n\t\t\tBX.addClass(this.getNode(), this.parent.settings.get('classHide'));\n\t\t},\n\n\t\tshow()\n\t\t{\n\t\t\tBX.Dom.attr(this.getNode(), 'hidden', null);\n\t\t\tBX.removeClass(this.getNode(), this.parent.settings.get('classHide'));\n\t\t},\n\n\t\tisShown()\n\t\t{\n\t\t\treturn !BX.hasClass(this.getNode(), this.parent.settings.get('classHide'));\n\t\t},\n\n\t\tisNotCount()\n\t\t{\n\t\t\treturn BX.hasClass(this.getNode(), this.parent.settings.get('classNotCount'));\n\t\t},\n\n\t\tgetContentContainer(target)\n\t\t{\n\t\t\tif (BX.Type.isDomNode(target))\n\t\t\t{\n\t\t\t\tconst cell = target.closest('.main-grid-cell');\n\t\t\t\tif (BX.Type.isDomNode(cell))\n\t\t\t\t{\n\t\t\t\t\treturn cell.querySelector('.main-grid-cell-content');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn target;\n\t\t},\n\n\t\tgetContent(cell)\n\t\t{\n\t\t\tconst container = this.getContentContainer(cell);\n\t\t\tlet content;\n\n\t\t\tif (BX.type.isDomNode(container))\n\t\t\t{\n\t\t\t\tcontent = BX.html(container);\n\t\t\t}\n\n\t\t\treturn content;\n\t\t},\n\t\tgetMoneyValue(editor)\n\t\t{\n\t\t\tconst result = [];\n\t\t\tconst filteredValue = {\n\t\t\t\tPRICE: {},\n\t\t\t\tCURRENCY: {},\n\t\t\t\tHIDDEN: {},\n\t\t\t};\n\t\t\tconst fieldName = editor.getAttribute('data-name');\n\n\t\t\tconst inputs = [].slice.call(editor.querySelectorAll('input'));\n\t\t\tinputs.forEach((element) => {\n\t\t\t\tresult.push({\n\t\t\t\t\tNAME: fieldName,\n\t\t\t\t\tRAW_NAME: element.name,\n\t\t\t\t\tRAW_VALUE: element.value || '',\n\t\t\t\t\tVALUE: element.value || '',\n\t\t\t\t});\n\n\t\t\t\tif (element.classList.contains('main-grid-editor-money-price'))\n\t\t\t\t{\n\t\t\t\t\tfilteredValue.PRICE = {\n\t\t\t\t\t\tNAME: element.name,\n\t\t\t\t\t\tVALUE: element.value,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse if (element.type === ' hidden')\n\t\t\t\t{\n\t\t\t\t\tfilteredValue.HIDDEN[element.name] = element.value;\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst currencySelector = editor.querySelector('.main-grid-editor-dropdown');\n\t\t\tif (currencySelector)\n\t\t\t{\n\t\t\t\tconst currencyFieldName = currencySelector.getAttribute('name');\n\t\t\t\tif (BX.type.isNotEmptyString(currencyFieldName))\n\t\t\t\t{\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tNAME: fieldName,\n\t\t\t\t\t\tRAW_NAME: currencyFieldName,\n\t\t\t\t\t\tRAW_VALUE: currencySelector.dataset.value || '',\n\t\t\t\t\t\tVALUE: currencySelector.dataset.value || '',\n\t\t\t\t\t});\n\t\t\t\t\tfilteredValue.CURRENCY = {\n\t\t\t\t\t\tNAME: currencyFieldName,\n\t\t\t\t\t\tVALUE: currencySelector.dataset.value,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tresult.push({\n\t\t\t\tNAME: fieldName,\n\t\t\t\tVALUE: filteredValue,\n\t\t\t});\n\n\t\t\treturn result;\n\t\t},\n\t\tgetCustomValue(editor)\n\t\t{\n\t\t\tconst map = new Map(); const\n\t\t\t\tname = editor.getAttribute('data-name');\n\t\t\tconst inputs = [].slice.call(editor.querySelectorAll('input, select, textarea'));\n\t\t\tinputs.forEach((element) => {\n\t\t\t\tif (element.name === '')\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (element.hasAttribute('data-ignore-field'))\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet resultObject = {\n\t\t\t\t\tNAME: name,\n\t\t\t\t\tRAW_NAME: element.name,\n\t\t\t\t\tRAW_VALUE: element.value,\n\t\t\t\t\tVALUE: element.value,\n\t\t\t\t};\n\n\t\t\t\tswitch (element.tagName)\n\t\t\t\t{\n\t\t\t\t\tcase 'SELECT':\n\t\t\t\t\t\tif (element.multiple)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst selectValues = [];\n\t\t\t\t\t\t\telement.querySelectorAll('option').forEach((option) => {\n\t\t\t\t\t\t\t\tif (option.selected)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tselectValues.push(option.value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tresultObject.RAW_VALUE = selectValues;\n\t\t\t\t\t\t\tresultObject.VALUE = selectValues;\n\t\t\t\t\t\t\tmap.set(element.name, resultObject);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmap.set(element.name, resultObject);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'INPUT':\n\t\t\t\t\t\tswitch (element.type.toUpperCase())\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcase 'RADIO':\n\t\t\t\t\t\t\t\tif (element.checked)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmap.set(element.name, resultObject);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'CHECKBOX':\n\t\t\t\t\t\t\t\tif (element.checked)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tif (this.isMultipleCustomValue(element.name))\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tif (map.has(element.name))\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tresultObject = map.get(element.name);\n\t\t\t\t\t\t\t\t\t\t\tresultObject.RAW_VALUE.push(element.value);\n\t\t\t\t\t\t\t\t\t\t\tresultObject.VALUE.push(element.value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tresultObject.RAW_VALUE = [element.value];\n\t\t\t\t\t\t\t\t\t\t\tresultObject.VALUE = [element.value];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tmap.set(element.name, resultObject);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'FILE':\n\t\t\t\t\t\t\t\tresultObject.RAW_VALUE = element.files[0];\n\t\t\t\t\t\t\t\tresultObject.VALUE = element.files[0];\n\t\t\t\t\t\t\t\tmap.set(element.name, resultObject);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tif (this.isMultipleCustomValue(element.name))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tif (map.has(element.name))\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tresultObject = map.get(element.name);\n\t\t\t\t\t\t\t\t\t\tresultObject.RAW_VALUE.push(element.value);\n\t\t\t\t\t\t\t\t\t\tresultObject.VALUE.push(element.value);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tresultObject.RAW_VALUE = [element.value];\n\t\t\t\t\t\t\t\t\t\tresultObject.VALUE = [element.value];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmap.set(element.name, resultObject);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tmap.set(element.name, resultObject);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tconst result = [];\n\t\t\tmap.forEach((value) => {\n\t\t\t\tresult.push(value);\n\t\t\t});\n\n\t\t\treturn result;\n\t\t},\n\n\t\tisMultipleCustomValue(elementName: string): boolean\n\t\t{\n\t\t\treturn elementName.length > 2\n\t\t\t\t&& elementName.lastIndexOf('[]') === elementName.length - 2;\n\t\t},\n\n\t\tgetImageValue(editor)\n\t\t{\n\t\t\tlet result = null;\n\t\t\tif (BX.hasClass(editor, 'main-grid-image-editor'))\n\t\t\t{\n\t\t\t\tconst input = editor.querySelector('.main-grid-image-editor-file-input');\n\n\t\t\t\tif (input)\n\t\t\t\t{\n\t\t\t\t\tresult = {\n\t\t\t\t\t\tNAME: input.name,\n\t\t\t\t\t\tVALUE: input.files[0],\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tconst fakeInput = editor.querySelector('.main-grid-image-editor-fake-file-input');\n\n\t\t\t\t\tif (fakeInput)\n\t\t\t\t\t{\n\t\t\t\t\t\tresult = {\n\t\t\t\t\t\t\tNAME: fakeInput.name,\n\t\t\t\t\t\t\tVALUE: fakeInput.value,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (editor.value)\n\t\t\t{\n\t\t\t\tresult = {\n\t\t\t\t\tNAME: editor.getAttribute('name'),\n\t\t\t\t\tVALUE: editor.value,\n\t\t\t\t};\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult = {\n\t\t\t\t\tNAME: editor.getAttribute('name'),\n\t\t\t\t\tVALUE: BX.data(editor, 'value'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetMultiSelectValues(editor)\n\t\t{\n\t\t\tconst value = JSON.parse(BX.data(editor, 'value'));\n\n\t\t\treturn {\n\t\t\t\tNAME: editor.getAttribute('name'),\n\t\t\t\tVALUE: Type.isArrayFilled(value) ? value : '',\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * @param {HTMLTableCellElement} cell\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetEditorContainer(cell)\n\t\t{\n\t\t\treturn BX.Grid.Utils.getByClass(cell, this.parent.settings.get('classEditorContainer'), true);\n\t\t},\n\n\t\t/**\n\t\t * @return {HTMLElement}\n\t\t */\n\t\tgetCollapseButton()\n\t\t{\n\t\t\tif (!this.collapseButton)\n\t\t\t{\n\t\t\t\tthis.collapseButton = BX.Grid.Utils.getByClass(this.getNode(), this.parent.settings.get('classCollapseButton'), true);\n\t\t\t}\n\n\t\t\treturn this.collapseButton;\n\t\t},\n\n\t\tstateLoad()\n\t\t{\n\t\t\tBX.addClass(this.getNode(), this.parent.settings.get('classRowStateLoad'));\n\t\t},\n\n\t\tstateUnload()\n\t\t{\n\t\t\tBX.removeClass(this.getNode(), this.parent.settings.get('classRowStateLoad'));\n\t\t},\n\n\t\tstateExpand()\n\t\t{\n\t\t\tBX.addClass(this.getNode(), this.parent.settings.get('classRowStateExpand'));\n\t\t},\n\n\t\tstateCollapse()\n\t\t{\n\t\t\tBX.removeClass(this.getNode(), this.parent.settings.get('classRowStateExpand'));\n\t\t},\n\n\t\tgetParentId()\n\t\t{\n\t\t\tif (this.parentId === null)\n\t\t\t{\n\t\t\t\tthis.parentId = BX.data(this.getNode(), 'parent-id');\n\n\t\t\t\tif (typeof this.parentId !== 'undefined' && this.parentId !== null)\n\t\t\t\t{\n\t\t\t\t\tthis.parentId = this.parentId.toString();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.parentId;\n\t\t},\n\n\t\t/**\n\t\t * @return {DOMStringMap}\n\t\t */\n\t\tgetDataset()\n\t\t{\n\t\t\treturn this.getNode().dataset;\n\t\t},\n\n\t\t/**\n\t\t * Gets row depth level\n\t\t * @return {?number}\n\t\t */\n\t\tgetDepth()\n\t\t{\n\t\t\tif (this.depth === null)\n\t\t\t{\n\t\t\t\tthis.depth = BX.data(this.getNode(), 'depth');\n\t\t\t}\n\n\t\t\treturn this.depth;\n\t\t},\n\n\t\t/**\n\t\t * Set row depth\n\t\t * @param {number} depth\n\t\t */\n\t\tsetDepth(depth)\n\t\t{\n\t\t\tdepth = parseInt(depth);\n\n\t\t\tif (BX.type.isNumber(depth))\n\t\t\t{\n\t\t\t\tconst depthOffset = depth - parseInt(this.getDepth());\n\t\t\t\tconst Rows = this.parent.getRows();\n\n\t\t\t\tthis.getDataset().depth = depth;\n\n\t\t\t\tthis.getShiftCells().forEach((cell) => {\n\t\t\t\t\tBX.data(cell, 'depth', depth);\n\t\t\t\t\tBX.style(cell, 'padding-left', `${depth * 20}px`);\n\t\t\t\t});\n\n\t\t\t\tRows.getRowsByParentId(this.getId(), true).forEach((row) => {\n\t\t\t\t\tconst childDepth = parseInt(depthOffset) + parseInt(row.getDepth());\n\t\t\t\t\trow.getDataset().depth = childDepth;\n\t\t\t\t\trow.getShiftCells().forEach((cell) => {\n\t\t\t\t\t\tBX.data(cell, 'depth', childDepth);\n\t\t\t\t\t\tBX.style(cell, 'padding-left', `${childDepth * 20}px`);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Sets parent id\n\t\t * @param {string|number} id\n\t\t */\n\t\tsetParentId(id)\n\t\t{\n\t\t\tthis.getDataset().parentId = id;\n\t\t},\n\n\t\t/**\n\t\t * @return {HTMLTableRowElement}\n\t\t */\n\t\tgetShiftCells()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getBySelector(this.getNode(), 'td[data-shift=\"true\"]');\n\t\t},\n\n\t\tshowChildRows()\n\t\t{\n\t\t\tconst rows = this.getChildren();\n\t\t\tconst isCustom = this.isCustom();\n\n\t\t\trows.forEach((row) => {\n\t\t\t\trow.show();\n\t\t\t\tif (!isCustom && row.isExpand())\n\t\t\t\t{\n\t\t\t\t\trow.showChildRows();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.parent.updateCounterDisplayed();\n\t\t\tthis.parent.updateCounterSelected();\n\t\t\tthis.parent.adjustCheckAllCheckboxes();\n\t\t\tthis.parent.adjustRows();\n\t\t},\n\n\t\t/**\n\t\t * @return {BX.Grid.Row[]}\n\t\t */\n\t\tgetChildren()\n\t\t{\n\t\t\tconst functionName = this.isCustom() ? 'getRowsByGroupId' : 'getRowsByParentId';\n\t\t\tconst id = this.isCustom() ? this.getGroupId() : this.getId();\n\n\t\t\treturn this.parent.getRows()[functionName](id, true);\n\t\t},\n\n\t\thideChildRows()\n\t\t{\n\t\t\tconst rows = this.getChildren();\n\t\t\trows.forEach((row) =>\n\t\t\t{ row.hide();\n\t\t\t});\n\t\t\tthis.parent.updateCounterDisplayed();\n\t\t\tthis.parent.updateCounterSelected();\n\t\t\tthis.parent.adjustCheckAllCheckboxes();\n\t\t\tthis.parent.adjustRows();\n\t\t},\n\n\t\tisChildsLoaded()\n\t\t{\n\t\t\tif (!BX.type.isBoolean(this.childsLoaded))\n\t\t\t{\n\t\t\t\tthis.childsLoaded = this.isCustom() || BX.data(this.getNode(), 'child-loaded') === 'true';\n\t\t\t}\n\n\t\t\treturn this.childsLoaded;\n\t\t},\n\n\t\texpand()\n\t\t{\n\t\t\tconst self = this;\n\t\t\tthis.stateExpand();\n\n\t\t\tif (this.isChildsLoaded())\n\t\t\t{\n\t\t\t\tthis.showChildRows();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.stateLoad();\n\t\t\t\tthis.loadChildRows((rows) => {\n\t\t\t\t\trows.reverse().forEach((current) => {\n\t\t\t\t\t\tBX.insertAfter(current, self.getNode());\n\t\t\t\t\t});\n\t\t\t\t\tself.parent.getRows().reset();\n\t\t\t\t\tself.parent.bindOnRowEvents();\n\n\t\t\t\t\tif (self.parent.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t\t{\n\t\t\t\t\t\tself.parent.getRowsSortable().reinit();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.parent.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t\t{\n\t\t\t\t\t\tself.parent.getColsSortable().reinit();\n\t\t\t\t\t}\n\n\t\t\t\t\tself.stateUnload();\n\t\t\t\t\tBX.data(self.getNode(), 'child-loaded', 'true');\n\t\t\t\t\tself.parent.updateCounterDisplayed();\n\t\t\t\t\tself.parent.updateCounterSelected();\n\t\t\t\t\tself.parent.adjustCheckAllCheckboxes();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tcollapse()\n\t\t{\n\t\t\tthis.stateCollapse();\n\t\t\tthis.hideChildRows();\n\t\t},\n\n\t\tisExpand()\n\t\t{\n\t\t\treturn BX.hasClass(this.getNode(), this.parent.settings.get('classRowStateExpand'));\n\t\t},\n\n\t\ttoggleChildRows()\n\t\t{\n\t\t\tif (this.isExpand())\n\t\t\t{\n\t\t\t\tthis.collapse();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.expand();\n\t\t\t}\n\t\t},\n\n\t\tloadChildRows(callback)\n\t\t{\n\t\t\tif (BX.type.isFunction(callback))\n\t\t\t{\n\t\t\t\tconst self = this;\n\t\t\t\tlet depth = parseInt(this.getDepth());\n\t\t\t\tconst action = this.parent.getUserOptions().getAction('GRID_GET_CHILD_ROWS');\n\t\t\t\tdepth = BX.type.isNumber(depth) ? depth + 1 : 1;\n\t\t\t\tthis.parent.getData().request('', 'POST', { action, parent_id: this.getId(), depth }, null, function() {\n\t\t\t\t\tconst rows = this.getRowsByParentId(self.getId());\n\t\t\t\t\tcallback.apply(null, [rows]);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tupdate(data, url, callback)\n\t\t{\n\t\t\tdata = data || '';\n\n\t\t\tconst action = this.parent.getUserOptions().getAction('GRID_UPDATE_ROW');\n\t\t\tconst depth = this.getDepth();\n\t\t\tconst id = this.getId();\n\t\t\tconst parentId = this.getParentId();\n\t\t\tconst rowData = { id, parentId, action, depth, data };\n\t\t\tconst self = this;\n\n\t\t\tthis.stateLoad();\n\t\t\tthis.parent.getData().request(url, 'POST', rowData, null, function() {\n\t\t\t\tconst bodyRows = this.getBodyRows();\n\t\t\t\tself.parent.getUpdater().updateBodyRows(bodyRows);\n\t\t\t\tself.stateUnload();\n\t\t\t\tself.parent.getRows().reset();\n\t\t\t\tself.parent.getUpdater().updateFootRows(this.getFootRows());\n\t\t\t\tself.parent.getUpdater().updatePagination(this.getPagination());\n\t\t\t\tself.parent.getUpdater().updateMoreButton(this.getMoreButton());\n\t\t\t\tself.parent.getUpdater().updateCounterTotal(this.getCounterTotal());\n\t\t\t\tself.parent.bindOnRowEvents();\n\t\t\t\tself.parent.adjustEmptyTable(bodyRows);\n\n\t\t\t\tself.parent.bindOnMoreButtonEvents();\n\t\t\t\tself.parent.bindOnClickPaginationLinks();\n\t\t\t\tself.parent.updateCounterDisplayed();\n\t\t\t\tself.parent.updateCounterSelected();\n\n\t\t\t\tif (self.parent.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.parent.colsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tif (self.parent.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.parent.rowsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tBX.onCustomEvent(window, 'Grid::rowUpdated', [{ id, data, grid: self.parent, response: this }]);\n\t\t\t\tBX.onCustomEvent(window, 'Grid::updated', [self.parent]);\n\n\t\t\t\tif (BX.type.isFunction(callback))\n\t\t\t\t{\n\t\t\t\t\tcallback({ id, data, grid: self.parent, response: this });\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tremove(data, url, callback)\n\t\t{\n\t\t\tdata = data || '';\n\n\t\t\tconst action = this.parent.getUserOptions().getAction('GRID_DELETE_ROW');\n\t\t\tconst depth = this.getDepth();\n\t\t\tconst id = this.getId();\n\t\t\tconst parentId = this.getParentId();\n\t\t\tconst rowData = { id, parentId, action, depth, data };\n\t\t\tconst self = this;\n\n\t\t\tthis.stateLoad();\n\t\t\tthis.parent.getData().request(url, 'POST', rowData, null, function() {\n\t\t\t\tconst bodyRows = this.getBodyRows();\n\t\t\t\tself.parent.getUpdater().updateBodyRows(bodyRows);\n\t\t\t\tself.stateUnload();\n\t\t\t\tself.parent.getRows().reset();\n\t\t\t\tself.parent.getUpdater().updateFootRows(this.getFootRows());\n\t\t\t\tself.parent.getUpdater().updatePagination(this.getPagination());\n\t\t\t\tself.parent.getUpdater().updateMoreButton(this.getMoreButton());\n\t\t\t\tself.parent.getUpdater().updateCounterTotal(this.getCounterTotal());\n\t\t\t\tself.parent.bindOnRowEvents();\n\t\t\t\tself.parent.adjustEmptyTable(bodyRows);\n\n\t\t\t\tself.parent.bindOnMoreButtonEvents();\n\t\t\t\tself.parent.bindOnClickPaginationLinks();\n\t\t\t\tself.parent.updateCounterDisplayed();\n\t\t\t\tself.parent.updateCounterSelected();\n\n\t\t\t\tif (self.parent.getParam('ALLOW_COLUMNS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.parent.colsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tif (self.parent.getParam('ALLOW_ROWS_SORT'))\n\t\t\t\t{\n\t\t\t\t\tself.parent.rowsSortable.reinit();\n\t\t\t\t}\n\n\t\t\t\tBX.onCustomEvent(window, 'Grid::rowRemoved', [{ id, data, grid: self.parent, response: this }]);\n\t\t\t\tBX.onCustomEvent(window, 'Grid::updated', [self.parent]);\n\n\t\t\t\tif (BX.type.isFunction(callback))\n\t\t\t\t{\n\t\t\t\t\tcallback({ id, data, grid: self.parent, response: this });\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\teditCancel()\n\t\t{\n\t\t\tconst cells = this.getCells();\n\t\t\tconst self = this;\n\t\t\tlet editorContainer;\n\n\t\t\t[].forEach.call(cells, (current) => {\n\t\t\t\teditorContainer = self.getEditorContainer(current);\n\n\t\t\t\tif (BX.type.isDomNode(editorContainer))\n\t\t\t\t{\n\t\t\t\t\tBX.remove(self.getEditorContainer(current));\n\t\t\t\t\tBX.show(self.getContentContainer(current));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tBX.removeClass(this.getNode(), 'main-grid-row-edit');\n\t\t},\n\n\t\tgetCellByIndex(index)\n\t\t{\n\t\t\treturn this.getCells()[index];\n\t\t},\n\n\t\tgetEditDataByCellIndex(index)\n\t\t{\n\t\t\treturn eval(BX.data(this.getCellByIndex(index), 'edit'));\n\t\t},\n\n\t\tgetCellNameByCellIndex(index)\n\t\t{\n\t\t\treturn BX.data(this.getCellByIndex(index), 'name');\n\t\t},\n\n\t\tresetEditData()\n\t\t{\n\t\t\tthis.editData = null;\n\t\t},\n\n\t\tsetEditData(editData)\n\t\t{\n\t\t\tthis.editData = editData;\n\t\t},\n\n\t\tgetEditData()\n\t\t{\n\t\t\tif (this.editData === null)\n\t\t\t{\n\t\t\t\tconst editableData = this.parent.getParam('EDITABLE_DATA');\n\t\t\t\tconst rowId = this.getId();\n\n\t\t\t\tif (BX.type.isPlainObject(editableData) && rowId in editableData)\n\t\t\t\t{\n\t\t\t\t\tthis.editData = editableData[rowId];\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.editData = {};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.editData;\n\t\t},\n\n\t\tgetCellEditDataByCellIndex(cellIndex)\n\t\t{\n\t\t\tconst editData = this.getEditData();\n\t\t\tlet result = null;\n\t\t\tcellIndex = parseInt(cellIndex);\n\n\t\t\tif (BX.type.isNumber(cellIndex) && BX.type.isPlainObject(editData))\n\t\t\t{\n\t\t\t\tconst columnEditData = this.parent.getRows().getHeadFirstChild().getEditDataByCellIndex(cellIndex);\n\n\t\t\t\tif (BX.type.isPlainObject(columnEditData))\n\t\t\t\t{\n\t\t\t\t\tresult = columnEditData;\n\t\t\t\t\tresult.VALUE = editData[columnEditData.NAME];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tedit()\n\t\t{\n\t\t\tconst cells = this.getCells();\n\t\t\tconst self = this;\n\t\t\tlet editObject; let editor; let height; let\n\t\t\t\tcontentContainer;\n\n\t\t\t[].forEach.call(cells, (current, index) => {\n\t\t\t\tif (current.dataset.editable === 'true')\n\t\t\t\t{\n\t\t\t\t\ttry\n\t\t\t\t\t{\n\t\t\t\t\t\teditObject = self.getCellEditDataByCellIndex(index);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err)\n\t\t\t\t\t{\n\t\t\t\t\t\tthrow new Error(err);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.parent.getEditor().validateEditObject(editObject))\n\t\t\t\t\t{\n\t\t\t\t\t\tcontentContainer = self.getContentContainer(current);\n\t\t\t\t\t\theight = BX.height(contentContainer);\n\t\t\t\t\t\teditor = self.parent.getEditor().getEditor(editObject, height);\n\n\t\t\t\t\t\tif (!self.getEditorContainer(current) && BX.type.isDomNode(editor))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcurrent.appendChild(editor);\n\t\t\t\t\t\t\tBX.hide(contentContainer);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tBX.addClass(this.getNode(), 'main-grid-row-edit');\n\t\t},\n\n\t\tsetDraggable(value)\n\t\t{\n\t\t\tif (value)\n\t\t\t{\n\t\t\t\tBX.removeClass(this.getNode(), this.parent.settings.get('classDisableDrag'));\n\t\t\t\tthis.parent.getRowsSortable().register(this.getNode());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.addClass(this.getNode(), this.parent.settings.get('classDisableDrag'));\n\t\t\t\tthis.parent.getRowsSortable().unregister(this.getNode());\n\t\t\t}\n\t\t},\n\n\t\tisDraggable()\n\t\t{\n\t\t\treturn !BX.hasClass(this.getNode(), this.parent.settings.get('classDisableDrag'));\n\t\t},\n\n\t\tgetNode()\n\t\t{\n\t\t\treturn this.node;\n\t\t},\n\n\t\tgetIndex()\n\t\t{\n\t\t\treturn this.getNode().rowIndex;\n\t\t},\n\n\t\tgetId()\n\t\t{\n\t\t\treturn String(BX.data(this.getNode(), 'id'));\n\t\t},\n\n\t\tgetGroupId()\n\t\t{\n\t\t\treturn (BX.data(this.getNode(), 'group-id')).toString();\n\t\t},\n\n\t\tgetObserver()\n\t\t{\n\t\t\treturn BX.Grid.observer;\n\t\t},\n\n\t\tgetCheckbox()\n\t\t{\n\t\t\tif (!this.checkbox)\n\t\t\t{\n\t\t\t\tthis.checkbox = BX.Grid.Utils.getByClass(this.getNode(), this.settings.get('classRowCheckbox'), true);\n\t\t\t}\n\n\t\t\treturn this.checkbox;\n\t\t},\n\n\t\thasActionsButton()\n\t\t{\n\t\t\treturn BX.Type.isDomNode(this.getActionsButton());\n\t\t},\n\n\t\tgetActionsMenu()\n\t\t{\n\t\t\tif (!this.actionsMenu && this.hasActionsButton())\n\t\t\t{\n\t\t\t\tconst buttonRect = this.getActionsButton().getBoundingClientRect();\n\n\t\t\t\tthis.actionsMenu = BX.PopupMenu.create(\n\t\t\t\t\t`main-grid-actions-menu-${this.getId()}`,\n\t\t\t\t\tthis.getActionsButton(),\n\t\t\t\t\tthis.getMenuItems(),\n\t\t\t\t\t{\n\t\t\t\t\t\tautoHide: true,\n\t\t\t\t\t\toffsetTop: -((buttonRect.height / 2) + 26),\n\t\t\t\t\t\toffsetLeft: 30,\n\t\t\t\t\t\tangle: {\n\t\t\t\t\t\t\tposition: 'left',\n\t\t\t\t\t\t\toffset: ((buttonRect.height / 2) - 8),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\tonPopupClose: BX.delegate(this._onCloseMenu, this),\n\t\t\t\t\t\t\tonPopupShow: BX.delegate(this._onPopupShow, this),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tBX.addCustomEvent('Grid::updated', () => {\n\t\t\t\t\tif (this.actionsMenu)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.actionsMenu.destroy();\n\t\t\t\t\t\tthis.actionsMenu = null;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tBX.bind(this.actionsMenu.popupWindow.popupContainer, 'click', BX.delegate(function(event) {\n\t\t\t\t\tconst actionsMenu = this.getActionsMenu();\n\t\t\t\t\tif (actionsMenu)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst target = BX.getEventTarget(event);\n\t\t\t\t\t\tconst item = BX.findParent(target, {\n\t\t\t\t\t\t\tclassName: 'menu-popup-item',\n\t\t\t\t\t\t}, 10);\n\n\t\t\t\t\t\tif (!item || !item.dataset.preventCloseContextMenu)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tactionsMenu.close();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, this));\n\t\t\t}\n\n\t\t\treturn this.actionsMenu;\n\t\t},\n\n\t\t_onCloseMenu()\n\t\t{},\n\n\t\t_onPopupShow(popupMenu)\n\t\t{\n\t\t\tpopupMenu.setBindElement(this.getActionsButton());\n\t\t},\n\n\t\tactionsMenuIsShown()\n\t\t{\n\t\t\treturn this.getActionsMenu().popupWindow.isShown();\n\t\t},\n\n\t\tshowActionsMenu(event)\n\t\t{\n\t\t\tBX.fireEvent(document.body, 'click');\n\n\t\t\tthis.getActionsMenu().popupWindow.show();\n\n\t\t\tif (event)\n\t\t\t{\n\t\t\t\tthis.getActionsMenu().popupWindow.popupContainer.style.top = `${(event.pageY - 25) + BX.PopupWindow.getOption('offsetTop')}px`;\n\t\t\t\tthis.getActionsMenu().popupWindow.popupContainer.style.left = `${(event.pageX + 20) + BX.PopupWindow.getOption('offsetLeft')}px`;\n\t\t\t}\n\t\t},\n\n\t\tcloseActionsMenu()\n\t\t{\n\t\t\tif (this.actionsMenu && this.actionsMenu.popupWindow)\n\t\t\t{\n\t\t\t\tthis.actionsMenu.popupWindow.close();\n\t\t\t}\n\t\t},\n\n\t\tgetMenuItems()\n\t\t{\n\t\t\treturn this.getActions() || [];\n\t\t},\n\n\t\tgetActions()\n\t\t{\n\t\t\ttry\n\t\t\t{\n\t\t\t\tthis.actions = this.actions || eval(BX.data(this.getActionsButton(), this.settings.get('dataActionsKey')));\n\t\t\t}\n\t\t\tcatch\n\t\t\t{\n\t\t\t\tthis.actions = null;\n\t\t\t}\n\n\t\t\treturn this.actions;\n\t\t},\n\n\t\tgetActionsButton()\n\t\t{\n\t\t\tif (!this.actionsButton)\n\t\t\t{\n\t\t\t\tthis.actionsButton = BX.Grid.Utils.getByClass(this.getNode(), this.settings.get('classRowActionButton'), true);\n\t\t\t}\n\n\t\t\treturn this.actionsButton;\n\t\t},\n\n\t\tinitSelect()\n\t\t{\n\t\t\tif (this.isSelected() && !BX.hasClass(this.getNode(), this.settings.get('classCheckedRow')))\n\t\t\t{\n\t\t\t\tBX.addClass(this.getNode(), this.settings.get('classCheckedRow'));\n\t\t\t}\n\t\t},\n\n\t\tgetParentNode()\n\t\t{\n\t\t\tlet result;\n\n\t\t\ttry\n\t\t\t{\n\t\t\t\tresult = (this.getNode()).parentNode;\n\t\t\t}\n\t\t\tcatch\n\t\t\t{\n\t\t\t\tresult = null;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetParentNodeName()\n\t\t{\n\t\t\tlet result;\n\n\t\t\ttry\n\t\t\t{\n\t\t\t\tresult = (this.getParentNode()).nodeName;\n\t\t\t}\n\t\t\tcatch\n\t\t\t{\n\t\t\t\tresult = null;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tisSelectable()\n\t\t{\n\t\t\treturn !this.isEdit() || this.parent.getParam('ALLOW_EDIT_SELECTION');\n\t\t},\n\n\t\tselect()\n\t\t{\n\t\t\tlet checkbox;\n\n\t\t\tif (\n\t\t\t\tthis.isSelectable()\n\t\t\t\t&& (this.parent.getParam('ADVANCED_EDIT_MODE') || !this.parent.getRows().hasEditable())\n\t\t\t)\n\t\t\t{\n\t\t\t\tcheckbox = this.getCheckbox();\n\n\t\t\t\tif (checkbox && !BX.data(checkbox, 'disabled'))\n\t\t\t\t{\n\t\t\t\t\tBX.addClass(this.getNode(), this.settings.get('classCheckedRow'));\n\t\t\t\t\tthis.bindNodes.forEach(function(row) {\n\t\t\t\t\t\tBX.addClass(row, this.settings.get('classCheckedRow'));\n\t\t\t\t\t}, this);\n\t\t\t\t\tcheckbox.checked = true;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tunselect()\n\t\t{\n\t\t\tif (this.isSelectable())\n\t\t\t{\n\t\t\t\tBX.removeClass(this.getNode(), this.settings.get('classCheckedRow'));\n\t\t\t\tthis.bindNodes.forEach(function(row) {\n\t\t\t\t\tBX.removeClass(row, this.settings.get('classCheckedRow'));\n\t\t\t\t}, this);\n\t\t\t\tif (this.getCheckbox())\n\t\t\t\t{\n\t\t\t\t\tthis.getCheckbox().checked = false;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tgetCells()\n\t\t{\n\t\t\treturn this.getNode().cells;\n\t\t},\n\n\t\tisSelected()\n\t\t{\n\t\t\treturn (\n\t\t\t\t(this.getCheckbox() && (this.getCheckbox()).checked)\n\t\t\t\t|| (BX.hasClass(this.getNode(), this.settings.get('classCheckedRow')))\n\t\t\t);\n\t\t},\n\n\t\tisHeadChild()\n\t\t{\n\t\t\treturn (\n\t\t\t\tthis.getParentNodeName() === 'THEAD'\n\t\t\t\t&& BX.hasClass(this.getNode(), this.settings.get('classHeadRow'))\n\t\t\t);\n\t\t},\n\n\t\tisBodyChild()\n\t\t{\n\t\t\treturn (\n\t\t\t\tBX.hasClass(this.getNode(), this.settings.get('classBodyRow')) && !BX.hasClass(this.getNode(), this.settings.get('classEmptyRows'))\n\t\t\t);\n\t\t},\n\n\t\tisFootChild()\n\t\t{\n\t\t\treturn (\n\t\t\t\tthis.getParentNodeName() === 'TFOOT'\n\t\t\t\t&& BX.hasClass(this.getNode(), this.settings.get('classFootRow'))\n\t\t\t);\n\t\t},\n\n\t\tprependTo(target)\n\t\t{\n\t\t\tBX.Dom.prepend(this.getNode(), target);\n\t\t},\n\n\t\tappendTo(target)\n\t\t{\n\t\t\tBX.Dom.append(this.getNode(), target);\n\t\t},\n\n\t\tsetId(id)\n\t\t{\n\t\t\tBX.Dom.attr(this.getNode(), 'data-id', id);\n\t\t},\n\n\t\tsetActions(actions)\n\t\t{\n\t\t\tconst actionCell = this.getNode().querySelector('.main-grid-cell-action');\n\t\t\tif (actionCell)\n\t\t\t{\n\t\t\t\tlet actionButton = actionCell.querySelector('.main-grid-row-action-button');\n\t\t\t\tif (!actionButton)\n\t\t\t\t{\n\t\t\t\t\tactionButton = BX.Dom.create({\n\t\t\t\t\t\ttag: 'div',\n\t\t\t\t\t\tprops: { className: 'main-grid-row-action-button' },\n\t\t\t\t\t});\n\n\t\t\t\t\tconst container = this.getContentContainer(actionCell);\n\t\t\t\t\tBX.Dom.append(actionButton, container);\n\t\t\t\t}\n\n\t\t\t\tBX.Dom.attr(actionButton, {\n\t\t\t\t\thref: '#',\n\t\t\t\t\t'data-actions': actions,\n\t\t\t\t});\n\n\t\t\t\tthis.actions = actions;\n\n\t\t\t\tif (this.actionsMenu)\n\t\t\t\t{\n\t\t\t\t\tthis.actionsMenu.destroy();\n\t\t\t\t\tthis.actionsMenu = null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tmakeCountable()\n\t\t{\n\t\t\tBX.Dom.removeClass(this.getNode(), 'main-grid-not-count');\n\t\t},\n\n\t\tmakeNotCountable()\n\t\t{\n\t\t\tBX.Dom.addClass(this.getNode(), 'main-grid-not-count');\n\t\t},\n\n\t\tgetColumnOptions(columnId)\n\t\t{\n\t\t\tconst columns = this.parent.getParam('COLUMNS_ALL');\n\t\t\tif (\n\t\t\t\tBX.Type.isPlainObject(columns)\n\t\t\t\t&& Reflect.has(columns, columnId)\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn columns[columnId];\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\n\t\tsetCellsContent(content)\n\t\t{\n\t\t\tconst headRow = this.parent.getRows().getHeadFirstChild();\n\n\t\t\t[...this.getCells()].forEach((cell, cellIndex) => {\n\t\t\t\tconst cellName = headRow.getCellNameByCellIndex(cellIndex);\n\n\t\t\t\tif (Reflect.has(content, cellName))\n\t\t\t\t{\n\t\t\t\t\tconst columnOptions = this.getColumnOptions(cellName);\n\t\t\t\t\tconst container = this.getContentContainer(cell);\n\t\t\t\t\tconst cellContent = content[cellName];\n\t\t\t\t\tif (\n\t\t\t\t\t\tcolumnOptions.type === 'labels'\n\t\t\t\t\t\t&& BX.Type.isArray(cellContent)\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst labels = cellContent.map((labelOptions) => {\n\t\t\t\t\t\t\tconst label = BX.Tag.render`\n\t\t\t\t\t\t\t\t<span class=\"ui-label ${labelOptions.color}\"></span>\n\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\tif (labelOptions.light !== true)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.Dom.addClass(label, 'ui-label-fill');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (BX.Type.isPlainObject(labelOptions.events))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (Reflect.has(labelOptions.events, 'click'))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tBX.Dom.addClass(label, 'ui-label-link');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tthis.bindOnEvents(label, labelOptions.events);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst labelContent = (() => {\n\t\t\t\t\t\t\t\tif (BX.Type.isStringFilled(labelOptions.html))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn labelOptions.html;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn labelOptions.text;\n\t\t\t\t\t\t\t})();\n\n\t\t\t\t\t\t\tconst inner = BX.Tag.render`\n\t\t\t\t\t\t\t\t<span class=\"ui-label-inner\">${labelContent}</span>\n\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\tBX.Dom.append(inner, label);\n\n\t\t\t\t\t\t\tif (BX.Type.isPlainObject(labelOptions.removeButton))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tconst button = (() => {\n\t\t\t\t\t\t\t\t\tif (labelOptions.removeButton.type === BX.Grid.Label.RemoveButtonType.INSIDE)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\treturn BX.Tag.render`\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"ui-label-icon\"></span>\n\t\t\t\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturn BX.Tag.render`\n\t\t\t\t\t\t\t\t\t\t<span class=\"main-grid-label-remove-button ${labelOptions.removeButton.type}\"></span>\n\t\t\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\t\t})();\n\n\t\t\t\t\t\t\t\tif (BX.Type.isPlainObject(labelOptions.removeButton.events))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tthis.bindOnEvents(button, labelOptions.removeButton.events);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tBX.Dom.append(button, label);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn label;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst labelsContainer = BX.Tag.render`\n\t\t\t\t\t\t\t<div class=\"main-grid-labels\">${labels}</div>\n\t\t\t\t\t\t`;\n\n\t\t\t\t\t\tBX.Dom.clean(container);\n\t\t\t\t\t\tconst oldLabelsContainer = container.querySelector('.main-grid-labels');\n\t\t\t\t\t\tif (BX.Type.isDomNode(oldLabelsContainer))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.Dom.replace(oldLabelsContainer, labelsContainer);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.Dom.append(labelsContainer, container);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if (\n\t\t\t\t\t\tcolumnOptions.type === 'tags'\n\t\t\t\t\t\t&& BX.Type.isPlainObject(cellContent)\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst tags = cellContent.items.map((tagOptions) => {\n\t\t\t\t\t\t\tconst tag = BX.Tag.render`\n\t\t\t\t\t\t\t\t<span class=\"main-grid-tag\"></span>\n\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\tthis.bindOnEvents(tag, tagOptions.events);\n\n\t\t\t\t\t\t\tif (tagOptions.active === true)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.Dom.addClass(tag, 'main-grid-tag-active');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst tagContent = (() => {\n\t\t\t\t\t\t\t\tif (BX.Type.isStringFilled(tagOptions.html))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn tagOptions.html;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn BX.Text.encode(tagOptions.text);\n\t\t\t\t\t\t\t})();\n\n\t\t\t\t\t\t\tconst tagInner = BX.Tag.render`\n\t\t\t\t\t\t\t\t<span class=\"main-grid-tag-inner\">${tagContent}</span>\n\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\tBX.Dom.append(tagInner, tag);\n\n\t\t\t\t\t\t\tif (tagOptions.active === true)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tconst removeButton = BX.Tag.render`\n\t\t\t\t\t\t\t\t\t<span class=\"main-grid-tag-remove\"></span>\n\t\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\t\tBX.Dom.append(removeButton, tag);\n\n\t\t\t\t\t\t\t\tif (BX.Type.isPlainObject(tagOptions.removeButton))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tthis.bindOnEvents(removeButton, tagOptions.removeButton.events);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn tag;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst tagsContainer = BX.Tag.render`\n\t\t\t\t\t\t\t<span class=\"main-grid-tags\">${tags}</span>\n\t\t\t\t\t\t`;\n\n\t\t\t\t\t\tconst addButton = BX.Tag.render`\n\t\t\t\t\t\t\t<span class=\"main-grid-tag-add\"></span>\n\t\t\t\t\t\t`;\n\t\t\t\t\t\tif (BX.Type.isPlainObject(cellContent.addButton))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.bindOnEvents(addButton, cellContent.addButton.events);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tBX.Dom.append(addButton, tagsContainer);\n\n\t\t\t\t\t\tconst oldTagsContainer = container.querySelector('.main-grid-tags');\n\t\t\t\t\t\tif (BX.Type.isDomNode(oldTagsContainer))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.Dom.replace(oldTagsContainer, tagsContainer);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.Dom.append(tagsContainer, container);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if (BX.Type.isDomNode(cellContent))\n\t\t\t\t\t{\n\t\t\t\t\t\tBX.Dom.append(cellContent, container);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tBX.Runtime.html(container, cellContent);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tgetCellById(id)\n\t\t{\n\t\t\tconst headRow = this.parent.getRows().getHeadFirstChild();\n\n\t\t\treturn [...this.getCells()].find((cell, index) => {\n\t\t\t\treturn headRow.getCellNameByCellIndex(index) === id;\n\t\t\t});\n\t\t},\n\n\t\tisTemplate()\n\t\t{\n\t\t\treturn this.isBodyChild() && /^template_\\d$/.test(this.getId());\n\t\t},\n\n\t\tenableAbsolutePosition()\n\t\t{\n\t\t\tconst headCells = [...this.parent.getRows().getHeadFirstChild().getCells()];\n\t\t\tconst cellsWidth = headCells.map((cell) => {\n\t\t\t\treturn BX.Dom.style(cell, 'width');\n\t\t\t});\n\n\t\t\tconst cells = this.getCells();\n\t\t\tcellsWidth.forEach((width, index) => {\n\t\t\t\tBX.Dom.style(cells[index], 'width', width);\n\t\t\t});\n\n\t\t\tBX.Dom.style(this.getNode(), 'position', 'absolute');\n\t\t},\n\n\t\tdisableAbsolutePosition()\n\t\t{\n\t\t\tBX.Dom.style(this.getNode(), 'position', null);\n\t\t},\n\n\t\tgetHeight()\n\t\t{\n\t\t\treturn BX.Text.toNumber(BX.Dom.style(this.getNode(), 'height'));\n\t\t},\n\n\t\tsetCellActions(cellActions)\n\t\t{\n\t\t\tObject.entries(cellActions).forEach(([cellId, actions]) => {\n\t\t\t\tconst cell = this.getCellById(cellId);\n\t\t\t\tif (cell)\n\t\t\t\t{\n\t\t\t\t\tconst inner = cell.querySelector('.main-grid-cell-inner');\n\t\t\t\t\tif (inner)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst container = (() => {\n\t\t\t\t\t\t\tconst currentContainer = inner.querySelector('.main-grid-cell-content-actions');\n\t\t\t\t\t\t\tif (currentContainer)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.Dom.clean(currentContainer);\n\n\t\t\t\t\t\t\t\treturn currentContainer;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst newContainer = BX.Tag.render`\n\t\t\t\t\t\t\t\t<div class=\"main-grid-cell-content-actions\"></div>\n\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\tBX.Dom.append(newContainer, inner);\n\n\t\t\t\t\t\t\treturn newContainer;\n\t\t\t\t\t\t})();\n\n\t\t\t\t\t\tif (BX.Type.isArrayFilled(actions))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tactions.forEach((action) => {\n\t\t\t\t\t\t\t\tconst actionClass = (() => {\n\t\t\t\t\t\t\t\t\tif (BX.Type.isArrayFilled(action.class))\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\treturn action.class.join(' ');\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturn action.class;\n\t\t\t\t\t\t\t\t})();\n\n\t\t\t\t\t\t\t\tconst button = BX.Tag.render`\n\t\t\t\t\t\t\t\t\t<span class=\"main-grid-cell-content-action ${actionClass}\"></span>\n\t\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\t\tif (BX.Type.isPlainObject(action.events))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tthis.bindOnEvents(button, action.events);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (BX.Type.isPlainObject(action.attributes))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tBX.Dom.attr(button, action.attributes);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tBX.Dom.append(button, container);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tinitElementsEvents()\n\t\t{\n\t\t\tconst buttons = [\n\t\t\t\t...this.getNode().querySelectorAll('.main-grid-cell [data-events]'),\n\t\t\t];\n\t\t\tif (BX.Type.isArrayFilled(buttons))\n\t\t\t{\n\t\t\t\tbuttons.forEach((button) => {\n\t\t\t\t\tconst events = eval(BX.Dom.attr(button, 'data-events'));\n\t\t\t\t\tif (BX.Type.isPlainObject(events))\n\t\t\t\t\t{\n\t\t\t\t\t\tBX.Dom.attr(button, 'data-events', null);\n\t\t\t\t\t\tthis.bindOnEvents(button, events);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t * @param event\n\t\t */\n\t\tonElementClick(event)\n\t\t{\n\t\t\tevent.stopPropagation();\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tbindOnEvents(button, events)\n\t\t{\n\t\t\tif (\n\t\t\t\tBX.Type.isDomNode(button)\n\t\t\t\t&& BX.Type.isPlainObject(events)\n\t\t\t)\n\t\t\t{\n\t\t\t\tBX.Event.bind(button, 'click', this.onElementClick.bind(this));\n\n\t\t\t\tconst target = (() => {\n\t\t\t\t\tconst selector = BX.Dom.attr(button, 'data-target');\n\t\t\t\t\tif (selector)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn button.closest(selector);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn button;\n\t\t\t\t})();\n\n\t\t\t\tconst event = new BX.Event.BaseEvent({\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tbutton,\n\t\t\t\t\t\ttarget,\n\t\t\t\t\t\trow: this,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tevent.setTarget(target);\n\n\t\t\t\tObject.entries(events).forEach(([eventName, handler]) => {\n\t\t\t\t\tconst preparedHandler = eval(handler);\n\t\t\t\t\tBX.Event.bind(button, eventName, preparedHandler.bind(null, event));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tsetCounters(counters)\n\t\t{\n\t\t\tif (BX.Type.isPlainObject(counters))\n\t\t\t{\n\t\t\t\tObject.entries(counters).forEach(([columnId, counter]) => {\n\t\t\t\t\tconst cell = this.getCellById(columnId);\n\t\t\t\t\tif (BX.Type.isDomNode(cell))\n\t\t\t\t\t{\n\t\t\t\t\t\tconst cellInner = cell.querySelector('.main-grid-cell-inner');\n\t\t\t\t\t\tconst counterContainer = (() => {\n\t\t\t\t\t\t\tconst container = cell.querySelector('.main-grid-cell-counter');\n\t\t\t\t\t\t\tif (BX.Type.isDomNode(container))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn container;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn BX.Tag.render`\n\t\t\t\t\t\t\t\t<span class=\"main-grid-cell-counter\"></span>\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t})();\n\n\t\t\t\t\t\tconst uiCounter = (() => {\n\t\t\t\t\t\t\tconst currentCounter = counterContainer.querySelector('.ui-counter');\n\t\t\t\t\t\t\tif (BX.Type.isDomNode(currentCounter))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn currentCounter;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst newCounter = BX.Tag.render`\n\t\t\t\t\t\t\t\t<span class=\"ui-counter\"></span>\n\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\tBX.Dom.append(newCounter, counterContainer);\n\n\t\t\t\t\t\t\treturn newCounter;\n\t\t\t\t\t\t})();\n\n\t\t\t\t\t\tif (BX.Type.isPlainObject(counter.events))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.bindOnEvents(uiCounter, counter.events);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst counterInner = (() => {\n\t\t\t\t\t\t\tconst currentInner = uiCounter.querySelector('.ui-counter-inner');\n\t\t\t\t\t\t\tif (BX.Type.isDomNode(currentInner))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn currentInner;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst newInner = BX.Tag.render`\n\t\t\t\t\t\t\t\t<span class=\"ui-counter-inner\"></span>\n\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\tBX.Dom.append(newInner, uiCounter);\n\n\t\t\t\t\t\t\treturn newInner;\n\t\t\t\t\t\t})();\n\n\t\t\t\t\t\tif (counter.isDouble)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst counterDoubleContainer = (() => {\n\t\t\t\t\t\t\t\tconst currentDoubleContainer = uiCounter.querySelector('.ui-counter-secondary');\n\t\t\t\t\t\t\t\tif (BX.Type.isDomNode(currentDoubleContainer))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn currentDoubleContainer;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst newDoubleContainer = BX.Tag.render`\n\t\t\t\t\t\t\t\t\t<span class=\"ui-counter-secondary\"></span>\n\t\t\t\t\t\t\t\t`;\n\n\t\t\t\t\t\t\t\tBX.Dom.append(newDoubleContainer, uiCounter);\n\n\t\t\t\t\t\t\t\treturn newDoubleContainer;\n\t\t\t\t\t\t\t})();\n\n\t\t\t\t\t\t\tif (BX.Type.isStringFilled(counter.secondaryColor))\n\t\t\t\t\t\t\t{\n\n\t\t\t\t\t\t\t\tObject.values(BX.Grid.Counters.Color).forEach((secondaryColor) => {\n\t\t\t\t\t\t\t\t\tBX.Dom.removeClass(counterDoubleContainer, secondaryColor);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tBX.Dom.addClass(counterDoubleContainer, counter.secondaryColor);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (BX.Type.isStringFilled(counter.type))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tObject.values(BX.Grid.Counters.Type).forEach((type) => {\n\t\t\t\t\t\t\t\tBX.Dom.removeClass(counterContainer, `main-grid-cell-counter-${type}`);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tBX.Dom.addClass(counterContainer, `main-grid-cell-counter-${counter.type}`);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (BX.Type.isStringFilled(counter.color))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tObject.values(BX.Grid.Counters.Color).forEach((color) => {\n\t\t\t\t\t\t\t\tBX.Dom.removeClass(uiCounter, color);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tBX.Dom.addClass(uiCounter, counter.color);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (BX.Type.isStringFilled(counter.size))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tObject.values(BX.Grid.Counters.Size).forEach((size) => {\n\t\t\t\t\t\t\t\tBX.Dom.removeClass(uiCounter, size);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tBX.Dom.addClass(uiCounter, counter.size);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (BX.Type.isStringFilled(counter.class))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.Dom.addClass(uiCounter, counter.class);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tBX.Type.isStringFilled(counter.value)\n\t\t\t\t\t\t\t|| BX.Type.isNumber(counter.value)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst currentValue = BX.Text.toNumber(counterInner.innerText);\n\t\t\t\t\t\t\tconst value = BX.Text.toNumber(counter.value);\n\n\t\t\t\t\t\t\tif (value > 0)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (value < 100)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcounterInner.innerText = counter.value;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcounterInner.innerText = '99+';\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (counter.animation !== false)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tif (value !== currentValue)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tif (value > currentValue)\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tBX.Dom.addClass(counterInner, 'ui-counter-plus');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tBX.Dom.addClass(counterInner, 'ui-counter-minus');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tBX.Event.bindOnce(counterInner, 'animationend', (event) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\tevent.animationName === 'uiCounterPlus'\n\t\t\t\t\t\t\t\t\t\t\t|| event.animationName === 'uiCounterMinus'\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tBX.Dom.removeClass(counterInner, ['ui-counter-plus', 'ui-counter-minus']);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (BX.Text.toNumber(counter.value) > 0)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst align = counter.type === BX.Grid.Counters.Type.RIGHT ? 'right' : 'left';\n\t\t\t\t\t\t\tif (align === 'left')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.Dom.prepend(counterContainer, cellInner);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (align === 'right')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.Dom.append(counterContainer, cellInner);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst leftAlignedClass = (\n\t\t\t\t\t\t\t\t`main-grid-cell-counter-${BX.Grid.Counters.Type.LEFT_ALIGNED}`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (BX.Dom.hasClass(counterContainer, leftAlignedClass))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.remove(uiCounter);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.remove(counterContainer);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t};\n})();\n",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\n\t/**\n\t * BX.Grid.Rows\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.Rows = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.rows = null;\n\t\tthis.headChild = null;\n\t\tthis.bodyChild = null;\n\t\tthis.footChild = null;\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.Rows.prototype = {\n\t\tinit: function(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t},\n\n\t\treset: function()\n\t\t{\n\t\t\tthis.rows = null;\n\t\t\tthis.headChild = null;\n\t\t\tthis.bodyChild = null;\n\t\t\tthis.footChild = null;\n\t\t},\n\n\t\tenableDragAndDrop: function()\n\t\t{\n\t\t\tthis.parent.arParams[\"ALLOW_ROWS_SORT\"] = true;\n\n\t\t\tif (!(this.parent.getRowsSortable() instanceof BX.Grid.RowsSortable))\n\t\t\t{\n\t\t\t\tthis.parent.rowsSortable = new BX.Grid.RowsSortable(this.parent);\n\t\t\t}\n\t\t},\n\n\t\tdisableDragAndDrop: function()\n\t\t{\n\t\t\tthis.parent.arParams[\"ALLOW_ROWS_SORT\"] = false;\n\t\t\tif (this.parent.getRowsSortable() instanceof BX.Grid.RowsSortable)\n\t\t\t{\n\t\t\t\tthis.parent.getRowsSortable().destroy();\n\t\t\t\tthis.parent.rowsSortable = null;\n\t\t\t}\n\t\t},\n\n\t\tgetFootLastChild: function()\n\t\t{\n\t\t\treturn this.getLast(this.getFootChild());\n\t\t},\n\n\t\tgetFootFirstChild: function()\n\t\t{\n\t\t\treturn this.getFirst(this.getFootChild());\n\t\t},\n\n\t\tgetBodyLastChild: function()\n\t\t{\n\t\t\treturn this.getLast(this.getBodyChild());\n\t\t},\n\n\t\tgetBodyFirstChild: function()\n\t\t{\n\t\t\treturn this.getFirst(this.getBodyChild());\n\t\t},\n\n\t\tgetHeadLastChild: function()\n\t\t{\n\t\t\treturn this.getLast(this.getHeadChild());\n\t\t},\n\n\t\tgetHeadFirstChild: function()\n\t\t{\n\t\t\treturn this.getFirst(this.getHeadChild());\n\t\t},\n\n\t\tgetEditSelectedValues: function(withTemplate)\n\t\t{\n\t\t\tvar selectedRows = this.getSelected(withTemplate);\n\t\t\tvar values = {};\n\n\t\t\tselectedRows.forEach(\n\t\t\t\tfunction(current)\n\t\t\t\t{\n\t\t\t\t\tvalues[current.getId()] = current.editGetValues();\n\t\t\t\t}\n\t\t\t);\n\n\t\t\treturn values;\n\t\t},\n\n\t\tgetSelectedIds: function(withTemplate)\n\t\t{\n\t\t\treturn this.getSelected(withTemplate).map(function(current) {\n\t\t\t\treturn current.getId();\n\t\t\t});\n\t\t},\n\n\t\tinitSelected: function()\n\t\t{\n\t\t\tvar selected = this.getSelected();\n\n\t\t\tif (BX.type.isArray(selected) && selected.length)\n\t\t\t{\n\t\t\t\tselected.forEach(function(row) {\n\t\t\t\t\trow.initSelect();\n\t\t\t\t});\n\n\t\t\t\tthis.parent.enableActionsPanel();\n\t\t\t}\n\t\t},\n\n\t\teditSelected: function()\n\t\t{\n\t\t\tthis.getSelected().forEach(function(current) {\n\t\t\t\tcurrent.edit();\n\t\t\t});\n\n\t\t\tBX.onCustomEvent(window, 'Grid::thereEditedRows', []);\n\t\t},\n\n\t\teditSelectedCancel: function(withTemplate)\n\t\t{\n\t\t\tthis.getSelected(withTemplate).forEach(function(current) {\n\t\t\t\tcurrent.editCancel();\n\t\t\t});\n\n\t\t\tBX.onCustomEvent(window, 'Grid::noEditedRows', []);\n\t\t},\n\n\t\tisSelected: function()\n\t\t{\n\t\t\treturn this.getBodyChild().some(function(current) {\n\t\t\t\treturn current.isShown() && current.isSelected();\n\t\t\t});\n\t\t},\n\n\t\tisAllSelected: function()\n\t\t{\n\t\t\treturn !this.getBodyChild()\n\t\t\t\t.filter(function(current) {\n\t\t\t\t\treturn !!current.getCheckbox() && current.getCheckbox().disabled !== true;\n\t\t\t\t})\n\t\t\t\t.some(function(current) {\n\t\t\t\t\treturn !current.isSelected();\n\t\t\t\t});\n\t\t},\n\n\t\tgetParent: function()\n\t\t{\n\t\t\treturn this.parent;\n\t\t},\n\n\t\tgetCountSelected: function()\n\t\t{\n\t\t\tvar result;\n\n\t\t\ttry {\n\t\t\t\tresult = this.getSelected().filter(function(row) {\n\t\t\t\t\treturn !row.isNotCount() && row.isShown();\n\t\t\t\t}).length;\n\t\t\t} catch(err) {\n\t\t\t\tresult = 0;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetCountDisplayed: function()\n\t\t{\n\t\t\tvar result;\n\n\t\t\ttry {\n\t\t\t\tresult = this.getBodyChild().filter(function(row) { return row.isShown() && !row.isNotCount(); }).length;\n\t\t\t} catch(err) {\n\t\t\t\tresult = 0;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\taddRows: function(rows)\n\t\t{\n\t\t\tvar body = BX.findChild(\n\t\t\t\tthis.getParent().getTable(),\n\t\t\t\t{tag: 'TBODY'},\n\t\t\t\ttrue,\n\t\t\t\tfalse\n\t\t\t);\n\n\t\t\trows.forEach(function(current) {\n\t\t\t\tbody.appendChild(current);\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * Gets all rows of table\n\t\t * @return {BX.Grid.Row[]}\n\t\t */\n\t\tgetRows: function()\n\t\t{\n\t\t\tvar result;\n\t\t\tvar self = this;\n\n\t\t\tif (!this.rows)\n\t\t\t{\n\t\t\t\tresult = [].slice.call(this.getParent().getTable().querySelectorAll('tr[data-id], thead > tr'));\n\n\t\t\t\tthis.rows = result.map(function(current) {\n\t\t\t\t\treturn new BX.Grid.Row(self.parent, current);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn this.rows;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets selected rows\n\t\t * @return {BX.Grid.Row[]}\n\t\t */\n\t\tgetSelected: function(withTemplate)\n\t\t{\n\t\t\treturn this.getBodyChild(withTemplate).filter(function(current) {\n\t\t\t\treturn current.isShown() && current.isSelected();\n\t\t\t});\n\t\t},\n\n\t\tnormalizeNode: function(node)\n\t\t{\n\t\t\tif (!BX.hasClass(node, this.getParent().settings.get('classBodyRow')))\n\t\t\t{\n\t\t\t\tnode = BX.findParent(node, {className: this.getParent().settings.get('classBodyRow')}, true, false);\n\t\t\t}\n\n\t\t\treturn node;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets BX.Grid.Row by id\n\t\t * @param {string|number} id\n\t\t * @return {?BX.Grid.Row}\n\t\t */\n\t\tgetById: function(id)\n\t\t{\n\t\t\treturn this.getBodyChild().find(function(current) {\n\t\t\t\treturn String(current.getId()) === String(id);\n\t\t\t}) || null;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets BX.Grid.Row for tr node\n\t\t * @param {HTMLTableRowElement} node\n\t\t * @return {?BX.Grid.Row}\n\t\t */\n\t\tget: function(node)\n\t\t{\n\t\t\tif (BX.Type.isDomNode(node))\n\t\t\t{\n\t\t\t\tconst rowNode = node.closest('.main-grid-row');\n\t\t\t\tif (BX.Type.isDomNode(rowNode))\n\t\t\t\t{\n\t\t\t\t\tconst rowInstance = this.getRows().find((row) => {\n\t\t\t\t\t\treturn row.getNode() === rowNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tif (rowInstance)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn rowInstance;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\n\t\t/** @static @method getLast */\n\t\tgetLast: function(array)\n\t\t{\n\t\t\tvar result;\n\n\t\t\ttry {\n\t\t\t\tresult = array[array.length-1];\n\t\t\t} catch (err) {\n\t\t\t\tresult = null;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\t/** @static @method getFirst */\n\t\tgetFirst: function(array)\n\t\t{\n\t\t\tvar result;\n\n\t\t\ttry {\n\t\t\t\tresult = array[0];\n\t\t\t} catch (err) {\n\t\t\t\tresult = null;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetHeadChild: function()\n\t\t{\n\t\t\tthis.headChild = this.headChild || this.getRows().filter(function(current) {\n\t\t\t\t\treturn current.isHeadChild();\n\t\t\t\t});\n\n\t\t\treturn this.headChild;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets child rows of tbody\n\t\t * @return {BX.Grid.Row[]}\n\t\t */\n\t\tgetBodyChild: function(withTemplates)\n\t\t{\n\t\t\treturn this.getRows().filter(function(current) {\n\t\t\t\treturn current.isBodyChild() && (!current.isTemplate() || withTemplates);\n\t\t\t});\n\t\t},\n\n\t\tgetFootChild: function()\n\t\t{\n\t\t\tthis.footChild = this.footChild || this.getRows().filter(function(current) {\n\t\t\t\treturn current.isFootChild();\n\t\t\t});\n\n\t\t\treturn this.footChild;\n\t\t},\n\n\n\t\tselectAll: function()\n\t\t{\n\t\t\tthis.getRows().map(function(current) {\n\t\t\t\tcurrent.isShown() && current.select();\n\t\t\t});\n\t\t},\n\n\t\tunselectAll: function()\n\t\t{\n\t\t\tthis.getRows().map(function(current) {\n\t\t\t\tcurrent.unselect();\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * Gets row by rowIndex\n\t\t * @param {number} rowIndex\n\t\t * @return {?BX.Grid.Row}\n\t\t */\n\t\tgetByIndex: function(rowIndex)\n\t\t{\n\t\t\tvar filter = this.getBodyChild()\n\t\t\t\t.filter(function(item) {\n\t\t\t\t\treturn item;\n\t\t\t\t})\n\t\t\t\t.filter(function(item) {\n\t\t\t\t\treturn item.getNode().rowIndex === rowIndex;\n\t\t\t\t});\n\n\t\t\treturn filter.length ? filter[0] : null;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets child rows\n\t\t * @param {number|string} parentId\n\t\t * @param {boolean} [recursive]\n\t\t * @return {BX.Grid.Row[]}\n\t\t */\n\t\tgetRowsByParentId: function(parentId, recursive)\n\t\t{\n\t\t\tvar result = [];\n\t\t\tvar self = this;\n\n\t\t\tif (!parentId)\n\t\t\t{\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tparentId = parentId.toString();\n\n\t\t\tfunction getByParentId(parentId)\n\t\t\t{\n\t\t\t\tself.getBodyChild().forEach(function(row) {\n\t\t\t\t\tif (row.getParentId() === parentId) {\n\t\t\t\t\t\tresult.push(row);\n\t\t\t\t\t\trecursive && getByParentId(row.getId());\n\t\t\t\t\t}\n\t\t\t\t}, self);\n\t\t\t}\n\n\t\t\tgetByParentId(parentId);\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetRowsByGroupId: function(groupId)\n\t\t{\n\t\t\tvar result = [];\n\t\t\tvar self = this;\n\n\t\t\tif (!groupId)\n\t\t\t{\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tgroupId = groupId.toString();\n\n\t\t\tfunction getByParentId(groupId)\n\t\t\t{\n\t\t\t\tself.getBodyChild().forEach(function(row) {\n\t\t\t\t\tif (row.getGroupId() === groupId && !row.isCustom()) {\n\t\t\t\t\t\tresult.push(row);\n\t\t\t\t\t}\n\t\t\t\t}, self);\n\t\t\t}\n\n\t\t\tgetByParentId(groupId);\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetExpandedRows: function()\n\t\t{\n\t\t\treturn this.getRows().filter(function(row) {\n\t\t\t\treturn row.isShown() && row.isExpand();\n\t\t\t});\n\t\t},\n\n\t\tgetIdsExpandedRows: function()\n\t\t{\n\t\t\treturn this.getExpandedRows().map(function(row) {\n\t\t\t\treturn row.getId();\n\t\t\t});\n\t\t},\n\n\n\t\tgetIdsCollapsedGroups: function()\n\t\t{\n\t\t\treturn this.getRows().filter(function(row) {\n\t\t\t\treturn row.isCustom() && !row.isExpand();\n\t\t\t}).map(function(row) {\n\t\t\t\treturn row.getId();\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * @return {HTMLElement[]}\n\t\t */\n\t\tgetSourceRows: function()\n\t\t{\n\t\t\treturn BX.Grid.Utils.getBySelector(this.getParent().getTable(), [\n\t\t\t\t'.main-grid-header > tr',\n\t\t\t\t'.main-grid-header + tbody > tr'\n\t\t\t].join(', '));\n\t\t},\n\n\n\t\t/**\n\t\t * @return {HTMLElement[]}\n\t\t */\n\t\tgetSourceBodyChild: function()\n\t\t{\n\t\t\treturn this.getSourceRows().filter(function(current) {\n\t\t\t\treturn BX.Grid.Utils.closestParent(current).nodeName === 'TBODY';\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * @return {HTMLElement[]}\n\t\t */\n\t\tgetSourceHeadChild: function()\n\t\t{\n\t\t\treturn this.getSourceRows().filter(function(current) {\n\t\t\t\treturn BX.Grid.Utils.closestParent(current).nodeName === 'THEAD';\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * @return {HTMLElement[]}\n\t\t */\n\t\tgetSourceFootChild: function()\n\t\t{\n\t\t\treturn this.getSourceRows().filter(function(current) {\n\t\t\t\treturn BX.Grid.Utils.closestParent(current).nodeName === 'TFOOT';\n\t\t\t});\n\t\t},\n\n\t\thasEditable: function()\n\t\t{\n\t\t\treturn this.getBodyChild().some(function(current) {\n\t\t\t\treturn current.isEdit();\n\t\t\t});\n\t\t},\n\n\t\tinsertAfter: function(currentId, targetId)\n\t\t{\n\t\t\tconst currentRow = this.getById(currentId);\n\t\t\tconst targetRow = this.getById(targetId);\n\n\t\t\tif (currentRow && targetRow)\n\t\t\t{\n\t\t\t\tBX.Dom.insertAfter(currentRow.getNode(), targetRow.getNode());\n\t\t\t\tthis.reset();\n\t\t\t}\n\t\t},\n\n\t\tinsertBefore: function(currentId, targetId)\n\t\t{\n\t\t\tconst currentRow = this.getById(currentId);\n\t\t\tconst targetRow = this.getById(targetId);\n\n\t\t\tif (currentRow && targetRow)\n\t\t\t{\n\t\t\t\tBX.Dom.insertBefore(currentRow.getNode(), targetRow.getNode());\n\t\t\t\tthis.reset();\n\t\t\t}\n\t\t}\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\tBX.Grid.RowDragEvent = function(eventName)\n\t{\n\t\tthis.allowMoveRow = true;\n\t\tthis.allowInsertBeforeTarget = true;\n\t\tthis.dragItem = null;\n\t\tthis.targetItem = null;\n\t\tthis.eventName = eventName || '';\n\t\tthis.errorMessage = '';\n\t};\n\n\tBX.Grid.RowDragEvent.prototype = {\n\t\tallowMove() { this.allowMoveRow = true; this.errorMessage = ''; },\n\t\tallowInsertBefore() { this.allowInsertBeforeTarget = true; },\n\t\tdisallowMove(errorMessage) { this.allowMoveRow = false; this.errorMessage = errorMessage || ''; },\n\t\tdisallowInsertBefore() { this.allowInsertBeforeTarget = false; },\n\t\tgetDragItem() { return this.dragItem; },\n\t\tgetTargetItem() { return this.targetItem; },\n\t\tgetEventName() { return this.eventName; },\n\t\tsetDragItem(item) { return this.dragItem = item; },\n\t\tsetTargetItem(item) { return this.targetItem = item; },\n\t\tsetEventName(name) { return this.eventName = name; },\n\t\tisAllowedMove() { return this.allowMoveRow; },\n\t\tisAllowedInsertBefore() { return this.allowInsertBeforeTarget; },\n\t\tgetErrorMessage() { return this.errorMessage; },\n\t};\n\n\tBX.Grid.RowsSortable = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.list = null;\n\t\tthis.setDefaultProps();\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.RowsSortable.prototype = {\n\t\tinit(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tthis.list = this.getList();\n\t\t\tthis.prepareListItems();\n\t\t\tjsDD.Enable();\n\n\t\t\tif (!this.inited)\n\t\t\t{\n\t\t\t\tthis.inited = true;\n\t\t\t\tthis.onscrollDebounceHandler = BX.debounce(this._onWindowScroll, 300, this);\n\n\t\t\t\tif (!this.parent.getParam('ALLOW_ROWS_SORT_IN_EDIT_MODE', false))\n\t\t\t\t{\n\t\t\t\t\tBX.addCustomEvent('Grid::thereEditedRows', BX.proxy(this.disable, this));\n\t\t\t\t\tBX.addCustomEvent('Grid::noEditedRows', BX.proxy(this.enable, this));\n\t\t\t\t}\n\n\t\t\t\tdocument.addEventListener('scroll', this.onscrollDebounceHandler, BX.Grid.Utils.listenerParams({ passive: true }));\n\t\t\t}\n\t\t},\n\n\t\tdestroy()\n\t\t{\n\t\t\tif (!this.parent.getParam('ALLOW_ROWS_SORT_IN_EDIT_MODE', false))\n\t\t\t{\n\t\t\t\tBX.removeCustomEvent('Grid::thereEditedRows', BX.proxy(this.disable, this));\n\t\t\t\tBX.removeCustomEvent('Grid::noEditedRows', BX.proxy(this.enable, this));\n\t\t\t}\n\n\t\t\tdocument.removeEventListener('scroll', this.onscrollDebounceHandler, BX.Grid.Utils.listenerParams({ passive: true }));\n\t\t\tthis.unregisterObjects();\n\t\t},\n\n\t\t_onWindowScroll()\n\t\t{\n\t\t\tthis.windowScrollTop = BX.scrollTop(window);\n\t\t\tthis.rowsRectList = null;\n\t\t},\n\n\t\tdisable()\n\t\t{\n\t\t\tthis.unregisterObjects();\n\t\t},\n\n\t\tenable()\n\t\t{\n\t\t\tthis.reinit();\n\t\t},\n\n\t\treinit()\n\t\t{\n\t\t\tthis.unregisterObjects();\n\t\t\tthis.setDefaultProps();\n\t\t\tthis.init(this.parent);\n\t\t},\n\n\t\tgetList()\n\t\t{\n\t\t\treturn this.parent.getRows().getSourceBodyChild();\n\t\t},\n\n\t\tunregisterObjects()\n\t\t{\n\t\t\tthis.list.forEach(this.unregister, this);\n\t\t},\n\n\t\tprepareListItems()\n\t\t{\n\t\t\tthis.list.forEach(this.register, this);\n\t\t},\n\n\t\tregister(row)\n\t\t{\n\t\t\tconst Rows = this.parent.getRows();\n\t\t\tconst rowInstance = Rows.get(row);\n\t\t\tif (rowInstance && rowInstance.isDraggable())\n\t\t\t{\n\t\t\t\trow.onbxdragstart = BX.delegate(this._onDragStart, this);\n\t\t\t\trow.onbxdrag = BX.delegate(this._onDrag, this);\n\t\t\t\trow.onbxdragstop = BX.delegate(this._onDragEnd, this);\n\t\t\t\tjsDD.registerObject(row);\n\t\t\t}\n\t\t},\n\n\t\tunregister(row)\n\t\t{\n\t\t\tjsDD.unregisterObject(row);\n\t\t},\n\n\t\tgetIndex(item)\n\t\t{\n\t\t\treturn BX.Grid.Utils.getIndex(this.list, item);\n\t\t},\n\n\t\tcalcOffset()\n\t\t{\n\t\t\tlet offset = this.dragRect.height;\n\n\t\t\tif (this.additionalDragItems.length > 0)\n\t\t\t{\n\t\t\t\tthis.additionalDragItems.forEach((row) => {\n\t\t\t\t\toffset += row.clientHeight;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn offset;\n\t\t},\n\n\t\tgetTheadCells(sourceCells)\n\t\t{\n\t\t\treturn [].map.call(sourceCells, (cell, index) => {\n\t\t\t\treturn {\n\t\t\t\t\tblock: '',\n\t\t\t\t\ttag: 'th',\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tstyle: `width: ${BX.width(sourceCells[index])}px;`,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\n\t\tcreateFake()\n\t\t{\n\t\t\tconst content = [];\n\t\t\tthis.cloneDragItem = BX.clone(this.dragItem);\n\t\t\tthis.cloneDragAdditionalDragItems = [];\n\t\t\tthis.cloneDragAdditionalDragItemRows = [];\n\n\t\t\tconst theadCellsDecl = this.getTheadCells(this.dragItem.cells);\n\t\t\tcontent.push(this.cloneDragItem);\n\n\t\t\tthis.additionalDragItems.forEach(function(row) {\n\t\t\t\tconst cloneRow = BX.clone(row);\n\t\t\t\tcontent.push(cloneRow);\n\t\t\t\tthis.cloneDragAdditionalDragItems.push(cloneRow);\n\t\t\t\tthis.cloneDragAdditionalDragItemRows.push(new BX.Grid.Row(this.parent, cloneRow));\n\t\t\t}, this);\n\n\t\t\tconst tableWidth = BX.width(this.parent.getTable());\n\n\t\t\tthis.fake = BX.decl({\n\t\t\t\tblock: 'main-grid-fake-container',\n\t\t\t\tattrs: {\n\t\t\t\t\tstyle: `position: absolute; top: ${this.getDragStartRect().top}px; width: ${tableWidth}px`,\n\t\t\t\t},\n\t\t\t\tcontent: {\n\t\t\t\t\tblock: 'main-grid-table',\n\t\t\t\t\tmix: 'main-grid-table-fake',\n\t\t\t\t\ttag: 'table',\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tstyle: `width: ${tableWidth}px`,\n\t\t\t\t\t},\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tblock: 'main-grid-header',\n\t\t\t\t\t\t\ttag: 'thead',\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tblock: 'main-grid-row-head',\n\t\t\t\t\t\t\t\ttag: 'tr',\n\t\t\t\t\t\t\t\tcontent: theadCellsDecl,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tblock: '',\n\t\t\t\t\t\t\ttag: 'tbody',\n\t\t\t\t\t\t\tcontent,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tBX.insertAfter(this.fake, this.parent.getTable());\n\n\t\t\tthis.cloneDragItem = new BX.Grid.Row(this.parent, this.cloneDragItem);\n\n\t\t\treturn this.fake;\n\t\t},\n\n\t\tgetDragStartRect()\n\t\t{\n\t\t\treturn BX.pos(this.dragItem, this.parent.getTable());\n\t\t},\n\n\t\t_onDragStart()\n\t\t{\n\t\t\tthis.moved = false;\n\t\t\tthis.dragItem = jsDD.current_node;\n\t\t\tthis.targetItem = this.dragItem;\n\t\t\tthis.additionalDragItems = this.getAdditionalDragItems(this.dragItem);\n\t\t\tthis.dragIndex = this.getIndex(this.dragItem);\n\t\t\tthis.dragRect = this.getRowRect(this.dragItem, this.dragIndex);\n\t\t\tthis.offset = this.calcOffset();\n\t\t\tthis.dragStartOffset = (jsDD.start_y - this.dragRect.top);\n\t\t\tthis.dragEvent = new BX.Grid.RowDragEvent();\n\t\t\tthis.dragEvent.setEventName('BX.Main.grid:rowDragStart');\n\t\t\tthis.dragEvent.setDragItem(this.dragItem);\n\t\t\tthis.dragEvent.setTargetItem(this.targetItem);\n\t\t\tthis.dragEvent.allowInsertBefore();\n\n\t\t\tconst dragRow = this.parent.getRows().get(this.dragItem);\n\t\t\tthis.startDragDepth = dragRow.getDepth();\n\t\t\tthis.startDragParentId = dragRow.getParentId();\n\n\t\t\tthis.createFake();\n\n\t\t\tBX.addClass(this.parent.getContainer(), this.parent.settings.get('classOnDrag'));\n\t\t\tBX.addClass(this.dragItem, this.parent.settings.get('classDragActive'));\n\t\t\tBX.onCustomEvent(window, 'BX.Main.grid:rowDragStart', [this.dragEvent, this.parent]);\n\t\t},\n\n\t\tgetAdditionalDragItems(dragItem)\n\t\t{\n\t\t\tconst Rows = this.parent.getRows();\n\n\t\t\treturn Rows.getRowsByParentId(Rows.get(dragItem).getId(), true).map((row) => {\n\t\t\t\treturn row.getNode();\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @param {?HTMLElement} row\n\t\t * @param {int} offset\n\t\t * @param {?int} [transition] css transition-duration in ms\n\t\t */\n\t\tmoveRow(row, offset, transition)\n\t\t{\n\t\t\tif (row)\n\t\t\t{\n\t\t\t\tconst transitionDuration = BX.type.isNumber(transition) ? transition : 300;\n\t\t\t\trow.style.transition = `${transitionDuration}ms`;\n\t\t\t\trow.style.transform = `translate3d(0px, ${offset}px, 0px)`;\n\t\t\t}\n\t\t},\n\n\t\tgetDragOffset()\n\t\t{\n\t\t\treturn jsDD.y - this.dragRect.top - this.dragStartOffset;\n\t\t},\n\n\t\tgetWindowScrollTop()\n\t\t{\n\t\t\tif (this.windowScrollTop === null)\n\t\t\t{\n\t\t\t\tthis.windowScrollTop = BX.scrollTop(window);\n\t\t\t}\n\n\t\t\treturn this.windowScrollTop;\n\t\t},\n\n\t\tgetSortOffset()\n\t\t{\n\t\t\treturn jsDD.y;\n\t\t},\n\n\t\tgetRowRect(row, index)\n\t\t{\n\t\t\tif (!this.rowsRectList)\n\t\t\t{\n\t\t\t\tthis.rowsRectList = {};\n\n\t\t\t\tthis.list.forEach(function(current, i) {\n\t\t\t\t\tthis.rowsRectList[i] = current.getBoundingClientRect();\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\treturn this.rowsRectList[index];\n\t\t},\n\n\t\tgetRowCenter(row, index)\n\t\t{\n\t\t\tconst rect = this.getRowRect(row, index);\n\n\t\t\treturn rect.top + this.getWindowScrollTop() + (rect.height / 2);\n\t\t},\n\n\t\tisDragToBottom(row, index)\n\t\t{\n\t\t\tconst rowCenter = this.getRowCenter(row, index);\n\t\t\tconst sortOffset = this.getSortOffset();\n\n\t\t\treturn index > this.dragIndex && rowCenter < sortOffset;\n\t\t},\n\n\t\tisMovedToBottom(row)\n\t\t{\n\t\t\treturn row.style.transform === `translate3d(0px, ${-this.offset}px, 0px)`;\n\t\t},\n\n\t\tisDragToTop(row, index)\n\t\t{\n\t\t\tconst rowCenter = this.getRowCenter(row, index);\n\t\t\tconst sortOffset = this.getSortOffset();\n\n\t\t\treturn index < this.dragIndex && rowCenter > sortOffset;\n\t\t},\n\n\t\tisMovedToTop(row)\n\t\t{\n\t\t\treturn row.style.transform === `translate3d(0px, ${this.offset}px, 0px)`;\n\t\t},\n\n\t\tisDragToBack(row, index)\n\t\t{\n\t\t\tconst rowCenter = this.getRowCenter(row, index);\n\t\t\tconst dragIndex = this.dragIndex;\n\t\t\tconst y = jsDD.y;\n\n\t\t\treturn (index > dragIndex && y < rowCenter) || (index < dragIndex && y > rowCenter);\n\t\t},\n\n\t\tisMoved(row)\n\t\t{\n\t\t\treturn (row.style.transform !== 'translate3d(0px, 0px, 0px)' && row.style.transform !== '');\n\t\t},\n\n\t\t_onDrag()\n\t\t{\n\t\t\tconst dragTransitionDuration = 0;\n\t\t\tconst defaultOffset = 0;\n\n\t\t\tthis.moveRow(this.dragItem, this.getDragOffset(), dragTransitionDuration);\n\t\t\tthis.moveRow(this.fake, this.getDragOffset(), dragTransitionDuration);\n\t\t\tBX.Grid.Utils.styleForEach(this.additionalDragItems, {\n\t\t\t\ttransition: `${dragTransitionDuration}ms`,\n\t\t\t\ttransform: `translate3d(0px, ${this.getDragOffset()}px, 0px)`,\n\t\t\t});\n\n\t\t\tthis.list.forEach(function(current, index) {\n\t\t\t\tif (Boolean(current) && current !== this.dragItem && !this.additionalDragItems.includes(current))\n\t\t\t\t{\n\t\t\t\t\tif (this.isDragToTop(current, index) && !this.isMovedToTop(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.targetItem = current;\n\t\t\t\t\t\tthis.moveRow(current, this.offset);\n\t\t\t\t\t\tthis.dragEvent.setEventName('BX.Main.grid:rowDragMove');\n\t\t\t\t\t\tthis.dragEvent.setTargetItem(this.targetItem);\n\t\t\t\t\t\tBX.onCustomEvent(window, 'BX.Main.grid:rowDragMove', [this.dragEvent, this.parent]);\n\t\t\t\t\t\tthis.checkError(this.dragEvent);\n\t\t\t\t\t\tthis.updateProperties(this.dragItem, this.targetItem);\n\t\t\t\t\t\tthis.isDragetToTop = true;\n\t\t\t\t\t\tthis.moved = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.isDragToBottom(current, index) && !this.isMovedToBottom(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.targetItem = this.findNextVisible(this.list, index);\n\t\t\t\t\t\tthis.moveRow(current, -this.offset);\n\t\t\t\t\t\tthis.dragEvent.setEventName('BX.Main.grid:rowDragMove');\n\t\t\t\t\t\tthis.dragEvent.setTargetItem(this.targetItem);\n\t\t\t\t\t\tBX.onCustomEvent(window, 'BX.Main.grid:rowDragMove', [this.dragEvent, this.parent]);\n\t\t\t\t\t\tthis.checkError(this.dragEvent);\n\t\t\t\t\t\tthis.updateProperties(this.dragItem, this.targetItem);\n\t\t\t\t\t\tthis.isDragetToTop = false;\n\n\t\t\t\t\t\tif (this.targetItem)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.moved = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.isDragToBack(current, index) && this.isMoved(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.moveRow(current, defaultOffset);\n\t\t\t\t\t\tthis.targetItem = current;\n\n\t\t\t\t\t\tif (this.isDragetToTop)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.targetItem = this.findNextVisible(this.list, index);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.moved = true;\n\n\t\t\t\t\t\tthis.dragEvent.setEventName('BX.Main.grid:rowDragMove');\n\t\t\t\t\t\tthis.dragEvent.setTargetItem(this.targetItem);\n\n\t\t\t\t\t\tBX.onCustomEvent(window, 'BX.Main.grid:rowDragMove', [this.dragEvent, this.parent]);\n\t\t\t\t\t\tthis.checkError(this.dragEvent);\n\t\t\t\t\t\tthis.updateProperties(this.dragItem, this.targetItem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, this);\n\t\t},\n\n\t\tcreateError(target, message)\n\t\t{\n\t\t\tconst error = BX.decl({\n\t\t\t\tblock: 'main-grid-error',\n\t\t\t\tcontent: message || '',\n\t\t\t});\n\n\t\t\tBoolean(target) && target.appendChild(error);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tBX.addClass(error, 'main-grid-error-show');\n\t\t\t}, 0);\n\n\t\t\treturn error;\n\t\t},\n\n\t\tcheckError(event)\n\t\t{\n\t\t\tif (!event.isAllowedMove() && !this.error)\n\t\t\t{\n\t\t\t\tthis.error = this.createError(this.fake, event.getErrorMessage());\n\t\t\t}\n\n\t\t\tif (event.isAllowedMove() && this.error)\n\t\t\t{\n\t\t\t\tBX.remove(this.error);\n\t\t\t\tthis.error = null;\n\t\t\t}\n\t\t},\n\n\t\tfindNextVisible(list, index)\n\t\t{\n\t\t\tlet result = null;\n\t\t\tconst Rows = this.parent.getRows();\n\n\t\t\tlist.forEach((item, currentIndex) => {\n\t\t\t\tif (!result && currentIndex > index)\n\t\t\t\t{\n\t\t\t\t\tconst row = Rows.get(item);\n\t\t\t\t\tif (row && row.isShown())\n\t\t\t\t\t{\n\t\t\t\t\t\tresult = item;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result;\n\t\t},\n\n\t\t/**\n\t\t * Updates row properties\n\t\t * @param {?HTMLTableRowElement} dragItem\n\t\t * @param {?HTMLTableRowElement} targetItem\n\t\t */\n\t\tupdateProperties(dragItem, targetItem)\n\t\t{\n\t\t\tconst Rows = this.parent.getRows();\n\t\t\tconst dragRow = Rows.get(dragItem);\n\t\t\tlet depth = 0;\n\t\t\tlet parentId = 0;\n\n\t\t\tif (targetItem)\n\t\t\t{\n\t\t\t\tconst targetRow = Rows.get(targetItem);\n\t\t\t\tdepth = targetRow.getDepth();\n\t\t\t\tparentId = targetRow.getParentId();\n\t\t\t}\n\n\t\t\tdragRow.setDepth(depth);\n\t\t\tdragRow.setParentId(parentId);\n\n\t\t\tthis.cloneDragItem.setDepth(depth);\n\t\t\tthis.cloneDragAdditionalDragItemRows.forEach(function(row, index) {\n\t\t\t\trow.setDepth(BX.data(this.additionalDragItems[index], 'depth'));\n\t\t\t}, this);\n\t\t},\n\n\t\tresetDragProperties()\n\t\t{\n\t\t\tconst dragRow = this.parent.getRows().get(this.dragItem);\n\t\t\tdragRow.setDepth(this.startDragDepth);\n\t\t\tdragRow.setParentId(this.startDragParentId);\n\t\t},\n\n\t\t_onDragOver() {},\n\n\t\t_onDragLeave() {},\n\n\t\t_onDragEnd()\n\t\t{\n\t\t\tBX.onCustomEvent(window, 'BX.Main.grid:rowDragEnd', [this.dragEvent, this.parent]);\n\n\t\t\tBX.removeClass(this.parent.getContainer(), this.parent.settings.get('classOnDrag'));\n\t\t\tBX.removeClass(this.dragItem, this.parent.settings.get('classDragActive'));\n\n\t\t\tBX.Grid.Utils.styleForEach(this.list, { transition: '', transform: '' });\n\n\t\t\tif (this.dragEvent.isAllowedMove())\n\t\t\t{\n\t\t\t\tthis.sortRows(this.dragItem, this.targetItem);\n\t\t\t\tthis.sortAdditionalDragItems(this.dragItem, this.additionalDragItems);\n\n\t\t\t\tthis.list = this.getList();\n\t\t\t\tthis.parent.getRows().reset();\n\n\t\t\t\tconst dragItem = this.parent.getRows().get(this.dragItem);\n\t\t\t\tconst ids = this.parent.getRows().getBodyChild().map((row) => {\n\t\t\t\t\treturn row.getId();\n\t\t\t\t});\n\n\t\t\t\tif (this.parent.getParam('ALLOW_ROWS_SORT_INSTANT_SAVE', true))\n\t\t\t\t{\n\t\t\t\t\tthis.saveRowsSort(ids);\n\t\t\t\t}\n\n\t\t\t\tBX.onCustomEvent(window, 'Grid::rowMoved', [ids, dragItem, this.parent]);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.resetDragProperties();\n\t\t\t}\n\n\t\t\tBX.remove(this.fake);\n\n\t\t\tthis.setDefaultProps();\n\t\t},\n\n\t\tsortAdditionalDragItems(dragItem, additional)\n\t\t{\n\t\t\tadditional.reduce((prev, current) => {\n\t\t\t\tBoolean(current) && BX.insertAfter(current, prev);\n\n\t\t\t\treturn current;\n\t\t\t}, dragItem);\n\t\t},\n\n\t\tsortRows(current, target)\n\t\t{\n\t\t\tif (target)\n\t\t\t{\n\t\t\t\ttarget.parentNode.insertBefore(current, target);\n\t\t\t}\n\t\t\telse if (this.moved)\n\t\t\t{\n\t\t\t\tcurrent.parentNode.appendChild(current);\n\t\t\t}\n\t\t},\n\n\t\tsaveRowsSort(rows)\n\t\t{\n\t\t\tconst data = {\n\t\t\t\tids: rows,\n\t\t\t\taction: this.parent.getUserOptions().getAction('GRID_SAVE_ROWS_SORT'),\n\t\t\t};\n\n\t\t\tthis.parent.getData().request(null, 'POST', data);\n\t\t},\n\n\t\tsetDefaultProps()\n\t\t{\n\t\t\tthis.moved = false;\n\t\t\tthis.dragItem = null;\n\t\t\tthis.targetItem = null;\n\t\t\tthis.dragRect = null;\n\t\t\tthis.dragIndex = null;\n\t\t\tthis.offset = null;\n\t\t\tthis.realX = null;\n\t\t\tthis.realY = null;\n\t\t\tthis.dragStartOffset = null;\n\t\t\tthis.windowScrollTop = null;\n\t\t\tthis.rowsRectList = null;\n\t\t\tthis.error = false;\n\t\t},\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.Settings\n\t * @constructor\n\t */\n\tBX.Grid.Settings = function()\n\t{\n\t\tthis.settings = {};\n\t\tthis.defaultSettings = {\n\t\t\tclassContainer: 'main-grid',\n\t\t\tclassWrapper: 'main-grid-wrapper',\n\t\t\tclassTable: 'main-grid-table',\n\t\t\tclassScrollContainer: 'main-grid-container',\n\t\t\tclassFadeContainer: 'main-grid-fade',\n\t\t\tclassFadeContainerRight: 'main-grid-fade-right',\n\t\t\tclassFadeContainerLeft: 'main-grid-fade-left',\n\t\t\tclassNavPanel: 'main-grid-nav-panel',\n\t\t\tclassActionPanel: 'main-grid-action-panel',\n\t\t\tclassCursor: 'main-grid-cursor',\n\t\t\tclassRowCustom: 'main-grid-row-custom',\n\t\t\tclassMoreButton: 'main-grid-more-btn',\n\t\t\tclassRow: 'main-grid-row',\n\t\t\tclassHeadRow: 'main-grid-row-head',\n\t\t\tclassBodyRow: 'main-grid-row-body',\n\t\t\tclassFootRow: 'main-grid-row-foot',\n\t\t\tclassDataRows: 'main-grid-row-data',\n\t\t\tclassPanels: 'main-grid-bottom-panels',\n\t\t\tclassCellHeadContainer: 'main-grid-cell-head-container',\n\t\t\tclassCellHeadOndrag: 'main-grid-cell-head-ondrag',\n\t\t\tclassEmptyRows: 'main-grid-row-empty',\n\t\t\tclassEmptyBlock: 'main-grid-empty-block',\n\t\t\tclassCheckAllCheckboxes: 'main-grid-check-all',\n\t\t\tclassCheckedRow: 'main-grid-row-checked',\n\t\t\tclassRowCheckbox: 'main-grid-row-checkbox',\n\t\t\tclassPagination: 'main-grid-panel-cell-pagination',\n\t\t\tclassActionCol: 'main-grid-cell-action',\n\t\t\tclassCounterDisplayed: 'main-grid-counter-displayed',\n\t\t\tclassCounterSelected: 'main-grid-counter-selected',\n\t\t\tclassCounterTotal: 'main-grid-panel-total',\n\t\t\tclassTableFade: 'main-grid-table-fade',\n\t\t\tclassDragActive: 'main-grid-on-row-drag',\n\t\t\tclassResizeButton: 'main-grid-resize-button',\n\t\t\tclassOnDrag: 'main-grid-ondrag',\n\t\t\tclassDisableDrag: 'main-grid-row-drag-disabled',\n\t\t\tclassPanelCellContent: 'main-grid-panel-content',\n\t\t\tclassCollapseButton: 'main-grid-plus-button',\n\t\t\tclassRowStateLoad: 'main-grid-load-row',\n\t\t\tclassRowStateExpand: 'main-grid-row-expand',\n\t\t\tclassHeaderSortable: 'main-grid-col-sortable',\n\t\t\tclassHeaderNoSortable: 'main-grid-col-no-sortable',\n\t\t\tclassCellStatic: 'main-grid-cell-static',\n\t\t\tclassHeadCell: 'main-grid-cell-head',\n\t\t\tclassPageSize: 'main-grid-panel-select-pagesize',\n\t\t\tclassGroupEditButton: 'main-grid-control-panel-action-edit',\n\t\t\tclassGroupDeleteButton: 'main-grid-control-panel-action-remove',\n\t\t\tclassGroupActionsDisabled: 'main-grid-control-panel-action-icon-disable',\n\t\t\tclassPanelButton: 'ui-btn',\n\t\t\tclassPanelApplyButton: 'main-grid-control-panel-apply-button',\n\t\t\tclassPanelCheckbox: 'main-grid-panel-checkbox',\n\t\t\tclassEditor: 'main-grid-editor',\n\t\t\tclassEditorContainer: 'main-grid-editor-container',\n\t\t\tclassEditorText: 'main-grid-editor-text',\n\t\t\tclassEditorDate: 'main-grid-editor-date',\n\t\t\tclassEditorNumber: 'main-grid-editor-number',\n\t\t\tclassEditorRange: 'main-grid-editor-range',\n\t\t\tclassEditorCheckbox: 'main-grid-editor-checkbox',\n\t\t\tclassEditorTextarea: 'main-grid-editor-textarea',\n\t\t\tclassEditorCustom: 'main-grid-editor-custom',\n\t\t\tclassEditorMoney: 'main-grid-editor-money',\n\t\t\tclassCellContainer: 'main-grid-cell-content',\n\t\t\tclassEditorOutput: 'main-grid-editor-output',\n\t\t\tclassSettingsWindow: 'main-grid-settings-window',\n\t\t\tclassSettingsWindowColumn: 'main-grid-settings-window-list-item',\n\t\t\tclassSettingsWindowColumnLabel: 'main-grid-settings-window-list-item-label',\n\t\t\tclassSettingsWindowColumnEditState: 'main-grid-settings-window-list-item-edit',\n\t\t\tclassSettingsWindowColumnEditInput: 'main-grid-settings-window-list-item-edit-input',\n\t\t\tclassSettingsWindowColumnEditButton: 'main-grid-settings-window-list-item-edit-button',\n\t\t\tclassSettingsWindowColumnCheckbox: 'main-grid-settings-window-list-item-checkbox',\n\t\t\tclassSettingsWindowShow: 'main-grid-settings-window-show',\n\t\t\tclassSettingsWindowSelectAll: 'main-grid-settings-window-select-all',\n\t\t\tclassSettingsWindowUnselectAll: 'main-grid-settings-window-unselect-all',\n\t\t\tclassSettingsWindowSearchSectionsWrapper: 'main-grid-settings-window-search-section-wrapper',\n\t\t\tclassSettingsWindowSearchActiveSectionIcon: 'main-grid-settings-window-search-section-item-icon-active',\n\t\t\tclassSettingsWindowSearchSectionInput: 'main-grid-settings-window-search-section-input',\n\t\t\tclassSettingsWindowSearchSectionItemHidden: 'main-grid-settings-window-list-item-hidden',\n\t\t\tclassSettingsWindowSearchSectionItemVisible: 'main-grid-settings-window-list-item-visible',\n\t\t\tclassSettingsButton: 'main-grid-interface-settings-icon',\n\t\t\tclassSettingsButtonActive: 'main-grid-interface-settings-icon-active',\n\t\t\tclassSettingsWindowClose: 'main-grid-settings-window-actions-item-close',\n\t\t\tclassSettingsWindowReset: 'main-grid-settings-window-actions-item-reset',\n\t\t\tclassSettingsWindowColumnChecked: 'main-grid-settings-window-list-item-checked',\n\t\t\tclassShowAnimation: 'main-grid-show-popup-animation',\n\t\t\tclassCloseAnimation: 'main-grid-close-popup-animation',\n\t\t\tclassLoader: 'main-grid-loader-container',\n\t\t\tclassLoaderShow: 'main-grid-show-loader',\n\t\t\tclassLoaderHide: 'main-grid-hide-loader',\n\t\t\tclassRowError: 'main-grid-error',\n\t\t\tloaderHideAnimationName: 'hideLoader',\n\t\t\tclassHide: 'main-grid-hide',\n\t\t\tclassEar: 'main-grid-ear',\n\t\t\tclassEarLeft: 'main-grid-ear-left',\n\t\t\tclassEarRight: 'main-grid-ear-right',\n\t\t\tclassNotCount: 'main-grid-not-count',\n\t\t\tclassCounter: 'main-grid-panel-counter',\n\t\t\tclassForAllCounterEnabled: 'main-grid-panel-counter-for-all-enable',\n\t\t\tclassLoad: 'load',\n\t\t\tclassRowActionButton: 'main-grid-row-action-button',\n\t\t\tclassDropdown: 'main-dropdown',\n\t\t\tclassPanelControl: 'main-grid-panel-control',\n\t\t\tclassPanelControlContainer: 'main-grid-panel-control-container',\n\t\t\tclassForAllCheckbox: 'main-grid-for-all-checkbox',\n\t\t\tclassDisable: 'main-grid-disable',\n\t\t\tdataActionsKey: 'actions',\n\t\t\tupdateActionMore: 'more',\n\t\t\tclassShow: 'show',\n\t\t\tclassGridShow: 'main-grid-show',\n\t\t\tupdateActionPagination: 'pagination',\n\t\t\tupdateActionSort: 'sort',\n\t\t\tajaxIdDataProp: 'ajaxid',\n\t\t\tpageSizeId: 'grid_page_size',\n\t\t\tsortableRows: true,\n\t\t\tsortableColumns: true,\n\t\t\tanimationDuration: 300,\n\t\t};\n\t\tthis.prepare();\n\t};\n\n\tBX.Grid.Settings.prototype = {\n\t\tprepare()\n\t\t{\n\t\t\tthis.settings = this.defaultSettings;\n\t\t},\n\n\t\tgetDefault()\n\t\t{\n\t\t\treturn this.defaultSettings;\n\t\t},\n\n\t\tget(name)\n\t\t{\n\t\t\tlet result;\n\n\t\t\ttry\n\t\t\t{\n\t\t\t\tresult = (this.getDefault())[name];\n\t\t\t}\n\t\t\tcatch\n\t\t\t{\n\t\t\t\tresult = null;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetList()\n\t\t{\n\t\t\treturn this.getDefault();\n\t\t},\n\t};\n})();\n","import { Reflection, Text, Type } from 'main.core';\nimport { BaseEvent } from 'main.core.events';\nimport {\n\tCheckboxList as UiCheckboxList,\n\tCheckboxListCategory,\n\tCheckboxListOption,\n\tCheckboxListSection,\n} from 'ui.dialogs.checkbox-list';\nimport type { PopupInterface } from './popup-interface';\n\nconst namespace = Reflection.namespace('BX.Grid.SettingsWindow');\n\ntype CheckboxListOptions = {\n\tsections?: Object[],\n\tcategories?: Object[],\n\tcolumnsWithSections?: Object[];\n\tcolumns?: Object[];\n\tchecked?: string[];\n}\n\ntype CheckboxListParams = {\n\tgrid: BX.Main.grid;\n\tparent: Object;\n\ttitle: string;\n\tisUseLazyLoadColumns: boolean;\n}\n\nconst SAVE_FOR_ALL = 'forAll';\nconst SAVE_FOR_ME = 'forMe';\n\nclass CheckboxList implements PopupInterface\n{\n\tparams: CheckboxListParams = {};\n\tgrid: BX.Main.grid;\n\tparent: BX.Grid.SettingsWindow;\n\tuseSearch: boolean;\n\tuseSectioning: boolean;\n\toptions: CheckboxListOptions = {};\n\n\tstickyColumns: Set<string> = new Set();\n\tpopup: UiCheckboxList = null;\n\tpopupItems: HTMLCollection = null;\n\n\tconstructor(params: CheckboxListParams)\n\t{\n\t\tthis.params = params;\n\n\t\tthis.grid = params.grid;\n\t\tthis.parent = params.parent;\n\t\tthis.options = this.grid.arParams.CHECKBOX_LIST_OPTIONS;\n\n\t\tthis.useSearch = Boolean(this.grid.arParams.ENABLE_FIELDS_SEARCH);\n\t\tthis.useSectioning = Type.isArrayFilled(this.options.sections);\n\t\tthis.isForAllValue = false;\n\t}\n\n\tgetPopup(): UiCheckboxList\n\t{\n\t\tif (!this.popup)\n\t\t{\n\t\t\tthis.createPopup();\n\t\t}\n\n\t\treturn this.popup;\n\t}\n\n\tcreatePopup(): void\n\t{\n\t\tif (this.popup)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst {\n\t\t\tuseSearch,\n\t\t\tuseSectioning,\n\t\t\tparams: { title, placeholder, emptyStateTitle, emptyStateDescription, allSectionsDisabledTitle },\n\t\t} = this;\n\n\t\tconst context = {\n\t\t\tparentType: 'grid',\n\t\t};\n\n\t\tthis.popup = new UiCheckboxList({\n\t\t\tcontext,\n\t\t\tpopupOptions: {\n\t\t\t\twidth: 1100,\n\t\t\t},\n\t\t\tcolumnCount: 4,\n\t\t\tlang: {\n\t\t\t\ttitle,\n\t\t\t\tplaceholder,\n\t\t\t\temptyStateTitle,\n\t\t\t\temptyStateDescription,\n\t\t\t\tallSectionsDisabledTitle,\n\t\t\t},\n\t\t\tsections: this.getSections(),\n\t\t\tcategories: this.getCategories(),\n\t\t\toptions: this.getOptions(),\n\t\t\tevents: {\n\t\t\t\tonApply: (event) => this.onApply(event),\n\t\t\t\tonDefault: (event) => this.onDefault(event),\n\t\t\t},\n\t\t\tparams: {\n\t\t\t\tuseSearch,\n\t\t\t\tuseSectioning,\n\t\t\t\tdestroyPopupAfterClose: false,\n\t\t\t\tcloseAfterApply: false,\n\t\t\t\tisEditableOptionsTitle: true,\n\t\t\t},\n\t\t\tcustomFooterElements: this.getCustomFooterElements(),\n\t\t});\n\t}\n\n\tgetSections(): CheckboxListSection[]\n\t{\n\t\tconst sections = this.options.sections ?? [];\n\n\t\tconst result = [];\n\t\tsections.forEach((section) => {\n\t\t\tconst { id, name, selected } = section;\n\n\t\t\tresult.push({\n\t\t\t\tkey: id,\n\t\t\t\ttitle: name,\n\t\t\t\tvalue: selected,\n\t\t\t});\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tgetCategories(): CheckboxListCategory[]\n\t{\n\t\tconst categories = this.options.categories ?? [];\n\n\t\tconst result = [];\n\n\t\tif (categories.length === 0)\n\t\t{\n\t\t\tthis.getSections().forEach((section) => {\n\t\t\t\tconst { key, title } = section;\n\n\t\t\t\tresult.push({\n\t\t\t\t\tkey,\n\t\t\t\t\ttitle,\n\t\t\t\t\tsectionKey: key,\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn result;\n\t\t}\n\n\t\tcategories.forEach((category) => {\n\t\t\tconst { title, sectionKey, key } = category;\n\n\t\t\tresult.push({\n\t\t\t\ttitle,\n\t\t\t\tsectionKey,\n\t\t\t\tkey,\n\t\t\t});\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tgetOptions(): CheckboxListOption[]\n\t{\n\t\tconst options = this.options;\n\t\tconst columns = options.columns ?? [];\n\t\tconst columnsWithSections = options.columnsWithSections ?? [];\n\t\tconst result = [];\n\t\tconst customNames = this.grid.getUserOptions().getCurrentOptions()?.custom_names ?? {};\n\n\t\tif (this.useSectioning)\n\t\t{\n\t\t\tfor (const sectionName in columnsWithSections)\n\t\t\t{\n\t\t\t\tcolumnsWithSections[sectionName].forEach((column) => {\n\t\t\t\t\tconst { id, default: defaultValue } = column;\n\t\t\t\t\tlet { name: title } = column;\n\t\t\t\t\tif (Type.isPlainObject(customNames) && Object.hasOwn(customNames, 'id'))\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle = customNames[id];\n\t\t\t\t\t}\n\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\ttitle: Text.decode(title),\n\t\t\t\t\t\tvalue: this.isChecked(id),\n\t\t\t\t\t\tcategoryKey: sectionName,\n\t\t\t\t\t\tdefaultValue,\n\t\t\t\t\t\tid,\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.prepareColumnParams(column);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tcolumns.forEach((column) => {\n\t\t\tconst {\n\t\t\t\tid,\n\t\t\t\tname: title,\n\t\t\t\tdefault: defaultValue,\n\t\t\t} = column;\n\n\t\t\tresult.push({\n\t\t\t\ttitle: Text.decode(title),\n\t\t\t\tvalue: this.isChecked(id),\n\t\t\t\tdefaultValue,\n\t\t\t\tid,\n\t\t\t});\n\n\t\t\tthis.prepareColumnParams(column);\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tisChecked(fieldName: string): boolean\n\t{\n\t\tconst checked = this.options.checked ?? [];\n\n\t\treturn checked.includes(fieldName);\n\t}\n\n\tprepareColumnParams(column: Object): void\n\t{\n\t\tconst { sticked, id } = column;\n\n\t\tif (sticked)\n\t\t{\n\t\t\tthis.stickyColumns.add(id);\n\t\t}\n\t}\n\n\tgetCustomFooterElements(): Object[]\n\t{\n\t\tif (this.isAdmin())\n\t\t{\n\t\t\tconst { arParams: params, containerId } = this.parent;\n\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\ttype: 'textToggle',\n\t\t\t\t\tid: `${containerId}-${SAVE_FOR_ALL}`,\n\t\t\t\t\ttitle: params.SETTINGS_FOR_LABEL,\n\t\t\t\t\tdataItems: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: SAVE_FOR_ME,\n\t\t\t\t\t\t\tlabel: params.SETTINGS_FOR_FOR_ME_LABEL,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: SAVE_FOR_ALL,\n\t\t\t\t\t\t\tlabel: params.SETTINGS_FOR_FOR_ALL_LABEL,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t// eslint-disable-next-line no-return-assign\n\t\t\t\t\tonClick: (value: boolean) => {\n\t\t\t\t\t\tthis.isForAllValue = (value === SAVE_FOR_ALL);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\treturn [];\n\t}\n\n\tshow(): void\n\t{\n\t\tthis.popup.show();\n\t}\n\n\tgetStickedColumns(): string[]\n\t{\n\t\tconst {\n\t\t\tALLOW_STICKED_COLUMNS: isStickyColumnsAllowed,\n\t\t\tHAS_STICKED_COLUMNS: hasStickyColumns,\n\t\t} = this.parent.arParams;\n\n\t\tif (isStickyColumnsAllowed && hasStickyColumns)\n\t\t{\n\t\t\treturn this.stickyColumns.values();\n\t\t}\n\n\t\treturn [];\n\t}\n\n\tonApply(event): void\n\t{\n\t\tconst { fields: columns, data } = event.data;\n\n\t\tif (this.isForAll())\n\t\t{\n\t\t\tconst params = {\n\t\t\t\tCONFIRM: true,\n\t\t\t\tCONFIRM_MESSAGE: this.grid.getParam('SETTINGS_FOR_ALL_CONFIRM_MESSAGE'),\n\t\t\t};\n\n\t\t\tthis.grid.confirmDialog(\n\t\t\t\tparams,\n\t\t\t\t() => this.saveColumnsAndHidePopup(columns, data),\n\t\t\t);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.saveColumnsAndHidePopup(columns, data);\n\t\t}\n\t}\n\n\tsaveColumnsAndHidePopup(columns, data)\n\t{\n\t\tthis.saveColumns(columns, data);\n\t\tthis.popup.hide();\n\t}\n\n\tprepareOrderedColumnsList(newColumns: Array<string>): Array<string>\n\t{\n\t\tif (Type.isArray(newColumns))\n\t\t{\n\t\t\tconst currentOptions: { [key: string]: any } = this.grid.getUserOptions().getCurrentOptions();\n\t\t\tconst currentColumns: Array<string> = currentOptions?.columns?.split?.(',');\n\t\t\tif (Type.isArray(currentColumns))\n\t\t\t{\n\t\t\t\tconst filteredColumns: Array<string> = currentColumns.filter((column: string) => {\n\t\t\t\t\treturn newColumns.includes(column);\n\t\t\t\t});\n\n\t\t\t\tconst newAddedColumns: Array<string> = newColumns.filter((column: string) => {\n\t\t\t\t\treturn !filteredColumns.includes(column);\n\t\t\t\t});\n\n\t\t\t\treturn [...filteredColumns, ...newAddedColumns];\n\t\t\t}\n\t\t}\n\n\t\treturn newColumns;\n\t}\n\n\tsaveColumns(columns, data): void\n\t{\n\t\tconst options = this.grid.getUserOptions();\n\t\tconst columnNames = this.getColumnNames(data);\n\t\tconst stickyColumns = this.getStickedColumns();\n\t\tconst orderedColumns: Array<string> = this.prepareOrderedColumnsList(columns);\n\n\t\tconst batch = [\n\t\t\t{\n\t\t\t\taction: options.getAction('GRID_SET_COLUMNS'),\n\t\t\t\tcolumns: orderedColumns.join(','),\n\t\t\t},\n\t\t\t{\n\t\t\t\taction: options.getAction('SET_CUSTOM_NAMES'),\n\t\t\t\tcustom_names: columnNames,\n\t\t\t},\n\t\t\t{\n\t\t\t\taction: options.getAction('GRID_SET_STICKED_COLUMNS'),\n\t\t\t\tstickedColumns: stickyColumns,\n\t\t\t},\n\t\t];\n\n\t\tif (this.isForAll())\n\t\t{\n\t\t\tbatch.push({\n\t\t\t\taction: options.getAction('GRID_SAVE_SETTINGS'),\n\t\t\t\tview_id: 'default',\n\t\t\t\tset_default_settings: 'Y',\n\t\t\t\tdelete_user_settings: 'Y',\n\t\t\t});\n\t\t}\n\n\t\toptions.batch(batch, () => this.grid.reloadTable());\n\t}\n\n\tgetColumnNames(data): {[key: string]: string}[]\n\t{\n\t\tconst options = this.options;\n\t\tconst columns = options.columns ?? [];\n\n\t\tconst names = {};\n\t\tconst { titles } = data;\n\n\t\tif (!Type.isObjectLike(titles))\n\t\t{\n\t\t\treturn {};\n\t\t}\n\n\t\tcolumns.forEach((column) => {\n\t\t\tconst id = column.id;\n\t\t\tif (Type.isStringFilled(titles[id]) && titles[id] !== column.name)\n\t\t\t{\n\t\t\t\tnames[id] = titles[id];\n\t\t\t}\n\t\t\telse if (\n\t\t\t\tType.isStringFilled(this.parent.arParams.DEFAULT_COLUMNS[id].name)\n\t\t\t\t&& this.parent.arParams.DEFAULT_COLUMNS[id].name !== column.name\n\t\t\t)\n\t\t\t{\n\t\t\t\tnames[id] = column.name;\n\t\t\t}\n\t\t});\n\n\t\treturn names;\n\t}\n\n\tonDefault(event: BaseEvent)\n\t{\n\t\tconst params = {\n\t\t\tCONFIRM: true,\n\t\t\tCONFIRM_MESSAGE: this.grid.arParams.CONFIRM_RESET_MESSAGE,\n\t\t};\n\n\t\tthis.grid.confirmDialog(\n\t\t\tparams,\n\t\t\t() => {\n\t\t\t\tthis.grid.getUserOptions().reset(\n\t\t\t\t\tthis.isForAll(),\n\t\t\t\t\t() => {\n\t\t\t\t\t\tthis.reset();\n\t\t\t\t\t\tthis.grid.reloadTable(null, null, () => {\n\t\t\t\t\t\t\tthis.popup.options\n\t\t\t\t\t\t\t\t.forEach((item) => {\n\t\t\t\t\t\t\t\t\tthis.grid.gridSettings.select(item.id, item.defaultValue === true);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t;\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t},\n\t\t);\n\n\t\tevent.preventDefault();\n\n\t\treturn event;\n\t}\n\n\tsortItems(): void\n\t{\n\t\t// may be implemented\n\t}\n\n\treset(): void\n\t{\n\t\tthis.options.checked = [];\n\n\t\tthis.popup.options\n\t\t\t.filter((item) => item.defaultValue)\n\t\t\t.forEach((item) => {\n\t\t\t\tthis.options.checked.push(item.id);\n\t\t\t})\n\t\t;\n\n\t\tthis.close();\n\t}\n\n\tgetSelectedColumns(): ?string[]\n\t{\n\t\treturn this.getPopup().getSelectedOptions();\n\t}\n\n\tclose(): void\n\t{\n\t\tthis.popup?.destroy();\n\t}\n\n\tisForAll(): boolean\n\t{\n\t\treturn this.isForAllValue;\n\t}\n\n\tisAdmin(): boolean\n\t{\n\t\treturn Boolean(this.parent.arParams.IS_ADMIN ?? false);\n\t}\n\n\tgetPopupItems(): HTMLCollection\n\t{\n\t\treturn this.options.columns;\n\t}\n\n\tgetItems(): []\n\t{\n\t\treturn this.getPopup().getOptions();\n\t}\n\n\tselect(id: string, value: boolean = true): void\n\t{\n\t\t// to maintain backward compatibility without creating dependencies on ui within the ticket #187991\n\t\t// @todo remove later\n\t\tif (this.getPopup()?.selectOption?.length === 1 && value === false)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.getPopup().selectOption(id, value);\n\t}\n\n\tsaveColumnsByNames(columns: string[], callback: Function): void\n\t{\n\t\tthis.getItems()\n\t\t\t.filter((item) => columns.includes(item.id))\n\t\t\t.forEach((item) => this.select(item.id))\n\t\t;\n\n\t\tthis.getPopup().apply();\n\n\t\tif (Type.isFunction(callback))\n\t\t{\n\t\t\tcallback();\n\t\t}\n\t}\n}\n\nnamespace.CheckboxList = CheckboxList;\n","/* eslint-disable */\n\n;(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid.SettingsWindow');\n\n\n\t/**\n\t * @param {BX.Main.grid} parent\n\t * @param {HTMLElement} node\n\t * @constructor\n\t */\n\tBX.Grid.SettingsWindow.Column = function(parent, node)\n\t{\n\t\tthis.node = null;\n\t\tthis.label = null;\n\t\tthis.checkbox = null;\n\t\tthis.editButton = null;\n\t\tthis.settings = null;\n\t\tthis.parent = null;\n\t\tthis.default = null;\n\t\tthis.defaultTitle = null;\n\t\tthis.state = null;\n\t\tthis.lastTitle = null;\n\t\tthis.init(parent, node);\n\t};\n\n\tBX.Grid.SettingsWindow.Column.inited = {};\n\n\tBX.Grid.SettingsWindow.Column.prototype = {\n\t\tinit: function(parent, node)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tthis.node = node;\n\n\t\t\ttry {\n\t\t\t\tthis.lastTitle = node.querySelector(\"label\").innerText.trim();\n\t\t\t} catch (err) {}\n\n\t\t\tthis.updateState();\n\n\t\t\tif (!BX.Grid.SettingsWindow.Column.inited[this.getId()])\n\t\t\t{\n\t\t\t\tBX.Grid.SettingsWindow.Column.inited[this.getId()] = true;\n\t\t\t\tBX.bind(this.getEditButton(), 'click', BX.proxy(this.onEditButtonClick, this));\n\t\t\t\tBX.bind(this.getStickyButton(), 'click', BX.proxy(this.onStickyButtonClick, this));\n\t\t\t}\n\t\t},\n\n\t\tgetStickyButton: function()\n\t\t{\n\t\t\treturn this.node.querySelector(\".main-grid-settings-window-list-item-sticky-button\");\n\t\t},\n\n\t\tisSticked: function()\n\t\t{\n\t\t\treturn this.node.classList.contains(\"main-grid-settings-window-list-item-sticked\");\n\t\t},\n\n\t\tonStickyButtonClick: function()\n\t\t{\n\t\t\tif (this.isSticked())\n\t\t\t{\n\t\t\t\tthis.unstick();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.stick();\n\t\t\t}\n\t\t},\n\n\t\tstick: function()\n\t\t{\n\t\t\tthis.node.classList.add(\"main-grid-settings-window-list-item-sticked\");\n\t\t},\n\n\t\tunstick: function()\n\t\t{\n\t\t\tthis.node.classList.remove(\"main-grid-settings-window-list-item-sticked\");\n\t\t},\n\n\t\tonEditButtonClick: function(event)\n\t\t{\n\t\t\tevent.stopPropagation();\n\t\t\tthis.isEditEnabled() ? this.disableEdit() : this.enableEdit();\n\t\t},\n\n\n\t\t/**\n\t\t * @private\n\t\t * @param {object} state\n\t\t * @property {boolean} state.selected\n\t\t * @property {title} state.title\n\t\t */\n\t\tsetState: function(state)\n\t\t{\n\t\t\tthis.state = state;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets state of column\n\t\t * @return {object}\n\t\t */\n\t\tgetState: function()\n\t\t{\n\t\t\treturn this.state;\n\t\t},\n\n\n\t\t/**\n\t\t * Updates default state\n\t\t */\n\t\tupdateState: function()\n\t\t{\n\t\t\tthis.setState({\n\t\t\t\tselected: this.isSelected(),\n\t\t\t\tsticked: this.isSticked(),\n\t\t\t\ttitle: this.getTitle()\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * Restores last state\n\t\t */\n\t\trestoreState: function()\n\t\t{\n\t\t\tvar state = this.getState();\n\n\t\t\tstate.selected ? this.select() : this.unselect();\n\t\t\tstate.sticked ? this.stick() : this.unstick();\n\t\t\tthis.setTitle(state.title);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets column id\n\t\t * @return {string}\n\t\t */\n\t\tgetId: function()\n\t\t{\n\t\t\treturn this.getNode().dataset.name;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets column title\n\t\t * @return {string}\n\t\t */\n\t\tgetTitle: function()\n\t\t{\n\t\t\treturn this.getLabel().innerText;\n\t\t},\n\n\n\t\t/**\n\t\t * Sets column title\n\t\t * @param {string} title\n\t\t */\n\t\tsetTitle: function(title)\n\t\t{\n\t\t\tthis.getLabel().innerText = !!title && title !== \"undefined\" ? title : this.getDefaultTitle();\n\t\t},\n\n\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\tisEdited: function()\n\t\t{\n\t\t\treturn this.getTitle() !== this.getDefaultTitle();\n\t\t},\n\n\n\t\t/**\n\t\t * Gets column settings\n\t\t * @return {?object}\n\t\t */\n\t\tgetSettings: function()\n\t\t{\n\t\t\tif (this.settings === null)\n\t\t\t{\n\t\t\t\tvar columns = this.parent.getParam('DEFAULT_COLUMNS');\n\t\t\t\tthis.settings = this.getId() in columns ? columns[this.getId()] : {};\n\t\t\t}\n\n\t\t\treturn this.settings;\n\t\t},\n\n\n\t\t/**\n\t\t * Checks column is default\n\t\t * @return {boolean}\n\t\t */\n\t\tisDefault: function()\n\t\t{\n\t\t\tif (this.default === null)\n\t\t\t{\n\t\t\t\tvar settings = this.getSettings();\n\t\t\t\tthis.default = 'default' in settings ? settings.default : false;\n\t\t\t}\n\n\t\t\treturn this.default;\n\t\t},\n\n\n\t\t/**\n\t\t * Restore column to default state\n\t\t */\n\t\trestore: function()\n\t\t{\n\t\t\tthis.isDefault() ? this.select() : this.unselect();\n\t\t\tthis.setTitle(this.getDefaultTitle());\n\t\t\tthis.node.dataset.stickedDefault === \"true\" ? this.stick() : this.unstick();\n\t\t\tthis.disableEdit();\n\t\t\tthis.updateState();\n\t\t},\n\n\n\t\t/**\n\t\t * Gets default column title\n\t\t * @return {?string}\n\t\t */\n\t\tgetDefaultTitle: function()\n\t\t{\n\t\t\tif (this.defaultTitle === null)\n\t\t\t{\n\t\t\t\tvar settings = this.getSettings();\n\t\t\t\tthis.defaultTitle = 'name' in settings ? settings.name : this.lastTitle;\n\t\t\t}\n\n\t\t\treturn this.defaultTitle;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets column node\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetNode: function()\n\t\t{\n\t\t\treturn this.node;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets column label node\n\t\t * @return {?HTMLLabelElement}\n\t\t */\n\t\tgetLabel: function()\n\t\t{\n\t\t\tif (this.label === null)\n\t\t\t{\n\t\t\t\tthis.label = BX.Grid.Utils.getByTag(this.getNode(), 'label', true);\n\t\t\t\tBX.Event.bind(this.label, 'paste', this.onLabelPaste.bind(this));\n\t\t\t\tBX.Event.bind(this.label, 'keydown', this.onLabelKeydown.bind(this));\n\t\t\t}\n\n\t\t\treturn this.label;\n\t\t},\n\n\t\tonLabelPaste: function(event)\n\t\t{\n\t\t\tevent.preventDefault();\n\n\t\t\tif (event.clipboardData && event.clipboardData.getData)\n\t\t\t{\n\t\t\t\tvar sourceText = event.clipboardData.getData(\"text/plain\");\n\t\t\t\tvar encodedText = BX.Text.encode(sourceText);\n\t\t\t\tvar formattedHtml = encodedText\n\t\t\t\t\t.trim()\n\t\t\t\t\t.replace(new RegExp('\\t', 'g'), \" \")\n\t\t\t\t\t.replace(new RegExp('\\n', 'g'), \" \")\n\t\t\t\t\t.replace(/ +(?= )/g,'');\n\t\t\t\tdocument.execCommand(\"insertHTML\", false, formattedHtml);\n\t\t\t}\n\t\t},\n\n\t\tonLabelKeydown: function(event)\n\t\t{\n\t\t\tif (event.keyCode === 13)\n\t\t\t{\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Gets column checkbox node\n\t\t * @return {?HTMLInputElement}\n\t\t */\n\t\tgetCheckbox: function()\n\t\t{\n\t\t\tif (this.checkbox === null)\n\t\t\t{\n\t\t\t\tthis.checkbox = BX.Grid.Utils.getBySelector(this.getNode(), 'input[type=\"checkbox\"]', true);\n\t\t\t}\n\n\t\t\treturn this.checkbox;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets edit button\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetEditButton: function()\n\t\t{\n\t\t\tif (this.editButton === null)\n\t\t\t{\n\t\t\t\tthis.editButton = BX.Grid.Utils.getByClass(\n\t\t\t\t\tthis.getNode(),\n\t\t\t\t\tthis.parent.settings.get('classSettingsWindowColumnEditButton'),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn this.editButton;\n\t\t},\n\n\n\t\t/**\n\t\t * Enables edit mode\n\t\t */\n\t\tenableEdit: function()\n\t\t{\n\t\t\tthis.getLabel().contentEditable = true;\n\t\t\tthis.getCheckbox().disabled = true;\n\t\t\tthis.adjustCaret();\n\t\t},\n\n\n\t\t/**\n\t\t * Disables edit mode\n\t\t */\n\t\tdisableEdit: function()\n\t\t{\n\t\t\tthis.getLabel().contentEditable = false;\n\t\t\tthis.getCheckbox().disabled = false;\n\t\t},\n\n\n\t\t/**\n\t\t * Checks is edit enabled\n\t\t * @return {boolean}\n\t\t */\n\t\tisEditEnabled: function()\n\t\t{\n\t\t\treturn this.getLabel().isContentEditable;\n\t\t},\n\n\n\t\t/**\n\t\t * Checks column is active\n\t\t * @return {boolean}\n\t\t */\n\t\tisSelected: function()\n\t\t{\n\t\t\treturn this.getCheckbox().checked;\n\t\t},\n\n\n\t\t/**\n\t\t * Selects column\n\t\t */\n\t\tselect: function()\n\t\t{\n\t\t\tthis.getCheckbox().checked = true;\n\t\t},\n\n\n\t\t/**\n\t\t * Unselects column\n\t\t */\n\t\tunselect: function()\n\t\t{\n\t\t\tthis.getCheckbox().checked = false;\n\t\t},\n\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tadjustCaret: function()\n\t\t{\n\t\t\tvar range = document.createRange();\n\t\t\tvar selection = window.getSelection();\n\t\t\tvar elementTextLength = this.getLabel().innerText.length;\n\t\t\tvar textNodes = this.getLabel().childNodes;\n\t\t\tvar lastTextNode = textNodes[textNodes.length - 1];\n\n\t\t\trange.setStart(lastTextNode, elementTextLength);\n\t\t\trange.setEnd(lastTextNode, elementTextLength);\n\t\t\trange.collapse(true);\n\n\t\t\tselection.removeAllRanges();\n\t\t\tselection.addRange(range);\n\t\t\tBX.fireEvent(this.getNode(), 'focus');\n\t\t}\n\t};\n\n})();\n","import { Tag, Text, Type } from 'main.core';\n\n(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid.SettingsWindow');\n\n\t/**\n\t * @param {BX.Main.grid} parent\n\t * @constructor\n\t */\n\tBX.Grid.SettingsWindow.Manager = function(parent)\n\t{\n\t\tthis.parent = null;\n\n\t\tthis.fieldsSettingsInstance = null;\n\t\tthis.init(parent);\n\t};\n\n\tBX.Grid.SettingsWindow.Manager.prototype = {\n\t\tinit(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tBX.bind(this.parent.getContainer(), 'click', BX.proxy(this._onContainerClick, this));\n\t\t\tBX.addCustomEvent(window, 'Grid::columnMoved', BX.proxy(this._onColumnMoved, this));\n\t\t},\n\n\t\tdestroy()\n\t\t{\n\t\t\tBX.unbind(this.parent.getContainer(), 'click', BX.proxy(this._onContainerClick, this));\n\t\t\tBX.removeCustomEvent(window, 'Grid::columnMoved', BX.proxy(this._onColumnMoved, this));\n\t\t\tthis.getPopup().close();\n\t\t},\n\n\t\t_onContainerClick(event)\n\t\t{\n\t\t\tif (BX.hasClass(event.target, this.parent.settings.get('classSettingsButton')))\n\t\t\t{\n\t\t\t\tthis._onSettingsButtonClick(event);\n\t\t\t}\n\t\t},\n\n\t\t_onSettingsButtonClick()\n\t\t{\n\t\t\tthis.getFieldsSettingsInstance().then((fieldsSettingsInstance) => {\n\t\t\t\tthis.fieldsSettingsInstance = fieldsSettingsInstance;\n\t\t\t\tthis.fieldsSettingsInstance.show();\n\n\t\t\t\tBX.onCustomEvent(window, 'BX.Grid.SettingsWindow:show', [this.fieldsSettingsInstance]);\n\t\t\t});\n\t\t},\n\n\t\tgetFieldsSettingsInstance()\n\t\t{\n\t\t\tif (this.fieldsSettingsInstance)\n\t\t\t{\n\t\t\t\treturn Promise.resolve(this.fieldsSettingsInstance);\n\t\t\t}\n\n\t\t\treturn new Promise((resolve) => {\n\t\t\t\tconst fieldsSettingsInstance = this.createFieldsSettingsInstance();\n\n\t\t\t\tresolve(fieldsSettingsInstance);\n\t\t\t});\n\t\t},\n\n\t\tcreateFieldsSettingsInstance()\n\t\t{\n\t\t\tlet fieldsSettingsInstance = null;\n\t\t\tconst { parent } = this;\n\n\t\t\tconst params = {\n\t\t\t\tgrid: parent,\n\t\t\t\tparent,\n\t\t\t\tisUseLazyLoadColumns: this.useLazyLoadColumns(),\n\t\t\t\ttitle: this.getPopupTitle(),\n\t\t\t\tplaceholder: parent.getParam('SETTINGS_FIELD_SEARCH_PLACEHOLDER'),\n\t\t\t\temptyStateTitle: parent.getParam('SETTINGS_FIELD_SEARCH_EMPTY_STATE_TITLE'),\n\t\t\t\temptyStateDescription: parent.getParam('SETTINGS_FIELD_SEARCH_EMPTY_STATE_DESCRIPTION'),\n\t\t\t\tallSectionsDisabledTitle: parent.getParam('SETTINGS_FIELD_SEARCH_ALL_SECTIONS_DISABLED'),\n\t\t\t};\n\n\t\t\tif (this.useCheckboxList())\n\t\t\t{\n\t\t\t\tfieldsSettingsInstance = new BX.Grid.SettingsWindow.CheckboxList(params);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tfieldsSettingsInstance = new BX.Grid.SettingsWindow.Popup(params);\n\t\t\t}\n\n\t\t\tfieldsSettingsInstance.createPopup();\n\n\t\t\tBX.onCustomEvent(window, 'BX.Grid.SettingsWindow:init', [fieldsSettingsInstance]);\n\n\t\t\treturn fieldsSettingsInstance;\n\t\t},\n\n\t\tuseCheckboxList()\n\t\t{\n\t\t\treturn Boolean(this.parent.getParam('USE_CHECKBOX_LIST_FOR_SETTINGS_POPUP'))\n\t\t\t\t&& Type.isFunction(BX.UI?.CheckboxList)\n\t\t\t;\n\t\t},\n\n\t\tuseLazyLoadColumns()\n\t\t{\n\t\t\treturn Boolean(this.parent.getParam('LAZY_LOAD'));\n\t\t},\n\n\t\t_onColumnMoved()\n\t\t{\n\t\t\tthis.sortItems();\n\t\t\tthis.reset();\n\t\t},\n\n\t\tsortItems()\n\t\t{\n\t\t\tthis.getPopup().sortItems();\n\t\t},\n\n\t\treset()\n\t\t{\n\t\t\tthis.getPopup().reset();\n\t\t},\n\n\t\tgetSelectedColumns()\n\t\t{\n\t\t\treturn this.getPopup().getSelectedColumns();\n\t\t},\n\n\t\tgetPopup()\n\t\t{\n\t\t\tif (this.fieldsSettingsInstance === null)\n\t\t\t{\n\t\t\t\tthis.fieldsSettingsInstance = this.createFieldsSettingsInstance();\n\t\t\t}\n\n\t\t\treturn this.fieldsSettingsInstance;\n\t\t},\n\n\t\tgetPopupTitle(): string\n\t\t{\n\t\t\tconst customSettingsTitle = this.parent.getParam('SETTINGS_WINDOW_TITLE');\n\t\t\tconst settingsTitle = this.parent.getParam('SETTINGS_TITLE');\n\t\t\tconst tmpDiv = Tag.render`<div></div>`;\n\n\t\t\tif (Type.isStringFilled(customSettingsTitle))\n\t\t\t{\n\t\t\t\ttmpDiv.innerHTML = `<span>${settingsTitle} &laquo;${customSettingsTitle}&raquo;</span>`;\n\n\t\t\t\treturn tmpDiv.firstChild.innerText;\n\t\t\t}\n\n\t\t\tconst gridsCount = BX.Main.gridManager.data.length;\n\n\t\t\tif (gridsCount === 1)\n\t\t\t{\n\t\t\t\tconst getTitleFromNodeById = (nodeId: string): string => {\n\t\t\t\t\tconst node = document.getElementById(nodeId);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\tType.isDomNode(node) && Type.isStringFilled(node.innerText)\n\t\t\t\t\t\t\t? Text.encode(node.innerText)\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t);\n\t\t\t\t};\n\n\t\t\t\tconst pageTitle = getTitleFromNodeById('pagetitle');\n\t\t\t\tconst pageTitleBtnWrapper = getTitleFromNodeById('pagetitle_btn_wrapper');\n\n\t\t\t\tconst fullTitle = `${pageTitle} ${pageTitleBtnWrapper}`.trim();\n\n\t\t\t\ttmpDiv.innerHTML = `<span>${settingsTitle} &laquo;${fullTitle}&raquo;</span>`;\n\n\t\t\t\treturn tmpDiv.firstChild.innerText;\n\t\t\t}\n\n\t\t\treturn settingsTitle;\n\t\t},\n\n\t\tgetShowedColumns(): string[]\n\t\t{\n\t\t\tconst result = [];\n\t\t\tconst cells = this.parent.getRows().getHeadFirstChild().getCells();\n\n\t\t\t[].slice.call(cells).forEach((column) => {\n\t\t\t\tif ('name' in column.dataset)\n\t\t\t\t{\n\t\t\t\t\tresult.push(column.dataset.name);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetItems(): []\n\t\t{\n\t\t\treturn this.getPopup().getItems();\n\t\t},\n\n\t\tsaveColumns(columns: string[], callback: Function): void\n\t\t{\n\t\t\tthis.getPopup().saveColumnsByNames(columns, callback);\n\t\t},\n\n\t\tselect(name: string, value: boolean = true): void\n\t\t{\n\t\t\tthis.getPopup().select(name, value);\n\t\t},\n\t};\n})();\n","import { ajax as Ajax, Dom, Event, Reflection, Tag, Type } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport { Loader } from 'main.loader';\nimport { Popup as MainPopup } from 'main.popup';\nimport type { PopupInterface } from './popup-interface';\n\nconst namespace = Reflection.namespace('BX.Grid.SettingsWindow');\n\nclass Popup implements PopupInterface\n{\n\toptions: Object = {};\n\tgrid: BX.Main.grid;\n\tparent: BX.Grid.SettingsWindow;\n\n\titems: ?[] = null;\n\tpopupItems: ?HTMLCollection = null;\n\tpopup: MainPopup = null;\n\tfilterSectionsSearchInput: ?HTMLElement = null;\n\tfilterSections: ?HTMLCollection = null;\n\tallColumns: Object<string, string> = null;\n\tapplyButton: HTMLElement = null;\n\tresetButton: HTMLElement = null;\n\tcancelButton: HTMLElement = null;\n\tselectAllButton: HTMLElement = null;\n\tunselectAllButton: HTMLElement = null;\n\n\tconstructor(options: Object)\n\t{\n\t\tthis.options = options;\n\n\t\tthis.grid = options.grid;\n\t\tthis.parent = options.parent;\n\t}\n\n\tgetPopup(): MainPopup\n\t{\n\t\tif (!this.popup)\n\t\t{\n\t\t\tthis.createPopup();\n\t\t}\n\n\t\treturn this.popup;\n\t}\n\n\tcreatePopup(): void\n\t{\n\t\tif (this.popup)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst leftIndentFromWindow = 20;\n\t\tconst rightIndentFromWindow = 20;\n\t\tconst popupWidth = document.body.offsetWidth > 1000\n\t\t\t? 1000\n\t\t\t: document.body.offsetWidth - leftIndentFromWindow - rightIndentFromWindow\n\t\t;\n\n\t\tconst { title: titleBar } = this.options;\n\n\t\tthis.popup = new MainPopup(\n\t\t\tthis.getPopupId(),\n\t\t\tnull,\n\t\t\t{\n\t\t\t\ttitleBar,\n\t\t\t\tautoHide: false,\n\t\t\t\toverlay: 0.6,\n\t\t\t\twidth: popupWidth,\n\t\t\t\tcloseIcon: true,\n\t\t\t\tcloseByEsc: true,\n\t\t\t\tcontentNoPaddings: true,\n\t\t\t\tcontent: this.getSourceContent(),\n\t\t\t\tevents: {\n\t\t\t\t\tonPopupClose: this.onPopupClose.bind(this),\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\n\t\tthis.getItems().forEach((item) => {\n\t\t\tEvent.bind(item.getNode(), 'click', this.onItemClick.bind(this));\n\t\t\tEvent.bind(item.getNode(), 'animationend', this.onAnimationEnd.bind(this, item.getNode()));\n\t\t});\n\n\t\tEvent.bind(this.getResetButton(), 'click', this.onResetButtonClick.bind(this));\n\t\tEvent.bind(this.getApplyButton(), 'click', this.onApplyButtonClick.bind(this));\n\t\tEvent.bind(this.getCancelButton(), 'click', this.popup.close.bind(this.popup));\n\t\tEvent.bind(this.getSelectAllButton(), 'click', this.onSelectAll.bind(this));\n\t\tEvent.bind(this.getUnselectAllButton(), 'click', this.onUnselectAll.bind(this));\n\n\t\tif (\n\t\t\tType.isObjectLike(this.grid.arParams.COLUMNS_ALL_WITH_SECTIONS)\n\t\t\t&& Object.keys(this.grid.arParams.COLUMNS_ALL_WITH_SECTIONS).length > 0\n\t\t)\n\t\t{\n\t\t\tthis.prepareFilterSections();\n\t\t}\n\n\t\tif (this.grid.arParams.ENABLE_FIELDS_SEARCH)\n\t\t{\n\t\t\tthis.prepareFilterSectionsSearchInput();\n\t\t}\n\t}\n\n\tshow(): void\n\t{\n\t\tthis.popup.show();\n\t}\n\n\tclose(): void\n\t{\n\t\tthis.onPopupClose();\n\t}\n\n\tonPopupClose(): void\n\t{\n\t\tthis.emitSaveEvent();\n\n\t\tthis.restoreLastColumns();\n\t\tthis.disableAllColumnsLabelEdit();\n\t\tthis.adjustActionButtonsState();\n\t}\n\n\temitSaveEvent(): void\n\t{\n\t\tEventEmitter.emit(window, 'BX.Grid.SettingsWindow:close', [this, this.parent]);\n\t}\n\n\trestoreLastColumns(): void\n\t{\n\t\tthis.getItems().forEach((current) => current.restoreState());\n\t}\n\n\tdisableAllColumnsLabelEdit(): void\n\t{\n\t\tthis.getItems().forEach((column) => column.disableEdit());\n\t}\n\n\tgetPopupId(): string\n\t{\n\t\treturn `${this.grid.getContainerId()}-grid-settings-window`;\n\t}\n\n\tgetSourceContent(): ?HTMLElement\n\t{\n\t\tconst classSettingsWindow = this.grid.settings.get('classSettingsWindow');\n\t\tconst sourceContent = this.grid.getContainer().querySelector(`.${classSettingsWindow}`);\n\n\t\tif (!this.options.isUseLazyLoadColumns)\n\t\t{\n\t\t\treturn sourceContent;\n\t\t}\n\n\t\tconst contentList = sourceContent.querySelector('.main-grid-settings-window-list');\n\t\tcontentList.innerHTML = '';\n\n\t\tconst loader = new Loader({\n\t\t\ttarget: contentList,\n\t\t});\n\n\t\tvoid loader.show();\n\n\t\tthis\n\t\t\t.fetchColumns()\n\t\t\t.then((response) => {\n\t\t\t\tresponse.forEach((columnOptions) => {\n\t\t\t\t\tthis.prepareColumnOptions(columnOptions);\n\t\t\t\t\tDom.append(this.createColumnElement(columnOptions), contentList);\n\t\t\t\t});\n\n\t\t\t\tthis.hideAndDestroyLoader();\n\n\t\t\t\tthis.reset();\n\n\t\t\t\tthis.getItems().forEach((item) => {\n\t\t\t\t\tEvent.bind(item.getNode(), 'click', this.onItemClick);\n\t\t\t\t});\n\n\t\t\t\tconst fixedFooter = Tag.render`\n\t\t\t\t\t<div class=\"main-grid-popup-window-buttons-wrapper\"></div>\n\t\t\t\t`;\n\n\t\t\t\tDom.append(sourceContent.querySelector('.popup-window-buttons'), fixedFooter);\n\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\tDom.style(\n\t\t\t\t\t\tfixedFooter,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth: `${this.getPopupContainer().clientWidth}px`,\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\n\t\t\t\t\tDom.append(fixedFooter, this.getPopupContainer());\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tconsole.error(err);\n\t\t\t})\n\t\t;\n\n\t\treturn sourceContent;\n\t}\n\n\tfetchColumns(): BX.Promise\n\t{\n\t\t// @todo replace to vanilla Promise\n\t\tconst promise = new BX.Promise();\n\n\t\tconst lazyLoadParams = this.grid.getParam('LAZY_LOAD');\n\t\tconst gridId = this.grid.getId();\n\n\t\tif (Type.isPlainObject(lazyLoadParams))\n\t\t{\n\t\t\tconst { controller, GET_LIST: url } = lazyLoadParams;\n\n\t\t\tif (Type.isNil(controller))\n\t\t\t{\n\t\t\t\tajax({\n\t\t\t\t\turl,\n\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tonsuccess: promise.fulfill.bind(promise),\n\t\t\t\t});\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tAjax.runAction(\n\t\t\t\t\t`${controller}.getColumnsList`,\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tgridId,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t).then(promise.fulfill.bind(promise));\n\t\t\t}\n\t\t}\n\n\t\treturn promise;\n\t}\n\n\tprepareColumnOptions(options): void\n\t{\n\t\tif (!Type.isPlainObject(options))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst customNames = this.grid.getUserOptions().getCurrentOptions().custom_names;\n\t\tif (Type.isPlainObject(customNames) && options.id in customNames)\n\t\t{\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\toptions.name = customNames[options.id];\n\t\t}\n\n\t\tif (this.grid.getColumnHeaderCellByName(options.id))\n\t\t{\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\toptions.selected = true;\n\t\t}\n\t}\n\n\tcreateColumnElement(options): HTMLElement\n\t{\n\t\tconst checkboxId = `${options.id}-checkbox`;\n\t\tconst checkedClass = options.selected ? ' checked' : '';\n\n\t\treturn Tag.render`\n\t\t\t<div data-name=${options.id} class='main-grid-settings-window-list-item'>\n\t\t\t\t<input\n\t\t\t\t\tid='${checkboxId}'\n\t\t\t\t\ttype='checkbox'\n\t\t\t\t\tclass='main-grid-settings-window-list-item-checkbox${checkedClass})'\n\t\t\t\t>\n\t\t\t\t<label\n\t\t\t\t\tfor='${checkboxId}'\n\t\t\t\t\tclass='main-grid-settings-window-list-item-label'\n\t\t\t\t>\n\t\t\t\t\t${options.name}\n\t\t\t\t</label>\n\t\t\t\t<span class='main-grid-settings-window-list-item-edit-button'></span>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\thideAndDestroyLoader(loader: Loader): void\n\t{\n\t\tvoid loader.hide().then(() => loader.destroy());\n\t}\n\n\tonItemClick(): void\n\t{\n\t\tthis.adjustActionButtonsState();\n\t}\n\n\tonAnimationEnd(node: HTMLElement): void\n\t{\n\t\tconst display = (\n\t\t\tDom.hasClass(node, this.grid.settings.get('classSettingsWindowSearchSectionItemHidden'))\n\t\t\t\t? 'none'\n\t\t\t\t: 'inline-block'\n\t\t);\n\n\t\tDom.style(node, { display });\n\t}\n\n\tadjustActionButtonsState(): void\n\t{\n\t\tif (this.getSelectedColumns().length > 0)\n\t\t{\n\t\t\tthis.enableActions();\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.disableActions();\n\t}\n\n\tgetSelectedColumns(): []\n\t{\n\t\tconst columns = [];\n\n\t\tthis.getItems().forEach((column) => {\n\t\t\tif (column.isSelected())\n\t\t\t{\n\t\t\t\tcolumns.push(column.getId());\n\t\t\t}\n\t\t});\n\n\t\treturn columns;\n\t}\n\n\tgetItems(): ?BX.Grid.SettingsWindow.Column[]\n\t{\n\t\tif (this.items === null)\n\t\t{\n\t\t\tconst { grid } = this;\n\t\t\tconst items = this.getPopupItems();\n\t\t\tthis.items = [...items].map((current) => {\n\t\t\t\treturn new BX.Grid.SettingsWindow.Column(grid, current);\n\t\t\t});\n\t\t}\n\n\t\treturn this.items;\n\t}\n\n\tgetPopupItems(): HTMLCollection\n\t{\n\t\tif (!this.popupItems)\n\t\t{\n\t\t\tconst popupContainer = this.getPopupContentContainer();\n\t\t\tconst selector = this.grid.settings.get('classSettingsWindowColumn');\n\t\t\tthis.popupItems = popupContainer.getElementsByClassName(selector);\n\t\t}\n\n\t\treturn this.popupItems;\n\t}\n\n\tenableActions(): void\n\t{\n\t\tconst applyButton = this.getApplyButton();\n\n\t\tif (applyButton)\n\t\t{\n\t\t\tDom.removeClass(applyButton, this.grid.settings.get('classDisable'));\n\t\t}\n\t}\n\n\tprepareFilterSectionsSearchInput(): void\n\t{\n\t\tconst input = this.getFilterSectionsSearchInput();\n\n\t\tEvent.bind(input, 'input', this.onFilterSectionSearchInput.bind(this));\n\t\tEvent.bind(input.previousElementSibling, 'click', this.onFilterSectionSearchInputClear.bind(this));\n\t}\n\n\tgetFilterSectionsSearchInput(): HTMLElement | null\n\t{\n\t\tif (!this.filterSectionsSearchInput)\n\t\t{\n\t\t\tconst selector = this.grid.settings.get('classSettingsWindowSearchSectionInput');\n\t\t\tthis.filterSectionsSearchInput = this.getPopupContentContainer().querySelector(`.${selector}`);\n\t\t}\n\n\t\treturn this.filterSectionsSearchInput;\n\t}\n\n\tonFilterSectionSearchInput(): void\n\t{\n\t\tlet search = this.filterSectionsSearchInput.value;\n\t\tif (search.length > 0)\n\t\t{\n\t\t\tsearch = search.toLowerCase();\n\t\t}\n\n\t\tthis.items.forEach((item) => {\n\t\t\tconst title = item.lastTitle.toLowerCase();\n\t\t\tconst node = item.getNode();\n\n\t\t\tif (search.length > 0 && !title.includes(search))\n\t\t\t{\n\t\t\t\tDom.removeClass(\n\t\t\t\t\tnode,\n\t\t\t\t\tthis.grid.settings.get('classSettingsWindowSearchSectionItemVisible'),\n\t\t\t\t);\n\t\t\t\tDom.addClass(\n\t\t\t\t\tnode,\n\t\t\t\t\tthis.grid.settings.get('classSettingsWindowSearchSectionItemHidden'),\n\t\t\t\t);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tDom.removeClass(\n\t\t\t\t\tnode,\n\t\t\t\t\tthis.grid.settings.get('classSettingsWindowSearchSectionItemHidden'),\n\t\t\t\t);\n\t\t\t\tDom.addClass(\n\t\t\t\t\tnode,\n\t\t\t\t\tthis.grid.settings.get('classSettingsWindowSearchSectionItemVisible'),\n\t\t\t\t);\n\n\t\t\t\tDom.style(node, { display: 'inline-block' });\n\t\t\t}\n\t\t});\n\t}\n\n\tonFilterSectionSearchInputClear(): void\n\t{\n\t\tthis.filterSectionsSearchInput.value = '';\n\t\tthis.onFilterSectionSearchInput();\n\t}\n\n\tgetResetButton(): HTMLElement\n\t{\n\t\tif (this.resetButton === null)\n\t\t{\n\t\t\tthis.resetButton = document.getElementById(this.getResetButtonId());\n\t\t}\n\n\t\treturn this.resetButton;\n\t}\n\n\tgetResetButtonId(): string\n\t{\n\t\treturn `${this.grid.getContainerId()}-grid-settings-reset-button`;\n\t}\n\n\tonResetButtonClick(): void\n\t{\n\t\tconst params = {\n\t\t\tCONFIRM: true,\n\t\t\tCONFIRM_MESSAGE: this.grid.arParams.CONFIRM_RESET_MESSAGE,\n\t\t};\n\n\t\tthis.grid.confirmDialog(\n\t\t\tparams,\n\t\t\t() => {\n\t\t\t\tthis.enableWait(this.getApplyButton());\n\n\t\t\t\tthis.grid.getUserOptions().reset(\n\t\t\t\t\tthis.isForAll(),\n\t\t\t\t\t() => {\n\t\t\t\t\t\tthis.grid.reloadTable(null, null, () => {\n\t\t\t\t\t\t\tthis.restoreColumns();\n\t\t\t\t\t\t\tthis.disableWait(this.getApplyButton());\n\t\t\t\t\t\t\tthis.popup.close();\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t},\n\t\t);\n\t}\n\n\trestoreColumns(): void\n\t{\n\t\tthis.getItems().forEach((column) => column.restore());\n\n\t\tthis.sortItems();\n\t\tthis.reset();\n\t}\n\n\tsortItems(): void\n\t{\n\t\tconst showedColumns = this.getShowedColumns();\n\t\tconst allColumns = {};\n\n\t\tthis.getAllColumns().forEach((name) => {\n\t\t\tallColumns[name] = name;\n\t\t});\n\n\t\tlet counter = 0;\n\t\tObject.keys(allColumns).forEach((name) => {\n\t\t\tif (this.isShowedColumn(name))\n\t\t\t{\n\t\t\t\tallColumns[name] = showedColumns[counter];\n\t\t\t\tcounter++;\n\t\t\t}\n\n\t\t\tconst current = this.getColumnByName(allColumns[name]);\n\t\t\tif (current)\n\t\t\t{\n\t\t\t\tDom.append(current, current.parentNode);\n\t\t\t}\n\t\t});\n\t}\n\n\tgetShowedColumns(): string[]\n\t{\n\t\treturn this.parent.gridSettings.getSelectedColumns();\n\t}\n\n\tgetColumnByName(name)\n\t{\n\t\treturn BX.Grid.Utils.getBySelector(\n\t\t\tthis.getPopupContainer(),\n\t\t\t`.${this.grid.settings.get('classSettingsWindowColumn')}[data-name=\"${name}\"]`,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\tisShowedColumn(columnName): boolean\n\t{\n\t\treturn this.getSelectedColumns().includes(columnName);\n\t}\n\n\tgetAllColumns()\n\t{\n\t\tif (!this.allColumns)\n\t\t{\n\t\t\tthis.allColumns = this.getItems().map((column) => column.getId());\n\t\t}\n\n\t\treturn this.allColumns;\n\t}\n\n\treset(): void\n\t{\n\t\tthis.popupItems = null;\n\t\tthis.allColumns = null;\n\t\tthis.items = null;\n\t}\n\n\tgetApplyButton(): HTMLElement\n\t{\n\t\tif (this.applyButton === null)\n\t\t{\n\t\t\tthis.applyButton = document.getElementById(this.getApplyButtonId());\n\t\t}\n\n\t\treturn this.applyButton;\n\t}\n\n\tgetApplyButtonId(): string\n\t{\n\t\treturn `${this.grid.getContainerId()}-grid-settings-apply-button`;\n\t}\n\n\tonApplyButtonClick(): void\n\t{\n\t\tconst params = {\n\t\t\tCONFIRM: this.isForAll(),\n\t\t\tCONFIRM_MESSAGE: this.grid.getParam('SETTINGS_FOR_ALL_CONFIRM_MESSAGE'),\n\t\t};\n\n\t\tthis.grid.confirmDialog(\n\t\t\tparams,\n\t\t\t() => this.onApplyConfirmDialogButton(),\n\t\t\t() => this.unselectForAllCheckbox(),\n\t\t);\n\t}\n\n\tonApplyConfirmDialogButton(): void\n\t{\n\t\tthis.enableWait(this.getApplyButton());\n\t\tthis.saveColumns(\n\t\t\tthis.getSelectedColumns(),\n\t\t\t() => {\n\t\t\t\tthis.popup.close();\n\t\t\t\tthis.disableWait(this.getApplyButton());\n\t\t\t\tthis.unselectForAllCheckbox();\n\t\t\t},\n\t\t);\n\n\t\tthis.emitSaveEvent();\n\t}\n\n\tenableWait(buttonNode): void\n\t{\n\t\tDom.addClass(buttonNode, 'ui-btn-wait');\n\t\tDom.removeClass(buttonNode, 'popup-window-button');\n\t}\n\n\tdisableWait(buttonNode): void\n\t{\n\t\tDom.removeClass(buttonNode, 'ui-btn-wait');\n\t\tDom.addClass(buttonNode, 'popup-window-button');\n\t}\n\n\tsaveColumns(columns, callback): void\n\t{\n\t\tconst options = this.grid.getUserOptions();\n\t\tconst columnNames = this.getColumnNames();\n\t\tconst stickyColumns = this.getStickedColumns();\n\t\tconst batch = [\n\t\t\t{\n\t\t\t\taction: options.getAction('GRID_SET_COLUMNS'),\n\t\t\t\tcolumns: columns.join(','),\n\t\t\t},\n\t\t\t{\n\t\t\t\taction: options.getAction('SET_CUSTOM_NAMES'),\n\t\t\t\tcustom_names: columnNames,\n\t\t\t},\n\t\t\t{\n\t\t\t\taction: options.getAction('GRID_SET_STICKED_COLUMNS'),\n\t\t\t\tstickedColumns: stickyColumns,\n\t\t\t},\n\t\t];\n\n\t\tif (this.isForAll())\n\t\t{\n\t\t\tbatch.push({\n\t\t\t\taction: options.getAction('GRID_SAVE_SETTINGS'),\n\t\t\t\tview_id: 'default',\n\t\t\t\tset_default_settings: 'Y',\n\t\t\t\tdelete_user_settings: 'Y',\n\t\t\t});\n\t\t}\n\n\t\toptions.batch(batch, () => this.grid.reloadTable(null, null, callback));\n\n\t\tthis.updateColumnsState();\n\t}\n\n\tgetColumnNames(): Object<string, string>\n\t{\n\t\tconst names = {};\n\t\tthis.getItems().forEach((column) => {\n\t\t\tif (column.isEdited())\n\t\t\t{\n\t\t\t\tnames[column.getId()] = column.getTitle();\n\t\t\t}\n\t\t});\n\n\t\treturn names;\n\t}\n\n\tgetStickedColumns(): []\n\t{\n\t\treturn this.getItems().reduce((accumulator, item) => {\n\t\t\tif (item.isSticked())\n\t\t\t{\n\t\t\t\taccumulator.push(item.getId());\n\t\t\t}\n\n\t\t\treturn accumulator;\n\t\t}, []);\n\t}\n\n\tupdateColumnsState(): void\n\t{\n\t\tthis.getItems().forEach((current) => current.updateState());\n\t}\n\n\tisForAll(): boolean\n\t{\n\t\tconst checkbox = this.getForAllCheckbox();\n\n\t\treturn checkbox && Boolean(checkbox.checked);\n\t}\n\n\tunselectForAllCheckbox(): void\n\t{\n\t\tconst checkbox = this.getForAllCheckbox();\n\t\tif (checkbox)\n\t\t{\n\t\t\tcheckbox.checked = null;\n\t\t}\n\t}\n\n\tgetForAllCheckbox(): HTMLElement\n\t{\n\t\treturn this.getPopupContainer().querySelector('.main-grid-settings-window-for-all-checkbox');\n\t}\n\n\tgetPopupContainer(): HTMLElement\n\t{\n\t\treturn this.getPopup().getPopupContainer();\n\t}\n\n\tgetPopupContentContainer(): HTMLElement\n\t{\n\t\treturn this.getPopup().getContentContainer();\n\t}\n\n\tgetCancelButton(): HTMLElement\n\t{\n\t\tif (this.cancelButton === null)\n\t\t{\n\t\t\tthis.cancelButton = document.getElementById(this.getCancelButtonId());\n\t\t}\n\n\t\treturn this.cancelButton;\n\t}\n\n\tgetCancelButtonId(): string\n\t{\n\t\treturn `${this.grid.getContainerId()}-grid-settings-cancel-button`;\n\t}\n\n\tgetSelectAllButton(): HTMLElement\n\t{\n\t\tif (!this.selectAllButton)\n\t\t{\n\t\t\tconst selector = this.grid.settings.get('classSettingsWindowSelectAll');\n\t\t\tthis.selectAllButton = this.getPopupContentContainer().querySelector(`.${selector}`);\n\t\t}\n\n\t\treturn this.selectAllButton;\n\t}\n\n\tonSelectAll(): void\n\t{\n\t\tthis.selectAll();\n\t\tthis.enableActions();\n\t}\n\n\tselectAll(): void\n\t{\n\t\tthis.getItems().forEach((column) => column.select());\n\t}\n\n\tgetUnselectAllButton(): HTMLElement | null\n\t{\n\t\tif (!this.unselectAllButton)\n\t\t{\n\t\t\tconst selector = this.grid.settings.get('classSettingsWindowUnselectAll');\n\t\t\tthis.unselectAllButton = this.getPopupContentContainer().querySelector(`.${selector}`);\n\t\t}\n\n\t\treturn this.unselectAllButton;\n\t}\n\n\tonUnselectAll(): void\n\t{\n\t\tthis.unselectAll();\n\t\tthis.disableActions();\n\t}\n\n\tdisableActions(): void\n\t{\n\t\tconst applyButton = this.getApplyButton();\n\n\t\tif (applyButton)\n\t\t{\n\t\t\tDom.addClass(applyButton, this.grid.settings.get('classDisable'));\n\t\t}\n\t}\n\n\tunselectAll(): void\n\t{\n\t\tthis.getItems().forEach((column) => column.unselect());\n\t}\n\n\tprepareFilterSections(): void\n\t{\n\t\tconst filterSections = this.getFilterSections();\n\t\tfor (const item of filterSections)\n\t\t{\n\t\t\tEvent.bind(item, 'click', this.onFilterSectionClick.bind(this, item));\n\t\t}\n\t}\n\n\tgetFilterSections(): HTMLCollection\n\t{\n\t\tif (!this.filterSections)\n\t\t{\n\t\t\tconst selector = this.grid.settings.get('classSettingsWindowSearchSectionsWrapper');\n\t\t\tconst wrapper = this.getPopupContentContainer().querySelector(`.${selector}`);\n\n\t\t\tthis.filterSections = (wrapper.children ?? new HTMLCollection());\n\t\t}\n\n\t\treturn this.filterSections;\n\t}\n\n\tonFilterSectionClick(item: HTMLElement): void\n\t{\n\t\tconst activeClass = this.grid.settings.get('classSettingsWindowSearchActiveSectionIcon');\n\t\tconst sectionId = item.dataset?.uiGridFilterSectionButton;\n\t\tconst section = document.querySelector(`[data-ui-grid-filter-section='${sectionId}']`);\n\n\t\tif (Dom.hasClass(item.firstChild, activeClass))\n\t\t{\n\t\t\tDom.removeClass(item.firstChild, activeClass);\n\t\t\tDom.hide(section);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(item.firstChild, activeClass);\n\t\t\tDom.show(section);\n\t\t}\n\t}\n\n\tselect(id: string, value: boolean = true): void\n\t{\n\t\tconst column = this.getItems().find((item) => item.getId() === id);\n\n\t\tif (value)\n\t\t{\n\t\t\tcolumn?.select();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tcolumn?.unselect();\n\t\t}\n\t}\n\n\tsaveColumnsByNames(columns: string[], callback: Function): void\n\t{\n\t\tthis.saveColumns(columns, callback);\n\t}\n}\n\nnamespace.Popup = Popup;\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\t/**\n\t * BX.Grid.UserOptions\n\t * @param {BX.Main.grid} parent\n\t * @param {Object} userOptions\n\t * @param {Object} userOptionsActions\n\t * @param {String} url\n\t * @constructor\n\t */\n\tBX.Grid.UserOptions = function(parent, userOptions, userOptionsActions, url)\n\t{\n\t\tthis.options = null;\n\t\tthis.actions = null;\n\t\tthis.parent = null;\n\t\tthis.url = null;\n\t\tthis.init(parent, userOptions, userOptionsActions, url);\n\t};\n\n\tBX.Grid.UserOptions.prototype = {\n\t\tinit(parent, userOptions, userOptionsActions, url)\n\t\t{\n\t\t\tthis.url = url;\n\t\t\tthis.parent = parent;\n\n\t\t\ttry\n\t\t\t{\n\t\t\t\tthis.options = eval(userOptions);\n\t\t\t}\n\t\t\tcatch\n\t\t\t{\n\t\t\t\tconsole.warn('BX.Grid.UserOptions.init: Failed parse user options json string');\n\t\t\t}\n\n\t\t\ttry\n\t\t\t{\n\t\t\t\tthis.actions = eval(userOptionsActions);\n\t\t\t}\n\t\t\tcatch\n\t\t\t{\n\t\t\t\tconsole.warn('BX.Grid.UserOptions.init: Failed parse user options actions json string');\n\t\t\t}\n\t\t},\n\n\t\tgetCurrentViewName()\n\t\t{\n\t\t\tconst options = this.getOptions();\n\n\t\t\treturn 'current_view' in options ? options.current_view : null;\n\t\t},\n\n\t\tgetViewsList()\n\t\t{\n\t\t\tconst options = this.getOptions();\n\n\t\t\treturn 'views' in options ? options.views : {};\n\t\t},\n\n\t\tgetCurrentOptions()\n\t\t{\n\t\t\tconst name = this.getCurrentViewName();\n\t\t\tconst views = this.getViewsList();\n\t\t\tlet result = null;\n\n\t\t\tif (name in views)\n\t\t\t{\n\t\t\t\tresult = views[name];\n\t\t\t}\n\n\t\t\tif (!BX.type.isPlainObject(result))\n\t\t\t{\n\t\t\t\tresult = {};\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetUrl(action)\n\t\t{\n\t\t\treturn BX.util.add_url_param(this.url, {\n\t\t\t\tGRID_ID: this.parent.getContainerId(),\n\t\t\t\tbxajaxid: this.parent.getAjaxId(),\n\t\t\t\taction,\n\t\t\t});\n\t\t},\n\n\t\tgetOptions()\n\t\t{\n\t\t\treturn this.options || {};\n\t\t},\n\n\t\tgetActions()\n\t\t{\n\t\t\treturn this.actions;\n\t\t},\n\n\t\tgetAction(name)\n\t\t{\n\t\t\tlet action = null;\n\n\t\t\ttry\n\t\t\t{\n\t\t\t\taction = this.getActions()[name];\n\t\t\t}\n\t\t\tcatch\n\t\t\t{\n\t\t\t\taction = null;\n\t\t\t}\n\n\t\t\treturn action;\n\t\t},\n\n\t\tupdate(newOptions)\n\t\t{\n\t\t\tthis.options = newOptions;\n\t\t},\n\n\t\tsetColumns(columns, callback)\n\t\t{\n\t\t\tconst options = this.getCurrentOptions();\n\n\t\t\tif (BX.type.isPlainObject(options))\n\t\t\t{\n\t\t\t\toptions.columns = columns.join(',');\n\n\t\t\t\tthis.save(this.getAction('GRID_SET_COLUMNS'), { columns: options.columns }, callback);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\tsetColumnsNames(columns, callback)\n\t\t{\n\t\t\tconst options = { view_id: 'default' };\n\n\t\t\tif (BX.type.isPlainObject(options))\n\t\t\t{\n\t\t\t\toptions.custom_names = columns;\n\n\t\t\t\tthis.save(this.getAction('SET_CUSTOM_NAMES'), options, callback);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\tsetColumnSizes(sizes, expand)\n\t\t{\n\t\t\tthis.save(this.getAction('GRID_SET_COLUMN_SIZES'), { sizes, expand });\n\t\t},\n\n\t\treset(forAll, callback)\n\t\t{\n\t\t\tlet data = {};\n\n\t\t\tif (forAll)\n\t\t\t{\n\t\t\t\tdata = {\n\t\t\t\t\tview_id: 'default',\n\t\t\t\t\tset_default_settings: 'Y',\n\t\t\t\t\tdelete_user_settings: 'Y',\n\t\t\t\t\tview_settings: this.getCurrentOptions(),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthis.save(this.getAction('GRID_RESET'), data, callback);\n\t\t},\n\n\t\tsetSort(by, order, callback)\n\t\t{\n\t\t\tif (by && order)\n\t\t\t{\n\t\t\t\tthis.save(this.getAction('GRID_SET_SORT'), { by, order }, callback);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\tsetPageSize(pageSize, callback)\n\t\t{\n\t\t\tif (BX.type.isNumber(parseInt(pageSize)))\n\t\t\t{\n\t\t\t\tthis.save(this.getAction('GRID_SET_PAGE_SIZE'), { pageSize }, callback);\n\t\t\t}\n\t\t},\n\n\t\tsetExpandedRows(ids, callback)\n\t\t{\n\t\t\tBX.type.isArray(ids) && this.save(this.getAction('GRID_SET_EXPANDED_ROWS'), { ids }, callback);\n\t\t},\n\n\t\tsetCollapsedGroups(ids, callback)\n\t\t{\n\t\t\tBX.type.isArray(ids) && this.save(this.getAction('GRID_SET_COLLAPSED_GROUPS'), { ids }, callback);\n\t\t},\n\n\t\tresetExpandedRows()\n\t\t{\n\t\t\tthis.save(this.getAction('GRID_RESET_EXPANDED_ROWS'), {});\n\t\t},\n\n\t\tsaveForAll(callback)\n\t\t{\n\t\t\tthis.save(\n\t\t\t\tthis.getAction('GRID_SAVE_SETTINGS'),\n\t\t\t\t{\n\t\t\t\t\tview_id: 'default',\n\t\t\t\t\tset_default_settings: 'Y',\n\t\t\t\t\tdelete_user_settings: 'Y',\n\t\t\t\t\tview_settings: this.getCurrentOptions(),\n\t\t\t\t},\n\t\t\t\tcallback,\n\t\t\t);\n\t\t},\n\n\t\tbatch(data, callback)\n\t\t{\n\t\t\tthis.save(this.getAction('GRID_SAVE_BATH'), { bath: data }, callback);\n\t\t},\n\n\t\tsave(action, data, callback)\n\t\t{\n\t\t\tconst self = this;\n\t\t\tBX.ajax.post(\n\t\t\t\tthis.getUrl(action),\n\t\t\t\tdata,\n\t\t\t\t(res) => {\n\t\t\t\t\ttry\n\t\t\t\t\t{\n\t\t\t\t\t\tres = JSON.parse(res);\n\t\t\t\t\t\tif (!res.error)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.update(res);\n\t\t\t\t\t\t\tif (BX.type.isFunction(callback))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcallback(res);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tBX.onCustomEvent(self.parent.getContainer(), 'Grid::optionsChanged', [self.parent]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch\n\t\t\t\t\t{}\n\t\t\t\t},\n\t\t\t);\n\t\t},\n\t};\n})();\n","(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Grid');\n\n\tBX.Grid.Utils = {\n\t\t/**\n\t\t * Prepares url for ajax request\n\t\t * @param {string} url\n\t\t * @param {string} ajaxId Bitrix ajax id\n\t\t * @returns {string} Prepares ajax url with ajax id\n\t\t */\n\t\tajaxUrl(url, ajaxId)\n\t\t{\n\t\t\treturn this.addUrlParams(url, { bxajaxid: ajaxId });\n\t\t},\n\n\t\taddUrlParams(url, params)\n\t\t{\n\t\t\treturn BX.util.add_url_param(url, params);\n\t\t},\n\n\t\t/**\n\t\t * Moves array item currentIndex to newIndex\n\t\t * @param {array} array\n\t\t * @param {int} currentIndex\n\t\t * @param {int} newIndex\n\t\t * @returns {*}\n\t\t */\n\t\tarrayMove(array, currentIndex, newIndex)\n\t\t{\n\t\t\tif (newIndex >= array.length)\n\t\t\t{\n\t\t\t\tlet k = newIndex - array.length;\n\t\t\t\twhile ((k--) + 1)\n\t\t\t\t{\n\t\t\t\t\tarray.push(undefined);\n\t\t\t\t}\n\t\t\t}\n\t\t\tarray.splice(newIndex, 0, array.splice(currentIndex, 1)[0]);\n\n\t\t\treturn array;\n\t\t},\n\n\t\t/**\n\t\t * Gets item index in array or HTMLCollection\n\t\t * @param {array|HTMLCollection} collection\n\t\t * @param {*} item\n\t\t * @returns {number}\n\t\t */\n\t\tgetIndex(collection, item)\n\t\t{\n\t\t\treturn [].indexOf.call((collection || []), item);\n\t\t},\n\n\t\t/**\n\t\t * Gets nextElementSibling\n\t\t * @param {Element} currentItem\n\t\t * @returns {Element|null}\n\t\t */\n\t\tgetNext(currentItem)\n\t\t{\n\t\t\tif (currentItem)\n\t\t\t\n\t\t\t{ return currentItem.nextElementSibling || null;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Gets previousElementSibling\n\t\t * @param {Element} currentItem\n\t\t * @returns {Element|null}\n\t\t */\n\t\tgetPrev(currentItem)\n\t\t{\n\t\t\tif (currentItem)\n\t\t\t\n\t\t\t{ return currentItem.previousElementSibling || null;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Gets closest parent element of node\n\t\t * @param {Node} item\n\t\t * @param {string} [className]\n\t\t * @returns {*|null|Node}\n\t\t */\n\t\tclosestParent(item, className)\n\t\t{\n\t\t\tif (item)\n\t\t\t{\n\t\t\t\tif (!className)\n\t\t\t\t{\n\t\t\t\t\treturn item.parentNode || null;\n\t\t\t\t}\n\n\t\t\t\treturn BX.findParent(\n\t\t\t\t\titem,\n\t\t\t\t\t{ className },\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Gets closest childs of node\n\t\t * @param item\n\t\t * @returns {Array|null}\n\t\t */\n\t\tclosestChilds(item)\n\t\t{\n\t\t\tif (item)\n\t\t\t\n\t\t\t{ return item.children || null;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Sorts collection\n\t\t * @param current\n\t\t * @param target\n\t\t */\n\t\tcollectionSort(current, target)\n\t\t{\n\t\t\tlet root; let collection; let collectionLength; let currentIndex; let\n\t\t\t\ttargetIndex;\n\n\t\t\tif (current && target && current !== target && current.parentNode === target.parentNode)\n\t\t\t{\n\t\t\t\troot = this.closestParent(target);\n\t\t\t\tcollection = this.closestChilds(root);\n\t\t\t\tcollectionLength = collection.length;\n\t\t\t\tcurrentIndex = this.getIndex(collection, current);\n\t\t\t\ttargetIndex = this.getIndex(collection, target);\n\n\t\t\t\tif (collectionLength === targetIndex)\n\t\t\t\t{\n\t\t\t\t\troot.appendChild(target);\n\t\t\t\t}\n\n\t\t\t\tif (currentIndex > targetIndex)\n\t\t\t\t{\n\t\t\t\t\troot.insertBefore(current, target);\n\t\t\t\t}\n\n\t\t\t\tif (currentIndex < targetIndex && collectionLength !== targetIndex)\n\t\t\t\t{\n\t\t\t\t\troot.insertBefore(current, this.getNext(target));\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Gets table collumn\n\t\t * @param table\n\t\t * @param cell\n\t\t * @returns {Array}\n\t\t */\n\t\tgetColumn(table, cell)\n\t\t{\n\t\t\tconst currentIndex = this.getIndex(\n\t\t\t\tthis.closestChilds(this.closestParent(cell)),\n\t\t\t\tcell,\n\t\t\t);\n\t\t\tconst column = [];\n\n\t\t\t[].forEach.call(table.rows, (current) => {\n\t\t\t\tcolumn.push(current.cells[currentIndex]);\n\t\t\t});\n\n\t\t\treturn column;\n\t\t},\n\n\t\t/**\n\t\t * Sets style properties and values for each item in collection\n\t\t * @param {HTMLElement[]|HTMLCollection} collection\n\t\t * @param {object} properties\n\t\t */\n\t\tstyleForEach(collection, properties)\n\t\t{\n\t\t\tproperties = BX.type.isPlainObject(properties) ? properties : null;\n\t\t\tconst keys = Object.keys(properties);\n\n\t\t\t[].forEach.call((collection || []), (current) => {\n\t\t\t\tkeys.forEach((propKey) => {\n\t\t\t\t\tBX.style(current, propKey, properties[propKey]);\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\trequestAnimationFrame()\n\t\t{\n\t\t\tconst raf = (\n\t\t\t\twindow.requestAnimationFrame\n\t\t\t\t|| window.webkitRequestAnimationFrame\n\t\t\t\t|| window.mozRequestAnimationFrame\n\t\t\t\t|| window.msRequestAnimationFrame\n\t\t\t\t|| window.oRequestAnimationFrame\n\t\t\t\t|| function(callback) { window.setTimeout(callback, 1000 / 60); }\n\t\t\t);\n\n\t\t\traf.apply(window, arguments);\n\t\t},\n\n\t\t/**\n\t\t * Gets elements by class name\n\t\t * @param rootElement\n\t\t * @param className\n\t\t * @param first\n\t\t * @returns {Array|null}\n\t\t */\n\t\tgetByClass(rootElement, className, first)\n\t\t{\n\t\t\tlet result = [];\n\n\t\t\tif (className)\n\t\t\t{\n\t\t\t\tresult = rootElement ? rootElement.getElementsByClassName(className) : [];\n\n\t\t\t\tif (first)\n\t\t\t\t{\n\t\t\t\t\tresult = result.length > 0 ? result[0] : null;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult = [].slice.call(result);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetByTag(rootElement, tag, first)\n\t\t{\n\t\t\tlet result = [];\n\n\t\t\tif (tag)\n\t\t\t{\n\t\t\t\tresult = rootElement ? rootElement.getElementsByTagName(tag) : [];\n\n\t\t\t\tif (first)\n\t\t\t\t{\n\t\t\t\t\tresult = result.length > 0 ? result[0] : null;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult = [].slice.call(result);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetBySelector(rootElement, selector, first)\n\t\t{\n\t\t\tlet result = [];\n\n\t\t\tif (selector)\n\t\t\t{\n\t\t\t\tif (first)\n\t\t\t\t{\n\t\t\t\t\tresult = rootElement ? rootElement.querySelector(selector) : null;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult = rootElement ? rootElement.querySelectorAll(selector) : [];\n\t\t\t\t\tresult = [].slice.call(result);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tlistenerParams(params)\n\t\t{\n\t\t\ttry\n\t\t\t{\n\t\t\t\twindow.addEventListener('test', null, params);\n\t\t\t}\n\t\t\tcatch\n\t\t\t{\n\t\t\t\tparams = false;\n\t\t\t}\n\n\t\t\treturn params;\n\t\t},\n\t};\n})();\n"],"names":["BX","namespace","Grid","ActionPanel","parent","actions","types","rel","lastActivated","init","button","elements","buttonOnChange","buttonData","prototype","eval","addCustomEvent","window","proxy","_dropdownEventHandle","panel","getPanel","bind","delegate","_checkboxChange","_clickOnButton","_gridUpdatedEventHandle","destroy","removeCustomEvent","cancelButton","fireEvent","firstChild","id","event","item","dataItem","isPanelControl","_dropdownChange","resetForAllCheckbox","checkbox","getForAllCheckbox","type","isDomNode","checked","Utils","getByClass","settings","get","getContainer","getApplyButton","node","hasClass","getTextInputs","getBySelector","getHiddenInputs","getSelects","getDropdowns","getCheckboxes","getButtons","isDropdown","isCheckbox","isTextInput","isHiddenInput","isSelect","tagName","createDropdown","data","relative","emptyText","EMPTY_TEXT","isMultiple","MULTIPLE","container","createContainer","ID","dropdown","create","props","className","attrs","name","NAME","JSON","stringify","ITEMS","VALUE","children","html","appendChild","createCheckbox","inner","titleSpan","input","value","title","TITLE","ONCHANGE","CHECKED","for","LABEL","createText","isNotEmptyString","text","placeholder","PLACEHOLDER","createHidden","CLASS","createButton","createButtonNode","prepareButton","SETTINGS","buttonId","TEXT","isSetButtonDisabled","Dom","attr","addClass","removeClass","Boolean","minSelectedRows","getSelectedIds","length","createLink","link","href","HREF","createCustom","custom","options","replace","removeItemsRelativeCurrent","element","result","dataRelative","includes","push","nextElementSibling","forEach","current","remove","validateData","isArray","activateControl","disabled","deactivateControl","showControl","control","show","hideControl","hide","validateActionObject","action","isPlainObject","ACTION","RESET_CONTROLS","DATA","validateControlObject","controlObject","createDate","date","decl","block","mix","calendarButton","valueDelete","tabindex","TABINDEX","enableTime","TIME","createControl","relativeId","newElement","TYPE","DROPDOWN","CHECKBOX","HIDDEN","BUTTON","LINK","CUSTOM","DATE","onChangeHandler","isPseudo","callback","self","CREATE","preparedData","Runtime","clone","reverse","insertAfter","ACTIVATE","currentId","SHOW","showCurrent","HIDE","hideCurrent","HIDE_ALL_EXPECT","getControls","some","el","SHOW_ALL","REMOVE","removeCurrent","CALLBACK","confirmDialog","currentCallback","JS","err","Error","then","cancel","parentNode","onChange","PSEUDO","target","findParent","isButton","preventDefault","rows","getRows","getSelected","filter","row","isShown","map","getId","findChild","getValues","controls","concat","dropdownValue","multiple","undefined","split","getAttribute","selectedIndex","BaseClass","getParent","CellActionState","SHOW_BY_HOVER","ACTIVE","Reflection","CellActions","PIN","MUTE","ColsSortable","dragItem","targetItem","rowsList","colsList","dragRect","offset","startDragOffset","dragColumn","targetColumn","isDrag","getColsList","getRowsList","inited","reinit","registerObjects","unregisterObjects","reset","fixedTableColsList","isActive","register","getFixedHeaderColsList","unregister","column","jsDD","unregisterObject","onbxdragstart","_onDragStart","onbxdrag","_onDrag","onbxdragstop","_onDragEnd","registerObject","getByTag","getHeadFirstChild","getNode","isStatic","getParam","getPinHeader","getFixedTable","getSourceRows","getDragOffset","getScrollContainer","scrollLeft","startScrollOffset","x","left","getColumn","cell","HTMLTableCellElement","cells","cellIndex","isPinned","current_node","getBoundingClientRect","Math","ceil","width","start_x","dragIndex","getIndex","preventSortableClick","isDragToRight","index","nodeClientRect","nodeCenter","isDragToLeft","isDragToBack","isMovedToRight","style","transform","isMovedToLeft","isMoved","moveColumn","transition","isNumber","styleForEach","dragOffset","leftOffset","rightOffset","defaultOffset","dragTransitionDuration","call","classList","contains","collectionSort","columns","getUserOptions","setColumns","onCustomEvent","setTimeout","Counters","Type","LEFT","LEFT_ALIGNED","RIGHT","Color","DANGER","SUCCESS","PRIMARY","GRAY","LIGHT","DARK","WARNING","Size","LARGE","MEDIUM","originalUpdatePageData","ajax","UpdatePageData","disableBxAjaxUpdatePageData","enableBxAjaxUpdatePageData","Data","response","xhr","headRows","bodyRows","footRows","moreButton","pagination","counterDisplayed","counterSelected","counterTotal","limit","actionPanel","rowsByParentId","rowById","isValidResponse","validateResponse","isBoolean","getResponse","request","url","method","error","isString","eventArgs","gridId","disableCheckAllCheckboxes","hasOwnProperty","cancelRequest","baseUrl","addUrlParams","sessid","bitrix_sessid","internal","grid_id","apply_filter","util","remove_url_param","clear_nav","grid_action","formData","Http","convertObjectToFormData","ajaxUrl","getAjaxId","dataType","headers","processData","scriptsRunFirst","start","preparePost","onsuccess","querySelector","getContainerId","res","parse","messages","arParams","MESSAGES","tableUnfade","isFunction","enableCheckAllCheckboxes","onerror","send","getHeadRows","getBodyRows","getRowsByParentId","getRowById","getFootRows","getMoreButton","getPagination","getCounterDisplayed","getCounterSelected","getCounterTotal","selector","getLimit","getPageSize","getActionPanel","Main","items","menuId","menu","menuItems","dataItems","dataValue","dataPseudo","dropdownItemClass","activeClass","selectedClass","notSelectedClass","lockedClass","menuItemClass","getItems","getValue","getMenuId","getMultiple","getEmptyText","createMenu","popupWindow","adjustPosition","showMenu","str","dataset","String","getValueItem","find","getValueAsArray","toString","i","getValueItems","values","toggleValue","indexOf","splice","join","getValueText","prepareMenuItems","subItem","currentValue","prepareItems","isHtmlEntity","htmlEntity","selected","innerHTML","delimiter","DELIMITER","PopupMenu","autoHide","offsetTop","offsetLeft","Number","menuOffsetLeft","maxHeight","menuMaxHeight","events","onPopupClose","_onCloseMenu","onPopupShow","_onShowMenu","getMenuById","popupPosition","popupContainer","setProperty","getSubItem","refresh","isUndefined","innerText","selectItem","layout","lockedItem","getDataItemIndexByValue","getDataItemByValue","_onItemClick","getMenuItem","close","stopPropagation","class","dropdownManager","dropdownClass","onLoadItems","document","getById","body","instance","Element","resetOnclickAttr","load","unload","isLoad","onclick","getObserver","observer","getLink","Fader","table","getTable","scrollStartEventName","isTouch","scrollEndEventName","fixedTable","debounceScrollHandler","debounce","_onWindowScroll","toggle","addEventListener","listenerParams","passive","_onHeaderUpdated","getEarLeft","_onMouseoverLeft","getEarRight","_onMouseoverRight","stopScroll","adjustEarOffset","unbind","removeEventListener","hideLeftEar","hideRightEar","startScrollByDirection","clearTimeout","scrollTimer","clearInterval","scrollInterval","direction","stepLength","stepTime","setInterval","earLeft","earRight","getShadowLeft","getShadowRight","prepare","windowHeight","height","tbodyPos","pos","tBodies","headerPos","tHead","scrollY","isIE","documentElement","scrollTop","bottomPos","top","posTop","bottom","requestAnimationFrame","lastPosTop","translate","lastBottomPos","hasScroll","offsetWidth","clientWidth","hasScrollLeft","hasScrollRight","round","showLeftEar","showRightEar","adjustFixedTablePosition","marginLeft","grid","containerId","userOptions","userOptionsActions","userOptionsHandlerUrl","panelActions","panelTypes","editorTypes","messageTypes","Event","EventEmitter","makeObservable","wrapper","fadeContainer","scrollContainer","history","checkAll","sortable","updater","fader","editor","isEditMode","pinHeader","pinPanel","resize","editableRows","location","pathname","search","TypeError","Settings","UserOptions","gridSettings","SettingsWindow","Manager","Message","cache","Cache","MemoryCache","PinHeader","bindOnCheckAll","pageSize","Pagesize","InlineEditor","PinPanel","bindOnRowEvents","Resize","bindOnMoreButtonEvents","bindOnClickPaginationLinks","bindOnClickHeader","initRowsDragAndDrop","initColsDragAndDrop","initSelected","adjustEmptyTable","getSourceBodyChild","_onUnselectRows","_onGridUpdated","frames","getFrameId","onresize","throttle","_onFrameResize","initStickedColumns","getFader","getResize","getColsSortable","getRowsSortable","getSettingsWindow","getActionsPanel","getPinPanel","adjustFadePosition","getFadeOffset","enableActionsPanel","disableActionsPanel","disableForAllCounter","adjustCheckAllCheckboxes","ie","touch","paramName","defaultValue","getActionKey","confirmForAll","CONFIRM","CONFIRM_MESSAGE","CONFIRM_FOR_ALL_MESSAGE","selectAllCheckAllCheckboxes","selectAll","enableForAllCounter","updateCounterDisplayed","updateCounterSelected","lastRowAction","unselectAllCheckAllCheckboxes","unselectAll","getCheckAllCheckboxes","indeterminateCheckAllCheckboxes","indeterminate","determinateCheckAllCheckboxes","editSelected","_onGridUpdate","editSelectedSave","FIELDS","getEditSelectedValues","tableFade","getData","editButton","reloadTable","getUpdater","updateContainer","updateHeadRows","updateBodyRows","updateFootRows","updatePagination","updateMoreButton","updateCounterTotal","updateGroupActions","colsSortable","rowsSortable","getForAllKey","updateRow","Row","update","removeRow","addRow","getAction","rowData","editSelectedCancel","removeSelected","sendSelected","selectedRows","sendRowAction","getEditor","reload","getPanels","getEmptyBlock","adjustEmptyBlockPosition","currentTarget","emptyBlock","filteredRows","gridRect","scrollBottom","diff","panelsHeight","containerWidth","paddingOffset","parentElement","parentPaddingTop","parseFloat","parentPaddingBottom","isNaN","abs","getCurrentPage","hidePanels","showPanels","getGroupEditButton","getGroupDeleteButton","enableGroupActions","deleteButton","disableGroupActions","closeActionsMenu","l","Updater","isSortableHeader","isNoSortableHeader","tag","onBeforeSortEvent","BaseEvent","columnName","emit","isDefaultPrevented","_clickOnSortableHeader","enableEditMode","disableEditMode","getColumnHeaderCellByName","getColumnByName","adjustIndex","fixedCells","getAllRows","querySelectorAll","getColumnByIndex","reduce","accumulator","slice","hasEmptyRow","stickyColumnByIndex","setStickedColumns","stickedColumns","batch","getStickedColumns","getHead","acc","cellWidth","heights","minWidth","minHeight","lastStickyCell","getLastStickyCellFromRowByIndex","lastStickyCellLeft","parseInt","lastStickyCellWidth","add","adjustFixedColumnsPosition","columnsPosition","cellLeft","reduceRight","fadeOffset","shadowLeft","sortByColumn","headerCell","header","sort_url","prepareSortUrl","setSort","sort_by","sort_order","add_url_param","by","order","RowsSortable","getUserOptionsHandlerUrl","checkAllNodes","total","getBodyChild","getCheckbox","_clickOnCheckAll","toggleSelectionAll","isAllSelected","getLinks","_clickOnPaginationLink","_clickOnMoreButton","showCheckboxes","enableCollapsibleRows","_onClickOnRow","getDefaultAction","_onRowDblclick","getActionsButton","_clickOnRowActionsButton","getCollapseButton","_onCollapseButtonClick","toggleChildRows","isCustom","setCollapsedGroups","getIdsCollapsedGroups","setExpandedRows","getIdsExpandedRows","actionsMenuIsShown","showActionsMenu","defaultJs","isEdit","clickTimer","clickPrevent","console","warn","clickDelay","selection","getSelection","nodeName","shiftKey","removeAllRanges","clickActions","apply","containsNotSelected","min","max","contentContainer","isPrevent","getContentContainer","currentIndex","currentRow","lastIndex","isSelected","select","unselect","adjustRows","Pagination","getState","state","getLoader","resetExpandedRows","appendBodyRows","newRows","newHeadRows","newNavPanel","thisBody","thisHead","thisNavPanel","addRows","cleanNode","getCountDisplayed","getCountSelected","getCounter","counter","getWrapper","getFadeContainer","getHeaders","getBody","getFoot","Rows","loader","Loader","blockSorting","headerCells","unblockSorting","sortBy","dialog","applyButton","CONFIRM_APPLY_BUTTON","CONFIRM_APPLY","CONFIRM_CANCEL_BUTTON","CONFIRM_CANCEL","PopupWindow","content","titleBar","CONFIRM_TITLE","zIndex","overlay","closeIcon","closeByEsc","onClose","hotKey","buttons","PopupWindowButton","click","PopupWindowButtonLink","code","currentPage","CURRENT_PAGE","getEmptyStub","showEmptyStub","stub","hideEmptyStub","offsetHeight","getTemplateRow","templateRow","cloned","prepend","getRowEditorValue","withTemplate","getEditorValue","getRowEditorActionPanel","rowEditorActionPanel","SAVE_BUTTON_LABEL","saveRows","CANCEL_BUTTON_LABEL","hideRowsEditor","showRowEditorActionsPanel","append","hideRowEditorActionsPanel","prependRowEditor","addRowEditor","appendRowEditor","prependTo","appendTo","edit","emitAsync","rowIndex","editCancel","makeCountable","setId","setActions","setCellsContent","getRealtime","remember","Realtime","appendHeadRows","prependHeadRows","updateBodyRowById","currentNode","prependBodyRows","foot","counterCell","paginationCell","buttonParent","closestParent","GroupActions","panelNode","panelChild","ImageField","getPreview","src","getFileInput","accept","change","reader","FileReader","onload","readAsDataURL","files","getFakeField","getLayout","getRemoveButton","getUploadButton","opacity","isDropdownChangeEventSubscribed","createTextarea","editObject","createInput","htmlspecialcharsback","NUMBER","RANGE","MIN","MAX","step","STEP","htmlspecialchars","DISABLED","createMoney","fieldChildren","priceObject","PRICE","createMoneyPrice","CURRENCY_LIST","currencyObject","CURRENCY","HTML_ENTITY","createMoneyCurrency","isNotEmptyObject","fieldName","hidden","ATTRIBUTES","priceInput","fieldNode","currencyDropdown","eventData","field","price","currency","currencyBlock","subscribe","controlId","dropdownObject","priceField","createOutput","getDropdownValueItemByValue","preparedValue","valueItem","createMultiselect","selectedValues","squares","isArrayFilled","itemName","HTML","renderedItem","Tag","render","Text","encode","isMulti","validateEditObject","initCalendar","calendar","bindOnRangeChange","output","bubble","thumbWidth","range","position","positionOffset","createImageEditor","span","_onControlKeydown","TEXTAREA","MULTISELECT","IMAGE","MONEY","processHTML","SCRIPT","isInternal","evalGlobal","saveButton","Label","DEFAULT","SECONDARY","LIGHTGREEN","LIGHTBLUE","RemoveButtonType","INSIDE","OUTSIDE","adjustLoaderOffset","display","visibility","rowsCount","setOptions","size","gridManager","object","old","getInstanceById","getDataIndex","popup","onUpdated","isNeedShow","getPopup","setContent","getContent","messagesDecl","message","messageDecl","toLowerCase","getPopupId","maxWidth","contentNoPaddings","handlers","handler","context","setPageSize","links","parentNodeResizeObserver","adminPanel","getAdminPanel","mo","MutationObserver","onAdminPanelMutation","observe","attributes","rect","workArea","ResizeObserver","refreshRect","_onScroll","_onResize","pin","async","cloneThead","cloneCells","resizeCloneCells","firstElementChild","isAdminPanelPinned","getPinOffset","toNumber","unpin","stopPin","startPin","scrollRect","scrollingElement","animationDuration","pinned","bindOnRowsEvents","unbindOnRowsEvents","_onThereSelectedRows","_onNoSelectedRows","bindOnWindowEvents","unbindOnWindowEvents","getScrollBottom","getWindowHeight","getPanelRect","panelRect","getPanelPrevBottom","prev","previousSibling","withAnimation","bodyRect","getStartDiffPanelPosition","removeProperty","isNeedPinAbsolute","absolutePin","adjustPanelPosition","unpinPanel","parentRect","translateOffset","delay","cb","isSelectedRows","isNeedPin","scrollX","pageXOffset","lastScrollX","panelPos","pinController","getEndDiffPanelPosition","prevPanelPos","prevPanelBottom","lastIsSelected","constructor","setEventNamespace","isStringFilled","ReferenceError","cellActions","setCellActions","counters","preparedCounters","Object","entries","columnId","isDouble","secondaryColor","animation","toBoolean","setCounters","insertBefore","targetRow","enableAbsolutePosition","movedElements","fakeRowNode","createElement","getHeight","animationName","disableAbsolutePosition","showStub","tr","td","colspan","getCells","description","oldStub","lastRegisterButtons","registerTableButtons","registerPinnedTableButtons","pinnedTableButtons","getPinnedTableButtons","cellsKeys","keys","cellContainer","__overlay","__resizeCell","key","fixedCell","fixedCellContainer","cpos","cellAttrWidth","sX","saveSizes","getColumnSizes","setColumnSizes","sort","actionsButton","depth","parentId","editData","onElementClick","initElementsEvents","bindNodes","isBodyChild","onMouseOver","onMouseLeave","_onRightClick","isHeadChild","cellValues","getCellEditorValue","cellValue","RAW_NAME","RAW_VALUE","editGetValues","getCustomValue","getMoneyValue","getMultiSelectValues","getImageValue","isNotCount","closest","filteredValue","inputs","currencySelector","currencyFieldName","Map","hasAttribute","resultObject","selectValues","option","set","toUpperCase","isMultipleCustomValue","has","elementName","lastIndexOf","fakeInput","getEditorContainer","collapseButton","stateLoad","stateUnload","stateExpand","stateCollapse","getParentId","getDataset","getDepth","setDepth","depthOffset","getShiftCells","childDepth","setParentId","showChildRows","getChildren","isExpand","functionName","getGroupId","hideChildRows","isChildsLoaded","childsLoaded","expand","loadChildRows","collapse","parent_id","editorContainer","getCellByIndex","getEditDataByCellIndex","getCellNameByCellIndex","resetEditData","setEditData","getEditData","editableData","rowId","getCellEditDataByCellIndex","columnEditData","editable","setDraggable","isDraggable","hasActionsButton","getActionsMenu","actionsMenu","buttonRect","getMenuItems","angle","_onPopupShow","getEventTarget","preventCloseContextMenu","popupMenu","setBindElement","pageY","getOption","pageX","getActions","initSelect","getParentNode","getParentNodeName","isSelectable","hasEditable","isFootChild","actionCell","actionButton","makeNotCountable","getColumnOptions","Reflect","headRow","cellName","columnOptions","cellContent","labels","labelOptions","label","color","light","bindOnEvents","labelContent","removeButton","labelsContainer","clean","oldLabelsContainer","tags","tagOptions","active","tagContent","tagInner","tagsContainer","addButton","oldTagsContainer","getCellById","isTemplate","test","headCells","cellsWidth","cellId","currentContainer","newContainer","actionClass","setTarget","eventName","preparedHandler","cellInner","counterContainer","uiCounter","currentCounter","newCounter","counterInner","currentInner","newInner","counterDoubleContainer","currentDoubleContainer","newDoubleContainer","bindOnce","align","leftAlignedClass","headChild","bodyChild","footChild","enableDragAndDrop","disableDragAndDrop","getFootLastChild","getLast","getFootChild","getFootFirstChild","getFirst","getBodyLastChild","getBodyFirstChild","getHeadLastChild","getHeadChild","normalizeNode","rowNode","rowInstance","array","withTemplates","getByIndex","recursive","getByParentId","getRowsByGroupId","groupId","getExpandedRows","getSourceHeadChild","getSourceFootChild","targetId","RowDragEvent","allowMoveRow","allowInsertBeforeTarget","errorMessage","allowMove","allowInsertBefore","disallowMove","disallowInsertBefore","getDragItem","getTargetItem","getEventName","setDragItem","setTargetItem","setEventName","isAllowedMove","isAllowedInsertBefore","getErrorMessage","list","setDefaultProps","getList","prepareListItems","Enable","onscrollDebounceHandler","disable","enable","windowScrollTop","rowsRectList","calcOffset","additionalDragItems","clientHeight","getTheadCells","sourceCells","createFake","cloneDragItem","cloneDragAdditionalDragItems","cloneDragAdditionalDragItemRows","theadCellsDecl","cloneRow","tableWidth","fake","getDragStartRect","moved","getAdditionalDragItems","getRowRect","dragStartOffset","start_y","dragEvent","dragRow","startDragDepth","startDragParentId","moveRow","transitionDuration","y","getWindowScrollTop","getSortOffset","getRowCenter","isDragToBottom","rowCenter","sortOffset","isMovedToBottom","isDragToTop","isMovedToTop","checkError","updateProperties","isDragetToTop","findNextVisible","createError","resetDragProperties","_onDragOver","_onDragLeave","sortRows","sortAdditionalDragItems","ids","saveRowsSort","additional","realX","realY","defaultSettings","classContainer","classWrapper","classTable","classScrollContainer","classFadeContainer","classFadeContainerRight","classFadeContainerLeft","classNavPanel","classActionPanel","classCursor","classRowCustom","classMoreButton","classRow","classHeadRow","classBodyRow","classFootRow","classDataRows","classPanels","classCellHeadContainer","classCellHeadOndrag","classEmptyRows","classEmptyBlock","classCheckAllCheckboxes","classCheckedRow","classRowCheckbox","classPagination","classActionCol","classCounterDisplayed","classCounterSelected","classCounterTotal","classTableFade","classDragActive","classResizeButton","classOnDrag","classDisableDrag","classPanelCellContent","classCollapseButton","classRowStateLoad","classRowStateExpand","classHeaderSortable","classHeaderNoSortable","classCellStatic","classHeadCell","classPageSize","classGroupEditButton","classGroupDeleteButton","classGroupActionsDisabled","classPanelButton","classPanelApplyButton","classPanelCheckbox","classEditor","classEditorContainer","classEditorText","classEditorDate","classEditorNumber","classEditorRange","classEditorCheckbox","classEditorTextarea","classEditorCustom","classEditorMoney","classCellContainer","classEditorOutput","classSettingsWindow","classSettingsWindowColumn","classSettingsWindowColumnLabel","classSettingsWindowColumnEditState","classSettingsWindowColumnEditInput","classSettingsWindowColumnEditButton","classSettingsWindowColumnCheckbox","classSettingsWindowShow","classSettingsWindowSelectAll","classSettingsWindowUnselectAll","classSettingsWindowSearchSectionsWrapper","classSettingsWindowSearchActiveSectionIcon","classSettingsWindowSearchSectionInput","classSettingsWindowSearchSectionItemHidden","classSettingsWindowSearchSectionItemVisible","classSettingsButton","classSettingsButtonActive","classSettingsWindowClose","classSettingsWindowReset","classSettingsWindowColumnChecked","classShowAnimation","classCloseAnimation","classLoader","classLoaderShow","classLoaderHide","classRowError","loaderHideAnimationName","classHide","classEar","classEarLeft","classEarRight","classNotCount","classCounter","classForAllCounterEnabled","classLoad","classRowActionButton","classDropdown","classPanelControl","classPanelControlContainer","classForAllCheckbox","classDisable","dataActionsKey","updateActionMore","classShow","classGridShow","updateActionPagination","updateActionSort","ajaxIdDataProp","pageSizeId","sortableRows","sortableColumns","getDefault","SAVE_FOR_ALL","SAVE_FOR_ME","CheckboxList","params","stickyColumns","Set","popupItems","CHECKBOX_LIST_OPTIONS","useSearch","ENABLE_FIELDS_SEARCH","useSectioning","sections","isForAllValue","createPopup","emptyStateTitle","emptyStateDescription","allSectionsDisabledTitle","parentType","UiCheckboxList","popupOptions","columnCount","lang","getSections","categories","getCategories","getOptions","onApply","onDefault","destroyPopupAfterClose","closeAfterApply","isEditableOptionsTitle","customFooterElements","getCustomFooterElements","section","sectionKey","category","columnsWithSections","customNames","getCurrentOptions","custom_names","sectionName","default","hasOwn","decode","isChecked","categoryKey","prepareColumnParams","sticked","isAdmin","SETTINGS_FOR_LABEL","SETTINGS_FOR_FOR_ME_LABEL","SETTINGS_FOR_FOR_ALL_LABEL","onClick","ALLOW_STICKED_COLUMNS","isStickyColumnsAllowed","HAS_STICKED_COLUMNS","hasStickyColumns","fields","isForAll","saveColumnsAndHidePopup","saveColumns","prepareOrderedColumnsList","newColumns","currentOptions","currentColumns","filteredColumns","newAddedColumns","columnNames","getColumnNames","orderedColumns","view_id","set_default_settings","delete_user_settings","names","titles","isObjectLike","DEFAULT_COLUMNS","CONFIRM_RESET_MESSAGE","sortItems","getSelectedColumns","getSelectedOptions","IS_ADMIN","getPopupItems","selectOption","saveColumnsByNames","Column","defaultTitle","lastTitle","trim","updateState","getEditButton","onEditButtonClick","getStickyButton","onStickyButtonClick","isSticked","unstick","stick","isEditEnabled","disableEdit","enableEdit","setState","getTitle","restoreState","setTitle","getLabel","getDefaultTitle","isEdited","getSettings","isDefault","restore","stickedDefault","onLabelPaste","onLabelKeydown","clipboardData","sourceText","encodedText","formattedHtml","RegExp","execCommand","keyCode","contentEditable","adjustCaret","isContentEditable","createRange","elementTextLength","textNodes","childNodes","lastTextNode","setStart","setEnd","addRange","fieldsSettingsInstance","_onContainerClick","_onColumnMoved","_onSettingsButtonClick","getFieldsSettingsInstance","Promise","resolve","createFieldsSettingsInstance","isUseLazyLoadColumns","useLazyLoadColumns","getPopupTitle","useCheckboxList","Popup","UI","customSettingsTitle","settingsTitle","tmpDiv","gridsCount","getTitleFromNodeById","nodeId","getElementById","pageTitle","pageTitleBtnWrapper","fullTitle","getShowedColumns","filterSectionsSearchInput","filterSections","allColumns","resetButton","selectAllButton","unselectAllButton","leftIndentFromWindow","rightIndentFromWindow","popupWidth","MainPopup","getSourceContent","onItemClick","onAnimationEnd","getResetButton","onResetButtonClick","onApplyButtonClick","getCancelButton","getSelectAllButton","onSelectAll","getUnselectAllButton","onUnselectAll","COLUMNS_ALL_WITH_SECTIONS","prepareFilterSections","prepareFilterSectionsSearchInput","emitSaveEvent","restoreLastColumns","disableAllColumnsLabelEdit","adjustActionButtonsState","sourceContent","contentList","fetchColumns","prepareColumnOptions","createColumnElement","hideAndDestroyLoader","fixedFooter","getPopupContainer","catch","promise","lazyLoadParams","controller","GET_LIST","isNil","fulfill","Ajax","runAction","checkboxId","checkedClass","enableActions","disableActions","getPopupContentContainer","getElementsByClassName","getFilterSectionsSearchInput","onFilterSectionSearchInput","previousElementSibling","onFilterSectionSearchInputClear","getResetButtonId","enableWait","restoreColumns","disableWait","showedColumns","getAllColumns","isShowedColumn","getApplyButtonId","onApplyConfirmDialogButton","unselectForAllCheckbox","buttonNode","updateColumnsState","getCancelButtonId","getFilterSections","onFilterSectionClick","HTMLCollection","sectionId","uiGridFilterSectionButton","getCurrentViewName","current_view","getViewsList","views","getUrl","GRID_ID","bxajaxid","newOptions","save","setColumnsNames","sizes","forAll","view_settings","saveForAll","bath","post","ajaxId","arrayMove","newIndex","k","collection","getNext","currentItem","getPrev","closestChilds","root","collectionLength","targetIndex","properties","propKey","raf","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","arguments","rootElement","first","getElementsByTagName"],"mappings":";;;;CAAA,CAAC,YAAW;;GAGXA,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAACC,WAAW,GAAG,UAASC,MAAM,EAAEC,OAAO,EAAEC,KAAK,EACrD;KACC,IAAI,CAACF,MAAM,GAAG,IAAI;KAClB,IAAI,CAACG,GAAG,GAAG,EAAE;KACb,IAAI,CAACF,OAAO,GAAG,IAAI;KACnB,IAAI,CAACC,KAAK,GAAG,IAAI;KACjB,IAAI,CAACE,aAAa,GAAG,EAAE;KACvB,IAAI,CAACC,IAAI,CAACL,MAAM,EAAEC,OAAO,EAAEC,KAAK,CAAC;KACjC,IAAI,CAACI,MAAM,GAAG,EAAE;KAChB,IAAI,CAACC,QAAQ,GAAG,EAAE;KAClB,IAAI,CAACC,cAAc,GAAG,EAAE;KACxB,IAAI,CAACC,UAAU,GAAG,EAAE;IACpB;GAEDb,EAAE,CAACE,IAAI,CAACC,WAAW,CAACW,SAAS,GAAG;KAC/BL,IAAI,CAACL,MAAM,EAAEC,OAAO,EAAEC,KAAK,EAC3B;OACC,IAAI,CAACF,MAAM,GAAGA,MAAM;OACpB,IAAI,CAACC,OAAO,GAAGU,IAAI,CAACV,OAAO,CAAC;OAC5B,IAAI,CAACC,KAAK,GAAGS,IAAI,CAACT,KAAK,CAAC;OAExBN,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,kBAAkB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACC,oBAAoB,EAAE,IAAI,CAAC,CAAC;OAExFnB,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,gBAAgB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACC,oBAAoB,EAAE,IAAI,CAAC,CAAC;OAEtF,MAAMC,KAAK,GAAG,IAAI,CAACC,QAAQ,EAAE;OAC7BrB,EAAE,CAACsB,IAAI,CAACF,KAAK,EAAE,QAAQ,EAAEpB,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAACC,eAAe,EAAE,IAAI,CAAC,CAAC;OACjExB,EAAE,CAACsB,IAAI,CAACF,KAAK,EAAE,OAAO,EAAEpB,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAACE,cAAc,EAAE,IAAI,CAAC,CAAC;OAE/DzB,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,eAAe,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACQ,uBAAuB,EAAE,IAAI,CAAC,CAAC;MACxF;KAEDC,OAAO,GACP;OACC3B,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,kBAAkB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACC,oBAAoB,EAAE,IAAI,CAAC,CAAC;OAC3FnB,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,gBAAgB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACC,oBAAoB,EAAE,IAAI,CAAC,CAAC;OACzFnB,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,eAAe,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACQ,uBAAuB,EAAE,IAAI,CAAC,CAAC;MAC3F;KAEDA,uBAAuB,GACvB;OACC,MAAMG,YAAY,GAAG7B,EAAE,CAAC,oBAAoB,CAAC;OAC7C6B,YAAY,IAAI7B,EAAE,CAAC8B,SAAS,CAAC9B,EAAE,CAAC+B,UAAU,CAACF,YAAY,CAAC,EAAE,OAAO,CAAC;MAClE;KAEDV,oBAAoB,CAACa,EAAE,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAC9C;OACC,IAAI,CAACC,cAAc,CAACpC,EAAE,CAACgC,EAAE,CAAC,CAAC,IAAI,IAAI,CAACK,eAAe,CAACL,EAAE,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,CAAC;MAC9E;KAEDG,mBAAmB,GACnB;OACC,MAAMC,QAAQ,GAAG,IAAI,CAACC,iBAAiB,EAAE;OAEzC,IAAIxC,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACH,QAAQ,CAAC,EAC/B;SACCA,QAAQ,CAACI,OAAO,GAAG,IAAI;;MAExB;KAEDH,iBAAiB,GACjB;OACC,OAAOxC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACxB,QAAQ,EAAE,EAAE,IAAI,CAACjB,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC;MACvG;KAED1B,QAAQ,GACR;OACC,OAAOrB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACzC,MAAM,CAAC4C,YAAY,EAAE,EAAE,IAAI,CAAC5C,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;MAC/G;KAEDE,cAAc,GACd;OACC,OAAOjD,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACxB,QAAQ,EAAE,EAAE,IAAI,CAACjB,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC;MACzG;KAEDX,cAAc,CAACc,IAAI,EACnB;OACC,OAAOlD,EAAE,CAACmD,QAAQ,CAACD,IAAI,EAAE,IAAI,CAAC9C,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,mBAAmB,CAAC,CAAC;MACvE;KAEDK,aAAa,GACb;OACC,OAAOpD,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACS,aAAa,CAAC,IAAI,CAAChC,QAAQ,EAAE,EAAE,oBAAoB,CAAC;MACzE;KAEDiC,eAAe,GACf;OACC,OAAOtD,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACS,aAAa,CAAC,IAAI,CAAChC,QAAQ,EAAE,EAAE,sBAAsB,CAAC;MAC3E;KAEDkC,UAAU,GACV;OACC,OAAOvD,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACS,aAAa,CAAC,IAAI,CAAChC,QAAQ,EAAE,EAAE,QAAQ,CAAC;MAC7D;KAEDmC,YAAY,GACZ;OACC,OAAOxD,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACxB,QAAQ,EAAE,EAAE,IAAI,CAACjB,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,eAAe,CAAC,CAAC;MAC3F;KAEDU,aAAa,GACb;OACC,OAAOzD,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACxB,QAAQ,EAAE,EAAE,IAAI,CAACjB,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,oBAAoB,CAAC,CAAC;MAChG;KAEDW,UAAU,GACV;OACC,OAAO1D,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACxB,QAAQ,EAAE,EAAE,IAAI,CAACjB,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,kBAAkB,CAAC,CAAC;MAC9F;KAEDY,UAAU,CAACT,IAAI,EACf;OACC,OAAOlD,EAAE,CAACmD,QAAQ,CAACD,IAAI,EAAE,IAAI,CAAC9C,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,eAAe,CAAC,CAAC;MACnE;KAEDa,UAAU,CAACV,IAAI,EACf;OACC,OAAOlD,EAAE,CAACmD,QAAQ,CAACD,IAAI,EAAE,IAAI,CAAC9C,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,oBAAoB,CAAC,CAAC;MACxE;KAEDc,WAAW,CAACX,IAAI,EAChB;OACC,OAAOA,IAAI,CAACT,IAAI,KAAK,MAAM;MAC3B;KAEDqB,aAAa,CAACZ,IAAI,EAClB;OACC,OAAOA,IAAI,CAACT,IAAI,KAAK,QAAQ;MAC7B;KAEDsB,QAAQ,CAACb,IAAI,EACb;OACC,OAAOA,IAAI,CAACc,OAAO,KAAK,QAAQ;MAChC;KAEDC,cAAc,CAACC,IAAI,EAAEC,QAAQ,EAC7B;OACC,MAAMC,SAAS,GAAGF,IAAI,CAACG,UAAU,IAAI,EAAE;OACvC,MAAMC,UAAU,GAAGJ,IAAI,CAACK,QAAQ,KAAK,GAAG;OACxC,MAAMC,SAAS,GAAG,IAAI,CAACC,eAAe,CAACP,IAAI,CAACQ,EAAE,EAAEP,QAAQ,EAAE,EAAE,CAAC;OAC7D,MAAMQ,QAAQ,GAAG3E,EAAE,CAAC4E,MAAM,CAAC,KAAK,EAAE;SACjCC,KAAK,EAAE;WACNC,SAAS,EAAE,uCAAuC;WAClD9C,EAAE,EAAG,GAAEkC,IAAI,CAACQ,EAAG;UACf;SACDK,KAAK,EAAE;WACNC,IAAI,EAAEd,IAAI,CAACe,IAAI;WACf,WAAW,EAAEf,IAAI,CAACe,IAAI;WACtB,iBAAiB,EAAEb,SAAS;WAC5B,eAAe,EAAEE,UAAU,GAAG,GAAG,GAAG,GAAG;WACvC,YAAY,EAAEY,IAAI,CAACC,SAAS,CAACjB,IAAI,CAACkB,KAAK,CAAC;WACxC,YAAY,EAAEd,UAAU,GAAG,EAAE,GAAGJ,IAAI,CAACkB,KAAK,CAAC,CAAC,CAAC,CAACC,KAAK;WACnD,qBAAqB,EAAE;UACvB;SACDC,QAAQ,EAAE,CAACtF,EAAE,CAAC4E,MAAM,CAAC,MAAM,EAAE;WAC5BC,KAAK,EAAE;aAAEC,SAAS,EAAE;YAAuB;WAC3CS,IAAI,EAAEjB,UAAU,GAAGF,SAAS,GAAGF,IAAI,CAACkB,KAAK,CAAC,CAAC,CAAC,CAACH;UAC7C,CAAC;QACF,CAAC;OAEFT,SAAS,CAACgB,WAAW,CAACb,QAAQ,CAAC;OAE/B,OAAOH,SAAS;MAChB;KAEDiB,cAAc,CAACvB,IAAI,EAAEC,QAAQ,EAC7B;OACC,MAAM5B,QAAQ,GAAG,IAAI,CAACkC,eAAe,CAACP,IAAI,CAACQ,EAAE,EAAEP,QAAQ,EAAE,EAAE,CAAC;OAE5D,MAAMuB,KAAK,GAAG1F,EAAE,CAAC4E,MAAM,CAAC,MAAM,EAAE;SAC/BC,KAAK,EAAE;WACNC,SAAS,EAAE;;QAEZ,CAAC;OAEF,MAAMa,SAAS,GAAG3F,EAAE,CAAC4E,MAAM,CAAC,MAAM,EAAE;SACnCC,KAAK,EAAE;WACNC,SAAS,EAAE;;QAEZ,CAAC;OAEF,MAAMc,KAAK,GAAG5F,EAAE,CAAC4E,MAAM,CAAC,OAAO,EAAE;SAChCC,KAAK,EAAE;WACNpC,IAAI,EAAE,UAAU;WAChBqC,SAAS,EAAG,GAAE,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,oBAAoB,CAAE,qBAAoB;WACjFf,EAAE,EAAG,GAAEkC,IAAI,CAACQ,EAAG;UACf;SACDK,KAAK,EAAE;WACNc,KAAK,EAAE3B,IAAI,CAACmB,KAAK,IAAI,EAAE;WACvBS,KAAK,EAAE5B,IAAI,CAAC6B,KAAK,IAAI,EAAE;WACvBf,IAAI,EAAEd,IAAI,CAACe,IAAI,IAAI,EAAE;WACrB,eAAe,EAAEC,IAAI,CAACC,SAAS,CAACjB,IAAI,CAAC8B,QAAQ;;QAE9C,CAAC;OAEFJ,KAAK,CAACjD,OAAO,GAAGuB,IAAI,CAAC+B,OAAO,IAAI,IAAI;OAEpC1D,QAAQ,CAACiD,WAAW,CAACE,KAAK,CAAC;OAC3BnD,QAAQ,CAACiD,WAAW,CAACG,SAAS,CAAC;OAE/BD,KAAK,CAACF,WAAW,CAACI,KAAK,CAAC;OAExBF,KAAK,CAACF,WAAW,CAACxF,EAAE,CAAC4E,MAAM,CAAC,OAAO,EAAE;SACpCC,KAAK,EAAE;WACNC,SAAS,EAAE;UACX;SACDC,KAAK,EAAE;WACNmB,GAAG,EAAG,GAAEhC,IAAI,CAACQ,EAAG,UAAS;WACzBoB,KAAK,EAAE5B,IAAI,CAAC6B;;QAEb,CAAC,CAAC;OAEHJ,SAAS,CAACH,WAAW,CAACxF,EAAE,CAAC4E,MAAM,CAAC,OAAO,EAAE;SACxCG,KAAK,EAAE;WACNmB,GAAG,EAAG,GAAEhC,IAAI,CAACQ,EAAG,UAAS;WACzBoB,KAAK,EAAE5B,IAAI,CAAC6B;UACZ;SACDR,IAAI,EAAErB,IAAI,CAACiC;QACX,CAAC,CAAC;OAEH,OAAO5D,QAAQ;MACf;;CAGH;CACA;CACA;CACA;CACA;CACA;CACA;CACA;KACE6D,UAAU,CAAClC,IAAI,EAAEC,QAAQ,EACzB;OACC,MAAMK,SAAS,GAAG,IAAI,CAACC,eAAe,CAACP,IAAI,CAACQ,EAAE,EAAEP,QAAQ,EAAE,EAAE,CAAC;OAC7D,MAAM2B,KAAK,GAAG9F,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAACnC,IAAI,CAAC6B,KAAK,CAAC,GAAG7B,IAAI,CAAC6B,KAAK,GAAG,EAAE;OACpE,IAAID,KAAK,KAAK,EAAE,EAChB;SACCtB,SAAS,CAACgB,WAAW,CACpBxF,EAAE,CAAC4E,MAAM,CACR,OAAO,EACP;WACCG,KAAK,EAAE;aAAEe,KAAK;aAAEI,GAAG,EAAG,GAAEhC,IAAI,CAACQ,EAAG;YAAW;WAC3C4B,IAAI,EAAER;UACN,CACD,CACD;;OAEFtB,SAAS,CAACgB,WAAW,CACpBxF,EAAE,CAAC4E,MAAM,CACR,OAAO,EACP;SACCC,KAAK,EACJ;WACCC,SAAS,EAAE,4DAA4D;WACvE9C,EAAE,EAAG,GAAEkC,IAAI,CAACQ,EAAG;UACf;SACFK,KAAK,EACJ;WACCC,IAAI,EAAEd,IAAI,CAACe,IAAI;WACfa,KAAK;WACLS,WAAW,EAAErC,IAAI,CAACsC,WAAW,IAAI,EAAE;WACnCX,KAAK,EAAE3B,IAAI,CAACmB,KAAK,IAAI,EAAE;WACvB5C,IAAI,EAAE,MAAM;WACZ,eAAe,EAAEyC,IAAI,CAACC,SAAS,CAACjB,IAAI,CAAC8B,QAAQ,IAAI,EAAE;;QAErD,CACD,CACD;OAED,OAAOxB,SAAS;MAChB;KAEDiC,YAAY,CAACvC,IAAI,EAAEC,QAAQ,EAC3B;OACC,MAAMK,SAAS,GAAG,IAAI,CAACC,eAAe,CACrCP,IAAI,CAACQ,EAAE,EACPP,QAAQ,EACR;SAAEuC,KAAK,EAAE;QAA4C,CACrD;OACDlC,SAAS,CAACgB,WAAW,CACpBxF,EAAE,CAAC4E,MAAM,CACR,OAAO,EACP;SACCC,KAAK,EACJ;WACC7C,EAAE,EAAG,GAAEkC,IAAI,CAACQ,EAAG,UAAS;WACxBjC,IAAI,EAAE;UACN;SACFsC,KAAK,EACJ;WACCC,IAAI,EAAEd,IAAI,CAACe,IAAI;WACfY,KAAK,EAAE3B,IAAI,CAACmB,KAAK,IAAI;;QAEvB,CACD,CACD;OAED,OAAOb,SAAS;MAChB;KAEDmC,YAAY,CAACzC,IAAI,EAAEC,QAAQ,EAC3B;OACC,IAAI,CAACvD,cAAc,GAAIsD,IAAI,CAAC8B,QAAQ,IAAI,EAAG;OAC3C,IAAI,CAACnF,UAAU,GAAGqD,IAAI;OAEtB,IAAI,CAACxD,MAAM,GAAG,IAAI,CAACkG,gBAAgB,CAAC1C,IAAI,CAAC;OAEzClE,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,mBAAmB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2F,aAAa,EAAE,IAAI,CAAC,CAAC;OACrF7G,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,iBAAiB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2F,aAAa,EAAE,IAAI,CAAC,CAAC;OACnF7G,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,uBAAuB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2F,aAAa,EAAE,IAAI,CAAC,CAAC;OACzF7G,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,yBAAyB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2F,aAAa,EAAE,IAAI,CAAC,CAAC;OAE3F,IACC,IAAI,CAAChG,UAAU,CAACiG,QAAQ,IACrB5C,IAAI,CAACQ,EAAE,KAAK,IAAI,CAAC7D,UAAU,CAACiG,QAAQ,CAACC,QAAQ,EAEjD;SACC/G,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,mBAAmB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2F,aAAa,EAAE,IAAI,CAAC,CAAC;SAClF7G,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,iBAAiB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2F,aAAa,EAAE,IAAI,CAAC,CAAC;SAChF7G,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,uBAAuB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2F,aAAa,EAAE,IAAI,CAAC,CAAC;SACtF7G,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,yBAAyB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2F,aAAa,EAAE,IAAI,CAAC,CAAC;;OAGzF,IAAI,CAACA,aAAa,EAAE;OAEpB,MAAMrC,SAAS,GAAG,IAAI,CAACC,eAAe,CAACP,IAAI,CAACQ,EAAE,EAAEP,QAAQ,EAAE,EAAE,CAAC;OAC7DK,SAAS,CAACgB,WAAW,CAAC,IAAI,CAAC9E,MAAM,CAAC;OAElC,OAAO8D,SAAS;MAChB;KAEDoC,gBAAgB,CAAC1C,IAAI,EACrB;OACC,OAAOlE,EAAE,CAAC4E,MAAM,CAAC,QAAQ,EAAE;SAC1BC,KAAK,EAAE;WACNC,SAAS,EAAG,SAAQZ,IAAI,CAACwC,KAAK,GAAI,IAAGxC,IAAI,CAACwC,KAAM,EAAC,GAAG,EAAG,EAAC;WACxD1E,EAAE,EAAG,GAAEkC,IAAI,CAACQ,EAAG,UAAS;WACxBoB,KAAK,EAAE9F,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAACnC,IAAI,CAAC6B,KAAK,CAAC,GAAG7B,IAAI,CAAC6B,KAAK,GAAG;UAC3D;SACDhB,KAAK,EAAE;WACNC,IAAI,EAAEd,IAAI,CAACe,IAAI,IAAI;UACnB;SACDM,IAAI,EAAErB,IAAI,CAAC8C;QACX,CAAC;MACF;KAEDH,aAAa,GACb;OACC,IAAI,IAAI,CAACI,mBAAmB,EAAE,EAC9B;SACCjH,EAAE,CAACkH,GAAG,CAACC,IAAI,CAAC,IAAI,CAACzG,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC;SAC7CV,EAAE,CAACkH,GAAG,CAACE,QAAQ,CAAC,IAAI,CAAC1G,MAAM,EAAE,iBAAiB,CAAC;QAC/C,MAED;SACCV,EAAE,CAACkH,GAAG,CAACC,IAAI,CAAC,IAAI,CAACzG,MAAM,EAAE,eAAe,EAAE,IAAI,CAACE,cAAc,CAAC;SAC9DZ,EAAE,CAACkH,GAAG,CAACG,WAAW,CAAC,IAAI,CAAC3G,MAAM,EAAE,iBAAiB,CAAC;;MAEnD;KAEDuG,mBAAmB,GACnB;OACC,OAAOK,OAAO,CAAC,IAAI,CAACzG,UAAU,CAACiG,QAAQ,IACnC,IAAI,CAACjG,UAAU,CAACiG,QAAQ,CAACS,eAAe,IACvC,IAAI,CAACC,cAAc,EAAE,CAACC,MAAM,GAAG,IAAI,CAAC5G,UAAU,CAACiG,QAAQ,CAACS,eAAgB,CAAC;MAC9E;;CAGH;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;KACEG,UAAU,CAACxD,IAAI,EAAEC,QAAQ,EACzB;OACC,MAAMK,SAAS,GAAG,IAAI,CAACC,eAAe,CAACP,IAAI,CAACQ,EAAE,EAAEP,QAAQ,EAAE,EAAE,CAAC;OAC7D,MAAMwD,IAAI,GAAG3H,EAAE,CAAC4E,MAAM,CAAC,GAAG,EAAE;SAC3BC,KAAK,EAAE;WACNC,SAAS,EAAG,iBAAgBZ,IAAI,CAACwC,KAAK,GAAI,IAAGxC,IAAI,CAACwC,KAAM,EAAC,GAAG,EAAG,EAAC;WAChE1E,EAAE,EAAG,GAAEkC,IAAI,CAACQ,EAAG;UACf;SACDK,KAAK,EAAE;WACN6C,IAAI,EAAE1D,IAAI,CAAC2D,IAAI,IAAI,EAAE;WACrB,eAAe,EAAE3C,IAAI,CAACC,SAAS,CAACjB,IAAI,CAAC8B,QAAQ,IAAI,EAAE;UACnD;SACDT,IAAI,EAAErB,IAAI,CAAC8C;QACX,CAAC;OAEFxC,SAAS,CAACgB,WAAW,CAACmC,IAAI,CAAC;OAE3B,OAAOnD,SAAS;MAChB;KAEDsD,YAAY,CAAC5D,IAAI,EAAEC,QAAQ,EAC3B;OACC,MAAMK,SAAS,GAAG,IAAI,CAACC,eAAe,CACrCP,IAAI,CAACQ,EAAE,EACPP,QAAQ,EACR;SAAEuC,KAAK,EAAE;QAA4C,CACrD;OAED,MAAMqB,MAAM,GAAG/H,EAAE,CAAC4E,MAAM,CAAC,KAAK,EAAE;SAC/BC,KAAK,EAAE;WACNC,SAAS,EAAG,yBAAwBZ,IAAI,CAACwC,KAAK,GAAI,IAAGxC,IAAI,CAACwC,KAAM,EAAC,GAAG,EAAG;UACvE;SACDnB,IAAI,EAAErB,IAAI,CAACmB;QACX,CAAC;OAEFb,SAAS,CAACgB,WAAW,CAACuC,MAAM,CAAC;OAE7B,OAAOvD,SAAS;MAChB;KAEDC,eAAe,CAACzC,EAAE,EAAEmC,QAAQ,EAAE6D,OAAO,EACrC;OACChG,EAAE,GAAGA,EAAE,CAACiG,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;OAC/B9D,QAAQ,GAAGA,QAAQ,CAAC8D,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;OAC3CD,OAAO,GAAGA,OAAO,IAAI,EAAE;OAEvB,OAAOhI,EAAE,CAAC4E,MAAM,CAAC,MAAM,EAAE;SACxBC,KAAK,EAAE;WACNC,SAAS,EAAE,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,4BAA4B,CAAC,IAAIiF,OAAO,CAACtB,KAAK,GAAI,IAAGsB,OAAO,CAACtB,KAAM,EAAC,GAAG,EAAE,CAAC;WAC9G1E;UACA;SACD+C,KAAK,EAAE;WACN,eAAe,EAAEZ;;QAElB,CAAC;MACF;KAED+D,0BAA0B,CAAChF,IAAI,EAC/B;OACC,IAAIiF,OAAO,GAAGjF,IAAI;OAClB,MAAMiB,QAAQ,GAAG,CAACjB,IAAI,CAAClB,EAAE,CAAC;OAC1B,MAAMoG,MAAM,GAAG,EAAE;OACjB,IAAIC,YAAY;OAEhB,OAAOF,OAAO,EACd;SACCE,YAAY,GAAGrI,EAAE,CAACkE,IAAI,CAACiE,OAAO,EAAE,UAAU,CAAC;SAE3C,IAAIhE,QAAQ,CAACmE,QAAQ,CAACD,YAAY,CAAC,EACnC;WACClE,QAAQ,CAACoE,IAAI,CAACJ,OAAO,CAACnG,EAAE,CAAC;WACzBoG,MAAM,CAACG,IAAI,CAACJ,OAAO,CAAC;;SAGrBA,OAAO,GAAGA,OAAO,CAACK,kBAAkB;;OAGrCJ,MAAM,CAACK,OAAO,CAAEC,OAAO,IAAK;SAC3B1I,EAAE,CAAC2I,MAAM,CAACD,OAAO,CAAC;QAClB,CAAC;MACF;KAEDE,YAAY,CAAC1E,IAAI,EACjB;OACC,OACE,UAAU,IAAIA,IAAI,IAChBlE,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAAC3E,IAAI,CAAC8B,QAAQ,CAAC;MAElC;KAED8C,eAAe,CAAC9G,EAAE,EAClB;OACC,MAAMmG,OAAO,GAAGnI,EAAE,CAACgC,EAAE,CAAC;OAEtB,IAAIhC,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACyF,OAAO,CAAC,EAC9B;SACCnI,EAAE,CAACqH,WAAW,CAACc,OAAO,EAAE,IAAI,CAAC/H,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,CAAC;SACjEoF,OAAO,CAACY,QAAQ,GAAG,IAAI;;MAExB;KAEDC,iBAAiB,CAAChH,EAAE,EACpB;OACC,MAAMmG,OAAO,GAAGnI,EAAE,CAACgC,EAAE,CAAC;OAEtB,IAAIhC,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACyF,OAAO,CAAC,EAC9B;SACCnI,EAAE,CAACoH,QAAQ,CAACe,OAAO,EAAE,IAAI,CAAC/H,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,CAAC;SAC9DoF,OAAO,CAACY,QAAQ,GAAG,IAAI;;MAExB;KAEDE,WAAW,CAACjH,EAAE,EACd;OACC,MAAMkH,OAAO,GAAGlJ,EAAE,CAACgC,EAAE,CAAC;OACtBkH,OAAO,IAAIlJ,EAAE,CAACmJ,IAAI,CAACD,OAAO,CAAC;MAC3B;KAEDE,WAAW,CAACpH,EAAE,EACd;OACC,MAAMkH,OAAO,GAAGlJ,EAAE,CAACgC,EAAE,CAAC;OACtBkH,OAAO,IAAIlJ,EAAE,CAACqJ,IAAI,CAACH,OAAO,CAAC;MAC3B;KAEDI,oBAAoB,CAACC,MAAM,EAC3B;OACC,OACCvJ,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAACD,MAAM,CAAC,IAAK,QAAQ,IAAIA,MAAO,IAAIvJ,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAACkD,MAAM,CAACE,MAAM,CAAC,KAC/FF,MAAM,CAACE,MAAM,KAAK,IAAI,CAACpJ,OAAO,CAACqJ,cAAc,IACzC,MAAM,IAAIH,MAAM,IAAKvJ,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACU,MAAM,CAACI,IAAI,CAAC,CACrD;MAEF;KAEDC,qBAAqB,CAACC,aAAa,EACnC;OACC,OACC7J,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAACK,aAAa,CAAC,IAChC,MAAM,IAAIA,aAAc,IACxB,IAAI,IAAIA,aAAc;MAE3B;KAEDC,UAAU,CAAC5F,IAAI,EAAEC,QAAQ,EACzB;OACC,MAAMK,SAAS,GAAG,IAAI,CAACC,eAAe,CAACP,IAAI,CAACQ,EAAE,EAAEP,QAAQ,EAAE,EAAE,CAAC;OAC7D,MAAM4F,IAAI,GAAG/J,EAAE,CAACgK,IAAI,CAAC;SACpBC,KAAK,EAAE,cAAc;SACrBC,GAAG,EAAE,CAAC,sBAAsB,CAAC;SAC7BC,cAAc,EAAE,IAAI;SACpBC,WAAW,EAAE,IAAI;SACjB7D,WAAW,EAAE,aAAa,IAAIrC,IAAI,GAAGA,IAAI,CAACsC,WAAW,GAAG,EAAE;SAC1DxB,IAAI,EAAE,MAAM,IAAId,IAAI,GAAI,GAAEA,IAAI,CAACe,IAAK,OAAM,GAAG,EAAE;SAC/CoF,QAAQ,EAAE,UAAU,IAAInG,IAAI,GAAGA,IAAI,CAACoG,QAAQ,GAAG,EAAE;SACjDzE,KAAK,EAAE,OAAO,IAAI3B,IAAI,GAAGA,IAAI,CAACmB,KAAK,GAAG,EAAE;SACxCkF,UAAU,EAAE,MAAM,IAAIrG,IAAI,GAAIA,IAAI,CAACsG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAI;QAC9D,CAAC;OAEFhG,SAAS,CAACgB,WAAW,CAACuE,IAAI,CAAC;OAE3B,OAAOvF,SAAS;MAChB;KAEDiG,aAAa,CAACZ,aAAa,EAAEa,UAAU,EACvC;OACC,IAAIC,UAAU,GAAG,IAAI;OACrB,QAAQd,aAAa,CAACe,IAAI;SAEzB,KAAK,IAAI,CAACtK,KAAK,CAACuK,QAAQ;WACvBF,UAAU,GAAG,IAAI,CAAC1G,cAAc,CAAC4F,aAAa,EAAEa,UAAU,CAAC;WAC3D;SAED,KAAK,IAAI,CAACpK,KAAK,CAACwK,QAAQ;WACvBH,UAAU,GAAG,IAAI,CAAClF,cAAc,CAACoE,aAAa,EAAEa,UAAU,CAAC;WAC3D;SAED,KAAK,IAAI,CAACpK,KAAK,CAAC0G,IAAI;WACnB2D,UAAU,GAAG,IAAI,CAACvE,UAAU,CAACyD,aAAa,EAAEa,UAAU,CAAC;WACvD;SAED,KAAK,IAAI,CAACpK,KAAK,CAACyK,MAAM;WACrBJ,UAAU,GAAG,IAAI,CAAClE,YAAY,CAACoD,aAAa,EAAEa,UAAU,CAAC;WACzD;SAED,KAAK,IAAI,CAACpK,KAAK,CAAC0K,MAAM;WACrBL,UAAU,GAAG,IAAI,CAAChE,YAAY,CAACkD,aAAa,EAAEa,UAAU,CAAC;WACzD;SAED,KAAK,IAAI,CAACpK,KAAK,CAAC2K,IAAI;WACnBN,UAAU,GAAG,IAAI,CAACjD,UAAU,CAACmC,aAAa,EAAEa,UAAU,CAAC;WACvD;SAED,KAAK,IAAI,CAACpK,KAAK,CAAC4K,MAAM;WACrBP,UAAU,GAAG,IAAI,CAAC7C,YAAY,CAAC+B,aAAa,EAAEa,UAAU,CAAC;WACzD;SAED,KAAK,IAAI,CAACpK,KAAK,CAAC6K,IAAI;WACnBR,UAAU,GAAG,IAAI,CAACb,UAAU,CAACD,aAAa,EAAEa,UAAU,CAAC;WACvD;;OAGF,OAAOC,UAAU;MACjB;KAEDS,eAAe,CAAC5G,SAAS,EAAEnE,OAAO,EAAEgL,QAAQ,EAC5C;OACC,IAAIV,UAAU;OAAE,IACfW,QAAQ;OACT,MAAMC,IAAI,GAAG,IAAI;OAEjB,IAAIvL,EAAE,CAACyC,IAAI,CAACC,SAAS,CAAC8B,SAAS,CAAC,IAAIxE,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACxI,OAAO,CAAC,EAC5D;SACCA,OAAO,CAACoI,OAAO,CAAC,UAASc,MAAM,EAAE;WAChC,IAAIgC,IAAI,CAACjC,oBAAoB,CAACC,MAAM,CAAC,EACrC;aACC,IAAIA,MAAM,CAACE,MAAM,KAAK8B,IAAI,CAAClL,OAAO,CAACmL,MAAM,EACzC;eACCD,IAAI,CAACrD,0BAA0B,CAAC1D,SAAS,CAAC;eAC1C,MAAMiH,YAAY,GAAGzL,EAAE,CAAC0L,OAAO,CAACC,KAAK,CAACpC,MAAM,CAACI,IAAI,CAAC,CAACiC,OAAO,EAAE;eAE5DH,YAAY,CAAChD,OAAO,CAAEoB,aAAa,IAAK;iBACvC,IAAI0B,IAAI,CAAC3B,qBAAqB,CAACC,aAAa,CAAC,EAC7C;mBACCc,UAAU,GAAGY,IAAI,CAACd,aAAa,CAACZ,aAAa,EAAErF,SAAS,CAACxC,EAAE,IAAIhC,EAAE,CAACkE,IAAI,CAACM,SAAS,EAAE,UAAU,CAAC,CAAC;mBAE9F,IAAIxE,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACiI,UAAU,CAAC,EACjC;qBACC3K,EAAE,CAAC6L,WAAW,CAAClB,UAAU,EAAEnG,SAAS,CAAC;qBAErC,IAAK,UAAU,IAAIqF,aAAa,IAC5BA,aAAa,CAACe,IAAI,KAAKW,IAAI,CAACjL,KAAK,CAACwK,QAAQ,IACzC,SAAS,IAAIjB,aAAc,IAC5BA,aAAa,CAAC5D,OAAO,EACzB;uBACCsF,IAAI,CAACH,eAAe,CAACT,UAAU,EAAEd,aAAa,CAAC7D,QAAQ,CAAC;;qBAGzD,IAAI6D,aAAa,CAACe,IAAI,KAAKW,IAAI,CAACjL,KAAK,CAACuK,QAAQ,IAC1C7K,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACgB,aAAa,CAACzE,KAAK,CAAC,IACpCyE,aAAa,CAACzE,KAAK,CAACqC,MAAM,GAAG,CAAC,IAC7B,UAAU,IAAIoC,aAAa,CAACzE,KAAK,CAAC,CAAC,CAAE,IACtCpF,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACgB,aAAa,CAACzE,KAAK,CAAC,CAAC,CAAC,CAACY,QAAQ,CAAC,EACpD;uBACCuF,IAAI,CAACH,eAAe,CAACT,UAAU,EAAEd,aAAa,CAACzE,KAAK,CAAC,CAAC,CAAC,CAACY,QAAQ,CAAC;;;;gBAIpE,CAAC;;aAGH,IAAIuD,MAAM,CAACE,MAAM,KAAK8B,IAAI,CAAClL,OAAO,CAACyL,QAAQ,EAC3C;eACCP,IAAI,CAACrD,0BAA0B,CAAC1D,SAAS,CAAC;eAE1C,IAAIxE,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACU,MAAM,CAACI,IAAI,CAAC,EAChC;iBACCJ,MAAM,CAACI,IAAI,CAAClB,OAAO,CAAEsD,SAAS,IAAK;mBAClCR,IAAI,CAAC/K,aAAa,CAAC+H,IAAI,CAACwD,SAAS,CAACrH,EAAE,CAAC;mBACrC6G,IAAI,CAACzC,eAAe,CAACiD,SAAS,CAACrH,EAAE,CAAC;kBAClC,CAAC;;;aAIJ,IAAI6E,MAAM,CAACE,MAAM,KAAK8B,IAAI,CAAClL,OAAO,CAAC2L,IAAI,IAAIhM,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACU,MAAM,CAACI,IAAI,CAAC,EACvE;eACCJ,MAAM,CAACI,IAAI,CAAClB,OAAO,CAAEwD,WAAW,IAAK;iBACpCV,IAAI,CAACtC,WAAW,CAACgD,WAAW,CAACvH,EAAE,CAAC;gBAChC,CAAC;;aAGH,IAAI6E,MAAM,CAACE,MAAM,KAAK8B,IAAI,CAAClL,OAAO,CAAC6L,IAAI,IAAIlM,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACU,MAAM,CAACI,IAAI,CAAC,EACvE;eACCJ,MAAM,CAACI,IAAI,CAAClB,OAAO,CAAE0D,WAAW,IAAK;iBACpCZ,IAAI,CAACnC,WAAW,CAAC+C,WAAW,CAACzH,EAAE,CAAC;gBAChC,CAAC;;aAGH,IAAI6E,MAAM,CAACE,MAAM,KAAK8B,IAAI,CAAClL,OAAO,CAAC+L,eAAe,IAAIpM,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACU,MAAM,CAACI,IAAI,CAAC,EAClF;eACC,CAAC4B,IAAI,CAACc,WAAW,EAAE,IAAI,EAAE,EAAE5D,OAAO,CAAEC,OAAO,IAAK;iBAC/C,IAAI,CAACa,MAAM,CAACI,IAAI,CAAC2C,IAAI,CAAEC,EAAE,IAAK;mBAAE,OAAOA,EAAE,CAAC7H,EAAE,KAAKgE,OAAO,CAAC1G,EAAE;kBAC1D,CAAC,EACF;mBACCuJ,IAAI,CAACnC,WAAW,CAACV,OAAO,CAAC1G,EAAE,CAAC;;gBAE7B,CAAC;;aAGH,IAAIuH,MAAM,CAACE,MAAM,KAAK8B,IAAI,CAAClL,OAAO,CAACmM,QAAQ,EAC3C;eACC,CAACjB,IAAI,CAACc,WAAW,EAAE,IAAI,EAAE,EAAE5D,OAAO,CAAEC,OAAO,IAAK;iBAC/C6C,IAAI,CAACtC,WAAW,CAACP,OAAO,CAAC1G,EAAE,CAAC;gBAC5B,CAAC;;aAGH,IAAIuH,MAAM,CAACE,MAAM,KAAK8B,IAAI,CAAClL,OAAO,CAACoM,MAAM,IAAIzM,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACU,MAAM,CAACI,IAAI,CAAC,EACzE;eACCJ,MAAM,CAACI,IAAI,CAAClB,OAAO,CAAEiE,aAAa,IAAK;iBACtC1M,EAAE,CAAC2I,MAAM,CAAC3I,EAAE,CAAC0M,aAAa,CAAChI,EAAE,CAAC,CAAC;gBAC/B,CAAC;;aAGH,IAAI6E,MAAM,CAACE,MAAM,KAAK8B,IAAI,CAAClL,OAAO,CAACsM,QAAQ,EAC3C;eACC,IAAI,CAACC,aAAa,CAACrD,MAAM,EAAEvJ,EAAE,CAACuB,QAAQ,CAAC,MAAM;iBAC5C,IAAIvB,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACU,MAAM,CAACI,IAAI,CAAC,EAChC;mBACCJ,MAAM,CAACI,IAAI,CAAClB,OAAO,CACjBoE,eAAe,IAAK;qBACpB,IAAIA,eAAe,CAACC,EAAE,CAACxE,QAAQ,CAAC,OAAO,CAAC,EACxC;uBACCgD,QAAQ,GAAGuB,eAAe,CAACC,EAAE,CAAC7E,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC;uBAC5DqD,QAAQ,GAAGA,QAAQ,CAACrD,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;uBACrCqD,QAAQ,IAAI,kCAAkC;uBAC9C,IACA;yBACCvK,IAAI,CAACuK,QAAQ,CAAC,CAAC;wBACf,CACD,OAAOyB,GAAG,EACV;yBACC,MAAM,IAAIC,KAAK,CAACD,GAAG,CAAC;;sBAErB,MACI,IAAI/M,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAACwG,eAAe,CAACC,EAAE,CAAC,EACrD;uBACC,IACA;yBACC/L,IAAI,CAAC8L,eAAe,CAACC,EAAE,CAAC;wBACxB,CACD,OAAOC,GAAG,EACV;yBACC,MAAM,IAAIC,KAAK,CAACD,GAAG,CAAC;;;oBAGtB,CACD;;gBAEF,EAAE,IAAI,CAAC,CAAC;;aAGV,IAAIxD,MAAM,CAACE,MAAM,KAAK8B,IAAI,CAAClL,OAAO,CAACqJ,cAAc,EACjD;eACC,IAAI,CAACxB,0BAA0B,CAAC1D,SAAS,CAAC;;;UAG5C,EAAE,IAAI,CAAC;QACR,MAED;SACC,IAAI,CAAC6G,QAAQ,EACb;WACC,IAAI,CAACnD,0BAA0B,CAAC1D,SAAS,CAAC;;SAG3C+G,IAAI,CAAC/K,aAAa,CAACiI,OAAO,CAAEC,OAAO,IAAK;WACvC6C,IAAI,CAACvC,iBAAiB,CAACN,OAAO,CAAC;UAC/B,CAAC;SAEF6C,IAAI,CAAC/K,aAAa,GAAG,EAAE;;MAExB;KAEDoM,aAAa,CAACrD,MAAM,EAAE0D,IAAI,EAAEC,MAAM,EAClC;OACC,IAAI,CAAC9M,MAAM,CAACwM,aAAa,CAACrD,MAAM,EAAE0D,IAAI,EAAEC,MAAM,CAAC;MAC/C;;CAGH;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;KACE7K,eAAe,CAACL,EAAE,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EACzC;OACC,MAAMwC,QAAQ,GAAG3E,EAAE,CAACgC,EAAE,CAAC;OACvB,MAAMwC,SAAS,GAAGG,QAAQ,CAACwI,UAAU;OACrC,MAAMC,QAAQ,GAAGjL,QAAQ,IAAK,UAAU,IAAIA,QAAS,GAAGA,QAAQ,CAAC6D,QAAQ,GAAG,IAAI;OAChF,MAAMqF,QAAQ,GAAGlJ,QAAQ,IAAK,QAAQ,IAAIA,QAAQ,IAAIA,QAAQ,CAACkL,MAAM,KAAK,KAAM;OAEhF,IAAI,CAACjC,eAAe,CAAC5G,SAAS,EAAE4I,QAAQ,EAAE/B,QAAQ,CAAC;MACnD;KAED7J,eAAe,CAACS,KAAK,EACrB;OACC,IAAImL,QAAQ;OAEZ,IACA;SACCA,QAAQ,GAAGrM,IAAI,CAACf,EAAE,CAACkE,IAAI,CAACjC,KAAK,CAACqL,MAAM,EAAE,UAAU,CAAC,CAAC;QAClD,CACD,MACA;SACCF,QAAQ,GAAG,IAAI;;OAGhB,IAAI,CAAChC,eAAe,CACnBpL,EAAE,CAACuN,UAAU,CAACtL,KAAK,CAACqL,MAAM,EAAE;SAC3BxI,SAAS,EAAE,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,qBAAqB;QACzD,EAAE,IAAI,EAAE,KAAK,CAAC,EACfd,KAAK,CAACqL,MAAM,CAAC3K,OAAO,IAAIV,KAAK,CAACqL,MAAM,CAACtL,EAAE,CAACsG,QAAQ,CAAC,aAAa,CAAC,GAAG8E,QAAQ,GAAG,IAAI,CACjF;MACD;KAED3L,cAAc,CAACQ,KAAK,EACpB;OACC,IAAImL,QAAQ;OAEZ,IAAI,IAAI,CAACI,QAAQ,CAACvL,KAAK,CAACqL,MAAM,CAAC,EAC/B;SACCrL,KAAK,CAACwL,cAAc,EAAE;SAEtB,IACA;WACCL,QAAQ,GAAGrM,IAAI,CAACf,EAAE,CAACkE,IAAI,CAACjC,KAAK,CAACqL,MAAM,EAAE,UAAU,CAAC,CAAC;UAClD,CACD,MACA;WACCF,QAAQ,GAAG,IAAI;;SAGhB,IAAI,CAAChC,eAAe,CACnBpL,EAAE,CAACuN,UAAU,CAACtL,KAAK,CAACqL,MAAM,EAAE;WAC3BxI,SAAS,EAAE,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,qBAAqB;UACzD,EAAE,IAAI,EAAE,KAAK,CAAC,EACfqK,QAAQ,CACR;;MAEF;KAEDI,QAAQ,CAACtK,IAAI,EACb;OACC,OAAOlD,EAAE,CAACmD,QAAQ,CAACD,IAAI,EAAE,IAAI,CAAC9C,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,kBAAkB,CAAC,CAAC;MACtE;KAEDyE,cAAc,GACd;OACC,MAAMkG,IAAI,GAAG,IAAI,CAACtN,MAAM,CAACuN,OAAO,EAAE,CAACC,WAAW,EAAE,CAACC,MAAM,CAAEC,GAAG,IAAK;SAAE,OAAOA,GAAG,CAACC,OAAO,EAAE;QACtF,CAAC;OAEF,OAAOL,IAAI,CAACM,GAAG,CAAEtF,OAAO,IAAK;SAC5B,OAAOA,OAAO,CAACuF,KAAK,EAAE;QACtB,CAAC;MACF;KAED5B,WAAW,GACX;OACC,OAAOrM,EAAE,CAACkO,SAAS,CAAC,IAAI,CAAC7M,QAAQ,EAAE,EAAE;SACpCyD,SAAS,EAAE,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,4BAA4B;QAChE,EAAE,IAAI,EAAE,IAAI,CAAC;MACd;KAEDoL,SAAS,GACT;OACC,MAAMjK,IAAI,GAAG,EAAE;OACf,MAAMqH,IAAI,GAAG,IAAI;OACjB,MAAM6C,QAAQ,GAAG,EAAE,CAACC,MAAM,CACzB,IAAI,CAAC7K,YAAY,EAAE,EACnB,IAAI,CAACJ,aAAa,EAAE,EACpB,IAAI,CAACE,eAAe,EAAE,EACtB,IAAI,CAACC,UAAU,EAAE,EACjB,IAAI,CAACE,aAAa,EAAE,EACpB,IAAI,CAACC,UAAU,EAAE,CACjB;OAED,CAAC0K,QAAQ,IAAI,EAAE,EAAE3F,OAAO,CAAEC,OAAO,IAAK;SACrC,IAAI1I,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACgG,OAAO,CAAC,EAC9B;WACC,IAAI6C,IAAI,CAAC5H,UAAU,CAAC+E,OAAO,CAAC,EAC5B;aACC,IAAI4F,aAAa,GAAGtO,EAAE,CAACkE,IAAI,CAACwE,OAAO,EAAE,OAAO,CAAC;aAC7C,MAAM6F,QAAQ,GAAGvO,EAAE,CAACkE,IAAI,CAACwE,OAAO,EAAE,UAAU,CAAC,KAAK,GAAG;aACrD4F,aAAa,GAAIA,aAAa,KAAK,IAAI,IAAIA,aAAa,KAAKE,SAAS,GAAIF,aAAa,GAAG,EAAE;aAC5FpK,IAAI,CAAClE,EAAE,CAACkE,IAAI,CAACwE,OAAO,EAAE,MAAM,CAAC,CAAC,GAAG6F,QAAQ,GAAGD,aAAa,CAACG,KAAK,CAAC,GAAG,CAAC,GAAGH,aAAa;;WAGrF,IAAI/C,IAAI,CAACxH,QAAQ,CAAC2E,OAAO,CAAC,EAC1B;aACCxE,IAAI,CAACwE,OAAO,CAACgG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAGhG,OAAO,CAACV,OAAO,CAACU,OAAO,CAACiG,aAAa,CAAC,CAAC9I,KAAK;;WAGlF,IAAI0F,IAAI,CAAC3H,UAAU,CAAC8E,OAAO,CAAC,IAAIA,OAAO,CAAC/F,OAAO,EAC/C;aACCuB,IAAI,CAACwE,OAAO,CAACgG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAGhG,OAAO,CAAC7C,KAAK;;WAGnD,IAAI0F,IAAI,CAAC1H,WAAW,CAAC6E,OAAO,CAAC,IAAI6C,IAAI,CAACzH,aAAa,CAAC4E,OAAO,CAAC,EAC5D;aACCxE,IAAI,CAACwE,OAAO,CAACgG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAGhG,OAAO,CAAC7C,KAAK;;WAGnD,IAAI0F,IAAI,CAACiC,QAAQ,CAAC9E,OAAO,CAAC,EAC1B;aACC,MAAM1D,IAAI,GAAGhF,EAAE,CAACkE,IAAI,CAACwE,OAAO,EAAE,MAAM,CAAC;aACrC,IAAI7C,KAAK,GAAG7F,EAAE,CAACkE,IAAI,CAACwE,OAAO,EAAE,OAAO,CAAC;aACrC7C,KAAK,GAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK2I,SAAS,GAAI3I,KAAK,GAAG,EAAE;aAE5D,IAAIb,IAAI,EACR;eACCd,IAAI,CAACc,IAAI,CAAC,GAAGa,KAAK;;;;QAIrB,CAAC;OAEF,OAAO3B,IAAI;;IAGZ;CACF,CAAC,GAAG;;CC95BJ,CAAC,YAAW;;GAGXlE,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAAC0O,SAAS,GAAG,UAASxO,MAAM,EACnC;KACC,IAAI,CAACA,MAAM,GAAGA,MAAM;IACpB;GAEDJ,EAAE,CAACE,IAAI,CAAC0O,SAAS,CAAC9N,SAAS,GAAG;KAC7B+N,SAAS,GACT;OACC,OAAO,IAAI,CAACzO,MAAM;;IAEnB;CACF,CAAC,GAAG;;CCnBJ;CACA;CACA;AACA,CAAO,MAAM0O,eAAe,CAC5B;CADaA,eAAe,CAEpBC,aAAa,GAAG,wCAAwC;CAFnDD,eAAe,CAGpBE,MAAM,GAAG,sCAAsC;CAGvD,MAAM/O,SAAS,GAAGgP,oBAAU,CAAChP,SAAS,CAAC,SAAS,CAAC;CACjDA,SAAS,CAAC6O,eAAe,GAAGA,eAAe;;CCV3C;CACA;CACA;AACA,CAAO,MAAMI,WAAW,CACxB;CADaA,WAAW,CAEhBC,GAAG,GAAG,mCAAmC;CAFpCD,WAAW,CAGhBE,IAAI,GAAG,oCAAoC;CAGnD,MAAMnP,WAAS,GAAGgP,oBAAU,CAAChP,SAAS,CAAC,SAAS,CAAC;AACjDA,YAAS,CAACiP,WAAW,GAAGA,WAAW;;CCZnC,CAAC,YAAW;;GAGXlP,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAACmP,YAAY,GAAG,UAASjP,MAAM,EACtC;KACC,IAAI,CAACA,MAAM,GAAG,IAAI;KAClB,IAAI,CAACkP,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACC,UAAU,GAAG,IAAI;KACtB,IAAI,CAACC,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACC,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACC,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACC,MAAM,GAAG,IAAI;KAClB,IAAI,CAACC,eAAe,GAAG,IAAI;KAC3B,IAAI,CAACC,UAAU,GAAG,IAAI;KACtB,IAAI,CAACC,YAAY,GAAG,IAAI;KACxB,IAAI,CAACC,MAAM,GAAG,IAAI;KAClB,IAAI,CAACtP,IAAI,CAACL,MAAM,CAAC;IACjB;GAEDJ,EAAE,CAACE,IAAI,CAACmP,YAAY,CAACvO,SAAS,GAAG;KAChCL,IAAI,CAACL,MAAM,EACX;OACC,IAAI,CAACA,MAAM,GAAGA,MAAM;OACpB,IAAI,CAACqP,QAAQ,GAAG,IAAI,CAACO,WAAW,EAAE;OAClC,IAAI,CAACR,QAAQ,GAAG,IAAI,CAACS,WAAW,EAAE;OAElC,IAAI,CAAC,IAAI,CAACC,MAAM,EAChB;SACC,IAAI,CAACA,MAAM,GAAG,IAAI;SAClBlQ,EAAE,CAACgB,cAAc,CAAC,eAAe,EAAEhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACiP,MAAM,EAAE,IAAI,CAAC,CAAC;SAC/DnQ,EAAE,CAACgB,cAAc,CAAC,qBAAqB,EAAEhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACiP,MAAM,EAAE,IAAI,CAAC,CAAC;;OAGtE,IAAI,CAACC,eAAe,EAAE;MACtB;KAEDzO,OAAO,GACP;OACC3B,EAAE,CAAC4B,iBAAiB,CAAC,eAAe,EAAE5B,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACiP,MAAM,EAAE,IAAI,CAAC,CAAC;OAClE,IAAI,CAACE,iBAAiB,EAAE;MACxB;KAEDF,MAAM,GACN;OACC,IAAI,CAACE,iBAAiB,EAAE;OACxB,IAAI,CAACC,KAAK,EAAE;OACZ,IAAI,CAAC7P,IAAI,CAAC,IAAI,CAACL,MAAM,CAAC;MACtB;KAEDkQ,KAAK,GACL;OACC,IAAI,CAAChB,QAAQ,GAAG,IAAI;OACpB,IAAI,CAACC,UAAU,GAAG,IAAI;OACtB,IAAI,CAACC,QAAQ,GAAG,IAAI;OACpB,IAAI,CAACC,QAAQ,GAAG,IAAI;OACpB,IAAI,CAACC,QAAQ,GAAG,IAAI;OACpB,IAAI,CAACC,MAAM,GAAG,IAAI;OAClB,IAAI,CAACC,eAAe,GAAG,IAAI;OAC3B,IAAI,CAACC,UAAU,GAAG,IAAI;OACtB,IAAI,CAACC,YAAY,GAAG,IAAI;OACxB,IAAI,CAACC,MAAM,GAAG,IAAI;OAClB,IAAI,CAACQ,kBAAkB,GAAG,IAAI;MAC9B;KAEDC,QAAQ,GACR;OACC,OAAO,IAAI,CAACT,MAAM;MAClB;KAEDK,eAAe,GACf;OACC,IAAI,CAACC,iBAAiB,EAAE;OACxB,IAAI,CAACL,WAAW,EAAE,CAACvH,OAAO,CAAC,IAAI,CAACgI,QAAQ,EAAE,IAAI,CAAC;OAC/C,IAAI,CAACC,sBAAsB,EAAE,CAACjI,OAAO,CAAC,IAAI,CAACgI,QAAQ,EAAE,IAAI,CAAC;MAC1D;KAEDJ,iBAAiB,GACjB;OACC,IAAI,CAACL,WAAW,EAAE,CAACvH,OAAO,CAAC,IAAI,CAACkI,UAAU,EAAE,IAAI,CAAC;OACjD,IAAI,CAACD,sBAAsB,EAAE,CAACjI,OAAO,CAAC,IAAI,CAACkI,UAAU,EAAE,IAAI,CAAC;MAC5D;KAEDA,UAAU,CAACC,MAAM,EACjB;OACCC,IAAI,CAACC,gBAAgB,CAACF,MAAM,CAAC;MAC7B;KAEDH,QAAQ,CAACG,MAAM,EACf;OACCA,MAAM,CAACG,aAAa,GAAG/Q,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC8P,YAAY,EAAE,IAAI,CAAC;OACxDJ,MAAM,CAACK,QAAQ,GAAGjR,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACgQ,OAAO,EAAE,IAAI,CAAC;OAC9CN,MAAM,CAACO,YAAY,GAAGnR,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACkQ,UAAU,EAAE,IAAI,CAAC;OACrDP,IAAI,CAACQ,cAAc,CAACT,MAAM,CAAC;MAC3B;KAEDZ,WAAW,GACX;OACC,IAAI,CAAC,IAAI,CAACP,QAAQ,EAClB;SACC,IAAI,CAACA,QAAQ,GAAGzP,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC0O,QAAQ,CAAC,IAAI,CAAClR,MAAM,CAACuN,OAAO,EAAE,CAAC4D,iBAAiB,EAAE,CAACC,OAAO,EAAE,EAAE,IAAI,CAAC;SACjG,IAAI,CAAC/B,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAAC5B,MAAM,CAAC,UAASnF,OAAO,EAAE;WACtD,OAAO,CAAC,IAAI,CAAC+I,QAAQ,CAAC/I,OAAO,CAAC;UAC9B,EAAE,IAAI,CAAC;;OAGT,OAAO,IAAI,CAAC+G,QAAQ;MACpB;KAEDiB,sBAAsB,GACtB;OACC,IAAI,CAAC,IAAI,CAACH,kBAAkB,IAAI,IAAI,CAACnQ,MAAM,CAACsR,QAAQ,CAAC,kBAAkB,CAAC,EACxE;SACC,IAAI,CAACnB,kBAAkB,GAAGvQ,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC0O,QAAQ,CAAC,IAAI,CAAClR,MAAM,CAACuR,YAAY,EAAE,CAACC,aAAa,EAAE,EAAE,IAAI,CAAC;SAClG,IAAI,CAACrB,kBAAkB,GAAG,IAAI,CAACA,kBAAkB,CAAC1C,MAAM,CAAC,UAASnF,OAAO,EAAE;WAC1E,OAAO,CAAC,IAAI,CAAC+I,QAAQ,CAAC/I,OAAO,CAAC;UAC9B,EAAE,IAAI,CAAC;;OAGT,OAAO,IAAI,CAAC6H,kBAAkB,IAAI,EAAE;MACpC;KAEDN,WAAW,GACX;OACC,IAAIT,QAAQ,GAAG,IAAI,CAACpP,MAAM,CAACuN,OAAO,EAAE,CAACkE,aAAa,EAAE;OAEpD,IAAI,IAAI,CAACzR,MAAM,CAACsR,QAAQ,CAAC,kBAAkB,CAAC,EAC5C;SACClC,QAAQ,GAAGA,QAAQ,CAACnB,MAAM,CAACrO,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC0O,QAAQ,CAAC,IAAI,CAAClR,MAAM,CAACuR,YAAY,EAAE,CAACC,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC;;OAGrG,OAAOpC,QAAQ;MACf;KAEDiC,QAAQ,CAACvP,IAAI,EACb;OACC,OACClC,EAAE,CAACmD,QAAQ,CAACjB,IAAI,EAAE,IAAI,CAAC9B,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAC3D,CAAC/C,EAAE,CAACmD,QAAQ,CAACjB,IAAI,EAAE,wBAAwB,CAAC;MAEhD;KAED4P,aAAa,GACb;OACC,MAAMnC,MAAM,GAAG,IAAI,CAACvP,MAAM,CAAC2R,kBAAkB,EAAE,CAACC,UAAU,GAAG,IAAI,CAACC,iBAAiB;OAEnF,OAASpB,IAAI,CAACqB,CAAC,GAAG,IAAI,CAACtC,eAAe,GAAG,IAAI,CAACF,QAAQ,CAACyC,IAAI,GAAIxC,MAAM;MACrE;KAEDyC,SAAS,CAACC,IAAI,EACd;OACC,IAAIzB,MAAM,GAAG,EAAE;OAEf,IAAIyB,IAAI,YAAYC,oBAAoB,EACxC;SACC1B,MAAM,GAAG,IAAI,CAACpB,QAAQ,CAACxB,GAAG,CAAEF,GAAG,IAAK;WACnC,OAAOA,GAAG,CAACyE,KAAK,CAACF,IAAI,CAACG,SAAS,CAAC;UAChC,CAAC;;OAGH,OAAO5B,MAAM;MACb;KAEDI,YAAY,GACZ;OACC,IAAI,IAAI,CAAC5Q,MAAM,CAACsR,QAAQ,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAACtR,MAAM,CAACuR,YAAY,EAAE,CAACc,QAAQ,EAAE,EACrF;SACC,IAAI,CAAChD,QAAQ,GAAG,IAAI,CAACiB,sBAAsB,EAAE;QAC7C,MAED;SACC,IAAI,CAACjB,QAAQ,GAAG,IAAI,CAACO,WAAW,EAAE;;OAGnC,IAAI,CAACiC,iBAAiB,GAAG,IAAI,CAAC7R,MAAM,CAAC2R,kBAAkB,EAAE,CAACC,UAAU;OACpE,IAAI,CAACjC,MAAM,GAAG,IAAI;OAClB,IAAI,CAACT,QAAQ,GAAGuB,IAAI,CAAC6B,YAAY;OACjC,IAAI,CAAChD,QAAQ,GAAG,IAAI,CAACJ,QAAQ,CAACqD,qBAAqB,EAAE;OACrD,IAAI,CAAChD,MAAM,GAAGiD,IAAI,CAACC,IAAI,CAAC,IAAI,CAACnD,QAAQ,CAACoD,KAAK,CAAC;OAC5C,IAAI,CAAClD,eAAe,GAAGiB,IAAI,CAACkC,OAAO,GAAG,IAAI,CAACrD,QAAQ,CAACyC,IAAI;OACxD,IAAI,CAACtC,UAAU,GAAG,IAAI,CAACuC,SAAS,CAAC,IAAI,CAAC9C,QAAQ,CAAC;OAC/C,IAAI,CAAC0D,SAAS,GAAGhT,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACqQ,QAAQ,CAAC,IAAI,CAACxD,QAAQ,EAAE,IAAI,CAACH,QAAQ,CAAC;OACrE,IAAI,CAAClP,MAAM,CAAC8S,oBAAoB,GAAG,IAAI;MACvC;KAEDC,aAAa,CAACjQ,IAAI,EAAEkQ,KAAK,EACzB;OACC,MAAMC,cAAc,GAAGnQ,IAAI,CAACyP,qBAAqB,EAAE;OACnD,MAAMW,UAAU,GAAGV,IAAI,CAACC,IAAI,CAACQ,cAAc,CAAClB,IAAI,GAAIkB,cAAc,CAACP,KAAK,GAAG,CAAE,GAAG9S,EAAE,CAACgS,UAAU,CAAC/Q,MAAM,CAAC,CAAC;OACtG,MAAM+R,SAAS,GAAG,IAAI,CAACA,SAAS;OAChC,MAAMd,CAAC,GAAGrB,IAAI,CAACqB,CAAC;OAEhB,OAAOkB,KAAK,GAAGJ,SAAS,IAAId,CAAC,GAAGoB,UAAU;MAC1C;KAEDC,YAAY,CAACrQ,IAAI,EAAEkQ,KAAK,EACxB;OACC,MAAMC,cAAc,GAAGnQ,IAAI,CAACyP,qBAAqB,EAAE;OACnD,MAAMW,UAAU,GAAGV,IAAI,CAACC,IAAI,CAACQ,cAAc,CAAClB,IAAI,GAAIkB,cAAc,CAACP,KAAK,GAAG,CAAE,GAAG9S,EAAE,CAACgS,UAAU,CAAC/Q,MAAM,CAAC,CAAC;OACtG,MAAM+R,SAAS,GAAG,IAAI,CAACA,SAAS;OAChC,MAAMd,CAAC,GAAGrB,IAAI,CAACqB,CAAC;OAEhB,OAAOkB,KAAK,GAAGJ,SAAS,IAAId,CAAC,GAAGoB,UAAU;MAC1C;KAEDE,YAAY,CAACtQ,IAAI,EAAEkQ,KAAK,EACxB;OACC,MAAMC,cAAc,GAAGnQ,IAAI,CAACyP,qBAAqB,EAAE;OACnD,MAAMW,UAAU,GAAGV,IAAI,CAACC,IAAI,CAACQ,cAAc,CAAClB,IAAI,GAAIkB,cAAc,CAACP,KAAK,GAAG,CAAE,GAAG9S,EAAE,CAACgS,UAAU,CAAC/Q,MAAM,CAAC,CAAC;OACtG,MAAM+R,SAAS,GAAG,IAAI,CAACA,SAAS;OAChC,MAAMd,CAAC,GAAGrB,IAAI,CAACqB,CAAC;OAEhB,OAAQkB,KAAK,GAAGJ,SAAS,IAAId,CAAC,GAAGoB,UAAU,IAAMF,KAAK,GAAGJ,SAAS,IAAId,CAAC,GAAGoB,UAAW;MACrF;KAEDG,cAAc,CAACvQ,IAAI,EACnB;OACC,OAAOA,IAAI,CAACwQ,KAAK,CAACC,SAAS,KAAM,eAAc,CAAC,IAAI,CAAChE,MAAO,eAAc;MAC1E;KAEDiE,aAAa,CAAC1Q,IAAI,EAClB;OACC,OAAOA,IAAI,CAACwQ,KAAK,CAACC,SAAS,KAAM,eAAc,IAAI,CAAChE,MAAO,eAAc;MACzE;KAEDkE,OAAO,CAAC3Q,IAAI,EACZ;OACC,OAAQA,IAAI,CAACwQ,KAAK,CAACC,SAAS,KAAK,4BAA4B,IAAIzQ,IAAI,CAACwQ,KAAK,CAACC,SAAS,KAAK,EAAE;MAC5F;;CAGH;CACA;CACA;CACA;CACA;KACEG,UAAU,CAAClD,MAAM,EAAEjB,MAAM,EAAEoE,UAAU,EACrC;OACCA,UAAU,GAAG/T,EAAE,CAACyC,IAAI,CAACuR,QAAQ,CAACD,UAAU,CAAC,GAAGA,UAAU,GAAG,GAAG;OAC5D/T,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACqR,YAAY,CAACrD,MAAM,EAAE;SAClCmD,UAAU,EAAG,GAAEA,UAAW,IAAG;SAC7BJ,SAAS,EAAG,eAAchE,MAAO;QACjC,CAAC;MACF;KAEDuB,OAAO,GACP;OACC,IAAI,CAACgD,UAAU,GAAG,IAAI,CAACpC,aAAa,EAAE;OACtC,IAAI,CAACvC,UAAU,GAAG,IAAI,CAACA,UAAU,IAAI,IAAI,CAACD,QAAQ;OAClD,IAAI,CAACQ,YAAY,GAAG,IAAI,CAACA,YAAY,IAAI,IAAI,CAACD,UAAU;OAExD,MAAMsE,UAAU,GAAG,CAAC,IAAI,CAACxE,MAAM;OAC/B,MAAMyE,WAAW,GAAG,IAAI,CAACzE,MAAM;OAC/B,MAAM0E,aAAa,GAAG,CAAC;OACvB,MAAMC,sBAAsB,GAAG,CAAC;OAEhC,IAAI,CAACR,UAAU,CAAC,IAAI,CAACjE,UAAU,EAAE,IAAI,CAACqE,UAAU,EAAEI,sBAAsB,CAAC;OAEzE,EAAE,CAAC7L,OAAO,CAAC8L,IAAI,CAAC,IAAI,CAAC9E,QAAQ,EAAE,UAAS/G,OAAO,EAAE0K,KAAK,EAAE;SACvD,IAAI1K,OAAO,IAAI,CAACA,OAAO,CAAC8L,SAAS,CAACC,QAAQ,CAAC,uBAAuB,CAAC,EACnE;WACC,IAAI,IAAI,CAACtB,aAAa,CAACzK,OAAO,EAAE0K,KAAK,CAAC,IAAI,CAAC,IAAI,CAACK,cAAc,CAAC/K,OAAO,CAAC,EACvE;aACC,IAAI,CAACoH,YAAY,GAAG,IAAI,CAACsC,SAAS,CAAC1J,OAAO,CAAC;aAC3C,IAAI,CAACoL,UAAU,CAAC,IAAI,CAAChE,YAAY,EAAEqE,UAAU,CAAC;;WAG/C,IAAI,IAAI,CAACZ,YAAY,CAAC7K,OAAO,EAAE0K,KAAK,CAAC,IAAI,CAAC,IAAI,CAACQ,aAAa,CAAClL,OAAO,CAAC,EACrE;aACC,IAAI,CAACoH,YAAY,GAAG,IAAI,CAACsC,SAAS,CAAC1J,OAAO,CAAC;aAC3C,IAAI,CAACoL,UAAU,CAAC,IAAI,CAAChE,YAAY,EAAEsE,WAAW,CAAC;;WAGhD,IAAI,IAAI,CAACZ,YAAY,CAAC9K,OAAO,EAAE0K,KAAK,CAAC,IAAI,IAAI,CAACS,OAAO,CAACnL,OAAO,CAAC,EAC9D;aACC,IAAI,CAACoH,YAAY,GAAG,IAAI,CAACsC,SAAS,CAAC1J,OAAO,CAAC;aAC3C,IAAI,CAACoL,UAAU,CAAC,IAAI,CAAChE,YAAY,EAAEuE,aAAa,CAAC;;;QAGnD,EAAE,IAAI,CAAC;MACR;KAEDjD,UAAU,GACV;OACC,EAAE,CAAC3I,OAAO,CAAC8L,IAAI,CAAC,IAAI,CAAC1E,UAAU,EAAE,UAASnH,OAAO,EAAE0K,KAAK,EAAE;SACzDpT,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC8R,cAAc,CAAChM,OAAO,EAAE,IAAI,CAACoH,YAAY,CAACsD,KAAK,CAAC,CAAC;QAC/D,EAAE,IAAI,CAAC;OAER,IAAI,CAAC5D,QAAQ,CAAC/G,OAAO,CAAEC,OAAO,IAAK;SAClC1I,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACqR,YAAY,CAACvL,OAAO,CAAC6J,KAAK,EAAE;WACzCwB,UAAU,EAAE,EAAE;WACdJ,SAAS,EAAE;UACX,CAAC;QACF,CAAC;OAEF,IAAI,CAACxD,MAAM,EAAE;OAEb,MAAMwE,OAAO,GAAG,IAAI,CAAClF,QAAQ,CAACzB,GAAG,CAAEtF,OAAO,IAAK;SAC9C,OAAO1I,EAAE,CAACkE,IAAI,CAACwE,OAAO,EAAE,MAAM,CAAC;QAC/B,CAAC;OAEF,IAAI,CAACtI,MAAM,CAACwU,cAAc,EAAE,CAACC,UAAU,CAACF,OAAO,CAAC;OAChD3U,EAAE,CAAC8U,aAAa,CAAC,IAAI,CAAC1U,MAAM,CAAC4C,YAAY,EAAE,EAAE,mBAAmB,EAAE,CAAC,IAAI,CAAC5C,MAAM,CAAC,CAAC;OAEhF2U,UAAU,CAAC,MAAM;SAChB,IAAI,CAAC3U,MAAM,CAAC8S,oBAAoB,GAAG,KAAK;QACxC,EAAE,EAAE,CAAC;;IAEP;CACF,CAAC,GAAG;;CCxTJ;CACA;CACA;AACA,CAAO,MAAM8B,QAAQ,CACrB;CADaA,QAAQ,CAEbC,IAAI,GAAG;GACbC,IAAI,EAAE,MAAM;GACZC,YAAY,EAAE,cAAc;GAC5BC,KAAK,EAAE;CACR,CAAC;CANWJ,QAAQ,CAQbK,KAAK,GAAG;GACdC,MAAM,EAAE,mBAAmB;GAC3BC,OAAO,EAAE,oBAAoB;GAC7BC,OAAO,EAAE,oBAAoB;GAC7BC,IAAI,EAAE,iBAAiB;GACvBC,KAAK,EAAE,kBAAkB;GACzBC,IAAI,EAAE,iBAAiB;GACvBC,OAAO,EAAE;CACV,CAAC;CAhBWZ,QAAQ,CAkBba,IAAI,GAAG;GACbC,KAAK,EAAE,eAAe;GACtBC,MAAM,EAAE;CACT,CAAC;CAGF,MAAM9V,WAAS,GAAGgP,oBAAU,CAAChP,SAAS,CAAC,SAAS,CAAC;AACjDA,YAAS,CAAC+U,QAAQ,GAAGA,QAAQ;;CC/B7B,CAAC,YAAW;;GAGXhV,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;GAEvB,MAAM+V,sBAAsB,GAAG/U,MAAM,CAACb,MAAM,CAACJ,EAAE,CAACiW,IAAI,CAACC,cAAc;GAEnE,SAASC,2BAA2B,GACpC;KACClV,MAAM,CAACb,MAAM,CAACJ,EAAE,CAACiW,IAAI,CAACC,cAAc,GAAG,YAAW,EAAE;;GAGrD,SAASE,0BAA0B,GACnC;KACCnV,MAAM,CAACb,MAAM,CAACJ,EAAE,CAACiW,IAAI,CAACC,cAAc,GAAGF,sBAAsB;;;;CAI/D;CACA;CACA;CACA;GACChW,EAAE,CAACE,IAAI,CAACmW,IAAI,GAAG,UAASjW,MAAM,EAC9B;KACC,IAAI,CAACA,MAAM,GAAGA,MAAM;KACpB,IAAI,CAACkQ,KAAK,EAAE;IACZ;;;CAGF;CACA;CACA;GACCtQ,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAACwP,KAAK,GAAG,YAC/B;KACC,IAAI,CAACgG,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACC,GAAG,GAAG,IAAI;KACf,IAAI,CAACC,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACC,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACC,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACC,UAAU,GAAG,IAAI;KACtB,IAAI,CAACC,UAAU,GAAG,IAAI;KACtB,IAAI,CAACC,gBAAgB,GAAG,IAAI;KAC5B,IAAI,CAACC,eAAe,GAAG,IAAI;KAC3B,IAAI,CAACC,YAAY,GAAG,IAAI;KACxB,IAAI,CAACC,KAAK,GAAG,IAAI;KACjB,IAAI,CAACC,WAAW,GAAG,IAAI;KACvB,IAAI,CAACC,cAAc,GAAG,EAAE;KACxB,IAAI,CAACC,OAAO,GAAG,EAAE;KACjB,IAAI,CAACC,eAAe,GAAG,IAAI;IAC3B;;;CAGF;CACA;CACA;GACCpX,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAAC+N,SAAS,GAAG,YACnC;KACC,OAAO,IAAI,CAACzO,MAAM;IAClB;;;CAGF;CACA;CACA;GACCJ,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAACuW,gBAAgB,GAAG,YAC1C;KACC,IAAI,CAACrX,EAAE,CAACyC,IAAI,CAAC6U,SAAS,CAAC,IAAI,CAACF,eAAe,CAAC,EAC5C;OACC,IAAI,CAACA,eAAe,GAAG9P,OAAO,CAAC,IAAI,CAACiQ,WAAW,EAAE,CAAC,IAAIjQ,OAAO,CAACtH,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAAC0U,WAAW,EAAE,EAAE,IAAI,CAAC1I,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;;KAGnK,OAAO,IAAI,CAACqU,eAAe;IAC3B;;;CAGF;CACA;CACA;CACA;CACA;CACA;CACA;CACA;GACCpX,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAAC0W,OAAO,GAAG,UAASC,GAAG,EAAEC,MAAM,EAAExT,IAAI,EAAEqF,MAAM,EAAE0D,IAAI,EAAE0K,KAAK,EAChF;KACC,IAAI,CAAC3X,EAAE,CAACyC,IAAI,CAACmV,QAAQ,CAACH,GAAG,CAAC,EAC1B;OACCA,GAAG,GAAG,EAAE;;KAGT,IAAI,CAACzX,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAACqR,MAAM,CAAC,EACrC;OACCA,MAAM,GAAG,KAAK;;KAGf,IAAI,CAAC1X,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAACtF,IAAI,CAAC,EAChC;OACCA,IAAI,GAAG,EAAE;;KAGV,MAAM2T,SAAS,GAAK;OACnBC,MAAM,EAAE,IAAI,CAAC1X,MAAM,CAAC6N,KAAK,EAAE;OAC3BwJ,GAAG;OACHC,MAAM;OACNxT;MACA;KAED,IAAI,CAAC9D,MAAM,CAAC2X,yBAAyB,EAAE;KACvC/X,EAAE,CAAC8U,aAAa,CACf7T,MAAM,EACN,qBAAqB,EACrB,CAAC,IAAI,EAAE4W,SAAS,CAAC,CACjB;KAED,IAAIA,SAAS,CAACG,cAAc,CAAC,eAAe,CAAC,IAAIH,SAAS,CAACI,aAAa,KAAK,IAAI,EACjF;OACC;;KAGDR,GAAG,GAAGI,SAAS,CAACJ,GAAG;KAEnB,IAAI,CAACzX,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAACoR,GAAG,CAAC,EAClC;OACCA,GAAG,GAAG,IAAI,CAACrX,MAAM,CAAC8X,OAAO;;KAG1BT,GAAG,GAAGzX,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACuV,YAAY,CAACV,GAAG,EAAE;OAAEW,MAAM,EAAEpY,EAAE,CAACqY,aAAa,EAAE;OAAEC,QAAQ,EAAE,MAAM;OAAEC,OAAO,EAAE,IAAI,CAACnY,MAAM,CAAC6N,KAAK;MAAI,CAAC;KAErH,IAAI,cAAc,IAAI/J,IAAI,IAAIA,IAAI,CAACsU,YAAY,KAAK,GAAG,EACvD;OACCf,GAAG,GAAGzX,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACuV,YAAY,CAACV,GAAG,EAAE;SAAEe,YAAY,EAAE;QAAK,CAAC;MAC5D,MAED;OACCf,GAAG,GAAGzX,EAAE,CAACyY,IAAI,CAACC,gBAAgB,CAACjB,GAAG,EAAE,cAAc,CAAC;;KAGpD,IAAI,WAAW,IAAIvT,IAAI,IAAIA,IAAI,CAACyU,SAAS,KAAK,GAAG,EACjD;OACClB,GAAG,GAAGzX,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACuV,YAAY,CAACV,GAAG,EAAE;SAAEkB,SAAS,EAAE;QAAK,CAAC;MACzD,MAED;OACClB,GAAG,GAAGzX,EAAE,CAACyY,IAAI,CAACC,gBAAgB,CAACjB,GAAG,EAAE,WAAW,CAAC;;KAGjDA,GAAG,GAAGzX,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACuV,YAAY,CAACV,GAAG,EAAE;OAAEmB,WAAW,EAAErP,MAAM,IAAI;MAAY,CAAC;KAE5EmO,MAAM,GAAGG,SAAS,CAACH,MAAM;KACzBxT,IAAI,GAAG2T,SAAS,CAAC3T,IAAI;KAErB,IAAI,CAACoM,KAAK,EAAE;KAEZ,MAAM/E,IAAI,GAAG,IAAI;KAEjBwJ,UAAU,CAAC,MAAM;OAChB,MAAM8D,QAAQ,GAAG7Y,EAAE,CAAC8Y,IAAI,CAACzC,IAAI,CAAC0C,uBAAuB,CAAC7U,IAAI,CAAC;OAE3DiS,2BAA2B,EAAE;OAE7B,IAAII,GAAG,GAAGvW,EAAE,CAACiW,IAAI,CAAC;SACjBwB,GAAG,EAAEzX,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACoW,OAAO,CAACvB,GAAG,EAAElM,IAAI,CAACsD,SAAS,EAAE,CAACoK,SAAS,EAAE,CAAC;SAC7D/U,IAAI,EAAE2U,QAAQ;SACdnB,MAAM;SACNwB,QAAQ,EAAE,MAAM;SAChBC,OAAO,EAAE,CACR;WAAEnU,IAAI,EAAE,iBAAiB;WAAEa,KAAK,EAAE0F,IAAI,CAACsD,SAAS,EAAE,CAACoK,SAAS;UAAI,EAChE;WAAEjU,IAAI,EAAE,iBAAiB;WAAEa,KAAK,EAAEX,IAAI,CAACC,SAAS,CAAC;aAAEoE,MAAM,EAAEA,MAAM,IAAI;YAAY;UAAG,CACpF;SACD6P,WAAW,EAAE,IAAI;SACjBC,eAAe,EAAE,KAAK;SACtBC,KAAK,EAAE,KAAK;SACZC,WAAW,EAAE,KAAK;SAClBC,SAAS,CAAClD,QAAQ,EAAE;WACnB/K,IAAI,CAAC+K,QAAQ,GAAGtW,EAAE,CAAC4E,MAAM,CAAC,KAAK,EAAE;aAAEW,IAAI,EAAE+Q;YAAU,CAAC;WACpD/K,IAAI,CAAC+K,QAAQ,GAAG/K,IAAI,CAAC+K,QAAQ,CAACmD,aAAa,CAAE,IAAGlO,IAAI,CAACnL,MAAM,CAACsZ,cAAc,EAAG,EAAC,CAAC;WAC/EnO,IAAI,CAACgL,GAAG,GAAGA,GAAG;WAEd,IAAIhL,IAAI,CAACnL,MAAM,CAACsR,QAAQ,CAAC,wBAAwB,CAAC,EAClD;aACC,IAAIiI,GAAG;aAEP,IACA;eACCA,GAAG,GAAGzU,IAAI,CAAC0U,KAAK,CAACtD,QAAQ,CAAC;cAC1B,CACD,MACA;eACCqD,GAAG,GAAG;iBAAEE,QAAQ,EAAE;gBAAI;;aAGvB,IAAIF,GAAG,CAACE,QAAQ,CAACpS,MAAM,GAAG,CAAC,EAC3B;eACC8D,IAAI,CAACnL,MAAM,CAAC0Z,QAAQ,CAACC,QAAQ,GAAGJ,GAAG,CAACE,QAAQ;eAC5CtO,IAAI,CAACnL,MAAM,CAACyZ,QAAQ,CAAC1Q,IAAI,EAAE;eAE3BoC,IAAI,CAACnL,MAAM,CAAC4Z,WAAW,EAAE;eAEzB,IAAIha,EAAE,CAACyC,IAAI,CAACwX,UAAU,CAACtC,KAAK,CAAC,EAC7B;iBACC3X,EAAE,CAACuB,QAAQ,CAACoW,KAAK,EAAEpM,IAAI,CAAC,CAACgL,GAAG,CAAC;;eAG9B;;;WAIF,IAAIvW,EAAE,CAACyC,IAAI,CAACwX,UAAU,CAAChN,IAAI,CAAC,EAC5B;aACC1B,IAAI,CAACnL,MAAM,CAAC8Z,wBAAwB,EAAE;aACtCla,EAAE,CAACuB,QAAQ,CAAC0L,IAAI,EAAE1B,IAAI,CAAC,CAAC+K,QAAQ,EAAEC,GAAG,CAAC;;WAGvCH,0BAA0B,EAAE;UAC5B;SACD+D,OAAO,CAACpN,GAAG,EAAE;WACZxB,IAAI,CAACoM,KAAK,GAAGA,KAAK;WAClBpM,IAAI,CAACgL,GAAG,GAAGA,GAAG;WAEd,IAAIvW,EAAE,CAACyC,IAAI,CAACwX,UAAU,CAACtC,KAAK,CAAC,EAC7B;aACCpM,IAAI,CAACnL,MAAM,CAAC8Z,wBAAwB,EAAE;aACtCla,EAAE,CAACuB,QAAQ,CAACoW,KAAK,EAAEpM,IAAI,CAAC,CAACgL,GAAG,EAAExJ,GAAG,CAAC;;;QAGpC,CAAC;OAEFwJ,GAAG,CAAC6D,IAAI,CAACvB,QAAQ,CAAC;MAClB,EAAE,CAAC,CAAC;IACL;;;CAGF;CACA;CACA;GACC7Y,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAACyW,WAAW,GAAG,YACrC;KACC,OAAO,IAAI,CAACjB,QAAQ;IACpB;;;CAGF;CACA;CACA;GACCtW,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAACkC,YAAY,GAAG,YACtC;KACC,MAAM8B,SAAS,GAAG,IAAI,CAAC+J,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,gBAAgB,CAAC;KACjE,IAAI/C,EAAE,CAACkH,GAAG,CAAC/D,QAAQ,CAAC,IAAI,CAACoU,WAAW,EAAE,EAAEzS,SAAS,CAAC,EAClD;OACC,OAAO,IAAI,CAACyS,WAAW,EAAE;;KAG1B,OAAOvX,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAAC0U,WAAW,EAAE,EAAEzS,SAAS,EAAE,IAAI,CAAC;IACpE;;;CAGF;CACA;CACA;GACC9E,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAACuZ,WAAW,GAAG,YACrC;KACC,IAAI,CAAC,IAAI,CAAC7D,QAAQ,EAClB;OACC,IAAI,CAACA,QAAQ,GAAGxW,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAAC0U,WAAW,EAAE,EAAE,IAAI,CAAC1I,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,CAAC;;KAG5G,OAAO,IAAI,CAACyT,QAAQ;IACpB;;;CAGF;CACA;CACA;GACCxW,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAACwZ,WAAW,GAAG,YACrC;KACC,IAAI,CAAC,IAAI,CAAC7D,QAAQ,EAClB;OACC,IAAI,CAACA,QAAQ,GAAGzW,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAAC0U,WAAW,EAAE,EAAE,IAAI,CAAC1I,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,CAAC;;KAG5G,OAAO,IAAI,CAAC0T,QAAQ;IACpB;;;CAGF;CACA;CACA;CACA;GACCzW,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAACyZ,iBAAiB,GAAG,UAASvY,EAAE,EACtD;KACC,IAAI,EAAEA,EAAE,IAAI,IAAI,CAACkV,cAAc,CAAC,EAChC;OACC,IAAI,CAACA,cAAc,CAAClV,EAAE,CAAC,GAAGhC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACS,aAAa,CACpD,IAAI,CAACkU,WAAW,EAAE,EACjB,IAAG,IAAI,CAAC1I,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAE,oBAAmBf,EAAG,IAAG,CAC3E;;KAGF,OAAO,IAAI,CAACkV,cAAc,CAAClV,EAAE,CAAC;IAC9B;;;CAGF;CACA;CACA;CACA;GACChC,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAAC0Z,UAAU,GAAG,UAASxY,EAAE,EAC/C;KACC,IAAI,EAAEA,EAAE,IAAI,IAAI,CAACmV,OAAO,CAAC,EACzB;OACC,IAAI,CAACA,OAAO,CAACnV,EAAE,CAAC,GAAGhC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACS,aAAa,CAC7C,IAAI,CAACkU,WAAW,EAAE,EACjB,IAAG,IAAI,CAAC1I,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAE,aAAYf,EAAG,IAAG,EACpE,IAAI,CACJ;;KAGF,OAAO,IAAI,CAACmV,OAAO,CAACnV,EAAE,CAAC;IACvB;;;CAGF;CACA;CACA;GACChC,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAAC2Z,WAAW,GAAG,YACrC;KACC,IAAI,CAAC,IAAI,CAAC/D,QAAQ,EAClB;OACC,IAAI,CAACA,QAAQ,GAAG1W,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAAC0U,WAAW,EAAE,EAAE,IAAI,CAAC1I,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,CAAC;;KAG5G,OAAO,IAAI,CAAC2T,QAAQ;IACpB;;;CAGF;CACA;CACA;GACC1W,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAAC4Z,aAAa,GAAG,YACvC;KACC,IAAI,CAAC,IAAI,CAAC/D,UAAU,EACpB;OACC,IAAI,CAACA,UAAU,GAAG3W,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CACzC,IAAI,CAAC0U,WAAW,EAAE,EAClB,IAAI,CAAC1I,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC,EAChD,IAAI,CACJ;;KAGF,OAAO,IAAI,CAAC4T,UAAU;IACtB;;;CAGF;CACA;CACA;GACC3W,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAAC6Z,aAAa,GAAG,YACvC;KACC,IAAI,CAAC,IAAI,CAAC/D,UAAU,EACpB;OACC,IAAI,CAACA,UAAU,GAAG5W,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CACzC,IAAI,CAAC0U,WAAW,EAAE,EAClB,IAAI,CAAC1I,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC,EAChD,IAAI,CACJ;OAED,IAAI/C,EAAE,CAACyC,IAAI,CAACC,SAAS,CAAC,IAAI,CAACkU,UAAU,CAAC,EACtC;SACC,IAAI,CAACA,UAAU,GAAG5W,EAAE,CAAC+B,UAAU,CAAC,IAAI,CAAC6U,UAAU,CAAC;;;KAIlD,OAAO,IAAI,CAACA,UAAU;IACtB;;;CAGF;CACA;CACA;GACC5W,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAAC8Z,mBAAmB,GAAG,YAC7C;KACC,IAAI,CAAC,IAAI,CAAC/D,gBAAgB,EAC1B;OACC,IAAI,CAACA,gBAAgB,GAAG7W,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAC/C,IAAI,CAAC0U,WAAW,EAAE,EAClB,IAAI,CAAC1I,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,uBAAuB,CAAC,EACtD,IAAI,CACJ;;KAGF,OAAO,IAAI,CAAC8T,gBAAgB;IAC5B;;;CAGF;CACA;CACA;GACC7W,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAAC+Z,kBAAkB,GAAG,YAC5C;KACC,IAAI,CAAC,IAAI,CAAC/D,eAAe,EACzB;OACC,IAAI,CAACA,eAAe,GAAG9W,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAC9C,IAAI,CAAC0U,WAAW,EAAE,EAClB,IAAI,CAAC1I,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,sBAAsB,CAAC,EACrD,IAAI,CACJ;;KAGF,OAAO,IAAI,CAAC+T,eAAe;IAC3B;;;CAGF;CACA;CACA;GACC9W,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAACga,eAAe,GAAG,YACzC;KACC,IAAI,CAAC9a,EAAE,CAACyC,IAAI,CAACC,SAAS,CAAC,IAAI,CAACqU,YAAY,CAAC,EACzC;OACC,MAAMgE,QAAQ,GAAI,IAAG,IAAI,CAAClM,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,mBAAmB,CAAE,KAAI,IAAI,CAAC8L,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,uBAAuB,CAAE,EAAC;OACpI,IAAI,CAACgU,YAAY,GAAG/W,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACS,aAAa,CAAC,IAAI,CAACkU,WAAW,EAAE,EAAEwD,QAAQ,EAAE,IAAI,CAAC;;KAGpF,OAAO,IAAI,CAAChE,YAAY;IACxB;;;CAGF;CACA;CACA;GACC/W,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAACka,QAAQ,GAAG,YAClC;KACC,IAAI,CAAC,IAAI,CAAChE,KAAK,EACf;OACC,IAAI,CAACA,KAAK,GAAGhX,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAAC0U,WAAW,EAAE,EAAE,IAAI,CAAC1I,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC;;KAGhH,OAAO,IAAI,CAACiU,KAAK;IACjB;;;CAGF;CACA;CACA;CACA;GACChX,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAACma,WAAW,GAAG,YACrC;KACC,OAAO,IAAI,CAACD,QAAQ,EAAE;IACtB;;;CAGF;CACA;CACA;GACChb,EAAE,CAACE,IAAI,CAACmW,IAAI,CAACvV,SAAS,CAACoa,cAAc,GAAG,YACxC;KACC,IAAI,CAAC,IAAI,CAACjE,WAAW,EACrB;OACC,IAAI,CAACA,WAAW,GAAGjX,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAC1C,IAAI,CAAC0U,WAAW,EAAE,EAClB,IAAI,CAAC1I,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,kBAAkB,CAAC,EACjD,IAAI,CACJ;;KAGF,OAAO,IAAI,CAACkU,WAAW;IACvB;CACF,CAAC,GAAG;;CCndJ,CAAC,YAAW;;GAGXjX,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;GACCD,EAAE,CAACmb,IAAI,CAACxW,QAAQ,GAAG,UAASA,QAAQ,EACpC;KACC,IAAI,CAAC3C,EAAE,GAAG,IAAI;KACd,IAAI,CAAC2C,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACyW,KAAK,GAAG,IAAI;KACjB,IAAI,CAACvV,KAAK,GAAG,IAAI;KACjB,IAAI,CAACwV,MAAM,GAAG,IAAI;KAClB,IAAI,CAACC,IAAI,GAAG,IAAI;KAChB,IAAI,CAACC,SAAS,GAAG,IAAI;KACrB,IAAI,CAAChN,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACnK,SAAS,GAAG,IAAI;KACrB,IAAI,CAACoX,SAAS,GAAG,OAAO;KACxB,IAAI,CAACC,SAAS,GAAG,OAAO;KACxB,IAAI,CAACC,UAAU,GAAG,QAAQ;KAC1B,IAAI,CAACC,iBAAiB,GAAG,oBAAoB;KAC7C,IAAI,CAACC,WAAW,GAAG,sBAAsB;KACzC,IAAI,CAACC,aAAa,GAAG,6BAA6B;KAClD,IAAI,CAACC,gBAAgB,GAAG,iCAAiC;KACzD,IAAI,CAACC,WAAW,GAAG,2BAA2B;KAC9C,IAAI,CAACC,aAAa,GAAG,iBAAiB;KACtC,IAAI,CAACvb,IAAI,CAACkE,QAAQ,CAAC;IACnB;GAED3E,EAAE,CAACmb,IAAI,CAACxW,QAAQ,CAAC7D,SAAS,GAAG;KAC5BL,IAAI,CAACkE,QAAQ,EACb;OACC,IAAI,CAAC3C,EAAE,GAAG2C,QAAQ,CAAC3C,EAAE;OACrB,IAAI,CAAC2C,QAAQ,GAAGA,QAAQ;OACxB,IAAI,CAACyW,KAAK,GAAG,IAAI,CAACa,QAAQ,EAAE;OAC5B,IAAI,CAACpW,KAAK,GAAG,IAAI,CAACqW,QAAQ,EAAE;OAC5B,IAAI,CAACb,MAAM,GAAG,IAAI,CAACc,SAAS,EAAE;OAC9B,IAAI,CAAC5N,QAAQ,GAAG,IAAI,CAAC6N,WAAW,EAAE;OAClC,IAAI,CAAChY,SAAS,GAAG,IAAI,CAACiY,YAAY,EAAE;OACpC,IAAI,CAACf,IAAI,GAAG,IAAI,CAACgB,UAAU,EAAE;OAC7B,IAAI,CAAChB,IAAI,CAACiB,WAAW,CAACpT,IAAI,EAAE;OAC5B,IAAI,CAACqT,cAAc,EAAE;OAErBxc,EAAE,CAACsB,IAAI,CAAC,IAAI,CAACqD,QAAQ,EAAE,OAAO,EAAE3E,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAACkb,QAAQ,EAAE,IAAI,CAAC,CAAC;MACjE;KAEDN,SAAS,GACT;OACC,OAAQ,GAAE,IAAI,CAACna,EAAG,OAAM;MACxB;KAEDia,QAAQ,GACR;OACC,IAAI7T,MAAM;OAEV,IACA;SACC,MAAMsU,GAAG,GAAG,IAAI,CAAC/X,QAAQ,CAACgY,OAAO,CAAC,IAAI,CAACnB,SAAS,CAAC;SACjDpT,MAAM,GAAGlD,IAAI,CAAC0U,KAAK,CAAC8C,GAAG,CAAC;SACxBtU,MAAM,GAAGA,MAAM,CAAC4F,GAAG,CAAE9L,IAAI,IAAK;WAC7BA,IAAI,CAACmD,KAAK,GAAGuX,MAAM,CAAC1a,IAAI,CAACmD,KAAK,CAAC;WAE/B,OAAOnD,IAAI;UACX,CAAC;QACF,CACD,MACA;SACCkG,MAAM,GAAG,EAAE;;OAGZ,OAAOA,MAAM;MACb;;KAGD8T,QAAQ,GACR;OACC,OAAO,IAAI,CAACvX,QAAQ,CAACgY,OAAO,CAAC,IAAI,CAAClB,SAAS,CAAC;MAC5C;KAEDoB,YAAY,GACZ;OACC,MAAMhX,KAAK,GAAG,IAAI,CAACqW,QAAQ,EAAE;OAE7B,OAAO,IAAI,CAACd,KAAK,CAAC0B,IAAI,CAAE5a,IAAI,IAAKA,IAAI,CAACmD,KAAK,KAAKQ,KAAK,CAAC;MACtD;;KAGDkX,eAAe,GACf;OACC,IAAIlX,KAAK,GAAG,IAAI,CAACqW,QAAQ,EAAE;OAC3B,IAAIrW,KAAK,KAAK2I,SAAS,EACvB;SACC3I,KAAK,GAAG,EAAE;;OAGX,OAAOA,KAAK,CAACmX,QAAQ,EAAE,CAACvO,KAAK,CAAC,GAAG,CAAC,CAACZ,MAAM,CAAEoP,CAAC,IAAKA,CAAC,KAAK,EAAE,CAAC;MAC1D;KAEDC,aAAa,GACb;OACC,MAAMC,MAAM,GAAG,IAAI,CAACJ,eAAe,EAAE;OAErC,OAAO,IAAI,CAAC3B,KAAK,CAACvN,MAAM,CAAE3L,IAAI,IAAKib,MAAM,CAAC7U,QAAQ,CAACpG,IAAI,CAACmD,KAAK,CAAC,CAAC;MAC/D;KAED+X,WAAW,CAACvX,KAAK,EACjB;OACC,IAAI,IAAI,CAAC0I,QAAQ,EACjB;SACC,IAAI1I,KAAK,IAAIA,KAAK,KAAK,CAAC,IAAIA,KAAK,KAAK,GAAG,EACzC;WACC,MAAMsX,MAAM,GAAG,IAAI,CAACJ,eAAe,EAAE;WACrC,MAAM3J,KAAK,GAAG+J,MAAM,CAACE,OAAO,CAACxX,KAAK,CAAC;WAEnC,IAAIuN,KAAK,GAAG,CAAC,EACb;aACC+J,MAAM,CAAC5U,IAAI,CAAC1C,KAAK,CAAC;YAClB,MAED;aACCsX,MAAM,CAACG,MAAM,CAAClK,KAAK,EAAE,CAAC,CAAC;;WAGxB,IAAI,CAACzO,QAAQ,CAACgY,OAAO,CAAC,IAAI,CAAClB,SAAS,CAAC,GAAG0B,MAAM,CAACI,IAAI,CAAC,GAAG,CAAC;UACxD,MAED;WACC,IAAI,CAAC5Y,QAAQ,CAACgY,OAAO,CAAC,IAAI,CAAClB,SAAS,CAAC,GAAG,IAAI;;QAE7C,MAED;SACC,IAAI,CAAC9W,QAAQ,CAACgY,OAAO,CAAC,IAAI,CAAClB,SAAS,CAAC,GAAG5V,KAAK;;MAE9C;KAED2X,YAAY,GACZ;OACC,IAAI,IAAI,CAACjP,QAAQ,EACjB;SACC,OAAO,IAAI,CAAC2O,aAAa,EAAE,CAAClP,GAAG,CAAE9L,IAAI,IAAKA,IAAI,CAAC+C,IAAI,CAAC,CAAC4I,MAAM,CAAEoP,CAAC,IAAK3V,OAAO,CAAC2V,CAAC,CAAC,CAAC,CAACM,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAACnZ,SAAS;;OAG5G,MAAMlC,IAAI,GAAG,IAAI,CAAC2a,YAAY,EAAE;OAEhC,OAAO3a,IAAI,GAAGA,IAAI,CAAC+C,IAAI,GAAG,IAAI,CAACb,SAAS;MACxC;KAEDgY,WAAW,GACX;OACC,OAAO,IAAI,CAACzX,QAAQ,CAACgY,OAAO,CAACpO,QAAQ,KAAK,GAAG;MAC7C;KAED8N,YAAY,GACZ;OACC,OAAO,IAAI,CAAC1X,QAAQ,CAACgY,OAAO,CAACvY,SAAS,IAAI,IAAI;MAC9C;KAEDqZ,gBAAgB,GAChB;OACC,MAAMlS,IAAI,GAAG,IAAI;OACjB,IAAIxG,KAAK;OAAE,IACV2Y,OAAO;OACR,MAAMC,YAAY,GAAG,IAAI,CAACpP,QAAQ,GAAG,IAAI,CAACwO,eAAe,EAAE,GAAG,IAAI,CAACb,QAAQ,EAAE;OAE7E,SAAS0B,YAAY,CAACxC,KAAK,EAC3B;SACC,MAAMyC,YAAY,GAAGtS,IAAI,CAAC5G,QAAQ,CAACgY,OAAO,CAACmB,UAAU,KAAK,MAAM;SAEhE,OAAO1C,KAAK,CAACpN,GAAG,CAAE9L,IAAI,IAAK;WAC1B6C,KAAK,GAAG,EAAE;WACVA,KAAK,CAAE,QAAOwG,IAAI,CAACkQ,SAAU,EAAC,CAAC,GAAGvZ,IAAI,CAACmD,KAAK;WAC5CN,KAAK,CAAE,QAAOwG,IAAI,CAACmQ,UAAW,EAAC,CAAC,GAAG,QAAQ,IAAIxZ,IAAI,IAAIA,IAAI,CAACmL,MAAM,GAAG,MAAM,GAAG,OAAO;WAErFqQ,OAAO,GAAG1d,EAAE,CAAC4E,MAAM,CAAC,KAAK,EAAE;aAC1BU,QAAQ,EAAE,CACTtF,EAAE,CAAC4E,MAAM,CAAC,MAAM,EAAE;eACjBC,KAAK,EAAE;iBACNC,SAAS,EAAEyG,IAAI,CAACoQ;gBAChB;eACD5W,KAAK;eACLQ,IAAI,EAAEsY,YAAY,GAAG3b,IAAI,CAAC+C,IAAI,GAAG,IAAI;eACrCqB,IAAI,EAAEuX,YAAY,GAAG,IAAI,GAAG3b,IAAI,CAAC+C;cACjC,CAAC;YAEH,CAAC;WAEF,MAAM8Y,QAAQ,GAAQxS,IAAI,CAACgD,QAAQ,GAChCoP,YAAY,CAACrV,QAAQ,CAACpG,IAAI,CAACmD,KAAK,CAAC,GACjCsY,YAAY,KAAKzb,IAAI,CAACmD,KAAK;WAG9B,OAAO;aACNE,IAAI,EAAEmY,OAAO,CAACM,SAAS;aACvBlZ,SAAS,EAAEiZ,QAAQ,GAAGxS,IAAI,CAACsQ,aAAa,GAAGtQ,IAAI,CAACuQ,gBAAgB;aAChEmC,SAAS,EAAE/b,IAAI,CAACgc,SAAS;aACzB9C,KAAK,EAAE,OAAO,IAAIlZ,IAAI,GAAG0b,YAAY,CAAC1b,IAAI,CAACkD,KAAK,CAAC,GAAG;YACpD;UACD,CAAC;;OAGH,MAAMgW,KAAK,GAAGwC,YAAY,CAAC,IAAI,CAACxC,KAAK,CAAC;OACtCpb,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,0BAA0B,EAAE,CAAC,IAAI,CAACe,EAAE,EAAE,IAAI,CAACqZ,MAAM,EAAED,KAAK,CAAC,CAAC;OAEnF,OAAOA,KAAK;MACZ;KAEDkB,UAAU,GACV;OACC,MAAM/Q,IAAI,GAAG,IAAI;OAEjB,OAAOvL,EAAE,CAACme,SAAS,CAACvZ,MAAM,CACzB,IAAI,CAACuX,SAAS,EAAE,EAChB,IAAI,CAACxX,QAAQ,EACb,IAAI,CAAC8Y,gBAAgB,EAAE,EACvB;SACCW,QAAQ,EAAE,IAAI;SACdC,SAAS,EAAE,CAAC,CAAC;SACbC,UAAU,EAAEC,MAAM,CAAC,IAAI,CAAC5Z,QAAQ,CAACgY,OAAO,CAAC6B,cAAc,IAAI,EAAE,CAAC;SAC9DC,SAAS,EAAEF,MAAM,CAAC,IAAI,CAAC5Z,QAAQ,CAACgY,OAAO,CAAC+B,aAAa,IAAI,GAAG,CAAC;SAC7DC,MAAM,EAAE;WACPC,YAAY,EAAE5e,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAACsd,YAAY,EAAE,IAAI,CAAC;WAClDC,WAAW,GAAG;aACbvT,IAAI,CAACwT,WAAW,EAAE;;;QAGpB,CACD;MACD;KAEDtC,QAAQ,GACR;OACC,IAAI,CAACnB,IAAI,GAAGtb,EAAE,CAACme,SAAS,CAACa,WAAW,CAAC,IAAI,CAAC3D,MAAM,CAAC;OAEjD,IAAI,CAAC,IAAI,CAACC,IAAI,EACd;SACC,IAAI,CAACA,IAAI,GAAG,IAAI,CAACgB,UAAU,EAAE;SAC7B,IAAI,CAAChB,IAAI,CAACiB,WAAW,CAACpT,IAAI,EAAE;;OAG7B,IAAI,CAACqT,cAAc,EAAE;MACrB;KAEDA,cAAc,GACd;OACC,IAAI,IAAI,CAAC7X,QAAQ,CAACgY,OAAO,CAACsC,aAAa,KAAK,OAAO,EACnD;SACC,MAAMza,SAAS,GAAG,IAAI,CAAC8W,IAAI,CAACiB,WAAW,CAAC2C,cAAc;SAEtD1a,SAAS,CAACkP,KAAK,CAACyL,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;SAC1C3a,SAAS,CAACkP,KAAK,CAACyL,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC;SAC7C3a,SAAS,CAACkP,KAAK,CAACyL,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC;SAE1C,IAAI,CAACxa,QAAQ,CAACa,WAAW,CAAChB,SAAS,CAAC;;MAErC;KAED4a,UAAU,CAAClc,IAAI,EACf;OACC,OAAOlD,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAACK,IAAI,EAAE,IAAI,CAACyY,iBAAiB,EAAE,IAAI,CAAC;MACnE;KAED0D,OAAO,CAACnd,IAAI,EACZ;OACC,MAAMwb,OAAO,GAAG,IAAI,CAAC0B,UAAU,CAACld,IAAI,CAAC;OACrC,IAAI2D,KAAK,GAAG7F,EAAE,CAACkE,IAAI,CAACwZ,OAAO,EAAE,IAAI,CAACjC,SAAS,CAAC;OAC5C,IAAIzb,EAAE,CAACiV,IAAI,CAACqK,WAAW,CAACzZ,KAAK,CAAC,EAC9B;SACCA,KAAK,GAAG,EAAE;;OAGX,IAAI,CAACuX,WAAW,CAACvX,KAAK,CAAC;OACvB,IAAI,IAAI,CAAClB,QAAQ,CAACgY,OAAO,CAACmB,UAAU,KAAK,MAAM,EAC/C;SACC9d,EAAE,CAAC+B,UAAU,CAAC,IAAI,CAAC4C,QAAQ,CAAC,CAACqZ,SAAS,GAAG,IAAI,CAACR,YAAY,EAAE;QAC5D,MAED;SACCxd,EAAE,CAAC+B,UAAU,CAAC,IAAI,CAAC4C,QAAQ,CAAC,CAAC4a,SAAS,GAAG,IAAI,CAAC/B,YAAY,EAAE;;MAE7D;KAEDgC,UAAU,CAACtc,IAAI,EACf;OACC,MAAMqI,IAAI,GAAG,IAAI;OAEjB,CAAC,IAAI,CAAC+P,IAAI,CAACC,SAAS,IAAI,EAAE,EAAE9S,OAAO,CAAEC,OAAO,IAAK;;SAEhD,IAAI6C,IAAI,CAACgD,QAAQ,EACjB;WACC,IAAIrL,IAAI,KAAKwF,OAAO,CAAC+W,MAAM,CAACvd,IAAI,EAChC;aACC,IAAIlC,EAAE,CAACmD,QAAQ,CAACD,IAAI,EAAEqI,IAAI,CAACsQ,aAAa,CAAC,EACzC;eACC7b,EAAE,CAACoH,QAAQ,CAACsB,OAAO,CAAC+W,MAAM,CAACvd,IAAI,EAAEqJ,IAAI,CAACuQ,gBAAgB,CAAC;eACvD9b,EAAE,CAACqH,WAAW,CAACqB,OAAO,CAAC+W,MAAM,CAACvd,IAAI,EAAEqJ,IAAI,CAACsQ,aAAa,CAAC;cACvD,MAED;eACC7b,EAAE,CAACqH,WAAW,CAACqB,OAAO,CAAC+W,MAAM,CAACvd,IAAI,EAAEqJ,IAAI,CAACuQ,gBAAgB,CAAC;eAC1D9b,EAAE,CAACoH,QAAQ,CAACsB,OAAO,CAAC+W,MAAM,CAACvd,IAAI,EAAEqJ,IAAI,CAACsQ,aAAa,CAAC;;;WAItD;;;;SAID7b,EAAE,CAACqH,WAAW,CAACqB,OAAO,CAAC+W,MAAM,CAACvd,IAAI,EAAEqJ,IAAI,CAACsQ,aAAa,CAAC;SAEvD,IAAI3Y,IAAI,KAAKwF,OAAO,CAAC+W,MAAM,CAACvd,IAAI,EAChC;WACClC,EAAE,CAACqH,WAAW,CAACqB,OAAO,CAAC+W,MAAM,CAACvd,IAAI,EAAEqJ,IAAI,CAACuQ,gBAAgB,CAAC;WAC1D9b,EAAE,CAACoH,QAAQ,CAACsB,OAAO,CAAC+W,MAAM,CAACvd,IAAI,EAAEqJ,IAAI,CAACsQ,aAAa,CAAC;UACpD,MAED;WACC7b,EAAE,CAACoH,QAAQ,CAACsB,OAAO,CAAC+W,MAAM,CAACvd,IAAI,EAAEqJ,IAAI,CAACuQ,gBAAgB,CAAC;;QAExD,CAAC;MACF;KAED4D,UAAU,CAACxc,IAAI,EAAE;OAChBlD,EAAE,CAACoH,QAAQ,CAAClE,IAAI,EAAE,IAAI,CAAC6Y,WAAW,CAAC;MACnC;KAED4D,uBAAuB,CAACvE,KAAK,EAAEvV,KAAK,EACpC;OAGC,IAAI7F,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACuS,KAAK,CAAC,EAC1B;SACCA,KAAK,CAACpN,GAAG,CAAC,CAACtF,OAAO,EAAE0K,KAAK,KAAK;WAC7B,IAAI1K,OAAO,CAACrD,KAAK,KAAKQ,KAAK,EAC3B;aAGC,OAAO,KAAK;;UAEb,CAAC;;OAGH,OAAO,KAAK;MACZ;KAED+Z,kBAAkB,CAAC/Z,KAAK,EACxB;OACC,MAAMuC,MAAM,GAAG,IAAI,CAACgT,KAAK,CAACvN,MAAM,CAAEnF,OAAO,IAAK;SAC7C,OAAOA,OAAO,CAACrD,KAAK,KAAKQ,KAAK;QAC9B,CAAC;OAEF,OAAOuC,MAAM,CAACX,MAAM,GAAG,CAAC,GAAGW,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;MAC3C;KAED2W,WAAW,GACX;OACC,MAAMxT,IAAI,GAAG,IAAI;OAEjBvL,EAAE,CAACoH,QAAQ,CAAC,IAAI,CAACzC,QAAQ,EAAE,IAAI,CAACiX,WAAW,CAAC;OAC5C,CAAC,IAAI,CAACN,IAAI,CAACC,SAAS,IAAI,EAAE,EAAE9S,OAAO,CAAEC,OAAO,IAAK;SAChD1I,EAAE,CAACsB,IAAI,CAACoH,OAAO,CAAC+W,MAAM,CAACvd,IAAI,EAAE,OAAO,EAAElC,EAAE,CAACuB,QAAQ,CAACgK,IAAI,CAACsU,YAAY,EAAEtU,IAAI,CAAC,CAAC;QAC3E,CAAC;MACF;KAEDsT,YAAY,GACZ;OACC7e,EAAE,CAACqH,WAAW,CAAC,IAAI,CAAC1C,QAAQ,EAAE,IAAI,CAACiX,WAAW,CAAC;OAC/C5b,EAAE,CAACme,SAAS,CAACxc,OAAO,CAAC,IAAI,CAAC0Z,MAAM,CAAC;MACjC;KAEDwE,YAAY,CAAC5d,KAAK,EAClB;OACC,MAAMC,IAAI,GAAG,IAAI,CAAC4d,WAAW,CAAC7d,KAAK,CAACqL,MAAM,CAAC;OAC3C,IAAIzH,KAAK;OAAE,IACV1D,QAAQ;OACT,MAAMub,OAAO,GAAG,IAAI,CAAC0B,UAAU,CAACld,IAAI,CAAC;OACrC,MAAMmJ,QAAQ,GAAGrL,EAAE,CAACkE,IAAI,CAACwZ,OAAO,EAAE,QAAQ,CAAC;OAE3C,IAAIrS,QAAQ,KAAK,MAAM,EACvB;SACCxF,KAAK,GAAG7F,EAAE,CAACkE,IAAI,CAACwZ,OAAO,EAAE,OAAO,CAAC;SACjCvb,QAAQ,GAAG,IAAI,CAACyd,kBAAkB,CAAC/Z,KAAK,CAAC;QACzC,MAED;SACC,IAAI,CAACwZ,OAAO,CAACnd,IAAI,CAAC;SAClB,IAAI,CAACsd,UAAU,CAACtd,IAAI,CAAC;SAErB,IAAI,CAAC,IAAI,CAACqM,QAAQ,EAClB;WACC,IAAI,CAAC+M,IAAI,CAACiB,WAAW,CAACwD,KAAK,EAAE;;SAG9Bla,KAAK,GAAG,IAAI,CAACqW,QAAQ,EAAE;SACvB/Z,QAAQ,GAAG,IAAI,CAACyd,kBAAkB,CAAC/Z,KAAK,CAAC;;OAG1C5D,KAAK,CAAC+d,eAAe,EAAE;OAEvBhgB,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,kBAAkB,EAAE,CAAC,IAAI,CAAC0D,QAAQ,CAAC3C,EAAE,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAE0D,KAAK,CAAC,CAAC;MAC9F;KAEDia,WAAW,CAAC5c,IAAI,EAChB;OACC,IAAIhB,IAAI,GAAGgB,IAAI;OAEf,IAAI,CAAClD,EAAE,CAACmD,QAAQ,CAACjB,IAAI,EAAE,IAAI,CAAC8Z,aAAa,CAAC,EAC1C;SACC9Z,IAAI,GAAGlC,EAAE,CAACuN,UAAU,CAACrL,IAAI,EAAE;WAAE+d,KAAK,EAAE,IAAI,CAACjE;UAAe,CAAC;;OAG1D,OAAO9Z,IAAI;;IAEZ;CACF,CAAC,GAAG;;CCjaJ,CAAC,YAAW;;GAGXlC,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;GAEvBD,EAAE,CAACmb,IAAI,CAAC+E,eAAe,GAAG;KACzBC,aAAa,EAAE,eAAe;KAC9Bjc,IAAI,EAAE,EAAE;KACRzD,IAAI,GACJ;OACC,MAAM8K,IAAI,GAAG,IAAI;OACjB,IAAInD,MAAM;OACV,IAAIgY,WAAW;OACf,IAAIhF,KAAK;OAETpb,EAAE,CAACsB,IAAI,CAAC+e,QAAQ,EAAE,OAAO,EAAErgB,EAAE,CAACuB,QAAQ,CAAC,UAASU,KAAK,EAAE;SACtD,IAAIjC,EAAE,CAACmD,QAAQ,CAAClB,KAAK,CAACqL,MAAM,EAAE,IAAI,CAAC6S,aAAa,CAAC,EACjD;WACCle,KAAK,CAACwL,cAAc,EAAE;WAEtBrF,MAAM,GAAG,IAAI,CAACkY,OAAO,CAACre,KAAK,CAACqL,MAAM,CAACtL,EAAE,CAAC;WAEtC,IAAIoG,MAAM,IAAIA,MAAM,CAACzD,QAAQ,KAAK1C,KAAK,CAACqL,MAAM,EAC9C;aACC/B,IAAI,CAAChD,IAAI,CAACtG,KAAK,CAACqL,MAAM,CAACtL,EAAE,EAAE,IAAI,CAACse,OAAO,CAACre,KAAK,CAACqL,MAAM,CAACtL,EAAE,CAAC,CAAC;YACzD,MAED;aACCuJ,IAAI,CAAChD,IAAI,CAACtG,KAAK,CAACqL,MAAM,CAACtL,EAAE,EAAE,IAAIhC,EAAE,CAACmb,IAAI,CAACxW,QAAQ,CAAC1C,KAAK,CAACqL,MAAM,CAAC,CAAC;;;QAGhE,EAAE,IAAI,CAAC,CAAC;OAET8S,WAAW,GAAGpgB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAACwd,QAAQ,CAACE,IAAI,EAAE,IAAI,CAACJ,aAAa,CAAC;OAEzE,IAAIngB,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACuX,WAAW,CAAC,EAChC;SACCA,WAAW,CAAC3X,OAAO,CAAEC,OAAO,IAAK;WAChCN,MAAM,GAAGmD,IAAI,CAAC+U,OAAO,CAAC5X,OAAO,CAAC1G,EAAE,CAAC;WACjC,IACA;aACCoZ,KAAK,GAAGra,IAAI,CAACf,EAAE,CAACkE,IAAI,CAACwE,OAAO,EAAE,OAAO,CAAC,CAAC;YACvC,CACD,MACA;WAEA1I,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,gBAAgB,EAAE,CAACyH,OAAO,CAAC1G,EAAE,EAAE,EAAE,EAAE,IAAI,EAAEhC,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACuS,KAAK,CAAC,IAAIA,KAAK,CAAC3T,MAAM,GAAG,CAAC,GAAG2T,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAEpb,EAAE,CAACkE,IAAI,CAACwE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;UACzJ,CAAC;;MAEH;KAEDH,IAAI,CAACvG,EAAE,EAAEwe,QAAQ,EACjB;OACC,IAAI,CAACtc,IAAI,CAAClC,EAAE,CAAC,GAAGwe,QAAQ;MACxB;KAEDF,OAAO,CAACte,EAAE,EACV;OACC,OAAQA,EAAE,IAAI,IAAI,CAACkC,IAAI,GAAI,IAAI,CAACA,IAAI,CAAClC,EAAE,CAAC,GAAG,IAAI;;IAEhD;CACF,CAAC,GAAG;;CC7DJ,CAAC,YAAW;;GAGXhC,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAACugB,OAAO,GAAG,UAASvd,IAAI,EAAE9C,MAAM,EACvC;KACC,IAAI,CAAC8C,IAAI,GAAG,IAAI;KAChB,IAAI,CAAC0E,IAAI,GAAG,IAAI;KAChB,IAAI,CAACxH,MAAM,GAAG,IAAI;KAClB,IAAI,CAACK,IAAI,CAACyC,IAAI,EAAE9C,MAAM,CAAC;IACvB;GAEDJ,EAAE,CAACE,IAAI,CAACugB,OAAO,CAAC3f,SAAS,GAAG;KAC3BL,IAAI,CAACyC,IAAI,EAAE9C,MAAM,EACjB;OACC,IAAI,CAAC8C,IAAI,GAAGA,IAAI;OAChB,IAAI,CAAC9C,MAAM,GAAGA,MAAM;OACpB,IAAI,CAACsgB,gBAAgB,EAAE;MACvB;KAED7R,SAAS,GACT;OACC,OAAO,IAAI,CAACzO,MAAM;MAClB;KAEDugB,IAAI,GACJ;OACC3gB,EAAE,CAACoH,QAAQ,CAAC,IAAI,CAACoK,OAAO,EAAE,EAAE,IAAI,CAAC3C,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,WAAW,CAAC,CAAC;MACvE;KAED6d,MAAM,GACN;OACC5gB,EAAE,CAACqH,WAAW,CAAC,IAAI,CAACmK,OAAO,EAAE,EAAE,IAAI,CAAC3C,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,WAAW,CAAC,CAAC;MAC1E;KAED8d,MAAM,GACN;OACC,OAAO7gB,EAAE,CAACmD,QAAQ,CAAC,IAAI,CAACqO,OAAO,EAAE,EAAE,IAAI,CAAC3C,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,WAAW,CAAC,CAAC;MAC9E;KAED2d,gBAAgB,GAChB;OACC,IAAI1gB,EAAE,CAACyC,IAAI,CAACC,SAAS,CAAC,IAAI,CAAC8O,OAAO,EAAE,CAAC,EACrC;SACC,IAAI,CAACA,OAAO,EAAE,CAACsP,OAAO,GAAG,IAAI;;MAE9B;KAEDC,WAAW,GACX;OACC,OAAO/gB,EAAE,CAACE,IAAI,CAAC8gB,QAAQ;MACvB;KAEDxP,OAAO,GACP;OACC,OAAO,IAAI,CAACtO,IAAI;MAChB;KAED+d,OAAO,GACP;OACC,IAAI7Y,MAAM;OAEV,IACA;SACCA,MAAM,GAAG,IAAI,CAACoJ,OAAO,EAAE,CAAC5J,IAAI;QAC5B,CACD,MACA;SACCQ,MAAM,GAAG,IAAI;;OAGd,OAAOA,MAAM;;IAEd;CACF,CAAC,GAAG;;CChFJ,CAAC,YAAW;;GAGXpI,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAACghB,KAAK,GAAG,UAAS9gB,MAAM,EAC/B;KACC,IAAI,CAACA,MAAM,GAAG,IAAI;KAClB,IAAI,CAAC+gB,KAAK,GAAG,IAAI;KACjB,IAAI,CAAC3c,SAAS,GAAG,IAAI;KACrB,IAAI,CAAC/D,IAAI,CAACL,MAAM,CAAC;IACjB;GAEDJ,EAAE,CAACE,IAAI,CAACghB,KAAK,CAACpgB,SAAS,GAAG;KACzBL,IAAI,CAACL,MAAM,EACX;OACC,IAAI,CAACA,MAAM,GAAGA,MAAM;OACpB,IAAI,CAAC+gB,KAAK,GAAG,IAAI,CAAC/gB,MAAM,CAACghB,QAAQ,EAAE;OACnC,IAAI,CAAC5c,SAAS,GAAG,IAAI,CAAC2c,KAAK,CAAChU,UAAU;OACtC,IAAI,CAACkU,oBAAoB,GAAG,IAAI,CAACjhB,MAAM,CAACkhB,OAAO,EAAE,GAAG,YAAY,GAAG,YAAY;OAC/E,IAAI,CAACC,kBAAkB,GAAG,IAAI,CAACnhB,MAAM,CAACkhB,OAAO,EAAE,GAAG,UAAU,GAAG,YAAY;OAE3E,IAAI,IAAI,CAAClhB,MAAM,CAACsR,QAAQ,CAAC,kBAAkB,CAAC,EAC5C;SACC,IAAI,CAAC8P,UAAU,GAAG,IAAI,CAACphB,MAAM,CAACuR,YAAY,EAAE,CAACC,aAAa,EAAE;;OAG7D,IAAI,CAAC6P,qBAAqB,GAAGzhB,EAAE,CAAC0hB,QAAQ,CAAC,IAAI,CAACC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC;OAEzE3hB,EAAE,CAACsB,IAAI,CAACL,MAAM,EAAE,QAAQ,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC0gB,MAAM,EAAE,IAAI,CAAC,CAAC;OACtDvB,QAAQ,CAACwB,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACJ,qBAAqB,EAAEzhB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACkf,cAAc,CAAC;SAAEC,OAAO,EAAE;QAAM,CAAC,CAAC;OAChH,IAAI,CAACvd,SAAS,CAACqd,gBAAgB,CAAC,QAAQ,EAAE7hB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC0gB,MAAM,EAAE,IAAI,CAAC,EAAE5hB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACkf,cAAc,CAAC;SAAEC,OAAO,EAAE;QAAM,CAAC,CAAC;OACvH/hB,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,eAAe,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC0gB,MAAM,EAAE,IAAI,CAAC,CAAC;OACvE5hB,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,cAAc,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC0gB,MAAM,EAAE,IAAI,CAAC,CAAC;OACtE5hB,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,qBAAqB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC8gB,gBAAgB,EAAE,IAAI,CAAC,CAAC;OACvFhiB,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,oBAAoB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC0gB,MAAM,EAAE,IAAI,CAAC,CAAC;OAC5E5hB,EAAE,CAACsB,IAAI,CAAC,IAAI,CAAC2gB,UAAU,EAAE,EAAE,IAAI,CAACZ,oBAAoB,EAAErhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACghB,gBAAgB,EAAE,IAAI,CAAC,CAAC;OAC5FliB,EAAE,CAACsB,IAAI,CAAC,IAAI,CAAC6gB,WAAW,EAAE,EAAE,IAAI,CAACd,oBAAoB,EAAErhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACkhB,iBAAiB,EAAE,IAAI,CAAC,CAAC;OAC9FpiB,EAAE,CAACsB,IAAI,CAAC,IAAI,CAAC2gB,UAAU,EAAE,EAAE,IAAI,CAACV,kBAAkB,EAAEvhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACmhB,UAAU,EAAE,IAAI,CAAC,CAAC;OACpFriB,EAAE,CAACsB,IAAI,CAAC,IAAI,CAAC6gB,WAAW,EAAE,EAAE,IAAI,CAACZ,kBAAkB,EAAEvhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACmhB,UAAU,EAAE,IAAI,CAAC,CAAC;OAErF,IAAI,CAACT,MAAM,EAAE;OACb,IAAI,CAACU,eAAe,CAAC,IAAI,CAAC;MAC1B;KAED3gB,OAAO,GACP;OACC3B,EAAE,CAACuiB,MAAM,CAACthB,MAAM,EAAE,QAAQ,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC0gB,MAAM,EAAE,IAAI,CAAC,CAAC;OACxDvB,QAAQ,CAACmC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAACf,qBAAqB,EAAEzhB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACkf,cAAc,CAAC;SAAEC,OAAO,EAAE;QAAM,CAAC,CAAC;OACnH,IAAI,CAACvd,SAAS,CAACge,mBAAmB,CAAC,QAAQ,EAAExiB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC0gB,MAAM,EAAE,IAAI,CAAC,EAAE5hB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACkf,cAAc,CAAC;SAAEC,OAAO,EAAE;QAAM,CAAC,CAAC;OAC1H/hB,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,eAAe,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC0gB,MAAM,EAAE,IAAI,CAAC,CAAC;OAC1E5hB,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,qBAAqB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC8gB,gBAAgB,EAAE,IAAI,CAAC,CAAC;OAC1FhiB,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,oBAAoB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC0gB,MAAM,EAAE,IAAI,CAAC,CAAC;OAC/E5hB,EAAE,CAACuiB,MAAM,CAAC,IAAI,CAACN,UAAU,EAAE,EAAE,IAAI,CAACZ,oBAAoB,EAAErhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACghB,gBAAgB,EAAE,IAAI,CAAC,CAAC;OAC9FliB,EAAE,CAACuiB,MAAM,CAAC,IAAI,CAACJ,WAAW,EAAE,EAAE,IAAI,CAACd,oBAAoB,EAAErhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACkhB,iBAAiB,EAAE,IAAI,CAAC,CAAC;OAChGpiB,EAAE,CAACuiB,MAAM,CAAC,IAAI,CAACN,UAAU,EAAE,EAAE,IAAI,CAACV,kBAAkB,EAAEvhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACmhB,UAAU,EAAE,IAAI,CAAC,CAAC;OACtFriB,EAAE,CAACuiB,MAAM,CAAC,IAAI,CAACJ,WAAW,EAAE,EAAE,IAAI,CAACZ,kBAAkB,EAAEvhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACmhB,UAAU,EAAE,IAAI,CAAC,CAAC;OACvF,IAAI,CAACI,WAAW,EAAE;OAClB,IAAI,CAACC,YAAY,EAAE;OACnB,IAAI,CAACL,UAAU,EAAE;MACjB;KAEDL,gBAAgB,GAChB;OACC,IAAI,IAAI,CAAC5hB,MAAM,CAACsR,QAAQ,CAAC,kBAAkB,CAAC,EAC5C;SACC,IAAI,CAAC8P,UAAU,GAAG,IAAI,CAACphB,MAAM,CAACuR,YAAY,EAAE,CAACC,aAAa,EAAE;;MAE7D;KAEDsQ,gBAAgB,CAACjgB,KAAK,EACtB;OACC,IAAI,CAAC7B,MAAM,CAACkhB,OAAO,EAAE,IAAIrf,KAAK,CAACwL,cAAc,EAAE;OAC/C,IAAI,CAACkV,sBAAsB,CAAC,MAAM,CAAC;MACnC;KAEDP,iBAAiB,CAACngB,KAAK,EACvB;OACC,IAAI,CAAC7B,MAAM,CAACkhB,OAAO,EAAE,IAAIrf,KAAK,CAACwL,cAAc,EAAE;OAC/C,IAAI,CAACkV,sBAAsB,CAAC,OAAO,CAAC;MACpC;KAEDN,UAAU,GACV;OACCO,YAAY,CAAC,IAAI,CAACC,WAAW,CAAC;OAC9BC,aAAa,CAAC,IAAI,CAACC,cAAc,CAAC;MAClC;KAEDJ,sBAAsB,CAACK,SAAS,EAChC;OACC,MAAMxe,SAAS,GAAG,IAAI,CAACA,SAAS;OAChC,IAAImL,MAAM,GAAGnL,SAAS,CAACwN,UAAU;OACjC,MAAMzG,IAAI,GAAG,IAAI;OACjB,MAAM0X,UAAU,GAAG,CAAC;OACpB,MAAMC,QAAQ,GAAK,IAAI,GAAG,EAAE,GAAI,CAAE;OAElC,IAAI,CAACL,WAAW,GAAG9N,UAAU,CAAC,MAAM;SACnCxJ,IAAI,CAACwX,cAAc,GAAGI,WAAW,CAAC,MAAM;WACvC3e,SAAS,CAACwN,UAAU,GAAGgR,SAAS,IAAI,OAAO,GAAIrT,MAAM,IAAIsT,UAAU,GAAKtT,MAAM,IAAIsT,UAAW;UAC7F,EAAEC,QAAQ,CAAC;QACZ,EAAE,GAAG,CAAC;MACP;KAEDjB,UAAU,GACV;OACC,IAAI,CAAC,IAAI,CAACmB,OAAO,EACjB;SACC,IAAI,CAACA,OAAO,GAAGpjB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACzC,MAAM,CAAC4C,YAAY,EAAE,EAAE,IAAI,CAAC5C,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC;;OAGpH,OAAO,IAAI,CAACqgB,OAAO;MACnB;KAEDjB,WAAW,GACX;OACC,IAAI,CAAC,IAAI,CAACkB,QAAQ,EAClB;SACC,IAAI,CAACA,QAAQ,GAAGrjB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACzC,MAAM,CAAC4C,YAAY,EAAE,EAAE,IAAI,CAAC5C,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC;;OAGtH,OAAO,IAAI,CAACsgB,QAAQ;MACpB;KAEDC,aAAa,GACb;OACC,OAAO,IAAI,CAACljB,MAAM,CAAC4C,YAAY,EAAE,CAACyW,aAAa,CAAC,6BAA6B,CAAC;MAC9E;KAED8J,cAAc,GACd;OACC,OAAO,IAAI,CAACnjB,MAAM,CAAC4C,YAAY,EAAE,CAACyW,aAAa,CAAC,8BAA8B,CAAC;MAC/E;KAED6I,eAAe,CAACkB,OAAO,EACvB;OACC,IAAIA,OAAO,EACX;SACC,IAAI,CAACC,YAAY,GAAGzjB,EAAE,CAAC0jB,MAAM,CAACziB,MAAM,CAAC;SACrC,IAAI,CAAC0iB,QAAQ,GAAG3jB,EAAE,CAAC4jB,GAAG,CAAC,IAAI,CAACzC,KAAK,CAAC0C,OAAO,CAAC,CAAC,CAAC,CAAC;SAC7C,IAAI,CAACC,SAAS,GAAG9jB,EAAE,CAAC4jB,GAAG,CAAC,IAAI,CAACzC,KAAK,CAAC4C,KAAK,CAAC;;OAG1C,IAAIC,OAAO,GAAG/iB,MAAM,CAAC+iB,OAAO;OAE5B,IAAI,IAAI,CAAC5jB,MAAM,CAAC6jB,IAAI,EAAE,EACtB;SACCD,OAAO,GAAG3D,QAAQ,CAAC6D,eAAe,CAACC,SAAS;;OAG7C,IAAIC,SAAS,GAAIJ,OAAO,GAAG,IAAI,CAACP,YAAY,GAAI,IAAI,CAACE,QAAQ,CAACU,GAAG;OACjE,IAAIC,MAAM,GAAGN,OAAO,GAAG,IAAI,CAACL,QAAQ,CAACU,GAAG;OAExC,IAAID,SAAS,GAAI,IAAI,CAACT,QAAQ,CAACY,MAAM,GAAG,IAAI,CAACZ,QAAQ,CAACU,GAAI,EAC1D;SACCD,SAAS,GAAG,IAAI,CAACT,QAAQ,CAACY,MAAM,GAAG,IAAI,CAACZ,QAAQ,CAACU,GAAG;;OAGrD,IAAIC,MAAM,GAAG,IAAI,CAACR,SAAS,CAACJ,MAAM,EAClC;SACCY,MAAM,GAAG,IAAI,CAACR,SAAS,CAACJ,MAAM;QAC9B,MAED;SACCU,SAAS,IAAIE,MAAM;SACnBF,SAAS,IAAI,IAAI,CAACN,SAAS,CAACJ,MAAM;;OAGnC1jB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC4hB,qBAAqB,CAACxkB,EAAE,CAACkB,KAAK,CAAC,YAAW;SACvD,IAAIojB,MAAM,KAAK,IAAI,CAACG,UAAU,EAC9B;WACC,MAAMC,SAAS,GAAI,oBAAmBJ,MAAO,QAAO;WACpD,IAAI,CAACrC,UAAU,EAAE,CAACvO,KAAK,CAACC,SAAS,GAAG+Q,SAAS;WAC7C,IAAI,CAACvC,WAAW,EAAE,CAACzO,KAAK,CAACC,SAAS,GAAG+Q,SAAS;;SAG/C,IAAIN,SAAS,KAAK,IAAI,CAACO,aAAa,EACpC;WACC,IAAI,CAAC1C,UAAU,EAAE,CAACvO,KAAK,CAACgQ,MAAM,GAAI,GAAEU,SAAU,IAAG;WACjD,IAAI,CAACjC,WAAW,EAAE,CAACzO,KAAK,CAACgQ,MAAM,GAAI,GAAEU,SAAU,IAAG;;SAGnD,IAAI,CAACK,UAAU,GAAGH,MAAM;SACxB,IAAI,CAACK,aAAa,GAAGP,SAAS;QAC9B,EAAE,IAAI,CAAC,CAAC;MACT;KAEDzC,eAAe,GACf;OACC,IAAI,CAACW,eAAe,EAAE;MACtB;KAEDsC,SAAS,GACT;OACC,OAAO,IAAI,CAACzD,KAAK,CAAC0D,WAAW,GAAG,IAAI,CAACrgB,SAAS,CAACsgB,WAAW;MAC1D;KAEDC,aAAa,GACb;OACC,OAAO,IAAI,CAACvgB,SAAS,CAACwN,UAAU,GAAG,CAAC;MACpC;KAEDgT,cAAc,GACd;OACC,OAAO,IAAI,CAAC7D,KAAK,CAAC0D,WAAW,GAAGjS,IAAI,CAACqS,KAAK,CAAC,IAAI,CAACzgB,SAAS,CAACwN,UAAU,GAAG,IAAI,CAACxN,SAAS,CAACsgB,WAAW,CAAC;MAClG;KAEDI,WAAW,GACX;OACCllB,EAAE,CAACoH,QAAQ,CAAC,IAAI,CAAC5C,SAAS,CAAC2I,UAAU,EAAE,IAAI,CAAC/M,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,wBAAwB,CAAC,CAAC;OAC1F/C,EAAE,CAACoH,QAAQ,CAAC,IAAI,CAAC6a,UAAU,EAAE,EAAE,IAAI,CAAC7hB,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,WAAW,CAAC,CAAC;MACrE;KAED0f,WAAW,GACX;OACCziB,EAAE,CAACqH,WAAW,CAAC,IAAI,CAAC7C,SAAS,CAAC2I,UAAU,EAAE,IAAI,CAAC/M,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,wBAAwB,CAAC,CAAC;OAC7F/C,EAAE,CAACqH,WAAW,CAAC,IAAI,CAAC4a,UAAU,EAAE,EAAE,IAAI,CAAC7hB,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,WAAW,CAAC,CAAC;MACxE;KAEDoiB,YAAY,GACZ;OACCnlB,EAAE,CAACoH,QAAQ,CAAC,IAAI,CAAC5C,SAAS,CAAC2I,UAAU,EAAE,IAAI,CAAC/M,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,yBAAyB,CAAC,CAAC;OAC3F/C,EAAE,CAACoH,QAAQ,CAAC,IAAI,CAAC+a,WAAW,EAAE,EAAE,IAAI,CAAC/hB,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,WAAW,CAAC,CAAC;MACtE;KAED2f,YAAY,GACZ;OACC1iB,EAAE,CAACqH,WAAW,CAAC,IAAI,CAAC7C,SAAS,CAAC2I,UAAU,EAAE,IAAI,CAAC/M,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,yBAAyB,CAAC,CAAC;OAC9F/C,EAAE,CAACqH,WAAW,CAAC,IAAI,CAAC8a,WAAW,EAAE,EAAE,IAAI,CAAC/hB,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,WAAW,CAAC,CAAC;MACzE;KAEDqiB,wBAAwB,GACxB;OACC,MAAMjT,IAAI,GAAG,IAAI,CAAC3N,SAAS,CAACwN,UAAU;OAEtChS,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC4hB,qBAAqB,CAACxkB,EAAE,CAACuB,QAAQ,CAAC,YAAW;SAC1D,IAAI,CAACigB,UAAU,CAAC9N,KAAK,CAAC2R,UAAU,GAAI,GAAE,CAAClT,IAAK,IAAG;QAC/C,EAAE,IAAI,CAAC,CAAC;MACT;KAEDyP,MAAM,GACN;OACC,IAAI,CAACU,eAAe,CAAC,IAAI,CAAC;OAC1B,IAAI,CAACd,UAAU,IAAI,IAAI,CAAC4D,wBAAwB,EAAE;OAElD,IAAI,IAAI,CAACR,SAAS,EAAE,EACpB;SACC,IAAI,CAACG,aAAa,EAAE,GAAG,IAAI,CAACG,WAAW,EAAE,GAAG,IAAI,CAACzC,WAAW,EAAE;SAC9D,IAAI,CAACuC,cAAc,EAAE,GAAG,IAAI,CAACG,YAAY,EAAE,GAAG,IAAI,CAACzC,YAAY,EAAE;QACjE,MAED;SACC,IAAI,CAACD,WAAW,EAAE;SAClB,IAAI,CAACC,YAAY,EAAE;;;IAGrB;CACF,CAAC,GAAG;;CCrQJ,CAAC,YAAW;;GAGX1iB,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;GACCD,EAAE,CAACmb,IAAI,CAACmK,IAAI,GAAG,UACdC,WAAW,EACXzL,QAAQ,EACR0L,WAAW,EACXC,kBAAkB,EAClBC,qBAAqB,EACrBC,YAAY,EACZC,UAAU,EACVC,WAAW,EACXC,YAAY,EAEb;KACC9lB,EAAE,CAAC+lB,KAAK,CAACC,YAAY,CAACC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC;KAC1D,IAAI,CAACnjB,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACyiB,WAAW,GAAG,EAAE;KACrB,IAAI,CAAC/gB,SAAS,GAAG,IAAI;KACrB,IAAI,CAAC0hB,OAAO,GAAG,IAAI;KACnB,IAAI,CAACC,aAAa,GAAG,IAAI;KACzB,IAAI,CAACC,eAAe,GAAG,IAAI;KAC3B,IAAI,CAACxP,UAAU,GAAG,IAAI;KACtB,IAAI,CAACD,UAAU,GAAG,IAAI;KACtB,IAAI,CAACwK,KAAK,GAAG,IAAI;KACjB,IAAI,CAACzT,IAAI,GAAG,IAAI;KAChB,IAAI,CAAC2Y,OAAO,GAAG,KAAK;KACpB,IAAI,CAACb,WAAW,GAAG,IAAI;KACvB,IAAI,CAACc,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACC,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACC,OAAO,GAAG,IAAI;KACnB,IAAI,CAACtiB,IAAI,GAAG,IAAI;KAChB,IAAI,CAACuiB,KAAK,GAAG,IAAI;KACjB,IAAI,CAACC,MAAM,GAAG,IAAI;KAClB,IAAI,CAACC,UAAU,GAAG,IAAI;KACtB,IAAI,CAACC,SAAS,GAAG,IAAI;KACrB,IAAI,CAACC,QAAQ,GAAG,IAAI;KACpB,IAAI,CAAC/M,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACgN,MAAM,GAAG,IAAI;KAClB,IAAI,CAACC,YAAY,GAAG,EAAE;KAEtB,IAAI,CAACtmB,IAAI,CACR8kB,WAAW,EACXzL,QAAQ,EACR0L,WAAW,EACXC,kBAAkB,EAClBC,qBAAqB,EACrBC,YAAY,EACZC,UAAU,EACVC,WAAW,EACXC,YAAY,CACZ;IACD;GAED9lB,EAAE,CAACmb,IAAI,CAACmK,IAAI,CAACxkB,SAAS,GAAG;KACxBL,IAAI,CAAC8kB,WAAW,EAAEzL,QAAQ,EAAE0L,WAAW,EAAEC,kBAAkB,EAAEC,qBAAqB,EAAEC,YAAY,EAAEC,UAAU,EAAEC,WAAW,EAAEC,YAAY,EACvI;OACC,IAAI,CAAC5N,OAAO,GAAGjX,MAAM,CAAC+lB,QAAQ,CAACC,QAAQ,GAAGhmB,MAAM,CAAC+lB,QAAQ,CAACE,MAAM;OAChE,IAAI,CAAC1iB,SAAS,GAAGxE,EAAE,CAACulB,WAAW,CAAC;OAEhC,IAAI,CAACvlB,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAACkf,WAAW,CAAC,EAC1C;SACC,MAAM,mDAAmD;;OAG1D,IAAIvlB,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAACsQ,QAAQ,CAAC,EACnC;SACC,IAAI,CAACA,QAAQ,GAAGA,QAAQ;QACxB,MAED;SACC,MAAM,IAAIqN,SAAS,CAAC,2CAA2C,CAAC;;OAGjE,IAAI,CAACrkB,QAAQ,GAAG,IAAI9C,EAAE,CAACE,IAAI,CAACknB,QAAQ,EAAE;OACtC,IAAI,CAAC7B,WAAW,GAAGA,WAAW;OAC9B,IAAI,CAACC,WAAW,GAAG,IAAIxlB,EAAE,CAACE,IAAI,CAACmnB,WAAW,CAAC,IAAI,EAAE7B,WAAW,EAAEC,kBAAkB,EAAEC,qBAAqB,CAAC;OACxG,IAAI,CAAC4B,YAAY,GAAG,IAAItnB,EAAE,CAACE,IAAI,CAACqnB,cAAc,CAACC,OAAO,CAAC,IAAI,CAAC;OAC5D,IAAI,CAAC3N,QAAQ,GAAG,IAAI7Z,EAAE,CAACE,IAAI,CAACunB,OAAO,CAAC,IAAI,EAAE3B,YAAY,CAAC;OACvD,IAAI,CAAC4B,KAAK,GAAG,IAAI1nB,EAAE,CAAC2nB,KAAK,CAACC,WAAW,EAAE;OAEvC,IAAI,IAAI,CAAClW,QAAQ,CAAC,kBAAkB,CAAC,EACrC;SACC,IAAI,CAACkV,SAAS,GAAG,IAAI5mB,EAAE,CAACE,IAAI,CAAC2nB,SAAS,CAAC,IAAI,CAAC;SAC5C7nB,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,qBAAqB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC4mB,cAAc,EAAE,IAAI,CAAC,CAAC;;OAGtF,IAAI,CAACA,cAAc,EAAE;OAErB,IAAI,IAAI,CAACpW,QAAQ,CAAC,yBAAyB,CAAC,EAC5C;SACC,IAAI,CAAC+U,KAAK,GAAG,IAAIzmB,EAAE,CAACE,IAAI,CAACghB,KAAK,CAAC,IAAI,CAAC;;OAGrC,IAAI,CAAC6G,QAAQ,GAAG,IAAI/nB,EAAE,CAACE,IAAI,CAAC8nB,QAAQ,CAAC,IAAI,CAAC;OAC1C,IAAI,CAACtB,MAAM,GAAG,IAAI1mB,EAAE,CAACE,IAAI,CAAC+nB,YAAY,CAAC,IAAI,EAAEpC,WAAW,CAAC;OAEzD,IAAI,IAAI,CAACnU,QAAQ,CAAC,mBAAmB,CAAC,EACtC;SACC,IAAI,CAACuF,WAAW,GAAG,IAAIjX,EAAE,CAACE,IAAI,CAACC,WAAW,CAAC,IAAI,EAAEwlB,YAAY,EAAEC,UAAU,CAAC;SAC1E,IAAI,CAACiB,QAAQ,GAAG,IAAI7mB,EAAE,CAACE,IAAI,CAACgoB,QAAQ,CAAC,IAAI,CAAC;;OAG3C,IAAI,CAACvB,UAAU,GAAG,KAAK;OAEvB,IAAI,CAAC3mB,EAAE,CAACyC,IAAI,CAACC,SAAS,CAAC,IAAI,CAACM,YAAY,EAAE,CAAC,EAC3C;SACC,MAAO,uDAAsD,IAAI,CAAC0W,cAAc,EAAG,EAAC;;OAGrF,IAAI,CAAC1Z,EAAE,CAACyC,IAAI,CAACC,SAAS,CAAC,IAAI,CAAC0e,QAAQ,EAAE,CAAC,EACvC;SACC,MAAM,yCAAyC;;OAGhD,IAAI,CAAC+G,eAAe,EAAE;OAEtB,IAAI,IAAI,CAACzW,QAAQ,CAAC,sBAAsB,CAAC,EACzC;SACC,IAAI,CAACoV,MAAM,GAAG,IAAI9mB,EAAE,CAACE,IAAI,CAACkoB,MAAM,CAAC,IAAI,CAAC;;OAGvC,IAAI,CAACC,sBAAsB,EAAE;OAC7B,IAAI,CAACC,0BAA0B,EAAE;OACjC,IAAI,CAACC,iBAAiB,EAAE;OAExB,IAAI,IAAI,CAAC7W,QAAQ,CAAC,iBAAiB,CAAC,EACpC;SACC,IAAI,CAAC8W,mBAAmB,EAAE;;OAG3B,IAAI,IAAI,CAAC9W,QAAQ,CAAC,oBAAoB,CAAC,EACvC;SACC,IAAI,CAAC+W,mBAAmB,EAAE;;OAG3B,IAAI,CAAC9a,OAAO,EAAE,CAAC+a,YAAY,EAAE;OAC7B,IAAI,CAACC,gBAAgB,CAAC,IAAI,CAAChb,OAAO,EAAE,CAACib,kBAAkB,EAAE,CAAC;OAC1D5oB,EAAE,CAAC8U,aAAa,CAAC,IAAI,CAAC9R,YAAY,EAAE,EAAE,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;OAC5DhD,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,mBAAmB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2nB,eAAe,EAAE,IAAI,CAAC,CAAC;OACpF7oB,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,oBAAoB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2nB,eAAe,EAAE,IAAI,CAAC,CAAC;OACrF7oB,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,yBAAyB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2nB,eAAe,EAAE,IAAI,CAAC,CAAC;OAC1F7oB,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,eAAe,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC4nB,cAAc,EAAE,IAAI,CAAC,CAAC;OAC/E7nB,MAAM,CAAC8nB,MAAM,CAAC,IAAI,CAACC,UAAU,EAAE,CAAC,CAACC,QAAQ,GAAGjpB,EAAE,CAACkpB,QAAQ,CAAC,IAAI,CAACC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC;OAEtF,IAAI,IAAI,CAACzX,QAAQ,CAAC,uBAAuB,CAAC,EAC1C;SACC,IAAI,CAAC0X,kBAAkB,EAAE;;MAE1B;KAEDznB,OAAO,GACP;OACC3B,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,mBAAmB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2nB,eAAe,EAAE,IAAI,CAAC,CAAC;OACvF7oB,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,oBAAoB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2nB,eAAe,EAAE,IAAI,CAAC,CAAC;OACxF7oB,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,yBAAyB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2nB,eAAe,EAAE,IAAI,CAAC,CAAC;OAC7F7oB,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,oBAAoB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC4mB,cAAc,EAAE,IAAI,CAAC,CAAC;OACvF9nB,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,eAAe,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC4nB,cAAc,EAAE,IAAI,CAAC,CAAC;OAClF,IAAI,CAACnX,YAAY,EAAE,IAAI,IAAI,CAACA,YAAY,EAAE,CAAChQ,OAAO,EAAE;OACpD,IAAI,CAAC0nB,QAAQ,EAAE,IAAI,IAAI,CAACA,QAAQ,EAAE,CAAC1nB,OAAO,EAAE;OAC5C,IAAI,CAAC2nB,SAAS,EAAE,IAAI,IAAI,CAACA,SAAS,EAAE,CAAC3nB,OAAO,EAAE;OAC9C,IAAI,CAAC4nB,eAAe,EAAE,IAAI,IAAI,CAACA,eAAe,EAAE,CAAC5nB,OAAO,EAAE;OAC1D,IAAI,CAAC6nB,eAAe,EAAE,IAAI,IAAI,CAACA,eAAe,EAAE,CAAC7nB,OAAO,EAAE;OAC1D,IAAI,CAAC8nB,iBAAiB,EAAE,IAAI,IAAI,CAACA,iBAAiB,EAAE,CAAC9nB,OAAO,EAAE;OAC9D,IAAI,CAAC+nB,eAAe,EAAE,IAAI,IAAI,CAACA,eAAe,EAAE,CAAC/nB,OAAO,EAAE;OAC1D,IAAI,CAACgoB,WAAW,EAAE,IAAI,IAAI,CAACA,WAAW,EAAE,CAAChoB,OAAO,EAAE;OAClD,IAAI,CAACsZ,WAAW,EAAE,IAAI,IAAI,CAACA,WAAW,EAAE,CAACtZ,OAAO,EAAE;MAClD;KAEDwnB,cAAc,GACd;OACCnpB,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC;MAChD;KAED6nB,cAAc,GACd;OACC,IAAI,CAACM,kBAAkB,EAAE;OACzB,IAAI,CAACQ,kBAAkB,CAAC,IAAI,CAACC,aAAa,EAAE,CAAC;MAC7C;;CAGH;CACA;CACA;KACEb,UAAU,GACV;OACC,OAAQ,uBAAsB,IAAI,CAACtP,cAAc,EAAG,EAAC;MACrD;KAEDoQ,kBAAkB,GAClB;OACC,IAAI,IAAI,CAACpY,QAAQ,CAAC,mBAAmB,CAAC,EACtC;SACC,MAAMtQ,KAAK,GAAG,IAAI,CAACsoB,eAAe,EAAE,CAACroB,QAAQ,EAAE;SAE/C,IAAIrB,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACtB,KAAK,CAAC,EAC5B;WACCpB,EAAE,CAACqH,WAAW,CAACjG,KAAK,EAAE,IAAI,CAAC0B,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,CAAC;;;MAG1D;KAEDgnB,mBAAmB,GACnB;OACC,IAAI,IAAI,CAACrY,QAAQ,CAAC,mBAAmB,CAAC,EACtC;SACC,MAAMtQ,KAAK,GAAG,IAAI,CAACsoB,eAAe,EAAE,CAACroB,QAAQ,EAAE;SAE/C,IAAIrB,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACtB,KAAK,CAAC,EAC5B;WACCpB,EAAE,CAACoH,QAAQ,CAAChG,KAAK,EAAE,IAAI,CAAC0B,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,CAAC;;;MAGvD;KAED0mB,iBAAiB,GACjB;OACC,OAAO,IAAI,CAACnC,YAAY;MACxB;KAEDuB,eAAe,GACf;OACC,MAAMznB,KAAK,GAAG,IAAI,CAACsoB,eAAe,EAAE;OACpC,IAAInnB,QAAQ;OAEZ,IAAInB,KAAK,YAAYpB,EAAE,CAACE,IAAI,CAACC,WAAW,EACxC;SACCoC,QAAQ,GAAGnB,KAAK,CAACoB,iBAAiB,EAAE;SAEpC,IAAIxC,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACH,QAAQ,CAAC,EAC/B;WACCA,QAAQ,CAACI,OAAO,GAAG,IAAI;WACvB,IAAI,CAACqnB,oBAAoB,EAAE;;;OAI7B,IAAI,CAACC,wBAAwB,EAAE;MAC/B;;CAGH;CACA;KACEhG,IAAI,GACJ;OACC,IAAI,CAACjkB,EAAE,CAACyC,IAAI,CAAC6U,SAAS,CAAC,IAAI,CAAC4S,EAAE,CAAC,EAC/B;SACC,IAAI,CAACA,EAAE,GAAGlqB,EAAE,CAACmD,QAAQ,CAACkd,QAAQ,CAAC6D,eAAe,EAAE,OAAO,CAAC;;OAGzD,OAAO,IAAI,CAACgG,EAAE;MACd;;CAGH;CACA;KACE5I,OAAO,GACP;OACC,IAAI,CAACthB,EAAE,CAACyC,IAAI,CAAC6U,SAAS,CAAC,IAAI,CAAC6S,KAAK,CAAC,EAClC;SACC,IAAI,CAACA,KAAK,GAAGnqB,EAAE,CAACmD,QAAQ,CAACkd,QAAQ,CAAC6D,eAAe,EAAE,UAAU,CAAC;;OAG/D,OAAO,IAAI,CAACiG,KAAK;MACjB;;CAGH;CACA;CACA;CACA;KACEzY,QAAQ,CAAC0Y,SAAS,EAAEC,YAAY,EAChC;OACC,IAAIA,YAAY,KAAK7b,SAAS,EAC9B;SACC6b,YAAY,GAAG,IAAI;;OAGpB,OAAQ,IAAI,CAACvQ,QAAQ,CAAC9B,cAAc,CAACoS,SAAS,CAAC,GAAG,IAAI,CAACtQ,QAAQ,CAACsQ,SAAS,CAAC,GAAGC,YAAY;MACzF;;CAGH;CACA;KACEvP,eAAe,GACf;OACC,OAAO9a,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACG,YAAY,EAAE,EAAE,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC;MAClG;KAEDunB,YAAY,GACZ;OACC,OAAS,iBAAgB,IAAI,CAACrc,KAAK,EAAG,EAAC;MACvC;;CAGH;CACA;KACE0D,YAAY,GACZ;OACC,IAAI,IAAI,CAACD,QAAQ,CAAC,kBAAkB,CAAC,EACrC;SACC,IAAI,CAACkV,SAAS,GAAG,IAAI,CAACA,SAAS,IAAI,IAAI5mB,EAAE,CAACE,IAAI,CAAC2nB,SAAS,CAAC,IAAI,CAAC;;OAG/D,OAAO,IAAI,CAACjB,SAAS;MACrB;;CAGH;CACA;KACE0C,SAAS,GACT;OACC,IAAI,EAAE,IAAI,CAACxC,MAAM,YAAY9mB,EAAE,CAACE,IAAI,CAACkoB,MAAM,CAAC,IAAI,IAAI,CAAC1W,QAAQ,CAAC,sBAAsB,CAAC,EACrF;SACC,IAAI,CAACoV,MAAM,GAAG,IAAI9mB,EAAE,CAACE,IAAI,CAACkoB,MAAM,CAAC,IAAI,CAAC;;OAGvC,OAAO,IAAI,CAACtB,MAAM;MAClB;KAEDyD,aAAa,CAAC/lB,SAAS,EACvB;OACC,IAAIjC,QAAQ;OACZ,MAAMgJ,IAAI,GAAG,IAAI;OAEjB,IAAIvL,EAAE,CAACyC,IAAI,CAACC,SAAS,CAAC8B,SAAS,CAAC,EAChC;SACCjC,QAAQ,GAAGvC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC0O,QAAQ,CAAC9M,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;;OAG5D,IAAIjC,QAAQ,CAACI,OAAO,EACpB;SACC,IAAI,CAAC+mB,eAAe,EAAE,CAAC9c,aAAa,CACnC;WAAE4d,OAAO,EAAE,IAAI;WAAEC,eAAe,EAAE,IAAI,CAAC3Q,QAAQ,CAAC4Q;UAAyB,EACzE,MAAM;WACL,IAAI1qB,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACH,QAAQ,CAAC,EAC/B;aACCA,QAAQ,CAACI,OAAO,GAAG,IAAI;;WAGxB4I,IAAI,CAACof,2BAA2B,EAAE;WAClCpf,IAAI,CAACoC,OAAO,EAAE,CAACid,SAAS,EAAE;WAC1Brf,IAAI,CAACsf,mBAAmB,EAAE;WAC1Btf,IAAI,CAACuf,sBAAsB,EAAE;WAC7Bvf,IAAI,CAACwf,qBAAqB,EAAE;WAC5Bxf,IAAI,CAACue,kBAAkB,EAAE;WACzBve,IAAI,CAAC0e,wBAAwB,EAAE;WAC/B1e,IAAI,CAACyf,aAAa,GAAG,IAAI;WACzBhrB,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,uBAAuB,EAAE,EAAE,CAAC;UACrD,EACD,MAAM;WACL,IAAIjB,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACH,QAAQ,CAAC,EAC/B;aACCA,QAAQ,CAACI,OAAO,GAAG,IAAI;aACvB4I,IAAI,CAACye,oBAAoB,EAAE;aAC3Bze,IAAI,CAACuf,sBAAsB,EAAE;aAC7Bvf,IAAI,CAACwf,qBAAqB,EAAE;aAC5Bxf,IAAI,CAAC0e,wBAAwB,EAAE;aAC/B1e,IAAI,CAACyf,aAAa,GAAG,IAAI;;UAE1B,CACD;QACD,MAED;SACC,IAAI,CAACC,6BAA6B,EAAE;SACpC,IAAI,CAAChB,wBAAwB,EAAE;SAC/B,IAAI,CAACtc,OAAO,EAAE,CAACud,WAAW,EAAE;SAC5B,IAAI,CAAClB,oBAAoB,EAAE;SAC3B,IAAI,CAACc,sBAAsB,EAAE;SAC7B,IAAI,CAACC,qBAAqB,EAAE;SAC5B,IAAI,CAAChB,mBAAmB,EAAE;SAC1B/pB,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,yBAAyB,EAAE,EAAE,CAAC;;MAExD;KAED8W,yBAAyB,GACzB;OACC,IAAI,CAACoT,qBAAqB,EAAE,CAAC1iB,OAAO,CAAElG,QAAQ,IAAK;SAClDA,QAAQ,CAACiP,OAAO,EAAE,CAACzI,QAAQ,GAAG,IAAI;QAClC,CAAC;MACF;KAEDmR,wBAAwB,GACxB;OACC,IAAI,CAACiR,qBAAqB,EAAE,CAAC1iB,OAAO,CAAElG,QAAQ,IAAK;SAClDA,QAAQ,CAACiP,OAAO,EAAE,CAACzI,QAAQ,GAAG,KAAK;QACnC,CAAC;MACF;KAEDqiB,+BAA+B,GAC/B;OACC,IAAI,CAACD,qBAAqB,EAAE,CAAC1iB,OAAO,CAAElG,QAAQ,IAAK;SAClDA,QAAQ,CAACiP,OAAO,EAAE,CAAC6Z,aAAa,GAAG,IAAI;QACvC,CAAC;MACF;KAEDC,6BAA6B,GAC7B;OACC,IAAI,CAACH,qBAAqB,EAAE,CAAC1iB,OAAO,CAAElG,QAAQ,IAAK;SAClDA,QAAQ,CAACiP,OAAO,EAAE,CAAC6Z,aAAa,GAAG,KAAK;QACxC,CAAC;MACF;KAEDE,YAAY,GACZ;OACC,IAAI,CAACxT,yBAAyB,EAAE;OAChC,IAAI,CAACpK,OAAO,EAAE,CAAC4d,YAAY,EAAE;OAE7B,IAAI,IAAI,CAAC7Z,QAAQ,CAAC,kBAAkB,CAAC,EACrC;SACC,IAAI,CAACC,YAAY,EAAE,CAAC6Z,aAAa,EAAE;;OAGpCxrB,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC;MAChD;KAEDwqB,gBAAgB,GAChB;OACC,MAAMvnB,IAAI,GAAG;SAAEwnB,MAAM,EAAE,IAAI,CAAC/d,OAAO,EAAE,CAACge,qBAAqB,CAAC,IAAI;QAAG;OAEnE,IAAI,IAAI,CAACja,QAAQ,CAAC,gBAAgB,CAAC,EACnC;SACC,IAAI,CAACka,SAAS,EAAE;SAChB1nB,IAAI,CAAC,IAAI,CAAComB,YAAY,EAAE,CAAC,GAAG,UAAU;SACtC,IAAI,CAACuB,OAAO,EAAE,CAACrU,OAAO,CAAC,EAAE,EAAE,MAAM,EAAEtT,IAAI,EAAE,UAAU,EAAGyV,GAAG,IAAK;WAC7DA,GAAG,GAAGzU,IAAI,CAAC0U,KAAK,CAACD,GAAG,CAAC;WAErB,IAAIA,GAAG,CAACE,QAAQ,CAACpS,MAAM,GAAG,CAAC,EAC3B;aACC,IAAI,CAACqS,QAAQ,CAACC,QAAQ,GAAGJ,GAAG,CAACE,QAAQ;aACrC,IAAI,CAACA,QAAQ,CAAC1Q,IAAI,EAAE;aAEpB,MAAM2iB,UAAU,GAAG,IAAI,CAACpC,eAAe,EAAE,CAAChmB,UAAU,EAAE,CACpDoZ,IAAI,CAAEpc,MAAM,IAAK;eACjB,OAAOA,MAAM,CAACsB,EAAE,KAAK,0BAA0B;cAC/C,CAAC;aAEH,IAAI,CAACgY,WAAW,EAAE;aAClBha,EAAE,CAAC8B,SAAS,CAACgqB,UAAU,EAAE,OAAO,CAAC;YACjC,MAED;aACC5nB,IAAI,CAAC,IAAI,CAAComB,YAAY,EAAE,CAAC,GAAG,MAAM;aAClC,IAAI,CAACyB,WAAW,CAAC,MAAM,EAAE7nB,IAAI,CAAC;;UAE/B,CAAC;SAEF;;OAGD,IAAI,IAAI,CAACwN,QAAQ,CAAC,wBAAwB,CAAC,EAC3C;SACCxN,IAAI,CAAC,IAAI,CAAComB,YAAY,EAAE,CAAC,GAAG,MAAM;SAElC,MAAM/e,IAAI,GAAG,IAAI;SACjB,IAAI,CAACqgB,SAAS,EAAE;SAEhB,IAAI,CAACC,OAAO,EAAE,CAACrU,OAAO,CACrB,EAAE,EACF,MAAM,EACNtT,IAAI,EACJ,EAAE,EACF,UAASyV,GAAG,EAAE;WACb,IACA;aACCA,GAAG,GAAGzU,IAAI,CAAC0U,KAAK,CAACD,GAAG,CAAC;YACrB,CACD,MACA;aACCA,GAAG,GAAG;eAAEE,QAAQ,EAAE;cAAI;;WAGvB,IAAIF,GAAG,CAACE,QAAQ,CAACpS,MAAM,GAAG,CAAC,EAC3B;aACC8D,IAAI,CAACuO,QAAQ,CAACC,QAAQ,GAAGJ,GAAG,CAACE,QAAQ;aACrCtO,IAAI,CAACsO,QAAQ,CAAC1Q,IAAI,EAAE;aAEpB,MAAM2iB,UAAU,GAAGvgB,IAAI,CAACme,eAAe,EAAE,CAAChmB,UAAU,EAAE,CACpDoZ,IAAI,CAAEpc,MAAM,IAAK;eACjB,OAAOA,MAAM,CAACsB,EAAE,KAAK,0BAA0B;cAC/C,CAAC;aAEHuJ,IAAI,CAACyO,WAAW,EAAE;aAClBha,EAAE,CAAC8B,SAAS,CAACgqB,UAAU,EAAE,OAAO,CAAC;aAEjC;;WAGDvgB,IAAI,CAACoC,OAAO,EAAE,CAAC2C,KAAK,EAAE;WACtB,MAAMmG,QAAQ,GAAG,IAAI,CAAC6D,WAAW,EAAE;WAEnC/O,IAAI,CAACygB,UAAU,EAAE,CAACC,eAAe,CAAC,IAAI,CAACjpB,YAAY,EAAE,CAAC;WACtDuI,IAAI,CAACygB,UAAU,EAAE,CAACE,cAAc,CAAC,IAAI,CAAC7R,WAAW,EAAE,CAAC;WACpD9O,IAAI,CAACygB,UAAU,EAAE,CAACG,cAAc,CAAC1V,QAAQ,CAAC;WAC1ClL,IAAI,CAACygB,UAAU,EAAE,CAACI,cAAc,CAAC,IAAI,CAAC3R,WAAW,EAAE,CAAC;WACpDlP,IAAI,CAACygB,UAAU,EAAE,CAACK,gBAAgB,CAAC,IAAI,CAAC1R,aAAa,EAAE,CAAC;WACxDpP,IAAI,CAACygB,UAAU,EAAE,CAACM,gBAAgB,CAAC,IAAI,CAAC5R,aAAa,EAAE,CAAC;WACxDnP,IAAI,CAACygB,UAAU,EAAE,CAACO,kBAAkB,CAAC,IAAI,CAACzR,eAAe,EAAE,CAAC;WAE5DvP,IAAI,CAACod,gBAAgB,CAAClS,QAAQ,CAAC;WAE/BlL,IAAI,CAAC4c,eAAe,EAAE;WAEtB5c,IAAI,CAAC8c,sBAAsB,EAAE;WAC7B9c,IAAI,CAAC+c,0BAA0B,EAAE;WACjC/c,IAAI,CAACgd,iBAAiB,EAAE;WACxBhd,IAAI,CAACuc,cAAc,EAAE;WACrBvc,IAAI,CAACuf,sBAAsB,EAAE;WAC7Bvf,IAAI,CAACwf,qBAAqB,EAAE;WAC5Bxf,IAAI,CAACwe,mBAAmB,EAAE;WAC1Bxe,IAAI,CAACye,oBAAoB,EAAE;WAE3B,IAAIze,IAAI,CAACmG,QAAQ,CAAC,mBAAmB,CAAC,EACtC;aACCnG,IAAI,CAACygB,UAAU,EAAE,CAACQ,kBAAkB,CAAC,IAAI,CAACtR,cAAc,EAAE,CAAC;;WAG5D,IAAI3P,IAAI,CAACmG,QAAQ,CAAC,oBAAoB,CAAC,EACvC;aACCnG,IAAI,CAACkhB,YAAY,CAACtc,MAAM,EAAE;;WAG3B,IAAI5E,IAAI,CAACmG,QAAQ,CAAC,iBAAiB,CAAC,EACpC;aACCnG,IAAI,CAACmhB,YAAY,CAACvc,MAAM,EAAE;;WAG3B5E,IAAI,CAACyO,WAAW,EAAE;WAElBha,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,eAAe,EAAE,CAACsK,IAAI,CAAC,CAAC;UACjD,EACAoO,GAAG,IAAK;WACR,MAAMmS,UAAU,GAAGvgB,IAAI,CAACme,eAAe,EAAE,CAAChmB,UAAU,EAAE,CACpDoZ,IAAI,CAAEpc,MAAM,IAAK;aACjB,OAAOA,MAAM,CAACsB,EAAE,KAAK,0BAA0B;YAC/C,CAAC;WAEHuJ,IAAI,CAACyO,WAAW,EAAE;WAClBha,EAAE,CAAC8B,SAAS,CAACgqB,UAAU,EAAE,OAAO,CAAC;UACjC,CACD;SAED;;OAGD5nB,IAAI,CAAC,IAAI,CAAComB,YAAY,EAAE,CAAC,GAAG,MAAM;OAClC,IAAI,CAACyB,WAAW,CAAC,MAAM,EAAE7nB,IAAI,CAAC;MAC9B;KAEDyoB,YAAY,GACZ;OACC,OAAQ,mBAAkB,IAAI,CAAC1e,KAAK,EAAG,EAAC;MACxC;KAED2e,SAAS,CAAC5qB,EAAE,EAAEkC,IAAI,EAAEuT,GAAG,EAAEnM,QAAQ,EACjC;OACC,MAAMwC,GAAG,GAAG,IAAI,CAACH,OAAO,EAAE,CAAC2S,OAAO,CAACte,EAAE,CAAC;OAEtC,IAAI8L,GAAG,YAAY9N,EAAE,CAACE,IAAI,CAAC2sB,GAAG,EAC9B;SACC/e,GAAG,CAACgf,MAAM,CAAC5oB,IAAI,EAAEuT,GAAG,EAAEnM,QAAQ,CAAC;;MAEhC;KAEDyhB,SAAS,CAAC/qB,EAAE,EAAEkC,IAAI,EAAEuT,GAAG,EAAEnM,QAAQ,EACjC;OACC,MAAMwC,GAAG,GAAG,IAAI,CAACH,OAAO,EAAE,CAAC2S,OAAO,CAACte,EAAE,CAAC;OAEtC,IAAI8L,GAAG,YAAY9N,EAAE,CAACE,IAAI,CAAC2sB,GAAG,EAC9B;SACC/e,GAAG,CAACnF,MAAM,CAACzE,IAAI,EAAEuT,GAAG,EAAEnM,QAAQ,CAAC;;MAEhC;KAED0hB,MAAM,CAAC9oB,IAAI,EAAEuT,GAAG,EAAEnM,QAAQ,EAC1B;OACC,MAAM/B,MAAM,GAAG,IAAI,CAACqL,cAAc,EAAE,CAACqY,SAAS,CAAC,cAAc,CAAC;OAC9D,MAAMC,OAAO,GAAG;SAAE3jB,MAAM;SAAErF;QAAM;OAChC,MAAMqH,IAAI,GAAG,IAAI;OAEjB,IAAI,CAACqgB,SAAS,EAAE;OAChB,IAAI,CAACC,OAAO,EAAE,CAACrU,OAAO,CAACC,GAAG,EAAE,MAAM,EAAEyV,OAAO,EAAE,IAAI,EAAE,YAAW;SAC7D,MAAMzW,QAAQ,GAAG,IAAI,CAAC6D,WAAW,EAAE;SACnC/O,IAAI,CAACygB,UAAU,EAAE,CAACG,cAAc,CAAC1V,QAAQ,CAAC;SAC1ClL,IAAI,CAACyO,WAAW,EAAE;SAClBzO,IAAI,CAACoC,OAAO,EAAE,CAAC2C,KAAK,EAAE;SACtB/E,IAAI,CAACygB,UAAU,EAAE,CAACI,cAAc,CAAC,IAAI,CAAC3R,WAAW,EAAE,CAAC;SACpDlP,IAAI,CAACygB,UAAU,EAAE,CAACK,gBAAgB,CAAC,IAAI,CAAC1R,aAAa,EAAE,CAAC;SACxDpP,IAAI,CAACygB,UAAU,EAAE,CAACM,gBAAgB,CAAC,IAAI,CAAC5R,aAAa,EAAE,CAAC;SACxDnP,IAAI,CAACygB,UAAU,EAAE,CAACO,kBAAkB,CAAC,IAAI,CAACzR,eAAe,EAAE,CAAC;SAC5DvP,IAAI,CAAC4c,eAAe,EAAE;SACtB5c,IAAI,CAACod,gBAAgB,CAAClS,QAAQ,CAAC;SAE/BlL,IAAI,CAAC8c,sBAAsB,EAAE;SAC7B9c,IAAI,CAAC+c,0BAA0B,EAAE;SACjC/c,IAAI,CAACuf,sBAAsB,EAAE;SAC7Bvf,IAAI,CAACwf,qBAAqB,EAAE;SAE5B,IAAIxf,IAAI,CAACmG,QAAQ,CAAC,oBAAoB,CAAC,EACvC;WACCnG,IAAI,CAACkhB,YAAY,CAACtc,MAAM,EAAE;;SAG3B,IAAI5E,IAAI,CAACmG,QAAQ,CAAC,iBAAiB,CAAC,EACpC;WACCnG,IAAI,CAACmhB,YAAY,CAACvc,MAAM,EAAE;;SAG3BnQ,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,gBAAgB,EAAE,CAAC;WAAEiD,IAAI;WAAEohB,IAAI,EAAE/Z,IAAI;WAAE+K,QAAQ,EAAE;UAAM,CAAC,CAAC;SAClFtW,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,eAAe,EAAE,CAACsK,IAAI,CAAC,CAAC;SAEjD,IAAIvL,EAAE,CAACyC,IAAI,CAACwX,UAAU,CAAC3O,QAAQ,CAAC,EAChC;WACCA,QAAQ,CAAC;aAAEpH,IAAI;aAAEohB,IAAI,EAAE/Z,IAAI;aAAE+K,QAAQ,EAAE;YAAM,CAAC;;QAE/C,CAAC;MACF;KAED6W,kBAAkB,GAClB;OACC,IAAI,CAACxf,OAAO,EAAE,CAACwf,kBAAkB,EAAE;OACnC,IAAI,CAACjT,wBAAwB,EAAE;OAE/B,IAAI,IAAI,CAACxI,QAAQ,CAAC,kBAAkB,CAAC,EACrC;SACC,IAAI,CAACC,YAAY,EAAE,CAAC6Z,aAAa,EAAE;;MAEpC;KAED4B,cAAc,GACd;OACC,MAAMlpB,IAAI,GAAG;SAAEQ,EAAE,EAAE,IAAI,CAACiJ,OAAO,EAAE,CAACnG,cAAc;QAAI;OACpD,MAAM2V,MAAM,GAAG,IAAI,CAACuM,eAAe,EAAE,CAACvb,SAAS,EAAE;OACjDjK,IAAI,CAAC,IAAI,CAAComB,YAAY,EAAE,CAAC,GAAG,QAAQ;OACpCpmB,IAAI,CAAC,IAAI,CAACyoB,YAAY,EAAE,CAAC,GAAG,IAAI,CAACA,YAAY,EAAE,IAAIxP,MAAM,GAAGA,MAAM,CAAC,IAAI,CAACwP,YAAY,EAAE,CAAC,GAAG,GAAG;OAC7F,IAAI,CAACZ,WAAW,CAAC,MAAM,EAAE7nB,IAAI,CAAC;MAC9B;KAEDmpB,YAAY,GACZ;OACC,MAAMlQ,MAAM,GAAG,IAAI,CAACuM,eAAe,EAAE,CAACvb,SAAS,EAAE;OACjD,MAAMmf,YAAY,GAAG,IAAI,CAAC3f,OAAO,EAAE,CAACnG,cAAc,EAAE;OACpD,MAAMtD,IAAI,GAAG;SACZwJ,IAAI,EAAE4f,YAAY;SAClBlf,QAAQ,EAAE+O;QACV;OAED,IAAI,CAAC4O,WAAW,CAAC,MAAM,EAAE7nB,IAAI,CAAC;MAC9B;KAEDqpB,aAAa,CAAChkB,MAAM,EAAErF,IAAI,EAC1B;OACC,IAAI,CAAClE,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAACtF,IAAI,CAAC,EAChC;SACCA,IAAI,GAAG,EAAE;;OAGVA,IAAI,CAAC,IAAI,CAAComB,YAAY,EAAE,CAAC,GAAG/gB,MAAM;OAElC,IAAI,CAACwiB,WAAW,CAAC,MAAM,EAAE7nB,IAAI,CAAC;MAC9B;;CAGH;CACA;KACEwlB,eAAe,GACf;OACC,OAAO,IAAI,CAACzS,WAAW;MACvB;KAED0S,WAAW,GACX;OACC,OAAO,IAAI,CAAC9C,QAAQ;MACpB;KAED5jB,cAAc,GACd;OACC,OAAOjD,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACG,YAAY,EAAE,EAAE,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;MACjG;KAEDyqB,SAAS,GACT;OACC,OAAO,IAAI,CAAC9G,MAAM;MAClB;KAED+G,MAAM,CAAChW,GAAG,EACV;OACC,IAAI,CAACsU,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAEtU,GAAG,CAAC;MACtC;KAEDiW,SAAS,GACT;OACC,OAAO1tB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACG,YAAY,EAAE,EAAE,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;MAC5F;KAED4qB,aAAa,GACb;OACC,OAAO3tB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACG,YAAY,EAAE,EAAE,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC;MAChG;KAED4lB,gBAAgB,CAACjb,IAAI,EACrB;OACC,SAASkgB,wBAAwB,CAAC3rB,KAAK,EACvC;SACC,MAAMqL,MAAM,GAAGrL,KAAK,CAAC4rB,aAAa;SAClC7tB,EAAE,CAAC0T,KAAK,CAACoa,UAAU,EAAE,WAAW,EAAG,eAAc9tB,EAAE,CAACgS,UAAU,CAAC1E,MAAM,CAAE,YAAW,CAAC;;OAGpF,MAAMygB,YAAY,GAAGrgB,IAAI,CAACG,MAAM,CAAEC,GAAG,IAAK;SACzC,OACC9N,EAAE,CAACkH,GAAG,CAACC,IAAI,CAAC2G,GAAG,EAAE,SAAS,CAAC,KAAK,YAAY,IACzC,CAAC9N,EAAE,CAACkH,GAAG,CAAC/D,QAAQ,CAAC2K,GAAG,EAAE,gBAAgB,CAAC;QAE3C,CAAC;OAEF,IACC,CAAC9N,EAAE,CAACmD,QAAQ,CAACkd,QAAQ,CAAC6D,eAAe,EAAE,OAAO,CAAC,IAC5C6J,YAAY,CAACtmB,MAAM,KAAK,CAAC,IACzBzH,EAAE,CAACmD,QAAQ,CAAC4qB,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,CAACjrB,QAAQ,CAACC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAErE;SACC,MAAMirB,QAAQ,GAAGhuB,EAAE,CAAC4jB,GAAG,CAAC,IAAI,CAAC5gB,YAAY,EAAE,CAAC;SAC5C,MAAMirB,YAAY,GAAGjuB,EAAE,CAACmkB,SAAS,CAACljB,MAAM,CAAC,GAAGjB,EAAE,CAAC0jB,MAAM,CAACziB,MAAM,CAAC;SAC7D,MAAMitB,IAAI,GAAGF,QAAQ,CAACzJ,MAAM,GAAG0J,YAAY;SAC3C,MAAME,YAAY,GAAGnuB,EAAE,CAAC0jB,MAAM,CAAC,IAAI,CAACgK,SAAS,EAAE,CAAC;SAChD,IAAII,UAAU,GAAG,IAAI,CAACH,aAAa,EAAE;SACrC,MAAMS,cAAc,GAAGpuB,EAAE,CAAC8S,KAAK,CAAC,IAAI,CAAC9P,YAAY,EAAE,CAAC;SAEpD,IAAIorB,cAAc,EAClB;WACCpuB,EAAE,CAAC8S,KAAK,CAACgb,UAAU,EAAEM,cAAc,CAAC;;SAGrCpuB,EAAE,CAAC0T,KAAK,CAACoa,UAAU,EAAE,WAAW,EAAG,eAAc9tB,EAAE,CAACgS,UAAU,CAAC,IAAI,CAACD,kBAAkB,EAAE,CAAE,YAAW,CAAC;SAEtG/R,EAAE,CAACuiB,MAAM,CAAC,IAAI,CAACxQ,kBAAkB,EAAE,EAAE,QAAQ,EAAE6b,wBAAwB,CAAC;SACxE5tB,EAAE,CAACsB,IAAI,CAAC,IAAI,CAACyQ,kBAAkB,EAAE,EAAE,QAAQ,EAAE6b,wBAAwB,CAAC;SAEtE,IAAIxtB,MAAM,GAAG,IAAI,CAAC4C,YAAY,EAAE;SAChC,IAAIqrB,aAAa,GAAG,CAAC;SAErB,OAAOjuB,MAAM,GAAGA,MAAM,CAACkuB,aAAa,EACpC;WACC,MAAMC,gBAAgB,GAAGC,UAAU,CAACxuB,EAAE,CAAC0T,KAAK,CAACtT,MAAM,EAAE,aAAa,CAAC,CAAC;WACpE,MAAMquB,mBAAmB,GAAGD,UAAU,CAACxuB,EAAE,CAAC0T,KAAK,CAACtT,MAAM,EAAE,gBAAgB,CAAC,CAAC;WAE1E,IAAI,CAACsuB,KAAK,CAACH,gBAAgB,CAAC,EAC5B;aACCF,aAAa,IAAIE,gBAAgB;;WAGlC,IAAI,CAACG,KAAK,CAACD,mBAAmB,CAAC,EAC/B;aACCJ,aAAa,IAAII,mBAAmB;;;SAItC,IAAIP,IAAI,GAAG,CAAC,EACZ;WACCluB,EAAE,CAAC0T,KAAK,CAAC,IAAI,CAAC0N,QAAQ,EAAE,EAAE,YAAY,EAAG,GAAE4M,QAAQ,CAACtK,MAAM,GAAGwK,IAAI,GAAGC,YAAY,GAAGE,aAAc,IAAG,CAAC;UACrG,MACI,IAAIzb,IAAI,CAAC+b,GAAG,CAACT,IAAI,CAAC,KAAKD,YAAY,EACxC;;WAECjuB,EAAE,CAAC0T,KAAK,CAAC,IAAI,CAAC0N,QAAQ,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC;UAC3C,MAED;WACCphB,EAAE,CAAC0T,KAAK,CAAC,IAAI,CAAC0N,QAAQ,EAAE,EAAE,YAAY,EAAG,GAAE4M,QAAQ,CAACtK,MAAM,GAAG9Q,IAAI,CAAC+b,GAAG,CAACT,IAAI,CAAC,GAAGC,YAAY,GAAGE,aAAc,IAAG,CAAC;;SAGhHruB,EAAE,CAACkH,GAAG,CAACE,QAAQ,CAAC,IAAI,CAACpE,YAAY,EAAE,EAAE,sBAAsB,CAAC;SAE5D,IAAI,IAAI,CAAC4rB,cAAc,EAAE,IAAI,CAAC,EAC9B;WACC,IAAI,CAACC,UAAU,EAAE;;QAElB,MAED;SACC7uB,EAAE,CAAC0T,KAAK,CAAC,IAAI,CAAC0N,QAAQ,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC;;;SAG3CphB,EAAE,CAAC0T,KAAK,CAAC,IAAI,CAAC0N,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC;SAC1CoD,qBAAqB,CAAC,MAAM;WAC3BxkB,EAAE,CAAC0T,KAAK,CAAC,IAAI,CAAC0N,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC;UAC1C,CAAC;SAEF,IAAI,CAAC0N,UAAU,EAAE;SACjB9uB,EAAE,CAACkH,GAAG,CAACG,WAAW,CAAC,IAAI,CAACrE,YAAY,EAAE,EAAE,sBAAsB,CAAC;;MAEhE;KAED+oB,WAAW,CAACrU,MAAM,EAAExT,IAAI,EAAEoH,QAAQ,EAAEmM,GAAG,EACvC;OACC,IAAIhB,QAAQ;OAEZ,IAAI,CAACzW,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAACqR,MAAM,CAAC,EACrC;SACCA,MAAM,GAAG,KAAK;;OAGf,IAAI,CAAC1X,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAACtF,IAAI,CAAC,EAChC;SACCA,IAAI,GAAG,EAAE;;OAGV,MAAMqH,IAAI,GAAG,IAAI;OACjB,IAAI,CAACqgB,SAAS,EAAE;OAEhB,IAAI,CAAC5rB,EAAE,CAACyC,IAAI,CAACmV,QAAQ,CAACH,GAAG,CAAC,EAC1B;SACCA,GAAG,GAAG,EAAE;;OAGT,IAAI,CAACoU,OAAO,EAAE,CAACrU,OAAO,CAACC,GAAG,EAAEC,MAAM,EAAExT,IAAI,EAAE,EAAE,EAAE,YAAW;SACxDlE,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,6BAA6B,EAAE,CAACsK,IAAI,CAAC,CAAC;SAC/DA,IAAI,CAACoC,OAAO,EAAE,CAAC2C,KAAK,EAAE;SACtBmG,QAAQ,GAAG,IAAI,CAAC6D,WAAW,EAAE;SAE7B/O,IAAI,CAACygB,UAAU,EAAE,CAACC,eAAe,CAAC,IAAI,CAACjpB,YAAY,EAAE,CAAC;SACtDuI,IAAI,CAACygB,UAAU,EAAE,CAACE,cAAc,CAAC,IAAI,CAAC7R,WAAW,EAAE,CAAC;SACpD9O,IAAI,CAACygB,UAAU,EAAE,CAACG,cAAc,CAAC1V,QAAQ,CAAC;SAC1ClL,IAAI,CAACygB,UAAU,EAAE,CAACI,cAAc,CAAC,IAAI,CAAC3R,WAAW,EAAE,CAAC;SACpDlP,IAAI,CAACygB,UAAU,EAAE,CAACK,gBAAgB,CAAC,IAAI,CAAC1R,aAAa,EAAE,CAAC;SACxDpP,IAAI,CAACygB,UAAU,EAAE,CAACM,gBAAgB,CAAC,IAAI,CAAC5R,aAAa,EAAE,CAAC;SACxDnP,IAAI,CAACygB,UAAU,EAAE,CAACO,kBAAkB,CAAC,IAAI,CAACzR,eAAe,EAAE,CAAC;SAE5DvP,IAAI,CAACod,gBAAgB,CAAClS,QAAQ,CAAC;SAE/BlL,IAAI,CAAC4c,eAAe,EAAE;SAEtB5c,IAAI,CAAC8c,sBAAsB,EAAE;SAC7B9c,IAAI,CAAC+c,0BAA0B,EAAE;SACjC/c,IAAI,CAACgd,iBAAiB,EAAE;SACxBhd,IAAI,CAACuc,cAAc,EAAE;SACrBvc,IAAI,CAACuf,sBAAsB,EAAE;SAC7Bvf,IAAI,CAACwf,qBAAqB,EAAE;SAC5Bxf,IAAI,CAACwe,mBAAmB,EAAE;SAC1Bxe,IAAI,CAACye,oBAAoB,EAAE;SAE3B,IAAIze,IAAI,CAACmG,QAAQ,CAAC,mBAAmB,CAAC,EACtC;WACCnG,IAAI,CAACygB,UAAU,EAAE,CAACQ,kBAAkB,CAAC,IAAI,CAACtR,cAAc,EAAE,CAAC;;SAG5D,IAAI3P,IAAI,CAACmG,QAAQ,CAAC,oBAAoB,CAAC,EACvC;WACCnG,IAAI,CAACkhB,YAAY,CAACtc,MAAM,EAAE;;SAG3B,IAAI5E,IAAI,CAACmG,QAAQ,CAAC,iBAAiB,CAAC,EACpC;WACCnG,IAAI,CAACmhB,YAAY,CAACvc,MAAM,EAAE;;SAG3B5E,IAAI,CAACyO,WAAW,EAAE;SAElBha,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,eAAe,EAAE,CAACsK,IAAI,CAAC,CAAC;SAEjD,IAAIvL,EAAE,CAACyC,IAAI,CAACwX,UAAU,CAAC3O,QAAQ,CAAC,EAChC;WACCA,QAAQ,EAAE;;SAGX,IAAIC,IAAI,CAACmG,QAAQ,CAAC,kBAAkB,CAAC,EACrC;WACCnG,IAAI,CAACoG,YAAY,EAAE,CAAC6Z,aAAa,EAAE;;QAEpC,CAAC;MACF;KAEDuD,kBAAkB,GAClB;OACC,OAAO/uB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACG,YAAY,EAAE,EAAE,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC;MACrG;KAEDisB,oBAAoB,GACpB;OACC,OAAOhvB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACG,YAAY,EAAE,EAAE,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,wBAAwB,CAAC,EAAE,IAAI,CAAC;MACvG;KAEDksB,kBAAkB,GAClB;OACC,MAAMnD,UAAU,GAAG,IAAI,CAACiD,kBAAkB,EAAE;OAC5C,MAAMG,YAAY,GAAG,IAAI,CAACF,oBAAoB,EAAE;OAEhD,IAAIhvB,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACopB,UAAU,CAAC,EACjC;SACC9rB,EAAE,CAACqH,WAAW,CAACykB,UAAU,EAAE,IAAI,CAAChpB,QAAQ,CAACC,GAAG,CAAC,2BAA2B,CAAC,CAAC;;OAG3E,IAAI/C,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACwsB,YAAY,CAAC,EACnC;SACClvB,EAAE,CAACqH,WAAW,CAAC6nB,YAAY,EAAE,IAAI,CAACpsB,QAAQ,CAACC,GAAG,CAAC,2BAA2B,CAAC,CAAC;;MAE7E;KAEDosB,mBAAmB,GACnB;OACC,MAAMrD,UAAU,GAAG,IAAI,CAACiD,kBAAkB,EAAE;OAC5C,MAAMG,YAAY,GAAG,IAAI,CAACF,oBAAoB,EAAE;OAEhD,IAAIhvB,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACopB,UAAU,CAAC,EACjC;SACC9rB,EAAE,CAACoH,QAAQ,CAAC0kB,UAAU,EAAE,IAAI,CAAChpB,QAAQ,CAACC,GAAG,CAAC,2BAA2B,CAAC,CAAC;;OAGxE,IAAI/C,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACwsB,YAAY,CAAC,EACnC;SACClvB,EAAE,CAACoH,QAAQ,CAAC8nB,YAAY,EAAE,IAAI,CAACpsB,QAAQ,CAACC,GAAG,CAAC,2BAA2B,CAAC,CAAC;;MAE1E;KAEDqsB,gBAAgB,GAChB;OACC,MAAM1hB,IAAI,GAAG,IAAI,CAACC,OAAO,EAAE,CAACA,OAAO,EAAE;OACrC,KAAK,IAAIsP,CAAC,GAAG,CAAC,EAAEoS,CAAC,GAAG3hB,IAAI,CAACjG,MAAM,EAAEwV,CAAC,GAAGoS,CAAC,EAAEpS,CAAC,EAAE,EAC3C;SACCvP,IAAI,CAACuP,CAAC,CAAC,CAACmS,gBAAgB,EAAE;;MAE3B;KAEDnU,WAAW,GACX;OACC,OAAO,IAAI,CAAC8M,QAAQ;MACpB;;CAGH;CACA;KACEsB,QAAQ,GACR;OACC,OAAO,IAAI,CAAC5C,KAAK;MACjB;;CAGH;CACA;KACEoF,OAAO,GACP;OACC,IAAI,CAAC3nB,IAAI,GAAG,IAAI,CAACA,IAAI,IAAI,IAAIlE,EAAE,CAACE,IAAI,CAACmW,IAAI,CAAC,IAAI,CAAC;OAE/C,OAAO,IAAI,CAACnS,IAAI;MAChB;;CAGH;CACA;KACE8nB,UAAU,GACV;OACC,IAAI,CAACxF,OAAO,GAAG,IAAI,CAACA,OAAO,IAAI,IAAIxmB,EAAE,CAACE,IAAI,CAACovB,OAAO,CAAC,IAAI,CAAC;OAExD,OAAO,IAAI,CAAC9I,OAAO;MACnB;KAED+I,gBAAgB,CAACrtB,IAAI,EACrB;OACC,OACClC,EAAE,CAACmD,QAAQ,CAACjB,IAAI,EAAE,IAAI,CAACY,QAAQ,CAACC,GAAG,CAAC,qBAAqB,CAAC,CAAC;MAE5D;KAEDysB,kBAAkB,CAACttB,IAAI,EACvB;OACC,OACClC,EAAE,CAACmD,QAAQ,CAACjB,IAAI,EAAE,IAAI,CAACY,QAAQ,CAACC,GAAG,CAAC,uBAAuB,CAAC,CAAC;MAE9D;KAEDwlB,iBAAiB,GACjB;OACC,MAAMhd,IAAI,GAAG,IAAI;OACjB,IAAI8G,IAAI;OAERrS,EAAE,CAACsB,IAAI,CAAC,IAAI,CAAC0B,YAAY,EAAE,EAAE,OAAO,EAAGf,KAAK,IAAK;SAChDoQ,IAAI,GAAGrS,EAAE,CAACuN,UAAU,CAACtL,KAAK,CAACqL,MAAM,EAAE;WAAEmiB,GAAG,EAAE;UAAM,EAAE,IAAI,EAAE,KAAK,CAAC;SAE9D,IAAIpd,IAAI,IAAI9G,IAAI,CAACgkB,gBAAgB,CAACld,IAAI,CAAC,IAAI,CAAC9G,IAAI,CAAC2H,oBAAoB,EACrE;WACC,MAAMwc,iBAAiB,GAAG,IAAI1vB,EAAE,CAAC+lB,KAAK,CAAC4J,SAAS,CAAC;aAChDzrB,IAAI,EAAE;eACLohB,IAAI,EAAE/Z,IAAI;eACVqkB,UAAU,EAAE5vB,EAAE,CAACkE,IAAI,CAACmO,IAAI,EAAE,MAAM;;YAEjC,CAAC;WACFrS,EAAE,CAAC+lB,KAAK,CAACC,YAAY,CAAC6J,IAAI,CAAC,2BAA2B,EAAEH,iBAAiB,CAAC;WAC1E,IAAIA,iBAAiB,CAACI,kBAAkB,EAAE,EAC1C;aACC;;WAEDvkB,IAAI,CAAC2H,oBAAoB,GAAG,KAAK;WACjC3H,IAAI,CAACwkB,sBAAsB,CAAC1d,IAAI,EAAEpQ,KAAK,CAAC;;QAEzC,CAAC;MACF;KAED+tB,cAAc,GACd;OACC,IAAI,CAACrJ,UAAU,GAAG,IAAI;MACtB;KAEDsJ,eAAe,GACf;OACC,IAAI,CAACtJ,UAAU,GAAG,KAAK;MACvB;KAEDA,UAAU,GACV;OACC,OAAO,IAAI,CAACA,UAAU;MACtB;KAEDuJ,yBAAyB,CAAClrB,IAAI,EAC9B;OACC,OAAOhF,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACS,aAAa,CACjC,IAAI,CAACL,YAAY,EAAE,EAClB,IAAG,IAAI,CAACiL,KAAK,EAAG,kBAAiBjJ,IAAK,IAAG,EAC1C,IAAI,CACJ;MACD;KAEDmrB,eAAe,CAACnrB,IAAI,EACpB;OACC,MAAM2P,OAAO,GAAG,IAAI,CAACjD,QAAQ,CAAC,iBAAiB,CAAC;OAEhD,OAAOpK,OAAO,CAACtC,IAAI,CAAC,IAAIA,IAAI,IAAI2P,OAAO,GAAGA,OAAO,CAAC3P,IAAI,CAAC,GAAG,IAAI;MAC9D;KAEDorB,WAAW,CAAChd,KAAK,EACjB;OACC,MAAMid,UAAU,GAAG,IAAI,CAACC,UAAU,EAAE,CAAC,CAAC,CAAC,CACrCC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC9oB,MAAM;OAEpD,OAAQ2L,KAAK,GAAGid,UAAU;MAC1B;KAEDG,gBAAgB,CAACpd,KAAK,EACtB;OACCA,KAAK,GAAG,IAAI,CAACgd,WAAW,CAAChd,KAAK,CAAC;OAE/B,OAAO,IAAI,CAACkd,UAAU,EAAE,CACtBG,MAAM,CAAC,CAACC,WAAW,EAAE5iB,GAAG,KAAK;SAC7B,IAAI,CAACA,GAAG,CAAC0G,SAAS,CAACC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC3G,GAAG,CAAC0G,SAAS,CAACC,QAAQ,CAAC,qBAAqB,CAAC,EACrG;WACCic,WAAW,CAACnoB,IAAI,CAACuF,GAAG,CAACxI,QAAQ,CAAC8N,KAAK,CAAC,CAAC;;SAGtC,OAAOsd,WAAW;QAClB,EAAE,EAAE,CAAC;MACP;KAEDJ,UAAU,GACV;OACC,MAAM5iB,IAAI,GAAG,EAAE,CAACijB,KAAK,CAACpc,IAAI,CAAC,IAAI,CAAC6M,QAAQ,EAAE,CAAC1T,IAAI,CAAC;OAChD,MAAM8T,UAAU,GAAG,IAAI,CAACxe,YAAY,EAAE,CAACsrB,aAAa,CAAC7U,aAAa,CAAC,4BAA4B,CAAC;OAEhG,IAAI+H,UAAU,EACd;SACC9T,IAAI,CAACnF,IAAI,CAACiZ,UAAU,CAAC9T,IAAI,CAAC,CAAC,CAAC,CAAC;;OAG9B,OAAOA,IAAI;MACX;KAEDkjB,WAAW,GACX;OACC,OAAO,IAAI,CAACN,UAAU,EAAE,CAAChkB,IAAI,CAAEwB,GAAG,IAAK9N,EAAE,CAACmD,QAAQ,CAAC2K,GAAG,EAAE,qBAAqB,CAAC,CAAC;MAC/E;KAEDsb,kBAAkB,GAClB;OACC,IAAI,IAAI,CAACwH,WAAW,EAAE,EACtB;SACC;;OAGD,EAAE,CAACD,KAAK,CAACpc,IAAI,CAAC,IAAI,CAAC+b,UAAU,EAAE,CAAC,CAAC,CAAC,CAAChrB,QAAQ,CAAC,CAACmD,OAAO,CAAC,UAAS4J,IAAI,EAAEe,KAAK,EAAE;SAC1E,IAAIf,IAAI,CAACmC,SAAS,CAACC,QAAQ,CAAC,0BAA0B,CAAC,EACvD;WACC,IAAI,CAACoc,mBAAmB,CAACzd,KAAK,CAAC;;QAEhC,EAAE,IAAI,CAAC;OAER,IAAI,IAAI,CAAC1B,QAAQ,CAAC,sBAAsB,CAAC,EACzC;SACC,IAAI,CAAC4X,SAAS,EAAE,CAAC3nB,OAAO,EAAE;SAC1B,IAAI,CAAC2nB,SAAS,EAAE,CAAC7oB,IAAI,CAAC,IAAI,CAAC;;MAE5B;KAEDqwB,iBAAiB,CAACnc,OAAO,EACzB;OACC,IAAI3U,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAAC8L,OAAO,CAAC,EAC5B;SACC,MAAM3M,OAAO,GAAG,IAAI,CAAC4M,cAAc,EAAE;SACrC,MAAMvU,OAAO,GAAG,CACf;WACCkJ,MAAM,EAAEvB,OAAO,CAACilB,SAAS,CAAC,0BAA0B,CAAC;WACrD8D,cAAc,EAAEpc;UAChB,CACD;SAED3M,OAAO,CAACgpB,KAAK,CAAC3wB,OAAO,EAAE,MAAM;WAC5B,IAAI,CAAC0rB,WAAW,EAAE;UAClB,CAAC;;MAEH;KAEDkF,iBAAiB,GACjB;OACC,MAAMtc,OAAO,GAAG,EAAE,CAACgc,KAAK,CAACpc,IAAI,CAAC,IAAI,CAAC2c,OAAO,EAAE,CAACX,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;OAEtF,OAAO5b,OAAO,CAAC8b,MAAM,CAAC,CAACU,GAAG,EAAEvgB,MAAM,KAAK;SACtC,IACC5Q,EAAE,CAACmD,QAAQ,CAACyN,MAAM,EAAE,wBAAwB,CAAC,IAC1C,CAAC5Q,EAAE,CAACmD,QAAQ,CAACyN,MAAM,EAAE,yBAAyB,CAAC,IAC/C,CAAC5Q,EAAE,CAACmD,QAAQ,CAACyN,MAAM,EAAE,uBAAuB,CAAC,EAEjD;WACCugB,GAAG,CAAC5oB,IAAI,CAACqI,MAAM,CAAC+L,OAAO,CAAC3X,IAAI,CAAC;;SAG9B,OAAOmsB,GAAG;QACV,EAAE,EAAE,CAAC;MACN;KAEDN,mBAAmB,CAACzd,KAAK,EACzB;OACC,MAAMxC,MAAM,GAAG,IAAI,CAAC4f,gBAAgB,CAACpd,KAAK,CAAC;OAC3C,MAAMge,SAAS,GAAGxgB,MAAM,CAAC,CAAC,CAAC,CAACkU,WAAW;OAEvC,MAAMuM,OAAO,GAAGzgB,MAAM,CAAC5C,GAAG,CAAEqE,IAAI,IAAK;SACpC,OAAOrS,EAAE,CAAC0jB,MAAM,CAACrR,IAAI,CAAC;QACtB,CAAC;OAEFzB,MAAM,CAACnI,OAAO,CAAC,UAAS4J,IAAI,EAAEG,SAAS,EAAE;SACxCH,IAAI,CAACqB,KAAK,CAAC4d,QAAQ,GAAI,GAAEF,SAAU,IAAG;SACtC/e,IAAI,CAACqB,KAAK,CAACZ,KAAK,GAAI,GAAEse,SAAU,IAAG;SACnC/e,IAAI,CAACqB,KAAK,CAAC6d,SAAS,GAAI,GAAEF,OAAO,CAAC7e,SAAS,CAAE,IAAG;SAEhD,MAAM7G,KAAK,GAAG3L,EAAE,CAAC2L,KAAK,CAAC0G,IAAI,CAAC;SAE5B,MAAMmf,cAAc,GAAG,IAAI,CAACC,+BAA+B,CAACjf,SAAS,CAAC;SAEtE,IAAIgf,cAAc,EAClB;WACC,IAAIE,kBAAkB,GAAGC,QAAQ,CAAC3xB,EAAE,CAAC0T,KAAK,CAAC8d,cAAc,EAAE,MAAM,CAAC,CAAC;WACnE,IAAII,mBAAmB,GAAGD,QAAQ,CAAC3xB,EAAE,CAAC0T,KAAK,CAAC8d,cAAc,EAAE,OAAO,CAAC,CAAC;WAErEE,kBAAkB,GAAGhD,KAAK,CAACgD,kBAAkB,CAAC,GAAG,CAAC,GAAGA,kBAAkB;WACvEE,mBAAmB,GAAGlD,KAAK,CAACkD,mBAAmB,CAAC,GAAG,CAAC,GAAGA,mBAAmB;WAE1Evf,IAAI,CAACqB,KAAK,CAACvB,IAAI,GAAI,GAAEuf,kBAAkB,GAAGE,mBAAoB,IAAG;;SAGlEvf,IAAI,CAACmC,SAAS,CAACqd,GAAG,CAAC,wBAAwB,CAAC;SAC5Cxf,IAAI,CAACmC,SAAS,CAACqd,GAAG,CAAC,uBAAuB,CAAC;SAC3ClmB,KAAK,CAAC6I,SAAS,CAACqd,GAAG,CAAC,uBAAuB,CAAC;SAE5C,IAAI,IAAI,CAACtI,eAAe,EAAE,EAC1B;WACC,IAAI,CAACA,eAAe,EAAE,CAAC5Y,UAAU,CAAC0B,IAAI,CAAC;WACvC,IAAI,CAACkX,eAAe,EAAE,CAAC5Y,UAAU,CAAChF,KAAK,CAAC;;SAGzC3L,EAAE,CAAC6L,WAAW,CAACF,KAAK,EAAE0G,IAAI,CAAC;QAC3B,EAAE,IAAI,CAAC;OAER,IAAI,CAACuX,kBAAkB,CAAC,IAAI,CAACC,aAAa,EAAE,CAAC;MAC7C;KAEDiI,0BAA0B,GAC1B;OACC,MAAMzB,UAAU,GAAG,IAAI,CAACC,UAAU,EAAE,CAAC,CAAC,CAAC,CACrCC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC9oB,MAAM;OAEpD,MAAMsqB,eAAe,GAAG,EAAE,CAACpB,KAAK,CAACpc,IAAI,CAAC,IAAI,CAAC+b,UAAU,EAAE,CAAC,CAAC,CAAC,CAAChrB,QAAQ,CAAC,CAClEmrB,MAAM,CAAC,CAACC,WAAW,EAAEre,IAAI,EAAEe,KAAK,EAAEuB,OAAO,KAAK;SAC9C,IAAIqd,QAAQ;SACZ,IAAIZ,SAAS;SAEb,IAAIzc,OAAO,CAACvB,KAAK,GAAG,CAAC,CAAC,IAAIuB,OAAO,CAACvB,KAAK,GAAG,CAAC,CAAC,CAACoB,SAAS,CAACC,QAAQ,CAAC,wBAAwB,CAAC,EACzF;WACCud,QAAQ,GAAGL,QAAQ,CAAC3xB,EAAE,CAAC0T,KAAK,CAACiB,OAAO,CAACvB,KAAK,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;WACzDge,SAAS,GAAGO,QAAQ,CAAC3xB,EAAE,CAAC0T,KAAK,CAACiB,OAAO,CAACvB,KAAK,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;WAE3D4e,QAAQ,GAAGtD,KAAK,CAACsD,QAAQ,CAAC,GAAG,CAAC,GAAGA,QAAQ;WACzCZ,SAAS,GAAG1C,KAAK,CAAC0C,SAAS,CAAC,GAAG,CAAC,GAAGA,SAAS;WAE5CV,WAAW,CAACnoB,IAAI,CAAC;aAAE6K,KAAK,EAAEA,KAAK,GAAG,CAAC;aAAEjB,IAAI,EAAG6f,QAAQ,GAAGZ;YAAY,CAAC;;SAGrE,OAAOV,WAAW;QAClB,EAAE,EAAE,CAAC;OAEPqB,eAAe,CACbtpB,OAAO,CAAC,UAASvG,IAAI,EAAE;SACvB,MAAM0O,MAAM,GAAG,IAAI,CAAC4f,gBAAgB,CAACtuB,IAAI,CAACkR,KAAK,GAAGid,UAAU,CAAC;SAE7Dzf,MAAM,CAACnI,OAAO,CAAE4J,IAAI,IAAK;WACxB,IAAInQ,IAAI,CAACkR,KAAK,KAAK2e,eAAe,CAACA,eAAe,CAACtqB,MAAM,GAAG,CAAC,CAAC,CAAC2L,KAAK,EACpE;aACCf,IAAI,CAACqB,KAAK,CAACvB,IAAI,GAAI,GAAEjQ,IAAI,CAACiQ,IAAK,IAAG;;UAEnC,CAAC;QACF,EAAE,IAAI,CAAC;OAET,IAAI,CAACme,UAAU,EAAE,CACf7nB,OAAO,CAAEqF,GAAG,IAAK;SACjB,MAAM4V,MAAM,GAAG1jB,EAAE,CAAC0jB,MAAM,CAAC5V,GAAG,CAAC;SAC7B,MAAMyE,KAAK,GAAG,EAAE,CAACoe,KAAK,CAACpc,IAAI,CAACzG,GAAG,CAACxI,QAAQ,CAAC;SAEzCiN,KAAK,CAAC9J,OAAO,CAAE4J,IAAI,IAAK;WACvBA,IAAI,CAACqB,KAAK,CAAC6d,SAAS,GAAI,GAAE7N,MAAO,IAAG;UACpC,CAAC;QACF,CAAC;MACH;KAED+N,+BAA+B,CAACre,KAAK,EACrC;OACC,OAAO,EAAE,CAACud,KAAK,CAACpc,IAAI,CAAC,IAAI,CAAC+b,UAAU,EAAE,CAACld,KAAK,CAAC,CAAC9N,QAAQ,CAAC,CACrD2sB,WAAW,CAAC,CAACvB,WAAW,EAAEre,IAAI,KAAK;SACnC,IAAI,CAACqe,WAAW,IAAIre,IAAI,CAACmC,SAAS,CAACC,QAAQ,CAAC,wBAAwB,CAAC,EACrE;WACCic,WAAW,GAAGre,IAAI;;SAGnB,OAAOqe,WAAW;QAClB,EAAE,IAAI,CAAC;MACT;KAED7G,aAAa,GACb;OACC,IAAIqI,UAAU,GAAG,CAAC;OAClB,MAAMV,cAAc,GAAG,IAAI,CAACC,+BAA+B,CAAC,CAAC,CAAC;OAE9D,IAAID,cAAc,EAClB;SACC,IAAIE,kBAAkB,GAAGC,QAAQ,CAAC3xB,EAAE,CAAC0T,KAAK,CAAC8d,cAAc,EAAE,MAAM,CAAC,CAAC;SACnE,IAAII,mBAAmB,GAAGJ,cAAc,CAAC3M,WAAW;SAEpD6M,kBAAkB,GAAGhD,KAAK,CAACgD,kBAAkB,CAAC,GAAG,CAAC,GAAGA,kBAAkB;SACvEE,mBAAmB,GAAGlD,KAAK,CAACkD,mBAAmB,CAAC,GAAG,CAAC,GAAGA,mBAAmB;SAE1EM,UAAU,GAAGR,kBAAkB,GAAGE,mBAAmB;;OAGtD,OAAOM,UAAU;MACjB;KAEDtI,kBAAkB,CAACja,MAAM,EACzB;OACC,MAAMyT,OAAO,GAAG,IAAI,CAACiG,QAAQ,EAAE,CAACpH,UAAU,EAAE;OAC5C,MAAMkQ,UAAU,GAAG,IAAI,CAAC9I,QAAQ,EAAE,CAAC/F,aAAa,EAAE;OAElDF,OAAO,CAAC1P,KAAK,CAACvB,IAAI,GAAI,GAAExC,MAAO,IAAG;OAClCwiB,UAAU,CAACze,KAAK,CAACvB,IAAI,GAAI,GAAExC,MAAO,IAAG;MACrC;;CAGH;CACA;KACEyiB,YAAY,CAACxhB,MAAM,EACnB;OACC,IAAIyhB,UAAU,GAAG,IAAI;OACrB,IAAIC,MAAM,GAAG,IAAI;OAEjB,IAAItyB,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAACoH,MAAM,CAAC,EACjC;SACC0hB,MAAM,GAAG1hB,MAAM;SACf0hB,MAAM,CAACC,QAAQ,GAAG,IAAI,CAACC,cAAc,CAAC5hB,MAAM,CAAC;QAC7C,MAED;SACCyhB,UAAU,GAAG,IAAI,CAACnC,yBAAyB,CAACtf,MAAM,CAAC;SACnD0hB,MAAM,GAAG,IAAI,CAACnC,eAAe,CAACvf,MAAM,CAAC;;OAGtC,IAAI0hB,MAAM,KAAKhrB,OAAO,CAAC+qB,UAAU,CAAC,IAAI,CAACryB,EAAE,CAACmD,QAAQ,CAACkvB,UAAU,EAAE,IAAI,CAACvvB,QAAQ,CAACC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAACsvB,UAAU,CAAC,EAC9G;SACC/qB,OAAO,CAAC+qB,UAAU,CAAC,IAAIryB,EAAE,CAACoH,QAAQ,CAACirB,UAAU,EAAE,IAAI,CAACvvB,QAAQ,CAACC,GAAG,CAAC,WAAW,CAAC,CAAC;SAC9E,IAAI,CAAC6oB,SAAS,EAAE;SAEhB,MAAMrgB,IAAI,GAAG,IAAI;SAEjB,IAAI,CAACqJ,cAAc,EAAE,CAAC6d,OAAO,CAACH,MAAM,CAACI,OAAO,EAAEJ,MAAM,CAACK,UAAU,EAAE,MAAM;WACtEpnB,IAAI,CAACsgB,OAAO,EAAE,CAACrU,OAAO,CAAC8a,MAAM,CAACC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,YAAW;aACtEhnB,IAAI,CAACmC,IAAI,GAAG,IAAI;aAChBnC,IAAI,CAACygB,UAAU,EAAE,CAACE,cAAc,CAAC,IAAI,CAAC7R,WAAW,EAAE,CAAC;aACpD9O,IAAI,CAACygB,UAAU,EAAE,CAACG,cAAc,CAAC,IAAI,CAAC7R,WAAW,EAAE,CAAC;aACpD/O,IAAI,CAACygB,UAAU,EAAE,CAACK,gBAAgB,CAAC,IAAI,CAAC1R,aAAa,EAAE,CAAC;aACxDpP,IAAI,CAACygB,UAAU,EAAE,CAACM,gBAAgB,CAAC,IAAI,CAAC5R,aAAa,EAAE,CAAC;aAExDnP,IAAI,CAAC4c,eAAe,EAAE;aAEtB5c,IAAI,CAAC8c,sBAAsB,EAAE;aAC7B9c,IAAI,CAAC+c,0BAA0B,EAAE;aACjC/c,IAAI,CAACuc,cAAc,EAAE;aACrBvc,IAAI,CAACuf,sBAAsB,EAAE;aAC7Bvf,IAAI,CAACwf,qBAAqB,EAAE;aAC5Bxf,IAAI,CAACwe,mBAAmB,EAAE;aAC1Bxe,IAAI,CAACye,oBAAoB,EAAE;aAE3B,IAAIze,IAAI,CAACmG,QAAQ,CAAC,mBAAmB,CAAC,EACtC;eACCnG,IAAI,CAACme,eAAe,EAAE,CAACpnB,mBAAmB,EAAE;;aAG7C,IAAIiJ,IAAI,CAACmG,QAAQ,CAAC,iBAAiB,CAAC,EACpC;eACCnG,IAAI,CAACmhB,YAAY,CAACvc,MAAM,EAAE;;aAG3B,IAAI5E,IAAI,CAACmG,QAAQ,CAAC,oBAAoB,CAAC,EACvC;eACCnG,IAAI,CAACkhB,YAAY,CAACtc,MAAM,EAAE;;aAG3BnQ,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,mBAAmB,EAAE,CAACqxB,MAAM,EAAE/mB,IAAI,CAAC,CAAC;aAC7DvL,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,eAAe,EAAE,CAACsK,IAAI,CAAC,CAAC;aACjDA,IAAI,CAACyO,WAAW,EAAE;YAClB,CAAC;UACF,CAAC;;MAEH;KAEDwY,cAAc,CAACF,MAAM,EACrB;OACC,IAAI7a,GAAG,GAAGxW,MAAM,CAAC+lB,QAAQ,CAAChK,QAAQ,EAAE;OAEpC,IAAI,SAAS,IAAIsV,MAAM,EACvB;SACC7a,GAAG,GAAGzX,EAAE,CAACyY,IAAI,CAACma,aAAa,CAACnb,GAAG,EAAE;WAAEob,EAAE,EAAEP,MAAM,CAACI;UAAS,CAAC;;OAGzD,IAAI,YAAY,IAAIJ,MAAM,EAC1B;SACC7a,GAAG,GAAGzX,EAAE,CAACyY,IAAI,CAACma,aAAa,CAACnb,GAAG,EAAE;WAAEqb,KAAK,EAAER,MAAM,CAACK;UAAY,CAAC;;OAG/D,OAAOlb,GAAG;MACV;KAEDsY,sBAAsB,CAACuC,MAAM,EAAErwB,KAAK,EACpC;OACCA,KAAK,CAACwL,cAAc,EAAE;OAEtB,IAAI,CAAC2kB,YAAY,CAACpyB,EAAE,CAACkE,IAAI,CAACouB,MAAM,EAAE,MAAM,CAAC,CAAC;MAC1C;KAEDvR,WAAW,GACX;OACC,OAAO/gB,EAAE,CAACE,IAAI,CAAC8gB,QAAQ;MACvB;KAEDwH,mBAAmB,GACnB;OACC,IAAI,CAACkE,YAAY,GAAG,IAAI1sB,EAAE,CAACE,IAAI,CAAC6yB,YAAY,CAAC,IAAI,CAAC;MAClD;KAEDtK,mBAAmB,GACnB;OACC,IAAI,CAACgE,YAAY,GAAG,IAAIzsB,EAAE,CAACE,IAAI,CAACmP,YAAY,CAAC,IAAI,CAAC;MAClD;;CAGH;CACA;KACEma,eAAe,GACf;OACC,OAAO,IAAI,CAACkD,YAAY;MACxB;;CAGH;CACA;KACEnD,eAAe,GACf;OACC,OAAO,IAAI,CAACkD,YAAY;MACxB;KAEDuG,wBAAwB,GACxB;OACC,OAAO,IAAI,CAACtN,qBAAqB,IAAI,EAAE;MACvC;;CAGH;CACA;KACE9Q,cAAc,GACd;OACC,OAAO,IAAI,CAAC4Q,WAAW;MACvB;KAED2F,qBAAqB,GACrB;OACC,MAAM8H,aAAa,GAAGjzB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACG,YAAY,EAAE,EAAE,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,yBAAyB,CAAC,CAAC;OAEjH,OAAOkwB,aAAa,CAACjlB,GAAG,CAAEtF,OAAO,IAAK;SACrC,OAAO,IAAI1I,EAAE,CAACE,IAAI,CAACugB,OAAO,CAAC/X,OAAO,CAAC;QACnC,CAAC;MACF;KAEDiiB,2BAA2B,GAC3B;OACC,IAAI,CAACQ,qBAAqB,EAAE,CAAC1iB,OAAO,CAAEC,OAAO,IAAK;SACjDA,OAAO,CAAC8I,OAAO,EAAE,CAAC7O,OAAO,GAAG,IAAI;QAChC,CAAC;MACF;KAEDsoB,6BAA6B,GAC7B;OACC,IAAI,CAACE,qBAAqB,EAAE,CAAC1iB,OAAO,CAAEC,OAAO,IAAK;SACjDA,OAAO,CAAC8I,OAAO,EAAE,CAAC7O,OAAO,GAAG,KAAK;QACjC,CAAC;MACF;KAEDsnB,wBAAwB,GACxB;OACC,MAAMiJ,KAAK,GAAG,IAAI,CAACvlB,OAAO,EAAE,CAACwlB,YAAY,EAAE,CAACtlB,MAAM,CAAEC,GAAG,IAAK;SAC3D,OAAOA,GAAG,CAACC,OAAO,EAAE,IAAIzG,OAAO,CAACwG,GAAG,CAACslB,WAAW,EAAE,CAAC;QAClD,CAAC,CAAC3rB,MAAM;OAET,MAAMsW,QAAQ,GAAG,IAAI,CAACpQ,OAAO,EAAE,CAACC,WAAW,EAAE,CAACC,MAAM,CAAEC,GAAG,IAAK;SAC7D,OAAOA,GAAG,CAACC,OAAO,EAAE;QACpB,CAAC,CAACtG,MAAM;OAET,IAAIyrB,KAAK,GAAG,CAAC,IAAInV,QAAQ,GAAG,CAAC,IAAImV,KAAK,KAAKnV,QAAQ,EACnD;SACC,IAAI,CAAC4M,2BAA2B,EAAE;QAClC,MAED;SACC,IAAI,CAACM,6BAA6B,EAAE;;OAGrC,IAAIlN,QAAQ,GAAG,CAAC,IAAIA,QAAQ,GAAGmV,KAAK,EACpC;SACC,IAAI,CAAC9H,+BAA+B,EAAE;QACtC,MAED;SACC,IAAI,CAACE,6BAA6B,EAAE;;MAErC;KAEDxD,cAAc,GACd;OACC,MAAMvc,IAAI,GAAG,IAAI;OAEjB,IAAI,CAAC4f,qBAAqB,EAAE,CAAC1iB,OAAO,CAAEC,OAAO,IAAK;SACjDA,OAAO,CAACqY,WAAW,EAAE,CAAC8Q,GAAG,CACxBnpB,OAAO,CAAC8I,OAAO,EAAE,EACjB,QAAQ,EACRjG,IAAI,CAAC8nB,gBAAgB,EACrB9nB,IAAI,CACJ;QACD,CAAC;MACF;KAED8nB,gBAAgB,CAACpxB,KAAK,EACtB;OACCA,KAAK,CAACwL,cAAc,EAAE;OAEtB,IAAI,CAAC6lB,kBAAkB,EAAE;OACzB,IAAI,CAAChI,6BAA6B,EAAE;MACpC;KAEDgI,kBAAkB,GAClB;OACC,IAAI,CAAC,IAAI,CAAC3lB,OAAO,EAAE,CAAC4lB,aAAa,EAAE,KAC9B,IAAI,CAACvI,aAAa,KAAK,QAAQ,IAAI,CAAC,IAAI,CAACA,aAAa,CAAC,EAC5D;SACC,IAAI,CAACrd,OAAO,EAAE,CAACid,SAAS,EAAE;SAC1B,IAAI,CAACD,2BAA2B,EAAE;SAClC,IAAI,CAACb,kBAAkB,EAAE;SACzB9pB,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,uBAAuB,EAAE,CAAC,IAAI,CAAC,CAAC;QACzD,MAED;SACC,IAAI,CAAC0M,OAAO,EAAE,CAACud,WAAW,EAAE;SAC5B,IAAI,CAACD,6BAA6B,EAAE;SACpC,IAAI,CAAClB,mBAAmB,EAAE;SAC1B/pB,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,yBAAyB,EAAE,CAAC,IAAI,CAAC,CAAC;;OAG5D,OAAO,IAAI,CAAC+pB,aAAa;OAEzB,IAAI,CAACD,qBAAqB,EAAE;MAC5B;KAEDzC,0BAA0B,GAC1B;OACC,MAAM/c,IAAI,GAAG,IAAI;OAEjB,IAAI,CAACoP,aAAa,EAAE,CAAC6Y,QAAQ,EAAE,CAAC/qB,OAAO,CAAEC,OAAO,IAAK;SACpDA,OAAO,CAACqY,WAAW,EAAE,CAAC8Q,GAAG,CACxBnpB,OAAO,CAAC8I,OAAO,EAAE,EACjB,OAAO,EACPjG,IAAI,CAACkoB,sBAAsB,EAC3BloB,IAAI,CACJ;QACD,CAAC;MACF;KAED8c,sBAAsB,GACtB;OACC,MAAM9c,IAAI,GAAG,IAAI;OAEjB,IAAI,CAACmP,aAAa,EAAE,CAACqG,WAAW,EAAE,CAAC8Q,GAAG,CACrC,IAAI,CAACnX,aAAa,EAAE,CAAClJ,OAAO,EAAE,EAC9B,OAAO,EACPjG,IAAI,CAACmoB,kBAAkB,EACvBnoB,IAAI,CACJ;MACD;KAED4c,eAAe,GACf;OACC,MAAMnH,QAAQ,GAAG,IAAI,CAACD,WAAW,EAAE;OACnC,MAAM4S,cAAc,GAAG,IAAI,CAACjiB,QAAQ,CAAC,qBAAqB,CAAC;OAC3D,MAAMkiB,qBAAqB,GAAG,IAAI,CAACliB,QAAQ,CAAC,yBAAyB,CAAC;OAEtE,IAAI,CAAC/D,OAAO,EAAE,CAACwlB,YAAY,EAAE,CAAC1qB,OAAO,CAAC,UAASC,OAAO,EAAE;SACvDirB,cAAc,IAAI3S,QAAQ,CAAC6Q,GAAG,CAACnpB,OAAO,CAAC8I,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAACqiB,aAAa,EAAE,IAAI,CAAC;SACpFnrB,OAAO,CAACorB,gBAAgB,EAAE,IAAI9S,QAAQ,CAAC6Q,GAAG,CAACnpB,OAAO,CAAC8I,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,CAACuiB,cAAc,EAAE,IAAI,CAAC;SACpGrrB,OAAO,CAACsrB,gBAAgB,EAAE,IAAIhT,QAAQ,CAAC6Q,GAAG,CAACnpB,OAAO,CAACsrB,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,CAACC,wBAAwB,EAAE,IAAI,CAAC;SACpHL,qBAAqB,IAAIlrB,OAAO,CAACwrB,iBAAiB,EAAE,IAAIlT,QAAQ,CAAC6Q,GAAG,CAACnpB,OAAO,CAACwrB,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,CAACC,sBAAsB,EAAE,IAAI,CAAC;QAC7I,EAAE,IAAI,CAAC;MACR;KAEDA,sBAAsB,CAAClyB,KAAK,EAC5B;OACCA,KAAK,CAACwL,cAAc,EAAE;OACtBxL,KAAK,CAAC+d,eAAe,EAAE;OAEvB,MAAMlS,GAAG,GAAG,IAAI,CAACH,OAAO,EAAE,CAAC5K,GAAG,CAACd,KAAK,CAAC4rB,aAAa,CAAC;OACnD/f,GAAG,CAACsmB,eAAe,EAAE;OAErB,IAAItmB,GAAG,CAACumB,QAAQ,EAAE,EAClB;SACC,IAAI,CAACzf,cAAc,EAAE,CAAC0f,kBAAkB,CAAC,IAAI,CAAC3mB,OAAO,EAAE,CAAC4mB,qBAAqB,EAAE,CAAC;QAChF,MAED;SACC,IAAI,CAAC3f,cAAc,EAAE,CAAC4f,eAAe,CAAC,IAAI,CAAC7mB,OAAO,EAAE,CAAC8mB,kBAAkB,EAAE,CAAC;;OAG3Ez0B,EAAE,CAAC8B,SAAS,CAACue,QAAQ,CAACE,IAAI,EAAE,OAAO,CAAC;MACpC;KAED0T,wBAAwB,CAAChyB,KAAK,EAC9B;OACC,MAAM6L,GAAG,GAAG,IAAI,CAACH,OAAO,EAAE,CAAC5K,GAAG,CAACd,KAAK,CAACqL,MAAM,CAAC;OAC5CrL,KAAK,CAACwL,cAAc,EAAE;OAEtB,IAAIK,GAAG,CAAC4mB,kBAAkB,EAAE,EAC5B;SACC5mB,GAAG,CAACshB,gBAAgB,EAAE;QACtB,MAED;SACCthB,GAAG,CAAC6mB,eAAe,EAAE;;MAEtB;KAEDZ,cAAc,CAAC9xB,KAAK,EACpB;OACCA,KAAK,CAACwL,cAAc,EAAE;OACtB,MAAMK,GAAG,GAAG,IAAI,CAACH,OAAO,EAAE,CAAC5K,GAAG,CAACd,KAAK,CAACqL,MAAM,CAAC;OAC5C,IAAIsnB,SAAS,GAAG,EAAE;OAElB,IAAI,CAAC9mB,GAAG,CAAC+mB,MAAM,EAAE,EACjB;SACCjS,YAAY,CAAC,IAAI,CAACkS,UAAU,CAAC;SAC7B,IAAI,CAACC,YAAY,GAAG,IAAI;SAExB,IACA;WACCH,SAAS,GAAG9mB,GAAG,CAACgmB,gBAAgB,EAAE;WAClC/yB,IAAI,CAAC6zB,SAAS,CAAC;UACf,CACD,OAAO7nB,GAAG,EACV;WACCioB,OAAO,CAACC,IAAI,CAACloB,GAAG,CAAC;;;MAGnB;KAED8mB,aAAa,CAAC5xB,KAAK,EACnB;OACC,MAAMizB,UAAU,GAAG,EAAE;OACrB,MAAMC,SAAS,GAAGl0B,MAAM,CAACm0B,YAAY,EAAE;OAEvC,IAAInzB,KAAK,CAACqL,MAAM,CAAC+nB,QAAQ,KAAK,OAAO,EACrC;SACCpzB,KAAK,CAACwL,cAAc,EAAE;;OAGvB,IAAIxL,KAAK,CAACqzB,QAAQ,IAAIH,SAAS,CAACnY,QAAQ,EAAE,CAACvV,MAAM,KAAK,CAAC,EACvD;SACC,IAAIxF,KAAK,CAACqzB,QAAQ,EAClB;WACCH,SAAS,CAACI,eAAe,EAAE;;SAG5B,IAAI,CAACT,UAAU,GAAG/f,UAAU,CAAC/U,EAAE,CAACuB,QAAQ,CAAC,YAAW;WACnD,IAAI,CAAC,IAAI,CAACwzB,YAAY,EACtB;aACCS,YAAY,CAACC,KAAK,CAAC,IAAI,EAAE,CAACxzB,KAAK,CAAC,CAAC;;WAElC,IAAI,CAAC8yB,YAAY,GAAG,KAAK;UACzB,EAAE,IAAI,CAAC,EAAEG,UAAU,CAAC;;OAGtB,SAASM,YAAY,CAACvzB,KAAK,EAC3B;SACC,IAAIyL,IAAI;SAAE,IAAII,GAAG;SAAE,IAAI4nB,mBAAmB;SAAE,IAAIC,GAAG;SAAE,IAAIC,GAAG;SAAE,IAC7DC,gBAAgB;SACjB,IAAIC,SAAS,GAAG,IAAI;SAEpB,IAAI7zB,KAAK,CAACqL,MAAM,CAAC+nB,QAAQ,KAAK,GAAG,IAAIpzB,KAAK,CAACqL,MAAM,CAAC+nB,QAAQ,KAAK,OAAO,EACtE;WACCvnB,GAAG,GAAG,IAAI,CAACH,OAAO,EAAE,CAAC5K,GAAG,CAACd,KAAK,CAACqL,MAAM,CAAC;WACtC,IAAIQ,GAAG,EACP;aACC+nB,gBAAgB,GAAG/nB,GAAG,CAACioB,mBAAmB,CAAC9zB,KAAK,CAACqL,MAAM,CAAC;aAExD,IAAItN,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACmzB,gBAAgB,CAAC,IAAI5zB,KAAK,CAACqL,MAAM,CAAC+nB,QAAQ,KAAK,IAAI,IAAIpzB,KAAK,CAACqL,MAAM,KAAKuoB,gBAAgB,EAC9G;eACCC,SAAS,GAAG91B,EAAE,CAACkE,IAAI,CAAC2xB,gBAAgB,EAAE,iBAAiB,CAAC,KAAK,MAAM;;aAGpE,IAAIC,SAAS,EACb;eACC,IAAIhoB,GAAG,CAACslB,WAAW,EAAE,EACrB;iBACC1lB,IAAI,GAAG,EAAE;iBAET,IAAI,CAACsoB,YAAY,GAAG,CAAC;iBAErB,IAAI,CAACroB,OAAO,EAAE,CAACA,OAAO,EAAE,CAAClF,OAAO,CAAC,UAASwtB,UAAU,EAAE7iB,KAAK,EAAE;mBAC5D,IAAI6iB,UAAU,KAAKnoB,GAAG,EACtB;qBACC,IAAI,CAACkoB,YAAY,GAAG5iB,KAAK;;kBAE1B,EAAE,IAAI,CAAC;iBAER,IAAI,CAAC8iB,SAAS,GAAG,IAAI,CAACA,SAAS,IAAI,IAAI,CAACF,YAAY;iBAEpD,IAAI/zB,KAAK,CAACqzB,QAAQ,EAClB;mBACCK,GAAG,GAAG/iB,IAAI,CAAC+iB,GAAG,CAAC,IAAI,CAACK,YAAY,EAAE,IAAI,CAACE,SAAS,CAAC;mBACjDN,GAAG,GAAGhjB,IAAI,CAACgjB,GAAG,CAAC,IAAI,CAACI,YAAY,EAAE,IAAI,CAACE,SAAS,CAAC;mBAEjD,OAAOP,GAAG,IAAIC,GAAG,EACjB;qBACCloB,IAAI,CAACnF,IAAI,CAAC,IAAI,CAACoF,OAAO,EAAE,CAACA,OAAO,EAAE,CAACgoB,GAAG,CAAC,CAAC;qBACxCA,GAAG,EAAE;;mBAGND,mBAAmB,GAAGhoB,IAAI,CAACpB,IAAI,CAAE5D,OAAO,IAAK;qBAC5C,OAAO,CAACA,OAAO,CAACytB,UAAU,EAAE;oBAC5B,CAAC;mBAEF,IAAIT,mBAAmB,EACvB;qBACChoB,IAAI,CAACjF,OAAO,CAAEC,OAAO,IAAK;uBACzBA,OAAO,CAAC0tB,MAAM,EAAE;sBAChB,CAAC;qBACF,IAAI,CAACpL,aAAa,GAAG,QAAQ;qBAC7BhrB,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,kBAAkB,EAAE,CAACyM,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC1D,MAED;qBACCA,IAAI,CAACjF,OAAO,CAAEC,OAAO,IAAK;uBACzBA,OAAO,CAAC2tB,QAAQ,EAAE;sBAClB,CAAC;qBACF,IAAI,CAACrL,aAAa,GAAG,UAAU;qBAC/BhrB,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,oBAAoB,EAAE,CAACyM,IAAI,EAAE,IAAI,CAAC,CAAC;;kBAE7D,MAEA,IAAII,GAAG,CAACqoB,UAAU,EAAE,EACpB;mBACC,IAAI,CAACnL,aAAa,GAAG,UAAU;mBAC/Bld,GAAG,CAACuoB,QAAQ,EAAE;mBACdr2B,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,mBAAmB,EAAE,CAAC6M,GAAG,EAAE,IAAI,CAAC,CAAC;kBAC1D,MAED;mBACC,IAAI,CAACkd,aAAa,GAAG,QAAQ;mBAC7Bld,GAAG,CAACsoB,MAAM,EAAE;mBACZp2B,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,iBAAiB,EAAE,CAAC6M,GAAG,EAAE,IAAI,CAAC,CAAC;;iBAG1D,IAAI,CAACid,qBAAqB,EAAE;iBAC5B,IAAI,CAACmL,SAAS,GAAG,IAAI,CAACF,YAAY;;eAGnC,IAAI,CAACM,UAAU,EAAE;eACjB,IAAI,CAACrM,wBAAwB,EAAE;;;;;MAKnC;KAEDqM,UAAU,GACV;OACC,IAAI,IAAI,CAAC3oB,OAAO,EAAE,CAACwoB,UAAU,EAAE,EAC/B;SACCn2B,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,yBAAyB,EAAE,CAAC,IAAI,CAAC,CAAC;SAC3D,IAAI,CAAC6oB,kBAAkB,EAAE;QACzB,MAED;SACC9pB,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,sBAAsB,EAAE,EAAE,CAAC;SACpD,IAAI,CAAC8oB,mBAAmB,EAAE;;MAE3B;KAEDpP,aAAa,GACb;OACC,OAAO,IAAI3a,EAAE,CAACE,IAAI,CAACq2B,UAAU,CAAC,IAAI,CAAC;MACnC;KAEDC,QAAQ,GACR;OACC,OAAOv1B,MAAM,CAAColB,OAAO,CAACoQ,KAAK;MAC3B;KAED7K,SAAS,GACT;OACC5rB,EAAE,CAACoH,QAAQ,CAAC,IAAI,CAACga,QAAQ,EAAE,EAAE,IAAI,CAACte,QAAQ,CAACC,GAAG,CAAC,gBAAgB,CAAC,CAAC;OACjE,IAAI,CAAC2zB,SAAS,EAAE,CAACvtB,IAAI,EAAE;OACvBnJ,EAAE,CAAC8U,aAAa,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC;MAC1C;KAEDkF,WAAW,GACX;OACCha,EAAE,CAACqH,WAAW,CAAC,IAAI,CAAC+Z,QAAQ,EAAE,EAAE,IAAI,CAACte,QAAQ,CAACC,GAAG,CAAC,gBAAgB,CAAC,CAAC;OACpE,IAAI,CAAC2zB,SAAS,EAAE,CAACrtB,IAAI,EAAE;OACvBrJ,EAAE,CAAC8U,aAAa,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC;MACzC;KAED2e,sBAAsB,CAACxxB,KAAK,EAC5B;OACCA,KAAK,CAACwL,cAAc,EAAE;OAEtB,MAAMlC,IAAI,GAAG,IAAI;OACjB,MAAM5D,IAAI,GAAG,IAAI,CAACgT,aAAa,EAAE,CAACsG,OAAO,CAAChf,KAAK,CAACqL,MAAM,CAAC;OAEvD,IAAI,CAAC3F,IAAI,CAACkZ,MAAM,EAAE,EAClB;SACC,IAAI,CAACjM,cAAc,EAAE,CAAC+hB,iBAAiB,EAAE;SAEzChvB,IAAI,CAACgZ,IAAI,EAAE;SACX,IAAI,CAACiL,SAAS,EAAE;SAEhB,IAAI,CAACC,OAAO,EAAE,CAACrU,OAAO,CAAC7P,IAAI,CAACsZ,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAW;WAC3E1V,IAAI,CAACmC,IAAI,GAAG,IAAI;WAChBnC,IAAI,CAACygB,UAAU,EAAE,CAACG,cAAc,CAAC,IAAI,CAAC7R,WAAW,EAAE,CAAC;WACpD/O,IAAI,CAACygB,UAAU,EAAE,CAACE,cAAc,CAAC,IAAI,CAAC7R,WAAW,EAAE,CAAC;WACpD9O,IAAI,CAACygB,UAAU,EAAE,CAACM,gBAAgB,CAAC,IAAI,CAAC5R,aAAa,EAAE,CAAC;WACxDnP,IAAI,CAACygB,UAAU,EAAE,CAACK,gBAAgB,CAAC,IAAI,CAAC1R,aAAa,EAAE,CAAC;WAExDpP,IAAI,CAAC4c,eAAe,EAAE;WACtB5c,IAAI,CAAC8c,sBAAsB,EAAE;WAC7B9c,IAAI,CAAC+c,0BAA0B,EAAE;WACjC/c,IAAI,CAACuc,cAAc,EAAE;WACrBvc,IAAI,CAACuf,sBAAsB,EAAE;WAC7Bvf,IAAI,CAACwf,qBAAqB,EAAE;WAC5Bxf,IAAI,CAACwe,mBAAmB,EAAE;WAC1Bxe,IAAI,CAACye,oBAAoB,EAAE;WAE3B,IAAIze,IAAI,CAACmG,QAAQ,CAAC,mBAAmB,CAAC,EACtC;aACCnG,IAAI,CAACme,eAAe,EAAE,CAACpnB,mBAAmB,EAAE;;WAG7C,IAAIiJ,IAAI,CAACmG,QAAQ,CAAC,iBAAiB,CAAC,EACpC;aACCnG,IAAI,CAACmhB,YAAY,CAACvc,MAAM,EAAE;;WAG3B,IAAI5E,IAAI,CAACmG,QAAQ,CAAC,oBAAoB,CAAC,EACvC;aACCnG,IAAI,CAACkhB,YAAY,CAACtc,MAAM,EAAE;;WAG3BxI,IAAI,CAACiZ,MAAM,EAAE;WACbrV,IAAI,CAACyO,WAAW,EAAE;WAElBha,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,eAAe,EAAE,CAACsK,IAAI,CAAC,CAAC;UACjD,CAAC;;MAEH;KAEDmoB,kBAAkB,CAACzxB,KAAK,EACxB;OACCA,KAAK,CAACwL,cAAc,EAAE;OAEtB,MAAMlC,IAAI,GAAG,IAAI;OACjB,MAAMoL,UAAU,GAAG,IAAI,CAAC+D,aAAa,EAAE;OAEvC/D,UAAU,CAACgK,IAAI,EAAE;OAEjB,IAAI,CAACkL,OAAO,EAAE,CAACrU,OAAO,CAACb,UAAU,CAACsK,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,YAAW;SAC3E1V,IAAI,CAACygB,UAAU,EAAE,CAAC4K,cAAc,CAAC,IAAI,CAACtc,WAAW,EAAE,CAAC;SACpD/O,IAAI,CAACygB,UAAU,EAAE,CAACM,gBAAgB,CAAC,IAAI,CAAC5R,aAAa,EAAE,CAAC;SACxDnP,IAAI,CAACygB,UAAU,EAAE,CAACK,gBAAgB,CAAC,IAAI,CAAC1R,aAAa,EAAE,CAAC;SAExDpP,IAAI,CAACoC,OAAO,EAAE,CAAC2C,KAAK,EAAE;SACtB/E,IAAI,CAAC4c,eAAe,EAAE;SAEtB5c,IAAI,CAAC8c,sBAAsB,EAAE;SAC7B9c,IAAI,CAAC+c,0BAA0B,EAAE;SACjC/c,IAAI,CAACuc,cAAc,EAAE;SACrBvc,IAAI,CAACuf,sBAAsB,EAAE;SAC7Bvf,IAAI,CAACwf,qBAAqB,EAAE;SAE5B,IAAIxf,IAAI,CAACmG,QAAQ,CAAC,kBAAkB,CAAC,EACrC;WACCnG,IAAI,CAACoG,YAAY,EAAE,CAAC6Z,aAAa,EAAE;;SAGpC,IAAIjgB,IAAI,CAACmG,QAAQ,CAAC,iBAAiB,CAAC,EACpC;WACCnG,IAAI,CAACmhB,YAAY,CAACvc,MAAM,EAAE;;SAG3B,IAAI5E,IAAI,CAACmG,QAAQ,CAAC,oBAAoB,CAAC,EACvC;WACCnG,IAAI,CAACkhB,YAAY,CAACtc,MAAM,EAAE;;SAG3B5E,IAAI,CAAC0f,6BAA6B,EAAE;SAEpCjrB,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,eAAe,EAAE,CAACsK,IAAI,CAAC,CAAC;QACjD,CAAC;MACF;KAED0N,SAAS,GACT;OACC,OAAOjZ,EAAE,CAACkE,IAAI,CACb,IAAI,CAAClB,YAAY,EAAE,EACnB,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,gBAAgB,CAAC,CACnC;MACD;KAED+pB,MAAM,CAAC5oB,IAAI,EAAEqF,MAAM,EACnB;OACC,IAAIstB,OAAO;OAAE,IAAIC,WAAW;OAAE,IAAIC,WAAW;OAAE,IAAIC,QAAQ;OAAE,IAAIC,QAAQ;OAAE,IAC1EC,YAAY;OAEb,IAAI,CAACl3B,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAACnC,IAAI,CAAC,EACnC;SACC;;OAGD8yB,QAAQ,GAAGh3B,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC0O,QAAQ,CAAC,IAAI,CAAC8P,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC;OACjE6V,QAAQ,GAAGj3B,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC0O,QAAQ,CAAC,IAAI,CAAC8P,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC;OACjE8V,YAAY,GAAGl3B,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACG,YAAY,EAAE,EAAE,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC;OAEtGmB,IAAI,GAAGlE,EAAE,CAAC4E,MAAM,CAAC,KAAK,EAAE;SAAEW,IAAI,EAAErB;QAAM,CAAC;OACvC4yB,WAAW,GAAG92B,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAACqB,IAAI,EAAE,IAAI,CAACpB,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,CAAC;OAC/E8zB,OAAO,GAAG72B,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAACqB,IAAI,EAAE,IAAI,CAACpB,QAAQ,CAACC,GAAG,CAAC,eAAe,CAAC,CAAC;OAC5Eg0B,WAAW,GAAG/2B,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAACqB,IAAI,EAAE,IAAI,CAACpB,QAAQ,CAACC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC;OAEtF,IAAIwG,MAAM,KAAK,IAAI,CAACzG,QAAQ,CAACC,GAAG,CAAC,kBAAkB,CAAC,EACpD;SACC,IAAI,CAAC4K,OAAO,EAAE,CAACwpB,OAAO,CAACN,OAAO,CAAC;SAC/B,IAAI,CAAC5L,6BAA6B,EAAE;;OAGrC,IAAI1hB,MAAM,KAAK,IAAI,CAACzG,QAAQ,CAACC,GAAG,CAAC,wBAAwB,CAAC,EAC1D;SACC/C,EAAE,CAACo3B,SAAS,CAACJ,QAAQ,CAAC;SACtB,IAAI,CAACrpB,OAAO,EAAE,CAACwpB,OAAO,CAACN,OAAO,CAAC;SAC/B,IAAI,CAAC5L,6BAA6B,EAAE;;OAGrC,IAAI1hB,MAAM,KAAK,IAAI,CAACzG,QAAQ,CAACC,GAAG,CAAC,kBAAkB,CAAC,EACpD;SACC/C,EAAE,CAACo3B,SAAS,CAACH,QAAQ,CAAC;SACtBj3B,EAAE,CAACo3B,SAAS,CAACJ,QAAQ,CAAC;SACtBC,QAAQ,CAACzxB,WAAW,CAACsxB,WAAW,CAAC,CAAC,CAAC,CAAC;SACpC,IAAI,CAACnpB,OAAO,EAAE,CAACwpB,OAAO,CAACN,OAAO,CAAC;;OAGhCK,YAAY,CAAClZ,SAAS,GAAG+Y,WAAW,CAAC/Y,SAAS;OAE9C,IAAI,CAACmK,eAAe,EAAE;OAEtB,IAAI,CAACE,sBAAsB,EAAE;OAC7B,IAAI,CAACC,0BAA0B,EAAE;OACjC,IAAI,CAACC,iBAAiB,EAAE;OACxB,IAAI,CAACT,cAAc,EAAE;OACrB,IAAI,CAACgD,sBAAsB,EAAE;OAC7B,IAAI,CAACC,qBAAqB,EAAE;OAC5B,IAAI,CAACxE,QAAQ,CAACpW,MAAM,EAAE;MACtB;KAEDyK,mBAAmB,GACnB;OACC,OAAO5a,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACG,YAAY,EAAE,EAAE,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,uBAAuB,CAAC,CAAC;MAChG;KAED8X,kBAAkB,GAClB;OACC,OAAO7a,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACG,YAAY,EAAE,EAAE,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,sBAAsB,CAAC,CAAC;MAC/F;KAED+nB,sBAAsB,GACtB;OACC,MAAMjU,gBAAgB,GAAG,IAAI,CAAC+D,mBAAmB,EAAE;OACnD,IAAIlN,IAAI;OAER,IAAI1N,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACgO,gBAAgB,CAAC,EACrC;SACCnJ,IAAI,GAAG,IAAI,CAACC,OAAO,EAAE;SACrBkJ,gBAAgB,CAACpO,OAAO,CAAEC,OAAO,IAAK;WACrC,IAAI1I,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACgG,OAAO,CAAC,EAC9B;aACCA,OAAO,CAAC6W,SAAS,GAAG7R,IAAI,CAAC2pB,iBAAiB,EAAE;;UAE7C,CAAC;;MAEH;KAEDtM,qBAAqB,GACrB;OACC,MAAMjU,eAAe,GAAG,IAAI,CAAC+D,kBAAkB,EAAE;OACjD,IAAInN,IAAI;OAER,IAAI1N,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACiO,eAAe,CAAC,EACpC;SACCpJ,IAAI,GAAG,IAAI,CAACC,OAAO,EAAE;SACrBmJ,eAAe,CAACrO,OAAO,CAAEC,OAAO,IAAK;WACpC,IAAI1I,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACgG,OAAO,CAAC,EAC9B;aACCA,OAAO,CAAC6W,SAAS,GAAG7R,IAAI,CAAC4pB,gBAAgB,EAAE;;UAE5C,CAAC;;MAEH;KAED5d,cAAc,GACd;OACC,OAAO,IAAI,CAAC6L,WAAW;MACvB;KAEDtX,KAAK,GACL;;OAEC,OAAO,IAAI,CAACsX,WAAW;MACvB;KAEDviB,YAAY,GACZ;OACC,OAAOhD,EAAE,CAAC,IAAI,CAAC0Z,cAAc,EAAE,CAAC;MAChC;KAED6d,UAAU,GACV;OACC,IAAI,CAAC,IAAI,CAACC,OAAO,EACjB;SACC,IAAI,CAACA,OAAO,GAAGx3B,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACG,YAAY,EAAE,EAAE,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,CAAC;;OAGhG,OAAO,IAAI,CAACy0B,OAAO;MACnB;KAED3M,mBAAmB,GACnB;OACC,MAAM2M,OAAO,GAAG,IAAI,CAACD,UAAU,EAAE;OAEjC,IAAIv3B,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAAC2uB,OAAO,CAAC,EAC5B;SACCA,OAAO,CAAC/uB,OAAO,CAAC,UAASC,OAAO,EAAE;WACjC1I,EAAE,CAACoH,QAAQ,CAACsB,OAAO,EAAE,IAAI,CAAC5F,QAAQ,CAACC,GAAG,CAAC,2BAA2B,CAAC,CAAC;UACpE,EAAE,IAAI,CAAC;;MAET;KAEDinB,oBAAoB,GACpB;OACC,MAAMwN,OAAO,GAAG,IAAI,CAACD,UAAU,EAAE;OAEjC,IAAIv3B,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAAC2uB,OAAO,CAAC,EAC5B;SACCA,OAAO,CAAC/uB,OAAO,CAAC,UAASC,OAAO,EAAE;WACjC1I,EAAE,CAACqH,WAAW,CAACqB,OAAO,EAAE,IAAI,CAAC5F,QAAQ,CAACC,GAAG,CAAC,2BAA2B,CAAC,CAAC;UACvE,EAAE,IAAI,CAAC;;MAET;KAEDgP,kBAAkB,GAClB;OACC,IAAI,CAAC,IAAI,CAACqU,eAAe,EACzB;SACC,IAAI,CAACA,eAAe,GAAGpmB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACG,YAAY,EAAE,EAAE,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC;;OAGtH,OAAO,IAAI,CAACqjB,eAAe;MAC3B;KAEDqR,UAAU,GACV;OACC,IAAI,CAAC,IAAI,CAACvR,OAAO,EACjB;SACC,IAAI,CAACA,OAAO,GAAGlmB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACG,YAAY,EAAE,EAAE,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC;;OAGtG,OAAO,IAAI,CAACmjB,OAAO;MACnB;KAEDwR,gBAAgB,GAChB;OACC,IAAI,CAAC,IAAI,CAACvR,aAAa,EACvB;SACC,IAAI,CAACA,aAAa,GAAGnmB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACG,YAAY,EAAE,EAAE,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC;;OAGlH,OAAO,IAAI,CAACojB,aAAa;MACzB;KAED/E,QAAQ,GACR;OACC,OAAOphB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACG,YAAY,EAAE,EAAE,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;MAC3F;KAED40B,UAAU,GACV;OACC,OAAO33B,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACS,aAAa,CAAC,IAAI,CAACo0B,UAAU,EAAE,EAAG,oCAAmC,IAAI,CAAC/d,cAAc,EAAG,IAAG,CAAC;MACpH;KAEDwX,OAAO,GACP;OACC,OAAOlxB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC0O,QAAQ,CAAC,IAAI,CAACtO,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC;MACjE;KAED40B,OAAO,GACP;OACC,OAAO53B,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC0O,QAAQ,CAAC,IAAI,CAACtO,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC;MACjE;KAED60B,OAAO,GACP;OACC,OAAO73B,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC0O,QAAQ,CAAC,IAAI,CAACtO,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC;MACjE;;CAGH;CACA;KACE2K,OAAO,GACP;OACC,IAAI,EAAE,IAAI,CAACD,IAAI,YAAY1N,EAAE,CAACE,IAAI,CAAC43B,IAAI,CAAC,EACxC;SACC,IAAI,CAACpqB,IAAI,GAAG,IAAI1N,EAAE,CAACE,IAAI,CAAC43B,IAAI,CAAC,IAAI,CAAC;;OAGnC,OAAO,IAAI,CAACpqB,IAAI;MAChB;KAEDgN,aAAa,GACb;OACC,MAAMxX,IAAI,GAAGlD,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACG,YAAY,EAAE,EAAE,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC;OAEtG,OAAO,IAAI/C,EAAE,CAACE,IAAI,CAACugB,OAAO,CAACvd,IAAI,EAAE,IAAI,CAAC;MACtC;;CAGH;CACA;CACA;KACEwzB,SAAS,GACT;OACC,IAAI,EAAE,IAAI,CAACqB,MAAM,YAAY/3B,EAAE,CAACE,IAAI,CAAC83B,MAAM,CAAC,EAC5C;SACC,IAAI,CAACD,MAAM,GAAG,IAAI/3B,EAAE,CAACE,IAAI,CAAC83B,MAAM,CAAC,IAAI,CAAC;;OAGvC,OAAO,IAAI,CAACD,MAAM;MAClB;KAEDE,YAAY,GACZ;OACC,MAAMC,WAAW,GAAGl4B,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAC3C,IAAI,CAACG,YAAY,EAAE,EACnB,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,eAAe,CAAC,CAClC;OAEDm1B,WAAW,CAACzvB,OAAO,CAAC,UAAS6pB,MAAM,EAAE;SACpC,IAAI,IAAI,CAAC/C,gBAAgB,CAAC+C,MAAM,CAAC,EACjC;WACCtyB,EAAE,CAACqH,WAAW,CAACirB,MAAM,EAAE,IAAI,CAACxvB,QAAQ,CAACC,GAAG,CAAC,qBAAqB,CAAC,CAAC;WAChE/C,EAAE,CAACoH,QAAQ,CAACkrB,MAAM,EAAE,IAAI,CAACxvB,QAAQ,CAACC,GAAG,CAAC,uBAAuB,CAAC,CAAC;;QAEhE,EAAE,IAAI,CAAC;MACR;KAEDo1B,cAAc,GACd;OACC,MAAMD,WAAW,GAAGl4B,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAC3C,IAAI,CAACG,YAAY,EAAE,EACnB,IAAI,CAACF,QAAQ,CAACC,GAAG,CAAC,eAAe,CAAC,CAClC;OAEDm1B,WAAW,CAACzvB,OAAO,CAAC,UAAS6pB,MAAM,EAAE;SACpC,IAAI,IAAI,CAAC9C,kBAAkB,CAAC8C,MAAM,CAAC,IAAIA,MAAM,CAAC3V,OAAO,CAACyb,MAAM,EAC5D;WACCp4B,EAAE,CAACoH,QAAQ,CAACkrB,MAAM,EAAE,IAAI,CAACxvB,QAAQ,CAACC,GAAG,CAAC,qBAAqB,CAAC,CAAC;WAC7D/C,EAAE,CAACqH,WAAW,CAACirB,MAAM,EAAE,IAAI,CAACxvB,QAAQ,CAACC,GAAG,CAAC,uBAAuB,CAAC,CAAC;;QAEnE,EAAE,IAAI,CAAC;MACR;KAED6J,aAAa,CAACrD,MAAM,EAAE0D,IAAI,EAAEC,MAAM,EAClC;OACC,IAAImrB,MAAM;OAAE,IAAInZ,cAAc;OAAE,IAAIoZ,WAAW;OAAE,IAChDz2B,YAAY;OAEb,IAAI,SAAS,IAAI0H,MAAM,IAAIA,MAAM,CAACihB,OAAO,EACzC;SACCjhB,MAAM,CAACkhB,eAAe,GAAGlhB,MAAM,CAACkhB,eAAe,IAAI,IAAI,CAAC3Q,QAAQ,CAAC2Q,eAAe;SAChFlhB,MAAM,CAACgvB,oBAAoB,GAAGhvB,MAAM,CAACgvB,oBAAoB,IAAI,IAAI,CAACze,QAAQ,CAAC0e,aAAa;SACxFjvB,MAAM,CAACkvB,qBAAqB,GAAGlvB,MAAM,CAACkvB,qBAAqB,IAAI,IAAI,CAAC3e,QAAQ,CAAC4e,cAAc;SAE3FL,MAAM,GAAG,IAAIr4B,EAAE,CAAC24B,WAAW,CACzB,GAAE,IAAI,CAACjf,cAAc,EAAG,iBAAgB,EACzC,IAAI,EACJ;WACCkf,OAAO,EAAG,0CAAyCrvB,MAAM,CAACkhB,eAAgB,QAAO;WACjFoO,QAAQ,EAAE,eAAe,IAAItvB,MAAM,GAAGA,MAAM,CAACuvB,aAAa,GAAG,EAAE;WAC/D1a,QAAQ,EAAE,KAAK;WACf2a,MAAM,EAAE,IAAI;WACZC,OAAO,EAAE,GAAG;WACZ3a,SAAS,EAAE,CAAC,GAAG;WACf4a,SAAS,EAAE,KAAK;WAChBC,UAAU,EAAE,IAAI;WAChBva,MAAM,EAAE;aACPwa,OAAO,GACP;eACCn5B,EAAE,CAACuiB,MAAM,CAACthB,MAAM,EAAE,SAAS,EAAEm4B,MAAM,CAAC;eACpCf,MAAM,CAAC12B,OAAO,EAAE;;YAEjB;WACD03B,OAAO,EAAE,CACR,IAAIr5B,EAAE,CAACs5B,iBAAiB,CAAC;aACxBhzB,IAAI,EAAEiD,MAAM,CAACgvB,oBAAoB;aACjCv2B,EAAE,EAAG,GAAE,IAAI,CAAC0X,cAAc,EAAG,8BAA6B;aAC1DiF,MAAM,EAAE;eACP4a,KAAK,GACL;iBACCv5B,EAAE,CAACyC,IAAI,CAACwX,UAAU,CAAChN,IAAI,CAAC,GAAGA,IAAI,EAAE,GAAG,IAAI;iBACxC,IAAI,CAACsP,WAAW,CAACwD,KAAK,EAAE;iBACxB,IAAI,CAACxD,WAAW,CAAC5a,OAAO,EAAE;iBAC1B3B,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,0BAA0B,EAAE,CAAC,IAAI,CAAC,CAAC;iBAC5DjB,EAAE,CAACuiB,MAAM,CAACthB,MAAM,EAAE,SAAS,EAAEm4B,MAAM,CAAC;;;YAGtC,CAAC,EACF,IAAIp5B,EAAE,CAACw5B,qBAAqB,CAAC;aAC5BlzB,IAAI,EAAEiD,MAAM,CAACkvB,qBAAqB;aAClCz2B,EAAE,EAAG,GAAE,IAAI,CAAC0X,cAAc,EAAG,+BAA8B;aAC3DiF,MAAM,EAAE;eACP4a,KAAK,GACL;iBACCv5B,EAAE,CAACyC,IAAI,CAACwX,UAAU,CAAC/M,MAAM,CAAC,GAAGA,MAAM,EAAE,GAAG,IAAI;iBAC5C,IAAI,CAACqP,WAAW,CAACwD,KAAK,EAAE;iBACxB,IAAI,CAACxD,WAAW,CAAC5a,OAAO,EAAE;iBAC1B3B,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,2BAA2B,EAAE,CAAC,IAAI,CAAC,CAAC;iBAC7DjB,EAAE,CAACuiB,MAAM,CAACthB,MAAM,EAAE,SAAS,EAAEm4B,MAAM,CAAC;;;YAGtC,CAAC;UAEH,CACD;SAED,IAAI,CAACf,MAAM,CAACtqB,OAAO,EAAE,EACrB;WACCsqB,MAAM,CAAClvB,IAAI,EAAE;WACb+V,cAAc,GAAGmZ,MAAM,CAACnZ,cAAc;WACtClf,EAAE,CAACqH,WAAW,CAAC6X,cAAc,EAAE,IAAI,CAACpc,QAAQ,CAACC,GAAG,CAAC,qBAAqB,CAAC,CAAC;WACxE/C,EAAE,CAACoH,QAAQ,CAAC8X,cAAc,EAAE,IAAI,CAACpc,QAAQ,CAACC,GAAG,CAAC,oBAAoB,CAAC,CAAC;WACpEu1B,WAAW,GAAGt4B,EAAE,CAAE,GAAE,IAAI,CAAC0Z,cAAc,EAAG,8BAA6B,CAAC;WACxE7X,YAAY,GAAG7B,EAAE,CAAE,GAAE,IAAI,CAAC0Z,cAAc,EAAG,+BAA8B,CAAC;WAE1E1Z,EAAE,CAACsB,IAAI,CAACL,MAAM,EAAE,SAAS,EAAEm4B,MAAM,CAAC;;QAEnC,MAED;SACCp5B,EAAE,CAACyC,IAAI,CAACwX,UAAU,CAAChN,IAAI,CAAC,GAAGA,IAAI,EAAE,GAAG,IAAI;;OAGzC,SAASmsB,MAAM,CAACn3B,KAAK,EACrB;SACC,IAAIA,KAAK,CAACw3B,IAAI,KAAK,OAAO,EAC1B;WACCx3B,KAAK,CAACwL,cAAc,EAAE;WACtBxL,KAAK,CAAC+d,eAAe,EAAE;WACvBhgB,EAAE,CAAC8B,SAAS,CAACw2B,WAAW,EAAE,OAAO,CAAC;;SAGnC,IAAIr2B,KAAK,CAACw3B,IAAI,KAAK,QAAQ,EAC3B;WACCx3B,KAAK,CAACwL,cAAc,EAAE;WACtBxL,KAAK,CAAC+d,eAAe,EAAE;WACvBhgB,EAAE,CAAC8B,SAAS,CAACD,YAAY,EAAE,OAAO,CAAC;;;MAGrC;KAED+sB,cAAc,GACd;OACC,MAAM8K,WAAW,GAAG/H,QAAQ,CAAC,IAAI,CAAC7X,QAAQ,CAAC6f,YAAY,CAAC;OACxD,IAAI35B,EAAE,CAACiV,IAAI,CAACjB,QAAQ,CAAC0lB,WAAW,CAAC,EACjC;SACC,OAAOA,WAAW;;OAGnB,OAAO,CAAC;MACR;;CAGH;CACA;CACA;KACEE,YAAY,GACZ;OACC,OAAO,IAAI,CAACxY,QAAQ,EAAE,CAAC3H,aAAa,CAAC,sBAAsB,CAAC;MAC5D;;CAGH;CACA;KACEogB,aAAa,GACb;OACC,MAAMC,IAAI,GAAG,IAAI,CAACF,YAAY,EAAE;OAChC,IAAIE,IAAI,EACR;SACC95B,EAAE,CAACkH,GAAG,CAACC,IAAI,CAAC2yB,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;SACjC95B,EAAE,CAACkH,GAAG,CAACE,QAAQ,CAAC,IAAI,CAACpE,YAAY,EAAE,EAAE,sBAAsB,CAAC;SAC5D,IAAI,IAAI,CAAC4rB,cAAc,EAAE,IAAI,CAAC,EAC9B;WACC,IAAI,CAACC,UAAU,EAAE;;;MAGnB;;CAGH;CACA;KACEkL,aAAa,GACb;OACC,MAAMD,IAAI,GAAG,IAAI,CAACF,YAAY,EAAE;OAChC,IAAIE,IAAI,EACR;SACC95B,EAAE,CAACkH,GAAG,CAACC,IAAI,CAAC2yB,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;SACjC95B,EAAE,CAACkH,GAAG,CAACG,WAAW,CAAC,IAAI,CAACrE,YAAY,EAAE,EAAE,sBAAsB,CAAC;SAC/DhD,EAAE,CAACkH,GAAG,CAACwM,KAAK,CAAC,IAAI,CAAC0N,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC;SACjD,IAAI,CAAC0N,UAAU,EAAE;;MAElB;;CAGH;CACA;KACEA,UAAU,GACV;OACC9uB,EAAE,CAACkH,GAAG,CAACiC,IAAI,CAAC,IAAI,CAACukB,SAAS,EAAE,CAAC;OAC7B,IAAI,IAAI,CAACA,SAAS,EAAE,CAACsM,YAAY,GAAG,CAAC,EACrC;SACCh6B,EAAE,CAACkH,GAAG,CAACG,WAAW,CAAC,IAAI,CAACrE,YAAY,EAAE,EAAE,wBAAwB,CAAC;;MAElE;;CAGH;CACA;KACE6rB,UAAU,GACV;OACC7uB,EAAE,CAACkH,GAAG,CAACmC,IAAI,CAAC,IAAI,CAACqkB,SAAS,EAAE,CAAC;OAC7B1tB,EAAE,CAACkH,GAAG,CAACE,QAAQ,CAAC,IAAI,CAACpE,YAAY,EAAE,EAAE,wBAAwB,CAAC;MAC9D;;CAGH;CACA;KACEi3B,cAAc,GACd;OACC,MAAMC,WAAW,GAAGl6B,EAAE,CAAC0L,OAAO,CAACC,KAAK,CACnC,IAAI,CAACgC,OAAO,EAAE,CAACwlB,YAAY,CAAC,IAAI,CAAC,CAACrW,IAAI,CAAEhP,GAAG,IAAK;SAC/C,OAAOA,GAAG,CAACG,KAAK,EAAE,KAAK,YAAY;QACnC,CAAC,CACF;OACD,MAAMksB,MAAM,GAAGn6B,EAAE,CAAC0L,OAAO,CAACC,KAAK,CAACuuB,WAAW,CAAC1oB,OAAO,EAAE,CAAC;OACtDxR,EAAE,CAACkH,GAAG,CAACkzB,OAAO,CAACD,MAAM,EAAE,IAAI,CAACvC,OAAO,EAAE,CAAC;OAEtC,MAAMr1B,QAAQ,GAAG43B,MAAM,CAAC1gB,aAAa,CAAC,mBAAmB,CAAC;OAC1D,IAAIlX,QAAQ,EACZ;SACCvC,EAAE,CAACkH,GAAG,CAACC,IAAI,CAAC5E,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC;SACvCvC,EAAE,CAACkH,GAAG,CAACC,IAAI,CAAC5E,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC;;OAG7C,OAAO,IAAIvC,EAAE,CAACE,IAAI,CAAC2sB,GAAG,CAAC,IAAI,EAAEsN,MAAM,CAAC;MACpC;;CAGH;CACA;CACA;KACEE,iBAAiB,CAACC,YAAY,EAC9B;OACC,IAAI,CAAC5sB,IAAI,GAAG,IAAI;OAEhB,OAAO,IAAI,CAACC,OAAO,EAAE,CAACC,WAAW,CAAC0sB,YAAY,CAAC,CAACtsB,GAAG,CAAEF,GAAG,IAAK;SAC5D,OAAOA,GAAG,CAACysB,cAAc,EAAE;QAC3B,CAAC;MACF;;CAGH;CACA;CACA;KACEC,uBAAuB,GACvB;OACC,IAAI,CAAC,IAAI,CAACC,oBAAoB,EAC9B;SACC,IAAI,CAACA,oBAAoB,GAAGz6B,EAAE,CAACkH,GAAG,CAACtC,MAAM,CAAC;WACzC6qB,GAAG,EAAE,KAAK;WACV5qB,KAAK,EAAE;aAAEC,SAAS,EAAE;YAAyC;WAC7DQ,QAAQ,EAAE,CACTtF,EAAE,CAACkH,GAAG,CAACtC,MAAM,CAAC;aACb6qB,GAAG,EAAE,MAAM;aACX5qB,KAAK,EAAE;eAAEC,SAAS,EAAE;cAAyB;aAC7CwB,IAAI,EAAE,IAAI,CAACwT,QAAQ,CAAC4gB,iBAAiB;aACrC/b,MAAM,EAAE;eACP4a,KAAK,EAAE,IAAI,CAACoB,QAAQ,CAACr5B,IAAI,CAAC,IAAI;;YAE/B,CAAC,EACFtB,EAAE,CAACkH,GAAG,CAACtC,MAAM,CAAC;aACb6qB,GAAG,EAAE,MAAM;aACX5qB,KAAK,EAAE;eAAEC,SAAS,EAAE;cAAsB;aAC1CwB,IAAI,EAAE,IAAI,CAACwT,QAAQ,CAAC8gB,mBAAmB;aACvCjc,MAAM,EAAE;eACP4a,KAAK,EAAE,IAAI,CAACsB,cAAc,CAACv5B,IAAI,CAAC,IAAI;;YAErC,CAAC;UAEH,CAAC;;OAGH,OAAO,IAAI,CAACm5B,oBAAoB;MAChC;;CAGH;CACA;KACEK,yBAAyB,GACzB;OACC,MAAM15B,KAAK,GAAG,IAAI,CAACo5B,uBAAuB,EAAE;OAC5Cx6B,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAAC35B,KAAK,EAAE,IAAI,CAAC6V,WAAW,CAAC5V,QAAQ,EAAE,CAAC;MACjD;;CAGH;CACA;KACE25B,yBAAyB,GACzB;OACCh7B,EAAE,CAACkH,GAAG,CAACyB,MAAM,CAAC,IAAI,CAAC6xB,uBAAuB,EAAE,CAAC;MAC7C;;CAGH;CACA;KACES,gBAAgB,GAChB;OACC,OAAO,IAAI,CAACC,YAAY,CAAC,SAAS,CAAC;MACnC;;CAGH;CACA;KACEC,eAAe,GACf;OACC,OAAO,IAAI,CAACD,YAAY,CAAC,QAAQ,CAAC;MAClC;;CAGH;CACA;KACEA,YAAY,CAAClY,SAAS,GAAG,SAAS,EAClC;OACChjB,EAAE,CAACkH,GAAG,CAACwM,KAAK,CAAC,IAAI,CAAC0N,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC;OACjD,MAAM8Y,WAAW,GAAG,IAAI,CAACD,cAAc,EAAE;OACzC,IAAI,CAAClT,YAAY,CAACxe,IAAI,CAAC2xB,WAAW,CAAC;OAEnC,IAAIlX,SAAS,KAAK,SAAS,EAC3B;SACCkX,WAAW,CAACkB,SAAS,CAAC,IAAI,CAACxD,OAAO,EAAE,CAAC;QACrC,MAED;SACCsC,WAAW,CAACmB,QAAQ,CAAC,IAAI,CAACzD,OAAO,EAAE,CAAC;;OAGrCsC,WAAW,CAAC/wB,IAAI,EAAE;OAClB+wB,WAAW,CAAC9D,MAAM,EAAE;OACpB8D,WAAW,CAACoB,IAAI,EAAE;OAElB,IAAI,CAAC3tB,OAAO,EAAE,CAAC2C,KAAK,EAAE;OAEtB,IAAI,IAAI,CAACoB,QAAQ,CAAC,iBAAiB,CAAC,EACpC;SACC,IAAI,CAACgb,YAAY,CAACvc,MAAM,EAAE;;OAG3B,IAAI,IAAI,CAACuB,QAAQ,CAAC,oBAAoB,CAAC,EACvC;SACC,IAAI,CAAC+a,YAAY,CAACtc,MAAM,EAAE;;OAG3B,IAAI,CAAC4pB,aAAa,EAAE;OAEpB,OAAOG,WAAW;MAClB;KAEDW,cAAc,GACd;OACC,IAAI,CAAC9T,YAAY,CAACte,OAAO,CAAEqF,GAAG,IAAK;SAClC9N,EAAE,CAACkH,GAAG,CAACyB,MAAM,CAACmF,GAAG,CAAC0D,OAAO,EAAE,CAAC;QAC5B,CAAC;OACF,IAAI,CAACuV,YAAY,GAAG,EAAE;MACtB;KAED4T,QAAQ,GACR;OACC,MAAM90B,KAAK,GAAG,IAAI,CAACw0B,iBAAiB,CAAC,IAAI,CAAC;OAE1C,IAAI,CAACkB,SAAS,CAAC,gBAAgB,EAAE;SAAE7tB,IAAI,EAAE7H;QAAO,CAAC,CAC/CoH,IAAI,CAAE7E,MAAM,IAAK;SACjBA,MAAM,CAACK,OAAO,CAAC,CAACykB,OAAO,EAAEsO,QAAQ,KAAK;WACrC,MAAM1tB,GAAG,GAAG,IAAI,CAACiZ,YAAY,CAACyU,QAAQ,CAAC;WACvC,IAAI1tB,GAAG,EACP;aACCA,GAAG,CAAC2tB,UAAU,EAAE;aAChB3tB,GAAG,CAACuoB,QAAQ,EAAE;aACdvoB,GAAG,CAAC4tB,aAAa,EAAE;aAEnB5tB,GAAG,CAAC6tB,KAAK,CAACzO,OAAO,CAAClrB,EAAE,CAAC;aACrB8L,GAAG,CAAC8tB,UAAU,CAAC1O,OAAO,CAAC7sB,OAAO,CAAC;aAC/ByN,GAAG,CAAC+tB,eAAe,CAAC3O,OAAO,CAACvY,OAAO,CAAC;;UAErC,CAAC;SAEF,IAAI,CAACwT,eAAe,EAAE;SACtB,IAAI,CAAC2C,sBAAsB,EAAE;SAC7B,IAAI,CAACC,qBAAqB,EAAE;SAE5B,IAAI,CAAChE,YAAY,GAAG,EAAE;QACtB,CAAC;MACH;KAED+U,WAAW,GACX;OACC,OAAO,IAAI,CAACpU,KAAK,CAACqU,QAAQ,CAAC,UAAU,EAAE,MAAM;SAC5C,OAAO,IAAI/7B,EAAE,CAACE,IAAI,CAAC87B,QAAQ,CAAC;WAC3B1W,IAAI,EAAE;UACN,CAAC;QACF,CAAC;;IAEH;CACF,CAAC,GAAG;;CCn+EJ,CAAC,YAAW;;GAGXtlB,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAACovB,OAAO,GAAG,UAASlvB,MAAM,EACjC;KACC,IAAI,CAACA,MAAM,GAAGA,MAAM;IACpB;;;CAGF;CACA;CACA;GACCJ,EAAE,CAACE,IAAI,CAACovB,OAAO,CAACxuB,SAAS,CAAC+N,SAAS,GAAG,YACtC;KACC,OAAO,IAAI,CAACzO,MAAM;IAClB;;;CAGF;CACA;CACA;GACCJ,EAAE,CAACE,IAAI,CAACovB,OAAO,CAACxuB,SAAS,CAACorB,cAAc,GAAG,UAASxe,IAAI,EACxD;KACC,IAAIyL,OAAO;KAEX,IAAInZ,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAAC6E,IAAI,CAAC,IAAIA,IAAI,CAACjG,MAAM,GAAG,CAAC,EAC5C;OACC0R,OAAO,GAAG,IAAI,CAACtK,SAAS,EAAE,CAAC8oB,UAAU,EAAE;OACvCxe,OAAO,CAAC1Q,OAAO,CAAE6pB,MAAM,IAAK;SAC3BA,MAAM,GAAGtyB,EAAE,CAACo3B,SAAS,CAAC9E,MAAM,CAAC;SAC7B5kB,IAAI,CAACjF,OAAO,CAAEqF,GAAG,IAAK;WACrB,IAAI9N,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACoL,GAAG,CAAC,EAC1B;aACCwkB,MAAM,CAAC9sB,WAAW,CAACxF,EAAE,CAAC2L,KAAK,CAACmC,GAAG,CAAC,CAAC;;UAElC,CAAC;QACF,CAAC;;IAEH;;;CAGF;CACA;CACA;GACC9N,EAAE,CAACE,IAAI,CAACovB,OAAO,CAACxuB,SAAS,CAACm7B,cAAc,GAAG,UAASvuB,IAAI,EACxD;KACC,IAAIyL,OAAO;KAEX,IAAInZ,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAAC6E,IAAI,CAAC,IAAIA,IAAI,CAACjG,MAAM,GAAG,CAAC,EAC5C;OACC0R,OAAO,GAAG,IAAI,CAACtK,SAAS,EAAE,CAAC8oB,UAAU,EAAE;OAEvCxe,OAAO,CAAC1Q,OAAO,CAAE6pB,MAAM,IAAK;SAC3B5kB,IAAI,CAACjF,OAAO,CAAEqF,GAAG,IAAK;WACrB,IAAI9N,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACoL,GAAG,CAAC,EAC1B;aACCwkB,MAAM,CAAC9sB,WAAW,CAACxF,EAAE,CAAC2L,KAAK,CAACmC,GAAG,CAAC,CAAC;;UAElC,CAAC;QACF,CAAC;;IAEH;;;CAGF;CACA;CACA;GACC9N,EAAE,CAACE,IAAI,CAACovB,OAAO,CAACxuB,SAAS,CAACo7B,eAAe,GAAG,UAASxuB,IAAI,EACzD;KACC,IAAIyL,OAAO;KAEX,IAAInZ,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAAC6E,IAAI,CAAC,IAAIA,IAAI,CAACjG,MAAM,GAAG,CAAC,EAC5C;OACC0R,OAAO,GAAG,IAAI,CAACtK,SAAS,EAAE,CAAC8oB,UAAU,EAAE;OAEvCxe,OAAO,CAAC1Q,OAAO,CAAE6pB,MAAM,IAAK;SAC3BA,MAAM,GAAGtyB,EAAE,CAACo3B,SAAS,CAAC9E,MAAM,CAAC;SAC7B5kB,IAAI,CAACjF,OAAO,CAAEqF,GAAG,IAAK;WACrB,IAAI9N,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACoL,GAAG,CAAC,EAC1B;aACCwkB,MAAM,CAAC8H,OAAO,CAACp6B,EAAE,CAAC2L,KAAK,CAACmC,GAAG,CAAC,CAAC;;UAE9B,CAAC;QACF,CAAC;;IAEH;;;CAGF;CACA;CACA;CACA;GACC9N,EAAE,CAACE,IAAI,CAACovB,OAAO,CAACxuB,SAAS,CAACq7B,iBAAiB,GAAG,UAASn6B,EAAE,EAAE8L,GAAG,EAC9D;KACC,IAAI,CAAC9N,EAAE,CAACyC,IAAI,CAACuR,QAAQ,CAAChS,EAAE,CAAC,IAAIhC,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAACrE,EAAE,CAAC,KAAKhC,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACoL,GAAG,CAAC,EACpF;OACC,MAAMmoB,UAAU,GAAG,IAAI,CAACpnB,SAAS,EAAE,CAAClB,OAAO,EAAE,CAAC2S,OAAO,CAACte,EAAE,CAAC;OAEzD,IAAIi0B,UAAU,EACd;SACC,MAAMmG,WAAW,GAAGnG,UAAU,CAACzkB,OAAO,EAAE;SACxCxR,EAAE,CAAC6L,WAAW,CAACiC,GAAG,EAAEsuB,WAAW,CAAC;SAChCp8B,EAAE,CAAC2I,MAAM,CAACyzB,WAAW,CAAC;;;IAGxB;;;CAGF;CACA;CACA;GACCp8B,EAAE,CAACE,IAAI,CAACovB,OAAO,CAACxuB,SAAS,CAACqrB,cAAc,GAAG,UAASze,IAAI,EACxD;KACC,IAAI1N,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAAC6E,IAAI,CAAC,EACzB;OACC,MAAM6S,IAAI,GAAG,IAAI,CAAC1R,SAAS,EAAE,CAAC+oB,OAAO,EAAE;OACvCrX,IAAI,CAACvC,SAAS,GAAG,EAAE;OAEnBtQ,IAAI,CAACjF,OAAO,CAAEC,OAAO,IAAK;SACzBpB,OAAO,CAACoB,OAAO,CAAC,IAAI6X,IAAI,CAAC/a,WAAW,CAACkD,OAAO,CAAC;QAC7C,CAAC;;IAEH;;;CAGF;CACA;CACA;GACC1I,EAAE,CAACE,IAAI,CAACovB,OAAO,CAACxuB,SAAS,CAAC81B,cAAc,GAAG,UAASlpB,IAAI,EACxD;KACC,IAAI6S,IAAI;KAER,IAAIvgB,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAAC6E,IAAI,CAAC,EACzB;OACC6S,IAAI,GAAG,IAAI,CAAC1R,SAAS,EAAE,CAAC+oB,OAAO,EAAE;OACjClqB,IAAI,CAACjF,OAAO,CAAEC,OAAO,IAAK;SACzB,IAAI1I,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACgG,OAAO,CAAC,EAC9B;WACC6X,IAAI,CAAC/a,WAAW,CAACkD,OAAO,CAAC;;QAE1B,CAAC;;IAEH;;;CAGF;CACA;CACA;GACC1I,EAAE,CAACE,IAAI,CAACovB,OAAO,CAACxuB,SAAS,CAACu7B,eAAe,GAAG,UAAS3uB,IAAI,EACzD;KACC,IAAI6S,IAAI;KAER,IAAIvgB,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAAC6E,IAAI,CAAC,EACzB;OACC6S,IAAI,GAAG,IAAI,CAAC1R,SAAS,EAAE,CAAC+oB,OAAO,EAAE;OACjClqB,IAAI,CAACjF,OAAO,CAAEC,OAAO,IAAK;SACzB,IAAI1I,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACgG,OAAO,CAAC,EAC9B;WACC1I,EAAE,CAACo6B,OAAO,CAAC7Z,IAAI,EAAE7X,OAAO,CAAC;;QAE1B,CAAC;;IAEH;;;CAGF;CACA;CACA;GACC1I,EAAE,CAACE,IAAI,CAACovB,OAAO,CAACxuB,SAAS,CAACsrB,cAAc,GAAG,UAAS1e,IAAI,EACxD;KACC,IAAI4uB,IAAI;KAER,IAAIt8B,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAAC6E,IAAI,CAAC,EACzB;OACC4uB,IAAI,GAAGt8B,EAAE,CAACo3B,SAAS,CAAC,IAAI,CAACvoB,SAAS,EAAE,CAACgpB,OAAO,EAAE,CAAC;OAC/CnqB,IAAI,CAACjF,OAAO,CAAEC,OAAO,IAAK;SACzB,IAAI1I,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACgG,OAAO,CAAC,EAC9B;WACC4zB,IAAI,CAAC92B,WAAW,CAACkD,OAAO,CAAC;;QAE1B,CAAC;;IAEH;;;CAGF;CACA;CACA;GACC1I,EAAE,CAACE,IAAI,CAACovB,OAAO,CAACxuB,SAAS,CAACyrB,kBAAkB,GAAG,UAASiL,OAAO,EAC/D;KACC,IAAI+E,WAAW;KAEf,IAAIv8B,EAAE,CAACyC,IAAI,CAACC,SAAS,CAAC80B,OAAO,CAAC,EAC9B;OACC+E,WAAW,GAAGv8B,EAAE,CAACo3B,SAAS,CAAC,IAAI,CAACvoB,SAAS,EAAE,CAACiM,eAAe,EAAE,CAAC;OAC9DyhB,WAAW,CAAC/2B,WAAW,CAACgyB,OAAO,CAAC;;IAEjC;;;CAGF;CACA;CACA;GACCx3B,EAAE,CAACE,IAAI,CAACovB,OAAO,CAACxuB,SAAS,CAACurB,gBAAgB,GAAG,UAASzV,UAAU,EAChE;KACC,MAAM4lB,cAAc,GAAG,IAAI,CAAC3tB,SAAS,EAAE,CAAC8L,aAAa,EAAE,CAAC3X,YAAY,EAAE;KAEtE,IAAIw5B,cAAc,EAClB;OACCA,cAAc,CAACxe,SAAS,GAAG,EAAE;OAE7B,IAAIhe,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACkU,UAAU,CAAC,EACjC;SACC4lB,cAAc,CAACh3B,WAAW,CAACoR,UAAU,CAAC;;;IAGxC;;;CAGF;CACA;CACA;GACC5W,EAAE,CAACE,IAAI,CAACovB,OAAO,CAACxuB,SAAS,CAACwrB,gBAAgB,GAAG,UAAS5rB,MAAM,EAC5D;KACC,IAAIV,EAAE,CAACyC,IAAI,CAACC,SAAS,CAAChC,MAAM,CAAC,EAC7B;OACC,MAAM+7B,YAAY,GAAGz8B,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC85B,aAAa,CAAC,IAAI,CAAC7tB,SAAS,EAAE,CAAC6L,aAAa,EAAE,CAAClJ,OAAO,EAAE,CAAC;OAC5FirB,YAAY,CAACze,SAAS,GAAG,EAAE;OAC3Bye,YAAY,CAACj3B,WAAW,CAAC9E,MAAM,CAAC;;IAEjC;;;CAGF;CACA;CACA;GACCV,EAAE,CAACE,IAAI,CAACovB,OAAO,CAACxuB,SAAS,CAAC0rB,kBAAkB,GAAG,UAASprB,KAAK,EAC7D;KACC,MAAMu7B,YAAY,GAAG,IAAI,CAACv8B,MAAM,CAACspB,eAAe,EAAE;KAElD,IAAIpiB,OAAO,CAACq1B,YAAY,CAAC,IAAI38B,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACtB,KAAK,CAAC,EACrD;OACC,MAAMw7B,SAAS,GAAGD,YAAY,CAACt7B,QAAQ,EAAE;OAEzC,IAAIrB,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACk6B,SAAS,CAAC,EAChC;SACCA,SAAS,CAAC5e,SAAS,GAAG,EAAE;SAExB,MAAM6e,UAAU,GAAG78B,EAAE,CAAC+B,UAAU,CAACX,KAAK,CAAC;SAEvC,IAAIpB,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACm6B,UAAU,CAAC,EACjC;WACCD,SAAS,CAACp3B,WAAW,CAACq3B,UAAU,CAAC;;;;IAIpC;;;CAGF;CACA;CACA;GACC78B,EAAE,CAACE,IAAI,CAACovB,OAAO,CAACxuB,SAAS,CAACmrB,eAAe,GAAG,UAASznB,SAAS,EAC9D;KACC,IAAIxE,EAAE,CAACiV,IAAI,CAACvS,SAAS,CAAC8B,SAAS,CAAC,EAChC;OACC,IAAI,CAACqK,SAAS,EAAE,CAAC7L,YAAY,EAAE,CAAC8B,SAAS,GAAGN,SAAS,CAACM,SAAS;;IAEhE;CACF,CAAC,GAAG;;CCpRJ,CAAC,YAAW;;GAGX9E,EAAE,CAACiP,UAAU,CAAChP,SAAS,CAAC,SAAS,CAAC;GAElCD,EAAE,CAACE,IAAI,CAAC48B,UAAU,GAAG,UAAS18B,MAAM,EAAE4H,OAAO,EAAE;KAC9C,IAAI,CAAC5H,MAAM,GAAGA,MAAM;KACpB,IAAI,CAAC4H,OAAO,GAAGA,OAAO;KACtB,IAAI,CAAC0f,KAAK,GAAG,IAAI1nB,EAAE,CAAC2nB,KAAK,CAACC,WAAW,EAAE;IACvC;GAED5nB,EAAE,CAACE,IAAI,CAAC48B,UAAU,CAACh8B,SAAS,GAAG;KAC9Bi8B,UAAU,GACV;OACC,OAAO,IAAI,CAACrV,KAAK,CAACqU,QAAQ,CAAC,SAAS,EAAE,MAAM;SAC3C,OAAO/7B,EAAE,CAAC4E,MAAM,CAAC,KAAK,EAAE;WACvBC,KAAK,EAAE;aACNC,SAAS,EAAE;YACX;WACDC,KAAK,EAAE;aACNi4B,GAAG,EAAE,IAAI,CAACh1B,OAAO,CAAC3C;;UAEnB,CAAC;QACF,CAAC;MACF;KAED43B,YAAY,GACZ;OACC,OAAO,IAAI,CAACvV,KAAK,CAACqU,QAAQ,CAAC,WAAW,EAAE,MAAM;SAC7C,OAAO/7B,EAAE,CAAC4E,MAAM,CAAC,OAAO,EAAE;WACzBC,KAAK,EAAE;aACNC,SAAS,EAAE;YACX;WACDC,KAAK,EAAE;aACNtC,IAAI,EAAE,MAAM;aACZy6B,MAAM,EAAE,SAAS;aACjBl4B,IAAI,EAAE,IAAI,CAACgD,OAAO,CAAC/C;YACnB;WACD0Z,MAAM,EAAE;aACPwe,MAAM,EAAE,UAASl7B,KAAK,EAAE;eACvB,MAAMm7B,MAAM,GAAG,IAAIC,UAAU,EAAE;eAC/BD,MAAM,CAACE,MAAM,GAAG,UAASr7B,KAAK,EAAE;iBAC/B,IAAI,CAAC86B,UAAU,EAAE,CAACC,GAAG,GAAG/6B,KAAK,CAAC4rB,aAAa,CAACzlB,MAAM;gBAClD,CAAC9G,IAAI,CAAC,IAAI,CAAC;eAEZ87B,MAAM,CAACG,aAAa,CAACt7B,KAAK,CAACqL,MAAM,CAACkwB,KAAK,CAAC,CAAC,CAAC,CAAC;eAE3Cx9B,EAAE,CAACkH,GAAG,CAACyB,MAAM,CAAC,IAAI,CAAC80B,YAAY,EAAE,CAAC;eAClCz9B,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAAC,IAAI,CAACkC,YAAY,EAAE,EAAE,IAAI,CAACS,SAAS,EAAE,CAAC;eACpD19B,EAAE,CAACkH,GAAG,CAACG,WAAW,CAAC,IAAI,CAACs2B,eAAe,EAAE,EAAE,iBAAiB,CAAC;eAC7D39B,EAAE,CAACkH,GAAG,CAACwM,KAAK,CAAC,IAAI,CAACqpB,UAAU,EAAE,EAAE,IAAI,CAAC;cACrC,CAACz7B,IAAI,CAAC,IAAI;;UAEZ,CAAC;QACF,CAAC;MACF;KAEDs8B,eAAe,GACf;OACC,OAAO,IAAI,CAAClW,KAAK,CAACqU,QAAQ,CAAC,cAAc,EAAE,MAAM;SAChD,OAAO/7B,EAAE,CAAC4E,MAAM,CAAC,QAAQ,EAAE;WAC1BC,KAAK,EAAE;aACNC,SAAS,EAAE;YACX;WACDwB,IAAI,EAAE,IAAI,CAAClG,MAAM,CAACsR,QAAQ,CAAC,uCAAuC,CAAC;WACnEiN,MAAM,EAAE;aACP4a,KAAK,EAAE,UAASt3B,KAAK,EAAE;eACtBA,KAAK,CAACwL,cAAc,EAAE;eACtB,IAAI,CAACwvB,YAAY,EAAE,CAAC1D,KAAK,EAAE;cAC3B,CAACj4B,IAAI,CAAC,IAAI;;UAEZ,CAAC;QACF,CAAC;MACF;KAEDq8B,eAAe,GACf;OACC,OAAO,IAAI,CAACjW,KAAK,CAACqU,QAAQ,CAAC,cAAc,EAAE,MAAM;SAChD,OAAO/7B,EAAE,CAAC4E,MAAM,CAAC,QAAQ,EAAE;WAC1BC,KAAK,EAAE;aACNC,SAAS,EAAE;YACX;WACD6Z,MAAM,EAAE;aACP4a,KAAK,EAAE,UAASt3B,KAAK,EAAE;eACtBA,KAAK,CAACwL,cAAc,EAAE;eACtBzN,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAAC,IAAI,CAAC0C,YAAY,EAAE,EAAE,IAAI,CAACC,SAAS,EAAE,CAAC;eACpD19B,EAAE,CAACkH,GAAG,CAACyB,MAAM,CAAC,IAAI,CAACs0B,YAAY,EAAE,CAAC;eAClCj9B,EAAE,CAACkH,GAAG,CAACE,QAAQ,CAAC,IAAI,CAACu2B,eAAe,EAAE,EAAE,iBAAiB,CAAC;eAC1D39B,EAAE,CAACkH,GAAG,CAACwM,KAAK,CAAC,IAAI,CAACqpB,UAAU,EAAE,EAAE;iBAC/Bc,OAAO,EAAE;gBACT,CAAC;cACF,CAACv8B,IAAI,CAAC,IAAI;YACX;WACDgF,IAAI,EAAE,IAAI,CAAClG,MAAM,CAACsR,QAAQ,CAAC,yCAAyC;UACpE,CAAC;QACF,CAAC;MACF;KAED+rB,YAAY,GACZ;OACC,OAAO,IAAI,CAAC/V,KAAK,CAACqU,QAAQ,CAAC,SAAS,EAAE,MAAM;SAC3C,OAAO/7B,EAAE,CAAC4E,MAAM,CAAC,OAAO,EAAE;WACzBC,KAAK,EAAE;aACNC,SAAS,EAAE;YACX;WACDC,KAAK,EAAE;aACNtC,IAAI,EAAE,QAAQ;aACduC,IAAI,EAAE,IAAI,CAACgD,OAAO,CAAC/C,IAAI;aACvBY,KAAK,EAAE;;UAER,CAAC;QACF,CAAC;MACF;KAED63B,SAAS,GACT;OACC,OAAO,IAAI,CAAChW,KAAK,CAACqU,QAAQ,CAAC,QAAQ,EAAE,MAAM;SAC1C,OAAO/7B,EAAE,CAAC4E,MAAM,CAAC,KAAK,EAAE;WACvBC,KAAK,EAAE;aACNC,SAAS,EAAE;YACX;WACDC,KAAK,EAAE;aACNC,IAAI,EAAE,IAAI,CAACgD,OAAO,CAAC/C;YACnB;WACDK,QAAQ,EAAE,CACTtF,EAAE,CAAC4E,MAAM,CAAC,KAAK,EAAE;aAChBC,KAAK,EAAE;eACNC,SAAS,EAAE;cACX;aACDQ,QAAQ,EAAE,CACT,IAAI,CAACy3B,UAAU,EAAE;YAElB,CAAC,EACF/8B,EAAE,CAAC4E,MAAM,CAAC,KAAK,EAAE;aAChBC,KAAK,EAAE;eACNC,SAAS,EAAE;cACX;aACDQ,QAAQ,EAAE,CACT,IAAI,CAACs4B,eAAe,EAAE,EACtB,IAAI,CAACD,eAAe,EAAE;YAEvB,CAAC,EACF,IAAI,CAACV,YAAY,EAAE;UAEpB,CAAC;QACF,CAAC;;IAEH;CACF,CAAC,GAAG;;;;;ACpJJ,CAGA,CAAC,YAAW;;GAGXj9B,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAAC+nB,YAAY,GAAG,UAAS7nB,MAAM,EAAEE,KAAK,EAC7C;KACC,IAAI,CAACF,MAAM,GAAG,IAAI;KAClB,IAAI,CAACE,KAAK,GAAG,IAAI;KACjB,IAAI,CAACw9B,+BAA+B,GAAG,KAAK;KAC5C,IAAI,CAACr9B,IAAI,CAACL,MAAM,EAAEE,KAAK,CAAC;IACxB;GAEDN,EAAE,CAACE,IAAI,CAAC+nB,YAAY,CAACnnB,SAAS,GAAG;KAChCL,IAAI,CAACL,MAAM,EAAEE,KAAK,EAClB;OACC,IAAI,CAACF,MAAM,GAAGA,MAAM;OAEpB,IACA;SACC,IAAI,CAACE,KAAK,GAAGS,IAAI,CAACT,KAAK,CAAC;QACxB,CACD,MACA;SACC,IAAI,CAACA,KAAK,GAAG,IAAI;;MAElB;KAEDmE,eAAe,GACf;OACC,OAAOzE,EAAE,CAAC4E,MAAM,CAAC,KAAK,EAAE;SACvBC,KAAK,EAAE;WACNC,SAAS,EAAE,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,sBAAsB;;QAE3D,CAAC;MACF;KAEDg7B,cAAc,CAACC,UAAU,EAAEta,MAAM,EACjC;OACC,OAAO1jB,EAAE,CAAC4E,MAAM,CAAC,UAAU,EAAE;SAC5BC,KAAK,EAAE;WACNC,SAAS,EAAE,CACV,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,aAAa,CAAC,EACvC,IAAI,CAAC3C,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,qBAAqB,CAAC,CAC/C,CAACwa,IAAI,CAAC,GAAG;UACV;SACDxY,KAAK,EAAE;WACNC,IAAI,EAAEg5B,UAAU,CAAC/4B,IAAI;WACrByO,KAAK,EAAG,UAASgQ,MAAO;UACxB;SACDne,IAAI,EAAEy4B,UAAU,CAAC34B,KAAK,IAAI;QAC1B,CAAC;MACF;KAED44B,WAAW,CAACD,UAAU,EACtB;OACC,IAAIl5B,SAAS,GAAG,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC;OAC3D,MAAMgC,KAAK,GAAM;SAChBc,KAAK,EAAGm4B,UAAU,CAAC34B,KAAK,KAAKmJ,SAAS,IAAIwvB,UAAU,CAAC34B,KAAK,KAAK,IAAI,GAAIrF,EAAE,CAACyY,IAAI,CAACylB,oBAAoB,CAACF,UAAU,CAAC34B,KAAK,CAAC,GAAG,EAAE;SAC1HL,IAAI,EAAGg5B,UAAU,CAAC/4B,IAAI,KAAKuJ,SAAS,IAAIwvB,UAAU,CAAC/4B,IAAI,KAAK,IAAI,GAAI+4B,UAAU,CAAC/4B,IAAI,GAAG;QACtF;OAED,IAAI+4B,UAAU,CAACpzB,IAAI,KAAK,IAAI,CAACtK,KAAK,CAACwK,QAAQ,EAC3C;SACChG,SAAS,GAAG,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,qBAAqB,CAAC;SAC3DgC,KAAK,CAACtC,IAAI,GAAG,UAAU;SACvBsC,KAAK,CAACpC,OAAO,GAAIoC,KAAK,CAACc,KAAK,IAAI,GAAI;;OAGrC,IAAIm4B,UAAU,CAACpzB,IAAI,KAAK,IAAI,CAACtK,KAAK,CAAC6K,IAAI,EACvC;SACCrG,SAAS,GAAG,CAACA,SAAS,EAAE,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAACwa,IAAI,CAAC,GAAG,CAAC;;OAG/E,IAAIygB,UAAU,CAACpzB,IAAI,KAAK,IAAI,CAACtK,KAAK,CAAC69B,MAAM,EACzC;SACCr5B,SAAS,GAAG,CAACA,SAAS,EAAE,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAACwa,IAAI,CAAC,GAAG,CAAC;SAChFxY,KAAK,CAACtC,IAAI,GAAG,QAAQ;;OAGtB,IAAIu7B,UAAU,CAACpzB,IAAI,KAAK,IAAI,CAACtK,KAAK,CAAC89B,KAAK,EACxC;SACCt5B,SAAS,GAAG,CAACA,SAAS,EAAE,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAACwa,IAAI,CAAC,GAAG,CAAC;SAC/ExY,KAAK,CAACtC,IAAI,GAAG,OAAO;SAEpB,IAAIzC,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAACw0B,UAAU,CAACr0B,IAAI,CAAC,EAC1C;WACC5E,KAAK,CAAC4wB,GAAG,GAAGqI,UAAU,CAACr0B,IAAI,CAAC00B,GAAG,IAAI,GAAG;WACtCt5B,KAAK,CAAC6wB,GAAG,GAAGoI,UAAU,CAACr0B,IAAI,CAAC20B,GAAG,IAAI,KAAK;WACxCv5B,KAAK,CAACw5B,IAAI,GAAGP,UAAU,CAACr0B,IAAI,CAAC60B,IAAI,IAAI,EAAE;;;OAIzC,IAAIx+B,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAAC23B,UAAU,CAACx3B,WAAW,CAAC,EACpD;SACCzB,KAAK,CAACwB,WAAW,GAAGvG,EAAE,CAACyY,IAAI,CAACgmB,gBAAgB,CAACT,UAAU,CAACx3B,WAAW,CAAC;;OAGrE,IAAIw3B,UAAU,CAACU,QAAQ,EACvB;SACC35B,KAAK,CAACgE,QAAQ,GAAG,IAAI;;OAGtBjE,SAAS,GAAG,CAAC,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,aAAa,CAAC,EAAE+B,SAAS,CAAC,CAACyY,IAAI,CAAC,GAAG,CAAC;OAE1E,OAAOvd,EAAE,CAAC4E,MAAM,CAAC,OAAO,EAAE;SACzBC,KAAK,EAAE;WACNC,SAAS;WACT9C,EAAE,EAAG,GAAEg8B,UAAU,CAAC/4B,IAAK;UACvB;SACDF;QACA,CAAC;MACF;KAED+C,YAAY,CAACk2B,UAAU,EACvB;OACC,IAAIl5B,SAAS,GAAG,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,mBAAmB,CAAC;OAC7D+B,SAAS,GAAG,CAAC,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,aAAa,CAAC,EAAE+B,SAAS,CAAC,CAACyY,IAAI,CAAC,GAAG,CAAC;OAE1E,OAAOvd,EAAE,CAAC4E,MAAM,CAAC,KAAK,EAAE;SACvBC,KAAK,EAAE;WACNC;UACA;SACDC,KAAK,EAAE;WACN,WAAW,EAAEi5B,UAAU,CAAC/4B;UACxB;SACDM,IAAI,EAAEy4B,UAAU,CAAC34B,KAAK,IAAI;QAC1B,CAAC;MACF;KAEDs5B,WAAW,CAACX,UAAU,EACtB;OACC,MAAMn4B,KAAK,GAAGm4B,UAAU,CAAC34B,KAAK;OAC9B,MAAMu5B,aAAa,GAAG,EAAE;OAExB,MAAMC,WAAW,GAAGh5B,KAAK,CAACi5B,KAAK,IAAI,EAAE;OACrCD,WAAW,CAACr4B,WAAW,GAAGw3B,UAAU,CAACx3B,WAAW,IAAI,EAAE;OACtDo4B,aAAa,CAACr2B,IAAI,CAAC,IAAI,CAACw2B,gBAAgB,CAACF,WAAW,CAAC,CAAC;OAEtD,IAAK7+B,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACm1B,UAAU,CAACgB,aAAa,CAAC,IAAIhB,UAAU,CAACgB,aAAa,CAACv3B,MAAM,GAAG,CAAC,EACrF;SACC,MAAMw3B,cAAc,GAAGp5B,KAAK,CAACq5B,QAAQ,IAAI,EAAE;SAC3CD,cAAc,CAACt1B,IAAI,GAAG;WACrBvE,KAAK,EAAE44B,UAAU,CAACgB;UAClB;SACDC,cAAc,CAACE,WAAW,GAAGnB,UAAU,CAACmB,WAAW,IAAI,KAAK;SAC5DP,aAAa,CAACr2B,IAAI,CAAC,IAAI,CAAC62B,mBAAmB,CAACH,cAAc,CAAC,CAAC;;OAG7D,IAAIj/B,EAAE,CAACyC,IAAI,CAAC48B,gBAAgB,CAACx5B,KAAK,CAACkF,MAAM,CAAC,EAC1C;SACC,KAAK,MAAMu0B,SAAS,IAAIz5B,KAAK,CAACkF,MAAM,EACpC;WACC,IAAIlF,KAAK,CAACkF,MAAM,CAACiN,cAAc,CAACsnB,SAAS,CAAC,IAAIt/B,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAACi5B,SAAS,CAAC,EACjF;aACC,MAAMC,MAAM,GAAG,IAAI,CAACtB,WAAW,CAAC;eAC/Bh5B,IAAI,EAAEq6B,SAAS;eACfj6B,KAAK,EAAEQ,KAAK,CAACkF,MAAM,CAACu0B,SAAS,CAAC;eAC9B10B,IAAI,EAAE,IAAI,CAACtK,KAAK,CAAC0G;cACjB,CAAC;aACFu4B,MAAM,CAAC98B,IAAI,GAAG,QAAQ;aACtBm8B,aAAa,CAACr2B,IAAI,CAACg3B,MAAM,CAAC;;;;OAK7B,IAAIz6B,SAAS,GAAG,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,kBAAkB,CAAC;OAC5D+B,SAAS,GAAG,CAAC,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,aAAa,CAAC,EAAE+B,SAAS,CAAC,CAACyY,IAAI,CAAC,GAAG,CAAC;OAC1E,MAAMxY,KAAK,GAAGc,KAAK,CAAC25B,UAAU,IAAI,EAAE;OACpCz6B,KAAK,CAAC,WAAW,CAAC,GAAGi5B,UAAU,CAAC/4B,IAAI;OAEpC,OAAOjF,EAAE,CAAC4E,MAAM,CAAC,KAAK,EAAE;SACvBC,KAAK,EAAE;WACNC;UACA;SACDC,KAAK;SACLO,QAAQ,EAAEs5B;QACV,CAAC;MACF;KAEDG,gBAAgB,CAACF,WAAW,EAC5B;OACCA,WAAW,CAACj0B,IAAI,GAAG,IAAI,CAACtK,KAAK,CAAC69B,MAAM;OAEpC,MAAMsB,UAAU,GAAG,IAAI,CAACxB,WAAW,CAACY,WAAW,CAAC;OAChDY,UAAU,CAACjrB,SAAS,CAACqd,GAAG,CAAC,8BAA8B,CAAC;OACxD9L,eAAK,CAACzkB,IAAI,CAACm+B,UAAU,EAAE,QAAQ,EAAGx9B,KAAK,IAAK;SAC3C,MAAMy9B,SAAS,GAAGz9B,KAAK,CAACqL,MAAM,CAACH,UAAU;SACzC,MAAMwyB,gBAAgB,GAAGD,SAAS,CAACjmB,aAAa,CAAC,kCAAkC,CAAC;SACpF,MAAMmmB,SAAS,GAAG;WACjBC,KAAK,EAAEH,SAAS;WAChBviB,MAAM,EAAE;aACP2iB,KAAK,EAAE79B,KAAK,CAACqL,MAAM,CAACzH,KAAK,IAAI,EAAE;aAC/Bk6B,QAAQ,EAAEJ,gBAAgB,CAAChjB,OAAO,CAAC9W,KAAK,IAAI;;UAE7C;SAEDmgB,6BAAY,CAAC6J,IAAI,CAAC,yBAAyB,EAAE+P,SAAS,CAAC;QACvD,CAAC;OAEF,OAAOH,UAAU;MACjB;KAEDL,mBAAmB,CAACH,cAAc,EAClC;OACC,MAAMe,aAAa,GAAG,IAAI,CAAC/7B,cAAc,CAACg7B,cAAc,CAAC;OACzDe,aAAa,CAACrjB,OAAO,CAAC6B,cAAc,GAAG,EAAE;OACzCwhB,aAAa,CAACrjB,OAAO,CAAC+B,aAAa,GAAG,GAAG;OACzCshB,aAAa,CAACxrB,SAAS,CAACqd,GAAG,CAAC,iCAAiC,CAAC;OAC9D,IAAIoN,cAAc,CAACP,QAAQ,KAAK,IAAI,EACpC;SACCsB,aAAa,CAACxrB,SAAS,CAAC7L,MAAM,CAAC,eAAe,CAAC;SAC/Cq3B,aAAa,CAACrjB,OAAO,CAAC5T,QAAQ,GAAG,IAAI;;OAGtC,IAAI,CAAC,IAAI,CAAC+0B,+BAA+B,EACzC;SACC,IAAI,CAACA,+BAA+B,GAAG,IAAI;SAC3C9X,6BAAY,CAACia,SAAS,CAAC,kBAAkB,EAAGh+B,KAAK,IAAK;WACrD,MAAM,CAACi+B,SAAS,CAAC,GAAGj+B,KAAK,CAAC4pB,OAAO,EAAE;WACnC,IAAI,CAAC7rB,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAAC65B,SAAS,CAAC,EACxC;aACC;;WAGD,MAAMC,cAAc,GAAGngC,EAAE,CAACmb,IAAI,CAAC+E,eAAe,CAACI,OAAO,CAAC4f,SAAS,CAAC;WACjE,IAAIC,cAAc,CAACx7B,QAAQ,IAAIw7B,cAAc,CAACx7B,QAAQ,CAAC6P,SAAS,CAACC,QAAQ,CAAC,iCAAiC,CAAC,EAC5G;aACC,MAAMirB,SAAS,GAAGS,cAAc,CAACx7B,QAAQ,CAACwI,UAAU;aACpD,MAAMizB,UAAU,GAAGV,SAAS,CAACjmB,aAAa,CAAC,+BAA+B,CAAC;aAC3E,MAAMmmB,SAAS,GAAG;eACjBC,KAAK,EAAEH,SAAS;eAChBviB,MAAM,EAAE;iBACP2iB,KAAK,EAAEM,UAAU,CAACv6B,KAAK,IAAI,EAAE;iBAC7Bk6B,QAAQ,EAAEI,cAAc,CAACx7B,QAAQ,CAACgY,OAAO,CAAC9W,KAAK,IAAI;;cAEpD;aAEDmgB,6BAAY,CAAC6J,IAAI,CAAC,yBAAyB,EAAE+P,SAAS,CAAC;;UAExD,CAAC;;OAGH,OAAOI,aAAa;MACpB;KAEDK,YAAY,CAACrC,UAAU,EACvB;OACC,OAAOh+B,EAAE,CAAC4E,MAAM,CAAC,QAAQ,EAAE;SAC1BC,KAAK,EAAE;WACNC,SAAS,EAAE,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,mBAAmB,CAAC,IAAI;UAC5D;SACDgC,KAAK,EAAE;WACNmB,GAAG,EAAG,GAAE83B,UAAU,CAAC/4B,IAAK;UACxB;SACDqB,IAAI,EAAE03B,UAAU,CAAC34B,KAAK,IAAI;QAC1B,CAAC;MACF;KAEDi7B,2BAA2B,CAACllB,KAAK,EAAEvV,KAAK,EACxC;OACC,MAAM06B,aAAa,GAAG3jB,MAAM,CAAC/W,KAAK,CAAC;OACnC,MAAMuC,MAAM,GAAGgT,KAAK,CAACvN,MAAM,CAAEnF,OAAO,IAAK;SACxC,OAAOkU,MAAM,CAAClU,OAAO,CAACrD,KAAK,CAAC,KAAKk7B,aAAa;QAC9C,CAAC;OAEF,OAAOn4B,MAAM,CAACX,MAAM,GAAG,CAAC,GAAGW,MAAM,CAAC,CAAC,CAAC,GAAGgT,KAAK,CAAC,CAAC,CAAC;MAC/C;KAEDnX,cAAc,CAAC+5B,UAAU,EACzB;OACC,MAAMwC,SAAS,GAAG,IAAI,CAACF,2BAA2B,CACjDtC,UAAU,CAACr0B,IAAI,CAACvE,KAAK,EACrB44B,UAAU,CAAC34B,KAAK,CAChB;OACD,MAAMwY,YAAY,GAAG,aAAa,IAAImgB,UAAU,IAAIA,UAAU,CAACmB,WAAW,KAAK,IAAI;OAEnF,OAAOn/B,EAAE,CAAC4E,MAAM,CAAC,KAAK,EAAE;SACvBC,KAAK,EAAE;WACNC,SAAS,EAAE,CACV,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,aAAa,CAAC,EACvC,yCAAyC,CACzC,CAACwa,IAAI,CAAC,GAAG,CAAC;WACXvb,EAAE,EAAG,GAAEg8B,UAAU,CAAC/4B,IAAK;UACvB;SACDF,KAAK,EAAE;WACNC,IAAI,EAAEg5B,UAAU,CAAC/4B,IAAI;WACrBoF,QAAQ,EAAE,GAAG;WACb,YAAY,EAAEnF,IAAI,CAACC,SAAS,CAAC64B,UAAU,CAACr0B,IAAI,CAACvE,KAAK,CAAC;WACnD,YAAY,EAAEo7B,SAAS,CAACn7B,KAAK;WAC7B,kBAAkB,EAAE24B,UAAU,CAACmB;UAC/B;SACD75B,QAAQ,EAAE,CAACtF,EAAE,CAAC4E,MAAM,CAAC,MAAM,EAAE;WAC5BC,KAAK,EAAE;aAAEC,SAAS,EAAE;YAAuB;WAC3CS,IAAI,EAAEsY,YAAY,GAAG2iB,SAAS,CAACv7B,IAAI,GAAG,IAAI;WAC1CqB,IAAI,EAAEuX,YAAY,GAAG,IAAI,GAAG2iB,SAAS,CAACv7B;UACtC,CAAC;QACF,CAAC;MACF;KAEDw7B,iBAAiB,CAACzC,UAAU,EAC5B;OACC,MAAM0C,cAAc,GAAG,EAAE;OACzB,MAAMC,OAAO,GAAG,CAAC,MAAM;SACtB,IAAI3gC,EAAE,CAACiV,IAAI,CAAC2rB,aAAa,CAAC5C,UAAU,CAAC34B,KAAK,CAAC,EAC3C;WACC,OAAO24B,UAAU,CAAC34B,KAAK,CAAC2I,GAAG,CAAEnI,KAAK,IAAK;aAAA;aACtC,MAAM3D,IAAI,GAAG,IAAI,CAACo+B,2BAA2B,CAACtC,UAAU,CAACr0B,IAAI,CAACvE,KAAK,EAAES,KAAK,CAAC;aAC3E66B,cAAc,CAACn4B,IAAI,CAACrG,IAAI,CAAC;aACzB,MAAM2+B,QAAQ,iBAAG3+B,IAAI,CAAC4+B,IAAI,yBAAI9gC,EAAE,CAACyY,IAAI,CAACgmB,gBAAgB,CAACv8B,IAAI,CAAC+C,IAAI,CAAC;aACjE,MAAM87B,YAAY,GAAG/gC,EAAE,CAACghC,GAAG,CAACC,MAAM,cAAC;;4CAEC,CAAW;;;OAG/C,GAHsCJ,QAAQ,CAG7C;aAED7gC,EAAE,CAACkH,GAAG,CAACC,IAAI,CAAC45B,YAAY,EAAE,WAAW,EAAE7+B,IAAI,CAAC;aAE5C,OAAO6+B,YAAY;YACnB,CAAC;;SAGH,OAAO,EAAE;QACT,GAAG;OACJ,MAAMthB,MAAM,GAAGzf,EAAE,CAACghC,GAAG,CAACC,MAAM,gBAAC;;;aAGrB,CAAkC;WACpC,CAA+C;;8CAEZ,CAAU;;;;;;;;IAQnD,GAXUjhC,EAAE,CAACkhC,IAAI,CAACC,MAAM,CAACnD,UAAU,CAAC/4B,IAAI,CAAC,EAChC,GAAEjF,EAAE,CAACkhC,IAAI,CAACC,MAAM,CAACnD,UAAU,CAAC/4B,IAAI,CAAE,UAAS,EAET07B,OAAO,CAQjD;OAED3gC,EAAE,CAACkH,GAAG,CAACC,IAAI,CACVsY,MAAM,EACN;SACC,aAAa,EAAE;WAAE2hB,OAAO,EAAE;UAAM;SAChC,YAAY,EAAEpD,UAAU,CAACr0B,IAAI,CAACvE,KAAK;SACnC,YAAY,EAAEs7B;QACd,CACD;OAED,OAAOjhB,MAAM;MACb;KAED4hB,kBAAkB,CAACrD,UAAU,EAC7B;OACC,OACCh+B,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAACw0B,UAAU,CAAC,IAC7B,MAAM,IAAIA,UAAW,IACrB,MAAM,IAAIA,UAAW,IACrB,OAAO,IAAIA,UAAW,KACtB,EAAE,OAAO,IAAIA,UAAU,CAAC,IAAKh+B,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACm1B,UAAU,CAAC5iB,KAAK,CAAC,IAAI4iB,UAAU,CAAC5iB,KAAK,CAAC3T,MAAO,CAAC;MAEhG;KAED65B,YAAY,CAACr/B,KAAK,EAClB;OACCjC,EAAE,CAACuhC,QAAQ,CAAC;SAAEr+B,IAAI,EAAEjB,KAAK,CAACqL,MAAM;SAAEuyB,KAAK,EAAE59B,KAAK,CAACqL;QAAQ,CAAC;MACxD;KAEDk0B,iBAAiB,CAACt4B,OAAO,EAAEu4B,MAAM,EACjC;OACC,SAASC,MAAM,CAACx4B,OAAO,EAAEu4B,MAAM,EAC/B;SACCzhC,EAAE,CAACuF,IAAI,CAACk8B,MAAM,EAAEv4B,OAAO,CAACrD,KAAK,CAAC;SAE9B,MAAMA,KAAK,GAAG2oB,UAAU,CAACtlB,OAAO,CAACrD,KAAK,CAAC;SACvC,MAAM+vB,GAAG,GAAGpH,UAAU,CAACtlB,OAAO,CAACwF,YAAY,CAAC,KAAK,CAAC,CAAC;SACnD,MAAMinB,GAAG,GAAGnH,UAAU,CAACtlB,OAAO,CAACwF,YAAY,CAAC,KAAK,CAAC,CAAC;SACnD,MAAMizB,UAAU,GAAG,EAAE;SACrB,MAAMC,KAAK,GAAIhM,GAAG,GAAGD,GAAI;SACzB,MAAMkM,QAAQ,GAAK,CAACh8B,KAAK,GAAG8vB,GAAG,IAAIiM,KAAK,GAAI,GAAI;SAChD,MAAME,cAAc,GAAIlvB,IAAI,CAACqS,KAAK,CAAC0c,UAAU,GAAGE,QAAQ,GAAG,GAAG,CAAC,GAAIF,UAAU,GAAG,CAAG;SAEnFF,MAAM,CAAC/tB,KAAK,CAACvB,IAAI,GAAI,GAAE0vB,QAAS,GAAE;SAClCJ,MAAM,CAAC/tB,KAAK,CAAC2R,UAAU,GAAI,GAAE,CAACyc,cAAe,IAAG;;OAGjD/sB,UAAU,CAAC,MAAM;SAChB2sB,MAAM,CAACx4B,OAAO,EAAEu4B,MAAM,CAAC;QACvB,EAAE,CAAC,CAAC;OAELzhC,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,OAAO,EAAE,MAAM;SAC/Bw4B,MAAM,CAACx4B,OAAO,EAAEu4B,MAAM,CAAC;QACvB,CAAC;MACF;KAEDM,iBAAiB,CAAC/D,UAAU,EAC5B;OACC,OAAQ,IAAIh+B,EAAE,CAACE,IAAI,CAAC48B,UAAU,CAAC,IAAI,CAAC18B,MAAM,EAAE49B,UAAU,CAAC,CAAEN,SAAS,EAAE;MACpE;KAEDlQ,SAAS,CAACwQ,UAAU,EAAEta,MAAM,EAC5B;OACC,IAAIxa,OAAO;OAAE,IACZ84B,IAAI;OACL,MAAMx9B,SAAS,GAAG,IAAI,CAACC,eAAe,EAAE;OAExC,IAAI,IAAI,CAAC48B,kBAAkB,CAACrD,UAAU,CAAC,EACvC;SACCA,UAAU,CAAC34B,KAAK,GAAG24B,UAAU,CAAC34B,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG24B,UAAU,CAAC34B,KAAK;SAEpE,QAAQ24B,UAAU,CAACpzB,IAAI;WAEtB,KAAK,IAAI,CAACtK,KAAK,CAAC0G,IAAI;aAAE;eACrBkC,OAAO,GAAG,IAAI,CAAC+0B,WAAW,CAACD,UAAU,CAAC;eACtCh+B,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,OAAO,EAAGjH,KAAK,IAAK;iBAAEA,KAAK,CAAC+d,eAAe,EAAE;gBAC7D,CAAC;eACFhgB,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,SAAS,EAAElJ,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAAC0gC,iBAAiB,EAAE,IAAI,CAAC,CAAC;eACtE;;WAGD,KAAK,IAAI,CAAC3hC,KAAK,CAAC6K,IAAI;aAAE;eACrBjC,OAAO,GAAG,IAAI,CAAC+0B,WAAW,CAACD,UAAU,CAAC;eACtCh+B,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,OAAO,EAAE,IAAI,CAACo4B,YAAY,CAAC;eAC5CthC,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,OAAO,EAAGjH,KAAK,IAAK;iBAAEA,KAAK,CAAC+d,eAAe,EAAE;gBAC7D,CAAC;eACFhgB,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,SAAS,EAAElJ,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAAC0gC,iBAAiB,EAAE,IAAI,CAAC,CAAC;eACtE;;WAGD,KAAK,IAAI,CAAC3hC,KAAK,CAAC69B,MAAM;aAAE;eACvBj1B,OAAO,GAAG,IAAI,CAAC+0B,WAAW,CAACD,UAAU,CAAC;eACtCh+B,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,OAAO,EAAGjH,KAAK,IAAK;iBAAEA,KAAK,CAAC+d,eAAe,EAAE;gBAC7D,CAAC;eACFhgB,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,SAAS,EAAElJ,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAAC0gC,iBAAiB,EAAE,IAAI,CAAC,CAAC;eACtE;;WAGD,KAAK,IAAI,CAAC3hC,KAAK,CAAC89B,KAAK;aAAE;eACtBl1B,OAAO,GAAG,IAAI,CAAC+0B,WAAW,CAACD,UAAU,CAAC;eACtCgE,IAAI,GAAG,IAAI,CAAC3B,YAAY,CAACrC,UAAU,CAAC;eACpC,IAAI,CAACwD,iBAAiB,CAACt4B,OAAO,EAAE84B,IAAI,CAAC;eACrChiC,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,OAAO,EAAGjH,KAAK,IAAK;iBAAEA,KAAK,CAAC+d,eAAe,EAAE;gBAC7D,CAAC;eACFhgB,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,SAAS,EAAElJ,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAAC0gC,iBAAiB,EAAE,IAAI,CAAC,CAAC;eACtE;;WAGD,KAAK,IAAI,CAAC3hC,KAAK,CAACwK,QAAQ;aAAE;eACzB5B,OAAO,GAAG,IAAI,CAAC+0B,WAAW,CAACD,UAAU,CAAC;eACtCh+B,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,OAAO,EAAGjH,KAAK,IAAK;iBAAEA,KAAK,CAAC+d,eAAe,EAAE;gBAC7D,CAAC;eACFhgB,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,SAAS,EAAElJ,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAAC0gC,iBAAiB,EAAE,IAAI,CAAC,CAAC;eACtE;;WAGD,KAAK,IAAI,CAAC3hC,KAAK,CAAC4hC,QAAQ;aAAE;eACzBh5B,OAAO,GAAG,IAAI,CAAC60B,cAAc,CAACC,UAAU,EAAEta,MAAM,CAAC;eACjD1jB,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,OAAO,EAAGjH,KAAK,IAAK;iBAAEA,KAAK,CAAC+d,eAAe,EAAE;gBAC7D,CAAC;eACFhgB,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,SAAS,EAAElJ,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAAC0gC,iBAAiB,EAAE,IAAI,CAAC,CAAC;eACtE;;WAGD,KAAK,IAAI,CAAC3hC,KAAK,CAACuK,QAAQ;aAAE;eACzB3B,OAAO,GAAG,IAAI,CAACjF,cAAc,CAAC+5B,UAAU,CAAC;eACzC;;WAGD,KAAK,IAAI,CAAC19B,KAAK,CAAC6hC,WAAW;aAAE;eAC5Bj5B,OAAO,GAAG,IAAI,CAACu3B,iBAAiB,CAACzC,UAAU,CAAC;eAC5C;;WAGD,KAAK,IAAI,CAAC19B,KAAK,CAAC8hC,KAAK;aAAE;eACtBl5B,OAAO,GAAG,IAAI,CAAC64B,iBAAiB,CAAC/D,UAAU,CAAC;eAC5C;;WAGD,KAAK,IAAI,CAAC19B,KAAK,CAAC+hC,KAAK;aAAE;eACtBn5B,OAAO,GAAG,IAAI,CAACy1B,WAAW,CAACX,UAAU,CAAC;eACtCh+B,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,SAAS,EAAElJ,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAAC0gC,iBAAiB,EAAE,IAAI,CAAC,CAAC;eACtE;;WAGD,KAAK,IAAI,CAAC3hC,KAAK,CAAC4K,MAAM;aAAE;eACvBhC,OAAO,GAAG,IAAI,CAACpB,YAAY,CAACk2B,UAAU,CAAC;eAEvCxZ,qBAAqB,CAAC,MAAM;iBAC3B,MAAMjf,IAAI,GAAGy4B,UAAU,CAAC8C,IAAI,IAAI9C,UAAU,CAAC34B,KAAK,IAAI,IAAI;iBAExD,IAAIE,IAAI,EACR;mBACC,MAAMoU,GAAG,GAAG3Z,EAAE,CAACsiC,WAAW,CAAC/8B,IAAI,CAAC;mBAEhCoU,GAAG,CAAC4oB,MAAM,CAAC95B,OAAO,CAAEvG,IAAI,IAAK;qBAC5B,IAAIA,IAAI,CAACsgC,UAAU,IAAItgC,IAAI,CAAC4K,EAAE,EAC9B;uBACC9M,EAAE,CAACyiC,UAAU,CAACvgC,IAAI,CAAC4K,EAAE,CAAC;;oBAEvB,CAAC;;gBAEH,CAAC;eAEF9M,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,OAAO,EAAGjH,KAAK,IAAK;iBAAEA,KAAK,CAAC+d,eAAe,EAAE;gBAC7D,CAAC;eACFhgB,EAAE,CAACsB,IAAI,CAAC4H,OAAO,EAAE,SAAS,EAAElJ,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAAC0gC,iBAAiB,EAAE,IAAI,CAAC,CAAC;eACtE;;WAGD;aAAS;eACR;;;;OAKH,IAAIjiC,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACs/B,IAAI,CAAC,EAC3B;SACCx9B,SAAS,CAACgB,WAAW,CAACw8B,IAAI,CAAC;;OAG5B,IAAIhiC,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACwG,OAAO,CAAC,EAC9B;SACC1E,SAAS,CAACgB,WAAW,CAAC0D,OAAO,CAAC;;OAG/B,OAAO1E,SAAS;MAChB;KAEDy9B,iBAAiB,CAAChgC,KAAK,EACvB;OACC,IAAIA,KAAK,CAACw3B,IAAI,KAAK,OAAO,EAC1B;SACCx3B,KAAK,CAACwL,cAAc,EAAE;SAEtB,MAAMi1B,UAAU,GAAG1iC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACS,aAAa,CAAC,IAAI,CAACjD,MAAM,CAAC4C,YAAY,EAAE,EAAE,4BAA4B,EAAE,IAAI,CAAC;SAE9G,IAAI0/B,UAAU,EACd;WACC1iC,EAAE,CAAC8B,SAAS,CAAC4gC,UAAU,EAAE,OAAO,CAAC;;;;IAIpC;CACF,CAAC,GAAG;;CCviBJ;CACA;CACA;AACA,CAAO,MAAMC,KAAK,CAClB;CADaA,KAAK,CAEVttB,KAAK,GAAG;GACdutB,OAAO,EAAE,kBAAkB;GAC3BttB,MAAM,EAAE,iBAAiB;GACzBC,OAAO,EAAE,kBAAkB;GAC3BK,OAAO,EAAE,kBAAkB;GAC3BJ,OAAO,EAAE,kBAAkB;GAC3BqtB,SAAS,EAAE,oBAAoB;GAC/BC,UAAU,EAAE,qBAAqB;GACjCC,SAAS,EAAE,oBAAoB;GAC/BrtB,KAAK,EAAE;CACR,CAAC;CAZWitB,KAAK,CAcVK,gBAAgB,GAAG;GACzBC,MAAM,EAAE,6BAA6B;GACrCC,OAAO,EAAE;CACV,CAAC;CAGF,MAAMjjC,WAAS,GAAGgP,oBAAU,CAAChP,SAAS,CAAC,SAAS,CAAC;AACjDA,YAAS,CAAC0iC,KAAK,GAAGA,KAAK;;CC1BvB,CAAC,YAAW;;GAGX3iC,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;GAEvBD,EAAE,CAACE,IAAI,CAAC83B,MAAM,GAAG,UAAS53B,MAAM,EAChC;KACC,IAAI,CAACA,MAAM,GAAG,IAAI;KAClB,IAAI,CAACoE,SAAS,GAAG,IAAI;KACrB,IAAI,CAACif,YAAY,GAAG,IAAI;KACxB,IAAI,CAACE,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACG,SAAS,GAAG,IAAI;KACrB,IAAI,CAACW,UAAU,GAAG,IAAI;KACtB,IAAI,CAACE,aAAa,GAAG,IAAI;KACzB,IAAI,CAACxD,KAAK,GAAG,IAAI;KACjB,IAAI,CAAC4W,MAAM,GAAG,IAAI;KAClB,IAAI,CAACoL,kBAAkB,GAAG,IAAI,CAACA,kBAAkB,CAAC7hC,IAAI,CAAC,IAAI,CAAC;KAC5D,IAAI,CAACb,IAAI,CAACL,MAAM,CAAC;IACjB;GAEDJ,EAAE,CAACE,IAAI,CAAC83B,MAAM,CAACl3B,SAAS,GAAG;KAC1BL,IAAI,CAACL,MAAM,EACX;OACC,IAAI,CAACA,MAAM,GAAGA,MAAM;OACpB,IAAI,CAAC+gB,KAAK,GAAG,IAAI,CAAC/gB,MAAM,CAACghB,QAAQ,EAAE;OACnC,IAAI,CAAC2W,MAAM,GAAG,IAAI/3B,EAAE,CAACg4B,MAAM,CAAC;SAC3B1qB,MAAM,EAAE,IAAI,CAACtK,YAAY;QACzB,CAAC;MACF;KAEDmgC,kBAAkB,GAClB;OACC,IAAI,CAAC1f,YAAY,GAAGzjB,EAAE,CAAC0jB,MAAM,CAACziB,MAAM,CAAC;OACrC,IAAI,CAAC0iB,QAAQ,GAAG3jB,EAAE,CAAC4jB,GAAG,CAAC,IAAI,CAACzC,KAAK,CAAC0C,OAAO,CAAC,CAAC,CAAC,CAAC;OAC7C,IAAI,CAACC,SAAS,GAAG9jB,EAAE,CAAC4jB,GAAG,CAAC,IAAI,CAACzC,KAAK,CAAC4C,KAAK,CAAC;OAEzC,IAAIC,OAAO,GAAG/iB,MAAM,CAAC+iB,OAAO;OAE5B,IAAI,IAAI,CAAC5jB,MAAM,CAAC6jB,IAAI,EAAE,EACtB;SACCD,OAAO,GAAG3D,QAAQ,CAAC6D,eAAe,CAACC,SAAS;;OAG7C,IAAIC,SAAS,GAAIJ,OAAO,GAAG,IAAI,CAACP,YAAY,GAAI,IAAI,CAACE,QAAQ,CAACU,GAAG;OACjE,IAAIC,MAAM,GAAGN,OAAO,GAAG,IAAI,CAACL,QAAQ,CAACU,GAAG;OAExC,IAAID,SAAS,GAAI,IAAI,CAACT,QAAQ,CAACY,MAAM,GAAG,IAAI,CAACZ,QAAQ,CAACU,GAAI,EAC1D;SACCD,SAAS,GAAG,IAAI,CAACT,QAAQ,CAACY,MAAM,GAAG,IAAI,CAACZ,QAAQ,CAACU,GAAG;;OAGrD,IAAIC,MAAM,GAAG,IAAI,CAACR,SAAS,CAACJ,MAAM,EAClC;SACCY,MAAM,GAAG,IAAI,CAACR,SAAS,CAACJ,MAAM;QAC9B,MAED;SACCU,SAAS,IAAIE,MAAM;SACnBF,SAAS,IAAI,IAAI,CAACN,SAAS,CAACJ,MAAM;;OAGnCc,qBAAqB,CAAC,MAAM;SAC3B,IAAIF,MAAM,KAAK,IAAI,CAACG,UAAU,EAC9B;WACC,IAAI,CAACzhB,YAAY,EAAE,CAAC0Q,KAAK,CAACC,SAAS,GAAI,oBAAmB2Q,MAAO,QAAO;;SAGzE,IAAIF,SAAS,KAAK,IAAI,CAACO,aAAa,EACpC;WACC,IAAI,CAAC3hB,YAAY,EAAE,CAAC0Q,KAAK,CAACgQ,MAAM,GAAI,GAAEU,SAAU,IAAG;;SAGpD,IAAI,CAACK,UAAU,GAAGH,MAAM;SACxB,IAAI,CAACK,aAAa,GAAGP,SAAS;QAC9B,CAAC;MACF;KAEDphB,YAAY,GACZ;OACC,IAAI,CAAC,IAAI,CAACwB,SAAS,EACnB;SACC,IAAI,CAACA,SAAS,GAAGxE,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACzC,MAAM,CAAC4C,YAAY,EAAE,EAAE,IAAI,CAAC5C,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;;OAGrH,OAAO,IAAI,CAACyB,SAAS;MACrB;KAED2E,IAAI,GACJ;OACC,IAAI,CAAC,IAAI,CAAC4uB,MAAM,CAAChqB,OAAO,EAAE,EAC1B;SACC,IAAI,CAACo1B,kBAAkB,EAAE;SACzB,IAAI,CAACngC,YAAY,EAAE,CAAC0Q,KAAK,CAAC0vB,OAAO,GAAG,OAAO;SAC3C,IAAI,CAACpgC,YAAY,EAAE,CAAC0Q,KAAK,CAACmqB,OAAO,GAAG,GAAG;SACvC,IAAI,CAAC76B,YAAY,EAAE,CAAC0Q,KAAK,CAAC2vB,UAAU,GAAG,SAAS;SAEhD,MAAMC,SAAS,GAAG,IAAI,CAACljC,MAAM,CAACuN,OAAO,EAAE,CAAC0pB,iBAAiB,EAAE;SAE3D,IAAIiM,SAAS,GAAG,CAAC,IAAIA,SAAS,IAAI,CAAC,EACnC;WACC,IAAI,CAACvL,MAAM,CAACwL,UAAU,CAAC;aAAEC,IAAI,EAAE;YAAI,CAAC;WACpC,IAAI,CAACzL,MAAM,CAAC5uB,IAAI,EAAE;UAClB,MAED;WACC,IAAI,CAAC4uB,MAAM,CAACwL,UAAU,CAAC;aAAEC,IAAI,EAAE;YAAK,CAAC;WACrC,IAAI,CAACzL,MAAM,CAAC5uB,IAAI,EAAE;;;MAGpB;KAEDE,IAAI,GACJ;OACC,IAAI,IAAI,CAAC0uB,MAAM,CAAChqB,OAAO,EAAE,EACzB;SACC,IAAI,CAACo1B,kBAAkB,EAAE;SACzB,IAAI,CAACpL,MAAM,CAAC1uB,IAAI,EAAE,CAAC4D,IAAI,CAAC,MAAM;WAC7B,IAAI,CAACjK,YAAY,EAAE,CAAC0Q,KAAK,CAAC0vB,OAAO,GAAG,MAAM;UAC1C,CAAC;;;IAGJ;CACF,CAAC,GAAG;;CC1HJ,CAAC,YAAW;;GAGXpjC,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;;GAEC,IAAID,EAAE,CAACmb,IAAI,CAACsoB,WAAW,EACvB;KACC;;GAGDzjC,EAAE,CAACmb,IAAI,CAACsoB,WAAW,GAAG;KACrBv/B,IAAI,EAAE,EAAE;KAERqE,IAAI,CAACvG,EAAE,EAAEwe,QAAQ,EACjB;OACC,IAAIxgB,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAACrE,EAAE,CAAC,IAAIwe,QAAQ,EAC5C;SACC,MAAMkjB,MAAM,GAAG;WACd1hC,EAAE;WACFwe,QAAQ;WACRmjB,GAAG,EAAE;UACL;SAED,IAAI,IAAI,CAACrjB,OAAO,CAACte,EAAE,CAAC,KAAK,IAAI,EAC7B;WACC,IAAI,CAACkC,IAAI,CAACqE,IAAI,CAACm7B,MAAM,CAAC;UACtB,MAED;WACC,IAAI,CAACx/B,IAAI,CAAC,CAAC,CAAC,GAAGw/B,MAAM;;;MAGvB;KAEDpjB,OAAO,CAACte,EAAE,EACV;OACC,MAAMoG,MAAM,GAAG,IAAI,CAAClE,IAAI,CAAC2J,MAAM,CAAEnF,OAAO,IAAK;SAC5C,OAAQA,OAAO,CAAC1G,EAAE,KAAKA,EAAE,IAAM0G,OAAO,CAAC1G,EAAE,CAACiG,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,KAAKjG,EAAG;QAC3E,CAAC;OAEF,OAAOoG,MAAM,CAACX,MAAM,KAAK,CAAC,GAAGW,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;MAC7C;KAEDw7B,eAAe,CAAC5hC,EAAE,EAClB;OACC,MAAMoG,MAAM,GAAG,IAAI,CAACkY,OAAO,CAACte,EAAE,CAAC;OAE/B,OAAOhC,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAACpB,MAAM,CAAC,GAAGA,MAAM,CAACoY,QAAQ,GAAG,IAAI;MAC7D;KAEDiN,MAAM,CAACzrB,EAAE,EAAEyV,GAAG,EACd;OACC,MAAM+I,QAAQ,GAAG,IAAI,CAACojB,eAAe,CAAC5hC,EAAE,CAAC;OACzC,IAAIwe,QAAQ,EACZ;SACCA,QAAQ,CAACiN,MAAM,CAAChW,GAAG,CAAC;;MAErB;KAEDosB,YAAY,CAAC7hC,EAAE,EACf;OACC,IAAIoG,MAAM,GAAG,IAAI;OACjB,IAAI,CAAClE,IAAI,CAACuE,OAAO,CAAC,CAACvG,IAAI,EAAEkR,KAAK,KAAK;SAClC,IAAIlR,IAAI,CAACF,EAAE,KAAKA,EAAE,EAClB;WACCoG,MAAM,GAAGgL,KAAK;;QAEf,CAAC;OAEF,OAAOhL,MAAM;MACb;KAEDzG,OAAO,CAACK,EAAE,EACV;OACC,IAAIhC,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAACrE,EAAE,CAAC,EAChC;SACC,MAAMsjB,IAAI,GAAG,IAAI,CAACse,eAAe,CAAC5hC,EAAE,CAAC;SAErC,IAAIsjB,IAAI,YAAYtlB,EAAE,CAACmb,IAAI,CAACmK,IAAI,EAChC;WACCA,IAAI,CAAC3jB,OAAO,EAAE;WACd,MAAMyR,KAAK,GAAG,IAAI,CAACywB,YAAY,CAAC7hC,EAAE,CAAC;WAEnC,IAAIoR,KAAK,KAAK,IAAI,EAClB;aACC,OAAO,IAAI,CAAClP,IAAI,CAACkP,KAAK,CAAC;;;;;IAK3B;CACF,CAAC,GAAG;;CChGJ,CAAC,YAAW;;GAGXpT,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAACunB,OAAO,GAAG,UAASrnB,MAAM,EAAEE,KAAK,EACxC;KACC,IAAI,CAACF,MAAM,GAAG,IAAI;KAClB,IAAI,CAACE,KAAK,GAAG,IAAI;KACjB,IAAI,CAACuZ,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACiqB,KAAK,GAAG,IAAI;KACjB,IAAI,CAACrjC,IAAI,CAACL,MAAM,EAAEE,KAAK,CAAC;IACxB;GAEDN,EAAE,CAACE,IAAI,CAACunB,OAAO,CAAC3mB,SAAS,GAAG;;CAG7B;CACA;CACA;CACA;KACEL,IAAI,CAACL,MAAM,EAAEE,KAAK,EAClB;OACC,IAAI,CAACF,MAAM,GAAGA,MAAM;OACpB,IAAI,CAACE,KAAK,GAAGA,KAAK;OAClB,IAAI,CAAC6I,IAAI,EAAE;OACXnJ,EAAE,CAACgB,cAAc,CAAC,4BAA4B,EAAEhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC6iC,SAAS,EAAE,IAAI,CAAC,CAAC;MAC/E;;CAGH;CACA;KACEA,SAAS,GACT;OACC,IAAI,CAAC56B,IAAI,EAAE;MACX;;CAGH;CACA;CACA;KACE0iB,OAAO,GACP;OACC,OAAO,IAAI,CAACzrB,MAAM,CAAC0Z,QAAQ,CAACC,QAAQ;MACpC;;CAGH;CACA;CACA;KACEiqB,UAAU,GACV;OACC,OAAO,IAAI,CAACnY,OAAO,EAAE,CAACpkB,MAAM,GAAG,CAAC;MAChC;;CAGH;CACA;KACE0B,IAAI,GACJ;OACC,IAAI,IAAI,CAAC66B,UAAU,EAAE,EACrB;SACC,IAAI,CAACC,QAAQ,EAAE,CAACC,UAAU,CAAC,IAAI,CAACC,UAAU,EAAE,CAAC;SAC7C,IAAI,CAACF,QAAQ,EAAE,CAAC96B,IAAI,EAAE;;MAEvB;;CAGH;CACA;CACA;KACEg7B,UAAU,GACV;OACC,MAAMjgC,IAAI,GAAG,IAAI,CAAC2nB,OAAO,EAAE;OAC3B,IAAI+M,OAAO,GAAG,IAAI;OAElB,IAAI54B,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAAC3E,IAAI,CAAC,IAAIA,IAAI,CAACuD,MAAM,GAAG,CAAC,EAC5C;SACC,MAAM28B,YAAY,GAAG;WACpBn6B,KAAK,EAAE,oBAAoB;WAC3B2uB,OAAO,EAAE;UACT;SAED10B,IAAI,CAACuE,OAAO,CAAE47B,OAAO,IAAK;WACzB,MAAMC,WAAW,GAAG;aACnBr6B,KAAK,EAAE,mBAAmB;aAC1BC,GAAG,EAAG,qBAAoBm6B,OAAO,CAACz5B,IAAI,CAAC25B,WAAW,EAAG,EAAC;aACtD3L,OAAO,EAAE;YACT;WAED,IAAI54B,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAACg+B,OAAO,CAACt+B,KAAK,CAAC,EAC3C;aACCu+B,WAAW,CAAC1L,OAAO,CAACrwB,IAAI,CAAC;eACxB0B,KAAK,EAAE,yBAAyB;eAChC2uB,OAAO,EAAE54B,EAAE,CAAC4E,MAAM,CAAC,KAAK,EAAE;iBAAEW,IAAI,EAAE8+B,OAAO,CAACt+B;gBAAO,CAAC,CAACwZ;cACnD,CAAC;;WAGH,IAAIvf,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAACg+B,OAAO,CAACr9B,IAAI,CAAC,EAC1C;aACCs9B,WAAW,CAAC1L,OAAO,CAACrwB,IAAI,CAAC;eACxB0B,KAAK,EAAE,wBAAwB;eAC/B2uB,OAAO,EAAE54B,EAAE,CAAC4E,MAAM,CAAC,KAAK,EAAE;iBAAEW,IAAI,EAAE8+B,OAAO,CAACr9B;gBAAM,CAAC,CAACuY;cAClD,CAAC;;WAGH6kB,YAAY,CAACxL,OAAO,CAACrwB,IAAI,CAAC+7B,WAAW,CAAC;UACtC,CAAC;SAEF1L,OAAO,GAAG54B,EAAE,CAACgK,IAAI,CAACo6B,YAAY,CAAC;;OAGhC,OAAOxL,OAAO;MACd;;CAGH;CACA;CACA;KACEqL,QAAQ,GACR;OACC,IAAI,IAAI,CAACH,KAAK,KAAK,IAAI,EACvB;SACC,IAAI,CAACA,KAAK,GAAG,IAAI9jC,EAAE,CAAC24B,WAAW,CAC9B,IAAI,CAAC6L,UAAU,EAAE,EACjB,IAAI,EACJ;WACCpmB,QAAQ,EAAE,IAAI;WACd4a,OAAO,EAAE,GAAG;WACZ1H,QAAQ,EAAE,GAAG;WACbmT,QAAQ,EAAE,GAAG;WACbC,iBAAiB,EAAE,IAAI;WACvBxL,UAAU,EAAE,IAAI;WAChBG,OAAO,EAAE,CACR,IAAIr5B,EAAE,CAACs5B,iBAAiB,CAAC;aACxBhzB,IAAI,EAAE,IAAI,CAAClG,MAAM,CAACsR,QAAQ,CAAC,OAAO,CAAC;aACnC5M,SAAS,EAAE,gDAAgD;aAC3D6Z,MAAM,EAAE;eACP4a,KAAK,GACL;iBACC,IAAI,CAAChd,WAAW,CAACwD,KAAK,EAAE;;;YAG1B,CAAC;UAEH,CACD;;OAGF,OAAO,IAAI,CAAC+jB,KAAK;MACjB;;CAGH;CACA;CACA;KACEU,UAAU,GACV;OACC,OAAQ,GAAE,IAAI,CAACpkC,MAAM,CAACsZ,cAAc,EAAG,oBAAmB;;IAE3D;CACF,CAAC,GAAG;;CCvKJ,CAAC,YAAW;;GAGX1Z,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;GAEvBD,EAAE,CAACE,IAAI,CAAC8gB,QAAQ,GAAG;KAClB2jB,QAAQ,EAAE,EAAE;KACZ9S,GAAG,CAAC3uB,IAAI,EAAEjB,KAAK,EAAE2iC,OAAO,EAAEC,OAAO,EACjC;OACC7kC,EAAE,CAACsB,IAAI,CAAC4B,IAAI,EAAEjB,KAAK,EAAE4iC,OAAO,GAAG7kC,EAAE,CAACkB,KAAK,CAAC0jC,OAAO,EAAEC,OAAO,CAAC,GAAGD,OAAO,CAAC;;IAErE;CACF,CAAC,GAAG;;CCZJ,CAAC,YAAW;;GAGX5kC,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;GAEvBD,EAAE,CAACE,IAAI,CAAC8nB,QAAQ,GAAG,UAAS5nB,MAAM,EAClC;KACC,IAAI,CAACA,MAAM,GAAG,IAAI;KAClB,IAAI,CAACK,IAAI,CAACL,MAAM,CAAC;IACjB;GAEDJ,EAAE,CAACE,IAAI,CAAC8nB,QAAQ,CAAClnB,SAAS,GAAG;KAC5BL,IAAI,CAACL,MAAM,EACX;OACC,IAAI,CAACA,MAAM,GAAGA,MAAM;OACpBJ,EAAE,CAACgB,cAAc,CAAC,kBAAkB,EAAEhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACkM,QAAQ,EAAE,IAAI,CAAC,CAAC;MACpE;KAEDzL,OAAO,GACP;OACC3B,EAAE,CAAC4B,iBAAiB,CAAC,kBAAkB,EAAE5B,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACkM,QAAQ,EAAE,IAAI,CAAC,CAAC;MACvE;KAEDA,QAAQ,CAACpL,EAAE,EAAEC,KAAK,EAAEC,IAAI,EAAEuZ,SAAS,EAAE5V,KAAK,EAC1C;OACC,MAAM0F,IAAI,GAAG,IAAI;OAEjB,IAAIvJ,EAAE,KAAM,GAAE,IAAI,CAAC5B,MAAM,CAACsZ,cAAc,EAAG,IAAG,IAAI,CAACtZ,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,YAAY,CAAE,EAAC,IAAI8C,KAAK,IAAI,CAAC,EACpG;SACC,IAAI,CAACzF,MAAM,CAACwrB,SAAS,EAAE;SACvB,IAAI,CAACxrB,MAAM,CAACwU,cAAc,EAAE,CAACkwB,WAAW,CAACj/B,KAAK,EAAE,MAAM;WACrD0F,IAAI,CAACnL,MAAM,CAAC2rB,WAAW,EAAE;WACzB/rB,EAAE,CAAC8U,aAAa,CAACvJ,IAAI,CAACnL,MAAM,CAAC4C,YAAY,EAAE,EAAE,uBAAuB,EAAE,CAACuI,IAAI,CAACnL,MAAM,CAAC,CAAC;UACpF,CAAC;;;IAGJ;CACF,CAAC,GAAG;;CCrCJ,CAAC,YAAW;;GAGXJ,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAACq2B,UAAU,GAAG,UAASn2B,MAAM,EACpC;KACC,IAAI,CAACA,MAAM,GAAG,IAAI;KAClB,IAAI,CAACoE,SAAS,GAAG,IAAI;KACrB,IAAI,CAACugC,KAAK,GAAG,IAAI;KACjB,IAAI,CAACtkC,IAAI,CAACL,MAAM,CAAC;IACjB;GAEDJ,EAAE,CAACE,IAAI,CAACq2B,UAAU,CAACz1B,SAAS,GAAG;KAC9BL,IAAI,CAACL,MAAM,EACX;OACC,IAAI,CAACA,MAAM,GAAGA,MAAM;MACpB;KAEDyO,SAAS,GACT;OACC,OAAO,IAAI,CAACzO,MAAM;MAClB;KAED4C,YAAY,GACZ;OACC,IAAI,CAAC,IAAI,CAACwB,SAAS,EACnB;SACC,IAAI,CAACA,SAAS,GAAGxE,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACgM,SAAS,EAAE,CAAC7L,YAAY,EAAE,EAAE,IAAI,CAAC6L,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC;;OAGnI,OAAO,IAAI,CAACyB,SAAS;MACrB;KAEDgvB,QAAQ,GACR;OACC,MAAMjoB,IAAI,GAAG,IAAI;OACjB,MAAMnD,MAAM,GAAGpI,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC0O,QAAQ,CAAC,IAAI,CAACtO,YAAY,EAAE,EAAE,GAAG,CAAC;OAE/D,IAAI,CAAC+hC,KAAK,GAAG,EAAE;OAEf,IAAI38B,MAAM,EACV;SACC,IAAI,CAAC28B,KAAK,GAAG38B,MAAM,CAAC4F,GAAG,CAAEtF,OAAO,IAAK;WACpC,OAAO,IAAI1I,EAAE,CAACE,IAAI,CAACugB,OAAO,CAAC/X,OAAO,EAAE6C,IAAI,CAACsD,SAAS,EAAE,CAAC;UACrD,CAAC;;OAGH,OAAO,IAAI,CAACk2B,KAAK;MACjB;KAED9jB,OAAO,CAAC/d,IAAI,EACZ;OACC,IAAIkF,MAAM,GAAG,IAAI;OACjB,IAAIyF,MAAM;OAEV,IAAI7N,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACQ,IAAI,CAAC,EAC3B;SACC2K,MAAM,GAAG,IAAI,CAAC2lB,QAAQ,EAAE,CAAC3lB,MAAM,CAAEnF,OAAO,IAAK;WAC5C,OAAOxF,IAAI,KAAKwF,OAAO,CAAC8I,OAAO,EAAE;UACjC,CAAC;SAEF,IAAI3D,MAAM,CAACpG,MAAM,GAAG,CAAC,EACrB;WACCW,MAAM,GAAGyF,MAAM,CAAC,CAAC,CAAC;;;OAIpB,OAAOzF,MAAM;;IAEd;CACF,CAAC,GAAG;;CC5EJ,CAAC,YAAW;;GAGXpI,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAAC2nB,SAAS,GAAG,UAASznB,MAAM,EACnC;KACC,IAAI,CAACA,MAAM,GAAG,IAAI;KAClB,IAAI,CAAC+gB,KAAK,GAAG,IAAI;KACjB,IAAI,CAACmR,MAAM,GAAG,IAAI;KAClB,IAAI,CAAC9tB,SAAS,GAAG,IAAI;KACrB,IAAI,CAACwgC,wBAAwB,GAAG,IAAI;KAEpC,MAAMC,UAAU,GAAG,IAAI,CAACC,aAAa,EAAE;KAEvC,IAAID,UAAU,EACd;OACC,IAAI,CAACE,EAAE,GAAG,IAAIC,gBAAgB,CAAC,IAAI,CAACC,oBAAoB,CAAC/jC,IAAI,CAAC,IAAI,CAAC,CAAC;OACpE,IAAI,CAAC6jC,EAAE,CAACG,OAAO,CAACjlB,QAAQ,CAAC6D,eAAe,EAAE;SAAEqhB,UAAU,EAAE;QAAM,CAAC;;KAGhE,IAAI,CAAC9kC,IAAI,CAACL,MAAM,CAAC;IACjB;GAEDJ,EAAE,CAACE,IAAI,CAAC2nB,SAAS,CAAC/mB,SAAS,GAAG;KAC7BL,IAAI,CAACL,MAAM,EACX;OACC,IAAI,CAACA,MAAM,GAAGA,MAAM;OACpB,IAAI,CAAColC,IAAI,GAAGxlC,EAAE,CAAC4jB,GAAG,CAAC,IAAI,CAACxjB,MAAM,CAAC8wB,OAAO,EAAE,CAAC;OACzC,IAAI,CAAClD,QAAQ,GAAGhuB,EAAE,CAAC4jB,GAAG,CAAC,IAAI,CAACxjB,MAAM,CAACghB,QAAQ,EAAE,CAAC;OAE9C,IAAIqkB,QAAQ,GAAGzlC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACS,aAAa,CAACgd,QAAQ,EAAE,mBAAmB,EAAE,IAAI,CAAC;OAE/E,IAAI,CAAColB,QAAQ,EACb;SACCA,QAAQ,GAAG,IAAI,CAACrlC,MAAM,CAAC4C,YAAY,EAAE,CAACmK,UAAU;SAChDs4B,QAAQ,GAAGA,QAAQ,GAAGA,QAAQ,CAACt4B,UAAU,GAAGs4B,QAAQ;;OAGrD,IAAIA,QAAQ,EACZ;SACC,IAAI,CAACT,wBAAwB,GAAG,IAAIhlC,EAAE,CAAC0lC,cAAc,CAAC1lC,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACykC,WAAW,EAAE,IAAI,CAAC,CAAC;SACvF,IAAI,CAACX,wBAAwB,CAACM,OAAO,CAACG,QAAQ,CAAC;;OAGhD,IAAI,CAAC7gC,MAAM,CAAC,IAAI,CAAC;OAEjByb,QAAQ,CAACwB,gBAAgB,CAAC,QAAQ,EAAE7hB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC0kC,SAAS,EAAE,IAAI,CAAC,EAAE5lC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACkf,cAAc,CAAC;SAAEC,OAAO,EAAE;QAAM,CAAC,CAAC;OACpH1B,QAAQ,CAACwB,gBAAgB,CAAC,QAAQ,EAAE7hB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2kC,SAAS,EAAE,IAAI,CAAC,EAAE7lC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACkf,cAAc,CAAC;SAAEC,OAAO,EAAE;QAAM,CAAC,CAAC;OACpH/hB,EAAE,CAACgB,cAAc,CAAC,eAAe,EAAEhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACsqB,aAAa,EAAE,IAAI,CAAC,CAAC;OACtExrB,EAAE,CAACgB,cAAc,CAAC,cAAc,EAAEhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACsqB,aAAa,EAAE,IAAI,CAAC,CAAC;OACrExrB,EAAE,CAACsB,IAAI,CAACL,MAAM,EAAE,QAAQ,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACsqB,aAAa,EAAE,IAAI,CAAC,CAAC;MAC7D;KAEDma,WAAW,GACX;OACC,IAAI,CAAC3X,QAAQ,GAAGhuB,EAAE,CAAC4jB,GAAG,CAAC,IAAI,CAACxjB,MAAM,CAACghB,QAAQ,EAAE,CAAC;OAC9C,IAAI,CAACokB,IAAI,GAAGxlC,EAAE,CAAC4jB,GAAG,CAAC,IAAI,CAACxjB,MAAM,CAAC8wB,OAAO,EAAE,CAAC;MACzC;KAED1F,aAAa,GACb;OACC,MAAM/Y,QAAQ,GAAG,IAAI,CAACA,QAAQ,EAAE;OAEhCzS,EAAE,CAAC2I,MAAM,CAAC,IAAI,CAAC3F,YAAY,EAAE,CAAC;OAC9B,IAAI,CAAC4B,MAAM,EAAE;OAEb6N,QAAQ,IAAI,IAAI,CAACqzB,GAAG,EAAE;OAEtB,IAAI,CAAC3kB,KAAK,GAAG,IAAI;OACjB,IAAI,CAACwkB,WAAW,EAAE;OAElB,IAAI,CAACC,SAAS,EAAE;OAEhB5lC,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,qBAAqB,EAAE,EAAE,CAAC;MACnD;KAED2D,MAAM,CAACmhC,KAAK,EACZ;OACC,MAAMxzB,KAAK,GAAGvS,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC0O,QAAQ,CAAC,IAAI,CAAClR,MAAM,CAAC8wB,OAAO,EAAE,EAAE,IAAI,CAAC;OACjE,MAAM8U,UAAU,GAAGhmC,EAAE,CAAC2L,KAAK,CAAC,IAAI,CAACvL,MAAM,CAAC8wB,OAAO,EAAE,CAAC;OAClD,MAAM+U,UAAU,GAAGjmC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC0O,QAAQ,CAAC00B,UAAU,EAAE,IAAI,CAAC;OAE3D,MAAME,gBAAgB,GAAG,YACzB;SACC3zB,KAAK,CAAC9J,OAAO,CACZ,CAAC4J,IAAI,EAAEe,KAAK,KAAK;WAChB,IAAIN,KAAK,GAAG9S,EAAE,CAAC8S,KAAK,CAACT,IAAI,CAAC;WAE1B,IAAIe,KAAK,GAAG,CAAC,EACb;aACCN,KAAK,IAAI6e,QAAQ,CAAC3xB,EAAE,CAAC0T,KAAK,CAACrB,IAAI,EAAE,mBAAmB,CAAC,CAAC;aACtDS,KAAK,IAAI6e,QAAQ,CAAC3xB,EAAE,CAAC0T,KAAK,CAACrB,IAAI,EAAE,oBAAoB,CAAC,CAAC;;WAGxD4zB,UAAU,CAAC7yB,KAAK,CAAC,CAAC+yB,iBAAiB,KAAKF,UAAU,CAAC7yB,KAAK,CAAC,CAAC+yB,iBAAiB,CAACzyB,KAAK,CAACZ,KAAK,GAAI,GAAEA,KAAM,IAAG,CAAC;WAEvG,IAAIP,KAAK,CAAC9K,MAAM,GAAG,CAAC,GAAG2L,KAAK,EAC5B;aACC6yB,UAAU,CAAC7yB,KAAK,CAAC,CAACM,KAAK,CAACZ,KAAK,GAAI,GAAEA,KAAM,IAAG;;UAE7C,CACD;QACD;OAEDizB,KAAK,GAAGhxB,UAAU,CAACmxB,gBAAgB,EAAE,CAAC,CAAC,GAAGA,gBAAgB,EAAE;OAE5D,IAAI,CAAC1hC,SAAS,GAAGxE,EAAE,CAACgK,IAAI,CAAC;SACxBC,KAAK,EAAE,qBAAqB;SAC5BC,GAAG,EAAE,qBAAqB;SAC1BnF,KAAK,EAAE;WACN2O,KAAK,EAAG,UAAS1T,EAAE,CAAC8S,KAAK,CAAC,IAAI,CAAC1S,MAAM,CAAC4C,YAAY,EAAE,CAAE;UACtD;SACD41B,OAAO,EAAE;WACR3uB,KAAK,EAAE,iBAAiB;WACxBwlB,GAAG,EAAE,OAAO;WACZmJ,OAAO,EAAEoN;;QAEV,CAAC;OAEF,IAAI,CAACxhC,SAAS,CAAC+6B,MAAM,GAAG,IAAI;OAE5B,IAAI,CAACn/B,MAAM,CAACq3B,UAAU,EAAE,CAACjyB,WAAW,CAAC,IAAI,CAAChB,SAAS,CAAC;MACpD;KAEDxB,YAAY,GACZ;OACC,OAAO,IAAI,CAACwB,SAAS;MACrB;KAEDoN,aAAa,GACb;OACC,OAAO,IAAI,CAACuP,KAAK,KAAK,IAAI,CAACA,KAAK,GAAGnhB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC0O,QAAQ,CAAC,IAAI,CAACtO,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;MAC9F;KAEDkiC,aAAa,GACb;OACC,IAAI,CAAC,IAAI,CAACD,UAAU,EACpB;SACC,IAAI,CAACA,UAAU,GAAG5kB,QAAQ,CAAC5G,aAAa,CAAC,aAAa,CAAC;;OAGxD,OAAO,IAAI,CAACwrB,UAAU;MACtB;KAEDmB,kBAAkB,GAClB;OACC,OAAOpmC,EAAE,CAACmD,QAAQ,CAACkd,QAAQ,CAAC6D,eAAe,EAAE,kBAAkB,CAAC;MAChE;KAEDmiB,YAAY,GACZ;OACC,MAAMpB,UAAU,GAAG,IAAI,CAACC,aAAa,EAAE;OAEvC,IAAID,UAAU,IAAI,IAAI,CAACmB,kBAAkB,EAAE,EAC3C;SACC,OAAOpmC,EAAE,CAACkhC,IAAI,CAACoF,QAAQ,CAACtmC,EAAE,CAAC0T,KAAK,CAACuxB,UAAU,EAAE,QAAQ,CAAC,CAAC;;OAGxD,OAAO,CAAC;MACR;KAEDa,GAAG,GACH;OACC,MAAMthC,SAAS,GAAG,IAAI,CAACxB,YAAY,EAAE;OAErC,IAAIwB,SAAS,EACb;SACCA,SAAS,CAAC+6B,MAAM,GAAG,KAAK;;OAGzBv/B,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC;MAClD;KAEDslC,KAAK,GACL;OACC,MAAM/hC,SAAS,GAAG,IAAI,CAACxB,YAAY,EAAE;OAErC,IAAIwB,SAAS,EACb;SACCA,SAAS,CAAC+6B,MAAM,GAAG,IAAI;;OAGxBv/B,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,sBAAsB,EAAE,EAAE,CAAC;MACpD;KAEDulC,OAAO,GACP;OACCxmC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACqR,YAAY,CAAC,CAAC,IAAI,CAACjR,YAAY,EAAE,CAAC,EAAE;SACjD6+B,QAAQ,EAAE,UAAU;SACpBxd,GAAG,EAAI,GAAE,IAAI,CAAC2J,QAAQ,CAACzJ,MAAM,GAAG,IAAI,CAACihB,IAAI,CAAC9hB,MAAM,GAAG,IAAI,CAACsK,QAAQ,CAAC3J,GAAI,IAAI;SACzE,YAAY,EAAE;QACd,CAAC;MACF;KAEDoiB,QAAQ,GACR;OACCzmC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACqR,YAAY,CAAC,CAAC,IAAI,CAACjR,YAAY,EAAE,CAAC,EAAE;SACjD6+B,QAAQ,EAAE,OAAO;SACjBxd,GAAG,EAAG,GAAE,IAAI,CAACgiB,YAAY,EAAG,IAAG;SAC/B,YAAY,EAAE;QACd,CAAC;MACF;KAED5zB,QAAQ,GACR;OACC,OAAO,CAAC,IAAI,CAACzP,YAAY,EAAE,CAACu8B,MAAM;MAClC;KAEDqG,SAAS,GACT;OACC,IAAI5hB,OAAO,GAAG,CAAC;OAEf,IAAI,IAAI,CAAC0iB,UAAU,EACnB;SACC1iB,OAAO,GAAG,IAAI,CAAC0iB,UAAU,CAACviB,SAAS;QACnC,MAEA,IAAI9D,QAAQ,CAACsmB,gBAAgB,EAC7B;SACC,IAAI,CAACD,UAAU,GAAGrmB,QAAQ,CAACsmB,gBAAgB;QAC3C,MAEA,IAAItmB,QAAQ,CAAC6D,eAAe,CAACC,SAAS,GAAG,CAAC,EAC1C;SACC,IAAI,CAACuiB,UAAU,GAAGrmB,QAAQ,CAAC6D,eAAe;QAC1C,MACI,IAAI7D,QAAQ,CAACE,IAAI,CAAC4D,SAAS,GAAG,CAAC,EACpC;SACC,IAAI,CAACuiB,UAAU,GAAGrmB,QAAQ,CAACE,IAAI;;OAGlC,IAAI,IAAI,CAACyN,QAAQ,CAACzJ,MAAM,GAAIP,OAAO,GAAG,IAAI,CAACwhB,IAAI,CAAC9hB,MAAO,EACvD;SACC,IAAI,CAAC+iB,QAAQ,EAAE;SAEf,MAAM92B,MAAM,GAAG,IAAI,CAAC02B,YAAY,EAAE;SAElC,IAAK,IAAI,CAACb,IAAI,CAACnhB,GAAG,GAAG1U,MAAM,IAAKqU,OAAO,EACvC;WACC,CAAC,IAAI,CAACvR,QAAQ,EAAE,IAAI,IAAI,CAACqzB,GAAG,EAAE;UAC9B,MAED;WACC,IAAI,CAACrzB,QAAQ,EAAE,IAAI,IAAI,CAAC8zB,KAAK,EAAE;;QAEhC,MAED;SACC,IAAI,CAACC,OAAO,EAAE;;MAEf;KAEDnB,oBAAoB,GACpB;OACC,IAAI,CAACO,SAAS,EAAE;MAChB;KAEDC,SAAS,GACT;OACC,IAAI,CAACL,IAAI,GAAGxlC,EAAE,CAAC4jB,GAAG,CAAC,IAAI,CAACxjB,MAAM,CAAC8wB,OAAO,EAAE,CAAC;;IAE1C;CACF,CAAC,GAAG;;CC5QJ,CAAC,YAAW;;GAGXlxB,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAACgoB,QAAQ,GAAG,UAAS9nB,MAAM,EAClC;KACC,IAAI,CAACA,MAAM,GAAG,IAAI;KAClB,IAAI,CAACgB,KAAK,GAAG,IAAI;KACjB,IAAI,CAAC+0B,UAAU,GAAG,IAAI;KACtB,IAAI,CAACxmB,MAAM,GAAG,IAAI;KAClB,IAAI,CAACi3B,iBAAiB,GAAG,IAAI;KAC7B,IAAI,CAACC,MAAM,GAAG,KAAK;KACnB,IAAI,CAACpmC,IAAI,CAACL,MAAM,CAAC;IACjB;GAEDJ,EAAE,CAACE,IAAI,CAACgoB,QAAQ,CAACpnB,SAAS,GAAG;KAC5BL,IAAI,CAACL,MAAM,EAAE;OACZ,IAAI,CAACA,MAAM,GAAGA,MAAM;OACpB,IAAI,CAACuP,MAAM,GAAG,EAAE;OAChB,IAAI,CAACi3B,iBAAiB,GAAG,GAAG;OAC5B,IAAI,CAACxlC,KAAK,GAAG,IAAI,CAACC,QAAQ,EAAE;OAC5B,IAAI,CAACylC,gBAAgB,EAAE;MACvB;KAEDnlC,OAAO,GACP;OACC,IAAI,CAAColC,kBAAkB,EAAE;MACzB;KAEDD,gBAAgB,GAChB;OACC9mC,EAAE,CAACgB,cAAc,CAAC,yBAAyB,EAAEhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC8lC,oBAAoB,EAAE,IAAI,CAAC,CAAC;OACvFhnC,EAAE,CAACgB,cAAc,CAAC,uBAAuB,EAAEhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC8lC,oBAAoB,EAAE,IAAI,CAAC,CAAC;OACrFhnC,EAAE,CAACgB,cAAc,CAAC,sBAAsB,EAAEhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC+lC,iBAAiB,EAAE,IAAI,CAAC,CAAC;OACjFjnC,EAAE,CAACgB,cAAc,CAAC,yBAAyB,EAAEhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC+lC,iBAAiB,EAAE,IAAI,CAAC,CAAC;OACpFjnC,EAAE,CAACgB,cAAc,CAAC,eAAe,EAAEhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC+lC,iBAAiB,EAAE,IAAI,CAAC,CAAC;MAC1E;KAEDF,kBAAkB,GAClB;OACC/mC,EAAE,CAAC4B,iBAAiB,CAAC,yBAAyB,EAAE5B,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC8lC,oBAAoB,EAAE,IAAI,CAAC,CAAC;OAC1FhnC,EAAE,CAAC4B,iBAAiB,CAAC,uBAAuB,EAAE5B,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC8lC,oBAAoB,EAAE,IAAI,CAAC,CAAC;OACxFhnC,EAAE,CAAC4B,iBAAiB,CAAC,sBAAsB,EAAE5B,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC+lC,iBAAiB,EAAE,IAAI,CAAC,CAAC;OACpFjnC,EAAE,CAAC4B,iBAAiB,CAAC,yBAAyB,EAAE5B,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC+lC,iBAAiB,EAAE,IAAI,CAAC,CAAC;OACvFjnC,EAAE,CAAC4B,iBAAiB,CAAC,eAAe,EAAE5B,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC+lC,iBAAiB,EAAE,IAAI,CAAC,CAAC;MAC7E;KAEDC,kBAAkB,GAClB;OACClnC,EAAE,CAACsB,IAAI,CAACL,MAAM,EAAE,QAAQ,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2kC,SAAS,EAAE,IAAI,CAAC,CAAC;OACzDxlB,QAAQ,CAACwB,gBAAgB,CAAC,QAAQ,EAAE7hB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC0kC,SAAS,EAAE,IAAI,CAAC,EAAE5lC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACkf,cAAc,CAAC;SAAEC,OAAO,EAAE;QAAM,CAAC,CAAC;MACpH;KAEDolB,oBAAoB,GACpB;OACCnnC,EAAE,CAACuiB,MAAM,CAACthB,MAAM,EAAE,QAAQ,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC2kC,SAAS,EAAE,IAAI,CAAC,CAAC;OAC3DxlB,QAAQ,CAACmC,mBAAmB,CAAC,QAAQ,EAAExiB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC0kC,SAAS,EAAE,IAAI,CAAC,EAAE5lC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACkf,cAAc,CAAC;SAAEC,OAAO,EAAE;QAAM,CAAC,CAAC;MACvH;KAED1gB,QAAQ,GAAG;OACV,IAAI,CAACD,KAAK,GAAG,IAAI,CAACA,KAAK,IAAI,IAAI,CAAChB,MAAM,CAACspB,eAAe,EAAE,CAACroB,QAAQ,EAAE;OAEnE,OAAO,IAAI,CAACD,KAAK;MACjB;KAEDgmC,eAAe,GACf;OACC,OAAQpnC,EAAE,CAACmkB,SAAS,CAACljB,MAAM,CAAC,GAAG,IAAI,CAAComC,eAAe,EAAE;MACrD;KAEDC,YAAY,GACZ;OACC,IAAI,CAACtnC,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAAC,IAAI,CAAC+9B,SAAS,CAAC,EAC1C;SACC,IAAI,CAACA,SAAS,GAAGvnC,EAAE,CAAC4jB,GAAG,CAAC,IAAI,CAACviB,QAAQ,EAAE,CAAC;;OAGzC,OAAO,IAAI,CAACkmC,SAAS;MACrB;KAEDC,kBAAkB,GAClB;OACC,MAAMC,IAAI,GAAGznC,EAAE,CAAC0nC,eAAe,CAAC,IAAI,CAACrmC,QAAQ,EAAE,CAAC;OAEhD,OAAOrB,EAAE,CAAC4jB,GAAG,CAAC6jB,IAAI,CAAC,CAACljB,MAAM,GAAGiK,UAAU,CAACxuB,EAAE,CAAC0T,KAAK,CAAC+zB,IAAI,EAAE,eAAe,CAAC,CAAC;MACxE;KAEDJ,eAAe,GACf;OACC,IAAI,CAAC5jB,YAAY,GAAG,IAAI,CAACA,YAAY,IAAIzjB,EAAE,CAAC0jB,MAAM,CAACziB,MAAM,CAAC;OAE1D,OAAO,IAAI,CAACwiB,YAAY;MACxB;KAEDoD,QAAQ,CAAC8gB,aAAa,EACtB;OACC,MAAMvmC,KAAK,GAAG,IAAI,CAACC,QAAQ,EAAE;OAC7B,MAAMyR,KAAK,GAAG9S,EAAE,CAAC8S,KAAK,CAAC,IAAI,CAACzR,QAAQ,EAAE,CAAC8L,UAAU,CAAC;OAClD,MAAMuW,MAAM,GAAG1jB,EAAE,CAAC0jB,MAAM,CAAC,IAAI,CAACriB,QAAQ,EAAE,CAAC8L,UAAU,CAAC;OACpD,MAAMy6B,QAAQ,GAAG5nC,EAAE,CAAC4jB,GAAG,CAAC,IAAI,CAACxjB,MAAM,CAACw3B,OAAO,EAAE,CAAC;OAC9C,MAAMjoB,MAAM,GAAG,IAAI,CAACk4B,yBAAyB,EAAE;OAE/CzmC,KAAK,CAAC+L,UAAU,CAACuG,KAAK,CAACyL,WAAW,CAAC,QAAQ,EAAG,GAAEuE,MAAO,IAAG,CAAC;OAE3DtiB,KAAK,CAACsS,KAAK,CAACyL,WAAW,CAAC,WAAW,EAAG,cAAaxP,MAAO,KAAI,CAAC;OAC/DvO,KAAK,CAACoT,SAAS,CAACqd,GAAG,CAAC,wBAAwB,CAAC;OAC7CzwB,KAAK,CAACsS,KAAK,CAACyL,WAAW,CAAC,OAAO,EAAG,GAAErM,KAAM,IAAG,CAAC;OAC9C1R,KAAK,CAACsS,KAAK,CAACo0B,cAAc,CAAC,UAAU,CAAC;OACtC1mC,KAAK,CAACsS,KAAK,CAACo0B,cAAc,CAAC,KAAK,CAAC;OAEjCtjB,qBAAqB,CAAC,MAAM;SAC3B,IAAImjB,aAAa,KAAK,KAAK,EAC3B;WACCvmC,KAAK,CAACsS,KAAK,CAACyL,WAAW,CAAC,YAAY,EAAE,sBAAsB,CAAC;;SAG9D/d,KAAK,CAACsS,KAAK,CAACyL,WAAW,CAAC,WAAW,EAAE,eAAe,CAAC;QACrD,CAAC;OAEF,IAAI,IAAI,CAAC4oB,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAACC,WAAW,EACjD;SACC,IAAI,CAACA,WAAW,GAAG,IAAI;SACvB5mC,KAAK,CAACsS,KAAK,CAACo0B,cAAc,CAAC,YAAY,CAAC;SACxC1mC,KAAK,CAACsS,KAAK,CAACyL,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC;SAC/C/d,KAAK,CAACsS,KAAK,CAACyL,WAAW,CAAC,KAAK,EAAG,GAAEyoB,QAAQ,CAACvjB,GAAI,IAAG,CAAC;;OAGpD,IAAI,CAAC,IAAI,CAAC0jB,iBAAiB,EAAE,IAAI,IAAI,CAACC,WAAW,EACjD;SACC,IAAI,CAACA,WAAW,GAAG,KAAK;;OAGzB,IAAI,CAACC,mBAAmB,EAAE;OAC1B,IAAI,CAACpB,MAAM,GAAG,IAAI;MAClB;KAEDqB,UAAU,CAACP,aAAa,EACxB;OACC,MAAMvmC,KAAK,GAAG,IAAI,CAACC,QAAQ,EAAE;OAC7B,MAAMkmC,SAAS,GAAGvnC,EAAE,CAAC4jB,GAAG,CAACxiB,KAAK,CAAC;OAC/B,MAAM+mC,UAAU,GAAGnoC,EAAE,CAAC4jB,GAAG,CAACxiB,KAAK,CAAC+L,UAAU,CAAC;OAC3C,MAAMwC,MAAM,GAAGiD,IAAI,CAAC+b,GAAG,CAAC4Y,SAAS,CAAChjB,MAAM,GAAG4jB,UAAU,CAAC5jB,MAAM,CAAC;OAE7D,IAAIojB,aAAa,KAAK,KAAK,EAC3B;SACCvmC,KAAK,CAACsS,KAAK,CAACyL,WAAW,CAAC,YAAY,EAAE,sBAAsB,CAAC;;OAG9D,MAAMipB,eAAe,GAAGz4B,MAAM,GAAG43B,SAAS,CAAC7jB,MAAM,GAAI,GAAE/T,MAAO,IAAG,GAAG,MAAM;OAC1EvO,KAAK,CAACsS,KAAK,CAACyL,WAAW,CAAC,WAAW,EAAG,cAAaipB,eAAgB,GAAE,CAAC;OAEtE,MAAMC,KAAK,GAAG,UAASC,EAAE,EAAED,KAAK,EAChC;SACC,IAAIV,aAAa,KAAK,KAAK,EAC3B;WACC,OAAO5yB,UAAU,CAACuzB,EAAE,EAAED,KAAK,CAAC;;SAG7BC,EAAE,EAAE;QACJ;OAEDD,KAAK,CAAC,MAAM;SACXjnC,KAAK,CAAC+L,UAAU,CAACuG,KAAK,CAACo0B,cAAc,CAAC,QAAQ,CAAC;SAC/C1mC,KAAK,CAACoT,SAAS,CAAC7L,MAAM,CAAC,wBAAwB,CAAC;SAChDvH,KAAK,CAACsS,KAAK,CAACo0B,cAAc,CAAC,YAAY,CAAC;SACxC1mC,KAAK,CAACsS,KAAK,CAACo0B,cAAc,CAAC,WAAW,CAAC;SACvC1mC,KAAK,CAACsS,KAAK,CAACo0B,cAAc,CAAC,OAAO,CAAC;SACnC1mC,KAAK,CAACsS,KAAK,CAACo0B,cAAc,CAAC,UAAU,CAAC;SACtC1mC,KAAK,CAACsS,KAAK,CAACo0B,cAAc,CAAC,KAAK,CAAC;QACjC,EAAEH,aAAa,KAAK,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC;OAErC,IAAI,CAACd,MAAM,GAAG,KAAK;MACnB;KAED0B,cAAc,GACd;OACC,OAAO,IAAI,CAACpS,UAAU;MACtB;KAED4R,iBAAiB,GACjB;OACC,OACG/nC,EAAE,CAAC4jB,GAAG,CAAC,IAAI,CAACxjB,MAAM,CAACw3B,OAAO,EAAE,CAAC,CAACvT,GAAG,GAAG,IAAI,CAACijB,YAAY,EAAE,CAAC5jB,MAAM,IAAK,IAAI,CAAC0jB,eAAe,EAAE;MAE5F;KAEDoB,SAAS,GACT;OACC,OAAQ,IAAI,CAACpB,eAAe,EAAE,GAAG,IAAI,CAACE,YAAY,EAAE,CAAC5jB,MAAM,IAAK,IAAI,CAAC8jB,kBAAkB,EAAE;MACzF;KAEDS,mBAAmB,GACnB;OACC,MAAMQ,OAAO,GAAGxnC,MAAM,CAACynC,WAAW;OAClC,IAAI,CAACC,WAAW,GAAG,IAAI,CAACA,WAAW,KAAK,IAAI,GAAGF,OAAO,GAAG,IAAI,CAACE,WAAW;OAEzE3oC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC4hB,qBAAqB,CAACxkB,EAAE,CAACkB,KAAK,CAAC,YAAW;SACvD,IAAIunC,OAAO,KAAK,IAAI,CAACE,WAAW,EAChC;WACC,MAAMC,QAAQ,GAAG,IAAI,CAACtB,YAAY,EAAE;WACpCtnC,EAAE,CAAC0T,KAAK,CAAC,IAAI,CAACrS,QAAQ,EAAE,EAAE,MAAM,EAAG,GAAEunC,QAAQ,CAACz2B,IAAI,GAAGs2B,OAAQ,IAAG,CAAC;;QAElE,EAAE,IAAI,CAAC,CAAC;OAET,IAAI,CAACE,WAAW,GAAGF,OAAO;MAC1B;KAEDI,aAAa,CAAClB,aAAa,EAC3B;OACC,IAAI,IAAI,CAACtmC,QAAQ,EAAE,EACnB;SACC,IAAI,CAAC,IAAI,CAACoR,QAAQ,EAAE,IAAI,IAAI,CAAC+1B,SAAS,EAAE,IAAI,IAAI,CAACD,cAAc,EAAE,EACjE;WACC,OAAO,IAAI,CAAC1hB,QAAQ,CAAC8gB,aAAa,CAAC;;SAGpC,IAAI,IAAI,CAACl1B,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC+1B,SAAS,EAAE,IAAI,CAAC,IAAI,CAACD,cAAc,EAAE,EAClE;WACC,IAAI,CAACL,UAAU,CAACP,aAAa,CAAC;;;MAGhC;KAEDmB,uBAAuB,GACvB;OACC,MAAMF,QAAQ,GAAG5oC,EAAE,CAAC4jB,GAAG,CAAC,IAAI,CAACviB,QAAQ,EAAE,CAAC;OACxC,MAAM0nC,YAAY,GAAG/oC,EAAE,CAAC4jB,GAAG,CAAC5jB,EAAE,CAAC0nC,eAAe,CAAC,IAAI,CAACrmC,QAAQ,EAAE,CAAC,CAAC;OAChE,MAAM8iB,SAAS,GAAGnkB,EAAE,CAACmkB,SAAS,CAACljB,MAAM,CAAC;OACtC,MAAMgtB,YAAY,GAAG9J,SAAS,GAAGnkB,EAAE,CAAC0jB,MAAM,CAACziB,MAAM,CAAC;OAClD,IAAIitB,IAAI,GAAG0a,QAAQ,CAACllB,MAAM,GAAG,IAAI,CAAC/T,MAAM;OACxC,MAAMq5B,eAAe,GAAID,YAAY,CAACxkB,MAAM,GAAGiK,UAAU,CAACxuB,EAAE,CAAC0T,KAAK,CAAC,IAAI,CAACrS,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAE;OAEnG,IAAI2nC,eAAe,GAAG/a,YAAY,IAAK+a,eAAe,GAAGJ,QAAQ,CAACllB,MAAM,GAAIuK,YAAY,EACxF;SACCC,IAAI,GAAGtb,IAAI,CAAC+b,GAAG,CAACV,YAAY,IAAI+a,eAAe,GAAGJ,QAAQ,CAACllB,MAAM,CAAC,CAAC;;OAGpE,OAAOwK,IAAI;MACX;KAED2Z,yBAAyB,GACzB;OACC,MAAMe,QAAQ,GAAG5oC,EAAE,CAAC4jB,GAAG,CAAC,IAAI,CAACviB,QAAQ,EAAE,CAAC;OACxC,MAAM8iB,SAAS,GAAGnkB,EAAE,CAACmkB,SAAS,CAACljB,MAAM,CAAC;OACtC,MAAMgtB,YAAY,GAAG9J,SAAS,GAAGnkB,EAAE,CAAC0jB,MAAM,CAACziB,MAAM,CAAC;OAClD,IAAIitB,IAAI,GAAG0a,QAAQ,CAACllB,MAAM;OAE1B,IAAIklB,QAAQ,CAACrkB,MAAM,GAAG0J,YAAY,IAAI2a,QAAQ,CAACvkB,GAAG,GAAG4J,YAAY,EACjE;SACCC,IAAI,GAAG0a,QAAQ,CAACrkB,MAAM,GAAG0J,YAAY;;OAGtC,OAAOC,IAAI;MACX;KAEDzb,QAAQ,GACR;OACC,OAAO,IAAI,CAACo0B,MAAM;MAClB;KAEDG,oBAAoB,GACpB;OACC,IAAI,CAACE,kBAAkB,EAAE;OACzB,IAAI,CAAC/Q,UAAU,GAAG,IAAI;OAEtB,IAAI,IAAI,CAAC8S,cAAc,EACvB;SACC,IAAI,CAACJ,aAAa,EAAE;QACpB,MAED;SACC,IAAI,CAACI,cAAc,GAAG,IAAI;SAC1B,IAAI,CAACJ,aAAa,EAAE;;MAErB;KAED5B,iBAAiB,GACjB;OACC,IAAI,CAACE,oBAAoB,EAAE;OAC3B,IAAI,CAAChR,UAAU,GAAG,KAAK;OACvB,IAAI,CAAC0S,aAAa,EAAE;OACpB,IAAI,CAACI,cAAc,GAAG,KAAK;MAC3B;KAEDrD,SAAS,GACT;OACC,IAAI,CAACiD,aAAa,CAAC,KAAK,CAAC;MACzB;KAEDhD,SAAS,GACT;OACC,IAAI,CAACpiB,YAAY,GAAGzjB,EAAE,CAAC0jB,MAAM,CAACziB,MAAM,CAAC;OACrC,IAAI,CAACG,KAAK,GAAG,IAAI,CAAChB,MAAM,CAACspB,eAAe,EAAE,CAACroB,QAAQ,EAAE;OACrD,IAAI,CAACkmC,SAAS,GAAG,IAAI,CAAClmC,QAAQ,EAAE,CAACsR,qBAAqB,EAAE;OACxD,IAAI,CAACk2B,aAAa,CAAC,KAAK,CAAC;;IAE1B;CACF,CAAC,GAAG;;;;;;;;AC/SJ,CAgCA;CACA;CACA;AACA,CAAO,MAAM7M,QAAQ,SAAShW,6BAAY,CAC1C;GACCkjB,WAAW,CAAClhC,OAAwB,EACpC;KACC,KAAK,EAAE;KACP,IAAI,CAACmhC,iBAAiB,CAAC,kBAAkB,CAAC;KAC1C,IAAI,CAACnhC,OAAO,GAAG;OAAE,GAAGA;MAAS;;GAG9BglB,MAAM,CAAChlB,OAAsB,EAC7B;KACC,MAAM;OAAEsd;MAAM,GAAG,IAAI,CAACtd,OAAO;KAC7B,MAAM8F,GAAG,GAAGwX,IAAI,CAAC2U,cAAc,EAAE;KACjCnsB,GAAG,CAAC4tB,aAAa,EAAE;KACnBpW,IAAI,CAACyU,aAAa,EAAE;KAEpB,IAAI9kB,cAAI,CAACjB,QAAQ,CAAChM,OAAO,CAAChG,EAAE,CAAC,IAAIiT,cAAI,CAACm0B,cAAc,CAACphC,OAAO,CAAChG,EAAE,CAAC,EAChE;OACC8L,GAAG,CAAC6tB,KAAK,CAAC3zB,OAAO,CAAChG,EAAE,CAAC;MACrB,MAED;OACC,MAAM,IAAIqnC,cAAc,CAAC,4BAA4B,CAAC;;KAGvD,IAAIp0B,cAAI,CAAC2rB,aAAa,CAAC54B,OAAO,CAAC3H,OAAO,CAAC,EACvC;OACCyN,GAAG,CAAC8tB,UAAU,CAAC5zB,OAAO,CAAC3H,OAAO,CAAC;;KAGhC,IAAI4U,cAAI,CAACzL,aAAa,CAACxB,OAAO,CAAC2M,OAAO,CAAC,EACvC;OACC7G,GAAG,CAAC+tB,eAAe,CAAC7zB,OAAO,CAAC2M,OAAO,CAAC;;KAGrC,IAAIM,cAAI,CAACzL,aAAa,CAACxB,OAAO,CAACshC,WAAW,CAAC,EAC3C;OACCx7B,GAAG,CAACy7B,cAAc,CAACvhC,OAAO,CAACshC,WAAW,CAAC;;KAGxC,IAAIr0B,cAAI,CAACzL,aAAa,CAACxB,OAAO,CAACwhC,QAAQ,CAAC,EACxC;OACC,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,OAAO,CAAC3hC,OAAO,CAACwhC,QAAQ,CAAC,CAAC/Y,MAAM,CAAC,CAACU,GAAG,EAAE,CAACyY,QAAQ,EAAEpS,OAAO,CAAC,KAAK;SAC9F,IAAIviB,cAAI,CAACzL,aAAa,CAACguB,OAAO,CAAC,EAC/B;WAAA;WACCrG,GAAG,CAACyY,QAAQ,CAAC,GAAG;aACf,GAAGpS,OAAO;aACVqS,QAAQ,uBAAErS,OAAO,CAACqS,QAAQ,gCAAI,KAAK;aACnCC,cAAc,EAAEtS,OAAO,CAACsS,cAAc;aACtCC,SAAS,EAAE7I,cAAI,CAAC8I,SAAS,CAACxS,OAAO,CAACuS,SAAS;YAC3C;;SAGF,OAAO5Y,GAAG;QACV,EAAE,EAAE,CAAC;OAENrjB,GAAG,CAACm8B,WAAW,CAACR,gBAAgB,CAAC;;KAGlC,IAAIzhC,OAAO,CAACoyB,OAAO,KAAK,IAAI,EAC5B;OACCtsB,GAAG,CAACstB,SAAS,CAAC9V,IAAI,CAACsS,OAAO,EAAE,CAAC;MAC7B,MACI,IAAI5vB,OAAO,CAAC+yB,MAAM,KAAK,IAAI,EAChC;OACCjtB,GAAG,CAACutB,QAAQ,CAAC/V,IAAI,CAACsS,OAAO,EAAE,CAAC;MAC5B,MACI,IAAI3iB,cAAI,CAACjB,QAAQ,CAAChM,OAAO,CAACkiC,YAAY,CAAC,IAAIj1B,cAAI,CAACm0B,cAAc,CAACphC,OAAO,CAACkiC,YAAY,CAAC,EACzF;OACC,MAAMC,SAAS,GAAG7kB,IAAI,CAAC3X,OAAO,EAAE,CAAC2S,OAAO,CAACtY,OAAO,CAACkiC,YAAY,CAAC;OAC9D,IAAIC,SAAS,EACb;SACCnqC,EAAE,CAACkH,GAAG,CAACgjC,YAAY,CAACp8B,GAAG,CAAC0D,OAAO,EAAE,EAAE24B,SAAS,CAAC34B,OAAO,EAAE,CAAC;;MAExD,MACI,IAAIyD,cAAI,CAACjB,QAAQ,CAAChM,OAAO,CAAC6D,WAAW,CAAC,IAAIoJ,cAAI,CAACm0B,cAAc,CAACphC,OAAO,CAAC6D,WAAW,CAAC,EACvF;OACC,MAAMs+B,SAAS,GAAG7kB,IAAI,CAAC3X,OAAO,EAAE,CAAC2S,OAAO,CAACtY,OAAO,CAAC6D,WAAW,CAAC;OAC7D,IAAIs+B,SAAS,EACb;SACCnqC,EAAE,CAACkH,GAAG,CAAC2E,WAAW,CAACiC,GAAG,CAAC0D,OAAO,EAAE,EAAE24B,SAAS,CAAC34B,OAAO,EAAE,CAAC;;MAEvD,MAED;OACC,MAAM,IAAI63B,cAAc,CAAC,yDAAyD,CAAC;;KAGpFv7B,GAAG,CAAC3E,IAAI,EAAE;KAEV,IAAInB,OAAO,CAAC+hC,SAAS,KAAK,KAAK,EAC/B;OACCj8B,GAAG,CAACs8B,sBAAsB,EAAE;OAE5B,MAAMC,aAAa,GAAG/kB,IAAI,CAAC3X,OAAO,EAAE,CAACib,kBAAkB,EAAE,CAAC/a,MAAM,CAAEooB,UAAU,IAAK;SAChF,OAAOA,UAAU,CAACuF,QAAQ,GAAG1tB,GAAG,CAACmF,QAAQ,EAAE;QAC3C,CAAC;OAEF,MAAMq3B,WAAW,GAAGjqB,QAAQ,CAACkqB,aAAa,CAAC,IAAI,CAAC;OAChDrjC,aAAG,CAACwM,KAAK,CAAC42B,WAAW,EAAE;SACtB5mB,MAAM,EAAE,KAAK;SACb3P,UAAU,EAAE;QACZ,CAAC;OACF7M,aAAG,CAAC6zB,MAAM,CAACuP,WAAW,EAAEhlB,IAAI,CAACsS,OAAO,EAAE,CAAC;OAEvC,MAAMjoB,MAAM,GAAG7B,GAAG,CAAC08B,SAAS,EAAE;OAC9BtjC,aAAG,CAACwM,KAAK,CAAC42B,WAAW,EAAE,QAAQ,EAAG,GAAE36B,MAAO,IAAG,CAAC;OAC/C06B,aAAa,CAAC5hC,OAAO,CAAEN,OAAO,IAAK;SAClCjB,aAAG,CAACwM,KAAK,CAACvL,OAAO,EAAE;WAClB4L,UAAU,EAAE,wBAAwB;WACpCJ,SAAS,EAAG,cAAahE,MAAO;UAChC,CAAC;QACF,CAAC;OAEFzI,aAAG,CAACE,QAAQ,CAAC0G,GAAG,CAAC0D,OAAO,EAAE,EAAE,2BAA2B,CAAC;OAExDuU,eAAK,CAACzkB,IAAI,CAACwM,GAAG,CAAC0D,OAAO,EAAE,EAAE,cAAc,EAAGvP,KAAqB,IAAK;SACpE,IAAIA,KAAK,CAACwoC,aAAa,KAAK,YAAY,EACxC;WACCJ,aAAa,CAAC5hC,OAAO,CAAEN,OAAO,IAAK;aAClCjB,aAAG,CAACwM,KAAK,CAACvL,OAAO,EAAE;eAClB4L,UAAU,EAAE,IAAI;eAChBJ,SAAS,EAAE;cACX,CAAC;YACF,CAAC;WACFzM,aAAG,CAACyB,MAAM,CAAC2hC,WAAW,CAAC;WACvBx8B,GAAG,CAAC48B,uBAAuB,EAAE;WAE7BxjC,aAAG,CAACG,WAAW,CAACyG,GAAG,CAAC0D,OAAO,EAAE,EAAE,2BAA2B,CAAC;;QAE5D,CAAC;;KAGH8T,IAAI,CAAC3X,OAAO,EAAE,CAAC2C,KAAK,EAAE;KACtBgV,IAAI,CAAC6C,eAAe,EAAE;KACtB7C,IAAI,CAACwF,sBAAsB,EAAE;KAC7BxF,IAAI,CAACyF,qBAAqB,EAAE;KAE5B,IAAIzF,IAAI,CAAC5T,QAAQ,CAAC,iBAAiB,CAAC,EACpC;OACC4T,IAAI,CAACoH,YAAY,CAACvc,MAAM,EAAE;;KAG3B,IAAImV,IAAI,CAAC5T,QAAQ,CAAC,oBAAoB,CAAC,EACvC;OACC4T,IAAI,CAACmH,YAAY,CAACtc,MAAM,EAAE;;;GAI5Bw6B,QAAQ,CAAC3iC,OAAwB,GAAG,EAAE,EACtC;KACC,MAAM4iC,EAAE,GAAGvqB,QAAQ,CAACkqB,aAAa,CAAC,IAAI,CAAC;KACvCrjC,aAAG,CAACE,QAAQ,CAACwjC,EAAE,EAAE,sDAAsD,CAAC;KAExE,MAAMC,EAAE,GAAGxqB,QAAQ,CAACkqB,aAAa,CAAC,IAAI,CAAC;KACvCrjC,aAAG,CAACE,QAAQ,CAACyjC,EAAE,EAAE,sCAAsC,CAAC;KACxD,MAAMC,OAAO,GAAG,IAAI,CAAC9iC,OAAO,CAACsd,IAAI,CAAC3X,OAAO,EAAE,CAAC4D,iBAAiB,EAAE,CAACw5B,QAAQ,EAAE,CAACtjC,MAAM;KACjFP,aAAG,CAACC,IAAI,CAAC0jC,EAAE,EAAE,SAAS,EAAEC,OAAO,CAAC;KAEhC,MAAMlS,OAAO,GAAG,CAAC,MAAM;OACtB,IAAI3jB,cAAI,CAACzL,aAAa,CAACxB,OAAO,CAAC4wB,OAAO,CAAC,EACvC;SACC,MAAMxwB,MAAM,GAAG,EAAE;SACjB,IAAI6M,cAAI,CAACm0B,cAAc,CAACphC,OAAO,CAAC4wB,OAAO,CAAC9yB,KAAK,CAAC,EAC9C;WACCsC,MAAM,CAACG,IAAI,CACVy4B,aAAG,CAACC,MAAM,oBAAC;;UAET,CAAwB;;OAE1B,GAFIj5B,OAAO,CAAC4wB,OAAO,CAAC9yB,KAAK,EAGzB;;SAGF,IAAImP,cAAI,CAACm0B,cAAc,CAACphC,OAAO,CAAC4wB,OAAO,CAACoS,WAAW,CAAC,EACpD;WACC5iC,MAAM,CAACG,IAAI,CACVy4B,aAAG,CAACC,MAAM,sBAAC;;UAET,CAA8B;;OAEhC,GAFIj5B,OAAO,CAAC4wB,OAAO,CAACoS,WAAW,EAG/B;;SAGF,OAAO5iC,MAAM;;OAGd,IACC6M,cAAI,CAACm0B,cAAc,CAACphC,OAAO,CAAC4wB,OAAO,CAAC,IACjC3jB,cAAI,CAACvS,SAAS,CAACsF,OAAO,CAAC4wB,OAAO,CAAC,EAEnC;SACC,OAAO5wB,OAAO,CAAC4wB,OAAO;;OAGvB,OAAO,CACNoI,aAAG,CAACC,MAAM,kBAAC,2CAAyC,IACpDD,aAAG,CAACC,MAAM,kBAAC,qCAAkC,CAAgD,QAAM,GAApD,IAAI,CAACj5B,OAAO,CAACsd,IAAI,CAAC5T,QAAQ,CAAC,iBAAiB,CAAC,EAC5F;MACD,GAAG;KAEJ,MAAMlN,SAAS,GAAGw8B,aAAG,CAACC,MAAM,kBAAC;;;OAG1B,CAAU;;;GAGb,GAHKrI,OAAO,CAGX;KAED1xB,aAAG,CAAC6zB,MAAM,CAACv2B,SAAS,EAAEqmC,EAAE,CAAC;KACzB3jC,aAAG,CAAC6zB,MAAM,CAAC8P,EAAE,EAAED,EAAE,CAAC;KAElB,MAAMK,OAAO,GAAG,IAAI,CAACjjC,OAAO,CAACsd,IAAI,CAACsS,OAAO,EAAE,CAACne,aAAa,CAAC,sBAAsB,CAAC;KACjF,IAAIwxB,OAAO,EACX;OACC/jC,aAAG,CAACyB,MAAM,CAACsiC,OAAO,CAAC;;KAGpB/jC,aAAG,CAAC6zB,MAAM,CAAC6P,EAAE,EAAE,IAAI,CAAC5iC,OAAO,CAACsd,IAAI,CAACsS,OAAO,EAAE,CAAC;KAE3C,IAAI,CAAC5vB,OAAO,CAACsd,IAAI,CAAC3X,OAAO,EAAE,CAACwlB,YAAY,EAAE,CAAC1qB,OAAO,CAAEqF,GAAG,IAAK;OAC3DA,GAAG,CAACzE,IAAI,EAAE;MACV,CAAC;KAEF,IAAI,CAACrB,OAAO,CAACsd,IAAI,CAACqD,gBAAgB,CAAC,IAAI,CAAC3gB,OAAO,CAACsd,IAAI,CAAC3X,OAAO,EAAE,CAACib,kBAAkB,EAAE,CAAC;;CAEtF;CAEA,MAAM3oB,WAAS,GAAGgP,oBAAU,CAAChP,SAAS,CAAC,SAAS,CAAC;AACjDA,YAAS,CAAC+7B,QAAQ,GAAGA,QAAQ;;CCzQ7B,CAAC,YAAW;;GAGXh8B,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;GAEvBD,EAAE,CAACE,IAAI,CAACkoB,MAAM,GAAG,UAAShoB,MAAM,EAChC;KACC,IAAI,CAACA,MAAM,GAAG,IAAI;KAClB,IAAI,CAAC8qC,mBAAmB,GAAG,IAAI;KAC/B,IAAI,CAACzqC,IAAI,CAACL,MAAM,CAAC;IACjB;GAEDJ,EAAE,CAACE,IAAI,CAACkoB,MAAM,CAACtnB,SAAS,GAAG;KAC1BL,IAAI,CAACL,MAAM,EACX;OACC,IAAI,CAACA,MAAM,GAAGA,MAAM;OAEpBJ,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,eAAe,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACiqC,oBAAoB,EAAE,IAAI,CAAC,CAAC;OACrFnrC,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,qBAAqB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACkqC,0BAA0B,EAAE,IAAI,CAAC,CAAC;OAEjG,IAAI,CAACD,oBAAoB,EAAE;OAC3B,IAAI,CAACC,0BAA0B,EAAE;MACjC;KAEDzpC,OAAO,GACP;OACC3B,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,eAAe,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACiqC,oBAAoB,EAAE,IAAI,CAAC,CAAC;OACxFnrC,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,qBAAqB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACkqC,0BAA0B,EAAE,IAAI,CAAC,CAAC;OACpGprC,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAAC,IAAI,CAACqiC,mBAAmB,CAAC,IAAI,IAAI,CAACA,mBAAmB,CAACziC,OAAO,CAACoI,IAAI,CAACC,gBAAgB,CAAC;OACpG,CAAC,IAAI,CAACpN,UAAU,EAAE,IAAI,EAAE,EAAE+E,OAAO,CAACoI,IAAI,CAACC,gBAAgB,CAAC;MACxD;KAEDq6B,oBAAoB,GACpB;OACC,CAAC,IAAI,CAACznC,UAAU,EAAE,IAAI,EAAE,EAAE+E,OAAO,CAAC,IAAI,CAACgI,QAAQ,EAAE,IAAI,CAAC;OACtD,IAAI,CAAC26B,0BAA0B,EAAE;MACjC;KAED36B,QAAQ,CAACvO,IAAI,EACb;OACC,IAAIlC,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACR,IAAI,CAAC,EAC3B;SACCA,IAAI,CAAC6O,aAAa,GAAG/Q,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAACyP,YAAY,EAAE,IAAI,CAAC;SACzD9O,IAAI,CAACiP,YAAY,GAAGnR,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAAC6P,UAAU,EAAE,IAAI,CAAC;SACtDlP,IAAI,CAAC+O,QAAQ,GAAGjR,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAAC2P,OAAO,EAAE,IAAI,CAAC;SAC/CL,IAAI,CAACQ,cAAc,CAACnP,IAAI,CAAC;;MAE1B;KAEDkpC,0BAA0B,GAC1B;OACC,IAAI,IAAI,CAAChrC,MAAM,CAACsR,QAAQ,CAAC,kBAAkB,CAAC,EAC5C;SACC,MAAM25B,kBAAkB,GAAG,IAAI,CAACC,qBAAqB,EAAE;SAEvD,IAAItrC,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAAC,IAAI,CAACqiC,mBAAmB,CAAC,IAAI,IAAI,CAACA,mBAAmB,CAACzjC,MAAM,GAAG,CAAC,EACpF;WACC,IAAI,CAACyjC,mBAAmB,CAACziC,OAAO,CAACoI,IAAI,CAACC,gBAAgB,CAAC;;SAGxD,IAAI,CAACo6B,mBAAmB,GAAGG,kBAAkB;SAE7C,CAAC,IAAI,CAACC,qBAAqB,EAAE,IAAI,EAAE,EAAE7iC,OAAO,CAAC,IAAI,CAACgI,QAAQ,EAAE,IAAI,CAAC;;MAElE;KAED/M,UAAU,GACV;OACC,OAAO1D,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACzC,MAAM,CAACuN,OAAO,EAAE,CAAC4D,iBAAiB,EAAE,CAACC,OAAO,EAAE,EAAE,IAAI,CAACpR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,mBAAmB,CAAC,CAAC;MACnI;KAEDuoC,qBAAqB,GACrB;OACC,OAAOtrC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAACzC,MAAM,CAACuR,YAAY,EAAE,CAACC,aAAa,EAAE,EAAE,IAAI,CAACxR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,mBAAmB,CAAC,CAAC;MAC1H;KAEDiO,YAAY,GACZ;OACC,MAAMqB,IAAI,GAAGrS,EAAE,CAACuN,UAAU,CAACsD,IAAI,CAAC6B,YAAY,EAAE;SAAE5N,SAAS,EAAE,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,eAAe;QAAG,CAAC;OACvG,MAAMwP,KAAK,GAAG,IAAI,CAACnS,MAAM,CAACuN,OAAO,EAAE,CAAC4D,iBAAiB,EAAE,CAACw5B,QAAQ,EAAE;OAClE,MAAMQ,SAAS,GAAG7B,MAAM,CAAC8B,IAAI,CAACj5B,KAAK,CAAC;OACpC,IAAIk5B,aAAa;OAEjB,IAAI,CAACC,SAAS,GAAG1rC,EAAE,CAAC4E,MAAM,CAAC,KAAK,EAAE;SAAEC,KAAK,EAAE;WAAEC,SAAS,EAAE;;QAA4B,CAAC;OACrF9E,EAAE,CAAC+6B,MAAM,CAAC,IAAI,CAAC2Q,SAAS,EAAEr5B,IAAI,CAAC;OAC/B,IAAI,CAACs5B,YAAY,GAAGt5B,IAAI,CAACG,SAAS;OAElC+4B,SAAS,CAAC9iC,OAAO,CAAEmjC,GAAG,IAAK;SAC1B,IAAI,CAAC5rC,EAAE,CAACmD,QAAQ,CAACoP,KAAK,CAACq5B,GAAG,CAAC,EAAE,yBAAyB,CAAC,EACvD;WACC,IAAI94B,KAAK,GAAG9S,EAAE,CAAC8S,KAAK,CAACP,KAAK,CAACq5B,GAAG,CAAC,CAAC;WAEhC,IAAIA,GAAG,GAAG,CAAC,EACX;aACC94B,KAAK,IAAI6e,QAAQ,CAAC3xB,EAAE,CAAC0T,KAAK,CAACnB,KAAK,CAACq5B,GAAG,CAAC,EAAE,mBAAmB,CAAC,CAAC;aAC5D94B,KAAK,IAAI6e,QAAQ,CAAC3xB,EAAE,CAAC0T,KAAK,CAACnB,KAAK,CAACq5B,GAAG,CAAC,EAAE,oBAAoB,CAAC,CAAC;;WAG9D5rC,EAAE,CAAC8S,KAAK,CAACP,KAAK,CAACq5B,GAAG,CAAC,EAAE94B,KAAK,CAAC;WAC3B24B,aAAa,GAAGzrC,EAAE,CAAC+B,UAAU,CAACwQ,KAAK,CAACq5B,GAAG,CAAC,CAAC;WACzC5rC,EAAE,CAAC8S,KAAK,CAAC24B,aAAa,EAAE34B,KAAK,CAAC;;QAE/B,CAAC;MACF;KAED5B,OAAO,CAACgB,CAAC,EACT;OACC,MAAMiP,KAAK,GAAG,IAAI,CAAC/gB,MAAM,CAACghB,QAAQ,EAAE;OACpC,MAAMI,UAAU,GAAG,IAAI,CAACphB,MAAM,CAACsR,QAAQ,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAACtR,MAAM,CAACuR,YAAY,EAAE,CAACC,aAAa,EAAE,GAAG,IAAI;OAC/G,MAAMS,IAAI,GAAG8O,KAAK,CAACzT,IAAI,CAAC,CAAC,CAAC,CAAC6E,KAAK,CAAC,IAAI,CAACo5B,YAAY,CAAC;OACnD,IAAIE,SAAS;OAAE,IACdC,kBAAkB;OAEnB,MAAMC,IAAI,GAAG/rC,EAAE,CAAC4jB,GAAG,CAACvR,IAAI,CAAC;OACzB,MAAM25B,aAAa,GAAGxd,UAAU,CAACnc,IAAI,CAACqB,KAAK,CAACZ,KAAK,CAAC;OAClD,IAAIm5B,EAAE;OAEN/5B,CAAC,IAAI65B,IAAI,CAAC55B,IAAI;OACd85B,EAAE,GAAG/5B,CAAC;OAEN,IAAI65B,IAAI,CAACj5B,KAAK,GAAGk5B,aAAa,EAC9B;SACC95B,CAAC,GAAG65B,IAAI,CAACj5B,KAAK;;OAGfZ,CAAC,GAAG+5B,EAAE,GAAG/5B,CAAC,GAAG+5B,EAAE,GAAG/5B,CAAC;OAEnBA,CAAC,GAAGU,IAAI,CAACgjB,GAAG,CAAC1jB,CAAC,EAAE,EAAE,CAAC;OAEnB,IAAIA,CAAC,KAAK65B,IAAI,CAACj5B,KAAK,EACpB;SACC,MAAMud,UAAU,GAAG,IAAI,CAACjwB,MAAM,CAACkwB,UAAU,EAAE,CAAC,CAAC,CAAC,CAC5CC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC9oB,MAAM;SACpD,IAAImJ,MAAM,GAAG,IAAI,CAACxQ,MAAM,CAACowB,gBAAgB,CAAC,IAAI,CAACmb,YAAY,GAAGtb,UAAU,CAAC;;;SAGzEzf,MAAM,CAACnI,OAAO,CAAEvG,IAAI,IAAK;WACxBA,IAAI,CAACwR,KAAK,CAACZ,KAAK,GAAI,GAAEZ,CAAE,IAAG;WAC3BhQ,IAAI,CAACwR,KAAK,CAAC4d,QAAQ,GAAI,GAAEpf,CAAE,IAAG;WAC9BhQ,IAAI,CAACwR,KAAK,CAAC+wB,QAAQ,GAAI,GAAEvyB,CAAE,IAAG;WAC9BlS,EAAE,CAACkH,GAAG,CAACwM,KAAK,CAACxR,IAAI,CAACikC,iBAAiB,EAAE,OAAO,EAAG,GAAEj0B,CAAE,IAAG,CAAC;UACvD,CAAC;;;SAGF,IAAItB,MAAM,CAAC,CAAC,CAAC,CAAC4D,SAAS,CAACC,QAAQ,CAAC,wBAAwB,CAAC,EAC1D;WACC7D,MAAM,GAAG,IAAI,CAACxQ,MAAM,CAACowB,gBAAgB,CAAC,IAAI,CAACmb,YAAY,GAAGtb,UAAU,GAAG,CAAC,CAAC;WAEzEzf,MAAM,CAACnI,OAAO,CAAEvG,IAAI,IAAK;aACxBA,IAAI,CAACwR,KAAK,CAACZ,KAAK,GAAI,GAAEZ,CAAE,IAAG;aAC3BhQ,IAAI,CAACwR,KAAK,CAAC4d,QAAQ,GAAI,GAAEpf,CAAE,IAAG;aAC9BhQ,IAAI,CAACwR,KAAK,CAAC+wB,QAAQ,GAAI,GAAEvyB,CAAE,IAAG;YAC9B,CAAC;;SAGH,IAAI,CAAC9R,MAAM,CAAC0xB,0BAA0B,EAAE;SACxC,IAAI,CAAC1xB,MAAM,CAACwpB,kBAAkB,CAAC,IAAI,CAACxpB,MAAM,CAACypB,aAAa,EAAE,CAAC;SAE3D,IAAI7pB,EAAE,CAACyC,IAAI,CAACC,SAAS,CAAC8e,UAAU,CAAC,IAAIxhB,EAAE,CAACyC,IAAI,CAACC,SAAS,CAAC8e,UAAU,CAAC9T,IAAI,CAAC,CAAC,CAAC,CAAC,EAC1E;WACCm+B,SAAS,GAAGrqB,UAAU,CAAC9T,IAAI,CAAC,CAAC,CAAC,CAAC6E,KAAK,CAAC,IAAI,CAACo5B,YAAY,CAAC;WACvDG,kBAAkB,GAAG9rC,EAAE,CAAC+B,UAAU,CAAC8pC,SAAS,CAAC;WAC7CC,kBAAkB,CAACp4B,KAAK,CAACZ,KAAK,GAAI,GAAEZ,CAAE,IAAG;WACzC45B,kBAAkB,CAACp4B,KAAK,CAAC4d,QAAQ,GAAI,GAAEpf,CAAE,IAAG;WAC5C25B,SAAS,CAACn4B,KAAK,CAACZ,KAAK,GAAI,GAAEZ,CAAE,IAAG;WAChC25B,SAAS,CAACn4B,KAAK,CAAC4d,QAAQ,GAAI,GAAEpf,CAAE,IAAG;;;OAIrClS,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC;MAClD;KAEDmQ,UAAU,GACV;OACC,IAAI,CAAC86B,SAAS,EAAE;OAChB,MAAM75B,IAAI,GAAGrS,EAAE,CAACuN,UAAU,CAACsD,IAAI,CAAC6B,YAAY,EAAE;SAAE5N,SAAS,EAAE,IAAI,CAAC1E,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,eAAe;QAAG,CAAC;OACvG,MAAMi2B,OAAO,GAAG3mB,IAAI,CAACoH,aAAa,CAAC,yBAAyB,CAAC;OAC7D,IAAIuf,OAAO,EACX;SACCh5B,EAAE,CAACkH,GAAG,CAACyB,MAAM,CAACqwB,OAAO,CAAC;;MAEvB;KAEDmT,cAAc,GACd;OACC,MAAM55B,KAAK,GAAG,IAAI,CAACnS,MAAM,CAACuN,OAAO,EAAE,CAAC4D,iBAAiB,EAAE,CAACw5B,QAAQ,EAAE;OAClE,MAAMp2B,OAAO,GAAG,EAAE;OAClB,IAAI3P,IAAI;OAER,EAAE,CAACyD,OAAO,CAAC8L,IAAI,CAAChC,KAAK,EAAG7J,OAAO,IAAK;SACnC1D,IAAI,GAAGhF,EAAE,CAACkE,IAAI,CAACwE,OAAO,EAAE,MAAM,CAAC;SAE/B,IAAI1I,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAACrB,IAAI,CAAC,EAClC;WACC2P,OAAO,CAAC3P,IAAI,CAAC,GAAGhF,EAAE,CAAC8S,KAAK,CAACpK,OAAO,CAAC;;QAElC,EAAE,IAAI,CAAC;OAER,OAAOiM,OAAO;MACd;KAEDu3B,SAAS,GACT;OACC,IAAI,CAAC9rC,MAAM,CAACwU,cAAc,EAAE,CAACw3B,cAAc,CAAC,IAAI,CAACD,cAAc,EAAE,EAAE,CAAC,CAAC;;IAEtE;CACF,CAAC,GAAG;;;;;;;;;;;;;;;;;;;AC9MJ,CAEA,CAAC,YAAW;;GAGXnsC,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAAC2sB,GAAG,GAAG,UAASzsB,MAAM,EAAE8C,IAAI,EACnC;KACC,IAAI,CAACA,IAAI,GAAG,IAAI;KAChB,IAAI,CAACX,QAAQ,GAAG,IAAI;KACpB,IAAI,CAAC8pC,IAAI,GAAG,IAAI;KAChB,IAAI,CAAChsC,OAAO,GAAG,IAAI;KACnB,IAAI,CAACyC,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACsQ,KAAK,GAAG,IAAI;KACjB,IAAI,CAACk5B,aAAa,GAAG,IAAI;KACzB,IAAI,CAAClsC,MAAM,GAAG,IAAI;KAClB,IAAI,CAACmsC,KAAK,GAAG,IAAI;KACjB,IAAI,CAACC,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACC,QAAQ,GAAG,IAAI;KACpB,IAAI,CAAC1kC,MAAM,GAAG,IAAI;KAClB,IAAI,CAAC2kC,cAAc,GAAG,IAAI,CAACA,cAAc,CAACprC,IAAI,CAAC,IAAI,CAAC;KACpD,IAAI,CAACb,IAAI,CAACL,MAAM,EAAE8C,IAAI,CAAC;KACvB,IAAI,CAACypC,kBAAkB,EAAE;IACzB;;;GAGD3sC,EAAE,CAACE,IAAI,CAAC2sB,GAAG,CAAC/rB,SAAS,GAAG;KACvBL,IAAI,CAACL,MAAM,EAAE8C,IAAI,EACjB;OACC,IAAIlD,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACQ,IAAI,CAAC,EAC3B;SACC,IAAI,CAACA,IAAI,GAAGA,IAAI;SAChB,IAAI,CAAC9C,MAAM,GAAGA,MAAM;SACpB,IAAI,CAAC0C,QAAQ,GAAG,IAAI9C,EAAE,CAACE,IAAI,CAACknB,QAAQ,EAAE;SACtC,IAAI,CAACwlB,SAAS,GAAG,EAAE;SAEnB,IAAI,IAAI,CAACC,WAAW,EAAE,EACtB;WACC,IAAI,CAACD,SAAS,GAAG,EAAE,CAACjc,KAAK,CAACpc,IAAI,CAAC,IAAI,CAACrR,IAAI,CAACiK,UAAU,CAACojB,gBAAgB,CAAE,iBAAgB,IAAI,CAACtiB,KAAK,EAAG,IAAG,CAAC,CAAC;WACxG,IAAI,IAAI,CAAC2+B,SAAS,CAACnlC,MAAM,GAAG,CAAC,EAC7B;aACC,IAAI,CAACvE,IAAI,CAAC2e,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAACirB,WAAW,CAACxrC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpE,IAAI,CAAC4B,IAAI,CAAC2e,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAACkrB,YAAY,CAACzrC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtE,IAAI,CAACsrC,SAAS,CAACnkC,OAAO,CAAC,UAASqF,GAAG,EAAE;eACpCA,GAAG,CAAC+T,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAACirB,WAAW,CAACxrC,IAAI,CAAC,IAAI,CAAC,CAAC;eAC9DwM,GAAG,CAAC+T,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAACkrB,YAAY,CAACzrC,IAAI,CAAC,IAAI,CAAC,CAAC;eAChEwM,GAAG,CAAC+T,gBAAgB,CAAC,OAAO,EAAE,MAAM;iBACnC,IAAI,IAAI,CAACsU,UAAU,EAAE,EACrB;mBACC,IAAI,CAACE,QAAQ,EAAE;kBACf,MAED;mBACC,IAAI,CAACD,MAAM,EAAE;;gBAEd,CAAC;cACF,EAAE,IAAI,CAAC;;;SAIV,IAAI,IAAI,CAACh2B,MAAM,CAACsR,QAAQ,CAAC,oBAAoB,CAAC,EAC9C;WACC1R,EAAE,CAACsB,IAAI,CAAC,IAAI,CAACkQ,OAAO,EAAE,EAAE,aAAa,EAAExR,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAACyrC,aAAa,EAAE,IAAI,CAAC,CAAC;;;MAG/E;KAEDF,WAAW,GACX;OACC,IAAI,CAAC5pC,IAAI,CAACsR,SAAS,CAACqd,GAAG,CAAC,oBAAoB,CAAC;OAC7C,IAAI,CAAC+a,SAAS,CAACnkC,OAAO,CAAEqF,GAAG,IAAK;SAC/BA,GAAG,CAAC0G,SAAS,CAACqd,GAAG,CAAC,oBAAoB,CAAC;QACvC,CAAC;MACF;KAEDkb,YAAY,GACZ;OACC,IAAI,CAAC7pC,IAAI,CAACsR,SAAS,CAAC7L,MAAM,CAAC,oBAAoB,CAAC;OAChD,IAAI,CAACikC,SAAS,CAACnkC,OAAO,CAAEqF,GAAG,IAAK;SAC/BA,GAAG,CAAC0G,SAAS,CAAC7L,MAAM,CAAC,oBAAoB,CAAC;QAC1C,CAAC;MACF;KAED0rB,QAAQ,GACR;OACC,IAAI,IAAI,CAACtsB,MAAM,KAAK,IAAI,EACxB;SACC,IAAI,CAACA,MAAM,GAAG/H,EAAE,CAACmD,QAAQ,CAAC,IAAI,CAACqO,OAAO,EAAE,EAAE,IAAI,CAACpR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,gBAAgB,CAAC,CAAC;;OAGtF,OAAO,IAAI,CAACgF,MAAM;MAClB;KAEDilC,aAAa,CAAC/qC,KAAK,EACnB;OACCA,KAAK,CAACwL,cAAc,EAAE;OACtB,IAAI,CAAC,IAAI,CAACw/B,WAAW,EAAE,EACvB;SACC,IAAI,CAACtY,eAAe,CAAC1yB,KAAK,CAAC;;MAE5B;KAED6xB,gBAAgB,GAChB;OACC,OAAO9zB,EAAE,CAACkE,IAAI,CAAC,IAAI,CAACsN,OAAO,EAAE,EAAE,gBAAgB,CAAC;MAChD;KAED+oB,cAAc,GACd;OACC,MAAMhvB,IAAI,GAAG,IAAI;OACjB,MAAMgH,KAAK,GAAG,IAAI,CAACw4B,QAAQ,EAAE;OAC7B,MAAM5tB,MAAM,GAAG,EAAE;OACjB,IAAI+vB,UAAU;OAEd,EAAE,CAACzkC,OAAO,CAAC8L,IAAI,CAAChC,KAAK,EAAG7J,OAAO,IAAK;SACnCwkC,UAAU,GAAG3hC,IAAI,CAAC4hC,kBAAkB,CAACzkC,OAAO,CAAC;SAC7C,IAAI1I,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACqkC,UAAU,CAAC,EAC/B;WACCA,UAAU,CAACzkC,OAAO,CAAE2kC,SAAS,IAAK;aACjCjwB,MAAM,CAACiwB,SAAS,CAACnoC,IAAI,CAAC,GAAGmoC,SAAS,CAAC/nC,KAAK,KAAKmJ,SAAS,GAAG,EAAE,GAAG4+B,SAAS,CAAC/nC,KAAK;aAE7E,IAAI+nC,SAAS,CAACp1B,cAAc,CAAC,UAAU,CAAC,IAAIo1B,SAAS,CAACp1B,cAAc,CAAC,WAAW,CAAC,EACjF;eACCmF,MAAM,CAAE,GAAEiwB,SAAS,CAACnoC,IAAK,SAAQ,CAAC,GAAGkY,MAAM,CAAE,GAAEiwB,SAAS,CAACnoC,IAAK,SAAQ,CAAC,IAAI,EAAE;eAC7EkY,MAAM,CAAE,GAAEiwB,SAAS,CAACnoC,IAAK,SAAQ,CAAC,CAACmoC,SAAS,CAACC,QAAQ,CAAC,GAAUlwB,MAAM,CAAE,GAAEiwB,SAAS,CAACnoC,IAAK,SAAQ,CAAC,CAACmoC,SAAS,CAACC,QAAQ,CAAC,IAAID,SAAS,CAACE,SAAS;;YAE9I,CAAC;UACF,MACI,IAAIJ,UAAU,EACnB;WACC/vB,MAAM,CAAC+vB,UAAU,CAACjoC,IAAI,CAAC,GAAGioC,UAAU,CAAC7nC,KAAK,KAAKmJ,SAAS,GAAG,EAAE,GAAG0+B,UAAU,CAAC7nC,KAAK;;QAEjF,CAAC;OAEF,OAAO8X,MAAM;MACb;;CAGH;CACA;CACA;KACEowB,aAAa,GACb;OACC,OAAO,IAAI,CAAChT,cAAc,EAAE;MAC5B;KAED4S,kBAAkB,CAAC96B,IAAI,EACvB;OACC,MAAMqU,MAAM,GAAG1mB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAACwP,IAAI,EAAE,IAAI,CAACjS,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;OAC5F,IAAIqF,MAAM,GAAG,IAAI;OAEjB,IAAIpI,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACgkB,MAAM,CAAC,EAC7B;SACC,IAAI1mB,EAAE,CAACmD,QAAQ,CAACujB,MAAM,EAAE,2BAA2B,CAAC,EACpD;WACCte,MAAM,GAAG;aACRnD,IAAI,EAAEyhB,MAAM,CAAChY,YAAY,CAAC,MAAM,CAAC;aACjCrJ,KAAK,EAAEqhB,MAAM,CAAC/jB,OAAO,GAAG,GAAG,GAAG;YAC9B;UACD,MACI,IAAI3C,EAAE,CAACmD,QAAQ,CAACujB,MAAM,EAAE,yBAAyB,CAAC,EACvD;WACCte,MAAM,GAAG,IAAI,CAAColC,cAAc,CAAC9mB,MAAM,CAAC;UACpC,MACI,IAAI1mB,EAAE,CAACmD,QAAQ,CAACujB,MAAM,EAAE,wBAAwB,CAAC,EACtD;WACCte,MAAM,GAAG,IAAI,CAACqlC,aAAa,CAAC/mB,MAAM,CAAC;UACnC,MACI,IAAI1mB,EAAE,CAACmD,QAAQ,CAACujB,MAAM,EAAE,sBAAsB,CAAC,EACpD;WACCte,MAAM,GAAG,IAAI,CAACslC,oBAAoB,CAAChnB,MAAM,CAAC;UAC1C,MAED;WACCte,MAAM,GAAG,IAAI,CAACulC,aAAa,CAACjnB,MAAM,CAAC;;;OAIrC,OAAOte,MAAM;MACb;KAEDysB,MAAM,GACN;OACC,OAAO70B,EAAE,CAACmD,QAAQ,CAAC,IAAI,CAACqO,OAAO,EAAE,EAAE,oBAAoB,CAAC;MACxD;KAEDnI,IAAI,GACJ;OACCrJ,EAAE,CAACoH,QAAQ,CAAC,IAAI,CAACoK,OAAO,EAAE,EAAE,IAAI,CAACpR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,WAAW,CAAC,CAAC;MAClE;KAEDoG,IAAI,GACJ;OACCnJ,EAAE,CAACkH,GAAG,CAACC,IAAI,CAAC,IAAI,CAACqK,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC;OAC3CxR,EAAE,CAACqH,WAAW,CAAC,IAAI,CAACmK,OAAO,EAAE,EAAE,IAAI,CAACpR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,WAAW,CAAC,CAAC;MACrE;KAEDgL,OAAO,GACP;OACC,OAAO,CAAC/N,EAAE,CAACmD,QAAQ,CAAC,IAAI,CAACqO,OAAO,EAAE,EAAE,IAAI,CAACpR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,WAAW,CAAC,CAAC;MAC1E;KAED6qC,UAAU,GACV;OACC,OAAO5tC,EAAE,CAACmD,QAAQ,CAAC,IAAI,CAACqO,OAAO,EAAE,EAAE,IAAI,CAACpR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,eAAe,CAAC,CAAC;MAC7E;KAEDgzB,mBAAmB,CAACzoB,MAAM,EAC1B;OACC,IAAItN,EAAE,CAACiV,IAAI,CAACvS,SAAS,CAAC4K,MAAM,CAAC,EAC7B;SACC,MAAM+E,IAAI,GAAG/E,MAAM,CAACugC,OAAO,CAAC,iBAAiB,CAAC;SAC9C,IAAI7tC,EAAE,CAACiV,IAAI,CAACvS,SAAS,CAAC2P,IAAI,CAAC,EAC3B;WACC,OAAOA,IAAI,CAACoH,aAAa,CAAC,yBAAyB,CAAC;;;OAItD,OAAOnM,MAAM;MACb;KAED62B,UAAU,CAAC9xB,IAAI,EACf;OACC,MAAM7N,SAAS,GAAG,IAAI,CAACuxB,mBAAmB,CAAC1jB,IAAI,CAAC;OAChD,IAAIumB,OAAO;OAEX,IAAI54B,EAAE,CAACyC,IAAI,CAACC,SAAS,CAAC8B,SAAS,CAAC,EAChC;SACCo0B,OAAO,GAAG54B,EAAE,CAACuF,IAAI,CAACf,SAAS,CAAC;;OAG7B,OAAOo0B,OAAO;MACd;KACD6U,aAAa,CAAC/mB,MAAM,EACpB;OACC,MAAMte,MAAM,GAAG,EAAE;OACjB,MAAM0lC,aAAa,GAAG;SACrBhP,KAAK,EAAE,EAAE;SACTI,QAAQ,EAAE,EAAE;SACZn0B,MAAM,EAAE;QACR;OACD,MAAMu0B,SAAS,GAAG5Y,MAAM,CAAChY,YAAY,CAAC,WAAW,CAAC;OAElD,MAAMq/B,MAAM,GAAG,EAAE,CAACpd,KAAK,CAACpc,IAAI,CAACmS,MAAM,CAAC6J,gBAAgB,CAAC,OAAO,CAAC,CAAC;OAC9Dwd,MAAM,CAACtlC,OAAO,CAAEN,OAAO,IAAK;SAC3BC,MAAM,CAACG,IAAI,CAAC;WACXtD,IAAI,EAAEq6B,SAAS;WACf+N,QAAQ,EAAEllC,OAAO,CAACnD,IAAI;WACtBsoC,SAAS,EAAEnlC,OAAO,CAACtC,KAAK,IAAI,EAAE;WAC9BR,KAAK,EAAE8C,OAAO,CAACtC,KAAK,IAAI;UACxB,CAAC;SAEF,IAAIsC,OAAO,CAACqM,SAAS,CAACC,QAAQ,CAAC,8BAA8B,CAAC,EAC9D;WACCq5B,aAAa,CAAChP,KAAK,GAAG;aACrB75B,IAAI,EAAEkD,OAAO,CAACnD,IAAI;aAClBK,KAAK,EAAE8C,OAAO,CAACtC;YACf;UACD,MACI,IAAIsC,OAAO,CAAC1F,IAAI,KAAK,SAAS,EACnC;WACCqrC,aAAa,CAAC/iC,MAAM,CAAC5C,OAAO,CAACnD,IAAI,CAAC,GAAGmD,OAAO,CAACtC,KAAK;;QAEnD,CAAC;OACF,MAAMmoC,gBAAgB,GAAGtnB,MAAM,CAACjN,aAAa,CAAC,4BAA4B,CAAC;OAC3E,IAAIu0B,gBAAgB,EACpB;SACC,MAAMC,iBAAiB,GAAGD,gBAAgB,CAACt/B,YAAY,CAAC,MAAM,CAAC;SAC/D,IAAI1O,EAAE,CAACyC,IAAI,CAAC4D,gBAAgB,CAAC4nC,iBAAiB,CAAC,EAC/C;WACC7lC,MAAM,CAACG,IAAI,CAAC;aACXtD,IAAI,EAAEq6B,SAAS;aACf+N,QAAQ,EAAEY,iBAAiB;aAC3BX,SAAS,EAAEU,gBAAgB,CAACrxB,OAAO,CAAC9W,KAAK,IAAI,EAAE;aAC/CR,KAAK,EAAE2oC,gBAAgB,CAACrxB,OAAO,CAAC9W,KAAK,IAAI;YACzC,CAAC;WACFioC,aAAa,CAAC5O,QAAQ,GAAG;aACxBj6B,IAAI,EAAEgpC,iBAAiB;aACvB5oC,KAAK,EAAE2oC,gBAAgB,CAACrxB,OAAO,CAAC9W;YAChC;;;OAIHuC,MAAM,CAACG,IAAI,CAAC;SACXtD,IAAI,EAAEq6B,SAAS;SACfj6B,KAAK,EAAEyoC;QACP,CAAC;OAEF,OAAO1lC,MAAM;MACb;KACDolC,cAAc,CAAC9mB,MAAM,EACrB;OACC,MAAM1Y,GAAG,GAAG,IAAIkgC,GAAG,EAAE;OAAE,MACtBlpC,IAAI,GAAG0hB,MAAM,CAAChY,YAAY,CAAC,WAAW,CAAC;OACxC,MAAMq/B,MAAM,GAAG,EAAE,CAACpd,KAAK,CAACpc,IAAI,CAACmS,MAAM,CAAC6J,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;OAChFwd,MAAM,CAACtlC,OAAO,CAAEN,OAAO,IAAK;SAC3B,IAAIA,OAAO,CAACnD,IAAI,KAAK,EAAE,EACvB;WACC;;SAGD,IAAImD,OAAO,CAACgmC,YAAY,CAAC,mBAAmB,CAAC,EAC7C;WACC;;SAGD,IAAIC,YAAY,GAAG;WAClBnpC,IAAI,EAAED,IAAI;WACVqoC,QAAQ,EAAEllC,OAAO,CAACnD,IAAI;WACtBsoC,SAAS,EAAEnlC,OAAO,CAACtC,KAAK;WACxBR,KAAK,EAAE8C,OAAO,CAACtC;UACf;SAED,QAAQsC,OAAO,CAACnE,OAAO;WAEtB,KAAK,QAAQ;aACZ,IAAImE,OAAO,CAACoG,QAAQ,EACpB;eACC,MAAM8/B,YAAY,GAAG,EAAE;eACvBlmC,OAAO,CAACooB,gBAAgB,CAAC,QAAQ,CAAC,CAAC9nB,OAAO,CAAE6lC,MAAM,IAAK;iBACtD,IAAIA,MAAM,CAACvwB,QAAQ,EACnB;mBACCswB,YAAY,CAAC9lC,IAAI,CAAC+lC,MAAM,CAACzoC,KAAK,CAAC;;gBAEhC,CAAC;eACFuoC,YAAY,CAACd,SAAS,GAAGe,YAAY;eACrCD,YAAY,CAAC/oC,KAAK,GAAGgpC,YAAY;eACjCrgC,GAAG,CAACugC,GAAG,CAACpmC,OAAO,CAACnD,IAAI,EAAEopC,YAAY,CAAC;cACnC,MAED;eACCpgC,GAAG,CAACugC,GAAG,CAACpmC,OAAO,CAACnD,IAAI,EAAEopC,YAAY,CAAC;;aAEpC;WACD,KAAK,OAAO;aACX,QAAQjmC,OAAO,CAAC1F,IAAI,CAAC+rC,WAAW,EAAE;eAEjC,KAAK,OAAO;iBACX,IAAIrmC,OAAO,CAACxF,OAAO,EACnB;mBACCqL,GAAG,CAACugC,GAAG,CAACpmC,OAAO,CAACnD,IAAI,EAAEopC,YAAY,CAAC;;iBAEpC;eACD,KAAK,UAAU;iBACd,IAAIjmC,OAAO,CAACxF,OAAO,EACnB;mBACC,IAAI,IAAI,CAAC8rC,qBAAqB,CAACtmC,OAAO,CAACnD,IAAI,CAAC,EAC5C;qBACC,IAAIgJ,GAAG,CAAC0gC,GAAG,CAACvmC,OAAO,CAACnD,IAAI,CAAC,EACzB;uBACCopC,YAAY,GAAGpgC,GAAG,CAACjL,GAAG,CAACoF,OAAO,CAACnD,IAAI,CAAC;uBACpCopC,YAAY,CAACd,SAAS,CAAC/kC,IAAI,CAACJ,OAAO,CAACtC,KAAK,CAAC;uBAC1CuoC,YAAY,CAAC/oC,KAAK,CAACkD,IAAI,CAACJ,OAAO,CAACtC,KAAK,CAAC;sBACtC,MAED;uBACCuoC,YAAY,CAACd,SAAS,GAAG,CAACnlC,OAAO,CAACtC,KAAK,CAAC;uBACxCuoC,YAAY,CAAC/oC,KAAK,GAAG,CAAC8C,OAAO,CAACtC,KAAK,CAAC;;;mBAGtCmI,GAAG,CAACugC,GAAG,CAACpmC,OAAO,CAACnD,IAAI,EAAEopC,YAAY,CAAC;;iBAEpC;eACD,KAAK,MAAM;iBACVA,YAAY,CAACd,SAAS,GAAGnlC,OAAO,CAACq1B,KAAK,CAAC,CAAC,CAAC;iBACzC4Q,YAAY,CAAC/oC,KAAK,GAAG8C,OAAO,CAACq1B,KAAK,CAAC,CAAC,CAAC;iBACrCxvB,GAAG,CAACugC,GAAG,CAACpmC,OAAO,CAACnD,IAAI,EAAEopC,YAAY,CAAC;iBACnC;eACD;iBACC,IAAI,IAAI,CAACK,qBAAqB,CAACtmC,OAAO,CAACnD,IAAI,CAAC,EAC5C;mBACC,IAAIgJ,GAAG,CAAC0gC,GAAG,CAACvmC,OAAO,CAACnD,IAAI,CAAC,EACzB;qBACCopC,YAAY,GAAGpgC,GAAG,CAACjL,GAAG,CAACoF,OAAO,CAACnD,IAAI,CAAC;qBACpCopC,YAAY,CAACd,SAAS,CAAC/kC,IAAI,CAACJ,OAAO,CAACtC,KAAK,CAAC;qBAC1CuoC,YAAY,CAAC/oC,KAAK,CAACkD,IAAI,CAACJ,OAAO,CAACtC,KAAK,CAAC;oBACtC,MAED;qBACCuoC,YAAY,CAACd,SAAS,GAAG,CAACnlC,OAAO,CAACtC,KAAK,CAAC;qBACxCuoC,YAAY,CAAC/oC,KAAK,GAAG,CAAC8C,OAAO,CAACtC,KAAK,CAAC;;;iBAGtCmI,GAAG,CAACugC,GAAG,CAACpmC,OAAO,CAACnD,IAAI,EAAEopC,YAAY,CAAC;;aAErC;WACD;aACCpgC,GAAG,CAACugC,GAAG,CAACpmC,OAAO,CAACnD,IAAI,EAAEopC,YAAY,CAAC;aACnC;;QAEF,CAAC;OAEF,MAAMhmC,MAAM,GAAG,EAAE;OACjB4F,GAAG,CAACvF,OAAO,CAAE5C,KAAK,IAAK;SACtBuC,MAAM,CAACG,IAAI,CAAC1C,KAAK,CAAC;QAClB,CAAC;OAEF,OAAOuC,MAAM;MACb;KAEDqmC,qBAAqB,CAACE,WAAmB,EACzC;OACC,OAAOA,WAAW,CAAClnC,MAAM,GAAG,CAAC,IACzBknC,WAAW,CAACC,WAAW,CAAC,IAAI,CAAC,KAAKD,WAAW,CAAClnC,MAAM,GAAG,CAAC;MAC5D;KAEDkmC,aAAa,CAACjnB,MAAM,EACpB;OACC,IAAIte,MAAM,GAAG,IAAI;OACjB,IAAIpI,EAAE,CAACmD,QAAQ,CAACujB,MAAM,EAAE,wBAAwB,CAAC,EACjD;SACC,MAAM9gB,KAAK,GAAG8gB,MAAM,CAACjN,aAAa,CAAC,oCAAoC,CAAC;SAExE,IAAI7T,KAAK,EACT;WACCwC,MAAM,GAAG;aACRnD,IAAI,EAAEW,KAAK,CAACZ,IAAI;aAChBK,KAAK,EAAEO,KAAK,CAAC43B,KAAK,CAAC,CAAC;YACpB;UACD,MAED;WACC,MAAMqR,SAAS,GAAGnoB,MAAM,CAACjN,aAAa,CAAC,yCAAyC,CAAC;WAEjF,IAAIo1B,SAAS,EACb;aACCzmC,MAAM,GAAG;eACRnD,IAAI,EAAE4pC,SAAS,CAAC7pC,IAAI;eACpBK,KAAK,EAAEwpC,SAAS,CAAChpC;cACjB;;;QAGH,MACI,IAAI6gB,MAAM,CAAC7gB,KAAK,EACrB;SACCuC,MAAM,GAAG;WACRnD,IAAI,EAAEyhB,MAAM,CAAChY,YAAY,CAAC,MAAM,CAAC;WACjCrJ,KAAK,EAAEqhB,MAAM,CAAC7gB;UACd;QACD,MAED;SACCuC,MAAM,GAAG;WACRnD,IAAI,EAAEyhB,MAAM,CAAChY,YAAY,CAAC,MAAM,CAAC;WACjCrJ,KAAK,EAAErF,EAAE,CAACkE,IAAI,CAACwiB,MAAM,EAAE,OAAO;UAC9B;;OAGF,OAAOte,MAAM;MACb;KAEDslC,oBAAoB,CAAChnB,MAAM,EAC3B;OACC,MAAM7gB,KAAK,GAAGX,IAAI,CAAC0U,KAAK,CAAC5Z,EAAE,CAACkE,IAAI,CAACwiB,MAAM,EAAE,OAAO,CAAC,CAAC;OAElD,OAAO;SACNzhB,IAAI,EAAEyhB,MAAM,CAAChY,YAAY,CAAC,MAAM,CAAC;SACjCrJ,KAAK,EAAE4P,cAAI,CAAC2rB,aAAa,CAAC/6B,KAAK,CAAC,GAAGA,KAAK,GAAG;QAC3C;MACD;;CAGH;CACA;CACA;KACEipC,kBAAkB,CAACz8B,IAAI,EACvB;OACC,OAAOrS,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAACwP,IAAI,EAAE,IAAI,CAACjS,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC;MAC7F;;CAGH;CACA;KACEmxB,iBAAiB,GACjB;OACC,IAAI,CAAC,IAAI,CAAC6a,cAAc,EACxB;SACC,IAAI,CAACA,cAAc,GAAG/uC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAAC2O,OAAO,EAAE,EAAE,IAAI,CAACpR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC;;OAGtH,OAAO,IAAI,CAACgsC,cAAc;MAC1B;KAEDC,SAAS,GACT;OACChvC,EAAE,CAACoH,QAAQ,CAAC,IAAI,CAACoK,OAAO,EAAE,EAAE,IAAI,CAACpR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,mBAAmB,CAAC,CAAC;MAC1E;KAEDksC,WAAW,GACX;OACCjvC,EAAE,CAACqH,WAAW,CAAC,IAAI,CAACmK,OAAO,EAAE,EAAE,IAAI,CAACpR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,mBAAmB,CAAC,CAAC;MAC7E;KAEDmsC,WAAW,GACX;OACClvC,EAAE,CAACoH,QAAQ,CAAC,IAAI,CAACoK,OAAO,EAAE,EAAE,IAAI,CAACpR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,qBAAqB,CAAC,CAAC;MAC5E;KAEDosC,aAAa,GACb;OACCnvC,EAAE,CAACqH,WAAW,CAAC,IAAI,CAACmK,OAAO,EAAE,EAAE,IAAI,CAACpR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,qBAAqB,CAAC,CAAC;MAC/E;KAEDqsC,WAAW,GACX;OACC,IAAI,IAAI,CAAC5C,QAAQ,KAAK,IAAI,EAC1B;SACC,IAAI,CAACA,QAAQ,GAAGxsC,EAAE,CAACkE,IAAI,CAAC,IAAI,CAACsN,OAAO,EAAE,EAAE,WAAW,CAAC;SAEpD,IAAI,OAAO,IAAI,CAACg7B,QAAQ,KAAK,WAAW,IAAI,IAAI,CAACA,QAAQ,KAAK,IAAI,EAClE;WACC,IAAI,CAACA,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACxvB,QAAQ,EAAE;;;OAI1C,OAAO,IAAI,CAACwvB,QAAQ;MACpB;;CAGH;CACA;KACE6C,UAAU,GACV;OACC,OAAO,IAAI,CAAC79B,OAAO,EAAE,CAACmL,OAAO;MAC7B;;CAGH;CACA;CACA;KACE2yB,QAAQ,GACR;OACC,IAAI,IAAI,CAAC/C,KAAK,KAAK,IAAI,EACvB;SACC,IAAI,CAACA,KAAK,GAAGvsC,EAAE,CAACkE,IAAI,CAAC,IAAI,CAACsN,OAAO,EAAE,EAAE,OAAO,CAAC;;OAG9C,OAAO,IAAI,CAAC+6B,KAAK;MACjB;;CAGH;CACA;CACA;KACEgD,QAAQ,CAAChD,KAAK,EACd;OACCA,KAAK,GAAG5a,QAAQ,CAAC4a,KAAK,CAAC;OAEvB,IAAIvsC,EAAE,CAACyC,IAAI,CAACuR,QAAQ,CAACu4B,KAAK,CAAC,EAC3B;SACC,MAAMiD,WAAW,GAAGjD,KAAK,GAAG5a,QAAQ,CAAC,IAAI,CAAC2d,QAAQ,EAAE,CAAC;SACrD,MAAMxX,IAAI,GAAG,IAAI,CAAC13B,MAAM,CAACuN,OAAO,EAAE;SAElC,IAAI,CAAC0hC,UAAU,EAAE,CAAC9C,KAAK,GAAGA,KAAK;SAE/B,IAAI,CAACkD,aAAa,EAAE,CAAChnC,OAAO,CAAE4J,IAAI,IAAK;WACtCrS,EAAE,CAACkE,IAAI,CAACmO,IAAI,EAAE,OAAO,EAAEk6B,KAAK,CAAC;WAC7BvsC,EAAE,CAAC0T,KAAK,CAACrB,IAAI,EAAE,cAAc,EAAG,GAAEk6B,KAAK,GAAG,EAAG,IAAG,CAAC;UACjD,CAAC;SAEFzU,IAAI,CAACvd,iBAAiB,CAAC,IAAI,CAACtM,KAAK,EAAE,EAAE,IAAI,CAAC,CAACxF,OAAO,CAAEqF,GAAG,IAAK;WAC3D,MAAM4hC,UAAU,GAAG/d,QAAQ,CAAC6d,WAAW,CAAC,GAAG7d,QAAQ,CAAC7jB,GAAG,CAACwhC,QAAQ,EAAE,CAAC;WACnExhC,GAAG,CAACuhC,UAAU,EAAE,CAAC9C,KAAK,GAAGmD,UAAU;WACnC5hC,GAAG,CAAC2hC,aAAa,EAAE,CAAChnC,OAAO,CAAE4J,IAAI,IAAK;aACrCrS,EAAE,CAACkE,IAAI,CAACmO,IAAI,EAAE,OAAO,EAAEq9B,UAAU,CAAC;aAClC1vC,EAAE,CAAC0T,KAAK,CAACrB,IAAI,EAAE,cAAc,EAAG,GAAEq9B,UAAU,GAAG,EAAG,IAAG,CAAC;YACtD,CAAC;UACF,CAAC;;MAEH;;CAGH;CACA;CACA;KACEC,WAAW,CAAC3tC,EAAE,EACd;OACC,IAAI,CAACqtC,UAAU,EAAE,CAAC7C,QAAQ,GAAGxqC,EAAE;MAC/B;;CAGH;CACA;KACEytC,aAAa,GACb;OACC,OAAOzvC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACS,aAAa,CAAC,IAAI,CAACmO,OAAO,EAAE,EAAE,uBAAuB,CAAC;MAC3E;KAEDo+B,aAAa,GACb;OACC,MAAMliC,IAAI,GAAG,IAAI,CAACmiC,WAAW,EAAE;OAC/B,MAAMxb,QAAQ,GAAG,IAAI,CAACA,QAAQ,EAAE;OAEhC3mB,IAAI,CAACjF,OAAO,CAAEqF,GAAG,IAAK;SACrBA,GAAG,CAAC3E,IAAI,EAAE;SACV,IAAI,CAACkrB,QAAQ,IAAIvmB,GAAG,CAACgiC,QAAQ,EAAE,EAC/B;WACChiC,GAAG,CAAC8hC,aAAa,EAAE;;QAEpB,CAAC;OAEF,IAAI,CAACxvC,MAAM,CAAC0qB,sBAAsB,EAAE;OACpC,IAAI,CAAC1qB,MAAM,CAAC2qB,qBAAqB,EAAE;OACnC,IAAI,CAAC3qB,MAAM,CAAC6pB,wBAAwB,EAAE;OACtC,IAAI,CAAC7pB,MAAM,CAACk2B,UAAU,EAAE;MACxB;;CAGH;CACA;KACEuZ,WAAW,GACX;OACC,MAAME,YAAY,GAAG,IAAI,CAAC1b,QAAQ,EAAE,GAAG,kBAAkB,GAAG,mBAAmB;OAC/E,MAAMryB,EAAE,GAAG,IAAI,CAACqyB,QAAQ,EAAE,GAAG,IAAI,CAAC2b,UAAU,EAAE,GAAG,IAAI,CAAC/hC,KAAK,EAAE;OAE7D,OAAO,IAAI,CAAC7N,MAAM,CAACuN,OAAO,EAAE,CAACoiC,YAAY,CAAC,CAAC/tC,EAAE,EAAE,IAAI,CAAC;MACpD;KAEDiuC,aAAa,GACb;OACC,MAAMviC,IAAI,GAAG,IAAI,CAACmiC,WAAW,EAAE;OAC/BniC,IAAI,CAACjF,OAAO,CAAEqF,GAAG,IACjB;SAAEA,GAAG,CAACzE,IAAI,EAAE;QACX,CAAC;OACF,IAAI,CAACjJ,MAAM,CAAC0qB,sBAAsB,EAAE;OACpC,IAAI,CAAC1qB,MAAM,CAAC2qB,qBAAqB,EAAE;OACnC,IAAI,CAAC3qB,MAAM,CAAC6pB,wBAAwB,EAAE;OACtC,IAAI,CAAC7pB,MAAM,CAACk2B,UAAU,EAAE;MACxB;KAED4Z,cAAc,GACd;OACC,IAAI,CAAClwC,EAAE,CAACyC,IAAI,CAAC6U,SAAS,CAAC,IAAI,CAAC64B,YAAY,CAAC,EACzC;SACC,IAAI,CAACA,YAAY,GAAG,IAAI,CAAC9b,QAAQ,EAAE,IAAIr0B,EAAE,CAACkE,IAAI,CAAC,IAAI,CAACsN,OAAO,EAAE,EAAE,cAAc,CAAC,KAAK,MAAM;;OAG1F,OAAO,IAAI,CAAC2+B,YAAY;MACxB;KAEDC,MAAM,GACN;OACC,MAAM7kC,IAAI,GAAG,IAAI;OACjB,IAAI,CAAC2jC,WAAW,EAAE;OAElB,IAAI,IAAI,CAACgB,cAAc,EAAE,EACzB;SACC,IAAI,CAACN,aAAa,EAAE;QACpB,MAED;SACC,IAAI,CAACZ,SAAS,EAAE;SAChB,IAAI,CAACqB,aAAa,CAAE3iC,IAAI,IAAK;WAC5BA,IAAI,CAAC9B,OAAO,EAAE,CAACnD,OAAO,CAAEC,OAAO,IAAK;aACnC1I,EAAE,CAAC6L,WAAW,CAACnD,OAAO,EAAE6C,IAAI,CAACiG,OAAO,EAAE,CAAC;YACvC,CAAC;WACFjG,IAAI,CAACnL,MAAM,CAACuN,OAAO,EAAE,CAAC2C,KAAK,EAAE;WAC7B/E,IAAI,CAACnL,MAAM,CAAC+nB,eAAe,EAAE;WAE7B,IAAI5c,IAAI,CAACnL,MAAM,CAACsR,QAAQ,CAAC,iBAAiB,CAAC,EAC3C;aACCnG,IAAI,CAACnL,MAAM,CAACopB,eAAe,EAAE,CAACrZ,MAAM,EAAE;;WAGvC,IAAI5E,IAAI,CAACnL,MAAM,CAACsR,QAAQ,CAAC,oBAAoB,CAAC,EAC9C;aACCnG,IAAI,CAACnL,MAAM,CAACmpB,eAAe,EAAE,CAACpZ,MAAM,EAAE;;WAGvC5E,IAAI,CAAC0jC,WAAW,EAAE;WAClBjvC,EAAE,CAACkE,IAAI,CAACqH,IAAI,CAACiG,OAAO,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC;WAC/CjG,IAAI,CAACnL,MAAM,CAAC0qB,sBAAsB,EAAE;WACpCvf,IAAI,CAACnL,MAAM,CAAC2qB,qBAAqB,EAAE;WACnCxf,IAAI,CAACnL,MAAM,CAAC6pB,wBAAwB,EAAE;UACtC,CAAC;;MAEH;KAEDqmB,QAAQ,GACR;OACC,IAAI,CAACnB,aAAa,EAAE;OACpB,IAAI,CAACc,aAAa,EAAE;MACpB;KAEDH,QAAQ,GACR;OACC,OAAO9vC,EAAE,CAACmD,QAAQ,CAAC,IAAI,CAACqO,OAAO,EAAE,EAAE,IAAI,CAACpR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,qBAAqB,CAAC,CAAC;MACnF;KAEDqxB,eAAe,GACf;OACC,IAAI,IAAI,CAAC0b,QAAQ,EAAE,EACnB;SACC,IAAI,CAACQ,QAAQ,EAAE;QACf,MAED;SACC,IAAI,CAACF,MAAM,EAAE;;MAEd;KAEDC,aAAa,CAAC/kC,QAAQ,EACtB;OACC,IAAItL,EAAE,CAACyC,IAAI,CAACwX,UAAU,CAAC3O,QAAQ,CAAC,EAChC;SACC,MAAMC,IAAI,GAAG,IAAI;SACjB,IAAIghC,KAAK,GAAG5a,QAAQ,CAAC,IAAI,CAAC2d,QAAQ,EAAE,CAAC;SACrC,MAAM/lC,MAAM,GAAG,IAAI,CAACnJ,MAAM,CAACwU,cAAc,EAAE,CAACqY,SAAS,CAAC,qBAAqB,CAAC;SAC5Esf,KAAK,GAAGvsC,EAAE,CAACyC,IAAI,CAACuR,QAAQ,CAACu4B,KAAK,CAAC,GAAGA,KAAK,GAAG,CAAC,GAAG,CAAC;SAC/C,IAAI,CAACnsC,MAAM,CAACyrB,OAAO,EAAE,CAACrU,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE;WAAEjO,MAAM;WAAEgnC,SAAS,EAAE,IAAI,CAACtiC,KAAK,EAAE;WAAEs+B;UAAO,EAAE,IAAI,EAAE,YAAW;WACtG,MAAM7+B,IAAI,GAAG,IAAI,CAAC6M,iBAAiB,CAAChP,IAAI,CAAC0C,KAAK,EAAE,CAAC;WACjD3C,QAAQ,CAACmqB,KAAK,CAAC,IAAI,EAAE,CAAC/nB,IAAI,CAAC,CAAC;UAC5B,CAAC;;MAEH;KAEDof,MAAM,CAAC5oB,IAAI,EAAEuT,GAAG,EAAEnM,QAAQ,EAC1B;OACCpH,IAAI,GAAGA,IAAI,IAAI,EAAE;OAEjB,MAAMqF,MAAM,GAAG,IAAI,CAACnJ,MAAM,CAACwU,cAAc,EAAE,CAACqY,SAAS,CAAC,iBAAiB,CAAC;OACxE,MAAMsf,KAAK,GAAG,IAAI,CAAC+C,QAAQ,EAAE;OAC7B,MAAMttC,EAAE,GAAG,IAAI,CAACiM,KAAK,EAAE;OACvB,MAAMu+B,QAAQ,GAAG,IAAI,CAAC4C,WAAW,EAAE;OACnC,MAAMliB,OAAO,GAAG;SAAElrB,EAAE;SAAEwqC,QAAQ;SAAEjjC,MAAM;SAAEgjC,KAAK;SAAEroC;QAAM;OACrD,MAAMqH,IAAI,GAAG,IAAI;OAEjB,IAAI,CAACyjC,SAAS,EAAE;OAChB,IAAI,CAAC5uC,MAAM,CAACyrB,OAAO,EAAE,CAACrU,OAAO,CAACC,GAAG,EAAE,MAAM,EAAEyV,OAAO,EAAE,IAAI,EAAE,YAAW;SACpE,MAAMzW,QAAQ,GAAG,IAAI,CAAC6D,WAAW,EAAE;SACnC/O,IAAI,CAACnL,MAAM,CAAC4rB,UAAU,EAAE,CAACG,cAAc,CAAC1V,QAAQ,CAAC;SACjDlL,IAAI,CAAC0jC,WAAW,EAAE;SAClB1jC,IAAI,CAACnL,MAAM,CAACuN,OAAO,EAAE,CAAC2C,KAAK,EAAE;SAC7B/E,IAAI,CAACnL,MAAM,CAAC4rB,UAAU,EAAE,CAACI,cAAc,CAAC,IAAI,CAAC3R,WAAW,EAAE,CAAC;SAC3DlP,IAAI,CAACnL,MAAM,CAAC4rB,UAAU,EAAE,CAACK,gBAAgB,CAAC,IAAI,CAAC1R,aAAa,EAAE,CAAC;SAC/DpP,IAAI,CAACnL,MAAM,CAAC4rB,UAAU,EAAE,CAACM,gBAAgB,CAAC,IAAI,CAAC5R,aAAa,EAAE,CAAC;SAC/DnP,IAAI,CAACnL,MAAM,CAAC4rB,UAAU,EAAE,CAACO,kBAAkB,CAAC,IAAI,CAACzR,eAAe,EAAE,CAAC;SACnEvP,IAAI,CAACnL,MAAM,CAAC+nB,eAAe,EAAE;SAC7B5c,IAAI,CAACnL,MAAM,CAACuoB,gBAAgB,CAAClS,QAAQ,CAAC;SAEtClL,IAAI,CAACnL,MAAM,CAACioB,sBAAsB,EAAE;SACpC9c,IAAI,CAACnL,MAAM,CAACkoB,0BAA0B,EAAE;SACxC/c,IAAI,CAACnL,MAAM,CAAC0qB,sBAAsB,EAAE;SACpCvf,IAAI,CAACnL,MAAM,CAAC2qB,qBAAqB,EAAE;SAEnC,IAAIxf,IAAI,CAACnL,MAAM,CAACsR,QAAQ,CAAC,oBAAoB,CAAC,EAC9C;WACCnG,IAAI,CAACnL,MAAM,CAACqsB,YAAY,CAACtc,MAAM,EAAE;;SAGlC,IAAI5E,IAAI,CAACnL,MAAM,CAACsR,QAAQ,CAAC,iBAAiB,CAAC,EAC3C;WACCnG,IAAI,CAACnL,MAAM,CAACssB,YAAY,CAACvc,MAAM,EAAE;;SAGlCnQ,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,kBAAkB,EAAE,CAAC;WAAEe,EAAE;WAAEkC,IAAI;WAAEohB,IAAI,EAAE/Z,IAAI,CAACnL,MAAM;WAAEkW,QAAQ,EAAE;UAAM,CAAC,CAAC;SAC/FtW,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,eAAe,EAAE,CAACsK,IAAI,CAACnL,MAAM,CAAC,CAAC;SAExD,IAAIJ,EAAE,CAACyC,IAAI,CAACwX,UAAU,CAAC3O,QAAQ,CAAC,EAChC;WACCA,QAAQ,CAAC;aAAEtJ,EAAE;aAAEkC,IAAI;aAAEohB,IAAI,EAAE/Z,IAAI,CAACnL,MAAM;aAAEkW,QAAQ,EAAE;YAAM,CAAC;;QAE1D,CAAC;MACF;KAED3N,MAAM,CAACzE,IAAI,EAAEuT,GAAG,EAAEnM,QAAQ,EAC1B;OACCpH,IAAI,GAAGA,IAAI,IAAI,EAAE;OAEjB,MAAMqF,MAAM,GAAG,IAAI,CAACnJ,MAAM,CAACwU,cAAc,EAAE,CAACqY,SAAS,CAAC,iBAAiB,CAAC;OACxE,MAAMsf,KAAK,GAAG,IAAI,CAAC+C,QAAQ,EAAE;OAC7B,MAAMttC,EAAE,GAAG,IAAI,CAACiM,KAAK,EAAE;OACvB,MAAMu+B,QAAQ,GAAG,IAAI,CAAC4C,WAAW,EAAE;OACnC,MAAMliB,OAAO,GAAG;SAAElrB,EAAE;SAAEwqC,QAAQ;SAAEjjC,MAAM;SAAEgjC,KAAK;SAAEroC;QAAM;OACrD,MAAMqH,IAAI,GAAG,IAAI;OAEjB,IAAI,CAACyjC,SAAS,EAAE;OAChB,IAAI,CAAC5uC,MAAM,CAACyrB,OAAO,EAAE,CAACrU,OAAO,CAACC,GAAG,EAAE,MAAM,EAAEyV,OAAO,EAAE,IAAI,EAAE,YAAW;SACpE,MAAMzW,QAAQ,GAAG,IAAI,CAAC6D,WAAW,EAAE;SACnC/O,IAAI,CAACnL,MAAM,CAAC4rB,UAAU,EAAE,CAACG,cAAc,CAAC1V,QAAQ,CAAC;SACjDlL,IAAI,CAAC0jC,WAAW,EAAE;SAClB1jC,IAAI,CAACnL,MAAM,CAACuN,OAAO,EAAE,CAAC2C,KAAK,EAAE;SAC7B/E,IAAI,CAACnL,MAAM,CAAC4rB,UAAU,EAAE,CAACI,cAAc,CAAC,IAAI,CAAC3R,WAAW,EAAE,CAAC;SAC3DlP,IAAI,CAACnL,MAAM,CAAC4rB,UAAU,EAAE,CAACK,gBAAgB,CAAC,IAAI,CAAC1R,aAAa,EAAE,CAAC;SAC/DpP,IAAI,CAACnL,MAAM,CAAC4rB,UAAU,EAAE,CAACM,gBAAgB,CAAC,IAAI,CAAC5R,aAAa,EAAE,CAAC;SAC/DnP,IAAI,CAACnL,MAAM,CAAC4rB,UAAU,EAAE,CAACO,kBAAkB,CAAC,IAAI,CAACzR,eAAe,EAAE,CAAC;SACnEvP,IAAI,CAACnL,MAAM,CAAC+nB,eAAe,EAAE;SAC7B5c,IAAI,CAACnL,MAAM,CAACuoB,gBAAgB,CAAClS,QAAQ,CAAC;SAEtClL,IAAI,CAACnL,MAAM,CAACioB,sBAAsB,EAAE;SACpC9c,IAAI,CAACnL,MAAM,CAACkoB,0BAA0B,EAAE;SACxC/c,IAAI,CAACnL,MAAM,CAAC0qB,sBAAsB,EAAE;SACpCvf,IAAI,CAACnL,MAAM,CAAC2qB,qBAAqB,EAAE;SAEnC,IAAIxf,IAAI,CAACnL,MAAM,CAACsR,QAAQ,CAAC,oBAAoB,CAAC,EAC9C;WACCnG,IAAI,CAACnL,MAAM,CAACqsB,YAAY,CAACtc,MAAM,EAAE;;SAGlC,IAAI5E,IAAI,CAACnL,MAAM,CAACsR,QAAQ,CAAC,iBAAiB,CAAC,EAC3C;WACCnG,IAAI,CAACnL,MAAM,CAACssB,YAAY,CAACvc,MAAM,EAAE;;SAGlCnQ,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,kBAAkB,EAAE,CAAC;WAAEe,EAAE;WAAEkC,IAAI;WAAEohB,IAAI,EAAE/Z,IAAI,CAACnL,MAAM;WAAEkW,QAAQ,EAAE;UAAM,CAAC,CAAC;SAC/FtW,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,eAAe,EAAE,CAACsK,IAAI,CAACnL,MAAM,CAAC,CAAC;SAExD,IAAIJ,EAAE,CAACyC,IAAI,CAACwX,UAAU,CAAC3O,QAAQ,CAAC,EAChC;WACCA,QAAQ,CAAC;aAAEtJ,EAAE;aAAEkC,IAAI;aAAEohB,IAAI,EAAE/Z,IAAI,CAACnL,MAAM;aAAEkW,QAAQ,EAAE;YAAM,CAAC;;QAE1D,CAAC;MACF;KAEDmlB,UAAU,GACV;OACC,MAAMlpB,KAAK,GAAG,IAAI,CAACw4B,QAAQ,EAAE;OAC7B,MAAMx/B,IAAI,GAAG,IAAI;OACjB,IAAIilC,eAAe;OAEnB,EAAE,CAAC/nC,OAAO,CAAC8L,IAAI,CAAChC,KAAK,EAAG7J,OAAO,IAAK;SACnC8nC,eAAe,GAAGjlC,IAAI,CAACujC,kBAAkB,CAACpmC,OAAO,CAAC;SAElD,IAAI1I,EAAE,CAACyC,IAAI,CAACC,SAAS,CAAC8tC,eAAe,CAAC,EACtC;WACCxwC,EAAE,CAAC2I,MAAM,CAAC4C,IAAI,CAACujC,kBAAkB,CAACpmC,OAAO,CAAC,CAAC;WAC3C1I,EAAE,CAACmJ,IAAI,CAACoC,IAAI,CAACwqB,mBAAmB,CAACrtB,OAAO,CAAC,CAAC;;QAE3C,CAAC;OAEF1I,EAAE,CAACqH,WAAW,CAAC,IAAI,CAACmK,OAAO,EAAE,EAAE,oBAAoB,CAAC;MACpD;KAEDi/B,cAAc,CAACr9B,KAAK,EACpB;OACC,OAAO,IAAI,CAAC23B,QAAQ,EAAE,CAAC33B,KAAK,CAAC;MAC7B;KAEDs9B,sBAAsB,CAACt9B,KAAK,EAC5B;OACC,OAAOrS,IAAI,CAACf,EAAE,CAACkE,IAAI,CAAC,IAAI,CAACusC,cAAc,CAACr9B,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;MACxD;KAEDu9B,sBAAsB,CAACv9B,KAAK,EAC5B;OACC,OAAOpT,EAAE,CAACkE,IAAI,CAAC,IAAI,CAACusC,cAAc,CAACr9B,KAAK,CAAC,EAAE,MAAM,CAAC;MAClD;KAEDw9B,aAAa,GACb;OACC,IAAI,CAACnE,QAAQ,GAAG,IAAI;MACpB;KAEDoE,WAAW,CAACpE,QAAQ,EACpB;OACC,IAAI,CAACA,QAAQ,GAAGA,QAAQ;MACxB;KAEDqE,WAAW,GACX;OACC,IAAI,IAAI,CAACrE,QAAQ,KAAK,IAAI,EAC1B;SACC,MAAMsE,YAAY,GAAG,IAAI,CAAC3wC,MAAM,CAACsR,QAAQ,CAAC,eAAe,CAAC;SAC1D,MAAMs/B,KAAK,GAAG,IAAI,CAAC/iC,KAAK,EAAE;SAE1B,IAAIjO,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAACunC,YAAY,CAAC,IAAIC,KAAK,IAAID,YAAY,EAChE;WACC,IAAI,CAACtE,QAAQ,GAAGsE,YAAY,CAACC,KAAK,CAAC;UACnC,MAED;WACC,IAAI,CAACvE,QAAQ,GAAG,EAAE;;;OAIpB,OAAO,IAAI,CAACA,QAAQ;MACpB;KAEDwE,0BAA0B,CAACz+B,SAAS,EACpC;OACC,MAAMi6B,QAAQ,GAAG,IAAI,CAACqE,WAAW,EAAE;OACnC,IAAI1oC,MAAM,GAAG,IAAI;OACjBoK,SAAS,GAAGmf,QAAQ,CAACnf,SAAS,CAAC;OAE/B,IAAIxS,EAAE,CAACyC,IAAI,CAACuR,QAAQ,CAACxB,SAAS,CAAC,IAAIxS,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAACijC,QAAQ,CAAC,EAClE;SACC,MAAMyE,cAAc,GAAG,IAAI,CAAC9wC,MAAM,CAACuN,OAAO,EAAE,CAAC4D,iBAAiB,EAAE,CAACm/B,sBAAsB,CAACl+B,SAAS,CAAC;SAElG,IAAIxS,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAAC0nC,cAAc,CAAC,EACzC;WACC9oC,MAAM,GAAG8oC,cAAc;WACvB9oC,MAAM,CAAC/C,KAAK,GAAGonC,QAAQ,CAACyE,cAAc,CAACjsC,IAAI,CAAC;;;OAI9C,OAAOmD,MAAM;MACb;KAEDkzB,IAAI,GACJ;OACC,MAAM/oB,KAAK,GAAG,IAAI,CAACw4B,QAAQ,EAAE;OAC7B,MAAMx/B,IAAI,GAAG,IAAI;OACjB,IAAIyyB,UAAU;OAAE,IAAItX,MAAM;OAAE,IAAIhD,MAAM;OAAE,IACvCmS,gBAAgB;OAEjB,EAAE,CAACptB,OAAO,CAAC8L,IAAI,CAAChC,KAAK,EAAE,CAAC7J,OAAO,EAAE0K,KAAK,KAAK;SAC1C,IAAI1K,OAAO,CAACiU,OAAO,CAACw0B,QAAQ,KAAK,MAAM,EACvC;WACC,IACA;aACCnT,UAAU,GAAGzyB,IAAI,CAAC0lC,0BAA0B,CAAC79B,KAAK,CAAC;YACnD,CACD,OAAOrG,GAAG,EACV;aACC,MAAM,IAAIC,KAAK,CAACD,GAAG,CAAC;;WAGrB,IAAIxB,IAAI,CAACnL,MAAM,CAACotB,SAAS,EAAE,CAAC6T,kBAAkB,CAACrD,UAAU,CAAC,EAC1D;aACCnI,gBAAgB,GAAGtqB,IAAI,CAACwqB,mBAAmB,CAACrtB,OAAO,CAAC;aACpDgb,MAAM,GAAG1jB,EAAE,CAAC0jB,MAAM,CAACmS,gBAAgB,CAAC;aACpCnP,MAAM,GAAGnb,IAAI,CAACnL,MAAM,CAACotB,SAAS,EAAE,CAACA,SAAS,CAACwQ,UAAU,EAAEta,MAAM,CAAC;aAE9D,IAAI,CAACnY,IAAI,CAACujC,kBAAkB,CAACpmC,OAAO,CAAC,IAAI1I,EAAE,CAACyC,IAAI,CAACC,SAAS,CAACgkB,MAAM,CAAC,EAClE;eACChe,OAAO,CAAClD,WAAW,CAACkhB,MAAM,CAAC;eAC3B1mB,EAAE,CAACqJ,IAAI,CAACwsB,gBAAgB,CAAC;;;;QAI5B,CAAC;OAEF71B,EAAE,CAACoH,QAAQ,CAAC,IAAI,CAACoK,OAAO,EAAE,EAAE,oBAAoB,CAAC;MACjD;KAED4/B,YAAY,CAACvrC,KAAK,EAClB;OACC,IAAIA,KAAK,EACT;SACC7F,EAAE,CAACqH,WAAW,CAAC,IAAI,CAACmK,OAAO,EAAE,EAAE,IAAI,CAACpR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,kBAAkB,CAAC,CAAC;SAC5E,IAAI,CAAC3C,MAAM,CAACopB,eAAe,EAAE,CAAC/Y,QAAQ,CAAC,IAAI,CAACe,OAAO,EAAE,CAAC;QACtD,MAED;SACCxR,EAAE,CAACoH,QAAQ,CAAC,IAAI,CAACoK,OAAO,EAAE,EAAE,IAAI,CAACpR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,kBAAkB,CAAC,CAAC;SACzE,IAAI,CAAC3C,MAAM,CAACopB,eAAe,EAAE,CAAC7Y,UAAU,CAAC,IAAI,CAACa,OAAO,EAAE,CAAC;;MAEzD;KAED6/B,WAAW,GACX;OACC,OAAO,CAACrxC,EAAE,CAACmD,QAAQ,CAAC,IAAI,CAACqO,OAAO,EAAE,EAAE,IAAI,CAACpR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,kBAAkB,CAAC,CAAC;MACjF;KAEDyO,OAAO,GACP;OACC,OAAO,IAAI,CAACtO,IAAI;MAChB;KAED+P,QAAQ,GACR;OACC,OAAO,IAAI,CAACzB,OAAO,EAAE,CAACgqB,QAAQ;MAC9B;KAEDvtB,KAAK,GACL;OACC,OAAO2O,MAAM,CAAC5c,EAAE,CAACkE,IAAI,CAAC,IAAI,CAACsN,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;MAC5C;KAEDw+B,UAAU,GACV;OACC,OAAQhwC,EAAE,CAACkE,IAAI,CAAC,IAAI,CAACsN,OAAO,EAAE,EAAE,UAAU,CAAC,CAAEwL,QAAQ,EAAE;MACvD;KAED+D,WAAW,GACX;OACC,OAAO/gB,EAAE,CAACE,IAAI,CAAC8gB,QAAQ;MACvB;KAEDoS,WAAW,GACX;OACC,IAAI,CAAC,IAAI,CAAC7wB,QAAQ,EAClB;SACC,IAAI,CAACA,QAAQ,GAAGvC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAAC2O,OAAO,EAAE,EAAE,IAAI,CAAC1O,QAAQ,CAACC,GAAG,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;;OAGtG,OAAO,IAAI,CAACR,QAAQ;MACpB;KAED+uC,gBAAgB,GAChB;OACC,OAAOtxC,EAAE,CAACiV,IAAI,CAACvS,SAAS,CAAC,IAAI,CAACsxB,gBAAgB,EAAE,CAAC;MACjD;KAEDud,cAAc,GACd;OACC,IAAI,CAAC,IAAI,CAACC,WAAW,IAAI,IAAI,CAACF,gBAAgB,EAAE,EAChD;SACC,MAAMG,UAAU,GAAG,IAAI,CAACzd,gBAAgB,EAAE,CAACrhB,qBAAqB,EAAE;SAElE,IAAI,CAAC6+B,WAAW,GAAGxxC,EAAE,CAACme,SAAS,CAACvZ,MAAM,CACpC,0BAAyB,IAAI,CAACqJ,KAAK,EAAG,EAAC,EACxC,IAAI,CAAC+lB,gBAAgB,EAAE,EACvB,IAAI,CAAC0d,YAAY,EAAE,EACnB;WACCtzB,QAAQ,EAAE,IAAI;WACdC,SAAS,EAAE,EAAGozB,UAAU,CAAC/tB,MAAM,GAAG,CAAC,GAAI,EAAE,CAAC;WAC1CpF,UAAU,EAAE,EAAE;WACdqzB,KAAK,EAAE;aACN9P,QAAQ,EAAE,MAAM;aAChBlyB,MAAM,EAAI8hC,UAAU,CAAC/tB,MAAM,GAAG,CAAC,GAAI;YACnC;WACD/E,MAAM,EAAE;aACPC,YAAY,EAAE5e,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAACsd,YAAY,EAAE,IAAI,CAAC;aAClDC,WAAW,EAAE9e,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAACqwC,YAAY,EAAE,IAAI;;UAEjD,CACD;SAED5xC,EAAE,CAACgB,cAAc,CAAC,eAAe,EAAE,MAAM;WACxC,IAAI,IAAI,CAACwwC,WAAW,EACpB;aACC,IAAI,CAACA,WAAW,CAAC7vC,OAAO,EAAE;aAC1B,IAAI,CAAC6vC,WAAW,GAAG,IAAI;;UAExB,CAAC;SAEFxxC,EAAE,CAACsB,IAAI,CAAC,IAAI,CAACkwC,WAAW,CAACj1B,WAAW,CAAC2C,cAAc,EAAE,OAAO,EAAElf,EAAE,CAACuB,QAAQ,CAAC,UAASU,KAAK,EAAE;WACzF,MAAMuvC,WAAW,GAAG,IAAI,CAACD,cAAc,EAAE;WACzC,IAAIC,WAAW,EACf;aACC,MAAMlkC,MAAM,GAAGtN,EAAE,CAAC6xC,cAAc,CAAC5vC,KAAK,CAAC;aACvC,MAAMC,IAAI,GAAGlC,EAAE,CAACuN,UAAU,CAACD,MAAM,EAAE;eAClCxI,SAAS,EAAE;cACX,EAAE,EAAE,CAAC;aAEN,IAAI,CAAC5C,IAAI,IAAI,CAACA,IAAI,CAACya,OAAO,CAACm1B,uBAAuB,EAClD;eACCN,WAAW,CAACzxB,KAAK,EAAE;;;UAGrB,EAAE,IAAI,CAAC,CAAC;;OAGV,OAAO,IAAI,CAACyxB,WAAW;MACvB;KAED3yB,YAAY,GACZ,EAAE;KAEF+yB,YAAY,CAACG,SAAS,EACtB;OACCA,SAAS,CAACC,cAAc,CAAC,IAAI,CAAChe,gBAAgB,EAAE,CAAC;MACjD;KAEDU,kBAAkB,GAClB;OACC,OAAO,IAAI,CAAC6c,cAAc,EAAE,CAACh1B,WAAW,CAACxO,OAAO,EAAE;MAClD;KAED4mB,eAAe,CAAC1yB,KAAK,EACrB;OACCjC,EAAE,CAAC8B,SAAS,CAACue,QAAQ,CAACE,IAAI,EAAE,OAAO,CAAC;OAEpC,IAAI,CAACgxB,cAAc,EAAE,CAACh1B,WAAW,CAACpT,IAAI,EAAE;OAExC,IAAIlH,KAAK,EACT;SACC,IAAI,CAACsvC,cAAc,EAAE,CAACh1B,WAAW,CAAC2C,cAAc,CAACxL,KAAK,CAAC2Q,GAAG,GAAI,GAAGpiB,KAAK,CAACgwC,KAAK,GAAG,EAAE,GAAIjyC,EAAE,CAAC24B,WAAW,CAACuZ,SAAS,CAAC,WAAW,CAAE,IAAG;SAC9H,IAAI,CAACX,cAAc,EAAE,CAACh1B,WAAW,CAAC2C,cAAc,CAACxL,KAAK,CAACvB,IAAI,GAAI,GAAGlQ,KAAK,CAACkwC,KAAK,GAAG,EAAE,GAAInyC,EAAE,CAAC24B,WAAW,CAACuZ,SAAS,CAAC,YAAY,CAAE,IAAG;;MAEjI;KAED9iB,gBAAgB,GAChB;OACC,IAAI,IAAI,CAACoiB,WAAW,IAAI,IAAI,CAACA,WAAW,CAACj1B,WAAW,EACpD;SACC,IAAI,CAACi1B,WAAW,CAACj1B,WAAW,CAACwD,KAAK,EAAE;;MAErC;KAED2xB,YAAY,GACZ;OACC,OAAO,IAAI,CAACU,UAAU,EAAE,IAAI,EAAE;MAC9B;KAEDA,UAAU,GACV;OACC,IACA;SACC,IAAI,CAAC/xC,OAAO,GAAG,IAAI,CAACA,OAAO,IAAIU,IAAI,CAACf,EAAE,CAACkE,IAAI,CAAC,IAAI,CAAC8vB,gBAAgB,EAAE,EAAE,IAAI,CAAClxB,QAAQ,CAACC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1G,CACD,MACA;SACC,IAAI,CAAC1C,OAAO,GAAG,IAAI;;OAGpB,OAAO,IAAI,CAACA,OAAO;MACnB;KAED2zB,gBAAgB,GAChB;OACC,IAAI,CAAC,IAAI,CAACsY,aAAa,EACvB;SACC,IAAI,CAACA,aAAa,GAAGtsC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CAAC,IAAI,CAAC2O,OAAO,EAAE,EAAE,IAAI,CAAC1O,QAAQ,CAACC,GAAG,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC;;OAG/G,OAAO,IAAI,CAACupC,aAAa;MACzB;KAED+F,UAAU,GACV;OACC,IAAI,IAAI,CAAClc,UAAU,EAAE,IAAI,CAACn2B,EAAE,CAACmD,QAAQ,CAAC,IAAI,CAACqO,OAAO,EAAE,EAAE,IAAI,CAAC1O,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC,CAAC,EAC3F;SACC/C,EAAE,CAACoH,QAAQ,CAAC,IAAI,CAACoK,OAAO,EAAE,EAAE,IAAI,CAAC1O,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC,CAAC;;MAElE;KAEDuvC,aAAa,GACb;OACC,IAAIlqC,MAAM;OAEV,IACA;SACCA,MAAM,GAAI,IAAI,CAACoJ,OAAO,EAAE,CAAErE,UAAU;QACpC,CACD,MACA;SACC/E,MAAM,GAAG,IAAI;;OAGd,OAAOA,MAAM;MACb;KAEDmqC,iBAAiB,GACjB;OACC,IAAInqC,MAAM;OAEV,IACA;SACCA,MAAM,GAAI,IAAI,CAACkqC,aAAa,EAAE,CAAEjd,QAAQ;QACxC,CACD,MACA;SACCjtB,MAAM,GAAG,IAAI;;OAGd,OAAOA,MAAM;MACb;KAEDoqC,YAAY,GACZ;OACC,OAAO,CAAC,IAAI,CAAC3d,MAAM,EAAE,IAAI,IAAI,CAACz0B,MAAM,CAACsR,QAAQ,CAAC,sBAAsB,CAAC;MACrE;KAED0kB,MAAM,GACN;OACC,IAAI7zB,QAAQ;OAEZ,IACC,IAAI,CAACiwC,YAAY,EAAE,KACf,IAAI,CAACpyC,MAAM,CAACsR,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAACtR,MAAM,CAACuN,OAAO,EAAE,CAAC8kC,WAAW,EAAE,CAAC,EAExF;SACClwC,QAAQ,GAAG,IAAI,CAAC6wB,WAAW,EAAE;SAE7B,IAAI7wB,QAAQ,IAAI,CAACvC,EAAE,CAACkE,IAAI,CAAC3B,QAAQ,EAAE,UAAU,CAAC,EAC9C;WACCvC,EAAE,CAACoH,QAAQ,CAAC,IAAI,CAACoK,OAAO,EAAE,EAAE,IAAI,CAAC1O,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC,CAAC;WACjE,IAAI,CAAC6pC,SAAS,CAACnkC,OAAO,CAAC,UAASqF,GAAG,EAAE;aACpC9N,EAAE,CAACoH,QAAQ,CAAC0G,GAAG,EAAE,IAAI,CAAChL,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YACtD,EAAE,IAAI,CAAC;WACRR,QAAQ,CAACI,OAAO,GAAG,IAAI;;;MAGzB;KAED0zB,QAAQ,GACR;OACC,IAAI,IAAI,CAACmc,YAAY,EAAE,EACvB;SACCxyC,EAAE,CAACqH,WAAW,CAAC,IAAI,CAACmK,OAAO,EAAE,EAAE,IAAI,CAAC1O,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC,CAAC;SACpE,IAAI,CAAC6pC,SAAS,CAACnkC,OAAO,CAAC,UAASqF,GAAG,EAAE;WACpC9N,EAAE,CAACqH,WAAW,CAACyG,GAAG,EAAE,IAAI,CAAChL,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC,CAAC;UACzD,EAAE,IAAI,CAAC;SACR,IAAI,IAAI,CAACqwB,WAAW,EAAE,EACtB;WACC,IAAI,CAACA,WAAW,EAAE,CAACzwB,OAAO,GAAG,KAAK;;;MAGpC;KAEDooC,QAAQ,GACR;OACC,OAAO,IAAI,CAACv5B,OAAO,EAAE,CAACe,KAAK;MAC3B;KAED4jB,UAAU,GACV;OACC,OACE,IAAI,CAAC/C,WAAW,EAAE,IAAK,IAAI,CAACA,WAAW,EAAE,CAAEzwB,OAAO,IAC/C3C,EAAE,CAACmD,QAAQ,CAAC,IAAI,CAACqO,OAAO,EAAE,EAAE,IAAI,CAAC1O,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC,CAAE;MAEvE;KAEDkqC,WAAW,GACX;OACC,OACC,IAAI,CAACsF,iBAAiB,EAAE,KAAK,OAAO,IACjCvyC,EAAE,CAACmD,QAAQ,CAAC,IAAI,CAACqO,OAAO,EAAE,EAAE,IAAI,CAAC1O,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,CAAC;MAElE;KAED8pC,WAAW,GACX;OACC,OACC7sC,EAAE,CAACmD,QAAQ,CAAC,IAAI,CAACqO,OAAO,EAAE,EAAE,IAAI,CAAC1O,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC/C,EAAE,CAACmD,QAAQ,CAAC,IAAI,CAACqO,OAAO,EAAE,EAAE,IAAI,CAAC1O,QAAQ,CAACC,GAAG,CAAC,gBAAgB,CAAC,CAAC;MAEpI;KAED2vC,WAAW,GACX;OACC,OACC,IAAI,CAACH,iBAAiB,EAAE,KAAK,OAAO,IACjCvyC,EAAE,CAACmD,QAAQ,CAAC,IAAI,CAACqO,OAAO,EAAE,EAAE,IAAI,CAAC1O,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,CAAC;MAElE;KAEDq4B,SAAS,CAAC9tB,MAAM,EAChB;OACCtN,EAAE,CAACkH,GAAG,CAACkzB,OAAO,CAAC,IAAI,CAAC5oB,OAAO,EAAE,EAAElE,MAAM,CAAC;MACtC;KAED+tB,QAAQ,CAAC/tB,MAAM,EACf;OACCtN,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAAC,IAAI,CAACvpB,OAAO,EAAE,EAAElE,MAAM,CAAC;MACrC;KAEDquB,KAAK,CAAC35B,EAAE,EACR;OACChC,EAAE,CAACkH,GAAG,CAACC,IAAI,CAAC,IAAI,CAACqK,OAAO,EAAE,EAAE,SAAS,EAAExP,EAAE,CAAC;MAC1C;KAED45B,UAAU,CAACv7B,OAAO,EAClB;OACC,MAAMsyC,UAAU,GAAG,IAAI,CAACnhC,OAAO,EAAE,CAACiI,aAAa,CAAC,wBAAwB,CAAC;OACzE,IAAIk5B,UAAU,EACd;SACC,IAAIC,YAAY,GAAGD,UAAU,CAACl5B,aAAa,CAAC,8BAA8B,CAAC;SAC3E,IAAI,CAACm5B,YAAY,EACjB;WACCA,YAAY,GAAG5yC,EAAE,CAACkH,GAAG,CAACtC,MAAM,CAAC;aAC5B6qB,GAAG,EAAE,KAAK;aACV5qB,KAAK,EAAE;eAAEC,SAAS,EAAE;;YACpB,CAAC;WAEF,MAAMN,SAAS,GAAG,IAAI,CAACuxB,mBAAmB,CAAC4c,UAAU,CAAC;WACtD3yC,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAAC6X,YAAY,EAAEpuC,SAAS,CAAC;;SAGvCxE,EAAE,CAACkH,GAAG,CAACC,IAAI,CAACyrC,YAAY,EAAE;WACzBhrC,IAAI,EAAE,GAAG;WACT,cAAc,EAAEvH;UAChB,CAAC;SAEF,IAAI,CAACA,OAAO,GAAGA,OAAO;SAEtB,IAAI,IAAI,CAACmxC,WAAW,EACpB;WACC,IAAI,CAACA,WAAW,CAAC7vC,OAAO,EAAE;WAC1B,IAAI,CAAC6vC,WAAW,GAAG,IAAI;;;MAGzB;KAED9V,aAAa,GACb;OACC17B,EAAE,CAACkH,GAAG,CAACG,WAAW,CAAC,IAAI,CAACmK,OAAO,EAAE,EAAE,qBAAqB,CAAC;MACzD;KAEDqhC,gBAAgB,GAChB;OACC7yC,EAAE,CAACkH,GAAG,CAACE,QAAQ,CAAC,IAAI,CAACoK,OAAO,EAAE,EAAE,qBAAqB,CAAC;MACtD;KAEDshC,gBAAgB,CAAClJ,QAAQ,EACzB;OACC,MAAMj1B,OAAO,GAAG,IAAI,CAACvU,MAAM,CAACsR,QAAQ,CAAC,aAAa,CAAC;OACnD,IACC1R,EAAE,CAACiV,IAAI,CAACzL,aAAa,CAACmL,OAAO,CAAC,IAC3Bo+B,OAAO,CAACrE,GAAG,CAAC/5B,OAAO,EAAEi1B,QAAQ,CAAC,EAElC;SACC,OAAOj1B,OAAO,CAACi1B,QAAQ,CAAC;;OAGzB,OAAO,IAAI;MACX;KAED/N,eAAe,CAACjD,OAAO,EACvB;OACC,MAAMoa,OAAO,GAAG,IAAI,CAAC5yC,MAAM,CAACuN,OAAO,EAAE,CAAC4D,iBAAiB,EAAE;OAEzD,CAAC,GAAG,IAAI,CAACw5B,QAAQ,EAAE,CAAC,CAACtiC,OAAO,CAAC,CAAC4J,IAAI,EAAEG,SAAS,KAAK;SACjD,MAAMygC,QAAQ,GAAGD,OAAO,CAACrC,sBAAsB,CAACn+B,SAAS,CAAC;SAE1D,IAAIugC,OAAO,CAACrE,GAAG,CAAC9V,OAAO,EAAEqa,QAAQ,CAAC,EAClC;WACC,MAAMC,aAAa,GAAG,IAAI,CAACJ,gBAAgB,CAACG,QAAQ,CAAC;WACrD,MAAMzuC,SAAS,GAAG,IAAI,CAACuxB,mBAAmB,CAAC1jB,IAAI,CAAC;WAChD,MAAM8gC,WAAW,GAAGva,OAAO,CAACqa,QAAQ,CAAC;WACrC,IACCC,aAAa,CAACzwC,IAAI,KAAK,QAAQ,IAC5BzC,EAAE,CAACiV,IAAI,CAACpM,OAAO,CAACsqC,WAAW,CAAC,EAEhC;aACC,MAAMC,MAAM,GAAGD,WAAW,CAACnlC,GAAG,CAAEqlC,YAAY,IAAK;eAChD,MAAMC,KAAK,GAAGtzC,EAAE,CAACghC,GAAG,CAACC,MAAM,oBAAC;gCACL,CAAqB;QAC5C,GADyBoS,YAAY,CAACE,KAAK,CAC1C;eAED,IAAIF,YAAY,CAACG,KAAK,KAAK,IAAI,EAC/B;iBACCxzC,EAAE,CAACkH,GAAG,CAACE,QAAQ,CAACksC,KAAK,EAAE,eAAe,CAAC;;eAGxC,IAAItzC,EAAE,CAACiV,IAAI,CAACzL,aAAa,CAAC6pC,YAAY,CAAC10B,MAAM,CAAC,EAC9C;iBACC,IAAIo0B,OAAO,CAACrE,GAAG,CAAC2E,YAAY,CAAC10B,MAAM,EAAE,OAAO,CAAC,EAC7C;mBACC3e,EAAE,CAACkH,GAAG,CAACE,QAAQ,CAACksC,KAAK,EAAE,eAAe,CAAC;;iBAGxC,IAAI,CAACG,YAAY,CAACH,KAAK,EAAED,YAAY,CAAC10B,MAAM,CAAC;;eAG9C,MAAM+0B,YAAY,GAAG,CAAC,MAAM;iBAC3B,IAAI1zC,EAAE,CAACiV,IAAI,CAACm0B,cAAc,CAACiK,YAAY,CAAC9tC,IAAI,CAAC,EAC7C;mBACC,OAAO8tC,YAAY,CAAC9tC,IAAI;;iBAGzB,OAAO8tC,YAAY,CAAC/sC,IAAI;gBACxB,GAAG;eAEJ,MAAMZ,KAAK,GAAG1F,EAAE,CAACghC,GAAG,CAACC,MAAM,sBAAC;uCACE,CAAe;QAC7C,GADgCyS,YAAY,CAC3C;eAED1zC,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAACr1B,KAAK,EAAE4tC,KAAK,CAAC;eAE3B,IAAItzC,EAAE,CAACiV,IAAI,CAACzL,aAAa,CAAC6pC,YAAY,CAACM,YAAY,CAAC,EACpD;iBACC,MAAMjzC,MAAM,GAAG,CAAC,MAAM;mBACrB,IAAI2yC,YAAY,CAACM,YAAY,CAAClxC,IAAI,KAAKzC,EAAE,CAACE,IAAI,CAACyiC,KAAK,CAACK,gBAAgB,CAACC,MAAM,EAC5E;qBACC,OAAOjjC,EAAE,CAACghC,GAAG,CAACC,MAAM,sBAAC;;WAErB;;mBAGD,OAAOjhC,EAAE,CAACghC,GAAG,CAACC,MAAM,sBAAC;uDACuB,CAAiC;UAC7E,GAD8CoS,YAAY,CAACM,YAAY,CAAClxC,IAAI;kBAE5E,GAAG;iBAEJ,IAAIzC,EAAE,CAACiV,IAAI,CAACzL,aAAa,CAAC6pC,YAAY,CAACM,YAAY,CAACh1B,MAAM,CAAC,EAC3D;mBACC,IAAI,CAAC80B,YAAY,CAAC/yC,MAAM,EAAE2yC,YAAY,CAACM,YAAY,CAACh1B,MAAM,CAAC;;iBAG5D3e,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAACr6B,MAAM,EAAE4yC,KAAK,CAAC;;eAG7B,OAAOA,KAAK;cACZ,CAAC;aAEF,MAAMM,eAAe,GAAG5zC,EAAE,CAACghC,GAAG,CAACC,MAAM,sBAAC;uCACP,CAAS;OACxC,GADiCmS,MAAM,CACtC;aAEDpzC,EAAE,CAACkH,GAAG,CAAC2sC,KAAK,CAACrvC,SAAS,CAAC;aACvB,MAAMsvC,kBAAkB,GAAGtvC,SAAS,CAACiV,aAAa,CAAC,mBAAmB,CAAC;aACvE,IAAIzZ,EAAE,CAACiV,IAAI,CAACvS,SAAS,CAACoxC,kBAAkB,CAAC,EACzC;eACC9zC,EAAE,CAACkH,GAAG,CAACe,OAAO,CAAC6rC,kBAAkB,EAAEF,eAAe,CAAC;cACnD,MAED;eACC5zC,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAAC6Y,eAAe,EAAEpvC,SAAS,CAAC;;YAE1C,MACI,IACJ0uC,aAAa,CAACzwC,IAAI,KAAK,MAAM,IAC1BzC,EAAE,CAACiV,IAAI,CAACzL,aAAa,CAAC2pC,WAAW,CAAC,EAEtC;aACC,MAAMY,IAAI,GAAGZ,WAAW,CAAC/3B,KAAK,CAACpN,GAAG,CAAEgmC,UAAU,IAAK;eAClD,MAAMvkB,GAAG,GAAGzvB,EAAE,CAACghC,GAAG,CAACC,MAAM,kBAAC;;QAE1B,EAAC;eAED,IAAI,CAACwS,YAAY,CAAChkB,GAAG,EAAEukB,UAAU,CAACr1B,MAAM,CAAC;eAEzC,IAAIq1B,UAAU,CAACC,MAAM,KAAK,IAAI,EAC9B;iBACCj0C,EAAE,CAACkH,GAAG,CAACE,QAAQ,CAACqoB,GAAG,EAAE,sBAAsB,CAAC;;eAG7C,MAAMykB,UAAU,GAAG,CAAC,MAAM;iBACzB,IAAIl0C,EAAE,CAACiV,IAAI,CAACm0B,cAAc,CAAC4K,UAAU,CAACzuC,IAAI,CAAC,EAC3C;mBACC,OAAOyuC,UAAU,CAACzuC,IAAI;;iBAGvB,OAAOvF,EAAE,CAACkhC,IAAI,CAACC,MAAM,CAAC6S,UAAU,CAAC1tC,IAAI,CAAC;gBACtC,GAAG;eAEJ,MAAM6tC,QAAQ,GAAGn0C,EAAE,CAACghC,GAAG,CAACC,MAAM,kBAAC;4CACI,CAAa;QAChD,GADqCiT,UAAU,CAC9C;eAEDl0C,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAACoZ,QAAQ,EAAE1kB,GAAG,CAAC;eAE5B,IAAIukB,UAAU,CAACC,MAAM,KAAK,IAAI,EAC9B;iBACC,MAAMN,YAAY,GAAG3zC,EAAE,CAACghC,GAAG,CAACC,MAAM,kBAAC;;SAEnC,EAAC;iBAEDjhC,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAAC4Y,YAAY,EAAElkB,GAAG,CAAC;iBAEhC,IAAIzvB,EAAE,CAACiV,IAAI,CAACzL,aAAa,CAACwqC,UAAU,CAACL,YAAY,CAAC,EAClD;mBACC,IAAI,CAACF,YAAY,CAACE,YAAY,EAAEK,UAAU,CAACL,YAAY,CAACh1B,MAAM,CAAC;;;eAIjE,OAAO8Q,GAAG;cACV,CAAC;aAEF,MAAM2kB,aAAa,GAAGp0C,EAAE,CAACghC,GAAG,CAACC,MAAM,kBAAC;sCACN,CAAO;OACrC,GADgC8S,IAAI,CACnC;aAED,MAAMM,SAAS,GAAGr0C,EAAE,CAACghC,GAAG,CAACC,MAAM,oBAAC;;OAEhC,EAAC;aACD,IAAIjhC,EAAE,CAACiV,IAAI,CAACzL,aAAa,CAAC2pC,WAAW,CAACkB,SAAS,CAAC,EAChD;eACC,IAAI,CAACZ,YAAY,CAACY,SAAS,EAAElB,WAAW,CAACkB,SAAS,CAAC11B,MAAM,CAAC;;aAG3D3e,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAACsZ,SAAS,EAAED,aAAa,CAAC;aAEvC,MAAME,gBAAgB,GAAG9vC,SAAS,CAACiV,aAAa,CAAC,iBAAiB,CAAC;aACnE,IAAIzZ,EAAE,CAACiV,IAAI,CAACvS,SAAS,CAAC4xC,gBAAgB,CAAC,EACvC;eACCt0C,EAAE,CAACkH,GAAG,CAACe,OAAO,CAACqsC,gBAAgB,EAAEF,aAAa,CAAC;cAC/C,MAED;eACCp0C,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAACqZ,aAAa,EAAE5vC,SAAS,CAAC;;YAExC,MACI,IAAIxE,EAAE,CAACiV,IAAI,CAACvS,SAAS,CAACywC,WAAW,CAAC,EACvC;aACCnzC,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAACoY,WAAW,EAAE3uC,SAAS,CAAC;YACrC,MAED;aACCxE,EAAE,CAAC0L,OAAO,CAACnG,IAAI,CAACf,SAAS,EAAE2uC,WAAW,CAAC;;;QAGzC,CAAC;MACF;KAEDoB,WAAW,CAACvyC,EAAE,EACd;OACC,MAAMgxC,OAAO,GAAG,IAAI,CAAC5yC,MAAM,CAACuN,OAAO,EAAE,CAAC4D,iBAAiB,EAAE;OAEzD,OAAO,CAAC,GAAG,IAAI,CAACw5B,QAAQ,EAAE,CAAC,CAACjuB,IAAI,CAAC,CAACzK,IAAI,EAAEe,KAAK,KAAK;SACjD,OAAO4/B,OAAO,CAACrC,sBAAsB,CAACv9B,KAAK,CAAC,KAAKpR,EAAE;QACnD,CAAC;MACF;KAEDwyC,UAAU,GACV;OACC,OAAO,IAAI,CAAC3H,WAAW,EAAE,IAAI,eAAe,CAAC4H,IAAI,CAAC,IAAI,CAACxmC,KAAK,EAAE,CAAC;MAC/D;KAEDm8B,sBAAsB,GACtB;OACC,MAAMsK,SAAS,GAAG,CAAC,GAAG,IAAI,CAACt0C,MAAM,CAACuN,OAAO,EAAE,CAAC4D,iBAAiB,EAAE,CAACw5B,QAAQ,EAAE,CAAC;OAC3E,MAAM4J,UAAU,GAAGD,SAAS,CAAC1mC,GAAG,CAAEqE,IAAI,IAAK;SAC1C,OAAOrS,EAAE,CAACkH,GAAG,CAACwM,KAAK,CAACrB,IAAI,EAAE,OAAO,CAAC;QAClC,CAAC;OAEF,MAAME,KAAK,GAAG,IAAI,CAACw4B,QAAQ,EAAE;OAC7B4J,UAAU,CAAClsC,OAAO,CAAC,CAACqK,KAAK,EAAEM,KAAK,KAAK;SACpCpT,EAAE,CAACkH,GAAG,CAACwM,KAAK,CAACnB,KAAK,CAACa,KAAK,CAAC,EAAE,OAAO,EAAEN,KAAK,CAAC;QAC1C,CAAC;OAEF9S,EAAE,CAACkH,GAAG,CAACwM,KAAK,CAAC,IAAI,CAAClC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC;MACpD;KAEDk5B,uBAAuB,GACvB;OACC1qC,EAAE,CAACkH,GAAG,CAACwM,KAAK,CAAC,IAAI,CAAClC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC;MAC9C;KAEDg5B,SAAS,GACT;OACC,OAAOxqC,EAAE,CAACkhC,IAAI,CAACoF,QAAQ,CAACtmC,EAAE,CAACkH,GAAG,CAACwM,KAAK,CAAC,IAAI,CAAClC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;MAC/D;KAED+3B,cAAc,CAACD,WAAW,EAC1B;OACCI,MAAM,CAACC,OAAO,CAACL,WAAW,CAAC,CAAC7gC,OAAO,CAAC,CAAC,CAACmsC,MAAM,EAAEv0C,OAAO,CAAC,KAAK;SAC1D,MAAMgS,IAAI,GAAG,IAAI,CAACkiC,WAAW,CAACK,MAAM,CAAC;SACrC,IAAIviC,IAAI,EACR;WACC,MAAM3M,KAAK,GAAG2M,IAAI,CAACoH,aAAa,CAAC,uBAAuB,CAAC;WACzD,IAAI/T,KAAK,EACT;aACC,MAAMlB,SAAS,GAAG,CAAC,MAAM;eACxB,MAAMqwC,gBAAgB,GAAGnvC,KAAK,CAAC+T,aAAa,CAAC,iCAAiC,CAAC;eAC/E,IAAIo7B,gBAAgB,EACpB;iBACC70C,EAAE,CAACkH,GAAG,CAAC2sC,KAAK,CAACgB,gBAAgB,CAAC;iBAE9B,OAAOA,gBAAgB;;eAGxB,MAAMC,YAAY,GAAG90C,EAAE,CAACghC,GAAG,CAACC,MAAM,oBAAC;;QAEnC,EAAC;eAEDjhC,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAAC+Z,YAAY,EAAEpvC,KAAK,CAAC;eAElC,OAAOovC,YAAY;cACnB,GAAG;aAEJ,IAAI90C,EAAE,CAACiV,IAAI,CAAC2rB,aAAa,CAACvgC,OAAO,CAAC,EAClC;eACCA,OAAO,CAACoI,OAAO,CAAEc,MAAM,IAAK;iBAC3B,MAAMwrC,WAAW,GAAG,CAAC,MAAM;mBAC1B,IAAI/0C,EAAE,CAACiV,IAAI,CAAC2rB,aAAa,CAACr3B,MAAM,CAAC0W,KAAK,CAAC,EACvC;qBACC,OAAO1W,MAAM,CAAC0W,KAAK,CAAC1C,IAAI,CAAC,GAAG,CAAC;;mBAG9B,OAAOhU,MAAM,CAAC0W,KAAK;kBACnB,GAAG;iBAEJ,MAAMvf,MAAM,GAAGV,EAAE,CAACghC,GAAG,CAACC,MAAM,oBAAC;sDACe,CAAc;SAC1D,GAD8C8T,WAAW,CACxD;iBAED,IAAI/0C,EAAE,CAACiV,IAAI,CAACzL,aAAa,CAACD,MAAM,CAACoV,MAAM,CAAC,EACxC;mBACC,IAAI,CAAC80B,YAAY,CAAC/yC,MAAM,EAAE6I,MAAM,CAACoV,MAAM,CAAC;;iBAGzC,IAAI3e,EAAE,CAACiV,IAAI,CAACzL,aAAa,CAACD,MAAM,CAACg8B,UAAU,CAAC,EAC5C;mBACCvlC,EAAE,CAACkH,GAAG,CAACC,IAAI,CAACzG,MAAM,EAAE6I,MAAM,CAACg8B,UAAU,CAAC;;iBAGvCvlC,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAACr6B,MAAM,EAAE8D,SAAS,CAAC;gBAChC,CAAC;;;;QAIL,CAAC;MACF;;CAGH;CACA;KACEmoC,kBAAkB,GAClB;OACC,MAAMtT,OAAO,GAAG,CACf,GAAG,IAAI,CAAC7nB,OAAO,EAAE,CAAC+e,gBAAgB,CAAC,+BAA+B,CAAC,CACnE;OACD,IAAIvwB,EAAE,CAACiV,IAAI,CAAC2rB,aAAa,CAACvH,OAAO,CAAC,EAClC;SACCA,OAAO,CAAC5wB,OAAO,CAAE/H,MAAM,IAAK;WAC3B,MAAMie,MAAM,GAAG5d,IAAI,CAACf,EAAE,CAACkH,GAAG,CAACC,IAAI,CAACzG,MAAM,EAAE,aAAa,CAAC,CAAC;WACvD,IAAIV,EAAE,CAACiV,IAAI,CAACzL,aAAa,CAACmV,MAAM,CAAC,EACjC;aACC3e,EAAE,CAACkH,GAAG,CAACC,IAAI,CAACzG,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC;aACxC,IAAI,CAAC+yC,YAAY,CAAC/yC,MAAM,EAAEie,MAAM,CAAC;;UAElC,CAAC;;MAEH;;CAGH;CACA;CACA;KACE+tB,cAAc,CAACzqC,KAAK,EACpB;OACCA,KAAK,CAAC+d,eAAe,EAAE;MACvB;;CAGH;CACA;KACEyzB,YAAY,CAAC/yC,MAAM,EAAEie,MAAM,EAC3B;OACC,IACC3e,EAAE,CAACiV,IAAI,CAACvS,SAAS,CAAChC,MAAM,CAAC,IACtBV,EAAE,CAACiV,IAAI,CAACzL,aAAa,CAACmV,MAAM,CAAC,EAEjC;SACC3e,EAAE,CAAC+lB,KAAK,CAACzkB,IAAI,CAACZ,MAAM,EAAE,OAAO,EAAE,IAAI,CAACgsC,cAAc,CAACprC,IAAI,CAAC,IAAI,CAAC,CAAC;SAE9D,MAAMgM,MAAM,GAAG,CAAC,MAAM;WACrB,MAAMyN,QAAQ,GAAG/a,EAAE,CAACkH,GAAG,CAACC,IAAI,CAACzG,MAAM,EAAE,aAAa,CAAC;WACnD,IAAIqa,QAAQ,EACZ;aACC,OAAOra,MAAM,CAACmtC,OAAO,CAAC9yB,QAAQ,CAAC;;WAGhC,OAAOra,MAAM;UACb,GAAG;SAEJ,MAAMuB,KAAK,GAAG,IAAIjC,EAAE,CAAC+lB,KAAK,CAAC4J,SAAS,CAAC;WACpCzrB,IAAI,EAAE;aACLxD,MAAM;aACN4M,MAAM;aACNQ,GAAG,EAAE;;UAEN,CAAC;SAEF7L,KAAK,CAAC+yC,SAAS,CAAC1nC,MAAM,CAAC;SAEvBo8B,MAAM,CAACC,OAAO,CAAChrB,MAAM,CAAC,CAAClW,OAAO,CAAC,CAAC,CAACwsC,SAAS,EAAErQ,OAAO,CAAC,KAAK;WACxD,MAAMsQ,eAAe,GAAGn0C,IAAI,CAAC6jC,OAAO,CAAC;WACrC5kC,EAAE,CAAC+lB,KAAK,CAACzkB,IAAI,CAACZ,MAAM,EAAEu0C,SAAS,EAAEC,eAAe,CAAC5zC,IAAI,CAAC,IAAI,EAAEW,KAAK,CAAC,CAAC;UACnE,CAAC;;MAEH;KAEDgoC,WAAW,CAACT,QAAQ,EACpB;OACC,IAAIxpC,EAAE,CAACiV,IAAI,CAACzL,aAAa,CAACggC,QAAQ,CAAC,EACnC;SACCE,MAAM,CAACC,OAAO,CAACH,QAAQ,CAAC,CAAC/gC,OAAO,CAAC,CAAC,CAACmhC,QAAQ,EAAEpS,OAAO,CAAC,KAAK;WACzD,MAAMnlB,IAAI,GAAG,IAAI,CAACkiC,WAAW,CAAC3K,QAAQ,CAAC;WACvC,IAAI5pC,EAAE,CAACiV,IAAI,CAACvS,SAAS,CAAC2P,IAAI,CAAC,EAC3B;aACC,MAAM8iC,SAAS,GAAG9iC,IAAI,CAACoH,aAAa,CAAC,uBAAuB,CAAC;aAC7D,MAAM27B,gBAAgB,GAAG,CAAC,MAAM;eAC/B,MAAM5wC,SAAS,GAAG6N,IAAI,CAACoH,aAAa,CAAC,yBAAyB,CAAC;eAC/D,IAAIzZ,EAAE,CAACiV,IAAI,CAACvS,SAAS,CAAC8B,SAAS,CAAC,EAChC;iBACC,OAAOA,SAAS;;eAGjB,OAAOxE,EAAE,CAACghC,GAAG,CAACC,MAAM,oBAAC;;QAErB;cACA,GAAG;aAEJ,MAAMoU,SAAS,GAAG,CAAC,MAAM;eACxB,MAAMC,cAAc,GAAGF,gBAAgB,CAAC37B,aAAa,CAAC,aAAa,CAAC;eACpE,IAAIzZ,EAAE,CAACiV,IAAI,CAACvS,SAAS,CAAC4yC,cAAc,CAAC,EACrC;iBACC,OAAOA,cAAc;;eAGtB,MAAMC,UAAU,GAAGv1C,EAAE,CAACghC,GAAG,CAACC,MAAM,oBAAC;;QAEjC,EAAC;eAEDjhC,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAACwa,UAAU,EAAEH,gBAAgB,CAAC;eAE3C,OAAOG,UAAU;cACjB,GAAG;aAEJ,IAAIv1C,EAAE,CAACiV,IAAI,CAACzL,aAAa,CAACguB,OAAO,CAAC7Y,MAAM,CAAC,EACzC;eACC,IAAI,CAAC80B,YAAY,CAAC4B,SAAS,EAAE7d,OAAO,CAAC7Y,MAAM,CAAC;;aAG7C,MAAM62B,YAAY,GAAG,CAAC,MAAM;eAC3B,MAAMC,YAAY,GAAGJ,SAAS,CAAC57B,aAAa,CAAC,mBAAmB,CAAC;eACjE,IAAIzZ,EAAE,CAACiV,IAAI,CAACvS,SAAS,CAAC+yC,YAAY,CAAC,EACnC;iBACC,OAAOA,YAAY;;eAGpB,MAAMC,QAAQ,GAAG11C,EAAE,CAACghC,GAAG,CAACC,MAAM,oBAAC;;QAE/B,EAAC;eAEDjhC,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAAC2a,QAAQ,EAAEL,SAAS,CAAC;eAElC,OAAOK,QAAQ;cACf,GAAG;aAEJ,IAAIle,OAAO,CAACqS,QAAQ,EACpB;eACC,MAAM8L,sBAAsB,GAAG,CAAC,MAAM;iBACrC,MAAMC,sBAAsB,GAAGP,SAAS,CAAC57B,aAAa,CAAC,uBAAuB,CAAC;iBAC/E,IAAIzZ,EAAE,CAACiV,IAAI,CAACvS,SAAS,CAACkzC,sBAAsB,CAAC,EAC7C;mBACC,OAAOA,sBAAsB;;iBAG9B,MAAMC,kBAAkB,GAAG71C,EAAE,CAACghC,GAAG,CAACC,MAAM,oBAAC;;SAEzC,EAAC;iBAEDjhC,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAAC8a,kBAAkB,EAAER,SAAS,CAAC;iBAE5C,OAAOQ,kBAAkB;gBACzB,GAAG;eAEJ,IAAI71C,EAAE,CAACiV,IAAI,CAACm0B,cAAc,CAAC5R,OAAO,CAACsS,cAAc,CAAC,EAClD;iBAECJ,MAAM,CAACvsB,MAAM,CAACnd,EAAE,CAACE,IAAI,CAAC8U,QAAQ,CAACK,KAAK,CAAC,CAAC5M,OAAO,CAAEqhC,cAAc,IAAK;mBACjE9pC,EAAE,CAACkH,GAAG,CAACG,WAAW,CAACsuC,sBAAsB,EAAE7L,cAAc,CAAC;kBAC1D,CAAC;iBACF9pC,EAAE,CAACkH,GAAG,CAACE,QAAQ,CAACuuC,sBAAsB,EAAEne,OAAO,CAACsS,cAAc,CAAC;;;aAIjE,IAAI9pC,EAAE,CAACiV,IAAI,CAACm0B,cAAc,CAAC5R,OAAO,CAAC/0B,IAAI,CAAC,EACxC;eACCinC,MAAM,CAACvsB,MAAM,CAACnd,EAAE,CAACE,IAAI,CAAC8U,QAAQ,CAACC,IAAI,CAAC,CAACxM,OAAO,CAAEhG,IAAI,IAAK;iBACtDzC,EAAE,CAACkH,GAAG,CAACG,WAAW,CAAC+tC,gBAAgB,EAAG,0BAAyB3yC,IAAK,EAAC,CAAC;gBACtE,CAAC;eACFzC,EAAE,CAACkH,GAAG,CAACE,QAAQ,CAACguC,gBAAgB,EAAG,0BAAyB5d,OAAO,CAAC/0B,IAAK,EAAC,CAAC;;aAG5E,IAAIzC,EAAE,CAACiV,IAAI,CAACm0B,cAAc,CAAC5R,OAAO,CAAC+b,KAAK,CAAC,EACzC;eACC7J,MAAM,CAACvsB,MAAM,CAACnd,EAAE,CAACE,IAAI,CAAC8U,QAAQ,CAACK,KAAK,CAAC,CAAC5M,OAAO,CAAE8qC,KAAK,IAAK;iBACxDvzC,EAAE,CAACkH,GAAG,CAACG,WAAW,CAACguC,SAAS,EAAE9B,KAAK,CAAC;gBACpC,CAAC;eACFvzC,EAAE,CAACkH,GAAG,CAACE,QAAQ,CAACiuC,SAAS,EAAE7d,OAAO,CAAC+b,KAAK,CAAC;;aAG1C,IAAIvzC,EAAE,CAACiV,IAAI,CAACm0B,cAAc,CAAC5R,OAAO,CAACgM,IAAI,CAAC,EACxC;eACCkG,MAAM,CAACvsB,MAAM,CAACnd,EAAE,CAACE,IAAI,CAAC8U,QAAQ,CAACa,IAAI,CAAC,CAACpN,OAAO,CAAE+6B,IAAI,IAAK;iBACtDxjC,EAAE,CAACkH,GAAG,CAACG,WAAW,CAACguC,SAAS,EAAE7R,IAAI,CAAC;gBACnC,CAAC;eACFxjC,EAAE,CAACkH,GAAG,CAACE,QAAQ,CAACiuC,SAAS,EAAE7d,OAAO,CAACgM,IAAI,CAAC;;aAGzC,IAAIxjC,EAAE,CAACiV,IAAI,CAACm0B,cAAc,CAAC5R,OAAO,CAACvX,KAAK,CAAC,EACzC;eACCjgB,EAAE,CAACkH,GAAG,CAACE,QAAQ,CAACiuC,SAAS,EAAE7d,OAAO,CAACvX,KAAK,CAAC;;aAG1C,IACCjgB,EAAE,CAACiV,IAAI,CAACm0B,cAAc,CAAC5R,OAAO,CAAC3xB,KAAK,CAAC,IAClC7F,EAAE,CAACiV,IAAI,CAACjB,QAAQ,CAACwjB,OAAO,CAAC3xB,KAAK,CAAC,EAEnC;eACC,MAAM8X,YAAY,GAAG3d,EAAE,CAACkhC,IAAI,CAACoF,QAAQ,CAACkP,YAAY,CAACj2B,SAAS,CAAC;eAC7D,MAAM1Z,KAAK,GAAG7F,EAAE,CAACkhC,IAAI,CAACoF,QAAQ,CAAC9O,OAAO,CAAC3xB,KAAK,CAAC;eAE7C,IAAIA,KAAK,GAAG,CAAC,EACb;iBACC,IAAIA,KAAK,GAAG,GAAG,EACf;mBACC2vC,YAAY,CAACj2B,SAAS,GAAGiY,OAAO,CAAC3xB,KAAK;kBACtC,MAED;mBACC2vC,YAAY,CAACj2B,SAAS,GAAG,KAAK;;iBAG/B,IAAIiY,OAAO,CAACuS,SAAS,KAAK,KAAK,EAC/B;mBACC,IAAIlkC,KAAK,KAAK8X,YAAY,EAC1B;qBACC,IAAI9X,KAAK,GAAG8X,YAAY,EACxB;uBACC3d,EAAE,CAACkH,GAAG,CAACE,QAAQ,CAACouC,YAAY,EAAE,iBAAiB,CAAC;sBAChD,MAED;uBACCx1C,EAAE,CAACkH,GAAG,CAACE,QAAQ,CAACouC,YAAY,EAAE,kBAAkB,CAAC;;;mBAInDx1C,EAAE,CAAC+lB,KAAK,CAAC+vB,QAAQ,CAACN,YAAY,EAAE,cAAc,EAAGvzC,KAAK,IAAK;qBAC1D,IACCA,KAAK,CAACwoC,aAAa,KAAK,eAAe,IACpCxoC,KAAK,CAACwoC,aAAa,KAAK,gBAAgB,EAE5C;uBACCzqC,EAAE,CAACkH,GAAG,CAACG,WAAW,CAACmuC,YAAY,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;;oBAE1E,CAAC;;;;aAKL,IAAIx1C,EAAE,CAACkhC,IAAI,CAACoF,QAAQ,CAAC9O,OAAO,CAAC3xB,KAAK,CAAC,GAAG,CAAC,EACvC;eACC,MAAMkwC,KAAK,GAAGve,OAAO,CAAC/0B,IAAI,KAAKzC,EAAE,CAACE,IAAI,CAAC8U,QAAQ,CAACC,IAAI,CAACG,KAAK,GAAG,OAAO,GAAG,MAAM;eAC7E,IAAI2gC,KAAK,KAAK,MAAM,EACpB;iBACC/1C,EAAE,CAACkH,GAAG,CAACkzB,OAAO,CAACgb,gBAAgB,EAAED,SAAS,CAAC;gBAC3C,MACI,IAAIY,KAAK,KAAK,OAAO,EAC1B;iBACC/1C,EAAE,CAACkH,GAAG,CAAC6zB,MAAM,CAACqa,gBAAgB,EAAED,SAAS,CAAC;;cAE3C,MAED;eACC,MAAMa,gBAAgB,GACpB,0BAAyBh2C,EAAE,CAACE,IAAI,CAAC8U,QAAQ,CAACC,IAAI,CAACE,YAAa,EAC7D;eACD,IAAInV,EAAE,CAACkH,GAAG,CAAC/D,QAAQ,CAACiyC,gBAAgB,EAAEY,gBAAgB,CAAC,EACvD;iBACCh2C,EAAE,CAAC2I,MAAM,CAAC0sC,SAAS,CAAC;gBACpB,MAED;iBACCr1C,EAAE,CAAC2I,MAAM,CAACysC,gBAAgB,CAAC;;;;UAI9B,CAAC;;;IAGJ;CACF,CAAC,GAAG;;CCrzDH,CAAC,YAAW;;GAGZp1C,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAIxB;CACA;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAAC43B,IAAI,GAAG,UAAS13B,MAAM,EAC9B;KACC,IAAI,CAACA,MAAM,GAAG,IAAI;KAClB,IAAI,CAACsN,IAAI,GAAG,IAAI;KAChB,IAAI,CAACuoC,SAAS,GAAG,IAAI;KACrB,IAAI,CAACC,SAAS,GAAG,IAAI;KACrB,IAAI,CAACC,SAAS,GAAG,IAAI;KACrB,IAAI,CAAC11C,IAAI,CAACL,MAAM,CAAC;IACjB;GAEDJ,EAAE,CAACE,IAAI,CAAC43B,IAAI,CAACh3B,SAAS,GAAG;KACxBL,IAAI,EAAE,UAASL,MAAM,EACrB;OACC,IAAI,CAACA,MAAM,GAAGA,MAAM;MACpB;KAEDkQ,KAAK,EAAE,YACP;OACC,IAAI,CAAC5C,IAAI,GAAG,IAAI;OAChB,IAAI,CAACuoC,SAAS,GAAG,IAAI;OACrB,IAAI,CAACC,SAAS,GAAG,IAAI;OACrB,IAAI,CAACC,SAAS,GAAG,IAAI;MACrB;KAEDC,iBAAiB,EAAE,YACnB;OACC,IAAI,CAACh2C,MAAM,CAAC0Z,QAAQ,CAAC,iBAAiB,CAAC,GAAG,IAAI;OAE9C,IAAI,EAAE,IAAI,CAAC1Z,MAAM,CAACopB,eAAe,EAAE,YAAYxpB,EAAE,CAACE,IAAI,CAAC6yB,YAAY,CAAC,EACpE;SACC,IAAI,CAAC3yB,MAAM,CAACssB,YAAY,GAAG,IAAI1sB,EAAE,CAACE,IAAI,CAAC6yB,YAAY,CAAC,IAAI,CAAC3yB,MAAM,CAAC;;MAEjE;KAEDi2C,kBAAkB,EAAE,YACpB;OACC,IAAI,CAACj2C,MAAM,CAAC0Z,QAAQ,CAAC,iBAAiB,CAAC,GAAG,KAAK;OAC/C,IAAI,IAAI,CAAC1Z,MAAM,CAACopB,eAAe,EAAE,YAAYxpB,EAAE,CAACE,IAAI,CAAC6yB,YAAY,EACjE;SACC,IAAI,CAAC3yB,MAAM,CAACopB,eAAe,EAAE,CAAC7nB,OAAO,EAAE;SACvC,IAAI,CAACvB,MAAM,CAACssB,YAAY,GAAG,IAAI;;MAEhC;KAED4pB,gBAAgB,EAAE,YAClB;OACC,OAAO,IAAI,CAACC,OAAO,CAAC,IAAI,CAACC,YAAY,EAAE,CAAC;MACxC;KAEDC,iBAAiB,EAAE,YACnB;OACC,OAAO,IAAI,CAACC,QAAQ,CAAC,IAAI,CAACF,YAAY,EAAE,CAAC;MACzC;KAEDG,gBAAgB,EAAE,YAClB;OACC,OAAO,IAAI,CAACJ,OAAO,CAAC,IAAI,CAACpjB,YAAY,EAAE,CAAC;MACxC;KAEDyjB,iBAAiB,EAAE,YACnB;OACC,OAAO,IAAI,CAACF,QAAQ,CAAC,IAAI,CAACvjB,YAAY,EAAE,CAAC;MACzC;KAED0jB,gBAAgB,EAAE,YAClB;OACC,OAAO,IAAI,CAACN,OAAO,CAAC,IAAI,CAACO,YAAY,EAAE,CAAC;MACxC;KAEDvlC,iBAAiB,EAAE,YACnB;OACC,OAAO,IAAI,CAACmlC,QAAQ,CAAC,IAAI,CAACI,YAAY,EAAE,CAAC;MACzC;KAEDnrB,qBAAqB,EAAE,UAAS2O,YAAY,EAC5C;OACC,IAAIhN,YAAY,GAAG,IAAI,CAAC1f,WAAW,CAAC0sB,YAAY,CAAC;OACjD,IAAInd,MAAM,GAAG,EAAE;OAEfmQ,YAAY,CAAC7kB,OAAO,CACnB,UAASC,OAAO,EAChB;SACCyU,MAAM,CAACzU,OAAO,CAACuF,KAAK,EAAE,CAAC,GAAGvF,OAAO,CAAC6kC,aAAa,EAAE;QACjD,CACD;OAED,OAAOpwB,MAAM;MACb;KAED3V,cAAc,EAAE,UAAS8yB,YAAY,EACrC;OACC,OAAO,IAAI,CAAC1sB,WAAW,CAAC0sB,YAAY,CAAC,CAACtsB,GAAG,CAAC,UAAStF,OAAO,EAAE;SAC3D,OAAOA,OAAO,CAACuF,KAAK,EAAE;QACtB,CAAC;MACF;KAEDya,YAAY,EAAE,YACd;OACC,IAAI3K,QAAQ,GAAG,IAAI,CAACnQ,WAAW,EAAE;OAEjC,IAAI5N,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACkV,QAAQ,CAAC,IAAIA,QAAQ,CAACtW,MAAM,EAChD;SACCsW,QAAQ,CAACtV,OAAO,CAAC,UAASqF,GAAG,EAAE;WAC9BA,GAAG,CAACukC,UAAU,EAAE;UAChB,CAAC;SAEF,IAAI,CAACjyC,MAAM,CAAC0pB,kBAAkB,EAAE;;MAEjC;KAEDyB,YAAY,EAAE,YACd;OACC,IAAI,CAAC3d,WAAW,EAAE,CAACnF,OAAO,CAAC,UAASC,OAAO,EAAE;SAC5CA,OAAO,CAAC4yB,IAAI,EAAE;QACd,CAAC;OAEFt7B,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,uBAAuB,EAAE,EAAE,CAAC;MACrD;KAEDksB,kBAAkB,EAAE,UAASmN,YAAY,EACzC;OACC,IAAI,CAAC1sB,WAAW,CAAC0sB,YAAY,CAAC,CAAC7xB,OAAO,CAAC,UAASC,OAAO,EAAE;SACxDA,OAAO,CAAC+yB,UAAU,EAAE;QACpB,CAAC;OAEFz7B,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC;MAClD;KAEDk1B,UAAU,EAAE,YACZ;OACC,OAAO,IAAI,CAAChD,YAAY,EAAE,CAAC7mB,IAAI,CAAC,UAAS5D,OAAO,EAAE;SACjD,OAAOA,OAAO,CAACqF,OAAO,EAAE,IAAIrF,OAAO,CAACytB,UAAU,EAAE;QAChD,CAAC;MACF;KAED5C,aAAa,EAAE,YACf;OACC,OAAO,CAAC,IAAI,CAACJ,YAAY,EAAE,CACzBtlB,MAAM,CAAC,UAASnF,OAAO,EAAE;SACzB,OAAO,CAAC,CAACA,OAAO,CAAC0qB,WAAW,EAAE,IAAI1qB,OAAO,CAAC0qB,WAAW,EAAE,CAACrqB,QAAQ,KAAK,IAAI;QACzE,CAAC,CACDuD,IAAI,CAAC,UAAS5D,OAAO,EAAE;SACvB,OAAO,CAACA,OAAO,CAACytB,UAAU,EAAE;QAC5B,CAAC;MACH;KAEDtnB,SAAS,EAAE,YACX;OACC,OAAO,IAAI,CAACzO,MAAM;MAClB;KAEDk3B,gBAAgB,EAAE,YAClB;OACC,IAAIlvB,MAAM;OAEV,IAAI;SACHA,MAAM,GAAG,IAAI,CAACwF,WAAW,EAAE,CAACC,MAAM,CAAC,UAASC,GAAG,EAAE;WAChD,OAAO,CAACA,GAAG,CAAC8/B,UAAU,EAAE,IAAI9/B,GAAG,CAACC,OAAO,EAAE;UACzC,CAAC,CAACtG,MAAM;QACT,CAAC,OAAMsF,GAAG,EAAE;SACZ3E,MAAM,GAAG,CAAC;;OAGX,OAAOA,MAAM;MACb;KAEDivB,iBAAiB,EAAE,YACnB;OACC,IAAIjvB,MAAM;OAEV,IAAI;SACHA,MAAM,GAAG,IAAI,CAAC+qB,YAAY,EAAE,CAACtlB,MAAM,CAAC,UAASC,GAAG,EAAE;WAAE,OAAOA,GAAG,CAACC,OAAO,EAAE,IAAI,CAACD,GAAG,CAAC8/B,UAAU,EAAE;UAAG,CAAC,CAACnmC,MAAM;QACxG,CAAC,OAAMsF,GAAG,EAAE;SACZ3E,MAAM,GAAG,CAAC;;OAGX,OAAOA,MAAM;MACb;KAED+uB,OAAO,EAAE,UAASzpB,IAAI,EACtB;OACC,IAAI6S,IAAI,GAAGvgB,EAAE,CAACkO,SAAS,CACtB,IAAI,CAACW,SAAS,EAAE,CAACuS,QAAQ,EAAE,EAC3B;SAACqO,GAAG,EAAE;QAAQ,EACd,IAAI,EACJ,KAAK,CACL;OAED/hB,IAAI,CAACjF,OAAO,CAAC,UAASC,OAAO,EAAE;SAC9B6X,IAAI,CAAC/a,WAAW,CAACkD,OAAO,CAAC;QACzB,CAAC;MACF;;CAIH;CACA;CACA;KACEiF,OAAO,EAAE,YACT;OACC,IAAIvF,MAAM;OACV,IAAImD,IAAI,GAAG,IAAI;OAEf,IAAI,CAAC,IAAI,CAACmC,IAAI,EACd;SACCtF,MAAM,GAAG,EAAE,CAACuoB,KAAK,CAACpc,IAAI,CAAC,IAAI,CAAC1F,SAAS,EAAE,CAACuS,QAAQ,EAAE,CAACmP,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;SAE/F,IAAI,CAAC7iB,IAAI,GAAGtF,MAAM,CAAC4F,GAAG,CAAC,UAAStF,OAAO,EAAE;WACxC,OAAO,IAAI1I,EAAE,CAACE,IAAI,CAAC2sB,GAAG,CAACthB,IAAI,CAACnL,MAAM,EAAEsI,OAAO,CAAC;UAC5C,CAAC;;OAGH,OAAO,IAAI,CAACgF,IAAI;MAChB;;CAIH;CACA;CACA;KACEE,WAAW,EAAE,UAAS0sB,YAAY,EAClC;OACC,OAAO,IAAI,CAACnH,YAAY,CAACmH,YAAY,CAAC,CAACzsB,MAAM,CAAC,UAASnF,OAAO,EAAE;SAC/D,OAAOA,OAAO,CAACqF,OAAO,EAAE,IAAIrF,OAAO,CAACytB,UAAU,EAAE;QAChD,CAAC;MACF;KAED4gB,aAAa,EAAE,UAAS7zC,IAAI,EAC5B;OACC,IAAI,CAAClD,EAAE,CAACmD,QAAQ,CAACD,IAAI,EAAE,IAAI,CAAC2L,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,CAAC,EACrE;SACCG,IAAI,GAAGlD,EAAE,CAACuN,UAAU,CAACrK,IAAI,EAAE;WAAC4B,SAAS,EAAE,IAAI,CAAC+J,SAAS,EAAE,CAAC/L,QAAQ,CAACC,GAAG,CAAC,cAAc;UAAE,EAAE,IAAI,EAAE,KAAK,CAAC;;OAGpG,OAAOG,IAAI;MACX;;CAIH;CACA;CACA;CACA;KACEod,OAAO,EAAE,UAASte,EAAE,EACpB;OACC,OAAO,IAAI,CAACmxB,YAAY,EAAE,CAACrW,IAAI,CAAC,UAASpU,OAAO,EAAE;SACjD,OAAOkU,MAAM,CAAClU,OAAO,CAACuF,KAAK,EAAE,CAAC,KAAK2O,MAAM,CAAC5a,EAAE,CAAC;QAC7C,CAAC,IAAI,IAAI;MACV;;CAIH;CACA;CACA;CACA;KACEe,GAAG,EAAE,UAASG,IAAI,EAClB;OACC,IAAIlD,EAAE,CAACiV,IAAI,CAACvS,SAAS,CAACQ,IAAI,CAAC,EAC3B;SACC,MAAM8zC,OAAO,GAAG9zC,IAAI,CAAC2qC,OAAO,CAAC,gBAAgB,CAAC;SAC9C,IAAI7tC,EAAE,CAACiV,IAAI,CAACvS,SAAS,CAACs0C,OAAO,CAAC,EAC9B;WACC,MAAMC,WAAW,GAAG,IAAI,CAACtpC,OAAO,EAAE,CAACmP,IAAI,CAAEhP,GAAG,IAAK;aAChD,OAAOA,GAAG,CAAC0D,OAAO,EAAE,KAAKwlC,OAAO;YAChC,CAAC;WAEF,IAAIC,WAAW,EACf;aACC,OAAOA,WAAW;;;;OAKrB,OAAO,IAAI;MACX;;KAGDV,OAAO,EAAE,UAASW,KAAK,EACvB;OACC,IAAI9uC,MAAM;OAEV,IAAI;SACHA,MAAM,GAAG8uC,KAAK,CAACA,KAAK,CAACzvC,MAAM,GAAC,CAAC,CAAC;QAC9B,CAAC,OAAOsF,GAAG,EAAE;SACb3E,MAAM,GAAG,IAAI;;OAGd,OAAOA,MAAM;MACb;;KAGDsuC,QAAQ,EAAE,UAASQ,KAAK,EACxB;OACC,IAAI9uC,MAAM;OAEV,IAAI;SACHA,MAAM,GAAG8uC,KAAK,CAAC,CAAC,CAAC;QACjB,CAAC,OAAOnqC,GAAG,EAAE;SACb3E,MAAM,GAAG,IAAI;;OAGd,OAAOA,MAAM;MACb;KAED0uC,YAAY,EAAE,YACd;OACC,IAAI,CAACb,SAAS,GAAG,IAAI,CAACA,SAAS,IAAI,IAAI,CAACtoC,OAAO,EAAE,CAACE,MAAM,CAAC,UAASnF,OAAO,EAAE;SACzE,OAAOA,OAAO,CAACukC,WAAW,EAAE;QAC5B,CAAC;OAEH,OAAO,IAAI,CAACgJ,SAAS;MACrB;;CAIH;CACA;CACA;KACE9iB,YAAY,EAAE,UAASgkB,aAAa,EACpC;OACC,OAAO,IAAI,CAACxpC,OAAO,EAAE,CAACE,MAAM,CAAC,UAASnF,OAAO,EAAE;SAC9C,OAAOA,OAAO,CAACmkC,WAAW,EAAE,KAAK,CAACnkC,OAAO,CAAC8rC,UAAU,EAAE,IAAI2C,aAAa,CAAC;QACxE,CAAC;MACF;KAEDX,YAAY,EAAE,YACd;OACC,IAAI,CAACL,SAAS,GAAG,IAAI,CAACA,SAAS,IAAI,IAAI,CAACxoC,OAAO,EAAE,CAACE,MAAM,CAAC,UAASnF,OAAO,EAAE;SAC1E,OAAOA,OAAO,CAACgqC,WAAW,EAAE;QAC5B,CAAC;OAEF,OAAO,IAAI,CAACyD,SAAS;MACrB;KAGDvrB,SAAS,EAAE,YACX;OACC,IAAI,CAACjd,OAAO,EAAE,CAACK,GAAG,CAAC,UAAStF,OAAO,EAAE;SACpCA,OAAO,CAACqF,OAAO,EAAE,IAAIrF,OAAO,CAAC0tB,MAAM,EAAE;QACrC,CAAC;MACF;KAEDlL,WAAW,EAAE,YACb;OACC,IAAI,CAACvd,OAAO,EAAE,CAACK,GAAG,CAAC,UAAStF,OAAO,EAAE;SACpCA,OAAO,CAAC2tB,QAAQ,EAAE;QAClB,CAAC;MACF;;CAIH;CACA;CACA;CACA;KACE+gB,UAAU,EAAE,UAAS5b,QAAQ,EAC7B;OACC,IAAI3tB,MAAM,GAAG,IAAI,CAACslB,YAAY,EAAE,CAC9BtlB,MAAM,CAAC,UAAS3L,IAAI,EAAE;SACtB,OAAOA,IAAI;QACX,CAAC,CACD2L,MAAM,CAAC,UAAS3L,IAAI,EAAE;SACtB,OAAOA,IAAI,CAACsP,OAAO,EAAE,CAACgqB,QAAQ,KAAKA,QAAQ;QAC3C,CAAC;OAEH,OAAO3tB,MAAM,CAACpG,MAAM,GAAGoG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;MACvC;;CAIH;CACA;CACA;CACA;CACA;KACE0M,iBAAiB,EAAE,UAASiyB,QAAQ,EAAE6K,SAAS,EAC/C;OACC,IAAIjvC,MAAM,GAAG,EAAE;OACf,IAAImD,IAAI,GAAG,IAAI;OAEf,IAAI,CAACihC,QAAQ,EACb;SACC,OAAOpkC,MAAM;;OAGdokC,QAAQ,GAAGA,QAAQ,CAACxvB,QAAQ,EAAE;OAE9B,SAASs6B,aAAa,CAAC9K,QAAQ,EAC/B;SACCjhC,IAAI,CAAC4nB,YAAY,EAAE,CAAC1qB,OAAO,CAAC,UAASqF,GAAG,EAAE;WACzC,IAAIA,GAAG,CAACshC,WAAW,EAAE,KAAK5C,QAAQ,EAAE;aACnCpkC,MAAM,CAACG,IAAI,CAACuF,GAAG,CAAC;aAChBupC,SAAS,IAAIC,aAAa,CAACxpC,GAAG,CAACG,KAAK,EAAE,CAAC;;UAExC,EAAE1C,IAAI,CAAC;;OAGT+rC,aAAa,CAAC9K,QAAQ,CAAC;OAEvB,OAAOpkC,MAAM;MACb;KAEDmvC,gBAAgB,EAAE,UAASC,OAAO,EAClC;OACC,IAAIpvC,MAAM,GAAG,EAAE;OACf,IAAImD,IAAI,GAAG,IAAI;OAEf,IAAI,CAACisC,OAAO,EACZ;SACC,OAAOpvC,MAAM;;OAGdovC,OAAO,GAAGA,OAAO,CAACx6B,QAAQ,EAAE;OAE5B,SAASs6B,aAAa,CAACE,OAAO,EAC9B;SACCjsC,IAAI,CAAC4nB,YAAY,EAAE,CAAC1qB,OAAO,CAAC,UAASqF,GAAG,EAAE;WACzC,IAAIA,GAAG,CAACkiC,UAAU,EAAE,KAAKwH,OAAO,IAAI,CAAC1pC,GAAG,CAACumB,QAAQ,EAAE,EAAE;aACpDjsB,MAAM,CAACG,IAAI,CAACuF,GAAG,CAAC;;UAEjB,EAAEvC,IAAI,CAAC;;OAGT+rC,aAAa,CAACE,OAAO,CAAC;OAEtB,OAAOpvC,MAAM;MACb;KAEDqvC,eAAe,EAAE,YACjB;OACC,OAAO,IAAI,CAAC9pC,OAAO,EAAE,CAACE,MAAM,CAAC,UAASC,GAAG,EAAE;SAC1C,OAAOA,GAAG,CAACC,OAAO,EAAE,IAAID,GAAG,CAACgiC,QAAQ,EAAE;QACtC,CAAC;MACF;KAEDrb,kBAAkB,EAAE,YACpB;OACC,OAAO,IAAI,CAACgjB,eAAe,EAAE,CAACzpC,GAAG,CAAC,UAASF,GAAG,EAAE;SAC/C,OAAOA,GAAG,CAACG,KAAK,EAAE;QAClB,CAAC;MACF;KAGDsmB,qBAAqB,EAAE,YACvB;OACC,OAAO,IAAI,CAAC5mB,OAAO,EAAE,CAACE,MAAM,CAAC,UAASC,GAAG,EAAE;SAC1C,OAAOA,GAAG,CAACumB,QAAQ,EAAE,IAAI,CAACvmB,GAAG,CAACgiC,QAAQ,EAAE;QACxC,CAAC,CAAC9hC,GAAG,CAAC,UAASF,GAAG,EAAE;SACpB,OAAOA,GAAG,CAACG,KAAK,EAAE;QAClB,CAAC;MACF;;CAIH;CACA;KACE4D,aAAa,EAAE,YACf;OACC,OAAO7R,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACS,aAAa,CAAC,IAAI,CAACwL,SAAS,EAAE,CAACuS,QAAQ,EAAE,EAAE,CAC/D,wBAAwB,EACxB,gCAAgC,CAChC,CAAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;MACb;;CAIH;CACA;KACEqL,kBAAkB,EAAE,YACpB;OACC,OAAO,IAAI,CAAC/W,aAAa,EAAE,CAAChE,MAAM,CAAC,UAASnF,OAAO,EAAE;SACpD,OAAO1I,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC85B,aAAa,CAACh0B,OAAO,CAAC,CAAC2sB,QAAQ,KAAK,OAAO;QAChE,CAAC;MACF;;CAIH;CACA;KACEqiB,kBAAkB,EAAE,YACpB;OACC,OAAO,IAAI,CAAC7lC,aAAa,EAAE,CAAChE,MAAM,CAAC,UAASnF,OAAO,EAAE;SACpD,OAAO1I,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC85B,aAAa,CAACh0B,OAAO,CAAC,CAAC2sB,QAAQ,KAAK,OAAO;QAChE,CAAC;MACF;;CAIH;CACA;KACEsiB,kBAAkB,EAAE,YACpB;OACC,OAAO,IAAI,CAAC9lC,aAAa,EAAE,CAAChE,MAAM,CAAC,UAASnF,OAAO,EAAE;SACpD,OAAO1I,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC85B,aAAa,CAACh0B,OAAO,CAAC,CAAC2sB,QAAQ,KAAK,OAAO;QAChE,CAAC;MACF;KAEDod,WAAW,EAAE,YACb;OACC,OAAO,IAAI,CAACtf,YAAY,EAAE,CAAC7mB,IAAI,CAAC,UAAS5D,OAAO,EAAE;SACjD,OAAOA,OAAO,CAACmsB,MAAM,EAAE;QACvB,CAAC;MACF;KAEDhpB,WAAW,EAAE,UAASE,SAAS,EAAE6rC,QAAQ,EACzC;OACC,MAAM3hB,UAAU,GAAG,IAAI,CAAC3V,OAAO,CAACvU,SAAS,CAAC;OAC1C,MAAMo+B,SAAS,GAAG,IAAI,CAAC7pB,OAAO,CAACs3B,QAAQ,CAAC;OAExC,IAAI3hB,UAAU,IAAIkU,SAAS,EAC3B;SACCnqC,EAAE,CAACkH,GAAG,CAAC2E,WAAW,CAACoqB,UAAU,CAACzkB,OAAO,EAAE,EAAE24B,SAAS,CAAC34B,OAAO,EAAE,CAAC;SAC7D,IAAI,CAAClB,KAAK,EAAE;;MAEb;KAED45B,YAAY,EAAE,UAASn+B,SAAS,EAAE6rC,QAAQ,EAC1C;OACC,MAAM3hB,UAAU,GAAG,IAAI,CAAC3V,OAAO,CAACvU,SAAS,CAAC;OAC1C,MAAMo+B,SAAS,GAAG,IAAI,CAAC7pB,OAAO,CAACs3B,QAAQ,CAAC;OAExC,IAAI3hB,UAAU,IAAIkU,SAAS,EAC3B;SACCnqC,EAAE,CAACkH,GAAG,CAACgjC,YAAY,CAACjU,UAAU,CAACzkB,OAAO,EAAE,EAAE24B,SAAS,CAAC34B,OAAO,EAAE,CAAC;SAC9D,IAAI,CAAClB,KAAK,EAAE;;;IAGd;CACF,CAAC,GAAG;;CC5hBJ,CAAC,YAAW;;GAGXtQ,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;GAEvBD,EAAE,CAACE,IAAI,CAAC23C,YAAY,GAAG,UAAS5C,SAAS,EACzC;KACC,IAAI,CAAC6C,YAAY,GAAG,IAAI;KACxB,IAAI,CAACC,uBAAuB,GAAG,IAAI;KACnC,IAAI,CAACzoC,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACC,UAAU,GAAG,IAAI;KACtB,IAAI,CAAC0lC,SAAS,GAAGA,SAAS,IAAI,EAAE;KAChC,IAAI,CAAC+C,YAAY,GAAG,EAAE;IACtB;GAEDh4C,EAAE,CAACE,IAAI,CAAC23C,YAAY,CAAC/2C,SAAS,GAAG;KAChCm3C,SAAS,GAAG;OAAE,IAAI,CAACH,YAAY,GAAG,IAAI;OAAE,IAAI,CAACE,YAAY,GAAG,EAAE;MAAG;KACjEE,iBAAiB,GAAG;OAAE,IAAI,CAACH,uBAAuB,GAAG,IAAI;MAAG;KAC5DI,YAAY,CAACH,YAAY,EAAE;OAAE,IAAI,CAACF,YAAY,GAAG,KAAK;OAAE,IAAI,CAACE,YAAY,GAAGA,YAAY,IAAI,EAAE;MAAG;KACjGI,oBAAoB,GAAG;OAAE,IAAI,CAACL,uBAAuB,GAAG,KAAK;MAAG;KAChEM,WAAW,GAAG;OAAE,OAAO,IAAI,CAAC/oC,QAAQ;MAAG;KACvCgpC,aAAa,GAAG;OAAE,OAAO,IAAI,CAAC/oC,UAAU;MAAG;KAC3CgpC,YAAY,GAAG;OAAE,OAAO,IAAI,CAACtD,SAAS;MAAG;KACzCuD,WAAW,CAACt2C,IAAI,EAAE;OAAE,OAAO,IAAI,CAACoN,QAAQ,GAAGpN,IAAI;MAAG;KAClDu2C,aAAa,CAACv2C,IAAI,EAAE;OAAE,OAAO,IAAI,CAACqN,UAAU,GAAGrN,IAAI;MAAG;KACtDw2C,YAAY,CAAC1zC,IAAI,EAAE;OAAE,OAAO,IAAI,CAACiwC,SAAS,GAAGjwC,IAAI;MAAG;KACpD2zC,aAAa,GAAG;OAAE,OAAO,IAAI,CAACb,YAAY;MAAG;KAC7Cc,qBAAqB,GAAG;OAAE,OAAO,IAAI,CAACb,uBAAuB;MAAG;KAChEc,eAAe,GAAG;OAAE,OAAO,IAAI,CAACb,YAAY;;IAC5C;GAEDh4C,EAAE,CAACE,IAAI,CAAC6yB,YAAY,GAAG,UAAS3yB,MAAM,EACtC;KACC,IAAI,CAACA,MAAM,GAAG,IAAI;KAClB,IAAI,CAAC04C,IAAI,GAAG,IAAI;KAChB,IAAI,CAACC,eAAe,EAAE;KACtB,IAAI,CAACt4C,IAAI,CAACL,MAAM,CAAC;IACjB;GAEDJ,EAAE,CAACE,IAAI,CAAC6yB,YAAY,CAACjyB,SAAS,GAAG;KAChCL,IAAI,CAACL,MAAM,EACX;OACC,IAAI,CAACA,MAAM,GAAGA,MAAM;OACpB,IAAI,CAAC04C,IAAI,GAAG,IAAI,CAACE,OAAO,EAAE;OAC1B,IAAI,CAACC,gBAAgB,EAAE;OACvBpoC,IAAI,CAACqoC,MAAM,EAAE;OAEb,IAAI,CAAC,IAAI,CAAChpC,MAAM,EAChB;SACC,IAAI,CAACA,MAAM,GAAG,IAAI;SAClB,IAAI,CAACipC,uBAAuB,GAAGn5C,EAAE,CAAC0hB,QAAQ,CAAC,IAAI,CAACC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC;SAE3E,IAAI,CAAC,IAAI,CAACvhB,MAAM,CAACsR,QAAQ,CAAC,8BAA8B,EAAE,KAAK,CAAC,EAChE;WACC1R,EAAE,CAACgB,cAAc,CAAC,uBAAuB,EAAEhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACk4C,OAAO,EAAE,IAAI,CAAC,CAAC;WACxEp5C,EAAE,CAACgB,cAAc,CAAC,oBAAoB,EAAEhB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACm4C,MAAM,EAAE,IAAI,CAAC,CAAC;;SAGrEh5B,QAAQ,CAACwB,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACs3B,uBAAuB,EAAEn5C,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACkf,cAAc,CAAC;WAAEC,OAAO,EAAE;UAAM,CAAC,CAAC;;MAEnH;KAEDpgB,OAAO,GACP;OACC,IAAI,CAAC,IAAI,CAACvB,MAAM,CAACsR,QAAQ,CAAC,8BAA8B,EAAE,KAAK,CAAC,EAChE;SACC1R,EAAE,CAAC4B,iBAAiB,CAAC,uBAAuB,EAAE5B,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACk4C,OAAO,EAAE,IAAI,CAAC,CAAC;SAC3Ep5C,EAAE,CAAC4B,iBAAiB,CAAC,oBAAoB,EAAE5B,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACm4C,MAAM,EAAE,IAAI,CAAC,CAAC;;OAGxEh5B,QAAQ,CAACmC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC22B,uBAAuB,EAAEn5C,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACkf,cAAc,CAAC;SAAEC,OAAO,EAAE;QAAM,CAAC,CAAC;OACrH,IAAI,CAAC1R,iBAAiB,EAAE;MACxB;KAEDsR,eAAe,GACf;OACC,IAAI,CAAC23B,eAAe,GAAGt5C,EAAE,CAACmkB,SAAS,CAACljB,MAAM,CAAC;OAC3C,IAAI,CAACs4C,YAAY,GAAG,IAAI;MACxB;KAEDH,OAAO,GACP;OACC,IAAI,CAAC/oC,iBAAiB,EAAE;MACxB;KAEDgpC,MAAM,GACN;OACC,IAAI,CAAClpC,MAAM,EAAE;MACb;KAEDA,MAAM,GACN;OACC,IAAI,CAACE,iBAAiB,EAAE;OACxB,IAAI,CAAC0oC,eAAe,EAAE;OACtB,IAAI,CAACt4C,IAAI,CAAC,IAAI,CAACL,MAAM,CAAC;MACtB;KAED44C,OAAO,GACP;OACC,OAAO,IAAI,CAAC54C,MAAM,CAACuN,OAAO,EAAE,CAACib,kBAAkB,EAAE;MACjD;KAEDvY,iBAAiB,GACjB;OACC,IAAI,CAACyoC,IAAI,CAACrwC,OAAO,CAAC,IAAI,CAACkI,UAAU,EAAE,IAAI,CAAC;MACxC;KAEDsoC,gBAAgB,GAChB;OACC,IAAI,CAACH,IAAI,CAACrwC,OAAO,CAAC,IAAI,CAACgI,QAAQ,EAAE,IAAI,CAAC;MACtC;KAEDA,QAAQ,CAAC3C,GAAG,EACZ;OACC,MAAMgqB,IAAI,GAAG,IAAI,CAAC13B,MAAM,CAACuN,OAAO,EAAE;OAClC,MAAMspC,WAAW,GAAGnf,IAAI,CAAC/0B,GAAG,CAAC+K,GAAG,CAAC;OACjC,IAAImpC,WAAW,IAAIA,WAAW,CAAC5F,WAAW,EAAE,EAC5C;SACCvjC,GAAG,CAACiD,aAAa,GAAG/Q,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAACyP,YAAY,EAAE,IAAI,CAAC;SACxDlD,GAAG,CAACmD,QAAQ,GAAGjR,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAAC2P,OAAO,EAAE,IAAI,CAAC;SAC9CpD,GAAG,CAACqD,YAAY,GAAGnR,EAAE,CAACuB,QAAQ,CAAC,IAAI,CAAC6P,UAAU,EAAE,IAAI,CAAC;SACrDP,IAAI,CAACQ,cAAc,CAACvD,GAAG,CAAC;;MAEzB;KAED6C,UAAU,CAAC7C,GAAG,EACd;OACC+C,IAAI,CAACC,gBAAgB,CAAChD,GAAG,CAAC;MAC1B;KAEDmF,QAAQ,CAAC/Q,IAAI,EACb;OACC,OAAOlC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACqQ,QAAQ,CAAC,IAAI,CAAC6lC,IAAI,EAAE52C,IAAI,CAAC;MAC9C;KAEDs3C,UAAU,GACV;OACC,IAAI7pC,MAAM,GAAG,IAAI,CAACD,QAAQ,CAACgU,MAAM;OAEjC,IAAI,IAAI,CAAC+1B,mBAAmB,CAAChyC,MAAM,GAAG,CAAC,EACvC;SACC,IAAI,CAACgyC,mBAAmB,CAAChxC,OAAO,CAAEqF,GAAG,IAAK;WACzC6B,MAAM,IAAI7B,GAAG,CAAC4rC,YAAY;UAC1B,CAAC;;OAGH,OAAO/pC,MAAM;MACb;KAEDgqC,aAAa,CAACC,WAAW,EACzB;OACC,OAAO,EAAE,CAAC5rC,GAAG,CAACuG,IAAI,CAACqlC,WAAW,EAAE,CAACvnC,IAAI,EAAEe,KAAK,KAAK;SAChD,OAAO;WACNnJ,KAAK,EAAE,EAAE;WACTwlB,GAAG,EAAE,IAAI;WACT1qB,KAAK,EAAE;aACN2O,KAAK,EAAG,UAAS1T,EAAE,CAAC8S,KAAK,CAAC8mC,WAAW,CAACxmC,KAAK,CAAC,CAAE;;UAE/C;QACD,CAAC;MACF;KAEDymC,UAAU,GACV;OACC,MAAMjhB,OAAO,GAAG,EAAE;OAClB,IAAI,CAACkhB,aAAa,GAAG95C,EAAE,CAAC2L,KAAK,CAAC,IAAI,CAAC2D,QAAQ,CAAC;OAC5C,IAAI,CAACyqC,4BAA4B,GAAG,EAAE;OACtC,IAAI,CAACC,+BAA+B,GAAG,EAAE;OAEzC,MAAMC,cAAc,GAAG,IAAI,CAACN,aAAa,CAAC,IAAI,CAACrqC,QAAQ,CAACiD,KAAK,CAAC;OAC9DqmB,OAAO,CAACrwB,IAAI,CAAC,IAAI,CAACuxC,aAAa,CAAC;OAEhC,IAAI,CAACL,mBAAmB,CAAChxC,OAAO,CAAC,UAASqF,GAAG,EAAE;SAC9C,MAAMosC,QAAQ,GAAGl6C,EAAE,CAAC2L,KAAK,CAACmC,GAAG,CAAC;SAC9B8qB,OAAO,CAACrwB,IAAI,CAAC2xC,QAAQ,CAAC;SACtB,IAAI,CAACH,4BAA4B,CAACxxC,IAAI,CAAC2xC,QAAQ,CAAC;SAChD,IAAI,CAACF,+BAA+B,CAACzxC,IAAI,CAAC,IAAIvI,EAAE,CAACE,IAAI,CAAC2sB,GAAG,CAAC,IAAI,CAACzsB,MAAM,EAAE85C,QAAQ,CAAC,CAAC;QACjF,EAAE,IAAI,CAAC;OAER,MAAMC,UAAU,GAAGn6C,EAAE,CAAC8S,KAAK,CAAC,IAAI,CAAC1S,MAAM,CAACghB,QAAQ,EAAE,CAAC;OAEnD,IAAI,CAACg5B,IAAI,GAAGp6C,EAAE,CAACgK,IAAI,CAAC;SACnBC,KAAK,EAAE,0BAA0B;SACjClF,KAAK,EAAE;WACN2O,KAAK,EAAG,4BAA2B,IAAI,CAAC2mC,gBAAgB,EAAE,CAACh2B,GAAI,cAAa81B,UAAW;UACvF;SACDvhB,OAAO,EAAE;WACR3uB,KAAK,EAAE,iBAAiB;WACxBC,GAAG,EAAE,sBAAsB;WAC3BulB,GAAG,EAAE,OAAO;WACZ1qB,KAAK,EAAE;aACN2O,KAAK,EAAG,UAASymC,UAAW;YAC5B;WACDvhB,OAAO,EAAE,CACR;aACC3uB,KAAK,EAAE,kBAAkB;aACzBwlB,GAAG,EAAE,OAAO;aACZmJ,OAAO,EAAE;eACR3uB,KAAK,EAAE,oBAAoB;eAC3BwlB,GAAG,EAAE,IAAI;eACTmJ,OAAO,EAAEqhB;;YAEV,EACD;aACChwC,KAAK,EAAE,EAAE;aACTwlB,GAAG,EAAE,OAAO;aACZmJ;YACA;;QAGH,CAAC;OAEF54B,EAAE,CAAC6L,WAAW,CAAC,IAAI,CAACuuC,IAAI,EAAE,IAAI,CAACh6C,MAAM,CAACghB,QAAQ,EAAE,CAAC;OAEjD,IAAI,CAAC04B,aAAa,GAAG,IAAI95C,EAAE,CAACE,IAAI,CAAC2sB,GAAG,CAAC,IAAI,CAACzsB,MAAM,EAAE,IAAI,CAAC05C,aAAa,CAAC;OAErE,OAAO,IAAI,CAACM,IAAI;MAChB;KAEDC,gBAAgB,GAChB;OACC,OAAOr6C,EAAE,CAAC4jB,GAAG,CAAC,IAAI,CAACtU,QAAQ,EAAE,IAAI,CAAClP,MAAM,CAACghB,QAAQ,EAAE,CAAC;MACpD;KAEDpQ,YAAY,GACZ;OACC,IAAI,CAACspC,KAAK,GAAG,KAAK;OAClB,IAAI,CAAChrC,QAAQ,GAAGuB,IAAI,CAAC6B,YAAY;OACjC,IAAI,CAACnD,UAAU,GAAG,IAAI,CAACD,QAAQ;OAC/B,IAAI,CAACmqC,mBAAmB,GAAG,IAAI,CAACc,sBAAsB,CAAC,IAAI,CAACjrC,QAAQ,CAAC;OACrE,IAAI,CAAC0D,SAAS,GAAG,IAAI,CAACC,QAAQ,CAAC,IAAI,CAAC3D,QAAQ,CAAC;OAC7C,IAAI,CAACI,QAAQ,GAAG,IAAI,CAAC8qC,UAAU,CAAC,IAAI,CAAClrC,QAAQ,EAAE,IAAI,CAAC0D,SAAS,CAAC;OAC9D,IAAI,CAACrD,MAAM,GAAG,IAAI,CAAC6pC,UAAU,EAAE;OAC/B,IAAI,CAACiB,eAAe,GAAI5pC,IAAI,CAAC6pC,OAAO,GAAG,IAAI,CAAChrC,QAAQ,CAAC2U,GAAI;OACzD,IAAI,CAACs2B,SAAS,GAAG,IAAI36C,EAAE,CAACE,IAAI,CAAC23C,YAAY,EAAE;OAC3C,IAAI,CAAC8C,SAAS,CAACjC,YAAY,CAAC,2BAA2B,CAAC;OACxD,IAAI,CAACiC,SAAS,CAACnC,WAAW,CAAC,IAAI,CAAClpC,QAAQ,CAAC;OACzC,IAAI,CAACqrC,SAAS,CAAClC,aAAa,CAAC,IAAI,CAAClpC,UAAU,CAAC;OAC7C,IAAI,CAACorC,SAAS,CAACzC,iBAAiB,EAAE;OAElC,MAAM0C,OAAO,GAAG,IAAI,CAACx6C,MAAM,CAACuN,OAAO,EAAE,CAAC5K,GAAG,CAAC,IAAI,CAACuM,QAAQ,CAAC;OACxD,IAAI,CAACurC,cAAc,GAAGD,OAAO,CAACtL,QAAQ,EAAE;OACxC,IAAI,CAACwL,iBAAiB,GAAGF,OAAO,CAACxL,WAAW,EAAE;OAE9C,IAAI,CAACyK,UAAU,EAAE;OAEjB75C,EAAE,CAACoH,QAAQ,CAAC,IAAI,CAAChH,MAAM,CAAC4C,YAAY,EAAE,EAAE,IAAI,CAAC5C,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,aAAa,CAAC,CAAC;OAChF/C,EAAE,CAACoH,QAAQ,CAAC,IAAI,CAACkI,QAAQ,EAAE,IAAI,CAAClP,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC,CAAC;OACvE/C,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,2BAA2B,EAAE,CAAC,IAAI,CAAC05C,SAAS,EAAE,IAAI,CAACv6C,MAAM,CAAC,CAAC;MACpF;KAEDm6C,sBAAsB,CAACjrC,QAAQ,EAC/B;OACC,MAAMwoB,IAAI,GAAG,IAAI,CAAC13B,MAAM,CAACuN,OAAO,EAAE;OAElC,OAAOmqB,IAAI,CAACvd,iBAAiB,CAACud,IAAI,CAAC/0B,GAAG,CAACuM,QAAQ,CAAC,CAACrB,KAAK,EAAE,EAAE,IAAI,CAAC,CAACD,GAAG,CAAEF,GAAG,IAAK;SAC5E,OAAOA,GAAG,CAAC0D,OAAO,EAAE;QACpB,CAAC;MACF;;CAGH;CACA;CACA;CACA;KACEupC,OAAO,CAACjtC,GAAG,EAAE6B,MAAM,EAAEoE,UAAU,EAC/B;OACC,IAAIjG,GAAG,EACP;SACC,MAAMktC,kBAAkB,GAAGh7C,EAAE,CAACyC,IAAI,CAACuR,QAAQ,CAACD,UAAU,CAAC,GAAGA,UAAU,GAAG,GAAG;SAC1EjG,GAAG,CAAC4F,KAAK,CAACK,UAAU,GAAI,GAAEinC,kBAAmB,IAAG;SAChDltC,GAAG,CAAC4F,KAAK,CAACC,SAAS,GAAI,oBAAmBhE,MAAO,UAAS;;MAE3D;KAEDmC,aAAa,GACb;OACC,OAAOjB,IAAI,CAACoqC,CAAC,GAAG,IAAI,CAACvrC,QAAQ,CAAC2U,GAAG,GAAG,IAAI,CAACo2B,eAAe;MACxD;KAEDS,kBAAkB,GAClB;OACC,IAAI,IAAI,CAAC5B,eAAe,KAAK,IAAI,EACjC;SACC,IAAI,CAACA,eAAe,GAAGt5C,EAAE,CAACmkB,SAAS,CAACljB,MAAM,CAAC;;OAG5C,OAAO,IAAI,CAACq4C,eAAe;MAC3B;KAED6B,aAAa,GACb;OACC,OAAOtqC,IAAI,CAACoqC,CAAC;MACb;KAEDT,UAAU,CAAC1sC,GAAG,EAAEsF,KAAK,EACrB;OACC,IAAI,CAAC,IAAI,CAACmmC,YAAY,EACtB;SACC,IAAI,CAACA,YAAY,GAAG,EAAE;SAEtB,IAAI,CAACT,IAAI,CAACrwC,OAAO,CAAC,UAASC,OAAO,EAAEuU,CAAC,EAAE;WACtC,IAAI,CAACs8B,YAAY,CAACt8B,CAAC,CAAC,GAAGvU,OAAO,CAACiK,qBAAqB,EAAE;UACtD,EAAE,IAAI,CAAC;;OAGT,OAAO,IAAI,CAAC4mC,YAAY,CAACnmC,KAAK,CAAC;MAC/B;KAEDgoC,YAAY,CAACttC,GAAG,EAAEsF,KAAK,EACvB;OACC,MAAMoyB,IAAI,GAAG,IAAI,CAACgV,UAAU,CAAC1sC,GAAG,EAAEsF,KAAK,CAAC;OAExC,OAAOoyB,IAAI,CAACnhB,GAAG,GAAG,IAAI,CAAC62B,kBAAkB,EAAE,GAAI1V,IAAI,CAAC9hB,MAAM,GAAG,CAAE;MAC/D;KAED23B,cAAc,CAACvtC,GAAG,EAAEsF,KAAK,EACzB;OACC,MAAMkoC,SAAS,GAAG,IAAI,CAACF,YAAY,CAACttC,GAAG,EAAEsF,KAAK,CAAC;OAC/C,MAAMmoC,UAAU,GAAG,IAAI,CAACJ,aAAa,EAAE;OAEvC,OAAO/nC,KAAK,GAAG,IAAI,CAACJ,SAAS,IAAIsoC,SAAS,GAAGC,UAAU;MACvD;KAEDC,eAAe,CAAC1tC,GAAG,EACnB;OACC,OAAOA,GAAG,CAAC4F,KAAK,CAACC,SAAS,KAAM,oBAAmB,CAAC,IAAI,CAAChE,MAAO,UAAS;MACzE;KAED8rC,WAAW,CAAC3tC,GAAG,EAAEsF,KAAK,EACtB;OACC,MAAMkoC,SAAS,GAAG,IAAI,CAACF,YAAY,CAACttC,GAAG,EAAEsF,KAAK,CAAC;OAC/C,MAAMmoC,UAAU,GAAG,IAAI,CAACJ,aAAa,EAAE;OAEvC,OAAO/nC,KAAK,GAAG,IAAI,CAACJ,SAAS,IAAIsoC,SAAS,GAAGC,UAAU;MACvD;KAEDG,YAAY,CAAC5tC,GAAG,EAChB;OACC,OAAOA,GAAG,CAAC4F,KAAK,CAACC,SAAS,KAAM,oBAAmB,IAAI,CAAChE,MAAO,UAAS;MACxE;KAED6D,YAAY,CAAC1F,GAAG,EAAEsF,KAAK,EACvB;OACC,MAAMkoC,SAAS,GAAG,IAAI,CAACF,YAAY,CAACttC,GAAG,EAAEsF,KAAK,CAAC;OAC/C,MAAMJ,SAAS,GAAG,IAAI,CAACA,SAAS;OAChC,MAAMioC,CAAC,GAAGpqC,IAAI,CAACoqC,CAAC;OAEhB,OAAQ7nC,KAAK,GAAGJ,SAAS,IAAIioC,CAAC,GAAGK,SAAS,IAAMloC,KAAK,GAAGJ,SAAS,IAAIioC,CAAC,GAAGK,SAAU;MACnF;KAEDznC,OAAO,CAAC/F,GAAG,EACX;OACC,OAAQA,GAAG,CAAC4F,KAAK,CAACC,SAAS,KAAK,4BAA4B,IAAI7F,GAAG,CAAC4F,KAAK,CAACC,SAAS,KAAK,EAAE;MAC1F;KAEDzC,OAAO,GACP;OACC,MAAMoD,sBAAsB,GAAG,CAAC;OAChC,MAAMD,aAAa,GAAG,CAAC;OAEvB,IAAI,CAAC0mC,OAAO,CAAC,IAAI,CAACzrC,QAAQ,EAAE,IAAI,CAACwC,aAAa,EAAE,EAAEwC,sBAAsB,CAAC;OACzE,IAAI,CAACymC,OAAO,CAAC,IAAI,CAACX,IAAI,EAAE,IAAI,CAACtoC,aAAa,EAAE,EAAEwC,sBAAsB,CAAC;OACrEtU,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACqR,YAAY,CAAC,IAAI,CAACwlC,mBAAmB,EAAE;SACpD1lC,UAAU,EAAG,GAAEO,sBAAuB,IAAG;SACzCX,SAAS,EAAG,oBAAmB,IAAI,CAAC7B,aAAa,EAAG;QACpD,CAAC;OAEF,IAAI,CAACgnC,IAAI,CAACrwC,OAAO,CAAC,UAASC,OAAO,EAAE0K,KAAK,EAAE;SAC1C,IAAI9L,OAAO,CAACoB,OAAO,CAAC,IAAIA,OAAO,KAAK,IAAI,CAAC4G,QAAQ,IAAI,CAAC,IAAI,CAACmqC,mBAAmB,CAACnxC,QAAQ,CAACI,OAAO,CAAC,EAChG;WACC,IAAI,IAAI,CAAC+yC,WAAW,CAAC/yC,OAAO,EAAE0K,KAAK,CAAC,IAAI,CAAC,IAAI,CAACsoC,YAAY,CAAChzC,OAAO,CAAC,EACnE;aACC,IAAI,CAAC6G,UAAU,GAAG7G,OAAO;aACzB,IAAI,CAACqyC,OAAO,CAACryC,OAAO,EAAE,IAAI,CAACiH,MAAM,CAAC;aAClC,IAAI,CAACgrC,SAAS,CAACjC,YAAY,CAAC,0BAA0B,CAAC;aACvD,IAAI,CAACiC,SAAS,CAAClC,aAAa,CAAC,IAAI,CAAClpC,UAAU,CAAC;aAC7CvP,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,0BAA0B,EAAE,CAAC,IAAI,CAAC05C,SAAS,EAAE,IAAI,CAACv6C,MAAM,CAAC,CAAC;aACnF,IAAI,CAACu7C,UAAU,CAAC,IAAI,CAAChB,SAAS,CAAC;aAC/B,IAAI,CAACiB,gBAAgB,CAAC,IAAI,CAACtsC,QAAQ,EAAE,IAAI,CAACC,UAAU,CAAC;aACrD,IAAI,CAACssC,aAAa,GAAG,IAAI;aACzB,IAAI,CAACvB,KAAK,GAAG,IAAI;;WAGlB,IAAI,IAAI,CAACe,cAAc,CAAC3yC,OAAO,EAAE0K,KAAK,CAAC,IAAI,CAAC,IAAI,CAACooC,eAAe,CAAC9yC,OAAO,CAAC,EACzE;aACC,IAAI,CAAC6G,UAAU,GAAG,IAAI,CAACusC,eAAe,CAAC,IAAI,CAAChD,IAAI,EAAE1lC,KAAK,CAAC;aACxD,IAAI,CAAC2nC,OAAO,CAACryC,OAAO,EAAE,CAAC,IAAI,CAACiH,MAAM,CAAC;aACnC,IAAI,CAACgrC,SAAS,CAACjC,YAAY,CAAC,0BAA0B,CAAC;aACvD,IAAI,CAACiC,SAAS,CAAClC,aAAa,CAAC,IAAI,CAAClpC,UAAU,CAAC;aAC7CvP,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,0BAA0B,EAAE,CAAC,IAAI,CAAC05C,SAAS,EAAE,IAAI,CAACv6C,MAAM,CAAC,CAAC;aACnF,IAAI,CAACu7C,UAAU,CAAC,IAAI,CAAChB,SAAS,CAAC;aAC/B,IAAI,CAACiB,gBAAgB,CAAC,IAAI,CAACtsC,QAAQ,EAAE,IAAI,CAACC,UAAU,CAAC;aACrD,IAAI,CAACssC,aAAa,GAAG,KAAK;aAE1B,IAAI,IAAI,CAACtsC,UAAU,EACnB;eACC,IAAI,CAAC+qC,KAAK,GAAG,IAAI;;;WAInB,IAAI,IAAI,CAAC9mC,YAAY,CAAC9K,OAAO,EAAE0K,KAAK,CAAC,IAAI,IAAI,CAACS,OAAO,CAACnL,OAAO,CAAC,EAC9D;aACC,IAAI,CAACqyC,OAAO,CAACryC,OAAO,EAAE2L,aAAa,CAAC;aACpC,IAAI,CAAC9E,UAAU,GAAG7G,OAAO;aAEzB,IAAI,IAAI,CAACmzC,aAAa,EACtB;eACC,IAAI,CAACtsC,UAAU,GAAG,IAAI,CAACusC,eAAe,CAAC,IAAI,CAAChD,IAAI,EAAE1lC,KAAK,CAAC;;aAGzD,IAAI,CAACknC,KAAK,GAAG,IAAI;aAEjB,IAAI,CAACK,SAAS,CAACjC,YAAY,CAAC,0BAA0B,CAAC;aACvD,IAAI,CAACiC,SAAS,CAAClC,aAAa,CAAC,IAAI,CAAClpC,UAAU,CAAC;aAE7CvP,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,0BAA0B,EAAE,CAAC,IAAI,CAAC05C,SAAS,EAAE,IAAI,CAACv6C,MAAM,CAAC,CAAC;aACnF,IAAI,CAACu7C,UAAU,CAAC,IAAI,CAAChB,SAAS,CAAC;aAC/B,IAAI,CAACiB,gBAAgB,CAAC,IAAI,CAACtsC,QAAQ,EAAE,IAAI,CAACC,UAAU,CAAC;;;QAGvD,EAAE,IAAI,CAAC;MACR;KAEDwsC,WAAW,CAACzuC,MAAM,EAAE+2B,OAAO,EAC3B;OACC,MAAM1sB,KAAK,GAAG3X,EAAE,CAACgK,IAAI,CAAC;SACrBC,KAAK,EAAE,iBAAiB;SACxB2uB,OAAO,EAAEyL,OAAO,IAAI;QACpB,CAAC;OAEF/8B,OAAO,CAACgG,MAAM,CAAC,IAAIA,MAAM,CAAC9H,WAAW,CAACmS,KAAK,CAAC;OAE5C5C,UAAU,CAAC,MAAM;SAChB/U,EAAE,CAACoH,QAAQ,CAACuQ,KAAK,EAAE,sBAAsB,CAAC;QAC1C,EAAE,CAAC,CAAC;OAEL,OAAOA,KAAK;MACZ;KAEDgkC,UAAU,CAAC15C,KAAK,EAChB;OACC,IAAI,CAACA,KAAK,CAAC02C,aAAa,EAAE,IAAI,CAAC,IAAI,CAAChhC,KAAK,EACzC;SACC,IAAI,CAACA,KAAK,GAAG,IAAI,CAACokC,WAAW,CAAC,IAAI,CAAC3B,IAAI,EAAEn4C,KAAK,CAAC42C,eAAe,EAAE,CAAC;;OAGlE,IAAI52C,KAAK,CAAC02C,aAAa,EAAE,IAAI,IAAI,CAAChhC,KAAK,EACvC;SACC3X,EAAE,CAAC2I,MAAM,CAAC,IAAI,CAACgP,KAAK,CAAC;SACrB,IAAI,CAACA,KAAK,GAAG,IAAI;;MAElB;KAEDmkC,eAAe,CAAChD,IAAI,EAAE1lC,KAAK,EAC3B;OACC,IAAIhL,MAAM,GAAG,IAAI;OACjB,MAAM0vB,IAAI,GAAG,IAAI,CAAC13B,MAAM,CAACuN,OAAO,EAAE;OAElCmrC,IAAI,CAACrwC,OAAO,CAAC,CAACvG,IAAI,EAAE8zB,YAAY,KAAK;SACpC,IAAI,CAAC5tB,MAAM,IAAI4tB,YAAY,GAAG5iB,KAAK,EACnC;WACC,MAAMtF,GAAG,GAAGgqB,IAAI,CAAC/0B,GAAG,CAACb,IAAI,CAAC;WAC1B,IAAI4L,GAAG,IAAIA,GAAG,CAACC,OAAO,EAAE,EACxB;aACC3F,MAAM,GAAGlG,IAAI;;;QAGf,CAAC;OAEF,OAAOkG,MAAM;MACb;;CAGH;CACA;CACA;CACA;KACEwzC,gBAAgB,CAACtsC,QAAQ,EAAEC,UAAU,EACrC;OACC,MAAMuoB,IAAI,GAAG,IAAI,CAAC13B,MAAM,CAACuN,OAAO,EAAE;OAClC,MAAMitC,OAAO,GAAG9iB,IAAI,CAAC/0B,GAAG,CAACuM,QAAQ,CAAC;OAClC,IAAIi9B,KAAK,GAAG,CAAC;OACb,IAAIC,QAAQ,GAAG,CAAC;OAEhB,IAAIj9B,UAAU,EACd;SACC,MAAM46B,SAAS,GAAGrS,IAAI,CAAC/0B,GAAG,CAACwM,UAAU,CAAC;SACtCg9B,KAAK,GAAGpC,SAAS,CAACmF,QAAQ,EAAE;SAC5B9C,QAAQ,GAAGrC,SAAS,CAACiF,WAAW,EAAE;;OAGnCwL,OAAO,CAACrL,QAAQ,CAAChD,KAAK,CAAC;OACvBqO,OAAO,CAACjL,WAAW,CAACnD,QAAQ,CAAC;OAE7B,IAAI,CAACsN,aAAa,CAACvK,QAAQ,CAAChD,KAAK,CAAC;OAClC,IAAI,CAACyN,+BAA+B,CAACvxC,OAAO,CAAC,UAASqF,GAAG,EAAEsF,KAAK,EAAE;SACjEtF,GAAG,CAACyhC,QAAQ,CAACvvC,EAAE,CAACkE,IAAI,CAAC,IAAI,CAACu1C,mBAAmB,CAACrmC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/D,EAAE,IAAI,CAAC;MACR;KAED4oC,mBAAmB,GACnB;OACC,MAAMpB,OAAO,GAAG,IAAI,CAACx6C,MAAM,CAACuN,OAAO,EAAE,CAAC5K,GAAG,CAAC,IAAI,CAACuM,QAAQ,CAAC;OACxDsrC,OAAO,CAACrL,QAAQ,CAAC,IAAI,CAACsL,cAAc,CAAC;OACrCD,OAAO,CAACjL,WAAW,CAAC,IAAI,CAACmL,iBAAiB,CAAC;MAC3C;KAEDmB,WAAW,GAAG,EAAE;KAEhBC,YAAY,GAAG,EAAE;KAEjB9qC,UAAU,GACV;OACCpR,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,yBAAyB,EAAE,CAAC,IAAI,CAAC05C,SAAS,EAAE,IAAI,CAACv6C,MAAM,CAAC,CAAC;OAElFJ,EAAE,CAACqH,WAAW,CAAC,IAAI,CAACjH,MAAM,CAAC4C,YAAY,EAAE,EAAE,IAAI,CAAC5C,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,aAAa,CAAC,CAAC;OACnF/C,EAAE,CAACqH,WAAW,CAAC,IAAI,CAACiI,QAAQ,EAAE,IAAI,CAAClP,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,iBAAiB,CAAC,CAAC;OAE1E/C,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACqR,YAAY,CAAC,IAAI,CAAC6kC,IAAI,EAAE;SAAE/kC,UAAU,EAAE,EAAE;SAAEJ,SAAS,EAAE;QAAI,CAAC;OAExE,IAAI,IAAI,CAACgnC,SAAS,CAAChC,aAAa,EAAE,EAClC;SACC,IAAI,CAACwD,QAAQ,CAAC,IAAI,CAAC7sC,QAAQ,EAAE,IAAI,CAACC,UAAU,CAAC;SAC7C,IAAI,CAAC6sC,uBAAuB,CAAC,IAAI,CAAC9sC,QAAQ,EAAE,IAAI,CAACmqC,mBAAmB,CAAC;SAErE,IAAI,CAACX,IAAI,GAAG,IAAI,CAACE,OAAO,EAAE;SAC1B,IAAI,CAAC54C,MAAM,CAACuN,OAAO,EAAE,CAAC2C,KAAK,EAAE;SAE7B,MAAMhB,QAAQ,GAAG,IAAI,CAAClP,MAAM,CAACuN,OAAO,EAAE,CAAC5K,GAAG,CAAC,IAAI,CAACuM,QAAQ,CAAC;SACzD,MAAM+sC,GAAG,GAAG,IAAI,CAACj8C,MAAM,CAACuN,OAAO,EAAE,CAACwlB,YAAY,EAAE,CAACnlB,GAAG,CAAEF,GAAG,IAAK;WAC7D,OAAOA,GAAG,CAACG,KAAK,EAAE;UAClB,CAAC;SAEF,IAAI,IAAI,CAAC7N,MAAM,CAACsR,QAAQ,CAAC,8BAA8B,EAAE,IAAI,CAAC,EAC9D;WACC,IAAI,CAAC4qC,YAAY,CAACD,GAAG,CAAC;;SAGvBr8C,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,gBAAgB,EAAE,CAACo7C,GAAG,EAAE/sC,QAAQ,EAAE,IAAI,CAAClP,MAAM,CAAC,CAAC;QACxE,MAED;SACC,IAAI,CAAC47C,mBAAmB,EAAE;;OAG3Bh8C,EAAE,CAAC2I,MAAM,CAAC,IAAI,CAACyxC,IAAI,CAAC;OAEpB,IAAI,CAACrB,eAAe,EAAE;MACtB;KAEDqD,uBAAuB,CAAC9sC,QAAQ,EAAEitC,UAAU,EAC5C;OACCA,UAAU,CAAC9rB,MAAM,CAAC,CAACgX,IAAI,EAAE/+B,OAAO,KAAK;SACpCpB,OAAO,CAACoB,OAAO,CAAC,IAAI1I,EAAE,CAAC6L,WAAW,CAACnD,OAAO,EAAE++B,IAAI,CAAC;SAEjD,OAAO/+B,OAAO;QACd,EAAE4G,QAAQ,CAAC;MACZ;KAED6sC,QAAQ,CAACzzC,OAAO,EAAE4E,MAAM,EACxB;OACC,IAAIA,MAAM,EACV;SACCA,MAAM,CAACH,UAAU,CAAC+8B,YAAY,CAACxhC,OAAO,EAAE4E,MAAM,CAAC;QAC/C,MACI,IAAI,IAAI,CAACgtC,KAAK,EACnB;SACC5xC,OAAO,CAACyE,UAAU,CAAC3H,WAAW,CAACkD,OAAO,CAAC;;MAExC;KAED4zC,YAAY,CAAC5uC,IAAI,EACjB;OACC,MAAMxJ,IAAI,GAAG;SACZm4C,GAAG,EAAE3uC,IAAI;SACTnE,MAAM,EAAE,IAAI,CAACnJ,MAAM,CAACwU,cAAc,EAAE,CAACqY,SAAS,CAAC,qBAAqB;QACpE;OAED,IAAI,CAAC7sB,MAAM,CAACyrB,OAAO,EAAE,CAACrU,OAAO,CAAC,IAAI,EAAE,MAAM,EAAEtT,IAAI,CAAC;MACjD;KAED60C,eAAe,GACf;OACC,IAAI,CAACuB,KAAK,GAAG,KAAK;OAClB,IAAI,CAAChrC,QAAQ,GAAG,IAAI;OACpB,IAAI,CAACC,UAAU,GAAG,IAAI;OACtB,IAAI,CAACG,QAAQ,GAAG,IAAI;OACpB,IAAI,CAACsD,SAAS,GAAG,IAAI;OACrB,IAAI,CAACrD,MAAM,GAAG,IAAI;OAClB,IAAI,CAAC6sC,KAAK,GAAG,IAAI;OACjB,IAAI,CAACC,KAAK,GAAG,IAAI;OACjB,IAAI,CAAChC,eAAe,GAAG,IAAI;OAC3B,IAAI,CAACnB,eAAe,GAAG,IAAI;OAC3B,IAAI,CAACC,YAAY,GAAG,IAAI;OACxB,IAAI,CAAC5hC,KAAK,GAAG,KAAK;;IAEnB;CACF,CAAC,GAAG;;CCtlBJ,CAAC,YAAW;;GAGX3X,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAACknB,QAAQ,GAAG,YACnB;KACC,IAAI,CAACtkB,QAAQ,GAAG,EAAE;KAClB,IAAI,CAAC45C,eAAe,GAAG;OACtBC,cAAc,EAAE,WAAW;OAC3BC,YAAY,EAAE,mBAAmB;OACjCC,UAAU,EAAE,iBAAiB;OAC7BC,oBAAoB,EAAE,qBAAqB;OAC3CC,kBAAkB,EAAE,gBAAgB;OACpCC,uBAAuB,EAAE,sBAAsB;OAC/CC,sBAAsB,EAAE,qBAAqB;OAC7CC,aAAa,EAAE,qBAAqB;OACpCC,gBAAgB,EAAE,wBAAwB;OAC1CC,WAAW,EAAE,kBAAkB;OAC/BC,cAAc,EAAE,sBAAsB;OACtCC,eAAe,EAAE,oBAAoB;OACrCC,QAAQ,EAAE,eAAe;OACzBC,YAAY,EAAE,oBAAoB;OAClCC,YAAY,EAAE,oBAAoB;OAClCC,YAAY,EAAE,oBAAoB;OAClCC,aAAa,EAAE,oBAAoB;OACnCC,WAAW,EAAE,yBAAyB;OACtCC,sBAAsB,EAAE,+BAA+B;OACvDC,mBAAmB,EAAE,4BAA4B;OACjDC,cAAc,EAAE,qBAAqB;OACrCC,eAAe,EAAE,uBAAuB;OACxCC,uBAAuB,EAAE,qBAAqB;OAC9CC,eAAe,EAAE,uBAAuB;OACxCC,gBAAgB,EAAE,wBAAwB;OAC1CC,eAAe,EAAE,iCAAiC;OAClDC,cAAc,EAAE,uBAAuB;OACvCC,qBAAqB,EAAE,6BAA6B;OACpDC,oBAAoB,EAAE,4BAA4B;OAClDC,iBAAiB,EAAE,uBAAuB;OAC1CC,cAAc,EAAE,sBAAsB;OACtCC,eAAe,EAAE,uBAAuB;OACxCC,iBAAiB,EAAE,yBAAyB;OAC5CC,WAAW,EAAE,kBAAkB;OAC/BC,gBAAgB,EAAE,6BAA6B;OAC/CC,qBAAqB,EAAE,yBAAyB;OAChDC,mBAAmB,EAAE,uBAAuB;OAC5CC,iBAAiB,EAAE,oBAAoB;OACvCC,mBAAmB,EAAE,sBAAsB;OAC3CC,mBAAmB,EAAE,wBAAwB;OAC7CC,qBAAqB,EAAE,2BAA2B;OAClDC,eAAe,EAAE,uBAAuB;OACxCC,aAAa,EAAE,qBAAqB;OACpCC,aAAa,EAAE,iCAAiC;OAChDC,oBAAoB,EAAE,qCAAqC;OAC3DC,sBAAsB,EAAE,uCAAuC;OAC/DC,yBAAyB,EAAE,6CAA6C;OACxEC,gBAAgB,EAAE,QAAQ;OAC1BC,qBAAqB,EAAE,sCAAsC;OAC7DC,kBAAkB,EAAE,0BAA0B;OAC9CC,WAAW,EAAE,kBAAkB;OAC/BC,oBAAoB,EAAE,4BAA4B;OAClDC,eAAe,EAAE,uBAAuB;OACxCC,eAAe,EAAE,uBAAuB;OACxCC,iBAAiB,EAAE,yBAAyB;OAC5CC,gBAAgB,EAAE,wBAAwB;OAC1CC,mBAAmB,EAAE,2BAA2B;OAChDC,mBAAmB,EAAE,2BAA2B;OAChDC,iBAAiB,EAAE,yBAAyB;OAC5CC,gBAAgB,EAAE,wBAAwB;OAC1CC,kBAAkB,EAAE,wBAAwB;OAC5CC,iBAAiB,EAAE,yBAAyB;OAC5CC,mBAAmB,EAAE,2BAA2B;OAChDC,yBAAyB,EAAE,qCAAqC;OAChEC,8BAA8B,EAAE,2CAA2C;OAC3EC,kCAAkC,EAAE,0CAA0C;OAC9EC,kCAAkC,EAAE,gDAAgD;OACpFC,mCAAmC,EAAE,iDAAiD;OACtFC,iCAAiC,EAAE,8CAA8C;OACjFC,uBAAuB,EAAE,gCAAgC;OACzDC,4BAA4B,EAAE,sCAAsC;OACpEC,8BAA8B,EAAE,wCAAwC;OACxEC,wCAAwC,EAAE,kDAAkD;OAC5FC,0CAA0C,EAAE,2DAA2D;OACvGC,qCAAqC,EAAE,gDAAgD;OACvFC,0CAA0C,EAAE,4CAA4C;OACxFC,2CAA2C,EAAE,6CAA6C;OAC1FC,mBAAmB,EAAE,mCAAmC;OACxDC,yBAAyB,EAAE,0CAA0C;OACrEC,wBAAwB,EAAE,8CAA8C;OACxEC,wBAAwB,EAAE,8CAA8C;OACxEC,gCAAgC,EAAE,6CAA6C;OAC/EC,kBAAkB,EAAE,gCAAgC;OACpDC,mBAAmB,EAAE,iCAAiC;OACtDC,WAAW,EAAE,4BAA4B;OACzCC,eAAe,EAAE,uBAAuB;OACxCC,eAAe,EAAE,uBAAuB;OACxCC,aAAa,EAAE,iBAAiB;OAChCC,uBAAuB,EAAE,YAAY;OACrCC,SAAS,EAAE,gBAAgB;OAC3BC,QAAQ,EAAE,eAAe;OACzBC,YAAY,EAAE,oBAAoB;OAClCC,aAAa,EAAE,qBAAqB;OACpCC,aAAa,EAAE,qBAAqB;OACpCC,YAAY,EAAE,yBAAyB;OACvCC,yBAAyB,EAAE,wCAAwC;OACnEC,SAAS,EAAE,MAAM;OACjBC,oBAAoB,EAAE,6BAA6B;OACnDC,aAAa,EAAE,eAAe;OAC9BC,iBAAiB,EAAE,yBAAyB;OAC5CC,0BAA0B,EAAE,mCAAmC;OAC/DC,mBAAmB,EAAE,4BAA4B;OACjDC,YAAY,EAAE,mBAAmB;OACjCC,cAAc,EAAE,SAAS;OACzBC,gBAAgB,EAAE,MAAM;OACxBC,SAAS,EAAE,MAAM;OACjBC,aAAa,EAAE,gBAAgB;OAC/BC,sBAAsB,EAAE,YAAY;OACpCC,gBAAgB,EAAE,MAAM;OACxBC,cAAc,EAAE,QAAQ;OACxBC,UAAU,EAAE,gBAAgB;OAC5BC,YAAY,EAAE,IAAI;OAClBC,eAAe,EAAE,IAAI;OACrB/c,iBAAiB,EAAE;MACnB;KACD,IAAI,CAACpjB,OAAO,EAAE;IACd;GAEDxjB,EAAE,CAACE,IAAI,CAACknB,QAAQ,CAACtmB,SAAS,GAAG;KAC5B0iB,OAAO,GACP;OACC,IAAI,CAAC1gB,QAAQ,GAAG,IAAI,CAAC45C,eAAe;MACpC;KAEDkH,UAAU,GACV;OACC,OAAO,IAAI,CAAClH,eAAe;MAC3B;KAED35C,GAAG,CAACiC,IAAI,EACR;OACC,IAAIoD,MAAM;OAEV,IACA;SACCA,MAAM,GAAI,IAAI,CAACw7C,UAAU,EAAE,CAAE5+C,IAAI,CAAC;QAClC,CACD,MACA;SACCoD,MAAM,GAAG,IAAI;;OAGd,OAAOA,MAAM;MACb;KAED4wC,OAAO,GACP;OACC,OAAO,IAAI,CAAC4K,UAAU,EAAE;;IAEzB;CACF,CAAC,GAAG;;CCzJJ,MAAM3jD,WAAS,GAAGgP,oBAAU,CAAChP,SAAS,CAAC,wBAAwB,CAAC;CAiBhE,MAAM4jD,YAAY,GAAG,QAAQ;CAC7B,MAAMC,WAAW,GAAG,OAAO;CAE3B,MAAMC,YAAY,CAClB;GAYC7a,WAAW,CAAC8a,MAA0B,EACtC;KAAA,KAZAA,MAAM,GAAuB,EAAE;KAAA,KAK/Bh8C,OAAO,GAAwB,EAAE;KAAA,KAEjCi8C,aAAa,GAAgB,IAAIC,GAAG,EAAE;KAAA,KACtCpgB,KAAK,GAAmB,IAAI;KAAA,KAC5BqgB,UAAU,GAAmB,IAAI;KAIhC,IAAI,CAACH,MAAM,GAAGA,MAAM;KAEpB,IAAI,CAAC1+B,IAAI,GAAG0+B,MAAM,CAAC1+B,IAAI;KACvB,IAAI,CAACllB,MAAM,GAAG4jD,MAAM,CAAC5jD,MAAM;KAC3B,IAAI,CAAC4H,OAAO,GAAG,IAAI,CAACsd,IAAI,CAACxL,QAAQ,CAACsqC,qBAAqB;KAEvD,IAAI,CAACC,SAAS,GAAG/8C,OAAO,CAAC,IAAI,CAACge,IAAI,CAACxL,QAAQ,CAACwqC,oBAAoB,CAAC;KACjE,IAAI,CAACC,aAAa,GAAGtvC,cAAI,CAAC2rB,aAAa,CAAC,IAAI,CAAC54B,OAAO,CAACw8C,QAAQ,CAAC;KAC9D,IAAI,CAACC,aAAa,GAAG,KAAK;;GAG3BxgB,QAAQ,GACR;KACC,IAAI,CAAC,IAAI,CAACH,KAAK,EACf;OACC,IAAI,CAAC4gB,WAAW,EAAE;;KAGnB,OAAO,IAAI,CAAC5gB,KAAK;;GAGlB4gB,WAAW,GACX;KACC,IAAI,IAAI,CAAC5gB,KAAK,EACd;OACC;;KAGD,MAAM;OACLugB,SAAS;OACTE,aAAa;OACbP,MAAM,EAAE;SAAEl+C,KAAK;SAAES,WAAW;SAAEo+C,eAAe;SAAEC,qBAAqB;SAAEC;;MACtE,GAAG,IAAI;KAER,MAAMhgB,OAAO,GAAG;OACfigB,UAAU,EAAE;MACZ;KAED,IAAI,CAAChhB,KAAK,GAAG,IAAIihB,oCAAc,CAAC;OAC/BlgB,OAAO;OACPmgB,YAAY,EAAE;SACblyC,KAAK,EAAE;QACP;OACDmyC,WAAW,EAAE,CAAC;OACdC,IAAI,EAAE;SACLp/C,KAAK;SACLS,WAAW;SACXo+C,eAAe;SACfC,qBAAqB;SACrBC;QACA;OACDL,QAAQ,EAAE,IAAI,CAACW,WAAW,EAAE;OAC5BC,UAAU,EAAE,IAAI,CAACC,aAAa,EAAE;OAChCr9C,OAAO,EAAE,IAAI,CAACs9C,UAAU,EAAE;OAC1B3mC,MAAM,EAAE;SACP4mC,OAAO,EAAGtjD,KAAK,IAAK,IAAI,CAACsjD,OAAO,CAACtjD,KAAK,CAAC;SACvCujD,SAAS,EAAGvjD,KAAK,IAAK,IAAI,CAACujD,SAAS,CAACvjD,KAAK;QAC1C;OACD+hD,MAAM,EAAE;SACPK,SAAS;SACTE,aAAa;SACbkB,sBAAsB,EAAE,KAAK;SAC7BC,eAAe,EAAE,KAAK;SACtBC,sBAAsB,EAAE;QACxB;OACDC,oBAAoB,EAAE,IAAI,CAACC,uBAAuB;MAClD,CAAC;;GAGHV,WAAW,GACX;KAAA;KACC,MAAMX,QAAQ,4BAAG,IAAI,CAACx8C,OAAO,CAACw8C,QAAQ,oCAAI,EAAE;KAE5C,MAAMp8C,MAAM,GAAG,EAAE;KACjBo8C,QAAQ,CAAC/7C,OAAO,CAAEq9C,OAAO,IAAK;OAC7B,MAAM;SAAE9jD,EAAE;SAAEgD,IAAI;SAAE+Y;QAAU,GAAG+nC,OAAO;OAEtC19C,MAAM,CAACG,IAAI,CAAC;SACXqjC,GAAG,EAAE5pC,EAAE;SACP8D,KAAK,EAAEd,IAAI;SACXa,KAAK,EAAEkY;QACP,CAAC;MACF,CAAC;KAEF,OAAO3V,MAAM;;GAGdi9C,aAAa,GACb;KAAA;KACC,MAAMD,UAAU,4BAAG,IAAI,CAACp9C,OAAO,CAACo9C,UAAU,oCAAI,EAAE;KAEhD,MAAMh9C,MAAM,GAAG,EAAE;KAEjB,IAAIg9C,UAAU,CAAC39C,MAAM,KAAK,CAAC,EAC3B;OACC,IAAI,CAAC09C,WAAW,EAAE,CAAC18C,OAAO,CAAEq9C,OAAO,IAAK;SACvC,MAAM;WAAEla,GAAG;WAAE9lC;UAAO,GAAGggD,OAAO;SAE9B19C,MAAM,CAACG,IAAI,CAAC;WACXqjC,GAAG;WACH9lC,KAAK;WACLigD,UAAU,EAAEna;UACZ,CAAC;QACF,CAAC;OAEF,OAAOxjC,MAAM;;KAGdg9C,UAAU,CAAC38C,OAAO,CAAEu9C,QAAQ,IAAK;OAChC,MAAM;SAAElgD,KAAK;SAAEigD,UAAU;SAAEna;QAAK,GAAGoa,QAAQ;OAE3C59C,MAAM,CAACG,IAAI,CAAC;SACXzC,KAAK;SACLigD,UAAU;SACVna;QACA,CAAC;MACF,CAAC;KAEF,OAAOxjC,MAAM;;GAGdk9C,UAAU,GACV;KAAA;KACC,MAAMt9C,OAAO,GAAG,IAAI,CAACA,OAAO;KAC5B,MAAM2M,OAAO,uBAAG3M,OAAO,CAAC2M,OAAO,+BAAI,EAAE;KACrC,MAAMsxC,mBAAmB,4BAAGj+C,OAAO,CAACi+C,mBAAmB,oCAAI,EAAE;KAC7D,MAAM79C,MAAM,GAAG,EAAE;KACjB,MAAM89C,WAAW,sDAAG,IAAI,CAAC5gC,IAAI,CAAC1Q,cAAc,EAAE,CAACuxC,iBAAiB,EAAE,qBAA9C,uBAAgDC,YAAY,oCAAI,EAAE;KAEtF,IAAI,IAAI,CAAC7B,aAAa,EACtB;OACC,KAAK,MAAM8B,WAAW,IAAIJ,mBAAmB,EAC7C;SACCA,mBAAmB,CAACI,WAAW,CAAC,CAAC59C,OAAO,CAAEmI,MAAM,IAAK;WACpD,MAAM;aAAE5O,EAAE;aAAEskD,OAAO,EAAEj8B;YAAc,GAAGzZ,MAAM;WAC5C,IAAI;aAAE5L,IAAI,EAAEc;YAAO,GAAG8K,MAAM;WAC5B,IAAIqE,cAAI,CAACzL,aAAa,CAAC08C,WAAW,CAAC,IAAIxc,MAAM,CAAC6c,MAAM,CAACL,WAAW,EAAE,IAAI,CAAC,EACvE;aACCpgD,KAAK,GAAGogD,WAAW,CAAClkD,EAAE,CAAC;;WAGxBoG,MAAM,CAACG,IAAI,CAAC;aACXzC,KAAK,EAAEo7B,cAAI,CAACslB,MAAM,CAAC1gD,KAAK,CAAC;aACzBD,KAAK,EAAE,IAAI,CAAC4gD,SAAS,CAACzkD,EAAE,CAAC;aACzB0kD,WAAW,EAAEL,WAAW;aACxBh8B,YAAY;aACZroB;YACA,CAAC;WAEF,IAAI,CAAC2kD,mBAAmB,CAAC/1C,MAAM,CAAC;UAChC,CAAC;;OAGH,OAAOxI,MAAM;;KAGduM,OAAO,CAAClM,OAAO,CAAEmI,MAAM,IAAK;OAC3B,MAAM;SACL5O,EAAE;SACFgD,IAAI,EAAEc,KAAK;SACXwgD,OAAO,EAAEj8B;QACT,GAAGzZ,MAAM;OAEVxI,MAAM,CAACG,IAAI,CAAC;SACXzC,KAAK,EAAEo7B,cAAI,CAACslB,MAAM,CAAC1gD,KAAK,CAAC;SACzBD,KAAK,EAAE,IAAI,CAAC4gD,SAAS,CAACzkD,EAAE,CAAC;SACzBqoB,YAAY;SACZroB;QACA,CAAC;OAEF,IAAI,CAAC2kD,mBAAmB,CAAC/1C,MAAM,CAAC;MAChC,CAAC;KAEF,OAAOxI,MAAM;;GAGdq+C,SAAS,CAACnnB,SAAiB,EAC3B;KAAA;KACC,MAAM38B,OAAO,4BAAG,IAAI,CAACqF,OAAO,CAACrF,OAAO,oCAAI,EAAE;KAE1C,OAAOA,OAAO,CAAC2F,QAAQ,CAACg3B,SAAS,CAAC;;GAGnCqnB,mBAAmB,CAAC/1C,MAAc,EAClC;KACC,MAAM;OAAEg2C,OAAO;OAAE5kD;MAAI,GAAG4O,MAAM;KAE9B,IAAIg2C,OAAO,EACX;OACC,IAAI,CAAC3C,aAAa,CAACpyB,GAAG,CAAC7vB,EAAE,CAAC;;;GAI5B6jD,uBAAuB,GACvB;KACC,IAAI,IAAI,CAACgB,OAAO,EAAE,EAClB;OACC,MAAM;SAAE/sC,QAAQ,EAAEkqC,MAAM;SAAEz+B;QAAa,GAAG,IAAI,CAACnlB,MAAM;OAErD,OAAO,CACN;SACCqC,IAAI,EAAE,YAAY;SAClBT,EAAE,EAAG,GAAEujB,WAAY,IAAGs+B,YAAa,EAAC;SACpC/9C,KAAK,EAAEk+C,MAAM,CAAC8C,kBAAkB;SAChCtrC,SAAS,EAAE,CACV;WACC3V,KAAK,EAAEi+C,WAAW;WAClBxQ,KAAK,EAAE0Q,MAAM,CAAC+C;UACd,EACD;WACClhD,KAAK,EAAEg+C,YAAY;WACnBvQ,KAAK,EAAE0Q,MAAM,CAACgD;UACd,CACD;;SAEDC,OAAO,EAAGphD,KAAc,IAAK;WAC5B,IAAI,CAAC4+C,aAAa,GAAI5+C,KAAK,KAAKg+C,YAAa;;QAE9C,CACD;;KAGF,OAAO,EAAE;;GAGV16C,IAAI,GACJ;KACC,IAAI,CAAC26B,KAAK,CAAC36B,IAAI,EAAE;;GAGlB8nB,iBAAiB,GACjB;KACC,MAAM;OACLi2B,qBAAqB,EAAEC,sBAAsB;OAC7CC,mBAAmB,EAAEC;MACrB,GAAG,IAAI,CAACjnD,MAAM,CAAC0Z,QAAQ;KAExB,IAAIqtC,sBAAsB,IAAIE,gBAAgB,EAC9C;OACC,OAAO,IAAI,CAACpD,aAAa,CAAC9mC,MAAM,EAAE;;KAGnC,OAAO,EAAE;;GAGVooC,OAAO,CAACtjD,KAAK,EACb;KACC,MAAM;OAAEqlD,MAAM,EAAE3yC,OAAO;OAAEzQ;MAAM,GAAGjC,KAAK,CAACiC,IAAI;KAE5C,IAAI,IAAI,CAACqjD,QAAQ,EAAE,EACnB;OACC,MAAMvD,MAAM,GAAG;SACdx5B,OAAO,EAAE,IAAI;SACbC,eAAe,EAAE,IAAI,CAACnF,IAAI,CAAC5T,QAAQ,CAAC,kCAAkC;QACtE;OAED,IAAI,CAAC4T,IAAI,CAAC1Y,aAAa,CACtBo3C,MAAM,EACN,MAAM,IAAI,CAACwD,uBAAuB,CAAC7yC,OAAO,EAAEzQ,IAAI,CAAC,CACjD;MACD,MAED;OACC,IAAI,CAACsjD,uBAAuB,CAAC7yC,OAAO,EAAEzQ,IAAI,CAAC;;;GAI7CsjD,uBAAuB,CAAC7yC,OAAO,EAAEzQ,IAAI,EACrC;KACC,IAAI,CAACujD,WAAW,CAAC9yC,OAAO,EAAEzQ,IAAI,CAAC;KAC/B,IAAI,CAAC4/B,KAAK,CAACz6B,IAAI,EAAE;;GAGlBq+C,yBAAyB,CAACC,UAAyB,EACnD;KACC,IAAI1yC,cAAI,CAACpM,OAAO,CAAC8+C,UAAU,CAAC,EAC5B;OAAA;OACC,MAAMC,cAAsC,GAAG,IAAI,CAACtiC,IAAI,CAAC1Q,cAAc,EAAE,CAACuxC,iBAAiB,EAAE;OAC7F,MAAM0B,cAA6B,GAAGD,cAAc,6CAAdA,cAAc,CAAEjzC,OAAO,qBAAvB,sBAAyBlG,KAAK,oBAA9B,sBAAyBA,KAAK,CAAG,GAAG,CAAC;OAC3E,IAAIwG,cAAI,CAACpM,OAAO,CAACg/C,cAAc,CAAC,EAChC;SACC,MAAMC,eAA8B,GAAGD,cAAc,CAACh6C,MAAM,CAAE+C,MAAc,IAAK;WAChF,OAAO+2C,UAAU,CAACr/C,QAAQ,CAACsI,MAAM,CAAC;UAClC,CAAC;SAEF,MAAMm3C,eAA8B,GAAGJ,UAAU,CAAC95C,MAAM,CAAE+C,MAAc,IAAK;WAC5E,OAAO,CAACk3C,eAAe,CAACx/C,QAAQ,CAACsI,MAAM,CAAC;UACxC,CAAC;SAEF,OAAO,CAAC,GAAGk3C,eAAe,EAAE,GAAGC,eAAe,CAAC;;;KAIjD,OAAOJ,UAAU;;GAGlBF,WAAW,CAAC9yC,OAAO,EAAEzQ,IAAI,EACzB;KACC,MAAM8D,OAAO,GAAG,IAAI,CAACsd,IAAI,CAAC1Q,cAAc,EAAE;KAC1C,MAAMozC,WAAW,GAAG,IAAI,CAACC,cAAc,CAAC/jD,IAAI,CAAC;KAC7C,MAAM+/C,aAAa,GAAG,IAAI,CAAChzB,iBAAiB,EAAE;KAC9C,MAAMi3B,cAA6B,GAAG,IAAI,CAACR,yBAAyB,CAAC/yC,OAAO,CAAC;KAE7E,MAAMqc,KAAK,GAAG,CACb;OACCznB,MAAM,EAAEvB,OAAO,CAACilB,SAAS,CAAC,kBAAkB,CAAC;OAC7CtY,OAAO,EAAEuzC,cAAc,CAAC3qC,IAAI,CAAC,GAAG;MAChC,EACD;OACChU,MAAM,EAAEvB,OAAO,CAACilB,SAAS,CAAC,kBAAkB,CAAC;OAC7Cm5B,YAAY,EAAE4B;MACd,EACD;OACCz+C,MAAM,EAAEvB,OAAO,CAACilB,SAAS,CAAC,0BAA0B,CAAC;OACrD8D,cAAc,EAAEkzB;MAChB,CACD;KAED,IAAI,IAAI,CAACsD,QAAQ,EAAE,EACnB;OACCv2B,KAAK,CAACzoB,IAAI,CAAC;SACVgB,MAAM,EAAEvB,OAAO,CAACilB,SAAS,CAAC,oBAAoB,CAAC;SAC/Ck7B,OAAO,EAAE,SAAS;SAClBC,oBAAoB,EAAE,GAAG;SACzBC,oBAAoB,EAAE;QACtB,CAAC;;KAGHrgD,OAAO,CAACgpB,KAAK,CAACA,KAAK,EAAE,MAAM,IAAI,CAAC1L,IAAI,CAACyG,WAAW,EAAE,CAAC;;GAGpDk8B,cAAc,CAAC/jD,IAAI,EACnB;KAAA;KACC,MAAM8D,OAAO,GAAG,IAAI,CAACA,OAAO;KAC5B,MAAM2M,OAAO,wBAAG3M,OAAO,CAAC2M,OAAO,gCAAI,EAAE;KAErC,MAAM2zC,KAAK,GAAG,EAAE;KAChB,MAAM;OAAEC;MAAQ,GAAGrkD,IAAI;KAEvB,IAAI,CAAC+Q,cAAI,CAACuzC,YAAY,CAACD,MAAM,CAAC,EAC9B;OACC,OAAO,EAAE;;KAGV5zC,OAAO,CAAClM,OAAO,CAAEmI,MAAM,IAAK;OAC3B,MAAM5O,EAAE,GAAG4O,MAAM,CAAC5O,EAAE;OACpB,IAAIiT,cAAI,CAACm0B,cAAc,CAACmf,MAAM,CAACvmD,EAAE,CAAC,CAAC,IAAIumD,MAAM,CAACvmD,EAAE,CAAC,KAAK4O,MAAM,CAAC5L,IAAI,EACjE;SACCsjD,KAAK,CAACtmD,EAAE,CAAC,GAAGumD,MAAM,CAACvmD,EAAE,CAAC;QACtB,MACI,IACJiT,cAAI,CAACm0B,cAAc,CAAC,IAAI,CAAChpC,MAAM,CAAC0Z,QAAQ,CAAC2uC,eAAe,CAACzmD,EAAE,CAAC,CAACgD,IAAI,CAAC,IAC/D,IAAI,CAAC5E,MAAM,CAAC0Z,QAAQ,CAAC2uC,eAAe,CAACzmD,EAAE,CAAC,CAACgD,IAAI,KAAK4L,MAAM,CAAC5L,IAAI,EAEjE;SACCsjD,KAAK,CAACtmD,EAAE,CAAC,GAAG4O,MAAM,CAAC5L,IAAI;;MAExB,CAAC;KAEF,OAAOsjD,KAAK;;GAGb9C,SAAS,CAACvjD,KAAgB,EAC1B;KACC,MAAM+hD,MAAM,GAAG;OACdx5B,OAAO,EAAE,IAAI;OACbC,eAAe,EAAE,IAAI,CAACnF,IAAI,CAACxL,QAAQ,CAAC4uC;MACpC;KAED,IAAI,CAACpjC,IAAI,CAAC1Y,aAAa,CACtBo3C,MAAM,EACN,MAAM;OACL,IAAI,CAAC1+B,IAAI,CAAC1Q,cAAc,EAAE,CAACtE,KAAK,CAC/B,IAAI,CAACi3C,QAAQ,EAAE,EACf,MAAM;SACL,IAAI,CAACj3C,KAAK,EAAE;SACZ,IAAI,CAACgV,IAAI,CAACyG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM;WACvC,IAAI,CAAC+X,KAAK,CAAC97B,OAAO,CAChBS,OAAO,CAAEvG,IAAI,IAAK;aAClB,IAAI,CAACojB,IAAI,CAACgC,YAAY,CAAC8O,MAAM,CAACl0B,IAAI,CAACF,EAAE,EAAEE,IAAI,CAACmoB,YAAY,KAAK,IAAI,CAAC;YAClE,CAAC;UAEH,CAAC;QACF,CACD;MACD,CACD;KAEDpoB,KAAK,CAACwL,cAAc,EAAE;KAEtB,OAAOxL,KAAK;;GAGb0mD,SAAS,GACT;;;GAIAr4C,KAAK,GACL;KACC,IAAI,CAACtI,OAAO,CAACrF,OAAO,GAAG,EAAE;KAEzB,IAAI,CAACmhC,KAAK,CAAC97B,OAAO,CAChB6F,MAAM,CAAE3L,IAAI,IAAKA,IAAI,CAACmoB,YAAY,CAAC,CACnC5hB,OAAO,CAAEvG,IAAI,IAAK;OAClB,IAAI,CAAC8F,OAAO,CAACrF,OAAO,CAAC4F,IAAI,CAACrG,IAAI,CAACF,EAAE,CAAC;MAClC,CAAC;KAGH,IAAI,CAAC+d,KAAK,EAAE;;GAGb6oC,kBAAkB,GAClB;KACC,OAAO,IAAI,CAAC3kB,QAAQ,EAAE,CAAC4kB,kBAAkB,EAAE;;GAG5C9oC,KAAK,GACL;KAAA;KACC,mBAAI,CAAC+jB,KAAK,qBAAV,YAAYniC,OAAO,EAAE;;GAGtB4lD,QAAQ,GACR;KACC,OAAO,IAAI,CAAC9C,aAAa;;GAG1BoC,OAAO,GACP;KAAA;KACC,OAAOv/C,OAAO,0BAAC,IAAI,CAAClH,MAAM,CAAC0Z,QAAQ,CAACgvC,QAAQ,oCAAI,KAAK,CAAC;;GAGvDC,aAAa,GACb;KACC,OAAO,IAAI,CAAC/gD,OAAO,CAAC2M,OAAO;;GAG5BsH,QAAQ,GACR;KACC,OAAO,IAAI,CAACgoB,QAAQ,EAAE,CAACqhB,UAAU,EAAE;;GAGpClvB,MAAM,CAACp0B,EAAU,EAAE6D,KAAc,GAAG,IAAI,EACxC;KAAA;;;KAGC,IAAI,uBAAI,CAACo+B,QAAQ,EAAE,8CAAf,eAAiB+kB,YAAY,qBAA7B,sBAA+BvhD,MAAM,MAAK,CAAC,IAAI5B,KAAK,KAAK,KAAK,EAClE;OACC;;KAGD,IAAI,CAACo+B,QAAQ,EAAE,CAAC+kB,YAAY,CAAChnD,EAAE,EAAE6D,KAAK,CAAC;;GAGxCojD,kBAAkB,CAACt0C,OAAiB,EAAErJ,QAAkB,EACxD;KACC,IAAI,CAAC2Q,QAAQ,EAAE,CACbpO,MAAM,CAAE3L,IAAI,IAAKyS,OAAO,CAACrM,QAAQ,CAACpG,IAAI,CAACF,EAAE,CAAC,CAAC,CAC3CyG,OAAO,CAAEvG,IAAI,IAAK,IAAI,CAACk0B,MAAM,CAACl0B,IAAI,CAACF,EAAE,CAAC,CAAC;KAGzC,IAAI,CAACiiC,QAAQ,EAAE,CAACxO,KAAK,EAAE;KAEvB,IAAIxgB,cAAI,CAACgF,UAAU,CAAC3O,QAAQ,CAAC,EAC7B;OACCA,QAAQ,EAAE;;;CAGb;AAEArL,YAAS,CAAC8jD,YAAY,GAAGA,YAAY;;CCngBrC;CAEC,CAAC,YAAW;;GAGZ/jD,EAAE,CAACC,SAAS,CAAC,wBAAwB,CAAC;;;CAIvC;CACA;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAACqnB,cAAc,CAAC2hC,MAAM,GAAG,UAAS9oD,MAAM,EAAE8C,IAAI,EACrD;KACC,IAAI,CAACA,IAAI,GAAG,IAAI;KAChB,IAAI,CAACowC,KAAK,GAAG,IAAI;KACjB,IAAI,CAAC/wC,QAAQ,GAAG,IAAI;KACpB,IAAI,CAACupB,UAAU,GAAG,IAAI;KACtB,IAAI,CAAChpB,QAAQ,GAAG,IAAI;KACpB,IAAI,CAAC1C,MAAM,GAAG,IAAI;KAClB,IAAI,CAACkmD,OAAO,GAAG,IAAI;KACnB,IAAI,CAAC6C,YAAY,GAAG,IAAI;KACxB,IAAI,CAAC1yB,KAAK,GAAG,IAAI;KACjB,IAAI,CAAC2yB,SAAS,GAAG,IAAI;KACrB,IAAI,CAAC3oD,IAAI,CAACL,MAAM,EAAE8C,IAAI,CAAC;IACvB;GAEDlD,EAAE,CAACE,IAAI,CAACqnB,cAAc,CAAC2hC,MAAM,CAACh5C,MAAM,GAAG,EAAE;GAEzClQ,EAAE,CAACE,IAAI,CAACqnB,cAAc,CAAC2hC,MAAM,CAACpoD,SAAS,GAAG;KACzCL,IAAI,EAAE,UAASL,MAAM,EAAE8C,IAAI,EAC3B;OACC,IAAI,CAAC9C,MAAM,GAAGA,MAAM;OACpB,IAAI,CAAC8C,IAAI,GAAGA,IAAI;OAEhB,IAAI;SACH,IAAI,CAACkmD,SAAS,GAAGlmD,IAAI,CAACuW,aAAa,CAAC,OAAO,CAAC,CAAC8F,SAAS,CAAC8pC,IAAI,EAAE;QAC7D,CAAC,OAAOt8C,GAAG,EAAE;OAEd,IAAI,CAACu8C,WAAW,EAAE;OAElB,IAAI,CAACtpD,EAAE,CAACE,IAAI,CAACqnB,cAAc,CAAC2hC,MAAM,CAACh5C,MAAM,CAAC,IAAI,CAACjC,KAAK,EAAE,CAAC,EACvD;SACCjO,EAAE,CAACE,IAAI,CAACqnB,cAAc,CAAC2hC,MAAM,CAACh5C,MAAM,CAAC,IAAI,CAACjC,KAAK,EAAE,CAAC,GAAG,IAAI;SACzDjO,EAAE,CAACsB,IAAI,CAAC,IAAI,CAACioD,aAAa,EAAE,EAAE,OAAO,EAAEvpD,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACsoD,iBAAiB,EAAE,IAAI,CAAC,CAAC;SAC9ExpD,EAAE,CAACsB,IAAI,CAAC,IAAI,CAACmoD,eAAe,EAAE,EAAE,OAAO,EAAEzpD,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACwoD,mBAAmB,EAAE,IAAI,CAAC,CAAC;;MAEnF;KAEDD,eAAe,EAAE,YACjB;OACC,OAAO,IAAI,CAACvmD,IAAI,CAACuW,aAAa,CAAC,oDAAoD,CAAC;MACpF;KAEDkwC,SAAS,EAAE,YACX;OACC,OAAO,IAAI,CAACzmD,IAAI,CAACsR,SAAS,CAACC,QAAQ,CAAC,6CAA6C,CAAC;MAClF;KAEDi1C,mBAAmB,EAAE,YACrB;OACC,IAAI,IAAI,CAACC,SAAS,EAAE,EACpB;SACC,IAAI,CAACC,OAAO,EAAE;QACd,MAED;SACC,IAAI,CAACC,KAAK,EAAE;;MAEb;KAEDA,KAAK,EAAE,YACP;OACC,IAAI,CAAC3mD,IAAI,CAACsR,SAAS,CAACqd,GAAG,CAAC,6CAA6C,CAAC;MACtE;KAED+3B,OAAO,EAAE,YACT;OACC,IAAI,CAAC1mD,IAAI,CAACsR,SAAS,CAAC7L,MAAM,CAAC,6CAA6C,CAAC;MACzE;KAED6gD,iBAAiB,EAAE,UAASvnD,KAAK,EACjC;OACCA,KAAK,CAAC+d,eAAe,EAAE;OACvB,IAAI,CAAC8pC,aAAa,EAAE,GAAG,IAAI,CAACC,WAAW,EAAE,GAAG,IAAI,CAACC,UAAU,EAAE;MAC7D;;CAIH;CACA;CACA;CACA;CACA;KACEC,QAAQ,EAAE,UAASxzB,KAAK,EACxB;OACC,IAAI,CAACA,KAAK,GAAGA,KAAK;MAClB;;CAIH;CACA;CACA;KACED,QAAQ,EAAE,YACV;OACC,OAAO,IAAI,CAACC,KAAK;MACjB;;CAIH;CACA;KACE6yB,WAAW,EAAE,YACb;OACC,IAAI,CAACW,QAAQ,CAAC;SACblsC,QAAQ,EAAE,IAAI,CAACoY,UAAU,EAAE;SAC3BywB,OAAO,EAAE,IAAI,CAAC+C,SAAS,EAAE;SACzB7jD,KAAK,EAAE,IAAI,CAACokD,QAAQ;QACpB,CAAC;MACF;;CAIH;CACA;KACEC,YAAY,EAAE,YACd;OACC,IAAI1zB,KAAK,GAAG,IAAI,CAACD,QAAQ,EAAE;OAE3BC,KAAK,CAAC1Y,QAAQ,GAAG,IAAI,CAACqY,MAAM,EAAE,GAAG,IAAI,CAACC,QAAQ,EAAE;OAChDI,KAAK,CAACmwB,OAAO,GAAG,IAAI,CAACiD,KAAK,EAAE,GAAG,IAAI,CAACD,OAAO,EAAE;OAC7C,IAAI,CAACQ,QAAQ,CAAC3zB,KAAK,CAAC3wB,KAAK,CAAC;MAC1B;;CAIH;CACA;CACA;KACEmI,KAAK,EAAE,YACP;OACC,OAAO,IAAI,CAACuD,OAAO,EAAE,CAACmL,OAAO,CAAC3X,IAAI;MAClC;;CAIH;CACA;CACA;KACEklD,QAAQ,EAAE,YACV;OACC,OAAO,IAAI,CAACG,QAAQ,EAAE,CAAC9qC,SAAS;MAChC;;CAIH;CACA;CACA;KACE6qC,QAAQ,EAAE,UAAStkD,KAAK,EACxB;OACC,IAAI,CAACukD,QAAQ,EAAE,CAAC9qC,SAAS,GAAG,CAAC,CAACzZ,KAAK,IAAIA,KAAK,KAAK,WAAW,GAAGA,KAAK,GAAG,IAAI,CAACwkD,eAAe,EAAE;MAC7F;;CAIH;CACA;KACEC,QAAQ,EAAE,YACV;OACC,OAAO,IAAI,CAACL,QAAQ,EAAE,KAAK,IAAI,CAACI,eAAe,EAAE;MACjD;;CAIH;CACA;CACA;KACEE,WAAW,EAAE,YACb;OACC,IAAI,IAAI,CAAC1nD,QAAQ,KAAK,IAAI,EAC1B;SACC,IAAI6R,OAAO,GAAG,IAAI,CAACvU,MAAM,CAACsR,QAAQ,CAAC,iBAAiB,CAAC;SACrD,IAAI,CAAC5O,QAAQ,GAAG,IAAI,CAACmL,KAAK,EAAE,IAAI0G,OAAO,GAAGA,OAAO,CAAC,IAAI,CAAC1G,KAAK,EAAE,CAAC,GAAG,EAAE;;OAGrE,OAAO,IAAI,CAACnL,QAAQ;MACpB;;CAIH;CACA;CACA;KACE2nD,SAAS,EAAE,YACX;OACC,IAAI,IAAI,CAACnE,OAAO,KAAK,IAAI,EACzB;SACC,IAAIxjD,QAAQ,GAAG,IAAI,CAAC0nD,WAAW,EAAE;SACjC,IAAI,CAAClE,OAAO,GAAG,SAAS,IAAIxjD,QAAQ,GAAGA,QAAQ,CAACwjD,OAAO,GAAG,KAAK;;OAGhE,OAAO,IAAI,CAACA,OAAO;MACnB;;CAIH;CACA;KACEoE,OAAO,EAAE,YACT;OACC,IAAI,CAACD,SAAS,EAAE,GAAG,IAAI,CAACr0B,MAAM,EAAE,GAAG,IAAI,CAACC,QAAQ,EAAE;OAClD,IAAI,CAAC+zB,QAAQ,CAAC,IAAI,CAACE,eAAe,EAAE,CAAC;OACrC,IAAI,CAACpnD,IAAI,CAACyZ,OAAO,CAACguC,cAAc,KAAK,MAAM,GAAG,IAAI,CAACd,KAAK,EAAE,GAAG,IAAI,CAACD,OAAO,EAAE;OAC3E,IAAI,CAACG,WAAW,EAAE;OAClB,IAAI,CAACT,WAAW,EAAE;MAClB;;CAIH;CACA;CACA;KACEgB,eAAe,EAAE,YACjB;OACC,IAAI,IAAI,CAACnB,YAAY,KAAK,IAAI,EAC9B;SACC,IAAIrmD,QAAQ,GAAG,IAAI,CAAC0nD,WAAW,EAAE;SACjC,IAAI,CAACrB,YAAY,GAAG,MAAM,IAAIrmD,QAAQ,GAAGA,QAAQ,CAACkC,IAAI,GAAG,IAAI,CAACokD,SAAS;;OAGxE,OAAO,IAAI,CAACD,YAAY;MACxB;;CAIH;CACA;CACA;KACE33C,OAAO,EAAE,YACT;OACC,OAAO,IAAI,CAACtO,IAAI;MAChB;;CAIH;CACA;CACA;KACEmnD,QAAQ,EAAE,YACV;OACC,IAAI,IAAI,CAAC/W,KAAK,KAAK,IAAI,EACvB;SACC,IAAI,CAACA,KAAK,GAAGtzC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAAC0O,QAAQ,CAAC,IAAI,CAACE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC;SAClExR,EAAE,CAAC+lB,KAAK,CAACzkB,IAAI,CAAC,IAAI,CAACgyC,KAAK,EAAE,OAAO,EAAE,IAAI,CAACsX,YAAY,CAACtpD,IAAI,CAAC,IAAI,CAAC,CAAC;SAChEtB,EAAE,CAAC+lB,KAAK,CAACzkB,IAAI,CAAC,IAAI,CAACgyC,KAAK,EAAE,SAAS,EAAE,IAAI,CAACuX,cAAc,CAACvpD,IAAI,CAAC,IAAI,CAAC,CAAC;;OAGrE,OAAO,IAAI,CAACgyC,KAAK;MACjB;KAEDsX,YAAY,EAAE,UAAS3oD,KAAK,EAC5B;OACCA,KAAK,CAACwL,cAAc,EAAE;OAEtB,IAAIxL,KAAK,CAAC6oD,aAAa,IAAI7oD,KAAK,CAAC6oD,aAAa,CAACj/B,OAAO,EACtD;SACC,IAAIk/B,UAAU,GAAG9oD,KAAK,CAAC6oD,aAAa,CAACj/B,OAAO,CAAC,YAAY,CAAC;SAC1D,IAAIm/B,WAAW,GAAGhrD,EAAE,CAACkhC,IAAI,CAACC,MAAM,CAAC4pB,UAAU,CAAC;SAC5C,IAAIE,aAAa,GAAGD,WAAW,CAC7B3B,IAAI,EAAE,CACNphD,OAAO,CAAC,IAAIijD,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CACnCjjD,OAAO,CAAC,IAAIijD,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CACnCjjD,OAAO,CAAC,UAAU,EAAC,EAAE,CAAC;SACxBoY,QAAQ,CAAC8qC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAEF,aAAa,CAAC;;MAEzD;KAEDJ,cAAc,EAAE,UAAS5oD,KAAK,EAC9B;OACC,IAAIA,KAAK,CAACmpD,OAAO,KAAK,EAAE,EACxB;SACCnpD,KAAK,CAACwL,cAAc,EAAE;;MAEvB;;CAIH;CACA;CACA;KACE2lB,WAAW,EAAE,YACb;OACC,IAAI,IAAI,CAAC7wB,QAAQ,KAAK,IAAI,EAC1B;SACC,IAAI,CAACA,QAAQ,GAAGvC,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACS,aAAa,CAAC,IAAI,CAACmO,OAAO,EAAE,EAAE,wBAAwB,EAAE,IAAI,CAAC;;OAG5F,OAAO,IAAI,CAACjP,QAAQ;MACpB;;CAIH;CACA;CACA;KACEgnD,aAAa,EAAE,YACf;OACC,IAAI,IAAI,CAACz9B,UAAU,KAAK,IAAI,EAC5B;SACC,IAAI,CAACA,UAAU,GAAG9rB,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACC,UAAU,CACzC,IAAI,CAAC2O,OAAO,EAAE,EACd,IAAI,CAACpR,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,qCAAqC,CAAC,EAC/D,IAAI,CACJ;;OAGF,OAAO,IAAI,CAAC+oB,UAAU;MACtB;;CAIH;CACA;KACEk+B,UAAU,EAAE,YACZ;OACC,IAAI,CAACK,QAAQ,EAAE,CAACgB,eAAe,GAAG,IAAI;OACtC,IAAI,CAACj4B,WAAW,EAAE,CAACrqB,QAAQ,GAAG,IAAI;OAClC,IAAI,CAACuiD,WAAW,EAAE;MAClB;;CAIH;CACA;KACEvB,WAAW,EAAE,YACb;OACC,IAAI,CAACM,QAAQ,EAAE,CAACgB,eAAe,GAAG,KAAK;OACvC,IAAI,CAACj4B,WAAW,EAAE,CAACrqB,QAAQ,GAAG,KAAK;MACnC;;CAIH;CACA;CACA;KACE+gD,aAAa,EAAE,YACf;OACC,OAAO,IAAI,CAACO,QAAQ,EAAE,CAACkB,iBAAiB;MACxC;;CAIH;CACA;CACA;KACEp1B,UAAU,EAAE,YACZ;OACC,OAAO,IAAI,CAAC/C,WAAW,EAAE,CAACzwB,OAAO;MACjC;;CAIH;CACA;KACEyzB,MAAM,EAAE,YACR;OACC,IAAI,CAAChD,WAAW,EAAE,CAACzwB,OAAO,GAAG,IAAI;MACjC;;CAIH;CACA;KACE0zB,QAAQ,EAAE,YACV;OACC,IAAI,CAACjD,WAAW,EAAE,CAACzwB,OAAO,GAAG,KAAK;MAClC;;CAIH;CACA;KACE2oD,WAAW,EAAE,YACb;OACC,IAAI1pB,KAAK,GAAGvhB,QAAQ,CAACmrC,WAAW,EAAE;OAClC,IAAIr2B,SAAS,GAAGl0B,MAAM,CAACm0B,YAAY,EAAE;OACrC,IAAIq2B,iBAAiB,GAAG,IAAI,CAACpB,QAAQ,EAAE,CAAC9qC,SAAS,CAAC9X,MAAM;OACxD,IAAIikD,SAAS,GAAG,IAAI,CAACrB,QAAQ,EAAE,CAACsB,UAAU;OAC1C,IAAIC,YAAY,GAAGF,SAAS,CAACA,SAAS,CAACjkD,MAAM,GAAG,CAAC,CAAC;OAElDm6B,KAAK,CAACiqB,QAAQ,CAACD,YAAY,EAAEH,iBAAiB,CAAC;OAC/C7pB,KAAK,CAACkqB,MAAM,CAACF,YAAY,EAAEH,iBAAiB,CAAC;OAC7C7pB,KAAK,CAAC0O,QAAQ,CAAC,IAAI,CAAC;OAEpBnb,SAAS,CAACI,eAAe,EAAE;OAC3BJ,SAAS,CAAC42B,QAAQ,CAACnqB,KAAK,CAAC;OACzB5hC,EAAE,CAAC8B,SAAS,CAAC,IAAI,CAAC0P,OAAO,EAAE,EAAE,OAAO,CAAC;;IAEtC;CAEF,CAAC,GAAG;;;;ACnZJ,CAEA,CAAC,YAAW;;GAGXxR,EAAE,CAACC,SAAS,CAAC,wBAAwB,CAAC;;;CAGvC;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAACqnB,cAAc,CAACC,OAAO,GAAG,UAASpnB,MAAM,EAChD;KACC,IAAI,CAACA,MAAM,GAAG,IAAI;KAElB,IAAI,CAAC4rD,sBAAsB,GAAG,IAAI;KAClC,IAAI,CAACvrD,IAAI,CAACL,MAAM,CAAC;IACjB;GAEDJ,EAAE,CAACE,IAAI,CAACqnB,cAAc,CAACC,OAAO,CAAC1mB,SAAS,GAAG;KAC1CL,IAAI,CAACL,MAAM,EACX;OACC,IAAI,CAACA,MAAM,GAAGA,MAAM;OACpBJ,EAAE,CAACsB,IAAI,CAAC,IAAI,CAAClB,MAAM,CAAC4C,YAAY,EAAE,EAAE,OAAO,EAAEhD,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC+qD,iBAAiB,EAAE,IAAI,CAAC,CAAC;OACpFjsD,EAAE,CAACgB,cAAc,CAACC,MAAM,EAAE,mBAAmB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACgrD,cAAc,EAAE,IAAI,CAAC,CAAC;MACnF;KAEDvqD,OAAO,GACP;OACC3B,EAAE,CAACuiB,MAAM,CAAC,IAAI,CAACniB,MAAM,CAAC4C,YAAY,EAAE,EAAE,OAAO,EAAEhD,EAAE,CAACkB,KAAK,CAAC,IAAI,CAAC+qD,iBAAiB,EAAE,IAAI,CAAC,CAAC;OACtFjsD,EAAE,CAAC4B,iBAAiB,CAACX,MAAM,EAAE,mBAAmB,EAAEjB,EAAE,CAACkB,KAAK,CAAC,IAAI,CAACgrD,cAAc,EAAE,IAAI,CAAC,CAAC;OACtF,IAAI,CAACjoB,QAAQ,EAAE,CAAClkB,KAAK,EAAE;MACvB;KAEDksC,iBAAiB,CAAChqD,KAAK,EACvB;OACC,IAAIjC,EAAE,CAACmD,QAAQ,CAAClB,KAAK,CAACqL,MAAM,EAAE,IAAI,CAAClN,MAAM,CAAC0C,QAAQ,CAACC,GAAG,CAAC,qBAAqB,CAAC,CAAC,EAC9E;SACC,IAAI,CAACopD,sBAAsB,CAAClqD,KAAK,CAAC;;MAEnC;KAEDkqD,sBAAsB,GACtB;OACC,IAAI,CAACC,yBAAyB,EAAE,CAACn/C,IAAI,CAAE++C,sBAAsB,IAAK;SACjE,IAAI,CAACA,sBAAsB,GAAGA,sBAAsB;SACpD,IAAI,CAACA,sBAAsB,CAAC7iD,IAAI,EAAE;SAElCnJ,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,6BAA6B,EAAE,CAAC,IAAI,CAAC+qD,sBAAsB,CAAC,CAAC;QACtF,CAAC;MACF;KAEDI,yBAAyB,GACzB;OACC,IAAI,IAAI,CAACJ,sBAAsB,EAC/B;SACC,OAAOK,OAAO,CAACC,OAAO,CAAC,IAAI,CAACN,sBAAsB,CAAC;;OAGpD,OAAO,IAAIK,OAAO,CAAEC,OAAO,IAAK;SAC/B,MAAMN,sBAAsB,GAAG,IAAI,CAACO,4BAA4B,EAAE;SAElED,OAAO,CAACN,sBAAsB,CAAC;QAC/B,CAAC;MACF;KAEDO,4BAA4B,GAC5B;OACC,IAAIP,sBAAsB,GAAG,IAAI;OACjC,MAAM;SAAE5rD;QAAQ,GAAG,IAAI;OAEvB,MAAM4jD,MAAM,GAAG;SACd1+B,IAAI,EAAEllB,MAAM;SACZA,MAAM;SACNosD,oBAAoB,EAAE,IAAI,CAACC,kBAAkB,EAAE;SAC/C3mD,KAAK,EAAE,IAAI,CAAC4mD,aAAa,EAAE;SAC3BnmD,WAAW,EAAEnG,MAAM,CAACsR,QAAQ,CAAC,mCAAmC,CAAC;SACjEizC,eAAe,EAAEvkD,MAAM,CAACsR,QAAQ,CAAC,yCAAyC,CAAC;SAC3EkzC,qBAAqB,EAAExkD,MAAM,CAACsR,QAAQ,CAAC,+CAA+C,CAAC;SACvFmzC,wBAAwB,EAAEzkD,MAAM,CAACsR,QAAQ,CAAC,6CAA6C;QACvF;OAED,IAAI,IAAI,CAACi7C,eAAe,EAAE,EAC1B;SACCX,sBAAsB,GAAG,IAAIhsD,EAAE,CAACE,IAAI,CAACqnB,cAAc,CAACw8B,YAAY,CAACC,MAAM,CAAC;QACxE,MAED;SACCgI,sBAAsB,GAAG,IAAIhsD,EAAE,CAACE,IAAI,CAACqnB,cAAc,CAACqlC,KAAK,CAAC5I,MAAM,CAAC;;OAGlEgI,sBAAsB,CAACtH,WAAW,EAAE;OAEpC1kD,EAAE,CAAC8U,aAAa,CAAC7T,MAAM,EAAE,6BAA6B,EAAE,CAAC+qD,sBAAsB,CAAC,CAAC;OAEjF,OAAOA,sBAAsB;MAC7B;KAEDW,eAAe,GACf;OAAA;OACC,OAAOrlD,OAAO,CAAC,IAAI,CAAClH,MAAM,CAACsR,QAAQ,CAAC,sCAAsC,CAAC,CAAC,IACxEuD,cAAI,CAACgF,UAAU,WAACja,EAAE,CAAC6sD,EAAE,qBAAL,OAAO9I,YAAY,CAAC;MAExC;KAED0I,kBAAkB,GAClB;OACC,OAAOnlD,OAAO,CAAC,IAAI,CAAClH,MAAM,CAACsR,QAAQ,CAAC,WAAW,CAAC,CAAC;MACjD;KAEDw6C,cAAc,GACd;OACC,IAAI,CAACvD,SAAS,EAAE;OAChB,IAAI,CAACr4C,KAAK,EAAE;MACZ;KAEDq4C,SAAS,GACT;OACC,IAAI,CAAC1kB,QAAQ,EAAE,CAAC0kB,SAAS,EAAE;MAC3B;KAEDr4C,KAAK,GACL;OACC,IAAI,CAAC2zB,QAAQ,EAAE,CAAC3zB,KAAK,EAAE;MACvB;KAEDs4C,kBAAkB,GAClB;OACC,OAAO,IAAI,CAAC3kB,QAAQ,EAAE,CAAC2kB,kBAAkB,EAAE;MAC3C;KAED3kB,QAAQ,GACR;OACC,IAAI,IAAI,CAAC+nB,sBAAsB,KAAK,IAAI,EACxC;SACC,IAAI,CAACA,sBAAsB,GAAG,IAAI,CAACO,4BAA4B,EAAE;;OAGlE,OAAO,IAAI,CAACP,sBAAsB;MAClC;KAEDU,aAAa,GACb;OACC,MAAMI,mBAAmB,GAAG,IAAI,CAAC1sD,MAAM,CAACsR,QAAQ,CAAC,uBAAuB,CAAC;OACzE,MAAMq7C,aAAa,GAAG,IAAI,CAAC3sD,MAAM,CAACsR,QAAQ,CAAC,gBAAgB,CAAC;OAC5D,MAAMs7C,MAAM,GAAGhsB,aAAG,CAACC,MAAM,oBAAC,aAAW,EAAC;OAEtC,IAAIhsB,cAAI,CAACm0B,cAAc,CAAC0jB,mBAAmB,CAAC,EAC5C;SACCE,MAAM,CAAChvC,SAAS,GAAI,SAAQ+uC,aAAc,WAAUD,mBAAoB,gBAAe;SAEvF,OAAOE,MAAM,CAACjrD,UAAU,CAACwd,SAAS;;OAGnC,MAAM0tC,UAAU,GAAGjtD,EAAE,CAACmb,IAAI,CAACsoB,WAAW,CAACv/B,IAAI,CAACuD,MAAM;OAElD,IAAIwlD,UAAU,KAAK,CAAC,EACpB;SACC,MAAMC,oBAAoB,GAAIC,MAAc,IAAa;WACxD,MAAMjqD,IAAI,GAAGmd,QAAQ,CAAC+sC,cAAc,CAACD,MAAM,CAAC;WAE5C,OACCl4C,cAAI,CAACvS,SAAS,CAACQ,IAAI,CAAC,IAAI+R,cAAI,CAACm0B,cAAc,CAAClmC,IAAI,CAACqc,SAAS,CAAC,GACxD2hB,cAAI,CAACC,MAAM,CAACj+B,IAAI,CAACqc,SAAS,CAAC,GAC3B,EAAE;UAEN;SAED,MAAM8tC,SAAS,GAAGH,oBAAoB,CAAC,WAAW,CAAC;SACnD,MAAMI,mBAAmB,GAAGJ,oBAAoB,CAAC,uBAAuB,CAAC;SAEzE,MAAMK,SAAS,GAAI,GAAEF,SAAU,IAAGC,mBAAoB,EAAC,CAACjE,IAAI,EAAE;SAE9D2D,MAAM,CAAChvC,SAAS,GAAI,SAAQ+uC,aAAc,WAAUQ,SAAU,gBAAe;SAE7E,OAAOP,MAAM,CAACjrD,UAAU,CAACwd,SAAS;;OAGnC,OAAOwtC,aAAa;MACpB;KAEDS,gBAAgB,GAChB;OACC,MAAMplD,MAAM,GAAG,EAAE;OACjB,MAAMmK,KAAK,GAAG,IAAI,CAACnS,MAAM,CAACuN,OAAO,EAAE,CAAC4D,iBAAiB,EAAE,CAACw5B,QAAQ,EAAE;OAElE,EAAE,CAACpa,KAAK,CAACpc,IAAI,CAAChC,KAAK,CAAC,CAAC9J,OAAO,CAAEmI,MAAM,IAAK;SACxC,IAAI,MAAM,IAAIA,MAAM,CAAC+L,OAAO,EAC5B;WACCvU,MAAM,CAACG,IAAI,CAACqI,MAAM,CAAC+L,OAAO,CAAC3X,IAAI,CAAC;;QAEjC,CAAC;OAEF,OAAOoD,MAAM;MACb;KAED6T,QAAQ,GACR;OACC,OAAO,IAAI,CAACgoB,QAAQ,EAAE,CAAChoB,QAAQ,EAAE;MACjC;KAEDwrC,WAAW,CAAC9yC,OAAiB,EAAErJ,QAAkB,EACjD;OACC,IAAI,CAAC24B,QAAQ,EAAE,CAACglB,kBAAkB,CAACt0C,OAAO,EAAErJ,QAAQ,CAAC;MACrD;KAED8qB,MAAM,CAACpxB,IAAY,EAAEa,KAAc,GAAG,IAAI,EAC1C;OACC,IAAI,CAACo+B,QAAQ,EAAE,CAAC7N,MAAM,CAACpxB,IAAI,EAAEa,KAAK,CAAC;;IAEpC;CACF,CAAC,GAAG;;;;;ACnNJ,CAMA,MAAM5F,WAAS,GAAGgP,oBAAU,CAAChP,SAAS,CAAC,wBAAwB,CAAC;CAEhE,MAAM2sD,KAAK,CACX;GAiBC1jB,WAAW,CAAClhC,OAAe,EAC3B;KAAA,KAjBAA,OAAO,GAAW,EAAE;KAAA,KAIpBoT,KAAK,GAAQ,IAAI;KAAA,KACjB+oC,UAAU,GAAoB,IAAI;KAAA,KAClCrgB,KAAK,GAAc,IAAI;KAAA,KACvB2pB,yBAAyB,GAAiB,IAAI;KAAA,KAC9CC,cAAc,GAAoB,IAAI;KAAA,KACtCC,UAAU,GAA2B,IAAI;KAAA,KACzCr1B,WAAW,GAAgB,IAAI;KAAA,KAC/Bs1B,WAAW,GAAgB,IAAI;KAAA,KAC/B/rD,YAAY,GAAgB,IAAI;KAAA,KAChCgsD,eAAe,GAAgB,IAAI;KAAA,KACnCC,iBAAiB,GAAgB,IAAI;KAIpC,IAAI,CAAC9lD,OAAO,GAAGA,OAAO;KAEtB,IAAI,CAACsd,IAAI,GAAGtd,OAAO,CAACsd,IAAI;KACxB,IAAI,CAACllB,MAAM,GAAG4H,OAAO,CAAC5H,MAAM;;GAG7B6jC,QAAQ,GACR;KACC,IAAI,CAAC,IAAI,CAACH,KAAK,EACf;OACC,IAAI,CAAC4gB,WAAW,EAAE;;KAGnB,OAAO,IAAI,CAAC5gB,KAAK;;GAGlB4gB,WAAW,GACX;KACC,IAAI,IAAI,CAAC5gB,KAAK,EACd;OACC;;KAGD,MAAMiqB,oBAAoB,GAAG,EAAE;KAC/B,MAAMC,qBAAqB,GAAG,EAAE;KAChC,MAAMC,UAAU,GAAG5tC,QAAQ,CAACE,IAAI,CAACsE,WAAW,GAAG,IAAI,GAChD,IAAI,GACJxE,QAAQ,CAACE,IAAI,CAACsE,WAAW,GAAGkpC,oBAAoB,GAAGC,qBAAqB;KAG3E,MAAM;OAAEloD,KAAK,EAAE+yB;MAAU,GAAG,IAAI,CAAC7wB,OAAO;KAExC,IAAI,CAAC87B,KAAK,GAAG,IAAIoqB,gBAAS,CACzB,IAAI,CAAC1pB,UAAU,EAAE,EACjB,IAAI,EACJ;OACC3L,QAAQ;OACRza,QAAQ,EAAE,KAAK;OACf4a,OAAO,EAAE,GAAG;OACZlmB,KAAK,EAAEm7C,UAAU;OACjBh1B,SAAS,EAAE,IAAI;OACfC,UAAU,EAAE,IAAI;OAChBwL,iBAAiB,EAAE,IAAI;OACvB9L,OAAO,EAAE,IAAI,CAACu1B,gBAAgB,EAAE;OAChCxvC,MAAM,EAAE;SACPC,YAAY,EAAE,IAAI,CAACA,YAAY,CAACtd,IAAI,CAAC,IAAI;;MAE1C,CACD;KAED,IAAI,CAAC2a,QAAQ,EAAE,CAACxT,OAAO,CAAEvG,IAAI,IAAK;OACjC6jB,eAAK,CAACzkB,IAAI,CAACY,IAAI,CAACsP,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC48C,WAAW,CAAC9sD,IAAI,CAAC,IAAI,CAAC,CAAC;OAChEykB,eAAK,CAACzkB,IAAI,CAACY,IAAI,CAACsP,OAAO,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC68C,cAAc,CAAC/sD,IAAI,CAAC,IAAI,EAAEY,IAAI,CAACsP,OAAO,EAAE,CAAC,CAAC;MAC1F,CAAC;KAEFuU,eAAK,CAACzkB,IAAI,CAAC,IAAI,CAACgtD,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,CAACC,kBAAkB,CAACjtD,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9EykB,eAAK,CAACzkB,IAAI,CAAC,IAAI,CAAC2B,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,CAACurD,kBAAkB,CAACltD,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9EykB,eAAK,CAACzkB,IAAI,CAAC,IAAI,CAACmtD,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC3qB,KAAK,CAAC/jB,KAAK,CAACze,IAAI,CAAC,IAAI,CAACwiC,KAAK,CAAC,CAAC;KAC9E/d,eAAK,CAACzkB,IAAI,CAAC,IAAI,CAACotD,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,CAACC,WAAW,CAACrtD,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3EykB,eAAK,CAACzkB,IAAI,CAAC,IAAI,CAACstD,oBAAoB,EAAE,EAAE,OAAO,EAAE,IAAI,CAACC,aAAa,CAACvtD,IAAI,CAAC,IAAI,CAAC,CAAC;KAE/E,IACC2T,cAAI,CAACuzC,YAAY,CAAC,IAAI,CAACljC,IAAI,CAACxL,QAAQ,CAACg1C,yBAAyB,CAAC,IAC5DplB,MAAM,CAAC8B,IAAI,CAAC,IAAI,CAAClmB,IAAI,CAACxL,QAAQ,CAACg1C,yBAAyB,CAAC,CAACrnD,MAAM,GAAG,CAAC,EAExE;OACC,IAAI,CAACsnD,qBAAqB,EAAE;;KAG7B,IAAI,IAAI,CAACzpC,IAAI,CAACxL,QAAQ,CAACwqC,oBAAoB,EAC3C;OACC,IAAI,CAAC0K,gCAAgC,EAAE;;;GAIzC7lD,IAAI,GACJ;KACC,IAAI,CAAC26B,KAAK,CAAC36B,IAAI,EAAE;;GAGlB4W,KAAK,GACL;KACC,IAAI,CAACnB,YAAY,EAAE;;GAGpBA,YAAY,GACZ;KACC,IAAI,CAACqwC,aAAa,EAAE;KAEpB,IAAI,CAACC,kBAAkB,EAAE;KACzB,IAAI,CAACC,0BAA0B,EAAE;KACjC,IAAI,CAACC,wBAAwB,EAAE;;GAGhCH,aAAa,GACb;KACCjpC,6BAAY,CAAC6J,IAAI,CAAC5uB,MAAM,EAAE,8BAA8B,EAAE,CAAC,IAAI,EAAE,IAAI,CAACb,MAAM,CAAC,CAAC;;GAG/E8uD,kBAAkB,GAClB;KACC,IAAI,CAACjzC,QAAQ,EAAE,CAACxT,OAAO,CAAEC,OAAO,IAAKA,OAAO,CAACyhD,YAAY,EAAE,CAAC;;GAG7DgF,0BAA0B,GAC1B;KACC,IAAI,CAAClzC,QAAQ,EAAE,CAACxT,OAAO,CAAEmI,MAAM,IAAKA,MAAM,CAACm5C,WAAW,EAAE,CAAC;;GAG1DvlB,UAAU,GACV;KACC,OAAQ,GAAE,IAAI,CAAClf,IAAI,CAAC5L,cAAc,EAAG,uBAAsB;;GAG5Dy0C,gBAAgB,GAChB;KACC,MAAM1N,mBAAmB,GAAG,IAAI,CAACn7B,IAAI,CAACxiB,QAAQ,CAACC,GAAG,CAAC,qBAAqB,CAAC;KACzE,MAAMssD,aAAa,GAAG,IAAI,CAAC/pC,IAAI,CAACtiB,YAAY,EAAE,CAACyW,aAAa,CAAE,IAAGgnC,mBAAoB,EAAC,CAAC;KAEvF,IAAI,CAAC,IAAI,CAACz4C,OAAO,CAACwkD,oBAAoB,EACtC;OACC,OAAO6C,aAAa;;KAGrB,MAAMC,WAAW,GAAGD,aAAa,CAAC51C,aAAa,CAAC,iCAAiC,CAAC;KAClF61C,WAAW,CAACtxC,SAAS,GAAG,EAAE;KAE1B,MAAM+Z,MAAM,GAAG,IAAIC,kBAAM,CAAC;OACzB1qB,MAAM,EAAEgiD;MACR,CAAC;KAEF,KAAKv3B,MAAM,CAAC5uB,IAAI,EAAE;KAElB,IAAI,CACFomD,YAAY,EAAE,CACdtiD,IAAI,CAAEqJ,QAAQ,IAAK;OACnBA,QAAQ,CAAC7N,OAAO,CAAEyqC,aAAa,IAAK;SACnC,IAAI,CAACsc,oBAAoB,CAACtc,aAAa,CAAC;SACxChsC,aAAG,CAAC6zB,MAAM,CAAC,IAAI,CAAC00B,mBAAmB,CAACvc,aAAa,CAAC,EAAEoc,WAAW,CAAC;QAChE,CAAC;OAEF,IAAI,CAACI,oBAAoB,EAAE;OAE3B,IAAI,CAACp/C,KAAK,EAAE;OAEZ,IAAI,CAAC2L,QAAQ,EAAE,CAACxT,OAAO,CAAEvG,IAAI,IAAK;SACjC6jB,eAAK,CAACzkB,IAAI,CAACY,IAAI,CAACsP,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC48C,WAAW,CAAC;QACrD,CAAC;OAEF,MAAMuB,WAAW,GAAG3uB,aAAG,CAACC,MAAM,oBAAC;;KAE/B,EAAC;OAED/5B,aAAG,CAAC6zB,MAAM,CAACs0B,aAAa,CAAC51C,aAAa,CAAC,uBAAuB,CAAC,EAAEk2C,WAAW,CAAC;OAE7EnrC,qBAAqB,CAAC,MAAM;SAC3Btd,aAAG,CAACwM,KAAK,CACRi8C,WAAW,EACX;WACC78C,KAAK,EAAG,GAAE,IAAI,CAAC88C,iBAAiB,EAAE,CAAC9qC,WAAY;UAC/C,CACD;SAED5d,aAAG,CAAC6zB,MAAM,CAAC40B,WAAW,EAAE,IAAI,CAACC,iBAAiB,EAAE,CAAC;QACjD,CAAC;MACF,CAAC,CACDC,KAAK,CAAE9iD,GAAG,IAAK;OACfioB,OAAO,CAACrd,KAAK,CAAC5K,GAAG,CAAC;MAClB,CAAC;KAGH,OAAOsiD,aAAa;;GAGrBE,YAAY,GACZ;;KAEC,MAAMO,OAAO,GAAG,IAAI9vD,EAAE,CAACqsD,OAAO,EAAE;KAEhC,MAAM0D,cAAc,GAAG,IAAI,CAACzqC,IAAI,CAAC5T,QAAQ,CAAC,WAAW,CAAC;KACtD,MAAMoG,MAAM,GAAG,IAAI,CAACwN,IAAI,CAACrX,KAAK,EAAE;KAEhC,IAAIgH,cAAI,CAACzL,aAAa,CAACumD,cAAc,CAAC,EACtC;OACC,MAAM;SAAEC,UAAU;SAAEC,QAAQ,EAAEx4C;QAAK,GAAGs4C,cAAc;OAEpD,IAAI96C,cAAI,CAACi7C,KAAK,CAACF,UAAU,CAAC,EAC1B;SACC/5C,IAAI,CAAC;WACJwB,GAAG;WACHC,MAAM,EAAE,KAAK;WACbwB,QAAQ,EAAE,MAAM;WAChBM,SAAS,EAAEs2C,OAAO,CAACK,OAAO,CAAC7uD,IAAI,CAACwuD,OAAO;UACvC,CAAC;QACF,MAED;SACCM,cAAI,CAACC,SAAS,CACZ,GAAEL,UAAW,iBAAgB,EAC9B;WACCt4C,MAAM,EAAE,KAAK;WACbxT,IAAI,EAAE;aACL4T;;UAED,CACD,CAAC7K,IAAI,CAAC6iD,OAAO,CAACK,OAAO,CAAC7uD,IAAI,CAACwuD,OAAO,CAAC,CAAC;;;KAIvC,OAAOA,OAAO;;GAGfN,oBAAoB,CAACxnD,OAAO,EAC5B;KACC,IAAI,CAACiN,cAAI,CAACzL,aAAa,CAACxB,OAAO,CAAC,EAChC;OACC;;KAGD,MAAMk+C,WAAW,GAAG,IAAI,CAAC5gC,IAAI,CAAC1Q,cAAc,EAAE,CAACuxC,iBAAiB,EAAE,CAACC,YAAY;KAC/E,IAAInxC,cAAI,CAACzL,aAAa,CAAC08C,WAAW,CAAC,IAAIl+C,OAAO,CAAChG,EAAE,IAAIkkD,WAAW,EAChE;;OAECl+C,OAAO,CAAChD,IAAI,GAAGkhD,WAAW,CAACl+C,OAAO,CAAChG,EAAE,CAAC;;KAGvC,IAAI,IAAI,CAACsjB,IAAI,CAAC4K,yBAAyB,CAACloB,OAAO,CAAChG,EAAE,CAAC,EACnD;;OAECgG,OAAO,CAAC+V,QAAQ,GAAG,IAAI;;;GAIzB0xC,mBAAmB,CAACznD,OAAO,EAC3B;KACC,MAAMsoD,UAAU,GAAI,GAAEtoD,OAAO,CAAChG,EAAG,WAAU;KAC3C,MAAMuuD,YAAY,GAAGvoD,OAAO,CAAC+V,QAAQ,GAAG,UAAU,GAAG,EAAE;KAEvD,OAAOijB,aAAG,CAACC,MAAM,sBAAC;oBACF,CAAa;;WAEtB,CAAa;;0DAEkC,CAAe;;;YAG7D,CAAa;;;OAGlB,CAAe;;;;GAIlB,GAdkBj5B,OAAO,CAAChG,EAAE,EAEnBsuD,UAAU,EAEqCC,YAAY,EAG1DD,UAAU,EAGftoD,OAAO,CAAChD,IAAI;;GAOlB0qD,oBAAoB,CAAC33B,MAAc,EACnC;KACC,KAAKA,MAAM,CAAC1uB,IAAI,EAAE,CAAC4D,IAAI,CAAC,MAAM8qB,MAAM,CAACp2B,OAAO,EAAE,CAAC;;GAGhDysD,WAAW,GACX;KACC,IAAI,CAACgB,wBAAwB,EAAE;;GAGhCf,cAAc,CAACnrD,IAAiB,EAChC;KACC,MAAMkgC,OAAO,GACZl8B,aAAG,CAAC/D,QAAQ,CAACD,IAAI,EAAE,IAAI,CAACoiB,IAAI,CAACxiB,QAAQ,CAACC,GAAG,CAAC,4CAA4C,CAAC,CAAC,GACrF,MAAM,GACN,cACH;KAEDmE,aAAG,CAACwM,KAAK,CAACxQ,IAAI,EAAE;OAAEkgC;MAAS,CAAC;;GAG7BgsB,wBAAwB,GACxB;KACC,IAAI,IAAI,CAACxG,kBAAkB,EAAE,CAACnhD,MAAM,GAAG,CAAC,EACxC;OACC,IAAI,CAAC+oD,aAAa,EAAE;OAEpB;;KAGD,IAAI,CAACC,cAAc,EAAE;;GAGtB7H,kBAAkB,GAClB;KACC,MAAMj0C,OAAO,GAAG,EAAE;KAElB,IAAI,CAACsH,QAAQ,EAAE,CAACxT,OAAO,CAAEmI,MAAM,IAAK;OACnC,IAAIA,MAAM,CAACulB,UAAU,EAAE,EACvB;SACCxhB,OAAO,CAACpM,IAAI,CAACqI,MAAM,CAAC3C,KAAK,EAAE,CAAC;;MAE7B,CAAC;KAEF,OAAO0G,OAAO;;GAGfsH,QAAQ,GACR;KACC,IAAI,IAAI,CAACb,KAAK,KAAK,IAAI,EACvB;OACC,MAAM;SAAEkK;QAAM,GAAG,IAAI;OACrB,MAAMlK,KAAK,GAAG,IAAI,CAAC2tC,aAAa,EAAE;OAClC,IAAI,CAAC3tC,KAAK,GAAG,CAAC,GAAGA,KAAK,CAAC,CAACpN,GAAG,CAAEtF,OAAO,IAAK;SACxC,OAAO,IAAI1I,EAAE,CAACE,IAAI,CAACqnB,cAAc,CAAC2hC,MAAM,CAAC5jC,IAAI,EAAE5c,OAAO,CAAC;QACvD,CAAC;;KAGH,OAAO,IAAI,CAAC0S,KAAK;;GAGlB2tC,aAAa,GACb;KACC,IAAI,CAAC,IAAI,CAAC5E,UAAU,EACpB;OACC,MAAMjlC,cAAc,GAAG,IAAI,CAACwxC,wBAAwB,EAAE;OACtD,MAAM31C,QAAQ,GAAG,IAAI,CAACuK,IAAI,CAACxiB,QAAQ,CAACC,GAAG,CAAC,2BAA2B,CAAC;OACpE,IAAI,CAACohD,UAAU,GAAGjlC,cAAc,CAACyxC,sBAAsB,CAAC51C,QAAQ,CAAC;;KAGlE,OAAO,IAAI,CAACopC,UAAU;;GAGvBqM,aAAa,GACb;KACC,MAAMl4B,WAAW,GAAG,IAAI,CAACr1B,cAAc,EAAE;KAEzC,IAAIq1B,WAAW,EACf;OACCpxB,aAAG,CAACG,WAAW,CAACixB,WAAW,EAAE,IAAI,CAAChT,IAAI,CAACxiB,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,CAAC;;;GAItEisD,gCAAgC,GAChC;KACC,MAAMppD,KAAK,GAAG,IAAI,CAACgrD,4BAA4B,EAAE;KAEjD7qC,eAAK,CAACzkB,IAAI,CAACsE,KAAK,EAAE,OAAO,EAAE,IAAI,CAACirD,0BAA0B,CAACvvD,IAAI,CAAC,IAAI,CAAC,CAAC;KACtEykB,eAAK,CAACzkB,IAAI,CAACsE,KAAK,CAACkrD,sBAAsB,EAAE,OAAO,EAAE,IAAI,CAACC,+BAA+B,CAACzvD,IAAI,CAAC,IAAI,CAAC,CAAC;;GAGnGsvD,4BAA4B,GAC5B;KACC,IAAI,CAAC,IAAI,CAACnD,yBAAyB,EACnC;OACC,MAAM1yC,QAAQ,GAAG,IAAI,CAACuK,IAAI,CAACxiB,QAAQ,CAACC,GAAG,CAAC,uCAAuC,CAAC;OAChF,IAAI,CAAC0qD,yBAAyB,GAAG,IAAI,CAACiD,wBAAwB,EAAE,CAACj3C,aAAa,CAAE,IAAGsB,QAAS,EAAC,CAAC;;KAG/F,OAAO,IAAI,CAAC0yC,yBAAyB;;GAGtCoD,0BAA0B,GAC1B;KACC,IAAI3pC,MAAM,GAAG,IAAI,CAACumC,yBAAyB,CAAC5nD,KAAK;KACjD,IAAIqhB,MAAM,CAACzf,MAAM,GAAG,CAAC,EACrB;OACCyf,MAAM,GAAGA,MAAM,CAACqd,WAAW,EAAE;;KAG9B,IAAI,CAACnpB,KAAK,CAAC3S,OAAO,CAAEvG,IAAI,IAAK;OAC5B,MAAM4D,KAAK,GAAG5D,IAAI,CAACknD,SAAS,CAAC7kB,WAAW,EAAE;OAC1C,MAAMrhC,IAAI,GAAGhB,IAAI,CAACsP,OAAO,EAAE;OAE3B,IAAI0V,MAAM,CAACzf,MAAM,GAAG,CAAC,IAAI,CAAC3B,KAAK,CAACwC,QAAQ,CAAC4e,MAAM,CAAC,EAChD;SACChgB,aAAG,CAACG,WAAW,CACdnE,IAAI,EACJ,IAAI,CAACoiB,IAAI,CAACxiB,QAAQ,CAACC,GAAG,CAAC,6CAA6C,CAAC,CACrE;SACDmE,aAAG,CAACE,QAAQ,CACXlE,IAAI,EACJ,IAAI,CAACoiB,IAAI,CAACxiB,QAAQ,CAACC,GAAG,CAAC,4CAA4C,CAAC,CACpE;QACD,MAED;SACCmE,aAAG,CAACG,WAAW,CACdnE,IAAI,EACJ,IAAI,CAACoiB,IAAI,CAACxiB,QAAQ,CAACC,GAAG,CAAC,4CAA4C,CAAC,CACpE;SACDmE,aAAG,CAACE,QAAQ,CACXlE,IAAI,EACJ,IAAI,CAACoiB,IAAI,CAACxiB,QAAQ,CAACC,GAAG,CAAC,6CAA6C,CAAC,CACrE;SAEDmE,aAAG,CAACwM,KAAK,CAACxQ,IAAI,EAAE;WAAEkgC,OAAO,EAAE;UAAgB,CAAC;;MAE7C,CAAC;;GAGH2tB,+BAA+B,GAC/B;KACC,IAAI,CAACtD,yBAAyB,CAAC5nD,KAAK,GAAG,EAAE;KACzC,IAAI,CAACgrD,0BAA0B,EAAE;;GAGlCvC,cAAc,GACd;KACC,IAAI,IAAI,CAACV,WAAW,KAAK,IAAI,EAC7B;OACC,IAAI,CAACA,WAAW,GAAGvtC,QAAQ,CAAC+sC,cAAc,CAAC,IAAI,CAAC4D,gBAAgB,EAAE,CAAC;;KAGpE,OAAO,IAAI,CAACpD,WAAW;;GAGxBoD,gBAAgB,GAChB;KACC,OAAQ,GAAE,IAAI,CAAC1rC,IAAI,CAAC5L,cAAc,EAAG,6BAA4B;;GAGlE60C,kBAAkB,GAClB;KACC,MAAMvK,MAAM,GAAG;OACdx5B,OAAO,EAAE,IAAI;OACbC,eAAe,EAAE,IAAI,CAACnF,IAAI,CAACxL,QAAQ,CAAC4uC;MACpC;KAED,IAAI,CAACpjC,IAAI,CAAC1Y,aAAa,CACtBo3C,MAAM,EACN,MAAM;OACL,IAAI,CAACiN,UAAU,CAAC,IAAI,CAAChuD,cAAc,EAAE,CAAC;OAEtC,IAAI,CAACqiB,IAAI,CAAC1Q,cAAc,EAAE,CAACtE,KAAK,CAC/B,IAAI,CAACi3C,QAAQ,EAAE,EACf,MAAM;SACL,IAAI,CAACjiC,IAAI,CAACyG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM;WACvC,IAAI,CAACmlC,cAAc,EAAE;WACrB,IAAI,CAACC,WAAW,CAAC,IAAI,CAACluD,cAAc,EAAE,CAAC;WACvC,IAAI,CAAC6gC,KAAK,CAAC/jB,KAAK,EAAE;UAClB,CAAC;QACF,CACD;MACD,CACD;;GAGFmxC,cAAc,GACd;KACC,IAAI,CAACj1C,QAAQ,EAAE,CAACxT,OAAO,CAAEmI,MAAM,IAAKA,MAAM,CAAC85C,OAAO,EAAE,CAAC;KAErD,IAAI,CAAC/B,SAAS,EAAE;KAChB,IAAI,CAACr4C,KAAK,EAAE;;GAGbq4C,SAAS,GACT;KACC,MAAMyI,aAAa,GAAG,IAAI,CAAC5D,gBAAgB,EAAE;KAC7C,MAAMG,UAAU,GAAG,EAAE;KAErB,IAAI,CAAC0D,aAAa,EAAE,CAAC5oD,OAAO,CAAEzD,IAAI,IAAK;OACtC2oD,UAAU,CAAC3oD,IAAI,CAAC,GAAGA,IAAI;MACvB,CAAC;KAEF,IAAIwyB,OAAO,GAAG,CAAC;KACfkS,MAAM,CAAC8B,IAAI,CAACmiB,UAAU,CAAC,CAACllD,OAAO,CAAEzD,IAAI,IAAK;OACzC,IAAI,IAAI,CAACssD,cAAc,CAACtsD,IAAI,CAAC,EAC7B;SACC2oD,UAAU,CAAC3oD,IAAI,CAAC,GAAGosD,aAAa,CAAC55B,OAAO,CAAC;SACzCA,OAAO,EAAE;;OAGV,MAAM9uB,OAAO,GAAG,IAAI,CAACynB,eAAe,CAACw9B,UAAU,CAAC3oD,IAAI,CAAC,CAAC;OACtD,IAAI0D,OAAO,EACX;SACCxB,aAAG,CAAC6zB,MAAM,CAACryB,OAAO,EAAEA,OAAO,CAACyE,UAAU,CAAC;;MAExC,CAAC;;GAGHqgD,gBAAgB,GAChB;KACC,OAAO,IAAI,CAACptD,MAAM,CAACknB,YAAY,CAACshC,kBAAkB,EAAE;;GAGrDz4B,eAAe,CAACnrB,IAAI,EACpB;KACC,OAAOhF,EAAE,CAACE,IAAI,CAAC0C,KAAK,CAACS,aAAa,CACjC,IAAI,CAACusD,iBAAiB,EAAE,EACvB,IAAG,IAAI,CAACtqC,IAAI,CAACxiB,QAAQ,CAACC,GAAG,CAAC,2BAA2B,CAAE,eAAciC,IAAK,IAAG,EAC9E,IAAI,CACJ;;GAGFssD,cAAc,CAAC1hC,UAAU,EACzB;KACC,OAAO,IAAI,CAACg5B,kBAAkB,EAAE,CAACtgD,QAAQ,CAACsnB,UAAU,CAAC;;GAGtDyhC,aAAa,GACb;KACC,IAAI,CAAC,IAAI,CAAC1D,UAAU,EACpB;OACC,IAAI,CAACA,UAAU,GAAG,IAAI,CAAC1xC,QAAQ,EAAE,CAACjO,GAAG,CAAE4C,MAAM,IAAKA,MAAM,CAAC3C,KAAK,EAAE,CAAC;;KAGlE,OAAO,IAAI,CAAC0/C,UAAU;;GAGvBr9C,KAAK,GACL;KACC,IAAI,CAAC6zC,UAAU,GAAG,IAAI;KACtB,IAAI,CAACwJ,UAAU,GAAG,IAAI;KACtB,IAAI,CAACvyC,KAAK,GAAG,IAAI;;GAGlBnY,cAAc,GACd;KACC,IAAI,IAAI,CAACq1B,WAAW,KAAK,IAAI,EAC7B;OACC,IAAI,CAACA,WAAW,GAAGjY,QAAQ,CAAC+sC,cAAc,CAAC,IAAI,CAACmE,gBAAgB,EAAE,CAAC;;KAGpE,OAAO,IAAI,CAACj5B,WAAW;;GAGxBi5B,gBAAgB,GAChB;KACC,OAAQ,GAAE,IAAI,CAACjsC,IAAI,CAAC5L,cAAc,EAAG,6BAA4B;;GAGlE80C,kBAAkB,GAClB;KACC,MAAMxK,MAAM,GAAG;OACdx5B,OAAO,EAAE,IAAI,CAAC+8B,QAAQ,EAAE;OACxB98B,eAAe,EAAE,IAAI,CAACnF,IAAI,CAAC5T,QAAQ,CAAC,kCAAkC;MACtE;KAED,IAAI,CAAC4T,IAAI,CAAC1Y,aAAa,CACtBo3C,MAAM,EACN,MAAM,IAAI,CAACwN,0BAA0B,EAAE,EACvC,MAAM,IAAI,CAACC,sBAAsB,EAAE,CACnC;;GAGFD,0BAA0B,GAC1B;KACC,IAAI,CAACP,UAAU,CAAC,IAAI,CAAChuD,cAAc,EAAE,CAAC;KACtC,IAAI,CAACwkD,WAAW,CACf,IAAI,CAACmB,kBAAkB,EAAE,EACzB,MAAM;OACL,IAAI,CAAC9kB,KAAK,CAAC/jB,KAAK,EAAE;OAClB,IAAI,CAACoxC,WAAW,CAAC,IAAI,CAACluD,cAAc,EAAE,CAAC;OACvC,IAAI,CAACwuD,sBAAsB,EAAE;MAC7B,CACD;KAED,IAAI,CAACxC,aAAa,EAAE;;GAGrBgC,UAAU,CAACS,UAAU,EACrB;KACCxqD,aAAG,CAACE,QAAQ,CAACsqD,UAAU,EAAE,aAAa,CAAC;KACvCxqD,aAAG,CAACG,WAAW,CAACqqD,UAAU,EAAE,qBAAqB,CAAC;;GAGnDP,WAAW,CAACO,UAAU,EACtB;KACCxqD,aAAG,CAACG,WAAW,CAACqqD,UAAU,EAAE,aAAa,CAAC;KAC1CxqD,aAAG,CAACE,QAAQ,CAACsqD,UAAU,EAAE,qBAAqB,CAAC;;GAGhDjK,WAAW,CAAC9yC,OAAO,EAAErJ,QAAQ,EAC7B;KACC,MAAMtD,OAAO,GAAG,IAAI,CAACsd,IAAI,CAAC1Q,cAAc,EAAE;KAC1C,MAAMozC,WAAW,GAAG,IAAI,CAACC,cAAc,EAAE;KACzC,MAAMhE,aAAa,GAAG,IAAI,CAAChzB,iBAAiB,EAAE;KAC9C,MAAMD,KAAK,GAAG,CACb;OACCznB,MAAM,EAAEvB,OAAO,CAACilB,SAAS,CAAC,kBAAkB,CAAC;OAC7CtY,OAAO,EAAEA,OAAO,CAAC4I,IAAI,CAAC,GAAG;MACzB,EACD;OACChU,MAAM,EAAEvB,OAAO,CAACilB,SAAS,CAAC,kBAAkB,CAAC;OAC7Cm5B,YAAY,EAAE4B;MACd,EACD;OACCz+C,MAAM,EAAEvB,OAAO,CAACilB,SAAS,CAAC,0BAA0B,CAAC;OACrD8D,cAAc,EAAEkzB;MAChB,CACD;KAED,IAAI,IAAI,CAACsD,QAAQ,EAAE,EACnB;OACCv2B,KAAK,CAACzoB,IAAI,CAAC;SACVgB,MAAM,EAAEvB,OAAO,CAACilB,SAAS,CAAC,oBAAoB,CAAC;SAC/Ck7B,OAAO,EAAE,SAAS;SAClBC,oBAAoB,EAAE,GAAG;SACzBC,oBAAoB,EAAE;QACtB,CAAC;;KAGHrgD,OAAO,CAACgpB,KAAK,CAACA,KAAK,EAAE,MAAM,IAAI,CAAC1L,IAAI,CAACyG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAEzgB,QAAQ,CAAC,CAAC;KAEvE,IAAI,CAACqmD,kBAAkB,EAAE;;GAG1B1J,cAAc,GACd;KACC,MAAMK,KAAK,GAAG,EAAE;KAChB,IAAI,CAACrsC,QAAQ,EAAE,CAACxT,OAAO,CAAEmI,MAAM,IAAK;OACnC,IAAIA,MAAM,CAAC25C,QAAQ,EAAE,EACrB;SACCjC,KAAK,CAAC13C,MAAM,CAAC3C,KAAK,EAAE,CAAC,GAAG2C,MAAM,CAACs5C,QAAQ,EAAE;;MAE1C,CAAC;KAEF,OAAO5B,KAAK;;GAGbr3B,iBAAiB,GACjB;KACC,OAAO,IAAI,CAAChV,QAAQ,EAAE,CAACwU,MAAM,CAAC,CAACC,WAAW,EAAExuB,IAAI,KAAK;OACpD,IAAIA,IAAI,CAACynD,SAAS,EAAE,EACpB;SACCj5B,WAAW,CAACnoB,IAAI,CAACrG,IAAI,CAAC+L,KAAK,EAAE,CAAC;;OAG/B,OAAOyiB,WAAW;MAClB,EAAE,EAAE,CAAC;;GAGPihC,kBAAkB,GAClB;KACC,IAAI,CAAC11C,QAAQ,EAAE,CAACxT,OAAO,CAAEC,OAAO,IAAKA,OAAO,CAAC4gD,WAAW,EAAE,CAAC;;GAG5D/B,QAAQ,GACR;KACC,MAAMhlD,QAAQ,GAAG,IAAI,CAACC,iBAAiB,EAAE;KAEzC,OAAOD,QAAQ,IAAI+E,OAAO,CAAC/E,QAAQ,CAACI,OAAO,CAAC;;GAG7C8uD,sBAAsB,GACtB;KACC,MAAMlvD,QAAQ,GAAG,IAAI,CAACC,iBAAiB,EAAE;KACzC,IAAID,QAAQ,EACZ;OACCA,QAAQ,CAACI,OAAO,GAAG,IAAI;;;GAIzBH,iBAAiB,GACjB;KACC,OAAO,IAAI,CAACotD,iBAAiB,EAAE,CAACn2C,aAAa,CAAC,6CAA6C,CAAC;;GAG7Fm2C,iBAAiB,GACjB;KACC,OAAO,IAAI,CAAC3rB,QAAQ,EAAE,CAAC2rB,iBAAiB,EAAE;;GAG3Cc,wBAAwB,GACxB;KACC,OAAO,IAAI,CAACzsB,QAAQ,EAAE,CAAClO,mBAAmB,EAAE;;GAG7C04B,eAAe,GACf;KACC,IAAI,IAAI,CAAC5sD,YAAY,KAAK,IAAI,EAC9B;OACC,IAAI,CAACA,YAAY,GAAGwe,QAAQ,CAAC+sC,cAAc,CAAC,IAAI,CAACwE,iBAAiB,EAAE,CAAC;;KAGtE,OAAO,IAAI,CAAC/vD,YAAY;;GAGzB+vD,iBAAiB,GACjB;KACC,OAAQ,GAAE,IAAI,CAACtsC,IAAI,CAAC5L,cAAc,EAAG,8BAA6B;;GAGnEg1C,kBAAkB,GAClB;KACC,IAAI,CAAC,IAAI,CAACb,eAAe,EACzB;OACC,MAAM9yC,QAAQ,GAAG,IAAI,CAACuK,IAAI,CAACxiB,QAAQ,CAACC,GAAG,CAAC,8BAA8B,CAAC;OACvE,IAAI,CAAC8qD,eAAe,GAAG,IAAI,CAAC6C,wBAAwB,EAAE,CAACj3C,aAAa,CAAE,IAAGsB,QAAS,EAAC,CAAC;;KAGrF,OAAO,IAAI,CAAC8yC,eAAe;;GAG5Bc,WAAW,GACX;KACC,IAAI,CAAC/jC,SAAS,EAAE;KAChB,IAAI,CAAC4lC,aAAa,EAAE;;GAGrB5lC,SAAS,GACT;KACC,IAAI,CAAC3O,QAAQ,EAAE,CAACxT,OAAO,CAAEmI,MAAM,IAAKA,MAAM,CAACwlB,MAAM,EAAE,CAAC;;GAGrDw4B,oBAAoB,GACpB;KACC,IAAI,CAAC,IAAI,CAACd,iBAAiB,EAC3B;OACC,MAAM/yC,QAAQ,GAAG,IAAI,CAACuK,IAAI,CAACxiB,QAAQ,CAACC,GAAG,CAAC,gCAAgC,CAAC;OACzE,IAAI,CAAC+qD,iBAAiB,GAAG,IAAI,CAAC4C,wBAAwB,EAAE,CAACj3C,aAAa,CAAE,IAAGsB,QAAS,EAAC,CAAC;;KAGvF,OAAO,IAAI,CAAC+yC,iBAAiB;;GAG9Be,aAAa,GACb;KACC,IAAI,CAAC3jC,WAAW,EAAE;KAClB,IAAI,CAACulC,cAAc,EAAE;;GAGtBA,cAAc,GACd;KACC,MAAMn4B,WAAW,GAAG,IAAI,CAACr1B,cAAc,EAAE;KAEzC,IAAIq1B,WAAW,EACf;OACCpxB,aAAG,CAACE,QAAQ,CAACkxB,WAAW,EAAE,IAAI,CAAChT,IAAI,CAACxiB,QAAQ,CAACC,GAAG,CAAC,cAAc,CAAC,CAAC;;;GAInEmoB,WAAW,GACX;KACC,IAAI,CAACjP,QAAQ,EAAE,CAACxT,OAAO,CAAEmI,MAAM,IAAKA,MAAM,CAACylB,QAAQ,EAAE,CAAC;;GAGvD04B,qBAAqB,GACrB;KACC,MAAMrB,cAAc,GAAG,IAAI,CAACmE,iBAAiB,EAAE;KAC/C,KAAK,MAAM3vD,IAAI,IAAIwrD,cAAc,EACjC;OACC3nC,eAAK,CAACzkB,IAAI,CAACY,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC4vD,oBAAoB,CAACxwD,IAAI,CAAC,IAAI,EAAEY,IAAI,CAAC,CAAC;;;GAIvE2vD,iBAAiB,GACjB;KACC,IAAI,CAAC,IAAI,CAACnE,cAAc,EACxB;OAAA;OACC,MAAM3yC,QAAQ,GAAG,IAAI,CAACuK,IAAI,CAACxiB,QAAQ,CAACC,GAAG,CAAC,0CAA0C,CAAC;OACnF,MAAMmjB,OAAO,GAAG,IAAI,CAACwqC,wBAAwB,EAAE,CAACj3C,aAAa,CAAE,IAAGsB,QAAS,EAAC,CAAC;OAE7E,IAAI,CAAC2yC,cAAc,wBAAIxnC,OAAO,CAAC5gB,QAAQ,gCAAI,IAAIysD,cAAc,EAAG;;KAGjE,OAAO,IAAI,CAACrE,cAAc;;GAG3BoE,oBAAoB,CAAC5vD,IAAiB,EACtC;KAAA;KACC,MAAM0Z,WAAW,GAAG,IAAI,CAAC0J,IAAI,CAACxiB,QAAQ,CAACC,GAAG,CAAC,4CAA4C,CAAC;KACxF,MAAMivD,SAAS,oBAAG9vD,IAAI,CAACya,OAAO,qBAAZ,cAAcs1C,yBAAyB;KACzD,MAAMnM,OAAO,GAAGzlC,QAAQ,CAAC5G,aAAa,CAAE,iCAAgCu4C,SAAU,IAAG,CAAC;KAEtF,IAAI9qD,aAAG,CAAC/D,QAAQ,CAACjB,IAAI,CAACH,UAAU,EAAE6Z,WAAW,CAAC,EAC9C;OACC1U,aAAG,CAACG,WAAW,CAACnF,IAAI,CAACH,UAAU,EAAE6Z,WAAW,CAAC;OAC7C1U,aAAG,CAACmC,IAAI,CAACy8C,OAAO,CAAC;MACjB,MAED;OACC5+C,aAAG,CAACE,QAAQ,CAAClF,IAAI,CAACH,UAAU,EAAE6Z,WAAW,CAAC;OAC1C1U,aAAG,CAACiC,IAAI,CAAC28C,OAAO,CAAC;;;GAInB1vB,MAAM,CAACp0B,EAAU,EAAE6D,KAAc,GAAG,IAAI,EACxC;KACC,MAAM+K,MAAM,GAAG,IAAI,CAACqL,QAAQ,EAAE,CAACa,IAAI,CAAE5a,IAAI,IAAKA,IAAI,CAAC+L,KAAK,EAAE,KAAKjM,EAAE,CAAC;KAElE,IAAI6D,KAAK,EACT;OACC+K,MAAM,oBAANA,MAAM,CAAEwlB,MAAM,EAAE;MAChB,MAED;OACCxlB,MAAM,oBAANA,MAAM,CAAEylB,QAAQ,EAAE;;;GAIpB4yB,kBAAkB,CAACt0C,OAAiB,EAAErJ,QAAkB,EACxD;KACC,IAAI,CAACm8C,WAAW,CAAC9yC,OAAO,EAAErJ,QAAQ,CAAC;;CAErC;AAEArL,YAAS,CAAC2sD,KAAK,GAAGA,KAAK;;CCtzBvB,CAAC,YAAW;;GAGX5sD,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;;;CAGxB;CACA;CACA;CACA;CACA;CACA;CACA;GACCD,EAAE,CAACE,IAAI,CAACmnB,WAAW,GAAG,UAASjnB,MAAM,EAAEolB,WAAW,EAAEC,kBAAkB,EAAEhO,GAAG,EAC3E;KACC,IAAI,CAACzP,OAAO,GAAG,IAAI;KACnB,IAAI,CAAC3H,OAAO,GAAG,IAAI;KACnB,IAAI,CAACD,MAAM,GAAG,IAAI;KAClB,IAAI,CAACqX,GAAG,GAAG,IAAI;KACf,IAAI,CAAChX,IAAI,CAACL,MAAM,EAAEolB,WAAW,EAAEC,kBAAkB,EAAEhO,GAAG,CAAC;IACvD;GAEDzX,EAAE,CAACE,IAAI,CAACmnB,WAAW,CAACvmB,SAAS,GAAG;KAC/BL,IAAI,CAACL,MAAM,EAAEolB,WAAW,EAAEC,kBAAkB,EAAEhO,GAAG,EACjD;OACC,IAAI,CAACA,GAAG,GAAGA,GAAG;OACd,IAAI,CAACrX,MAAM,GAAGA,MAAM;OAEpB,IACA;SACC,IAAI,CAAC4H,OAAO,GAAGjH,IAAI,CAACykB,WAAW,CAAC;QAChC,CACD,MACA;SACCwP,OAAO,CAACC,IAAI,CAAC,iEAAiE,CAAC;;OAGhF,IACA;SACC,IAAI,CAAC50B,OAAO,GAAGU,IAAI,CAAC0kB,kBAAkB,CAAC;QACvC,CACD,MACA;SACCuP,OAAO,CAACC,IAAI,CAAC,yEAAyE,CAAC;;MAExF;KAEDi9B,kBAAkB,GAClB;OACC,MAAMlqD,OAAO,GAAG,IAAI,CAACs9C,UAAU,EAAE;OAEjC,OAAO,cAAc,IAAIt9C,OAAO,GAAGA,OAAO,CAACmqD,YAAY,GAAG,IAAI;MAC9D;KAEDC,YAAY,GACZ;OACC,MAAMpqD,OAAO,GAAG,IAAI,CAACs9C,UAAU,EAAE;OAEjC,OAAO,OAAO,IAAIt9C,OAAO,GAAGA,OAAO,CAACqqD,KAAK,GAAG,EAAE;MAC9C;KAEDlM,iBAAiB,GACjB;OACC,MAAMnhD,IAAI,GAAG,IAAI,CAACktD,kBAAkB,EAAE;OACtC,MAAMG,KAAK,GAAG,IAAI,CAACD,YAAY,EAAE;OACjC,IAAIhqD,MAAM,GAAG,IAAI;OAEjB,IAAIpD,IAAI,IAAIqtD,KAAK,EACjB;SACCjqD,MAAM,GAAGiqD,KAAK,CAACrtD,IAAI,CAAC;;OAGrB,IAAI,CAAChF,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAACpB,MAAM,CAAC,EAClC;SACCA,MAAM,GAAG,EAAE;;OAGZ,OAAOA,MAAM;MACb;KAEDkqD,MAAM,CAAC/oD,MAAM,EACb;OACC,OAAOvJ,EAAE,CAACyY,IAAI,CAACma,aAAa,CAAC,IAAI,CAACnb,GAAG,EAAE;SACtC86C,OAAO,EAAE,IAAI,CAACnyD,MAAM,CAACsZ,cAAc,EAAE;SACrC84C,QAAQ,EAAE,IAAI,CAACpyD,MAAM,CAAC6Y,SAAS,EAAE;SACjC1P;QACA,CAAC;MACF;KAED+7C,UAAU,GACV;OACC,OAAO,IAAI,CAACt9C,OAAO,IAAI,EAAE;MACzB;KAEDoqC,UAAU,GACV;OACC,OAAO,IAAI,CAAC/xC,OAAO;MACnB;KAED4sB,SAAS,CAACjoB,IAAI,EACd;OACC,IAAIuE,MAAM,GAAG,IAAI;OAEjB,IACA;SACCA,MAAM,GAAG,IAAI,CAAC6oC,UAAU,EAAE,CAACptC,IAAI,CAAC;QAChC,CACD,MACA;SACCuE,MAAM,GAAG,IAAI;;OAGd,OAAOA,MAAM;MACb;KAEDujB,MAAM,CAAC2lC,UAAU,EACjB;OACC,IAAI,CAACzqD,OAAO,GAAGyqD,UAAU;MACzB;KAED59C,UAAU,CAACF,OAAO,EAAErJ,QAAQ,EAC5B;OACC,MAAMtD,OAAO,GAAG,IAAI,CAACm+C,iBAAiB,EAAE;OAExC,IAAInmD,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAACxB,OAAO,CAAC,EAClC;SACCA,OAAO,CAAC2M,OAAO,GAAGA,OAAO,CAAC4I,IAAI,CAAC,GAAG,CAAC;SAEnC,IAAI,CAACm1C,IAAI,CAAC,IAAI,CAACzlC,SAAS,CAAC,kBAAkB,CAAC,EAAE;WAAEtY,OAAO,EAAE3M,OAAO,CAAC2M;UAAS,EAAErJ,QAAQ,CAAC;;OAGtF,OAAO,IAAI;MACX;KAEDqnD,eAAe,CAACh+C,OAAO,EAAErJ,QAAQ,EACjC;OACC,MAAMtD,OAAO,GAAG;SAAEmgD,OAAO,EAAE;QAAW;OAEtC,IAAInoD,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAACxB,OAAO,CAAC,EAClC;SACCA,OAAO,CAACo+C,YAAY,GAAGzxC,OAAO;SAE9B,IAAI,CAAC+9C,IAAI,CAAC,IAAI,CAACzlC,SAAS,CAAC,kBAAkB,CAAC,EAAEjlB,OAAO,EAAEsD,QAAQ,CAAC;;OAGjE,OAAO,IAAI;MACX;KAED8gC,cAAc,CAACwmB,KAAK,EAAExiB,MAAM,EAC5B;OACC,IAAI,CAACsiB,IAAI,CAAC,IAAI,CAACzlC,SAAS,CAAC,uBAAuB,CAAC,EAAE;SAAE2lC,KAAK;SAAExiB;QAAQ,CAAC;MACrE;KAED9/B,KAAK,CAACuiD,MAAM,EAAEvnD,QAAQ,EACtB;OACC,IAAIpH,IAAI,GAAG,EAAE;OAEb,IAAI2uD,MAAM,EACV;SACC3uD,IAAI,GAAG;WACNikD,OAAO,EAAE,SAAS;WAClBC,oBAAoB,EAAE,GAAG;WACzBC,oBAAoB,EAAE,GAAG;WACzByK,aAAa,EAAE,IAAI,CAAC3M,iBAAiB;UACrC;;OAGF,IAAI,CAACuM,IAAI,CAAC,IAAI,CAACzlC,SAAS,CAAC,YAAY,CAAC,EAAE/oB,IAAI,EAAEoH,QAAQ,CAAC;MACvD;KAEDmnB,OAAO,CAACI,EAAE,EAAEC,KAAK,EAAExnB,QAAQ,EAC3B;OACC,IAAIunB,EAAE,IAAIC,KAAK,EACf;SACC,IAAI,CAAC4/B,IAAI,CAAC,IAAI,CAACzlC,SAAS,CAAC,eAAe,CAAC,EAAE;WAAE4F,EAAE;WAAEC;UAAO,EAAExnB,QAAQ,CAAC;;OAGpE,OAAO,IAAI;MACX;KAEDw5B,WAAW,CAAC/c,QAAQ,EAAEzc,QAAQ,EAC9B;OACC,IAAItL,EAAE,CAACyC,IAAI,CAACuR,QAAQ,CAAC2d,QAAQ,CAAC5J,QAAQ,CAAC,CAAC,EACxC;SACC,IAAI,CAAC2qC,IAAI,CAAC,IAAI,CAACzlC,SAAS,CAAC,oBAAoB,CAAC,EAAE;WAAElF;UAAU,EAAEzc,QAAQ,CAAC;;MAExE;KAEDkpB,eAAe,CAAC6nB,GAAG,EAAE/wC,QAAQ,EAC7B;OACCtL,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACwzC,GAAG,CAAC,IAAI,IAAI,CAACqW,IAAI,CAAC,IAAI,CAACzlC,SAAS,CAAC,wBAAwB,CAAC,EAAE;SAAEovB;QAAK,EAAE/wC,QAAQ,CAAC;MAC9F;KAEDgpB,kBAAkB,CAAC+nB,GAAG,EAAE/wC,QAAQ,EAChC;OACCtL,EAAE,CAACyC,IAAI,CAACoG,OAAO,CAACwzC,GAAG,CAAC,IAAI,IAAI,CAACqW,IAAI,CAAC,IAAI,CAACzlC,SAAS,CAAC,2BAA2B,CAAC,EAAE;SAAEovB;QAAK,EAAE/wC,QAAQ,CAAC;MACjG;KAEDqrB,iBAAiB,GACjB;OACC,IAAI,CAAC+7B,IAAI,CAAC,IAAI,CAACzlC,SAAS,CAAC,0BAA0B,CAAC,EAAE,EAAE,CAAC;MACzD;KAED8lC,UAAU,CAACznD,QAAQ,EACnB;OACC,IAAI,CAAConD,IAAI,CACR,IAAI,CAACzlC,SAAS,CAAC,oBAAoB,CAAC,EACpC;SACCk7B,OAAO,EAAE,SAAS;SAClBC,oBAAoB,EAAE,GAAG;SACzBC,oBAAoB,EAAE,GAAG;SACzByK,aAAa,EAAE,IAAI,CAAC3M,iBAAiB;QACrC,EACD76C,QAAQ,CACR;MACD;KAED0lB,KAAK,CAAC9sB,IAAI,EAAEoH,QAAQ,EACpB;OACC,IAAI,CAAConD,IAAI,CAAC,IAAI,CAACzlC,SAAS,CAAC,gBAAgB,CAAC,EAAE;SAAE+lC,IAAI,EAAE9uD;QAAM,EAAEoH,QAAQ,CAAC;MACrE;KAEDonD,IAAI,CAACnpD,MAAM,EAAErF,IAAI,EAAEoH,QAAQ,EAC3B;OACC,MAAMC,IAAI,GAAG,IAAI;OACjBvL,EAAE,CAACiW,IAAI,CAACg9C,IAAI,CACX,IAAI,CAACX,MAAM,CAAC/oD,MAAM,CAAC,EACnBrF,IAAI,EACHyV,GAAG,IAAK;SACR,IACA;WACCA,GAAG,GAAGzU,IAAI,CAAC0U,KAAK,CAACD,GAAG,CAAC;WACrB,IAAI,CAACA,GAAG,CAAChC,KAAK,EACd;aACCpM,IAAI,CAACuhB,MAAM,CAACnT,GAAG,CAAC;aAChB,IAAI3Z,EAAE,CAACyC,IAAI,CAACwX,UAAU,CAAC3O,QAAQ,CAAC,EAChC;eACCA,QAAQ,CAACqO,GAAG,CAAC;;aAGd3Z,EAAE,CAAC8U,aAAa,CAACvJ,IAAI,CAACnL,MAAM,CAAC4C,YAAY,EAAE,EAAE,sBAAsB,EAAE,CAACuI,IAAI,CAACnL,MAAM,CAAC,CAAC;;UAEpF,CACD,MACA;QACA,CACD;;IAEF;CACF,CAAC,GAAG;;CCzPJ,CAAC,YAAW;;GAGXJ,EAAE,CAACC,SAAS,CAAC,SAAS,CAAC;GAEvBD,EAAE,CAACE,IAAI,CAAC0C,KAAK,GAAG;;CAEjB;CACA;CACA;CACA;CACA;KACEoW,OAAO,CAACvB,GAAG,EAAEy7C,MAAM,EACnB;OACC,OAAO,IAAI,CAAC/6C,YAAY,CAACV,GAAG,EAAE;SAAE+6C,QAAQ,EAAEU;QAAQ,CAAC;MACnD;KAED/6C,YAAY,CAACV,GAAG,EAAEusC,MAAM,EACxB;OACC,OAAOhkD,EAAE,CAACyY,IAAI,CAACma,aAAa,CAACnb,GAAG,EAAEusC,MAAM,CAAC;MACzC;;CAGH;CACA;CACA;CACA;CACA;CACA;KACEmP,SAAS,CAACjc,KAAK,EAAElhB,YAAY,EAAEo9B,QAAQ,EACvC;OACC,IAAIA,QAAQ,IAAIlc,KAAK,CAACzvC,MAAM,EAC5B;SACC,IAAI4rD,CAAC,GAAGD,QAAQ,GAAGlc,KAAK,CAACzvC,MAAM;SAC/B,OAAQ4rD,CAAC,EAAE,GAAI,CAAC,EAChB;WACCnc,KAAK,CAAC3uC,IAAI,CAACiG,SAAS,CAAC;;;OAGvB0oC,KAAK,CAAC55B,MAAM,CAAC81C,QAAQ,EAAE,CAAC,EAAElc,KAAK,CAAC55B,MAAM,CAAC0Y,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;OAE3D,OAAOkhB,KAAK;MACZ;;CAGH;CACA;CACA;CACA;CACA;KACEjkC,QAAQ,CAACqgD,UAAU,EAAEpxD,IAAI,EACzB;OACC,OAAO,EAAE,CAACmb,OAAO,CAAC9I,IAAI,CAAE++C,UAAU,IAAI,EAAE,EAAGpxD,IAAI,CAAC;MAChD;;CAGH;CACA;CACA;CACA;KACEqxD,OAAO,CAACC,WAAW,EACnB;OACC,IAAIA,WAAW,EAEf;SAAE,OAAOA,WAAW,CAAChrD,kBAAkB,IAAI,IAAI;;MAE/C;;CAGH;CACA;CACA;CACA;KACEirD,OAAO,CAACD,WAAW,EACnB;OACC,IAAIA,WAAW,EAEf;SAAE,OAAOA,WAAW,CAAC1C,sBAAsB,IAAI,IAAI;;MAEnD;;CAGH;CACA;CACA;CACA;CACA;KACEp0B,aAAa,CAACx6B,IAAI,EAAE4C,SAAS,EAC7B;OACC,IAAI5C,IAAI,EACR;SACC,IAAI,CAAC4C,SAAS,EACd;WACC,OAAO5C,IAAI,CAACiL,UAAU,IAAI,IAAI;;SAG/B,OAAOnN,EAAE,CAACuN,UAAU,CACnBrL,IAAI,EACJ;WAAE4C;UAAW,CACb;;MAEF;;CAGH;CACA;CACA;CACA;KACE4uD,aAAa,CAACxxD,IAAI,EAClB;OACC,IAAIA,IAAI,EAER;SAAE,OAAOA,IAAI,CAACoD,QAAQ,IAAI,IAAI;;MAE9B;;CAGH;CACA;CACA;CACA;KACEoP,cAAc,CAAChM,OAAO,EAAE4E,MAAM,EAC9B;OACC,IAAIqmD,IAAI;OAAE,IAAIL,UAAU;OAAE,IAAIM,gBAAgB;OAAE,IAAI59B,YAAY;OAAE,IACjE69B,WAAW;OAEZ,IAAInrD,OAAO,IAAI4E,MAAM,IAAI5E,OAAO,KAAK4E,MAAM,IAAI5E,OAAO,CAACyE,UAAU,KAAKG,MAAM,CAACH,UAAU,EACvF;SACCwmD,IAAI,GAAG,IAAI,CAACj3B,aAAa,CAACpvB,MAAM,CAAC;SACjCgmD,UAAU,GAAG,IAAI,CAACI,aAAa,CAACC,IAAI,CAAC;SACrCC,gBAAgB,GAAGN,UAAU,CAAC7rD,MAAM;SACpCuuB,YAAY,GAAG,IAAI,CAAC/iB,QAAQ,CAACqgD,UAAU,EAAE5qD,OAAO,CAAC;SACjDmrD,WAAW,GAAG,IAAI,CAAC5gD,QAAQ,CAACqgD,UAAU,EAAEhmD,MAAM,CAAC;SAE/C,IAAIsmD,gBAAgB,KAAKC,WAAW,EACpC;WACCF,IAAI,CAACnuD,WAAW,CAAC8H,MAAM,CAAC;;SAGzB,IAAI0oB,YAAY,GAAG69B,WAAW,EAC9B;WACCF,IAAI,CAACzpB,YAAY,CAACxhC,OAAO,EAAE4E,MAAM,CAAC;;SAGnC,IAAI0oB,YAAY,GAAG69B,WAAW,IAAID,gBAAgB,KAAKC,WAAW,EAClE;WACCF,IAAI,CAACzpB,YAAY,CAACxhC,OAAO,EAAE,IAAI,CAAC6qD,OAAO,CAACjmD,MAAM,CAAC,CAAC;;;MAGlD;;CAGH;CACA;CACA;CACA;CACA;KACE8E,SAAS,CAAC+O,KAAK,EAAE9O,IAAI,EACrB;OACC,MAAM2jB,YAAY,GAAG,IAAI,CAAC/iB,QAAQ,CACjC,IAAI,CAACygD,aAAa,CAAC,IAAI,CAACh3B,aAAa,CAACrqB,IAAI,CAAC,CAAC,EAC5CA,IAAI,CACJ;OACD,MAAMzB,MAAM,GAAG,EAAE;OAEjB,EAAE,CAACnI,OAAO,CAAC8L,IAAI,CAAC4M,KAAK,CAACzT,IAAI,EAAGhF,OAAO,IAAK;SACxCkI,MAAM,CAACrI,IAAI,CAACG,OAAO,CAAC6J,KAAK,CAACyjB,YAAY,CAAC,CAAC;QACxC,CAAC;OAEF,OAAOplB,MAAM;MACb;;CAGH;CACA;CACA;CACA;KACEqD,YAAY,CAACq/C,UAAU,EAAEQ,UAAU,EACnC;OACCA,UAAU,GAAG9zD,EAAE,CAACyC,IAAI,CAAC+G,aAAa,CAACsqD,UAAU,CAAC,GAAGA,UAAU,GAAG,IAAI;OAClE,MAAMtoB,IAAI,GAAG9B,MAAM,CAAC8B,IAAI,CAACsoB,UAAU,CAAC;OAEpC,EAAE,CAACrrD,OAAO,CAAC8L,IAAI,CAAE++C,UAAU,IAAI,EAAE,EAAI5qD,OAAO,IAAK;SAChD8iC,IAAI,CAAC/iC,OAAO,CAAEsrD,OAAO,IAAK;WACzB/zD,EAAE,CAAC0T,KAAK,CAAChL,OAAO,EAAEqrD,OAAO,EAAED,UAAU,CAACC,OAAO,CAAC,CAAC;UAC/C,CAAC;QACF,CAAC;MACF;KAEDvvC,qBAAqB,GACrB;OACC,MAAMwvC,GAAG,GACR/yD,MAAM,CAACujB,qBAAqB,IACzBvjB,MAAM,CAACgzD,2BAA2B,IAClChzD,MAAM,CAACizD,wBAAwB,IAC/BjzD,MAAM,CAACkzD,uBAAuB,IAC9BlzD,MAAM,CAACmzD,sBAAsB,IAC7B,UAAS9oD,QAAQ,EAAE;SAAErK,MAAM,CAAC8T,UAAU,CAACzJ,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC;QAC9D;OAED0oD,GAAG,CAACv+B,KAAK,CAACx0B,MAAM,EAAEozD,SAAS,CAAC;MAC5B;;CAGH;CACA;CACA;CACA;CACA;CACA;KACExxD,UAAU,CAACyxD,WAAW,EAAExvD,SAAS,EAAEyvD,KAAK,EACxC;OACC,IAAInsD,MAAM,GAAG,EAAE;OAEf,IAAItD,SAAS,EACb;SACCsD,MAAM,GAAGksD,WAAW,GAAGA,WAAW,CAAC3D,sBAAsB,CAAC7rD,SAAS,CAAC,GAAG,EAAE;SAEzE,IAAIyvD,KAAK,EACT;WACCnsD,MAAM,GAAGA,MAAM,CAACX,MAAM,GAAG,CAAC,GAAGW,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;UAC7C,MAED;WACCA,MAAM,GAAG,EAAE,CAACuoB,KAAK,CAACpc,IAAI,CAACnM,MAAM,CAAC;;;OAIhC,OAAOA,MAAM;MACb;KAEDkJ,QAAQ,CAACgjD,WAAW,EAAE7kC,GAAG,EAAE8kC,KAAK,EAChC;OACC,IAAInsD,MAAM,GAAG,EAAE;OAEf,IAAIqnB,GAAG,EACP;SACCrnB,MAAM,GAAGksD,WAAW,GAAGA,WAAW,CAACE,oBAAoB,CAAC/kC,GAAG,CAAC,GAAG,EAAE;SAEjE,IAAI8kC,KAAK,EACT;WACCnsD,MAAM,GAAGA,MAAM,CAACX,MAAM,GAAG,CAAC,GAAGW,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;UAC7C,MAED;WACCA,MAAM,GAAG,EAAE,CAACuoB,KAAK,CAACpc,IAAI,CAACnM,MAAM,CAAC;;;OAIhC,OAAOA,MAAM;MACb;KAED/E,aAAa,CAACixD,WAAW,EAAEv5C,QAAQ,EAAEw5C,KAAK,EAC1C;OACC,IAAInsD,MAAM,GAAG,EAAE;OAEf,IAAI2S,QAAQ,EACZ;SACC,IAAIw5C,KAAK,EACT;WACCnsD,MAAM,GAAGksD,WAAW,GAAGA,WAAW,CAAC76C,aAAa,CAACsB,QAAQ,CAAC,GAAG,IAAI;UACjE,MAED;WACC3S,MAAM,GAAGksD,WAAW,GAAGA,WAAW,CAAC/jC,gBAAgB,CAACxV,QAAQ,CAAC,GAAG,EAAE;WAClE3S,MAAM,GAAG,EAAE,CAACuoB,KAAK,CAACpc,IAAI,CAACnM,MAAM,CAAC;;;OAIhC,OAAOA,MAAM;MACb;KAED0Z,cAAc,CAACkiC,MAAM,EACrB;OACC,IACA;SACC/iD,MAAM,CAAC4gB,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAEmiC,MAAM,CAAC;QAC7C,CACD,MACA;SACCA,MAAM,GAAG,KAAK;;OAGf,OAAOA,MAAM;;IAEd;CACF,CAAC,GAAG;;;;"}