!(function (t) {
    const e = (t.en = t.en || {});
    e.dictionary = Object.assign(e.dictionary || {}, {
        "%0 of %1": "%0 of %1",
        Aquamarine: "Aquamarine",
        Black: "Black",
        "Block quote": "Block quote",
        Blue: "Blue",
        Bold: "Bold",
        "Break text": "Break text",
        "Bulleted List": "Bulleted List",
        Cancel: "Cancel",
        "Cannot determine a category for the uploaded file.": "Cannot determine a category for the uploaded file.",
        "Cannot upload file:": "Cannot upload file:",
        "Caption for image: %0": "Caption for image: %0",
        "Caption for the image": "Caption for the image",
        "Centered image": "Centered image",
        "Change image text alternative": "Change image text alternative",
        "Choose heading": "Choose heading",
        Column: "Column",
        "Could not insert image at the current position.": "Could not insert image at the current position.",
        "Could not obtain resized image URL.": "Could not obtain resized image URL.",
        "Decrease indent": "Decrease indent",
        "Delete column": "Delete column",
        "Delete row": "Delete row",
        "Dim grey": "Dim grey",
        Downloadable: "Downloadable",
        "Dropdown toolbar": "Dropdown toolbar",
        "Edit block": "Edit block",
        "Edit link": "Edit link",
        "Editor block content toolbar": "Editor block content toolbar",
        "Editor contextual toolbar": "Editor contextual toolbar",
        "Editor editing area: %0": "Editor editing area: %0",
        "Editor toolbar": "Editor toolbar",
        "Enter image caption": "Enter image caption",
        "Full size image": "Full size image",
        Green: "Green",
        Grey: "Grey",
        "Header column": "Header column",
        "Header row": "Header row",
        Heading: "Heading",
        "Heading 1": "Heading 1",
        "Heading 2": "Heading 2",
        "Heading 3": "Heading 3",
        "Heading 4": "Heading 4",
        "Heading 5": "Heading 5",
        "Heading 6": "Heading 6",
        "Image toolbar": "Image toolbar",
        "image widget": "image widget",
        "In line": "In line",
        "Increase indent": "Increase indent",
        "Insert column left": "Insert column left",
        "Insert column right": "Insert column right",
        "Insert image": "Insert image",
        "Insert image or file": "Insert image or file",
        "Insert media": "Insert media",
        "Insert paragraph after block": "Insert paragraph after block",
        "Insert paragraph before block": "Insert paragraph before block",
        "Insert row above": "Insert row above",
        "Insert row below": "Insert row below",
        "Insert table": "Insert table",
        "Inserting image failed": "Inserting image failed",
        Italic: "Italic",
        "Left aligned image": "Left aligned image",
        "Light blue": "Light blue",
        "Light green": "Light green",
        "Light grey": "Light grey",
        Link: "Link",
        "Link URL": "Link URL",
        "Media URL": "Media URL",
        "media widget": "media widget",
        "Merge cell down": "Merge cell down",
        "Merge cell left": "Merge cell left",
        "Merge cell right": "Merge cell right",
        "Merge cell up": "Merge cell up",
        "Merge cells": "Merge cells",
        Next: "Next",
        "Numbered List": "Numbered List",
        "Open file manager": "Open file manager",
        "Open in a new tab": "Open in a new tab",
        "Open link in new tab": "Open link in new tab",
        "Open media in new tab": "Open media in new tab",
        Orange: "Orange",
        Paragraph: "Paragraph",
        "Paste the media URL in the input.": "Paste the media URL in the input.",
        Previous: "Previous",
        Purple: "Purple",
        Red: "Red",
        Redo: "Redo",
        "Rich Text Editor": "Rich Text Editor",
        "Right aligned image": "Right aligned image",
        Row: "Row",
        Save: "Save",
        "Select all": "Select all",
        "Select column": "Select column",
        "Select row": "Select row",
        "Selecting resized image failed": "Selecting resized image failed",
        "Show more items": "Show more items",
        "Side image": "Side image",
        "Split cell horizontally": "Split cell horizontally",
        "Split cell vertically": "Split cell vertically",
        "Table toolbar": "Table toolbar",
        "Text alternative": "Text alternative",
        "The URL must not be empty.": "The URL must not be empty.",
        "This link has no URL": "This link has no URL",
        "This media URL is not supported.": "This media URL is not supported.",
        "Tip: Paste the URL into the content to embed faster.": "Tip: Paste the URL into the content to embed faster.",
        "Toggle caption off": "Toggle caption off",
        "Toggle caption on": "Toggle caption on",
        Turquoise: "Turquoise",
        Undo: "Undo",
        Unlink: "Unlink",
        "Upload failed": "Upload failed",
        "Upload in progress": "Upload in progress",
        White: "White",
        "Widget toolbar": "Widget toolbar",
        "Wrap text": "Wrap text",
        Yellow: "Yellow",
    });
})(window.CKEDITOR_TRANSLATIONS || (window.CKEDITOR_TRANSLATIONS = {})),
    /*!
     * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
     * For licensing, see LICENSE.md.
     */
    (function (t, e) {
        "object" == typeof exports && "object" == typeof module ? (module.exports = e()) : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? (exports.ClassicEditor = e()) : (t.ClassicEditor = e());
    })(self, () =>
        (() => {
            "use strict";
            var t = {
                    3062: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck-content blockquote{border-left:5px solid #ccc;font-style:italic;margin-left:0;margin-right:0;overflow:hidden;padding-left:1.5em;padding-right:1.5em}.ck-content[dir=rtl] blockquote{border-left:0;border-right:5px solid #ccc}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-block-quote/theme/blockquote.css"],
                                names: [],
                                mappings: "AAKA,uBAWC,0BAAsC,CADtC,iBAAkB,CAFlB,aAAc,CACd,cAAe,CAPf,eAAgB,CAIhB,kBAAmB,CADnB,mBAOD,CAEA,gCACC,aAAc,CACd,2BACD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content blockquote {\n\t/* See #12 */\n\toverflow: hidden;\n\n\t/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */\n\tpadding-right: 1.5em;\n\tpadding-left: 1.5em;\n\n\tmargin-left: 0;\n\tmargin-right: 0;\n\tfont-style: italic;\n\tborder-left: solid 5px hsl(0, 0%, 80%);\n}\n\n.ck-content[dir="rtl"] blockquote {\n\tborder-left: 0;\n\tborder-right: solid 5px hsl(0, 0%, 80%);\n}\n',
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    903: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            '.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position{display:inline;pointer-events:none;position:relative}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{position:absolute;width:0}.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__selection-handle,.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__type-around{display:none}:root{--ck-clipboard-drop-target-dot-width:12px;--ck-clipboard-drop-target-dot-height:8px;--ck-clipboard-drop-target-color:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);bottom:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);margin-left:-1px;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span:after{border-color:var(--ck-clipboard-drop-target-color) transparent transparent transparent;border-style:solid;border-width:calc(var(--ck-clipboard-drop-target-dot-height)) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5);content:"";display:block;height:0;left:50%;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);transform:translateX(-50%);width:0}.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range{outline:var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color)!important}.ck.ck-editor__editable .ck-widget:-webkit-drag{zoom:.6;outline:none!important}',
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-clipboard/theme/clipboard.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-clipboard/clipboard.css"],
                                names: [],
                                mappings:
                                    "AASC,8DACC,cAAe,CAEf,mBAAoB,CADpB,iBAOD,CAJC,mEACC,iBAAkB,CAClB,OACD,CAWA,qJACC,YACD,CCzBF,MACC,yCAA0C,CAC1C,yCAA0C,CAC1C,6DACD,CAOE,mEAIC,gDAAiD,CADjD,sDAAuD,CAFvD,2DAA8D,CAI9D,gBAAiB,CAHjB,wDAqBD,CAfC,yEAWC,sFAAuF,CAEvF,kBAAmB,CADnB,qKAA0K,CAX1K,UAAW,CAIX,aAAc,CAFd,QAAS,CAIT,QAAS,CADT,iBAAkB,CAElB,wDAA2D,CAE3D,0BAA2B,CAR3B,OAYD,CA2DF,kEACC,gGACD,CAKA,gDACC,OAAS,CACT,sBACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: inline;\n\t\tposition: relative;\n\t\tpointer-events: none;\n\n\t\t& span {\n\t\t\tposition: absolute;\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\t& > .ck-widget__selection-handle {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t& > .ck-widget__type-around {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-clipboard-drop-target-dot-width: 12px;\n\t--ck-clipboard-drop-target-dot-height: 8px;\n\t--ck-clipboard-drop-target-color: var(--ck-color-focus-border)\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\t& span {\n\t\t\tbottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\t\t\tbackground: var(--ck-clipboard-drop-target-color);\n\t\t\tmargin-left: -1px;\n\n\t\t\t/* The triangle above the marker */\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 50%;\n\t\t\t\ttop: calc(var(--ck-clipboard-drop-target-dot-height) * -.5);\n\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\tborder-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;\n\t\t\t\tborder-width: calc(var(--ck-clipboard-drop-target-dot-height)) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width));\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t// Horizontal drop target (between blocks).\n\t& .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\theight: 0;\n\t\tmargin: 0;\n\t\ttext-align: initial;\n\n\t\t& .ck-clipboard-drop-target__line {\n\t\t\tposition: absolute;\n\t\t\twidth: 100%;\n\t\t\theight: 0;\n\t\t\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\t\t\tmargin-top: -1px;\n\n\t\t\t&::before {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: calc(-1 * var(--ck-clipboard-drop-target-dot-size));\n\t\t\t\ttop: 0;\n\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\tborder-color: transparent transparent transparent var(--ck-clipboard-drop-target-color);\n\t\t\t\tborder-width: var(--ck-clipboard-drop-target-dot-size) 0 var(--ck-clipboard-drop-target-dot-size) calc(2 * var(--ck-clipboard-drop-target-dot-size));\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tright: calc(-1 * var(--ck-clipboard-drop-target-dot-size));\n\t\t\t\ttop: 0;\n\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\tborder-color: transparent var(--ck-clipboard-drop-target-color) transparent transparent;\n\t\t\t\tborder-width: var(--ck-clipboard-drop-target-dot-size) calc(2 * var(--ck-clipboard-drop-target-dot-size)) var(--ck-clipboard-drop-target-dot-size) 0;\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\t\t}\n\t}\n\t*/\n\n\t/*\n\t * Styles of the widget that it a drop target.\n\t */\n\t& .ck-widget.ck-clipboard-drop-target-range {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color) !important;\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\tzoom: 0.6;\n\t\toutline: none !important;\n\t}\n}\n',
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    3143: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-editor{position:relative}.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{z-index:var(--ck-z-modal)}.ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-toolbar,.ck.ck-editor__top .ck-sticky-panel .ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-bottom-width:0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar{border-bottom-width:1px;border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:0}.ck.ck-editor__main>.ck-editor__editable{background:var(--ck-color-base-background);border-radius:0}.ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,.ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}.ck.ck-editor__main>.ck-editor__editable:not(.ck-focused){border-color:var(--ck-color-base-border)}",
                            "",
                            {
                                version: 3,
                                sources: [
                                    "webpack://./../ckeditor5-editor-classic/theme/classiceditor.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-editor-classic/classiceditor.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css",
                                ],
                                names: [],
                                mappings:
                                    "AAKA,cAIC,iBAMD,CAJC,2DAEC,yBACD,CCLC,gDCED,eDKC,CAPA,uICMA,qCAAsC,CDJpC,2BAA4B,CAC5B,4BAIF,CAPA,gDAMC,qBACD,CAEA,iFACC,uBAAwB,CCR1B,eDaC,CANA,yMCHA,qCAAsC,CDOpC,eAEF,CAKF,yCAEC,0CAA2C,CCpB3C,eD8BD,CAZA,yHCdE,qCAAsC,CDmBtC,wBAAyB,CACzB,yBAMF,CAHC,0DACC,wCACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor {\n\t/* All the elements within `.ck-editor` are positioned relatively to it.\n\t If any element needs to be positioned with respect to the <body>, etc.,\n\t it must land outside of the `.ck-editor` in DOM. */\n\tposition: relative;\n\n\t& .ck-editor__top .ck-sticky-panel .ck-toolbar {\n\t\t/* https://github.com/ckeditor/ckeditor5-editor-classic/issues/62 */\n\t\tz-index: var(--ck-z-modal);\n\t}\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_rounded.css";\n\n.ck.ck-editor__top {\n\t& .ck-sticky-panel {\n\t\t& .ck-toolbar {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\n\t\t\tborder-bottom-width: 0;\n\t\t}\n\n\t\t& .ck-sticky-panel__content_sticky .ck-toolbar {\n\t\t\tborder-bottom-width: 1px;\n\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* Note: Use ck-editor__main to make sure these styles don\'t apply to other editor types */\n.ck.ck-editor__main > .ck-editor__editable {\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/113 */\n\tbackground: var(--ck-color-base-background);\n\n\t@mixin ck-rounded-corners {\n\t\tborder-top-left-radius: 0;\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&:not(.ck-focused) {\n\t\tborder-color: var(--ck-color-base-border);\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    4717: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck .ck-placeholder,.ck.ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{content:attr(data-placeholder);left:0;pointer-events:none;position:absolute;right:0}.ck.ck-read-only .ck-placeholder:before{display:none}.ck.ck-reset_all .ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{color:var(--ck-color-engine-placeholder-text);cursor:text}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-engine/theme/placeholder.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-engine/placeholder.css"],
                                names: [],
                                mappings: "AAMA,uCAEC,iBAWD,CATC,qDAIC,8BAA+B,CAF/B,MAAO,CAKP,mBAAoB,CANpB,iBAAkB,CAElB,OAKD,CAKA,wCACC,YACD,CAQD,iCACC,iBACD,CC5BC,qDAEC,6CAA8C,CAD9C,WAED",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder,\n.ck .ck-placeholder {\n\tposition: relative;\n\n\t&::before {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tcontent: attr(data-placeholder);\n\n\t\t/* See ckeditor/ckeditor5#469. */\n\t\tpointer-events: none;\n\t}\n}\n\n/* See ckeditor/ckeditor5#1987. */\n.ck.ck-read-only .ck-placeholder {\n\t&::before {\n\t\tdisplay: none;\n\t}\n}\n\n/*\n * Rules for the `ck-placeholder` are loaded before the rules for `ck-reset_all` in the base CKEditor 5 DLL build.\n * This fix overwrites the incorrectly set `position: static` from `ck-reset_all`.\n * See https://github.com/ckeditor/ckeditor5/issues/11418.\n */\n.ck.ck-reset_all .ck-placeholder {\n\tposition: relative;\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder, .ck .ck-placeholder {\n\t&::before {\n\t\tcursor: text;\n\t\tcolor: var(--ck-color-engine-placeholder-text);\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    9315: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-editor__editable span[data-ck-unsafe-element]{display:none}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-engine/theme/renderer.css"],
                                names: [],
                                mappings: "AAMA,qDACC,YACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Elements marked by the Renderer as hidden should be invisible in the editor. */\n.ck.ck-editor__editable span[data-ck-unsafe-element] {\n\tdisplay: none;\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    8733: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-heading_heading1{font-size:20px}.ck.ck-heading_heading2{font-size:17px}.ck.ck-heading_heading3{font-size:14px}.ck[class*=ck-heading_heading]{font-weight:700}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item{min-width:18em}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-heading/theme/heading.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-heading/heading.css"],
                                names: [],
                                mappings: "AAKA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,+BACC,eACD,CCZC,2EACC,SACD,CAEA,uEACC,cACD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-heading_heading1 {\n\tfont-size: 20px;\n}\n\n.ck.ck-heading_heading2 {\n\tfont-size: 17px;\n}\n\n.ck.ck-heading_heading3 {\n\tfont-size: 14px;\n}\n\n.ck[class*="ck-heading_heading"] {\n\tfont-weight: bold;\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Resize dropdown's button label. */\n.ck.ck-dropdown.ck-heading-dropdown {\n\t& .ck-dropdown__button .ck-button__label {\n\t\twidth: 8em;\n\t}\n\n\t& .ck-dropdown__panel .ck-list__item {\n\t\tmin-width: 18em;\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    3508: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck-content .image{clear:both;display:table;margin:.9em auto;min-width:50px;text-align:center}.ck-content .image img{display:block;margin:0 auto;max-width:100%;min-width:100%}.ck-content .image-inline{align-items:flex-start;display:inline-flex;max-width:100%}.ck-content .image-inline picture{display:flex}.ck-content .image-inline img,.ck-content .image-inline picture{flex-grow:1;flex-shrink:1;max-width:100%}.ck.ck-editor__editable .image>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}.ck.ck-editor__editable .image-inline.ck-widget_selected,.ck.ck-editor__editable .image.ck-widget_selected{z-index:1}.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection{display:none}.ck.ck-editor__editable td .image-inline img,.ck.ck-editor__editable th .image-inline img{max-width:none}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-image/theme/image.css"],
                                names: [],
                                mappings:
                                    "AAMC,mBAEC,UAAW,CADX,aAAc,CAOd,gBAAkB,CAGlB,cAAe,CARf,iBAuBD,CAbC,uBAEC,aAAc,CAGd,aAAc,CAGd,cAAe,CAGf,cACD,CAGD,0BAYC,sBAAuB,CANvB,mBAAoB,CAGpB,cAoBD,CAdC,kCACC,YACD,CAGA,gEAGC,WAAY,CACZ,aAAc,CAGd,cACD,CAUD,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAWA,2GACC,SAUD,CAHC,qEACC,YACD,CAOA,0FACC,cACD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content {\n\t& .image {\n\t\tdisplay: table;\n\t\tclear: both;\n\t\ttext-align: center;\n\n\t\t/* Make sure there is some space between the content and the image. Center image by default. */\n\t\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\t \tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\t\tmargin: 0.9em auto;\n\n\t\t/* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */\n\t\tmin-width: 50px;\n\n\t\t& img {\n\t\t\t/* Prevent unnecessary margins caused by line-height (see #44). */\n\t\t\tdisplay: block;\n\n\t\t\t/* Center the image if its width is smaller than the content\'s width. */\n\t\t\tmargin: 0 auto;\n\n\t\t\t/* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */\n\t\t\tmax-width: 100%;\n\n\t\t\t/* Make sure the image is never smaller than the parent container (See: https://github.com/ckeditor/ckeditor5/issues/9300). */\n\t\t\tmin-width: 100%\n\t\t}\n\t}\n\n\t& .image-inline {\n\t\t/*\n\t\t * Normally, the .image-inline would have "display: inline-block" and "img { width: 100% }" (to follow the wrapper while resizing).\n\t\t * Unfortunately, together with "srcset", it gets automatically stretched up to the width of the editing root.\n\t\t * This strange behavior does not happen with inline-flex.\n\t\t */\n\t\tdisplay: inline-flex;\n\n\t\t/* While being resized, don\'t allow the image to exceed the width of the editing root. */\n\t\tmax-width: 100%;\n\n\t\t/* This is required by Safari to resize images in a sensible way. Without this, the browser breaks the ratio. */\n\t\talign-items: flex-start;\n\n\t\t/* When the picture is present it must act as a flex container to let the img resize properly */\n\t\t& picture {\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\t/* When the picture is present, it must act like a resizable img. */\n\t\t& picture,\n\t\t& img {\n\t\t\t/* This is necessary for the img to span the entire .image-inline wrapper and to resize properly. */\n\t\t\tflex-grow: 1;\n\t\t\tflex-shrink: 1;\n\n\t\t\t/* Prevents overflowing the editing root boundaries when an inline image is very wide. */\n\t\t\tmax-width: 100%;\n\t\t}\n\t}\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Inhertit the content styles padding of the <figcaption> in case the integration overrides `text-align: center`\n\t * of `.image` (e.g. to the left/right). This ensures the placeholder stays at the padding just like the native\n\t * caret does, and not at the edge of <figcaption>.\n\t */\n\t& .image > figcaption.ck-placeholder::before {\n\t\tpadding-left: inherit;\n\t\tpadding-right: inherit;\n\n\t\t/*\n\t\t * Make sure the image caption placeholder doesn\'t overflow the placeholder area.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\n\t\t */\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\n\t/*\n\t * Make sure the selected inline image always stays on top of its siblings.\n\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\n\t */\n\t& .image.ck-widget_selected {\n\t\tz-index: 1;\n\t}\n\n\t& .image-inline.ck-widget_selected {\n\t\tz-index: 1;\n\n\t\t/*\n\t\t * Make sure the native browser selection style is not displayed.\n\t\t * Inline image widgets have their own styles for the selected state and\n\t\t * leaving this up to the browser is asking for a visual collision.\n\t\t */\n\t\t& ::selection {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t/* The inline image nested in the table should have its original size if not resized.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\n\t& td,\n\t& th {\n\t\t& .image-inline img {\n\t\t\tmax-width: none;\n\t\t}\n\t}\n}\n',
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    2640: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ":root{--ck-color-image-caption-background:#f7f7f7;--ck-color-image-caption-text:#333;--ck-color-image-caption-highligted-background:#fd0}.ck-content .image>figcaption{background-color:var(--ck-color-image-caption-background);caption-side:bottom;color:var(--ck-color-image-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;word-break:break-word}.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:ck-image-caption-highlight .6s ease-out}@keyframes ck-image-caption-highlight{0%{background-color:var(--ck-color-image-caption-highligted-background)}to{background-color:var(--ck-color-image-caption-background)}}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-image/theme/imagecaption.css"],
                                names: [],
                                mappings:
                                    "AAKA,MACC,2CAAoD,CACpD,kCAA8C,CAC9C,mDACD,CAGA,8BAKC,yDAA0D,CAH1D,mBAAoB,CAEpB,wCAAyC,CAHzC,qBAAsB,CAMtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,qBAMD,CAGA,qEACC,iDACD,CAEA,sCACC,GACC,oEACD,CAEA,GACC,yDACD,CACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-image-caption-background: hsl(0, 0%, 97%);\n\t--ck-color-image-caption-text: hsl(0, 0%, 20%);\n\t--ck-color-image-caption-highligted-background: hsl(52deg 100% 50%);\n}\n\n/* Content styles */\n.ck-content .image > figcaption {\n\tdisplay: table-caption;\n\tcaption-side: bottom;\n\tword-break: break-word;\n\tcolor: var(--ck-color-image-caption-text);\n\tbackground-color: var(--ck-color-image-caption-background);\n\tpadding: .6em;\n\tfont-size: .75em;\n\toutline-offset: -1px;\n}\n\n/* Editing styles */\n.ck.ck-editor__editable .image > figcaption.image__caption_highlighted {\n\tanimation: ck-image-caption-highlight .6s ease-out;\n}\n\n@keyframes ck-image-caption-highlight {\n\t0% {\n\t\tbackground-color: var(--ck-color-image-caption-highligted-background);\n\t}\n\n\t100% {\n\t\tbackground-color: var(--ck-color-image-caption-background);\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    5083: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ":root{--ck-image-style-spacing:1.5em;--ck-inline-image-style-spacing:calc(var(--ck-image-style-spacing)/2)}.ck-content .image-style-block-align-left,.ck-content .image-style-block-align-right{max-width:calc(100% - var(--ck-image-style-spacing))}.ck-content .image-style-align-left,.ck-content .image-style-align-right{clear:none}.ck-content .image-style-side{float:right;margin-left:var(--ck-image-style-spacing);max-width:50%}.ck-content .image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image-style-align-center{margin-left:auto;margin-right:auto}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-image-style-spacing)}.ck-content .image-style-block-align-right{margin-left:auto;margin-right:0}.ck-content .image-style-block-align-left{margin-left:0;margin-right:auto}.ck-content p+.image-style-align-left,.ck-content p+.image-style-align-right,.ck-content p+.image-style-side{margin-top:0}.ck-content .image-inline.image-style-align-left,.ck-content .image-inline.image-style-align-right{margin-bottom:var(--ck-inline-image-style-spacing);margin-top:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-left{margin-right:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-right{margin-left:var(--ck-inline-image-style-spacing)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-background)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after{display:none}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-hover-background)}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-image/theme/imagestyle.css"],
                                names: [],
                                mappings:
                                    "AAKA,MACC,8BAA+B,CAC/B,qEACD,CAMC,qFAEC,oDACD,CAIA,yEAEC,UACD,CAEA,8BACC,WAAY,CACZ,yCAA0C,CAC1C,aACD,CAEA,oCACC,UAAW,CACX,0CACD,CAEA,sCACC,gBAAiB,CACjB,iBACD,CAEA,qCACC,WAAY,CACZ,yCACD,CAEA,2CAEC,gBAAiB,CADjB,cAED,CAEA,0CACC,aAAc,CACd,iBACD,CAGA,6GAGC,YACD,CAGC,mGAGC,kDAAmD,CADnD,+CAED,CAEA,iDACC,iDACD,CAEA,kDACC,gDACD,CAUC,0lBAGC,qDAKD,CAHC,8nBACC,YACD,CAKD,oVAGC,2DACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-image-style-spacing: 1.5em;\n\t--ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);\n}\n\n.ck-content {\n\t/* Provides a minimal side margin for the left and right aligned images, so that the user has a visual feedback\n\tconfirming successful application of the style if image width exceeds the editor's size.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9342 */\n\t& .image-style-block-align-left,\n\t& .image-style-block-align-right {\n\t\tmax-width: calc(100% - var(--ck-image-style-spacing));\n\t}\n\n\t/* Allows displaying multiple floating images in the same line.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9183#issuecomment-804988132 */\n\t& .image-style-align-left,\n\t& .image-style-align-right {\n\t\tclear: none;\n\t}\n\n\t& .image-style-side {\n\t\tfloat: right;\n\t\tmargin-left: var(--ck-image-style-spacing);\n\t\tmax-width: 50%;\n\t}\n\n\t& .image-style-align-left {\n\t\tfloat: left;\n\t\tmargin-right: var(--ck-image-style-spacing);\n\t}\n\n\t& .image-style-align-center {\n\t\tmargin-left: auto;\n\t\tmargin-right: auto;\n\t}\n\n\t& .image-style-align-right {\n\t\tfloat: right;\n\t\tmargin-left: var(--ck-image-style-spacing);\n\t}\n\n\t& .image-style-block-align-right {\n\t\tmargin-right: 0;\n\t\tmargin-left: auto;\n\t}\n\n\t& .image-style-block-align-left {\n\t\tmargin-left: 0;\n\t\tmargin-right: auto;\n\t}\n\n\t/* Simulates margin collapsing with the preceding paragraph, which does not work for the floating elements. */\n\t& p + .image-style-align-left,\n\t& p + .image-style-align-right,\n\t& p + .image-style-side {\n\t\tmargin-top: 0;\n\t}\n\n\t& .image-inline {\n\t\t&.image-style-align-left,\n\t\t&.image-style-align-right {\n\t\t\tmargin-top: var(--ck-inline-image-style-spacing);\n\t\t\tmargin-bottom: var(--ck-inline-image-style-spacing);\n\t\t}\n\n\t\t&.image-style-align-left {\n\t\t\tmargin-right: var(--ck-inline-image-style-spacing);\n\t\t}\n\n\t\t&.image-style-align-right {\n\t\t\tmargin-left: var(--ck-inline-image-style-spacing);\n\t\t}\n\t}\n}\n\n.ck.ck-splitbutton {\n\t/* The button should display as a regular drop-down if the action button\n\tis forced to fire the same action as the arrow button. */\n\t&.ck-splitbutton_flatten {\n\t\t&:hover,\n\t\t&.ck-splitbutton_open {\n\t\t\t& > .ck-splitbutton__action:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\n\t\t\t\tbackground-color: var(--ck-color-button-on-background);\n\n\t\t\t\t&::after {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.ck-splitbutton_open:hover {\n\t\t\t& > .ck-splitbutton__action:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\n\t\t\t\tbackground-color: var(--ck-color-button-on-hover-background);\n\t\t\t}\n\t\t}\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    4036: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            '.ck-image-upload-complete-icon{border-radius:50%;display:block;position:absolute;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);z-index:1}.ck-image-upload-complete-icon:after{content:"";position:absolute}:root{--ck-color-image-upload-icon:#fff;--ck-color-image-upload-icon-background:#008a00;--ck-image-upload-icon-size:20;--ck-image-upload-icon-width:2px;--ck-image-upload-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck-image-upload-complete-icon{animation-delay:0ms,3s;animation-duration:.5s,.5s;animation-fill-mode:forwards,forwards;animation-name:ck-upload-complete-icon-show,ck-upload-complete-icon-hide;background:var(--ck-color-image-upload-icon-background);font-size:calc(1px*var(--ck-image-upload-icon-size));height:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size));opacity:0;overflow:hidden;width:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size))}.ck-image-upload-complete-icon:after{animation-delay:.5s;animation-duration:.5s;animation-fill-mode:forwards;animation-name:ck-upload-complete-icon-check;border-right:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);border-top:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);box-sizing:border-box;height:0;left:25%;opacity:0;top:50%;transform:scaleX(-1) rotate(135deg);transform-origin:left top;width:0}@keyframes ck-upload-complete-icon-show{0%{opacity:0}to{opacity:1}}@keyframes ck-upload-complete-icon-hide{0%{opacity:1}to{opacity:0}}@keyframes ck-upload-complete-icon-check{0%{height:0;opacity:1;width:0}33%{height:0;width:.3em}to{height:.45em;opacity:1;width:.3em}}',
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-image/theme/imageuploadicon.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadicon.css"],
                                names: [],
                                mappings:
                                    "AAKA,+BAUC,iBAAkB,CATlB,aAAc,CACd,iBAAkB,CAOlB,sCAAwC,CADxC,oCAAsC,CAGtC,SAMD,CAJC,qCACC,UAAW,CACX,iBACD,CChBD,MACC,iCAA8C,CAC9C,+CAA4D,CAG5D,8BAA+B,CAC/B,gCAAiC,CACjC,4DACD,CAEA,+BAWC,sBAA4B,CAN5B,0BAAgC,CADhC,qCAAuC,CADvC,wEAA0E,CAD1E,uDAAwD,CAMxD,oDAAuD,CAWvD,oFAAuF,CAlBvF,SAAU,CAgBV,eAAgB,CAChB,mFA0BD,CAtBC,qCAgBC,mBAAsB,CADtB,sBAAyB,CAEzB,4BAA6B,CAH7B,4CAA6C,CAF7C,sFAAuF,CADvF,oFAAqF,CASrF,qBAAsB,CAdtB,QAAS,CAJT,QAAS,CAGT,SAAU,CADV,OAAQ,CAKR,mCAAoC,CACpC,yBAA0B,CAH1B,OAcD,CAGD,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,yCACC,GAGC,QAAS,CAFT,SAAU,CACV,OAED,CACA,IAEC,QAAS,CADT,UAED,CACA,GAGC,YAAc,CAFd,SAAU,CACV,UAED,CACD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-image-upload-complete-icon {\n\tdisplay: block;\n\tposition: absolute;\n\n\t/*\n\t * Smaller images should have the icon closer to the border.\n\t * Match the icon position with the linked image indicator brought by the link image feature.\n\t */\n\ttop: min(var(--ck-spacing-medium), 6%);\n\tright: min(var(--ck-spacing-medium), 6%);\n\tborder-radius: 50%;\n\tz-index: 1;\n\n\t&::after {\n\t\tcontent: "";\n\t\tposition: absolute;\n\t}\n}\n',
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-image-upload-icon: hsl(0, 0%, 100%);\n\t--ck-color-image-upload-icon-background: hsl(120, 100%, 27%);\n\n\t/* Match the icon size with the linked image indicator brought by the link image feature. */\n\t--ck-image-upload-icon-size: 20;\n\t--ck-image-upload-icon-width: 2px;\n\t--ck-image-upload-icon-is-visible: clamp(0px, 100% - 50px, 1px);\n}\n\n.ck-image-upload-complete-icon {\n\topacity: 0;\n\tbackground: var(--ck-color-image-upload-icon-background);\n\tanimation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide;\n\tanimation-fill-mode: forwards, forwards;\n\tanimation-duration: 500ms, 500ms;\n\n\t/* To make animation scalable. */\n\tfont-size: calc(1px * var(--ck-image-upload-icon-size));\n\n\t/* Hide completed upload icon after 3 seconds. */\n\tanimation-delay: 0ms, 3000ms;\n\n\t/*\n\t * Use CSS math to simulate container queries.\n\t * https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things\n\t */\n\toverflow: hidden;\n\twidth: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\n\theight: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\n\n\t/* This is check icon element made from border-width mixed with animations. */\n\t&::after {\n\t\t/* Because of border transformation we need to "hard code" left position. */\n\t\tleft: 25%;\n\n\t\ttop: 50%;\n\t\topacity: 0;\n\t\theight: 0;\n\t\twidth: 0;\n\n\t\ttransform: scaleX(-1) rotate(135deg);\n\t\ttransform-origin: left top;\n\t\tborder-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\n\t\tborder-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\n\n\t\tanimation-name: ck-upload-complete-icon-check;\n\t\tanimation-duration: 500ms;\n\t\tanimation-delay: 500ms;\n\t\tanimation-fill-mode: forwards;\n\n\t\t/* #1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */\n\t\tbox-sizing: border-box;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-show {\n\tfrom {\n\t\topacity: 0;\n\t}\n\n\tto {\n\t\topacity: 1;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-hide {\n\tfrom {\n\t\topacity: 1;\n\t}\n\n\tto {\n\t\topacity: 0;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-check {\n\t0% {\n\t\topacity: 1;\n\t\twidth: 0;\n\t\theight: 0;\n\t}\n\t33% {\n\t\twidth: 0.3em;\n\t\theight: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t\twidth: 0.3em;\n\t\theight: 0.45em;\n\t}\n}\n',
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    3773: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            '.ck .ck-upload-placeholder-loader{align-items:center;display:flex;justify-content:center;left:0;position:absolute;top:0}.ck .ck-upload-placeholder-loader:before{content:"";position:relative}:root{--ck-color-upload-placeholder-loader:#b3b3b3;--ck-upload-placeholder-loader-size:32px;--ck-upload-placeholder-image-aspect-ratio:2.8}.ck .ck-image-upload-placeholder{margin:0;width:100%}.ck .ck-image-upload-placeholder.image-inline{width:calc(var(--ck-upload-placeholder-loader-size)*2*var(--ck-upload-placeholder-image-aspect-ratio))}.ck .ck-image-upload-placeholder img{aspect-ratio:var(--ck-upload-placeholder-image-aspect-ratio)}.ck .ck-upload-placeholder-loader{height:100%;width:100%}.ck .ck-upload-placeholder-loader:before{animation:ck-upload-placeholder-loader 1s linear infinite;border-radius:50%;border-right:2px solid transparent;border-top:3px solid var(--ck-color-upload-placeholder-loader);height:var(--ck-upload-placeholder-loader-size);width:var(--ck-upload-placeholder-loader-size)}@keyframes ck-upload-placeholder-loader{to{transform:rotate(1turn)}}',
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-image/theme/imageuploadloader.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadloader.css"],
                                names: [],
                                mappings:
                                    "AAKA,kCAGC,kBAAmB,CADnB,YAAa,CAEb,sBAAuB,CAEvB,MAAO,CALP,iBAAkB,CAIlB,KAOD,CAJC,yCACC,UAAW,CACX,iBACD,CCXD,MACC,4CAAqD,CACrD,wCAAyC,CACzC,8CACD,CAEA,iCAGC,QAAS,CADT,UAgBD,CAbC,8CACC,sGACD,CAEA,qCAOC,4DACD,CAGD,kCAEC,WAAY,CADZ,UAWD,CARC,yCAMC,yDAA0D,CAH1D,iBAAkB,CAElB,kCAAmC,CADnC,8DAA+D,CAF/D,+CAAgD,CADhD,8CAMD,CAGD,wCACC,GACC,uBACD,CACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-upload-placeholder-loader {\n\tposition: absolute;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttop: 0;\n\tleft: 0;\n\n\t&::before {\n\t\tcontent: '';\n\t\tposition: relative;\n\t}\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-upload-placeholder-loader: hsl(0, 0%, 70%);\n\t--ck-upload-placeholder-loader-size: 32px;\n\t--ck-upload-placeholder-image-aspect-ratio: 2.8;\n}\n\n.ck .ck-image-upload-placeholder {\n\t/* We need to control the full width of the SVG gray background. */\n\twidth: 100%;\n\tmargin: 0;\n\n\t&.image-inline {\n\t\twidth: calc( 2 * var(--ck-upload-placeholder-loader-size) * var(--ck-upload-placeholder-image-aspect-ratio) );\n\t}\n\n\t& img {\n\t\t/*\n\t\t * This is an arbitrary aspect for a 1x1 px GIF to display to the user. Not too tall, not too short.\n\t\t * There's nothing special about this number except that it should make the image placeholder look like\n\t\t * a real image during this short period after the upload started and before the image was read from the\n\t\t * file system (and a rich preview was loaded).\n\t\t */\n\t\taspect-ratio: var(--ck-upload-placeholder-image-aspect-ratio);\n\t}\n}\n\n.ck .ck-upload-placeholder-loader {\n\twidth: 100%;\n\theight: 100%;\n\n\t&::before {\n\t\twidth: var(--ck-upload-placeholder-loader-size);\n\t\theight: var(--ck-upload-placeholder-loader-size);\n\t\tborder-radius: 50%;\n\t\tborder-top: 3px solid var(--ck-color-upload-placeholder-loader);\n\t\tborder-right: 2px solid transparent;\n\t\tanimation: ck-upload-placeholder-loader 1s linear infinite;\n\t}\n}\n\n@keyframes ck-upload-placeholder-loader {\n\tto {\n\t\ttransform: rotate( 360deg );\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    3689: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-editor__editable .image,.ck.ck-editor__editable .image-inline{position:relative}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{left:0;position:absolute;top:0}.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:fadeIn .7s}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{background:var(--ck-color-upload-bar-background);height:2px;transition:width .1s;width:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-image/theme/imageuploadprogress.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadprogress.css"],
                                names: [],
                                mappings: "AAMC,qEAEC,iBACD,CAGA,uGAIC,MAAO,CAFP,iBAAkB,CAClB,KAED,CCRC,yFACC,oBACD,CAID,uGAIC,gDAAiD,CAFjD,UAAW,CAGX,oBAAuB,CAFvB,OAGD,CAGD,kBACC,GAAO,SAAY,CACnB,GAAO,SAAY,CACpB",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t& .image,\n\t& .image-inline {\n\t\tposition: relative;\n\t}\n\n\t/* Upload progress bar. */\n\t& .image .ck-progress-bar,\n\t& .image-inline .ck-progress-bar {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t}\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t& .image,\n\t& .image-inline {\n\t\t/* Showing animation. */\n\t\t&.ck-appear {\n\t\t\tanimation: fadeIn 700ms;\n\t\t}\n\t}\n\n\t/* Upload progress bar. */\n\t& .image .ck-progress-bar,\n\t& .image-inline .ck-progress-bar {\n\t\theight: 2px;\n\t\twidth: 0;\n\t\tbackground: var(--ck-color-upload-bar-background);\n\t\ttransition: width 100ms;\n\t}\n}\n\n@keyframes fadeIn {\n\tfrom { opacity: 0; }\n\tto   { opacity: 1; }\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    1905: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-text-alternative-form{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-text-alternative-form .ck-labeled-field-view{display:inline-block}.ck.ck-text-alternative-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-text-alternative-form{flex-wrap:wrap}.ck.ck-text-alternative-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-text-alternative-form .ck-button{flex-basis:50%}}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-image/theme/textalternativeform.css", "webpack://./../ckeditor5-ui/theme/mixins/_rwd.css"],
                                names: [],
                                mappings: "AAOA,6BACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,oDACC,oBACD,CAEA,uCACC,YACD,CCZA,oCDCD,6BAcE,cAUF,CARE,oDACC,eACD,CAEA,wCACC,cACD,CCrBD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-text-alternative-form {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\n\t& .ck-labeled-field-view {\n\t\tdisplay: inline-block;\n\t}\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    9773: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck .ck-link_selected{background:var(--ck-color-link-selected-background)}.ck .ck-link_selected span.image-inline{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background)}.ck .ck-fake-link-selection{background:var(--ck-color-link-fake-selection)}.ck .ck-fake-link-selection_collapsed{border-right:1px solid var(--ck-color-base-text);height:100%;margin-right:-1px;outline:1px solid hsla(0,0%,100%,.5)}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-link/link.css"],
                                names: [],
                                mappings: "AAMA,sBACC,mDAMD,CAHC,wCACC,yFACD,CAOD,4BACC,8CACD,CAGA,sCAEC,gDAAiD,CADjD,WAAY,CAEZ,iBAAkB,CAClB,oCACD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Class added to span element surrounding currently selected link. */\n.ck .ck-link_selected {\n\tbackground: var(--ck-color-link-selected-background);\n\n\t/* Give linked inline images some outline to let the user know they are also part of the link. */\n\t& span.image-inline {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background);\n\t}\n}\n\n/*\n * Classes used by the "fake visual selection" displayed in the content when an input\n * in the link UI has focus (the browser does not render the native selection in this state).\n */\n.ck .ck-fake-link-selection {\n\tbackground: var(--ck-color-link-fake-selection);\n}\n\n/* A collapsed fake visual selection. */\n.ck .ck-fake-link-selection_collapsed {\n\theight: 100%;\n\tborder-right: 1px solid var(--ck-color-base-text);\n\tmargin-right: -1px;\n\toutline: solid 1px hsla(0, 0%, 100%, .5);\n}\n',
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    2347: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-link-actions{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-link-actions .ck-link-actions__preview{display:inline-block}.ck.ck-link-actions .ck-link-actions__preview .ck-button__label{overflow:hidden}@media screen and (max-width:600px){.ck.ck-link-actions{flex-wrap:wrap}.ck.ck-link-actions .ck-link-actions__preview{flex-basis:100%}.ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){flex-basis:50%}}.ck.ck-link-actions .ck-button.ck-link-actions__preview{padding-left:0;padding-right:0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{color:var(--ck-color-link-default);cursor:pointer;max-width:var(--ck-input-width);min-width:3em;padding:0 var(--ck-spacing-medium);text-align:center;text-overflow:ellipsis}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label:hover{text-decoration:underline}.ck.ck-link-actions .ck-button.ck-link-actions__preview,.ck.ck-link-actions .ck-button.ck-link-actions__preview:active,.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus,.ck.ck-link-actions .ck-button.ck-link-actions__preview:hover{background:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:active{box-shadow:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus .ck-button__label{text-decoration:underline}[dir=ltr] .ck.ck-link-actions .ck-button:not(:first-child),[dir=rtl] .ck.ck-link-actions .ck-button:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-link-actions .ck-button.ck-link-actions__preview{margin:var(--ck-spacing-standard) var(--ck-spacing-standard) 0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{max-width:100%;min-width:0}[dir=ltr] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview),[dir=rtl] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){margin-left:0}}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-link/theme/linkactions.css", "webpack://./../ckeditor5-ui/theme/mixins/_rwd.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-link/linkactions.css"],
                                names: [],
                                mappings:
                                    "AAOA,oBACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,8CACC,oBAKD,CAHC,gEACC,eACD,CCXD,oCDCD,oBAcE,cAUF,CARE,8CACC,eACD,CAEA,8DACC,cACD,CCrBD,CCIA,wDACC,cAAe,CACf,eAmCD,CAjCC,0EAEC,kCAAmC,CAEnC,cAAe,CAIf,+BAAgC,CAChC,aAAc,CARd,kCAAmC,CASnC,iBAAkB,CAPlB,sBAYD,CAHC,gFACC,yBACD,CAGD,mPAIC,eACD,CAEA,+DACC,eACD,CAGC,gFACC,yBACD,CAWD,qHACC,sCACD,CDtDD,oCC0DC,wDACC,8DAMD,CAJC,0EAEC,cAAe,CADf,WAED,CAGD,gJAME,aAEF,CDzED",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-link-actions {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\n\t& .ck-link-actions__preview {\n\t\tdisplay: inline-block;\n\n\t\t& .ck-button__label {\n\t\t\toverflow: hidden;\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-link-actions__preview {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button:not(.ck-link-actions__preview) {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../mixins/_focus.css";\n@import "../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-link-actions {\n\t& .ck-button.ck-link-actions__preview {\n\t\tpadding-left: 0;\n\t\tpadding-right: 0;\n\n\t\t& .ck-button__label {\n\t\t\tpadding: 0 var(--ck-spacing-medium);\n\t\t\tcolor: var(--ck-color-link-default);\n\t\t\ttext-overflow: ellipsis;\n\t\t\tcursor: pointer;\n\n\t\t\t/* Match the box model of the link editor form\'s input so the balloon\n\t\t\tdoes not change width when moving between actions and the form. */\n\t\t\tmax-width: var(--ck-input-width);\n\t\t\tmin-width: 3em;\n\t\t\ttext-align: center;\n\n\t\t\t&:hover {\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t\t&,\n\t\t&:hover,\n\t\t&:focus,\n\t\t&:active {\n\t\t\tbackground: none;\n\t\t}\n\n\t\t&:active {\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t&:focus {\n\t\t\t& .ck-button__label {\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& .ck-button:not(:first-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& .ck-button:not(:last-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\t& .ck-button.ck-link-actions__preview {\n\t\t\tmargin: var(--ck-spacing-standard) var(--ck-spacing-standard) 0;\n\n\t\t\t& .ck-button__label {\n\t\t\t\tmin-width: 0;\n\t\t\t\tmax-width: 100%;\n\t\t\t}\n\t\t}\n\n\t\t& .ck-button:not(.ck-link-actions__preview) {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n',
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    7754: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-link-form{display:flex}.ck.ck-link-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-link-form{flex-wrap:wrap}.ck.ck-link-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-link-form .ck-button{flex-basis:50%}}.ck.ck-link-form_layout-vertical{display:block}.ck.ck-link-form_layout-vertical .ck-button.ck-button-cancel,.ck.ck-link-form_layout-vertical .ck-button.ck-button-save{margin-top:var(--ck-spacing-medium)}.ck.ck-link-form_layout-vertical{min-width:var(--ck-input-width);padding:0}.ck.ck-link-form_layout-vertical .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small)}.ck.ck-link-form_layout-vertical .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-link-form_layout-vertical>.ck-button{border-radius:0;margin:0;padding:var(--ck-spacing-standard);width:50%}.ck.ck-link-form_layout-vertical>.ck-button:not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-link-form_layout-vertical>.ck-button,[dir=rtl] .ck.ck-link-form_layout-vertical>.ck-button{margin-left:0}[dir=rtl] .ck.ck-link-form_layout-vertical>.ck-button:last-of-type{border-right:1px solid var(--ck-color-base-border)}.ck.ck-link-form_layout-vertical .ck.ck-list{margin:var(--ck-spacing-standard) var(--ck-spacing-large)}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton{padding:0;width:100%}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton:hover{background:none}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-link/theme/linkform.css", "webpack://./../ckeditor5-ui/theme/mixins/_rwd.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-link/linkform.css"],
                                names: [],
                                mappings:
                                    "AAOA,iBACC,YAiBD,CAfC,2BACC,YACD,CCNA,oCDCD,iBAQE,cAUF,CARE,wCACC,eACD,CAEA,4BACC,cACD,CCfD,CDuBD,iCACC,aAYD,CALE,wHAEC,mCACD,CE/BF,iCAEC,+BAAgC,CADhC,SAgDD,CA7CC,wDACC,8EAMD,CAJC,uEACC,WAAY,CACZ,UACD,CAGD,4CAIC,eAAgB,CAFhB,QAAS,CADT,kCAAmC,CAEnC,SAkBD,CAfC,wDACC,gDACD,CARD,4GAeE,aAMF,CAJE,mEACC,kDACD,CAKF,6CACC,yDAUD,CARC,wEACC,SAAU,CACV,UAKD,CAHC,8EACC,eACD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-link-form {\n\tdisplay: flex;\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n\n/*\n * Style link form differently when manual decorators are available.\n * See: https://github.com/ckeditor/ckeditor5-link/issues/186.\n */\n.ck.ck-link-form_layout-vertical {\n\tdisplay: block;\n\n\t/*\n\t * Whether the form is in the responsive mode or not, if there are decorator buttons\n\t * keep the top margin of action buttons medium.\n\t */\n\t& .ck-button {\n\t\t&.ck-button-save,\n\t\t&.ck-button-cancel {\n\t\t\tmargin-top: var(--ck-spacing-medium);\n\t\t}\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n/*\n * Style link form differently when manual decorators are available.\n * See: https://github.com/ckeditor/ckeditor5-link/issues/186.\n */\n.ck.ck-link-form_layout-vertical {\n\tpadding: 0;\n\tmin-width: var(--ck-input-width);\n\n\t& .ck-labeled-field-view {\n\t\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small);\n\n\t\t& .ck-input-text {\n\t\t\tmin-width: 0;\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\t& > .ck-button {\n\t\tpadding: var(--ck-spacing-standard);\n\t\tmargin: 0;\n\t\twidth: 50%;\n\t\tborder-radius: 0;\n\n\t\t&:not(:focus) {\n\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t\t}\n\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-left: 0;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-left: 0;\n\n\t\t\t&:last-of-type {\n\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Using additional `.ck` class for stronger CSS specificity than `.ck.ck-link-form > :not(:first-child)`. */\n\t& .ck.ck-list {\n\t\tmargin: var(--ck-spacing-standard) var(--ck-spacing-large);\n\n\t\t& .ck-button.ck-switchbutton {\n\t\t\tpadding: 0;\n\t\t\twidth: 100%;\n\n\t\t\t&:hover {\n\t\t\t\tbackground: none;\n\t\t\t}\n\t\t}\n\t}\n}\n',
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    4652: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck-content .media{clear:both;display:block;margin:.9em 0;min-width:15em}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-media-embed/theme/mediaembed.css"],
                                names: [],
                                mappings: "AAKA,mBAGC,UAAW,CASX,aAAc,CAJd,aAAe,CAQf,cACD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content .media {\n\t/* Don\'t allow floated content overlap the media.\n\thttps://github.com/ckeditor/ckeditor5-media-embed/issues/53 */\n\tclear: both;\n\n\t/* Make sure there is some space between the content and the media. */\n\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\tmargin: 0.9em 0;\n\n\t/* Make sure media is not overriden with Bootstrap default `flex` value.\n\tSee: https://github.com/ckeditor/ckeditor5/issues/1373. */\n\tdisplay: block;\n\n\t/* Give the media some minimal width in the content to prevent them\n\tfrom being "squashed" in tight spaces, e.g. in table cells (#44) */\n\tmin-width: 15em;\n}\n',
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    7442: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            '.ck-media__wrapper .ck-media__placeholder{align-items:center;display:flex;flex-direction:column}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url{max-width:100%;position:relative}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-media__placeholder__url__text{display:block;overflow:hidden}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck-media__placeholder__icon *{display:none}.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper>:not(.ck-media__placeholder),.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder{pointer-events:none}:root{--ck-media-embed-placeholder-icon-size:3em;--ck-color-media-embed-placeholder-url-text:#757575;--ck-color-media-embed-placeholder-url-text-hover:var(--ck-color-base-text)}.ck-media__wrapper{margin:0 auto}.ck-media__wrapper .ck-media__placeholder{background:var(--ck-color-base-foreground);padding:calc(var(--ck-spacing-standard)*3)}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon{background-position:50%;background-size:cover;height:var(--ck-media-embed-placeholder-icon-size);margin-bottom:var(--ck-spacing-large);min-width:var(--ck-media-embed-placeholder-icon-size)}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon .ck-icon{height:100%;width:100%}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text{color:var(--ck-color-media-embed-placeholder-url-text);font-style:italic;text-align:center;text-overflow:ellipsis;white-space:nowrap}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:var(--ck-color-media-embed-placeholder-url-text-hover);cursor:pointer;text-decoration:underline}.ck-media__wrapper[data-oembed-url*="open.spotify.com"]{max-height:380px;max-width:300px}.ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Im0yMDYuNDc3IDI2MC45LTI4Ljk4NyAyOC45ODdhNS4yMTggNS4yMTggMCAwIDAgMy43OCAxLjYxaDQ5LjYyMWMxLjY5NCAwIDMuMTktLjc5OCA0LjE0Ni0yLjAzN3oiIGZpbGw9IiM1Yzg4YzUiLz48cGF0aCBkPSJNMjI2Ljc0MiAyMjIuOTg4Yy05LjI2NiAwLTE2Ljc3NyA3LjE3LTE2Ljc3NyAxNi4wMTQuMDA3IDIuNzYyLjY2MyA1LjQ3NCAyLjA5MyA3Ljg3NS40My43MDMuODMgMS40MDggMS4xOSAyLjEwNy4zMzMuNTAyLjY1IDEuMDA1Ljk1IDEuNTA4LjM0My40NzcuNjczLjk1Ny45ODggMS40NCAxLjMxIDEuNzY5IDIuNSAzLjUwMiAzLjYzNyA1LjE2OC43OTMgMS4yNzUgMS42ODMgMi42NCAyLjQ2NiAzLjk5IDIuMzYzIDQuMDk0IDQuMDA3IDguMDkyIDQuNiAxMy45MTR2LjAxMmMuMTgyLjQxMi41MTYuNjY2Ljg3OS42NjcuNDAzLS4wMDEuNzY4LS4zMTQuOTMtLjc5OS42MDMtNS43NTYgMi4yMzgtOS43MjkgNC41ODUtMTMuNzk0Ljc4Mi0xLjM1IDEuNjczLTIuNzE1IDIuNDY1LTMuOTkgMS4xMzctMS42NjYgMi4zMjgtMy40IDMuNjM4LTUuMTY5LjMxNS0uNDgyLjY0NS0uOTYyLjk4OC0xLjQzOS4zLS41MDMuNjE3LTEuMDA2Ljk1LTEuNTA4LjM1OS0uNy43Ni0xLjQwNCAxLjE5LTIuMTA3IDEuNDI2LTIuNDAyIDItNS4xMTQgMi4wMDQtNy44NzUgMC04Ljg0NC03LjUxMS0xNi4wMTQtMTYuNzc2LTE2LjAxNHoiIGZpbGw9IiNkZDRiM2UiIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PGVsbGlwc2Ugcnk9IjUuNTY0IiByeD0iNS44MjgiIGN5PSIyMzkuMDAyIiBjeD0iMjI2Ljc0MiIgZmlsbD0iIzgwMmQyNyIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMTkwLjMwMSAyMzcuMjgzYy00LjY3IDAtOC40NTcgMy44NTMtOC40NTcgOC42MDZzMy43ODYgOC42MDcgOC40NTcgOC42MDdjMy4wNDMgMCA0LjgwNi0uOTU4IDYuMzM3LTIuNTE2IDEuNTMtMS41NTcgMi4wODctMy45MTMgMi4wODctNi4yOSAwLS4zNjItLjAyMy0uNzIyLS4wNjQtMS4wNzloLTguMjU3djMuMDQzaDQuODVjLS4xOTcuNzU5LS41MzEgMS40NS0xLjA1OCAxLjk4Ni0uOTQyLjk1OC0yLjAyOCAxLjU0OC0zLjkwMSAxLjU0OC0yLjg3NiAwLTUuMjA4LTIuMzcyLTUuMjA4LTUuMjk5IDAtMi45MjYgMi4zMzItNS4yOTkgNS4yMDgtNS4yOTkgMS4zOTkgMCAyLjYxOC40MDcgMy41ODQgMS4yOTNsMi4zODEtMi4zOGMwLS4wMDItLjAwMy0uMDA0LS4wMDQtLjAwNS0xLjU4OC0xLjUyNC0zLjYyLTIuMjE1LTUuOTU1LTIuMjE1em00LjQzIDUuNjYuMDAzLjAwNnYtLjAwM3oiIGZpbGw9IiNmZmYiIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0ibTIxNS4xODQgMjUxLjkyOS03Ljk4IDcuOTc5IDI4LjQ3NyAyOC40NzVhNS4yMzMgNS4yMzMgMCAwIDAgLjQ0OS0yLjEyM3YtMzEuMTY1Yy0uNDY5LjY3NS0uOTM0IDEuMzQ5LTEuMzgyIDIuMDA1LS43OTIgMS4yNzUtMS42ODIgMi42NC0yLjQ2NSAzLjk5LTIuMzQ3IDQuMDY1LTMuOTgyIDguMDM4LTQuNTg1IDEzLjc5NC0uMTYyLjQ4NS0uNTI3Ljc5OC0uOTMuNzk5LS4zNjMtLjAwMS0uNjk3LS4yNTUtLjg3OS0uNjY3di0uMDEyYy0uNTkzLTUuODIyLTIuMjM3LTkuODItNC42LTEzLjkxNC0uNzgzLTEuMzUtMS42NzMtMi43MTUtMi40NjYtMy45OS0xLjEzNy0xLjY2Ni0yLjMyNy0zLjQtMy42MzctNS4xNjlsLS4wMDItLjAwM3oiIGZpbGw9IiNjM2MzYzMiLz48cGF0aCBkPSJtMjEyLjk4MyAyNDguNDk1LTM2Ljk1MiAzNi45NTN2LjgxMmE1LjIyNyA1LjIyNyAwIDAgMCA1LjIzOCA1LjIzOGgxLjAxNWwzNS42NjYtMzUuNjY2YTEzNi4yNzUgMTM2LjI3NSAwIDAgMC0yLjc2NC0zLjkgMzcuNTc1IDM3LjU3NSAwIDAgMC0uOTg5LTEuNDQgMzUuMTI3IDM1LjEyNyAwIDAgMC0uOTUtMS41MDhjLS4wODMtLjE2Mi0uMTc2LS4zMjYtLjI2NC0uNDg5eiIgZmlsbD0iI2ZkZGM0ZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJtMjExLjk5OCAyNjEuMDgzLTYuMTUyIDYuMTUxIDI0LjI2NCAyNC4yNjRoLjc4MWE1LjIyNyA1LjIyNyAwIDAgMCA1LjIzOS01LjIzOHYtMS4wNDV6IiBmaWxsPSIjZmZmIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjwvZz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder{background:#4268b3}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05NjcuNDg0IDBINTYuNTE3QzI1LjMwNCAwIDAgMjUuMzA0IDAgNTYuNTE3djkxMC45NjZDMCA5OTguNjk0IDI1LjI5NyAxMDI0IDU2LjUyMiAxMDI0SDU0N1Y2MjhINDE0VjQ3M2gxMzNWMzU5LjAyOWMwLTEzMi4yNjIgODAuNzczLTIwNC4yODIgMTk4Ljc1Ni0yMDQuMjgyIDU2LjUxMyAwIDEwNS4wODYgNC4yMDggMTE5LjI0NCA2LjA4OVYyOTlsLTgxLjYxNi4wMzdjLTYzLjk5MyAwLTc2LjM4NCAzMC40OTItNzYuMzg0IDc1LjIzNlY0NzNoMTUzLjQ4N2wtMTkuOTg2IDE1NUg3MDd2Mzk2aDI2MC40ODRjMzEuMjEzIDAgNTYuNTE2LTI1LjMwMyA1Ni41MTYtNTYuNTE2VjU2LjUxNUMxMDI0IDI1LjMwMyA5OTguNjk3IDAgOTY3LjQ4NCAwIiBmaWxsPSIjRkZGRkZFIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text{color:#cdf}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder{background:linear-gradient(-135deg,#1400c7,#b800b1,#f50000)}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTA0IiBoZWlnaHQ9IjUwNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIC4xNTloNTAzLjg0MVY1MDMuOTRIMHoiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+PHVzZSB4bGluazpocmVmPSIjYSIvPjwvbWFzaz48cGF0aCBkPSJNMjUxLjkyMS4xNTljLTY4LjQxOCAwLTc2Ljk5Ny4yOS0xMDMuODY3IDEuNTE2LTI2LjgxNCAxLjIyMy00NS4xMjcgNS40ODItNjEuMTUxIDExLjcxLTE2LjU2NiA2LjQzNy0zMC42MTUgMTUuMDUxLTQ0LjYyMSAyOS4wNTYtMTQuMDA1IDE0LjAwNi0yMi42MTkgMjguMDU1LTI5LjA1NiA0NC42MjEtNi4yMjggMTYuMDI0LTEwLjQ4NyAzNC4zMzctMTEuNzEgNjEuMTUxQy4yOSAxNzUuMDgzIDAgMTgzLjY2MiAwIDI1Mi4wOGMwIDY4LjQxNy4yOSA3Ni45OTYgMS41MTYgMTAzLjg2NiAxLjIyMyAyNi44MTQgNS40ODIgNDUuMTI3IDExLjcxIDYxLjE1MSA2LjQzNyAxNi41NjYgMTUuMDUxIDMwLjYxNSAyOS4wNTYgNDQuNjIxIDE0LjAwNiAxNC4wMDUgMjguMDU1IDIyLjYxOSA0NC42MjEgMjkuMDU3IDE2LjAyNCA2LjIyNyAzNC4zMzcgMTAuNDg2IDYxLjE1MSAxMS43MDkgMjYuODcgMS4yMjYgMzUuNDQ5IDEuNTE2IDEwMy44NjcgMS41MTYgNjguNDE3IDAgNzYuOTk2LS4yOSAxMDMuODY2LTEuNTE2IDI2LjgxNC0xLjIyMyA0NS4xMjctNS40ODIgNjEuMTUxLTExLjcwOSAxNi41NjYtNi40MzggMzAuNjE1LTE1LjA1MiA0NC42MjEtMjkuMDU3IDE0LjAwNS0xNC4wMDYgMjIuNjE5LTI4LjA1NSAyOS4wNTctNDQuNjIxIDYuMjI3LTE2LjAyNCAxMC40ODYtMzQuMzM3IDExLjcwOS02MS4xNTEgMS4yMjYtMjYuODcgMS41MTYtMzUuNDQ5IDEuNTE2LTEwMy44NjYgMC02OC40MTgtLjI5LTc2Ljk5Ny0xLjUxNi0xMDMuODY3LTEuMjIzLTI2LjgxNC01LjQ4Mi00NS4xMjctMTEuNzA5LTYxLjE1MS02LjQzOC0xNi41NjYtMTUuMDUyLTMwLjYxNS0yOS4wNTctNDQuNjIxLTE0LjAwNi0xNC4wMDUtMjguMDU1LTIyLjYxOS00NC42MjEtMjkuMDU2LTE2LjAyNC02LjIyOC0zNC4zMzctMTAuNDg3LTYxLjE1MS0xMS43MUMzMjguOTE3LjQ0OSAzMjAuMzM4LjE1OSAyNTEuOTIxLjE1OVptMCA0NS4zOTFjNjcuMjY1IDAgNzUuMjMzLjI1NyAxMDEuNzk3IDEuNDY5IDI0LjU2MiAxLjEyIDM3LjkwMSA1LjIyNCA0Ni43NzggOC42NzQgMTEuNzU5IDQuNTcgMjAuMTUxIDEwLjAyOSAyOC45NjYgMTguODQ1IDguODE2IDguODE1IDE0LjI3NSAxNy4yMDcgMTguODQ1IDI4Ljk2NiAzLjQ1IDguODc3IDcuNTU0IDIyLjIxNiA4LjY3NCA0Ni43NzggMS4yMTIgMjYuNTY0IDEuNDY5IDM0LjUzMiAxLjQ2OSAxMDEuNzk4IDAgNjcuMjY1LS4yNTcgNzUuMjMzLTEuNDY5IDEwMS43OTctMS4xMiAyNC41NjItNS4yMjQgMzcuOTAxLTguNjc0IDQ2Ljc3OC00LjU3IDExLjc1OS0xMC4wMjkgMjAuMTUxLTE4Ljg0NSAyOC45NjYtOC44MTUgOC44MTYtMTcuMjA3IDE0LjI3NS0yOC45NjYgMTguODQ1LTguODc3IDMuNDUtMjIuMjE2IDcuNTU0LTQ2Ljc3OCA4LjY3NC0yNi41NiAxLjIxMi0zNC41MjcgMS40NjktMTAxLjc5NyAxLjQ2OS02Ny4yNzEgMC03NS4yMzctLjI1Ny0xMDEuNzk4LTEuNDY5LTI0LjU2Mi0xLjEyLTM3LjkwMS01LjIyNC00Ni43NzgtOC42NzQtMTEuNzU5LTQuNTctMjAuMTUxLTEwLjAyOS0yOC45NjYtMTguODQ1LTguODE1LTguODE1LTE0LjI3NS0xNy4yMDctMTguODQ1LTI4Ljk2Ni0zLjQ1LTguODc3LTcuNTU0LTIyLjIxNi04LjY3NC00Ni43NzgtMS4yMTItMjYuNTY0LTEuNDY5LTM0LjUzMi0xLjQ2OS0xMDEuNzk3IDAtNjcuMjY2LjI1Ny03NS4yMzQgMS40NjktMTAxLjc5OCAxLjEyLTI0LjU2MiA1LjIyNC0zNy45MDEgOC42NzQtNDYuNzc4IDQuNTctMTEuNzU5IDEwLjAyOS0yMC4xNTEgMTguODQ1LTI4Ljk2NiA4LjgxNS04LjgxNiAxNy4yMDctMTQuMjc1IDI4Ljk2Ni0xOC44NDUgOC44NzctMy40NSAyMi4yMTYtNy41NTQgNDYuNzc4LTguNjc0IDI2LjU2NC0xLjIxMiAzNC41MzItMS40NjkgMTAxLjc5OC0xLjQ2OVoiIGZpbGw9IiNGRkYiIG1hc2s9InVybCgjYikiLz48cGF0aCBkPSJNMjUxLjkyMSAzMzYuMDUzYy00Ni4zNzggMC04My45NzQtMzcuNTk2LTgzLjk3NC04My45NzMgMC00Ni4zNzggMzcuNTk2LTgzLjk3NCA4My45NzQtODMuOTc0IDQ2LjM3NyAwIDgzLjk3MyAzNy41OTYgODMuOTczIDgzLjk3NCAwIDQ2LjM3Ny0zNy41OTYgODMuOTczLTgzLjk3MyA4My45NzNabTAtMjEzLjMzOGMtNzEuNDQ3IDAtMTI5LjM2NSA1Ny45MTgtMTI5LjM2NSAxMjkuMzY1IDAgNzEuNDQ2IDU3LjkxOCAxMjkuMzY0IDEyOS4zNjUgMTI5LjM2NCA3MS40NDYgMCAxMjkuMzY0LTU3LjkxOCAxMjkuMzY0LTEyOS4zNjQgMC03MS40NDctNTcuOTE4LTEyOS4zNjUtMTI5LjM2NC0xMjkuMzY1Wk00MTYuNjI3IDExNy42MDRjMCAxNi42OTYtMTMuNTM1IDMwLjIzLTMwLjIzMSAzMC4yMy0xNi42OTUgMC0zMC4yMy0xMy41MzQtMzAuMjMtMzAuMjMgMC0xNi42OTYgMTMuNTM1LTMwLjIzMSAzMC4yMy0zMC4yMzEgMTYuNjk2IDAgMzAuMjMxIDEzLjUzNSAzMC4yMzEgMzAuMjMxIiBmaWxsPSIjRkZGIi8+PC9nPjwvc3ZnPg==)}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text{color:#ffe0fe}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder{background:linear-gradient(90deg,#71c6f4,#0d70a5)}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MDAgNDAwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBkPSJNNDAwIDIwMGMwIDExMC41LTg5LjUgMjAwLTIwMCAyMDBTMCAzMTAuNSAwIDIwMCA4OS41IDAgMjAwIDBzMjAwIDg5LjUgMjAwIDIwMHpNMTYzLjQgMzA1LjVjODguNyAwIDEzNy4yLTczLjUgMTM3LjItMTM3LjIgMC0yLjEgMC00LjItLjEtNi4yIDkuNC02LjggMTcuNi0xNS4zIDI0LjEtMjUtOC42IDMuOC0xNy45IDYuNC0yNy43IDcuNiAxMC02IDE3LjYtMTUuNCAyMS4yLTI2LjctOS4zIDUuNS0xOS42IDkuNS0zMC42IDExLjctOC44LTkuNC0yMS4zLTE1LjItMzUuMi0xNS4yLTI2LjYgMC00OC4yIDIxLjYtNDguMiA0OC4yIDAgMy44LjQgNy41IDEuMyAxMS00MC4xLTItNzUuNi0yMS4yLTk5LjQtNTAuNC00LjEgNy4xLTYuNSAxNS40LTYuNSAyNC4yIDAgMTYuNyA4LjUgMzEuNSAyMS41IDQwLjEtNy45LS4yLTE1LjMtMi40LTIxLjgtNnYuNmMwIDIzLjQgMTYuNiA0Mi44IDM4LjcgNDcuMy00IDEuMS04LjMgMS43LTEyLjcgMS43LTMuMSAwLTYuMS0uMy05LjEtLjkgNi4xIDE5LjIgMjMuOSAzMy4xIDQ1IDMzLjUtMTYuNSAxMi45LTM3LjMgMjAuNi01OS45IDIwLjYtMy45IDAtNy43LS4yLTExLjUtLjcgMjEuMSAxMy44IDQ2LjUgMjEuOCA3My43IDIxLjgiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text{color:#b8e6ff}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}',
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-media-embed/theme/mediaembedediting.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-media-embed/mediaembedediting.css"],
                                names: [],
                                mappings:
                                    "AAMC,0CAGC,kBAAmB,CAFnB,YAAa,CACb,qBAcD,CAXC,sEAEC,cAAe,CAEf,iBAMD,CAJC,wGAEC,aAAc,CADd,eAED,CAWD,6kBACC,YACD,CAYF,2LACC,mBACD,CC1CA,MACC,0CAA2C,CAE3C,mDAA4D,CAC5D,2EACD,CAEA,mBACC,aA+FD,CA7FC,0CAEC,0CAA2C,CAD3C,0CA6BD,CA1BC,uEAIC,uBAA2B,CAC3B,qBAAsB,CAHtB,kDAAmD,CACnD,qCAAsC,CAFtC,qDAUD,CAJC,gFAEC,WAAY,CADZ,UAED,CAGD,4EACC,sDAAuD,CAGvD,iBAAkB,CADlB,iBAAkB,CAElB,sBAAuB,CAHvB,kBAUD,CALC,kFACC,4DAA6D,CAC7D,cAAe,CACf,yBACD,CAIF,wDAEC,gBAAiB,CADjB,eAED,CAEA,4UAIC,wvGACD,CAEA,2EACC,kBAaD,CAXC,wGACC,orBACD,CAEA,6GACC,UAKD,CAHC,mHACC,UACD,CAIF,4EACC,2DAcD,CAZC,yGACC,4jHACD,CAGA,8GACC,aAKD,CAHC,oHACC,UACD,CAIF,6EAEC,iDAaD,CAXC,0GACC,wiCACD,CAEA,+GACC,aAKD,CAHC,qHACC,UACD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-media__wrapper {\n\t& .ck-media__placeholder {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\n\t\t& .ck-media__placeholder__url {\n\t\t\t/* Otherwise the URL will overflow when the content is very narrow. */\n\t\t\tmax-width: 100%;\n\n\t\t\tposition: relative;\n\n\t\t\t& .ck-media__placeholder__url__text {\n\t\t\t\toverflow: hidden;\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-oembed-url*="twitter.com"],\n\t&[data-oembed-url*="google.com/maps"],\n\t&[data-oembed-url*="goo.gl/maps"],\n\t&[data-oembed-url*="maps.google.com"],\n\t&[data-oembed-url*="maps.app.goo.gl"],\n\t&[data-oembed-url*="facebook.com"],\n\t&[data-oembed-url*="instagram.com"] {\n\t\t& .ck-media__placeholder__icon * {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n/* Disable all mouse interaction as long as the editor is not read–only.\n   https://github.com/ckeditor/ckeditor5-media-embed/issues/58 */\n.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper > *:not(.ck-media__placeholder) {\n\tpointer-events: none;\n}\n\n/* Disable all mouse interaction when the widget is not selected (e.g. to avoid opening links by accident).\n   https://github.com/ckeditor/ckeditor5-media-embed/issues/18 */\n.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder {\n\tpointer-events: none;\n}\n',
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-media-embed-placeholder-icon-size: 3em;\n\n\t--ck-color-media-embed-placeholder-url-text: hsl(0, 0%, 46%);\n\t--ck-color-media-embed-placeholder-url-text-hover: var(--ck-color-base-text);\n}\n\n.ck-media__wrapper {\n\tmargin: 0 auto;\n\n\t& .ck-media__placeholder {\n\t\tpadding: calc( 3 * var(--ck-spacing-standard) );\n\t\tbackground: var(--ck-color-base-foreground);\n\n\t\t& .ck-media__placeholder__icon {\n\t\t\tmin-width: var(--ck-media-embed-placeholder-icon-size);\n\t\t\theight: var(--ck-media-embed-placeholder-icon-size);\n\t\t\tmargin-bottom: var(--ck-spacing-large);\n\t\t\tbackground-position: center;\n\t\t\tbackground-size: cover;\n\n\t\t\t& .ck-icon {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t}\n\t\t}\n\n\t\t& .ck-media__placeholder__url__text {\n\t\t\tcolor: var(--ck-color-media-embed-placeholder-url-text);\n\t\t\twhite-space: nowrap;\n\t\t\ttext-align: center;\n\t\t\tfont-style: italic;\n\t\t\ttext-overflow: ellipsis;\n\n\t\t\t&:hover {\n\t\t\t\tcolor: var(--ck-color-media-embed-placeholder-url-text-hover);\n\t\t\t\tcursor: pointer;\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-oembed-url*="open.spotify.com"] {\n\t\tmax-width: 300px;\n\t\tmax-height: 380px;\n\t}\n\n\t&[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon,\n\t&[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon,\n\t&[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon,\n\t&[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon {\n\t\tbackground-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Ik0yMDYuNDc3IDI2MC45bC0yOC45ODcgMjguOTg3YTUuMjE4IDUuMjE4IDAgMCAwIDMuNzggMS42MWg0OS42MjFjMS42OTQgMCAzLjE5LS43OTggNC4xNDYtMi4wMzd6IiBmaWxsPSIjNWM4OGM1Ii8+PHBhdGggZD0iTTIyNi43NDIgMjIyLjk4OGMtOS4yNjYgMC0xNi43NzcgNy4xNy0xNi43NzcgMTYuMDE0LjAwNyAyLjc2Mi42NjMgNS40NzQgMi4wOTMgNy44NzUuNDMuNzAzLjgzIDEuNDA4IDEuMTkgMi4xMDcuMzMzLjUwMi42NSAxLjAwNS45NSAxLjUwOC4zNDMuNDc3LjY3My45NTcuOTg4IDEuNDQgMS4zMSAxLjc2OSAyLjUgMy41MDIgMy42MzcgNS4xNjguNzkzIDEuMjc1IDEuNjgzIDIuNjQgMi40NjYgMy45OSAyLjM2MyA0LjA5NCA0LjAwNyA4LjA5MiA0LjYgMTMuOTE0di4wMTJjLjE4Mi40MTIuNTE2LjY2Ni44NzkuNjY3LjQwMy0uMDAxLjc2OC0uMzE0LjkzLS43OTkuNjAzLTUuNzU2IDIuMjM4LTkuNzI5IDQuNTg1LTEzLjc5NC43ODItMS4zNSAxLjY3My0yLjcxNSAyLjQ2NS0zLjk5IDEuMTM3LTEuNjY2IDIuMzI4LTMuNCAzLjYzOC01LjE2OS4zMTUtLjQ4Mi42NDUtLjk2Mi45ODgtMS40MzkuMy0uNTAzLjYxNy0xLjAwNi45NS0xLjUwOC4zNTktLjcuNzYtMS40MDQgMS4xOS0yLjEwNyAxLjQyNi0yLjQwMiAyLTUuMTE0IDIuMDA0LTcuODc1IDAtOC44NDQtNy41MTEtMTYuMDE0LTE2Ljc3Ni0xNi4wMTR6IiBmaWxsPSIjZGQ0YjNlIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxlbGxpcHNlIHJ5PSI1LjU2NCIgcng9IjUuODI4IiBjeT0iMjM5LjAwMiIgY3g9IjIyNi43NDIiIGZpbGw9IiM4MDJkMjciIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0iTTE5MC4zMDEgMjM3LjI4M2MtNC42NyAwLTguNDU3IDMuODUzLTguNDU3IDguNjA2czMuNzg2IDguNjA3IDguNDU3IDguNjA3YzMuMDQzIDAgNC44MDYtLjk1OCA2LjMzNy0yLjUxNiAxLjUzLTEuNTU3IDIuMDg3LTMuOTEzIDIuMDg3LTYuMjkgMC0uMzYyLS4wMjMtLjcyMi0uMDY0LTEuMDc5aC04LjI1N3YzLjA0M2g0Ljg1Yy0uMTk3Ljc1OS0uNTMxIDEuNDUtMS4wNTggMS45ODYtLjk0Mi45NTgtMi4wMjggMS41NDgtMy45MDEgMS41NDgtMi44NzYgMC01LjIwOC0yLjM3Mi01LjIwOC01LjI5OSAwLTIuOTI2IDIuMzMyLTUuMjk5IDUuMjA4LTUuMjk5IDEuMzk5IDAgMi42MTguNDA3IDMuNTg0IDEuMjkzbDIuMzgxLTIuMzhjMC0uMDAyLS4wMDMtLjAwNC0uMDA0LS4wMDUtMS41ODgtMS41MjQtMy42Mi0yLjIxNS01Ljk1NS0yLjIxNXptNC40MyA1LjY2bC4wMDMuMDA2di0uMDAzeiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjE1LjE4NCAyNTEuOTI5bC03Ljk4IDcuOTc5IDI4LjQ3NyAyOC40NzVjLjI4Ny0uNjQ5LjQ0OS0xLjM2Ni40NDktMi4xMjN2LTMxLjE2NWMtLjQ2OS42NzUtLjkzNCAxLjM0OS0xLjM4MiAyLjAwNS0uNzkyIDEuMjc1LTEuNjgyIDIuNjQtMi40NjUgMy45OS0yLjM0NyA0LjA2NS0zLjk4MiA4LjAzOC00LjU4NSAxMy43OTQtLjE2Mi40ODUtLjUyNy43OTgtLjkzLjc5OS0uMzYzLS4wMDEtLjY5Ny0uMjU1LS44NzktLjY2N3YtLjAxMmMtLjU5My01LjgyMi0yLjIzNy05LjgyLTQuNi0xMy45MTQtLjc4My0xLjM1LTEuNjczLTIuNzE1LTIuNDY2LTMuOTktMS4xMzctMS42NjYtMi4zMjctMy40LTMuNjM3LTUuMTY5bC0uMDAyLS4wMDN6IiBmaWxsPSIjYzNjM2MzIi8+PHBhdGggZD0iTTIxMi45ODMgMjQ4LjQ5NWwtMzYuOTUyIDM2Ljk1M3YuODEyYTUuMjI3IDUuMjI3IDAgMCAwIDUuMjM4IDUuMjM4aDEuMDE1bDM1LjY2Ni0zNS42NjZhMTM2LjI3NSAxMzYuMjc1IDAgMCAwLTIuNzY0LTMuOSAzNy41NzUgMzcuNTc1IDAgMCAwLS45ODktMS40NGMtLjI5OS0uNTAzLS42MTYtMS4wMDYtLjk1LTEuNTA4LS4wODMtLjE2Mi0uMTc2LS4zMjYtLjI2NC0uNDg5eiIgZmlsbD0iI2ZkZGM0ZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjExLjk5OCAyNjEuMDgzbC02LjE1MiA2LjE1MSAyNC4yNjQgMjQuMjY0aC43ODFhNS4yMjcgNS4yMjcgMCAwIDAgNS4yMzktNS4yMzh2LTEuMDQ1eiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48L2c+PC9zdmc+);\n\t}\n\n\t&[data-oembed-url*="facebook.com"] .ck-media__placeholder {\n\t\tbackground: hsl(220, 46%, 48%);\n\n\t\t& .ck-media__placeholder__icon {\n\t\t\tbackground-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMDI0cHgiIGhlaWdodD0iMTAyNHB4IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPiAgICAgICAgPHRpdGxlPkZpbGwgMTwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz48L2RlZnM+ICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImZMb2dvX1doaXRlIiBmaWxsPSIjRkZGRkZFIj4gICAgICAgICAgICA8cGF0aCBkPSJNOTY3LjQ4NCwwIEw1Ni41MTcsMCBDMjUuMzA0LDAgMCwyNS4zMDQgMCw1Ni41MTcgTDAsOTY3LjQ4MyBDMCw5OTguNjk0IDI1LjI5NywxMDI0IDU2LjUyMiwxMDI0IEw1NDcsMTAyNCBMNTQ3LDYyOCBMNDE0LDYyOCBMNDE0LDQ3MyBMNTQ3LDQ3MyBMNTQ3LDM1OS4wMjkgQzU0NywyMjYuNzY3IDYyNy43NzMsMTU0Ljc0NyA3NDUuNzU2LDE1NC43NDcgQzgwMi4yNjksMTU0Ljc0NyA4NTAuODQyLDE1OC45NTUgODY1LDE2MC44MzYgTDg2NSwyOTkgTDc4My4zODQsMjk5LjAzNyBDNzE5LjM5MSwyOTkuMDM3IDcwNywzMjkuNTI5IDcwNywzNzQuMjczIEw3MDcsNDczIEw4NjAuNDg3LDQ3MyBMODQwLjUwMSw2MjggTDcwNyw2MjggTDcwNywxMDI0IEw5NjcuNDg0LDEwMjQgQzk5OC42OTcsMTAyNCAxMDI0LDk5OC42OTcgMTAyNCw5NjcuNDg0IEwxMDI0LDU2LjUxNSBDMTAyNCwyNS4zMDMgOTk4LjY5NywwIDk2Ny40ODQsMCIgaWQ9IkZpbGwtMSI+PC9wYXRoPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+);\n\t\t}\n\n\t\t& .ck-media__placeholder__url__text {\n\t\t\tcolor: hsl(220, 100%, 90%);\n\n\t\t\t&:hover {\n\t\t\t\tcolor: hsl(0, 0%, 100%);\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-oembed-url*="instagram.com"] .ck-media__placeholder {\n\t\tbackground: linear-gradient(-135deg,hsl(246, 100%, 39%),hsl(302, 100%, 36%),hsl(0, 100%, 48%));\n\n\t\t& .ck-media__placeholder__icon {\n\t\t\tbackground-image: url(data:image/svg+xml;base64, );\n\t\t}\n\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-media__placeholder__url__text {\n\t\t\tcolor: hsl(302, 100%, 94%);\n\n\t\t\t&:hover {\n\t\t\t\tcolor: hsl(0, 0%, 100%);\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder {\n\t\t/* Use gradient to contrast with focused widget (ckeditor/ckeditor5-media-embed#22). */\n\t\tbackground: linear-gradient( to right, hsl(201, 85%, 70%), hsl(201, 85%, 35%) );\n\n\t\t& .ck-media__placeholder__icon {\n\t\t\tbackground-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IldoaXRlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQwMCA0MDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5zdDB7ZmlsbDojRkZGRkZGO308L3N0eWxlPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MDAsMjAwYzAsMTEwLjUtODkuNSwyMDAtMjAwLDIwMFMwLDMxMC41LDAsMjAwUzg5LjUsMCwyMDAsMFM0MDAsODkuNSw0MDAsMjAweiBNMTYzLjQsMzA1LjVjODguNywwLDEzNy4yLTczLjUsMTM3LjItMTM3LjJjMC0yLjEsMC00LjItMC4xLTYuMmM5LjQtNi44LDE3LjYtMTUuMywyNC4xLTI1Yy04LjYsMy44LTE3LjksNi40LTI3LjcsNy42YzEwLTYsMTcuNi0xNS40LDIxLjItMjYuN2MtOS4zLDUuNS0xOS42LDkuNS0zMC42LDExLjdjLTguOC05LjQtMjEuMy0xNS4yLTM1LjItMTUuMmMtMjYuNiwwLTQ4LjIsMjEuNi00OC4yLDQ4LjJjMCwzLjgsMC40LDcuNSwxLjMsMTFjLTQwLjEtMi03NS42LTIxLjItOTkuNC01MC40Yy00LjEsNy4xLTYuNSwxNS40LTYuNSwyNC4yYzAsMTYuNyw4LjUsMzEuNSwyMS41LDQwLjFjLTcuOS0wLjItMTUuMy0yLjQtMjEuOC02YzAsMC4yLDAsMC40LDAsMC42YzAsMjMuNCwxNi42LDQyLjgsMzguNyw0Ny4zYy00LDEuMS04LjMsMS43LTEyLjcsMS43Yy0zLjEsMC02LjEtMC4zLTkuMS0wLjljNi4xLDE5LjIsMjMuOSwzMy4xLDQ1LDMzLjVjLTE2LjUsMTIuOS0zNy4zLDIwLjYtNTkuOSwyMC42Yy0zLjksMC03LjctMC4yLTExLjUtMC43QzExMC44LDI5Ny41LDEzNi4yLDMwNS41LDE2My40LDMwNS41Ii8+PC9zdmc+);\n\t\t}\n\n\t\t& .ck-media__placeholder__url__text {\n\t\t\tcolor: hsl(201, 100%, 86%);\n\n\t\t\t&:hover {\n\t\t\t\tcolor: hsl(0, 0%, 100%);\n\t\t\t}\n\t\t}\n\t}\n}\n',
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    9292: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-media-form{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-media-form .ck-labeled-field-view{display:inline-block}.ck.ck-media-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-media-form{flex-wrap:wrap}.ck.ck-media-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-media-form .ck-button{flex-basis:50%}}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-media-embed/theme/mediaform.css", "webpack://./../ckeditor5-ui/theme/mixins/_rwd.css"],
                                names: [],
                                mappings: "AAOA,kBAEC,sBAAuB,CADvB,YAAa,CAEb,kBAAmB,CACnB,gBAqBD,CAnBC,yCACC,oBACD,CAEA,4BACC,YACD,CCbA,oCDCD,kBAeE,cAUF,CARE,yCACC,eACD,CAEA,6BACC,cACD,CCtBD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-media-form {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\n\t& .ck-labeled-field-view {\n\t\tdisplay: inline-block;\n\t}\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    1613: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck .ck-insert-table-dropdown__grid{display:flex;flex-direction:row;flex-wrap:wrap}:root{--ck-insert-table-dropdown-padding:10px;--ck-insert-table-dropdown-box-height:11px;--ck-insert-table-dropdown-box-width:12px;--ck-insert-table-dropdown-box-margin:1px}.ck .ck-insert-table-dropdown__grid{padding:var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;width:calc(var(--ck-insert-table-dropdown-box-width)*10 + var(--ck-insert-table-dropdown-box-margin)*20 + var(--ck-insert-table-dropdown-padding)*2)}.ck .ck-insert-table-dropdown__label{text-align:center}.ck .ck-insert-table-dropdown-grid-box{border:1px solid var(--ck-color-base-border);border-radius:1px;height:var(--ck-insert-table-dropdown-box-height);margin:var(--ck-insert-table-dropdown-box-margin);outline:none;width:var(--ck-insert-table-dropdown-box-width)}.ck .ck-insert-table-dropdown-grid-box.ck-on{background:var(--ck-color-focus-outer-shadow);border-color:var(--ck-color-focus-border)}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-table/theme/inserttable.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/inserttable.css"],
                                names: [],
                                mappings:
                                    "AAKA,oCACC,YAAa,CACb,kBAAmB,CACnB,cACD,CCJA,MACC,uCAAwC,CACxC,0CAA2C,CAC3C,yCAA0C,CAC1C,yCACD,CAEA,oCAGC,yFAA0F,CAD1F,oJAED,CAEA,qCACC,iBACD,CAEA,uCAIC,4CAA6C,CAC7C,iBAAkB,CAHlB,iDAAkD,CAClD,iDAAkD,CAGlD,YAAa,CALb,+CAWD,CAJC,6CAEC,6CAA8C,CAD9C,yCAED",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-insert-table-dropdown__grid {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-insert-table-dropdown-padding: 10px;\n\t--ck-insert-table-dropdown-box-height: 11px;\n\t--ck-insert-table-dropdown-box-width: 12px;\n\t--ck-insert-table-dropdown-box-margin: 1px;\n}\n\n.ck .ck-insert-table-dropdown__grid {\n\t/* The width of a container should match 10 items in a row so there will be a 10x10 grid. */\n\twidth: calc(var(--ck-insert-table-dropdown-box-width) * 10 + var(--ck-insert-table-dropdown-box-margin) * 20 + var(--ck-insert-table-dropdown-padding) * 2);\n\tpadding: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;\n}\n\n.ck .ck-insert-table-dropdown__label {\n\ttext-align: center;\n}\n\n.ck .ck-insert-table-dropdown-grid-box {\n\twidth: var(--ck-insert-table-dropdown-box-width);\n\theight: var(--ck-insert-table-dropdown-box-height);\n\tmargin: var(--ck-insert-table-dropdown-box-margin);\n\tborder: 1px solid var(--ck-color-base-border);\n\tborder-radius: 1px;\n\toutline: none;\n\n\t&.ck-on {\n\t\tborder-color: var(--ck-color-focus-border);\n\t\tbackground: var(--ck-color-focus-outer-shadow);\n\t}\n}\n\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    6306: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck-content .table{display:table;margin:.9em auto}.ck-content .table table{border:1px double #b3b3b3;border-collapse:collapse;border-spacing:0;height:100%;width:100%}.ck-content .table table td,.ck-content .table table th{border:1px solid #bfbfbf;min-width:2em;padding:.4em}.ck-content .table table th{background:rgba(0,0,0,.05);font-weight:700}.ck-content[dir=rtl] .table th{text-align:right}.ck-content[dir=ltr] .table th{text-align:left}.ck-editor__editable .ck-table-bogus-paragraph{display:inline-block;width:100%}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-table/theme/table.css"],
                                names: [],
                                mappings:
                                    "AAKA,mBAKC,aAAc,CADd,gBAiCD,CA9BC,yBAYC,yBAAkC,CAVlC,wBAAyB,CACzB,gBAAiB,CAKjB,WAAY,CADZ,UAsBD,CAfC,wDAQC,wBAAiC,CANjC,aAAc,CACd,YAMD,CAEA,4BAEC,0BAA+B,CAD/B,eAED,CAMF,+BACC,gBACD,CAEA,+BACC,eACD,CAEA,+CAKC,oBAAqB,CAMrB,UACD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content .table {\n\t/* Give the table widget some air and center it horizontally */\n\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\tmargin: 0.9em auto;\n\tdisplay: table;\n\n\t& table {\n\t\t/* The table cells should have slight borders */\n\t\tborder-collapse: collapse;\n\t\tborder-spacing: 0;\n\n\t\t/* Table width and height are set on the parent <figure>. Make sure the table inside stretches\n\t\tto the full dimensions of the container (https://github.com/ckeditor/ckeditor5/issues/6186). */\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\t/* The outer border of the table should be slightly darker than the inner lines.\n\t\tAlso see https://github.com/ckeditor/ckeditor5-table/issues/50. */\n\t\tborder: 1px double hsl(0, 0%, 70%);\n\n\t\t& td,\n\t\t& th {\n\t\t\tmin-width: 2em;\n\t\t\tpadding: .4em;\n\n\t\t\t/* The border is inherited from .ck-editor__nested-editable styles, so theoretically it\'s not necessary here.\n\t\t\tHowever, the border is a content style, so it should use .ck-content (so it works outside the editor).\n\t\t\tHence, the duplication. See https://github.com/ckeditor/ckeditor5/issues/6314 */\n\t\t\tborder: 1px solid hsl(0, 0%, 75%);\n\t\t}\n\n\t\t& th {\n\t\t\tfont-weight: bold;\n\t\t\tbackground: hsla(0, 0%, 0%, 5%);\n\t\t}\n\t}\n}\n\n/* Text alignment of the table header should match the editor settings and override the native browser styling,\nwhen content is available outside the editor. See https://github.com/ckeditor/ckeditor5/issues/6638 */\n.ck-content[dir="rtl"] .table th {\n\ttext-align: right;\n}\n\n.ck-content[dir="ltr"] .table th {\n\ttext-align: left;\n}\n\n.ck-editor__editable .ck-table-bogus-paragraph {\n\t/*\n\t * Use display:inline-block to force Chrome/Safari to limit text mutations to this element.\n\t * See https://github.com/ckeditor/ckeditor5/issues/6062.\n\t */\n\tdisplay: inline-block;\n\n\t/*\n\t * Inline HTML elements nested in the span should always be dimensioned in relation to the whole cell width.\n\t * See https://github.com/ckeditor/ckeditor5/issues/9117.\n\t */\n\twidth: 100%;\n}\n',
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    3881: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ":root{--ck-color-table-focused-cell-background:rgba(158,201,250,.3)}.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table td.ck-editor__nested-editable:focus,.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table th.ck-editor__nested-editable:focus{background:var(--ck-color-table-focused-cell-background);border-style:none;outline:1px solid var(--ck-color-focus-border);outline-offset:-1px}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableediting.css"],
                                names: [],
                                mappings: "AAKA,MACC,6DACD,CAKE,8QAGC,wDAAyD,CAKzD,iBAAkB,CAClB,8CAA+C,CAC/C,mBACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-table-focused-cell-background: hsla(212, 90%, 80%, .3);\n}\n\n.ck-widget.table {\n\t& td,\n\t& th {\n\t\t&.ck-editor__nested-editable.ck-editor__nested-editable_focused,\n\t\t&.ck-editor__nested-editable:focus {\n\t\t\t/* A very slight background to highlight the focused cell */\n\t\t\tbackground: var(--ck-color-table-focused-cell-background);\n\n\t\t\t/* Fixes the problem where surrounding cells cover the focused cell's border.\n\t\t\tIt does not fix the problem in all places but the UX is improved.\n\t\t\tSee https://github.com/ckeditor/ckeditor5-table/issues/29. */\n\t\t\tborder-style: none;\n\t\t\toutline: 1px solid var(--ck-color-focus-border);\n\t\t\toutline-offset: -1px; /* progressive enhancement - no IE support */\n\t\t}\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    6945: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ':root{--ck-table-selected-cell-background:rgba(158,207,250,.3)}.ck.ck-editor__editable .table table td.ck-editor__editable_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected{box-shadow:unset;caret-color:transparent;outline:unset;position:relative}.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:after{background-color:var(--ck-table-selected-cell-background);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus{background-color:transparent}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget{outline:unset}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle{display:none}',
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableselection.css"],
                                names: [],
                                mappings:
                                    "AAKA,MACC,wDACD,CAGC,0IAKC,gBAAiB,CAFjB,uBAAwB,CACxB,aAAc,CAFd,iBAiCD,CA3BC,sJAGC,yDAA0D,CAK1D,QAAS,CAPT,UAAW,CAKX,MAAO,CAJP,mBAAoB,CAEpB,iBAAkB,CAGlB,OAAQ,CAFR,KAID,CAEA,wTAEC,4BACD,CAMA,gKACC,aAKD,CAHC,0NACC,YACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-table-selected-cell-background: hsla(208, 90%, 80%, .3);\n}\n\n.ck.ck-editor__editable .table table {\n\t& td.ck-editor__editable_selected,\n\t& th.ck-editor__editable_selected {\n\t\tposition: relative;\n\t\tcaret-color: transparent;\n\t\toutline: unset;\n\t\tbox-shadow: unset;\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/6446 */\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tpointer-events: none;\n\t\t\tbackground-color: var(--ck-table-selected-cell-background);\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t}\n\n\t\t& ::selection,\n\t\t&:focus {\n\t\t\tbackground-color: transparent;\n\t\t}\n\n\t\t/*\n\t\t * To reduce the amount of noise, all widgets in the table selection have no outline and no selection handle.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9491.\n\t\t */\n\t\t& .ck-widget {\n\t\t\toutline: unset;\n\n\t\t\t& > .ck-widget__selection-handle {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    4906: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-button,a.ck.ck-button{align-items:center;display:inline-flex;justify-content:left;position:relative;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{display:none}.ck.ck-button.ck-button_with-text .ck-button__label,a.ck.ck-button.ck-button_with-text .ck-button__label{display:inline-block}.ck.ck-button:not(.ck-button_with-text),a.ck.ck-button:not(.ck-button_with-text){justify-content:center}.ck.ck-button,a.ck.ck-button{background:var(--ck-color-button-default-background)}.ck.ck-button:not(.ck-disabled):hover,a.ck.ck-button:not(.ck-disabled):hover{background:var(--ck-color-button-default-hover-background)}.ck.ck-button:not(.ck-disabled):active,a.ck.ck-button:not(.ck-disabled):active{background:var(--ck-color-button-default-active-background)}.ck.ck-button.ck-disabled,a.ck.ck-button.ck-disabled{background:var(--ck-color-button-default-disabled-background)}.ck.ck-button,a.ck.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-button,.ck-rounded-corners a.ck.ck-button,.ck.ck-button.ck-rounded-corners,a.ck.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-button,a.ck.ck-button{-webkit-appearance:none;border:1px solid transparent;cursor:default;font-size:inherit;line-height:1;min-height:var(--ck-ui-component-min-height);min-width:var(--ck-ui-component-min-height);padding:var(--ck-spacing-tiny);text-align:center;transition:box-shadow .2s ease-in-out,border .2s ease-in-out;vertical-align:middle;white-space:nowrap}.ck.ck-button:active,.ck.ck-button:focus,a.ck.ck-button:active,a.ck.ck-button:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-button .ck-button__icon use,.ck.ck-button .ck-button__icon use *,a.ck.ck-button .ck-button__icon use,a.ck.ck-button .ck-button__icon use *{color:inherit}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;vertical-align:middle}[dir=ltr] .ck.ck-button .ck-button__label,[dir=ltr] a.ck.ck-button .ck-button__label{text-align:left}[dir=rtl] .ck.ck-button .ck-button__label,[dir=rtl] a.ck.ck-button .ck-button__label{text-align:right}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{color:inherit}[dir=ltr] .ck.ck-button .ck-button__keystroke,[dir=ltr] a.ck.ck-button .ck-button__keystroke{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-button .ck-button__keystroke,[dir=rtl] a.ck.ck-button .ck-button__keystroke{margin-right:var(--ck-spacing-large)}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{font-weight:700;opacity:.7}.ck.ck-button.ck-disabled:active,.ck.ck-button.ck-disabled:focus,a.ck.ck-button.ck-disabled:active,a.ck.ck-button.ck-disabled:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-button.ck-disabled .ck-button__icon,.ck.ck-button.ck-disabled .ck-button__label,a.ck.ck-button.ck-disabled .ck-button__icon,a.ck.ck-button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-disabled .ck-button__keystroke,a.ck.ck-button.ck-disabled .ck-button__keystroke{opacity:.3}.ck.ck-button.ck-button_with-text,a.ck.ck-button.ck-button_with-text{padding:var(--ck-spacing-tiny) var(--ck-spacing-standard)}[dir=ltr] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=ltr] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small)}[dir=rtl] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=rtl] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:var(--ck-spacing-small);margin-right:calc(var(--ck-spacing-small)*-1)}.ck.ck-button.ck-button_with-keystroke .ck-button__label,a.ck.ck-button.ck-button_with-keystroke .ck-button__label{flex-grow:1}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{background:var(--ck-color-button-on-background)}.ck.ck-button.ck-on:not(.ck-disabled):hover,a.ck.ck-button.ck-on:not(.ck-disabled):hover{background:var(--ck-color-button-on-hover-background)}.ck.ck-button.ck-on:not(.ck-disabled):active,a.ck.ck-button.ck-on:not(.ck-disabled):active{background:var(--ck-color-button-on-active-background)}.ck.ck-button.ck-on.ck-disabled,a.ck.ck-button.ck-on.ck-disabled{background:var(--ck-color-button-on-disabled-background)}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{color:var(--ck-color-button-on-color)}.ck.ck-button.ck-button-save,a.ck.ck-button.ck-button-save{color:var(--ck-color-button-save)}.ck.ck-button.ck-button-cancel,a.ck.ck-button.ck-button-cancel{color:var(--ck-color-button-cancel)}.ck.ck-button-action,a.ck.ck-button-action{background:var(--ck-color-button-action-background)}.ck.ck-button-action:not(.ck-disabled):hover,a.ck.ck-button-action:not(.ck-disabled):hover{background:var(--ck-color-button-action-hover-background)}.ck.ck-button-action:not(.ck-disabled):active,a.ck.ck-button-action:not(.ck-disabled):active{background:var(--ck-color-button-action-active-background)}.ck.ck-button-action.ck-disabled,a.ck.ck-button-action.ck-disabled{background:var(--ck-color-button-action-disabled-background)}.ck.ck-button-action,a.ck.ck-button-action{color:var(--ck-color-button-action-text)}.ck.ck-button-bold,a.ck.ck-button-bold{font-weight:700}",
                            "",
                            {
                                version: 3,
                                sources: [
                                    "webpack://./../ckeditor5-ui/theme/components/button/button.css",
                                    "webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/button.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/mixins/_button.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css",
                                ],
                                names: [],
                                mappings:
                                    "AAOA,6BAMC,kBAAmB,CADnB,mBAAoB,CAEpB,oBAAqB,CAHrB,iBAAkB,CCFlB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBDkBD,CAdC,iEACC,YACD,CAGC,yGACC,oBACD,CAID,iFACC,sBACD,CEjBD,6BCAC,oDD4ID,CCzIE,6EACC,0DACD,CAEA,+EACC,2DACD,CAID,qDACC,6DACD,CDfD,6BEDC,eF6ID,CA5IA,wIEGE,qCFyIF,CA5IA,6BA6BC,uBAAwB,CANxB,4BAA6B,CAjB7B,cAAe,CAcf,iBAAkB,CAHlB,aAAc,CAJd,4CAA6C,CAD7C,2CAA4C,CAJ5C,8BAA+B,CAC/B,iBAAkB,CAiBlB,4DAA8D,CAnB9D,qBAAsB,CAFtB,kBAuID,CA7GC,oFGhCA,2BAA2B,CCF3B,2CAA8B,CDC9B,YHqCA,CAIC,kJAEC,aACD,CAGD,iEAIC,aAAc,CACd,cAAe,CAHf,iBAAkB,CAClB,mBAAoB,CAMpB,qBASD,CAlBA,qFAYE,eAMF,CAlBA,qFAgBE,gBAEF,CAEA,yEACC,aAYD,CAbA,6FAIE,mCASF,CAbA,6FAQE,oCAKF,CAbA,yEAWC,eAAiB,CACjB,UACD,CAIC,oIIrFD,oDJyFC,CAOA,gLKhGD,kCLkGC,CAEA,iGACC,UACD,CAGD,qEACC,yDAcD,CAXC,2HAEE,4CAA+C,CAC/C,oCAOF,CAVA,2HAQE,mCAAoC,CADpC,6CAGF,CAKA,mHACC,WACD,CAID,yCC/HA,+CDmIA,CChIC,yFACC,qDACD,CAEA,2FACC,sDACD,CAID,iEACC,wDACD,CDgHA,yCAGC,qCACD,CAEA,2DACC,iCACD,CAEA,+DACC,mCACD,CAID,2CC/IC,mDDoJD,CCjJE,2FACC,yDACD,CAEA,6FACC,0DACD,CAID,mEACC,4DACD,CDgID,2CAIC,wCACD,CAEA,uCAEC,eACD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-button,\na.ck.ck-button {\n\t@mixin ck-unselectable;\n\n\tposition: relative;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: left;\n\n\t& .ck-button__label {\n\t\tdisplay: none;\n\t}\n\n\t&.ck-button_with-text {\n\t\t& .ck-button__label {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n\n\t/* Center the icon horizontally in a button without text. */\n\t&:not(.ck-button_with-text)  {\n\t\tjustify-content: center;\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_rounded.css";\n@import "../../mixins/_button.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-button,\na.ck.ck-button {\n\t@mixin ck-button-colors --ck-color-button-default;\n\t@mixin ck-rounded-corners;\n\n\twhite-space: nowrap;\n\tcursor: default;\n\tvertical-align: middle;\n\tpadding: var(--ck-spacing-tiny);\n\ttext-align: center;\n\n\t/* A very important piece of styling. Go to variable declaration to learn more. */\n\tmin-width: var(--ck-ui-component-min-height);\n\tmin-height: var(--ck-ui-component-min-height);\n\n\t/* Normalize the height of the line. Removing this will break consistent height\n\tamong text and text-less buttons (with icons). */\n\tline-height: 1;\n\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t/* Avoid flickering when the foucs border shows up. */\n\tborder: 1px solid transparent;\n\n\t/* Apply some smooth transition to the box-shadow and border. */\n\ttransition: box-shadow .2s ease-in-out, border .2s ease-in-out;\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/189 */\n\t-webkit-appearance: none;\n\n\t&:active,\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t/* Allow icon coloring using the text "color" property. */\n\t& .ck-button__icon {\n\t\t& use,\n\t\t& use * {\n\t\t\tcolor: inherit;\n\t\t}\n\t}\n\n\t& .ck-button__label {\n\t\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\t\tfont-size: inherit;\n\t\tfont-weight: inherit;\n\t\tcolor: inherit;\n\t\tcursor: inherit;\n\n\t\t/* Must be consistent with .ck-icon\'s vertical align. Otherwise, buttons with and\n\t\twithout labels (but with icons) have different sizes in Chrome */\n\t\tvertical-align: middle;\n\n\t\t@mixin ck-dir ltr {\n\t\t\ttext-align: left;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttext-align: right;\n\t\t}\n\t}\n\n\t& .ck-button__keystroke {\n\t\tcolor: inherit;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-left: var(--ck-spacing-large);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-right: var(--ck-spacing-large);\n\t\t}\n\n\t\tfont-weight: bold;\n\t\topacity: .7;\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\n\t&.ck-disabled {\n\t\t&:active,\n\t\t&:focus {\n\t\t\t/* The disabled button should have a slightly less visible shadow when focused. */\n\t\t\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\n\t\t}\n\n\t\t& .ck-button__icon {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\n\t\t& .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t& .ck-button__keystroke {\n\t\t\topacity: .3;\n\t\t}\n\t}\n\n\t&.ck-button_with-text {\n\t\tpadding: var(--ck-spacing-tiny) var(--ck-spacing-standard);\n\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-button__icon {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: calc(-1 * var(--ck-spacing-small));\n\t\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-right: calc(-1 * var(--ck-spacing-small));\n\t\t\t\tmargin-left: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-button_with-keystroke {\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-button__label {\n\t\t\tflex-grow: 1;\n\t\t}\n\t}\n\n\t/* A style of the button which is currently on, e.g. its feature is active. */\n\t&.ck-on {\n\t\t@mixin ck-button-colors --ck-color-button-on;\n\n\t\tcolor: var(--ck-color-button-on-color);\n\t}\n\n\t&.ck-button-save {\n\t\tcolor: var(--ck-color-button-save);\n\t}\n\n\t&.ck-button-cancel {\n\t\tcolor: var(--ck-color-button-cancel);\n\t}\n}\n\n/* A style of the button which handles the primary action. */\n.ck.ck-button-action,\na.ck.ck-button-action {\n\t@mixin ck-button-colors --ck-color-button-action;\n\n\tcolor: var(--ck-color-button-action-text);\n}\n\n.ck.ck-button-bold,\na.ck.ck-button-bold {\n\tfont-weight: bold;\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements a button of given background color.\n *\n * @param {String} $background - Background color of the button.\n * @param {String} $border - Border color of the button.\n */\n@define-mixin ck-button-colors $prefix {\n\tbackground: var($(prefix)-background);\n\n\t&:not(.ck-disabled) {\n\t\t&:hover {\n\t\t\tbackground: var($(prefix)-hover-background);\n\t\t}\n\n\t\t&:active {\n\t\t\tbackground: var($(prefix)-active-background);\n\t\t}\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\n\t&.ck-disabled {\n\t\tbackground: var($(prefix)-disabled-background);\n\t}\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    5332: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{display:block}:root{--ck-switch-button-toggle-width:2.6153846154em;--ck-switch-button-toggle-inner-size:calc(1.07692em + 1px);--ck-switch-button-translation:calc(var(--ck-switch-button-toggle-width) - var(--ck-switch-button-toggle-inner-size) - 2px);--ck-switch-button-inner-hover-shadow:0 0 0 5px var(--ck-color-switch-button-inner-shadow)}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__label{margin-right:calc(var(--ck-spacing-large)*2)}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__label{margin-left:calc(var(--ck-spacing-large)*2)}.ck.ck-button.ck-switchbutton .ck-button__toggle{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners{border-radius:var(--ck-border-radius)}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-left:auto}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-right:auto}.ck.ck-button.ck-switchbutton .ck-button__toggle{background:var(--ck-color-switch-button-off-background);border:1px solid transparent;transition:background .4s ease,box-shadow .2s ease-in-out,outline .2s ease-in-out;width:var(--ck-switch-button-toggle-width)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:calc(var(--ck-border-radius)*.5)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{background:var(--ck-color-switch-button-inner-background);height:var(--ck-switch-button-toggle-inner-size);transition:all .3s ease;width:var(--ck-switch-button-toggle-inner-size)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover{background:var(--ck-color-switch-button-off-hover-background)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner{box-shadow:var(--ck-switch-button-inner-hover-shadow)}.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-switchbutton:focus{border-color:transparent;box-shadow:none;outline:none}.ck.ck-button.ck-switchbutton:focus .ck-button__toggle{box-shadow:0 0 0 1px var(--ck-color-base-background),0 0 0 5px var(--ck-color-focus-outer-shadow);outline:var(--ck-focus-ring);outline-offset:1px}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle{background:var(--ck-color-switch-button-on-background)}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover{background:var(--ck-color-switch-button-on-hover-background)}[dir=ltr] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(var( --ck-switch-button-translation ))}[dir=rtl] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(calc(var( --ck-switch-button-translation )*-1))}.ck.ck-button.ck-switchbutton.ck-on:active,.ck.ck-button.ck-switchbutton:active{background:transparent}",
                            "",
                            {
                                version: 3,
                                sources: [
                                    "webpack://./../ckeditor5-ui/theme/components/button/switchbutton.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/switchbutton.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css",
                                ],
                                names: [],
                                mappings:
                                    "AASE,4HACC,aACD,CCCF,MAEC,8CAA+C,CAE/C,0DAAgE,CAChE,2HAIC,CACD,0FACD,CAGC,0DAGE,4CAOF,CAVA,0DAQE,2CAEF,CAEA,iDC3BA,eDmEA,CAxCA,yICvBC,qCD+DD,CAxCA,2DAKE,gBAmCF,CAxCA,2DAUE,iBA8BF,CAxCA,iDAkBC,uDAAwD,CAFxD,4BAA6B,CAD7B,iFAAsF,CAEtF,0CAuBD,CApBC,2EC/CD,eD0DC,CAXA,6LC3CA,qCAAsC,CD6CpC,8CASF,CAXA,2EAOC,yDAA0D,CAD1D,gDAAiD,CAIjD,uBAA0B,CAL1B,+CAMD,CAEA,uDACC,6DAKD,CAHC,iFACC,qDACD,CAIF,6DEvEA,kCFyEA,CAGA,oCACC,wBAAyB,CAEzB,eAAgB,CADhB,YAQD,CALC,uDACC,iGAAmG,CAEnG,4BAA6B,CAD7B,kBAED,CAIA,uDACC,sDAkBD,CAhBC,6DACC,4DACD,CAEA,2FAKE,2DAMF,CAXA,2FASE,oEAEF,CAKF,gFACC,sBACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-button.ck-switchbutton {\n\t& .ck-button__toggle {\n\t\tdisplay: block;\n\n\t\t& .ck-button__toggle__inner {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n/* Note: To avoid rendering issues (aliasing) but to preserve the responsive nature\nof the component, floating–point numbers have been used which, for the default font size\n(see: --ck-font-size-base), will generate simple integers. */\n:root {\n\t/* 34px at 13px font-size */\n\t--ck-switch-button-toggle-width: 2.6153846154em;\n\t/* 14px at 13px font-size */\n\t--ck-switch-button-toggle-inner-size: calc(1.0769230769em + 1px);\n\t--ck-switch-button-translation: calc(\n\t\tvar(--ck-switch-button-toggle-width) -\n\t\tvar(--ck-switch-button-toggle-inner-size) -\n\t\t2px /* Border */\n\t);\n\t--ck-switch-button-inner-hover-shadow: 0 0 0 5px var(--ck-color-switch-button-inner-shadow);\n}\n\n.ck.ck-button.ck-switchbutton {\n\t& .ck-button__label {\n\t\t@mixin ck-dir ltr {\n\t\t\t/* Separate the label from the switch */\n\t\t\tmargin-right: calc(2 * var(--ck-spacing-large));\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t/* Separate the label from the switch */\n\t\t\tmargin-left: calc(2 * var(--ck-spacing-large));\n\t\t}\n\t}\n\n\t& .ck-button__toggle {\n\t\t@mixin ck-rounded-corners;\n\n\t\t@mixin ck-dir ltr {\n\t\t\t/* Make sure the toggle is always to the right as far as possible. */\n\t\t\tmargin-left: auto;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t/* Make sure the toggle is always to the left as far as possible. */\n\t\t\tmargin-right: auto;\n\t\t}\n\n\t\t/* Apply some smooth transition to the box-shadow and border. */\n\t\t/* Gently animate the background color of the toggle switch */\n\t\ttransition: background 400ms ease, box-shadow .2s ease-in-out, outline .2s ease-in-out;\n\t\tborder: 1px solid transparent;\n\t\twidth: var(--ck-switch-button-toggle-width);\n\t\tbackground: var(--ck-color-switch-button-off-background);\n\n\t\t& .ck-button__toggle__inner {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-radius: calc(.5 * var(--ck-border-radius));\n\t\t\t}\n\n\t\t\twidth: var(--ck-switch-button-toggle-inner-size);\n\t\t\theight: var(--ck-switch-button-toggle-inner-size);\n\t\t\tbackground: var(--ck-color-switch-button-inner-background);\n\n\t\t\t/* Gently animate the inner part of the toggle switch */\n\t\t\ttransition: all 300ms ease;\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground: var(--ck-color-switch-button-off-hover-background);\n\n\t\t\t& .ck-button__toggle__inner {\n\t\t\t\tbox-shadow: var(--ck-switch-button-inner-hover-shadow);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-disabled .ck-button__toggle {\n\t\t@mixin ck-disabled;\n\t}\n\n\t/* Overriding default .ck-button:focus styles + an outline around the toogle */\n\t&:focus {\n\t\tborder-color: transparent;\n\t\toutline: none;\n\t\tbox-shadow: none;\n\n\t\t& .ck-button__toggle {\n\t\t\tbox-shadow: 0 0 0 1px var(--ck-color-base-background), 0 0 0 5px var(--ck-color-focus-outer-shadow);\n\t\t\toutline-offset: 1px;\n\t\t\toutline: var(--ck-focus-ring);\n\t\t}\n\t}\n\n\t&.ck-on {\n\t\t& .ck-button__toggle {\n\t\t\tbackground: var(--ck-color-switch-button-on-background);\n\n\t\t\t&:hover {\n\t\t\t\tbackground: var(--ck-color-switch-button-on-hover-background);\n\t\t\t}\n\n\t\t\t& .ck-button__toggle__inner {\n\t\t\t\t/*\n\t\t\t\t* Move the toggle switch to the right. It will be animated.\n\t\t\t\t*/\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\ttransform: translateX( var( --ck-switch-button-translation ) );\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\ttransform: translateX( calc( -1 * var( --ck-switch-button-translation ) ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Regular buttons get a backgound when active. Switch buttons announce that through the switch toggle instead */\n\t&:active, &.ck-on:active {\n\t\tbackground: transparent;\n\t}\n\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    6781: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-color-grid{display:grid}:root{--ck-color-grid-tile-size:24px;--ck-color-color-grid-check-icon:#166fd4}.ck.ck-color-grid{grid-gap:5px;padding:8px}.ck.ck-color-grid__tile{border:0;height:var(--ck-color-grid-tile-size);min-height:var(--ck-color-grid-tile-size);min-width:var(--ck-color-grid-tile-size);padding:0;transition:box-shadow .2s ease;width:var(--ck-color-grid-tile-size)}.ck.ck-color-grid__tile.ck-disabled{cursor:unset;transition:unset}.ck.ck-color-grid__tile.ck-color-table__color-tile_bordered{box-shadow:0 0 0 1px var(--ck-color-base-border)}.ck.ck-color-grid__tile .ck.ck-icon{color:var(--ck-color-color-grid-check-icon);display:none}.ck.ck-color-grid__tile.ck-on{box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-base-text)}.ck.ck-color-grid__tile.ck-on .ck.ck-icon{display:block}.ck.ck-color-grid__tile.ck-on,.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){border:0}.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}.ck.ck-color-grid__label{padding:0 var(--ck-spacing-standard)}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-ui/theme/components/colorgrid/colorgrid.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorgrid/colorgrid.css"],
                                names: [],
                                mappings:
                                    "AAKA,kBACC,YACD,CCAA,MACC,8BAA+B,CAK/B,wCACD,CAEA,kBACC,YAAa,CACb,WACD,CAEA,wBAOC,QAAS,CALT,qCAAsC,CAEtC,yCAA0C,CAD1C,wCAAyC,CAEzC,SAAU,CACV,8BAA+B,CAL/B,oCAyCD,CAjCC,oCACC,YAAa,CACb,gBACD,CAEA,4DACC,gDACD,CAEA,oCAEC,2CAA4C,CAD5C,YAED,CAEA,8BACC,8FAKD,CAHC,0CACC,aACD,CAGD,8HAIC,QACD,CAEA,gGAEC,iGACD,CAGD,yBACC,oCACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-color-grid {\n\tdisplay: grid;\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-color-grid-tile-size: 24px;\n\n\t/* Not using global colors here because these may change but some colors in a pallette\n\t * require special treatment. For instance, this ensures no matter what the UI text color is,\n\t * the check icon will look good on the black color tile. */\n\t--ck-color-color-grid-check-icon: hsl(212, 81%, 46%);\n}\n\n.ck.ck-color-grid {\n\tgrid-gap: 5px;\n\tpadding: 8px;\n}\n\n.ck.ck-color-grid__tile {\n\twidth: var(--ck-color-grid-tile-size);\n\theight: var(--ck-color-grid-tile-size);\n\tmin-width: var(--ck-color-grid-tile-size);\n\tmin-height: var(--ck-color-grid-tile-size);\n\tpadding: 0;\n\ttransition: .2s ease box-shadow;\n\tborder: 0;\n\n\t&.ck-disabled {\n\t\tcursor: unset;\n\t\ttransition: unset;\n\t}\n\n\t&.ck-color-table__color-tile_bordered {\n\t\tbox-shadow: 0 0 0 1px var(--ck-color-base-border);\n\t}\n\n\t& .ck.ck-icon {\n\t\tdisplay: none;\n\t\tcolor: var(--ck-color-color-grid-check-icon);\n\t}\n\n\t&.ck-on {\n\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text);\n\n\t\t& .ck.ck-icon {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t&.ck-on,\n\t&:focus:not( .ck-disabled ),\n\t&:hover:not( .ck-disabled ) {\n\t\t/* Disable the default .ck-button\'s border ring. */\n\t\tborder: 0;\n\t}\n\n\t&:focus:not( .ck-disabled ),\n\t&:hover:not( .ck-disabled ) {\n\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\n\t}\n}\n\n.ck.ck-color-grid__label {\n\tpadding: 0 var(--ck-spacing-standard);\n}\n',
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    5485: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ":root{--ck-dropdown-max-width:75vw}.ck.ck-dropdown{display:inline-block;position:relative}.ck.ck-dropdown .ck-dropdown__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-dropdown .ck-button.ck-dropdown__button{width:100%}.ck.ck-dropdown .ck-dropdown__panel{display:none;max-width:var(--ck-dropdown-max-width);position:absolute;z-index:var(--ck-z-modal)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible{display:inline-block}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw{bottom:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{bottom:auto;top:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se{left:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{right:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s{left:50%;transform:translateX(-50%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw{left:75%;transform:translateX(-75%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme{left:25%;transform:translateX(-25%)}.ck.ck-toolbar .ck-dropdown__panel{z-index:calc(var(--ck-z-modal) + 1)}:root{--ck-dropdown-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-dropdown{font-size:inherit}.ck.ck-dropdown .ck-dropdown__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-dropdown .ck-dropdown__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-dropdown .ck-dropdown__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{overflow:hidden;text-overflow:ellipsis;width:7em}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label{width:auto}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active{box-shadow:none}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus{box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-dropdown__panel{border-radius:0}.ck-rounded-corners .ck.ck-dropdown__panel,.ck.ck-dropdown__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dropdown__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;box-shadow:var(--ck-drop-shadow),0 0;min-width:100%}.ck.ck-dropdown__panel.ck-dropdown__panel_se{border-top-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_sw{border-top-right-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_ne{border-bottom-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_nw{border-bottom-right-radius:0}",
                            "",
                            {
                                version: 3,
                                sources: [
                                    "webpack://./../ckeditor5-ui/theme/components/dropdown/dropdown.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/dropdown.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css",
                                ],
                                names: [],
                                mappings:
                                    "AAKA,MACC,4BACD,CAEA,gBACC,oBAAqB,CACrB,iBA2ED,CAzEC,oCACC,mBAAoB,CACpB,2BACD,CAGA,+CACC,UACD,CAEA,oCACC,YAAa,CAEb,sCAAuC,CAEvC,iBAAkB,CAHlB,yBA4DD,CAvDC,+DACC,oBACD,CAEA,mSAKC,WACD,CAEA,mSAUC,WAAY,CADZ,QAED,CAEA,oHAEC,MACD,CAEA,oHAEC,OACD,CAEA,kHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAQF,mCACC,mCACD,CCpFA,MACC,sDACD,CAEA,gBAEC,iBA2ED,CAzEC,oCACC,mCACD,CAGC,8CAIC,sCAAuC,CAHvC,gCAID,CAIA,8CACC,+BAAgC,CAGhC,oCACD,CAGD,gDC/BA,kCDiCA,CAIE,mFAEC,oCACD,CAIA,mFAEC,qCACD,CAID,iEAEC,eAAgB,CAChB,sBAAuB,CAFvB,SAGD,CAGA,6EC1DD,kCD4DC,CAGA,qDACC,2BAA4B,CAC5B,4BACD,CAEA,sGACC,UACD,CAGA,yHAEC,eAKD,CAHC,qIE7EF,2CF+EE,CAKH,uBGlFC,eH8GD,CA5BA,qFG9EE,qCH0GF,CA5BA,uBAIC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CE1FT,oCAA8B,CF6F9B,cAmBD,CAfC,6CACC,wBACD,CAEA,6CACC,yBACD,CAEA,6CACC,2BACD,CAEA,6CACC,4BACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-dropdown-max-width: 75vw;\n}\n\n.ck.ck-dropdown {\n\tdisplay: inline-block;\n\tposition: relative;\n\n\t& .ck-dropdown__arrow {\n\t\tpointer-events: none;\n\t\tz-index: var(--ck-z-default);\n\t}\n\n\t/* Dropdown button should span horizontally, e.g. in vertical toolbars */\n\t& .ck-button.ck-dropdown__button {\n\t\twidth: 100%;\n\t}\n\n\t& .ck-dropdown__panel {\n\t\tdisplay: none;\n\t\tz-index: var(--ck-z-modal);\n\t\tmax-width: var(--ck-dropdown-max-width);\n\n\t\tposition: absolute;\n\n\t\t&.ck-dropdown__panel-visible {\n\t\t\tdisplay: inline-block;\n\t\t}\n\n\t\t&.ck-dropdown__panel_ne,\n\t\t&.ck-dropdown__panel_nw,\n\t\t&.ck-dropdown__panel_n,\n\t\t&.ck-dropdown__panel_nmw,\n\t\t&.ck-dropdown__panel_nme {\n\t\t\tbottom: 100%;\n\t\t}\n\n\t\t&.ck-dropdown__panel_se,\n\t\t&.ck-dropdown__panel_sw,\n\t\t&.ck-dropdown__panel_smw,\n\t\t&.ck-dropdown__panel_sme,\n\t\t&.ck-dropdown__panel_s {\n\t\t\t/*\n\t\t\t * Using transform: translate3d( 0, 100%, 0 ) causes blurry dropdown on Chrome 67-78+ on non-retina displays.\n\t\t\t * See https://github.com/ckeditor/ckeditor5/issues/1053.\n\t\t\t */\n\t\t\ttop: 100%;\n\t\t\tbottom: auto;\n\t\t}\n\n\t\t&.ck-dropdown__panel_ne,\n\t\t&.ck-dropdown__panel_se {\n\t\t\tleft: 0px;\n\t\t}\n\n\t\t&.ck-dropdown__panel_nw,\n\t\t&.ck-dropdown__panel_sw {\n\t\t\tright: 0px;\n\t\t}\n\n\t\t&.ck-dropdown__panel_s,\n\t\t&.ck-dropdown__panel_n {\n\t\t\t/* Positioning panels relative to the center of the button */\n\t\t\tleft: 50%;\n\t\t\ttransform: translateX(-50%);\n\t\t}\n\n\t\t&.ck-dropdown__panel_nmw,\n\t\t&.ck-dropdown__panel_smw {\n\t\t\t/* Positioning panels relative to the middle-west of the button */\n\t\t\tleft: 75%;\n\t\t\ttransform: translateX(-75%);\n\t\t}\n\n\t\t&.ck-dropdown__panel_nme,\n\t\t&.ck-dropdown__panel_sme {\n\t\t\t/* Positioning panels relative to the middle-east of the button */\n\t\t\tleft: 25%;\n\t\t\ttransform: translateX(-25%);\n\t\t}\n\t}\n}\n\n/*\n * Toolbar dropdown panels should be always above the UI (eg. other dropdown panels) from the editor's content.\n * See https://github.com/ckeditor/ckeditor5/issues/7874\n */\n.ck.ck-toolbar .ck-dropdown__panel {\n\tz-index: calc( var(--ck-z-modal) + 1 );\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-dropdown-arrow-size: calc(0.5 * var(--ck-icon-size));\n}\n\n.ck.ck-dropdown {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t& .ck-dropdown__arrow {\n\t\twidth: var(--ck-dropdown-arrow-size);\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& .ck-dropdown__arrow {\n\t\t\tright: var(--ck-spacing-standard);\n\n\t\t\t/* A space to accommodate the triangle. */\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& .ck-dropdown__arrow {\n\t\t\tleft: var(--ck-spacing-standard);\n\n\t\t\t/* A space to accommodate the triangle. */\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\t}\n\n\t&.ck-disabled .ck-dropdown__arrow {\n\t\t@mixin ck-disabled;\n\t}\n\n\t& .ck-button.ck-dropdown__button {\n\t\t@mixin ck-dir ltr {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\t/* Make sure dropdowns with just an icon have the right inner spacing */\n\t\t\t\tpadding-left: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\t/* Make sure dropdowns with just an icon have the right inner spacing */\n\t\t\t\tpadding-right: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t/* #23 */\n\t\t& .ck-button__label {\n\t\t\twidth: 7em;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\n\t\t&.ck-disabled .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/816 */\n\t\t&.ck-on {\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t&.ck-dropdown__button_label-width_auto .ck-button__label {\n\t\t\twidth: auto;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/8699 */\n\t\t&.ck-off:active,\n\t\t&.ck-on:active {\n\t\t\tbox-shadow: none;\n\t\t\t\n\t\t\t&:focus {\n\t\t\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-dropdown__panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tbackground: var(--ck-color-dropdown-panel-background);\n\tborder: 1px solid var(--ck-color-dropdown-panel-border);\n\tbottom: 0;\n\n\t/* Make sure the panel is at least as wide as the drop-down\'s button. */\n\tmin-width: 100%;\n\n\t/* Disabled corner border radius to be consistent with the .dropdown__button\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t&.ck-dropdown__panel_se {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_sw {\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_ne {\n\t\tborder-bottom-left-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_nw {\n\t\tborder-bottom-right-radius: 0;\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    3949: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-dropdown .ck-dropdown__panel .ck-list{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list,.ck.ck-dropdown .ck-dropdown__panel .ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0}.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button,.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:0}.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button,.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/listdropdown.css", "webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],
                                names: [],
                                mappings: "AAOA,6CCIC,eDqBD,CAzBA,iICQE,qCAAsC,CDJtC,wBAqBF,CAfE,mFCND,eDYC,CANA,6MCFA,qCAAsC,CDKpC,2BAA4B,CAC5B,4BAA6B,CAF7B,wBAIF,CAEA,kFCdD,eDmBC,CALA,2MCVA,qCAAsC,CDYpC,wBAAyB,CACzB,yBAEF",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n.ck.ck-dropdown .ck-dropdown__panel .ck-list {\n\t/* Disabled radius of top-left border to be consistent with .dropdown__button\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t@mixin ck-rounded-corners {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t/* Make sure the button belonging to the first/last child of the list goes well with the\n\tborder radius of the entire panel. */\n\t& .ck-list__item {\n\t\t&:first-child .ck-button {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\t\t}\n\n\t\t&:last-child .ck-button {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-top-right-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    7686: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            '.ck.ck-splitbutton{font-size:inherit}.ck.ck-splitbutton .ck-splitbutton__action:focus{z-index:calc(var(--ck-z-default) + 1)}:root{--ck-color-split-button-hover-background:#ebebeb;--ck-color-split-button-hover-border:#b3b3b3}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-right-radius:unset;border-top-right-radius:unset}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-left-radius:unset;border-top-left-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow{min-width:unset}[dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-left-radius:unset;border-top-left-radius:unset}[dir=rtl] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-right-radius:unset;border-top-right-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow svg{width:var(--ck-dropdown-arrow-size)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover),.ck.ck-splitbutton:hover>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover){background:var(--ck-color-split-button-hover-background)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{background-color:var(--ck-color-split-button-hover-border);content:"";height:100%;position:absolute;width:1px}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{left:-1px}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{right:-1px}.ck.ck-splitbutton.ck-splitbutton_open{border-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__action{border-bottom-left-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__arrow{border-bottom-right-radius:0}',
                            "",
                            {
                                version: 3,
                                sources: [
                                    "webpack://./../ckeditor5-ui/theme/components/dropdown/splitbutton.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/splitbutton.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css",
                                ],
                                names: [],
                                mappings:
                                    "AAKA,mBAEC,iBAKD,CAHC,iDACC,qCACD,CCJD,MACC,gDAAyD,CACzD,4CACD,CAMC,oIAKE,gCAAiC,CADjC,6BASF,CAbA,oIAWE,+BAAgC,CADhC,4BAGF,CAEA,0CAGC,eAiBD,CApBA,oDAQE,+BAAgC,CADhC,4BAaF,CApBA,oDAcE,gCAAiC,CADjC,6BAOF,CAHC,8CACC,mCACD,CASA,0KACC,wDACD,CAIA,8JAKC,0DAA2D,CAJ3D,UAAW,CAGX,WAAY,CAFZ,iBAAkB,CAClB,SAGD,CAGC,kLACC,SACD,CAIA,kLACC,UACD,CAMF,uCC7EA,eDuFA,CAVA,qHCzEC,qCDmFD,CARE,qKACC,2BACD,CAEA,mKACC,4BACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-splitbutton {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t& .ck-splitbutton__action:focus {\n\t\tz-index: calc(var(--ck-z-default) + 1);\n\t}\n}\n\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-color-split-button-hover-background: hsl(0, 0%, 92%);\n\t--ck-color-split-button-hover-border: hsl(0, 0%, 70%);\n}\n\n.ck.ck-splitbutton {\n\t/*\n\t * Note: ck-rounded and ck-dir mixins don\'t go together (because they both use @nest).\n\t */\n\t&:hover > .ck-splitbutton__action,\n\t&.ck-splitbutton_open > .ck-splitbutton__action {\n\t\t@nest [dir="ltr"] & {\n\t\t\t/* Don\'t round the action button on the right side */\n\t\t\tborder-top-right-radius: unset;\n\t\t\tborder-bottom-right-radius: unset;\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t/* Don\'t round the action button on the left side */\n\t\t\tborder-top-left-radius: unset;\n\t\t\tborder-bottom-left-radius: unset;\n\t\t}\n\t}\n\n\t& > .ck-splitbutton__arrow {\n\t\t/* It\'s a text-less button and since the icon is positioned absolutely in such situation,\n\t\tit must get some arbitrary min-width. */\n\t\tmin-width: unset;\n\n\t\t@nest [dir="ltr"] & {\n\t\t\t/* Don\'t round the arrow button on the left side */\n\t\t\tborder-top-left-radius: unset;\n\t\t\tborder-bottom-left-radius: unset;\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t/* Don\'t round the arrow button on the right side */\n\t\t\tborder-top-right-radius: unset;\n\t\t\tborder-bottom-right-radius: unset;\n\t\t}\n\n\t\t& svg {\n\t\t\twidth: var(--ck-dropdown-arrow-size);\n\t\t}\n\t}\n\n\t/* When the split button is "open" (the arrow is on) or being hovered, it should get some styling\n\tas a whole. The background of both buttons should stand out and there should be a visual\n\tseparation between both buttons. */\n\t&.ck-splitbutton_open,\n\t&:hover {\n\t\t/* When the split button hovered as a whole, not as individual buttons. */\n\t\t& > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover) {\n\t\t\tbackground: var(--ck-color-split-button-hover-background);\n\t\t}\n\n\t\t/* Splitbutton separator needs to be set with the ::after pseudoselector\n\t\tto display properly the borders on focus */\n\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\tcontent: \'\';\n\t\t\tposition: absolute;\n\t\t\twidth: 1px;\n\t\t\theight: 100%;\n\t\t\tbackground-color: var(--ck-color-split-button-hover-border);\n\t\t}\n\n\t\t@nest [dir="ltr"] & {\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\t\tleft: -1px;\n\t\t\t}\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\t\tright: -1px;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Don\'t round the bottom left and right corners of the buttons when "open"\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t&.ck-splitbutton_open {\n\t\t@mixin ck-rounded-corners {\n\t\t\t& > .ck-splitbutton__action {\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t}\n\n\t\t\t& > .ck-splitbutton__arrow {\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    7339: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ":root{--ck-toolbar-dropdown-max-width:60vw}.ck.ck-toolbar-dropdown>.ck-dropdown__panel{max-width:var(--ck-toolbar-dropdown-max-width);width:max-content}.ck.ck-toolbar-dropdown>.ck-dropdown__panel .ck-button:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-toolbar-dropdown .ck-toolbar{border:0}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-ui/theme/components/dropdown/toolbardropdown.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/toolbardropdown.css"],
                                names: [],
                                mappings: "AAKA,MACC,oCACD,CAEA,4CAGC,8CAA+C,CAD/C,iBAQD,CAJE,6DACC,qCACD,CCZF,oCACC,QACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-toolbar-dropdown-max-width: 60vw;\n}\n\n.ck.ck-toolbar-dropdown > .ck-dropdown__panel {\n\t/* https://github.com/ckeditor/ckeditor5/issues/5586 */\n\twidth: max-content;\n\tmax-width: var(--ck-toolbar-dropdown-max-width);\n\n\t& .ck-button {\n\t\t&:focus {\n\t\t\tz-index: calc(var(--ck-z-default) + 1);\n\t\t}\n\t}\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-toolbar-dropdown .ck-toolbar {\n\tborder: 0;\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    9688: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ":root{--ck-color-editable-blur-selection:#d9d9d9}.ck.ck-editor__editable:not(.ck-editor__nested-editable){border-radius:0}.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable),.ck.ck-editor__editable.ck-rounded-corners:not(.ck-editor__nested-editable){border-radius:var(--ck-border-radius)}.ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable){border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}.ck.ck-editor__editable_inline{border:1px solid transparent;overflow:auto;padding:0 var(--ck-spacing-standard)}.ck.ck-editor__editable_inline[dir=ltr]{text-align:left}.ck.ck-editor__editable_inline[dir=rtl]{text-align:right}.ck.ck-editor__editable_inline>:first-child{margin-top:var(--ck-spacing-large)}.ck.ck-editor__editable_inline>:last-child{margin-bottom:var(--ck-spacing-large)}.ck.ck-editor__editable_inline.ck-blurred ::selection{background:var(--ck-color-editable-blur-selection)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_n]:after{border-bottom-color:var(--ck-color-base-foreground)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_s]:after{border-top-color:var(--ck-color-base-foreground)}",
                            "",
                            {
                                version: 3,
                                sources: [
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/editorui.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css",
                                ],
                                names: [],
                                mappings:
                                    "AAWA,MACC,0CACD,CAEA,yDCJC,eDWD,CAPA,yJCAE,qCDOF,CAJC,oEEPA,2BAA2B,CCF3B,qCAA8B,CDC9B,YFWA,CAGD,+BAGC,4BAA6B,CAF7B,aAAc,CACd,oCA6BD,CA1BC,wCACC,eACD,CAEA,wCACC,gBACD,CAGA,4CACC,kCACD,CAGA,2CAKC,qCACD,CAGA,sDACC,kDACD,CAKA,gEACC,mDACD,CAIA,gEACC,gDACD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_shadow.css";\n@import "../../../mixins/_focus.css";\n@import "../../mixins/_button.css";\n\n:root {\n\t--ck-color-editable-blur-selection: hsl(0, 0%, 85%);\n}\n\n.ck.ck-editor__editable:not(.ck-editor__nested-editable) {\n\t@mixin ck-rounded-corners;\n\n\t&.ck-focused {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-inner-shadow);\n\t}\n}\n\n.ck.ck-editor__editable_inline {\n\toverflow: auto;\n\tpadding: 0 var(--ck-spacing-standard);\n\tborder: 1px solid transparent;\n\n\t&[dir="ltr"] {\n\t\ttext-align: left;\n\t}\n\n\t&[dir="rtl"] {\n\t\ttext-align: right;\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/116 */\n\t& > *:first-child {\n\t\tmargin-top: var(--ck-spacing-large);\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5/issues/847 */\n\t& > *:last-child {\n\t\t/*\n\t\t * This value should match with the default margins of the block elements (like .media or .image)\n\t\t * to avoid a content jumping when the fake selection container shows up (See https://github.com/ckeditor/ckeditor5/issues/9825).\n\t\t */\n\t\tmargin-bottom: var(--ck-spacing-large);\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5/issues/6517 */\n\t&.ck-blurred ::selection {\n\t\tbackground: var(--ck-color-editable-blur-selection);\n\t}\n}\n\n/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/111 */\n.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_n"] {\n\t&::after {\n\t\tborder-bottom-color: var(--ck-color-base-foreground);\n\t}\n}\n\n.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_s"] {\n\t&::after {\n\t\tborder-top-color: var(--ck-color-base-foreground);\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    8847: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-form__header{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}:root{--ck-form-header-height:38px}.ck.ck-form__header{border-bottom:1px solid var(--ck-color-base-border);height:var(--ck-form-header-height);line-height:var(--ck-form-header-height);padding:var(--ck-spacing-small) var(--ck-spacing-large)}.ck.ck-form__header .ck-form__header__label{font-weight:700}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-ui/theme/components/formheader/formheader.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/formheader/formheader.css"],
                                names: [],
                                mappings: "AAKA,oBAIC,kBAAmB,CAHnB,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CAEjB,6BACD,CCNA,MACC,4BACD,CAEA,oBAIC,mDAAoD,CAFpD,mCAAoC,CACpC,wCAAyC,CAFzC,uDAQD,CAHC,4CACC,eACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-form__header {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\talign-items: center;\n\tjustify-content: space-between;\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-form-header-height: 38px;\n}\n\n.ck.ck-form__header {\n\tpadding: var(--ck-spacing-small) var(--ck-spacing-large);\n\theight: var(--ck-form-header-height);\n\tline-height: var(--ck-form-header-height);\n\tborder-bottom: 1px solid var(--ck-color-base-border);\n\n\t& .ck-form__header__label {\n\t\tfont-weight: bold;\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    6574: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-icon{vertical-align:middle}:root{--ck-icon-size:calc(var(--ck-line-height-base)*var(--ck-font-size-normal))}.ck.ck-icon{font-size:.8333350694em;height:var(--ck-icon-size);width:var(--ck-icon-size);will-change:transform}.ck.ck-icon,.ck.ck-icon *{color:inherit;cursor:inherit}.ck.ck-icon :not([fill]){fill:currentColor}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-ui/theme/components/icon/icon.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/icon/icon.css"],
                                names: [],
                                mappings: "AAKA,YACC,qBACD,CCFA,MACC,0EACD,CAEA,YAKC,uBAAwB,CAHxB,0BAA2B,CAD3B,yBAA0B,CAY1B,qBAcD,CAZC,0BARA,aAAc,CAGd,cAgBA,CAJC,yBAEC,iBACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-icon {\n\tvertical-align: middle;\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));\n}\n\n.ck.ck-icon {\n\twidth: var(--ck-icon-size);\n\theight: var(--ck-icon-size);\n\n\t/* Multiplied by the height of the line in "px" should give SVG "viewport" dimensions */\n\tfont-size: .8333350694em;\n\n\tcolor: inherit;\n\n\t/* Inherit cursor style (#5). */\n\tcursor: inherit;\n\n\t/* This will prevent blurry icons on Firefox. See #340. */\n\twill-change: transform;\n\n\t& * {\n\t\t/* Inherit cursor style (#5). */\n\t\tcursor: inherit;\n\n\t\t/* Allows dynamic coloring of the icons. */\n\t\tcolor: inherit;\n\n\t\t&:not([fill]) {\n\t\t\t/* Needed by FF. */\n\t\t\tfill: currentColor;\n\t\t}\n\t}\n}\n',
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    4879: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ":root{--ck-input-width:18em;--ck-input-text-width:var(--ck-input-width)}.ck.ck-input{border-radius:0}.ck-rounded-corners .ck.ck-input,.ck.ck-input.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input{background:var(--ck-color-input-background);border:1px solid var(--ck-color-input-border);min-height:var(--ck-ui-component-min-height);min-width:var(--ck-input-width);padding:var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);transition:box-shadow .1s ease-in-out,border .1s ease-in-out}.ck.ck-input:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-input[readonly]{background:var(--ck-color-input-disabled-background);border:1px solid var(--ck-color-input-disabled-border);color:var(--ck-color-input-disabled-text)}.ck.ck-input[readonly]:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-input.ck-error{animation:ck-input-shake .3s ease both;border-color:var(--ck-color-input-error-border)}.ck.ck-input.ck-error:focus{box-shadow:var(--ck-focus-error-outer-shadow),0 0}@keyframes ck-input-shake{20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}",
                            "",
                            {
                                version: 3,
                                sources: [
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/input/input.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css",
                                ],
                                names: [],
                                mappings:
                                    "AASA,MACC,qBAAsB,CAGtB,2CACD,CAEA,aCLC,eD2CD,CAtCA,iECDE,qCDuCF,CAtCA,aAGC,2CAA4C,CAC5C,6CAA8C,CAK9C,4CAA6C,CAH7C,+BAAgC,CADhC,6DAA8D,CAO9D,4DA0BD,CAxBC,mBEnBA,2BAA2B,CCF3B,2CAA8B,CDC9B,YFuBA,CAEA,uBAEC,oDAAqD,CADrD,sDAAuD,CAEvD,yCAMD,CAJC,6BG/BD,oDHkCC,CAGD,sBAEC,sCAAuC,CADvC,+CAMD,CAHC,4BGzCD,iDH2CC,CAIF,0BACC,IACC,0BACD,CAEA,IACC,yBACD,CAEA,IACC,0BACD,CAEA,IACC,yBACD,CACD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-input-width: 18em;\n\n\t/* Backward compatibility. */\n\t--ck-input-text-width: var(--ck-input-width);\n}\n\n.ck.ck-input {\n\t@mixin ck-rounded-corners;\n\n\tbackground: var(--ck-color-input-background);\n\tborder: 1px solid var(--ck-color-input-border);\n\tpadding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);\n\tmin-width: var(--ck-input-width);\n\n\t/* This is important to stay of the same height as surrounding buttons */\n\tmin-height: var(--ck-ui-component-min-height);\n\n\t/* Apply some smooth transition to the box-shadow and border. */\n\ttransition: box-shadow .1s ease-in-out, border .1s ease-in-out;\n\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t&[readonly] {\n\t\tborder: 1px solid var(--ck-color-input-disabled-border);\n\t\tbackground: var(--ck-color-input-disabled-background);\n\t\tcolor: var(--ck-color-input-disabled-text);\n\n\t\t&:focus {\n\t\t\t/* The read-only input should have a slightly less visible shadow when focused. */\n\t\t\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\n\t\t}\n\t}\n\n\t&.ck-error {\n\t\tborder-color: var(--ck-color-input-error-border);\n\t\tanimation: ck-input-shake .3s ease both;\n\n\t\t&:focus {\n\t\t\t@mixin ck-box-shadow var(--ck-focus-error-outer-shadow);\n\t\t}\n\t}\n}\n\n@keyframes ck-input-shake {\n\t20% {\n\t\ttransform: translateX(-2px);\n\t}\n\n\t40% {\n\t\ttransform: translateX(2px);\n\t}\n\n\t60% {\n\t\ttransform: translateX(-1px);\n\t}\n\n\t80% {\n\t\ttransform: translateX(1px);\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    3662: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-label{display:block}.ck.ck-voice-label{display:none}.ck.ck-label{font-weight:700}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-ui/theme/components/label/label.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/label/label.css"],
                                names: [],
                                mappings: "AAKA,aACC,aACD,CAEA,mBACC,YACD,CCNA,aACC,eACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-label {\n\tdisplay: block;\n}\n\n.ck.ck-voice-label {\n\tdisplay: none;\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-label {\n\tfont-weight: bold;\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    2577: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{display:flex;position:relative}.ck.ck-labeled-field-view .ck.ck-label{display:block;position:absolute}:root{--ck-labeled-field-view-transition:.1s cubic-bezier(0,0,0.24,0.95);--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-spacing-medium);--ck-color-labeled-field-label-background:var(--ck-color-base-background)}.ck.ck-labeled-field-view{border-radius:0}.ck-rounded-corners .ck.ck-labeled-field-view,.ck.ck-labeled-field-view.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{width:100%}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{top:0}[dir=ltr] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{left:0}[dir=rtl] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{right:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:var(--ck-color-labeled-field-label-background);font-weight:400;line-height:normal;max-width:100%;overflow:hidden;padding:0 calc(var(--ck-font-size-tiny)*.5);pointer-events:none;text-overflow:ellipsis;transform:translate(var(--ck-spacing-medium),-6px) scale(.75);transform-origin:0 0;transition:transform var(--ck-labeled-field-view-transition),padding var(--ck-labeled-field-view-transition),background var(--ck-labeled-field-view-transition)}.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly])+.ck.ck-label,.ck.ck-labeled-field-view.ck-error>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view .ck-labeled-field-view__status{font-size:var(--ck-font-size-small);margin-top:var(--ck-spacing-small);white-space:normal}.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-input-disabled-text)}[dir=ltr] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=ltr] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(var(--ck-spacing-medium),calc(var(--ck-font-size-base)*.6)) scale(1)}[dir=rtl] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=rtl] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(calc(var(--ck-spacing-medium)*-1),calc(var(--ck-font-size-base)*.6)) scale(1)}.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:transparent;max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width));padding:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck.ck-button{background:transparent}.ck.ck-labeled-field-view.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck-button>.ck-button__label{opacity:0}.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown+.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard))}",
                            "",
                            {
                                version: 3,
                                sources: [
                                    "webpack://./../ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/labeledfield/labeledfieldview.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css",
                                ],
                                names: [],
                                mappings:
                                    "AAMC,mEACC,YAAa,CACb,iBACD,CAEA,uCACC,aAAc,CACd,iBACD,CCND,MACC,kEAAsE,CACtE,gFAAiF,CACjF,yEACD,CAEA,0BCHC,eD4GD,CAzGA,2FCCE,qCDwGF,CAtGC,mEACC,UAmCD,CAjCC,gFACC,KA+BD,CAhCA,0FAIE,MA4BF,CAhCA,0FAQE,OAwBF,CAhCA,gFAiBC,yDAA0D,CAG1D,eAAmB,CADnB,kBAAoB,CAOpB,cAAe,CAFf,eAAgB,CANhB,2CAA8C,CAP9C,mBAAoB,CAYpB,sBAAuB,CARvB,6DAA+D,CAH/D,oBAAqB,CAgBrB,+JAID,CAQA,mKACC,gCACD,CAGD,yDACC,mCAAoC,CACpC,kCAAmC,CAInC,kBAKD,CAHC,6FACC,gCACD,CAID,4OAEC,yCACD,CAIA,oUAGE,wFAYF,CAfA,oUAOE,iGAQF,CAfA,gTAaC,sBAAuB,CAFvB,iEAAkE,CAGlE,SACD,CAKA,8FACC,sBACD,CAGA,yIACC,SACD,CAGA,kMACC,8HACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-labeled-field-view {\n\t& > .ck.ck-labeled-field-view__input-wrapper {\n\t\tdisplay: flex;\n\t\tposition: relative;\n\t}\n\n\t& .ck.ck-label {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t}\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-labeled-field-view-transition: .1s cubic-bezier(0, 0, 0.24, 0.95);\n\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-spacing-medium);\n\t--ck-color-labeled-field-label-background: var(--ck-color-base-background);\n}\n\n.ck.ck-labeled-field-view {\n\t@mixin ck-rounded-corners;\n\n\t& > .ck.ck-labeled-field-view__input-wrapper {\n\t\twidth: 100%;\n\n\t\t& > .ck.ck-label {\n\t\t\ttop: 0px;\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tleft: 0px;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tright: 0px;\n\t\t\t}\n\n\t\t\tpointer-events: none;\n\t\t\ttransform-origin: 0 0;\n\n\t\t\t/* By default, display the label scaled down above the field. */\n\t\t\ttransform: translate(var(--ck-spacing-medium), -6px) scale(.75);\n\n\t\t\tbackground: var(--ck-color-labeled-field-label-background);\n\t\t\tpadding: 0 calc(.5 * var(--ck-font-size-tiny));\n\t\t\tline-height: initial;\n\t\t\tfont-weight: normal;\n\n\t\t\t/* Prevent overflow when the label is longer than the input */\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\n\t\t\tmax-width: 100%;\n\n\t\t\ttransition:\n\t\t\t\ttransform var(--ck-labeled-field-view-transition),\n\t\t\t\tpadding var(--ck-labeled-field-view-transition),\n\t\t\t\tbackground var(--ck-labeled-field-view-transition);\n\t\t}\n\t}\n\n\t&.ck-error {\n\t\t& > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\n\t\t& .ck-input:not([readonly]) + .ck.ck-label {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\t}\n\n\t& .ck-labeled-field-view__status {\n\t\tfont-size: var(--ck-font-size-small);\n\t\tmargin-top: var(--ck-spacing-small);\n\n\t\t/* Let the info wrap to the next line to avoid stretching the layout horizontally.\n\t\tThe status could be very long. */\n\t\twhite-space: normal;\n\n\t\t&.ck-labeled-field-view__status_error {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\t}\n\n\t/* Disabled fields and fields that have no focus should fade out. */\n\t&.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\tcolor: var(--ck-color-input-disabled-text);\n\t}\n\n\t/* Fields that are disabled or not focused and without a placeholder should have full-sized labels. */\n\t/* stylelint-disable-next-line no-descending-specificity */\n\t&.ck-disabled.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\t@mixin ck-dir ltr {\n\t\t\ttransform: translate(var(--ck-spacing-medium), calc(0.6 * var(--ck-font-size-base))) scale(1);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttransform: translate(calc(-1 * var(--ck-spacing-medium)), calc(0.6 * var(--ck-font-size-base))) scale(1);\n\t\t}\n\n\t\t/* Compensate for the default translate position. */\n\t\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width));\n\n\t\tbackground: transparent;\n\t\tpadding: 0;\n\t}\n\n\t/*------ DropdownView integration ----------------------------------------------------------------------------------- */\n\n\t/* Make sure dropdown\' background color in any of dropdown\'s state does not collide with labeled field. */\n\t& > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck.ck-button {\n\t\tbackground: transparent;\n\t}\n\n\t/* When the dropdown is "empty", the labeled field label replaces its label. */\n\t&.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck-button > .ck-button__label {\n\t\topacity: 0;\n\t}\n\n\t/* Make sure the label of the empty, unfocused input does not cover the dropdown arrow. */\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown + .ck-label {\n\t\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard));\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    1046: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-list{display:flex;flex-direction:column;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-list .ck-list__item,.ck.ck-list .ck-list__separator{display:block}.ck.ck-list .ck-list__item>:focus{position:relative;z-index:var(--ck-z-default)}.ck.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-list,.ck.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-list{background:var(--ck-color-list-background);list-style-type:none}.ck.ck-list__item{cursor:default;min-width:12em}.ck.ck-list__item .ck-button{border-radius:0;min-height:unset;padding:calc(var(--ck-line-height-base)*.2*var(--ck-font-size-base)) calc(var(--ck-line-height-base)*.4*var(--ck-font-size-base));text-align:left;width:100%}.ck.ck-list__item .ck-button .ck-button__label{line-height:calc(var(--ck-line-height-base)*1.2*var(--ck-font-size-base))}.ck.ck-list__item .ck-button:active{box-shadow:none}.ck.ck-list__item .ck-button.ck-on{background:var(--ck-color-list-button-on-background);color:var(--ck-color-list-button-on-text)}.ck.ck-list__item .ck-button.ck-on:active{box-shadow:none}.ck.ck-list__item .ck-button.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-on-background-focus)}.ck.ck-list__item .ck-button.ck-on:focus:not(.ck-switchbutton):not(.ck-disabled){border-color:var(--ck-color-base-background)}.ck.ck-list__item .ck-button:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background)}.ck.ck-list__item .ck-switchbutton.ck-on{background:var(--ck-color-list-background);color:inherit}.ck.ck-list__item .ck-switchbutton.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background);color:inherit}.ck.ck-list__separator{background:var(--ck-color-base-border);height:1px;width:100%}",
                            "",
                            {
                                version: 3,
                                sources: [
                                    "webpack://./../ckeditor5-ui/theme/components/list/list.css",
                                    "webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/list/list.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css",
                                ],
                                names: [],
                                mappings:
                                    "AAOA,YAGC,YAAa,CACb,qBAAsB,CCFtB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBDaD,CAZC,2DAEC,aACD,CAKA,kCACC,iBAAkB,CAClB,2BACD,CEfD,YCEC,eDGD,CALA,+DCME,qCDDF,CALA,YAIC,0CAA2C,CAD3C,oBAED,CAEA,kBACC,cAAe,CACf,cA2DD,CAzDC,6BAIC,eAAgB,CAHhB,gBAAiB,CAQjB,iIAEiE,CARjE,eAAgB,CADhB,UAwCD,CA7BC,+CAEC,yEACD,CAEA,oCACC,eACD,CAEA,mCACC,oDAAqD,CACrD,yCAaD,CAXC,0CACC,eACD,CAEA,2DACC,0DACD,CAEA,iFACC,4CACD,CAGD,qDACC,uDACD,CAMA,yCACC,0CAA2C,CAC3C,aAMD,CAJC,iEACC,uDAAwD,CACxD,aACD,CAKH,uBAGC,sCAAuC,CAFvC,UAAW,CACX,UAED",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-list {\n\t@mixin ck-unselectable;\n\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t& .ck-list__item,\n\t& .ck-list__separator {\n\t\tdisplay: block;\n\t}\n\n\t/* Make sure that whatever child of the list item gets focus, it remains on the\n\ttop. Thanks to that, styles like box-shadow, outline, etc. are not masked by\n\tadjacent list items. */\n\t& .ck-list__item > *:focus {\n\t\tposition: relative;\n\t\tz-index: var(--ck-z-default);\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n\n.ck.ck-list {\n\t@mixin ck-rounded-corners;\n\n\tlist-style-type: none;\n\tbackground: var(--ck-color-list-background);\n}\n\n.ck.ck-list__item {\n\tcursor: default;\n\tmin-width: 12em;\n\n\t& .ck-button {\n\t\tmin-height: unset;\n\t\twidth: 100%;\n\t\ttext-align: left;\n\t\tborder-radius: 0;\n\n\t\t/* List items should have the same height. Use absolute units to make sure it is so\n\t\t   because e.g. different heading styles may have different height\n\t\t   https://github.com/ckeditor/ckeditor5-heading/issues/63 */\n\t\tpadding:\n\t\t\tcalc(.2 * var(--ck-line-height-base) * var(--ck-font-size-base))\n\t\t\tcalc(.4 * var(--ck-line-height-base) * var(--ck-font-size-base));\n\n\t\t& .ck-button__label {\n\t\t\t/* https://github.com/ckeditor/ckeditor5-heading/issues/63 */\n\t\t\tline-height: calc(1.2 * var(--ck-line-height-base) * var(--ck-font-size-base));\n\t\t}\n\n\t\t&:active {\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t&.ck-on {\n\t\t\tbackground: var(--ck-color-list-button-on-background);\n\t\t\tcolor: var(--ck-color-list-button-on-text);\n\n\t\t\t&:active {\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\n\t\t\t&:hover:not(.ck-disabled) {\n\t\t\t\tbackground: var(--ck-color-list-button-on-background-focus);\n\t\t\t}\n\n\t\t\t&:focus:not(.ck-switchbutton):not(.ck-disabled) {\n\t\t\t\tborder-color: var(--ck-color-base-background);\n\t\t\t}\n\t\t}\n\n\t\t&:hover:not(.ck-disabled) {\n\t\t\tbackground: var(--ck-color-list-button-hover-background);\n\t\t}\n\t}\n\n\t/* It\'s unnecessary to change the background/text of a switch toggle; it has different ways\n\tof conveying its state (like the switcher) */\n\t& .ck-switchbutton {\n\t\t&.ck-on {\n\t\t\tbackground: var(--ck-color-list-background);\n\t\t\tcolor: inherit;\n\n\t\t\t&:hover:not(.ck-disabled) {\n\t\t\t\tbackground: var(--ck-color-list-button-hover-background);\n\t\t\t\tcolor: inherit;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-list__separator {\n\theight: 1px;\n\twidth: 100%;\n\tbackground: var(--ck-color-base-border);\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    8793: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ':root{--ck-balloon-panel-arrow-z-index:calc(var(--ck-z-default) - 3)}.ck.ck-balloon-panel{display:none;position:absolute;z-index:var(--ck-z-modal)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{content:"";position:absolute}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_n]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_n]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_s]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_s]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel.ck-balloon-panel_visible{display:block}:root{--ck-balloon-border-width:1px;--ck-balloon-arrow-offset:2px;--ck-balloon-arrow-height:10px;--ck-balloon-arrow-half-width:8px;--ck-balloon-arrow-drop-shadow:0 2px 2px var(--ck-color-shadow-drop)}.ck.ck-balloon-panel{border-radius:0}.ck-rounded-corners .ck.ck-balloon-panel,.ck.ck-balloon-panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-balloon-panel{background:var(--ck-color-panel-background);border:var(--ck-balloon-border-width) solid var(--ck-color-panel-border);box-shadow:var(--ck-drop-shadow),0 0;min-height:15px}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{border-style:solid;height:0;width:0}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-width:0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_n]:before{border-color:transparent transparent var(--ck-color-panel-border) transparent;margin-top:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_n]:after{border-color:transparent transparent var(--ck-color-panel-background) transparent;margin-top:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-width:var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_s]:before{border-color:var(--ck-color-panel-border) transparent transparent;filter:drop-shadow(var(--ck-balloon-arrow-drop-shadow));margin-bottom:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_s]:after{border-color:var(--ck-color-panel-background) transparent transparent transparent;margin-bottom:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_e]:after,.ck.ck-balloon-panel[class*=arrow_e]:before{border-width:var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height)}.ck.ck-balloon-panel[class*=arrow_e]:before{border-color:transparent transparent transparent var(--ck-color-panel-border);margin-right:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_e]:after{border-color:transparent transparent transparent var(--ck-color-panel-background);margin-right:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_w]:after,.ck.ck-balloon-panel[class*=arrow_w]:before{border-width:var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0}.ck.ck-balloon-panel[class*=arrow_w]:before{border-color:transparent var(--ck-color-panel-border) transparent transparent;margin-left:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_w]:after{border-color:transparent var(--ck-color-panel-background) transparent transparent;margin-left:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);right:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:before{margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%;top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:before{margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);right:calc(var(--ck-balloon-arrow-height)*-1);top:50%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:before{left:calc(var(--ck-balloon-arrow-height)*-1);margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);top:50%}',
                            "",
                            {
                                version: 3,
                                sources: [
                                    "webpack://./../ckeditor5-ui/theme/components/panel/balloonpanel.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonpanel.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css",
                                ],
                                names: [],
                                mappings:
                                    "AAKA,MAEC,8DACD,CAEA,qBACC,YAAa,CACb,iBAAkB,CAElB,yBAyCD,CAtCE,+GAEC,UAAW,CACX,iBACD,CAEA,wDACC,6CACD,CAEA,uDACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAGD,8CACC,aACD,CC9CD,MACC,6BAA8B,CAC9B,6BAA8B,CAC9B,8BAA+B,CAC/B,iCAAkC,CAClC,oEACD,CAEA,qBCLC,eDmMD,CA9LA,iFCDE,qCD+LF,CA9LA,qBAMC,2CAA4C,CAC5C,wEAAyE,CEdzE,oCAA8B,CFW9B,eA0LD,CApLE,+GAIC,kBAAmB,CADnB,QAAS,CADT,OAGD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,kDACD,CAEA,2CACC,iFAAkF,CAClF,gFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,iEAAkE,CAClE,uDAAwD,CACxD,qDACD,CAEA,2CACC,iFAAkF,CAClF,mFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,oDACD,CAEA,2CACC,iFAAkF,CAClF,kFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,mDACD,CAEA,2CACC,iFAAkF,CAClF,iFACD,CAIA,yGAEC,QAAS,CACT,uDAA0D,CAC1D,2CACD,CAIA,2GAEC,+CAAkD,CAClD,2CACD,CAIA,2GAEC,gDAAmD,CACnD,2CACD,CAIA,yGAIC,8CAAiD,CAFjD,QAAS,CACT,uDAED,CAIA,2GAGC,8CAAiD,CADjD,+CAED,CAIA,2GAGC,8CAAiD,CADjD,gDAED,CAIA,6GAIC,8CAAiD,CADjD,uDAA0D,CAD1D,SAGD,CAIA,6GAIC,8CAAiD,CAFjD,QAAS,CACT,sDAED,CAIA,6GAGC,uDAA0D,CAD1D,SAAU,CAEV,2CACD,CAIA,6GAEC,QAAS,CACT,sDAAyD,CACzD,2CACD,CAIA,yGAGC,sDAAyD,CADzD,6CAAgD,CAEhD,OACD,CAIA,yGAEC,4CAA+C,CAC/C,sDAAyD,CACzD,OACD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/* Make sure the balloon arrow does not float over its children. */\n\t--ck-balloon-panel-arrow-z-index: calc(var(--ck-z-default) - 3);\n}\n\n.ck.ck-balloon-panel {\n\tdisplay: none;\n\tposition: absolute;\n\n\tz-index: var(--ck-z-modal);\n\n\t&.ck-balloon-panel_with-arrow {\n\t\t&::before,\n\t\t&::after {\n\t\t\tcontent: "";\n\t\t\tposition: absolute;\n\t\t}\n\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&[class*="arrow_n"] {\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&[class*="arrow_s"] {\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_visible {\n\t\tdisplay: block;\n\t}\n}\n',
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-balloon-border-width: 1px;\n\t--ck-balloon-arrow-offset: 2px;\n\t--ck-balloon-arrow-height: 10px;\n\t--ck-balloon-arrow-half-width: 8px;\n\t--ck-balloon-arrow-drop-shadow: 0 2px 2px var(--ck-color-shadow-drop);\n}\n\n.ck.ck-balloon-panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tmin-height: 15px;\n\n\tbackground: var(--ck-color-panel-background);\n\tborder: var(--ck-balloon-border-width) solid var(--ck-color-panel-border);\n\n\t&.ck-balloon-panel_with-arrow {\n\t\t&::before,\n\t\t&::after {\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\t\t\tborder-style: solid;\n\t\t}\n\t}\n\n\t&[class*="arrow_n"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent transparent var(--ck-color-panel-border) transparent;\n\t\t\tmargin-top: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent transparent var(--ck-color-panel-background) transparent;\n\t\t\tmargin-top: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&[class*="arrow_s"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: var(--ck-color-panel-border) transparent transparent;\n\t\t\tfilter: drop-shadow(var(--ck-balloon-arrow-drop-shadow));\n\t\t\tmargin-bottom: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: var(--ck-color-panel-background) transparent transparent transparent;\n\t\t\tmargin-bottom: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&[class*="arrow_e"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent transparent transparent var(--ck-color-panel-border);\n\t\t\tmargin-right: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent transparent transparent var(--ck-color-panel-background);\n\t\t\tmargin-right: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&[class*="arrow_w"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0;\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent var(--ck-color-panel-border) transparent transparent;\n\t\t\tmargin-left: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent var(--ck-color-panel-background) transparent transparent;\n\t\t\tmargin-left: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_n {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 50%;\n\t\t\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_ne {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_s {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 50%;\n\t\t\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_sw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_se {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_sme {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: 25%;\n\t\t\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_smw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 25%;\n\t\t\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nme {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: 25%;\n\t\t\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nmw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 25%;\n\t\t\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_e {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: 50%;\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_w {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: 50%;\n\t\t}\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    4650: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck .ck-balloon-rotator__navigation{align-items:center;display:flex;justify-content:center}.ck .ck-balloon-rotator__content .ck-toolbar{justify-content:center}.ck .ck-balloon-rotator__navigation{background:var(--ck-color-toolbar-background);border-bottom:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation>*{margin-bottom:var(--ck-spacing-small);margin-right:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter{margin-left:var(--ck-spacing-small);margin-right:var(--ck-spacing-standard)}.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper{box-shadow:none}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-ui/theme/components/panel/balloonrotator.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonrotator.css"],
                                names: [],
                                mappings: "AAKA,oCAEC,kBAAmB,CADnB,YAAa,CAEb,sBACD,CAKA,6CACC,sBACD,CCXA,oCACC,6CAA8C,CAC9C,sDAAuD,CACvD,iCAgBD,CAbC,sCAGC,qCAAsC,CAFtC,oCAAqC,CACrC,kCAED,CAGA,iEAIC,mCAAoC,CAHpC,uCAID,CAMA,2DACC,eACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-balloon-rotator__navigation {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Buttons inside a toolbar should be centered when rotator bar is wider.\n * See: https://github.com/ckeditor/ckeditor5-ui/issues/495\n */\n.ck .ck-balloon-rotator__content .ck-toolbar {\n\tjustify-content: center;\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-balloon-rotator__navigation {\n\tbackground: var(--ck-color-toolbar-background);\n\tborder-bottom: 1px solid var(--ck-color-toolbar-border);\n\tpadding: 0 var(--ck-spacing-small);\n\n\t/* Let's keep similar appearance to `ck-toolbar`. */\n\t& > * {\n\t\tmargin-right: var(--ck-spacing-small);\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t/* Gives counter more breath than buttons. */\n\t& .ck-balloon-rotator__counter {\n\t\tmargin-right: var(--ck-spacing-standard);\n\n\t\t/* We need to use smaller margin because of previous button's right margin. */\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n}\n\n.ck .ck-balloon-rotator__content {\n\n\t/* Disable default annotation shadow inside rotator with fake panels. */\n\t& .ck.ck-annotation-wrapper {\n\t\tbox-shadow: none;\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    7676: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck .ck-fake-panel{position:absolute;z-index:calc(var(--ck-z-modal) - 1)}.ck .ck-fake-panel div{position:absolute}.ck .ck-fake-panel div:first-child{z-index:2}.ck .ck-fake-panel div:nth-child(2){z-index:1}:root{--ck-balloon-fake-panel-offset-horizontal:6px;--ck-balloon-fake-panel-offset-vertical:6px}.ck .ck-fake-panel div{background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border);border-radius:var(--ck-border-radius);box-shadow:var(--ck-drop-shadow),0 0;height:100%;min-height:15px;width:100%}.ck .ck-fake-panel div:first-child{margin-left:var(--ck-balloon-fake-panel-offset-horizontal);margin-top:var(--ck-balloon-fake-panel-offset-vertical)}.ck .ck-fake-panel div:nth-child(2){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*2);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*2)}.ck .ck-fake-panel div:nth-child(3){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*3);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*3)}.ck .ck-balloon-panel_arrow_s+.ck-fake-panel,.ck .ck-balloon-panel_arrow_se+.ck-fake-panel,.ck .ck-balloon-panel_arrow_sw+.ck-fake-panel{--ck-balloon-fake-panel-offset-vertical:-6px}",
                            "",
                            {
                                version: 3,
                                sources: [
                                    "webpack://./../ckeditor5-ui/theme/components/panel/fakepanel.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/fakepanel.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css",
                                ],
                                names: [],
                                mappings:
                                    "AAKA,mBACC,iBAAkB,CAGlB,mCACD,CAEA,uBACC,iBACD,CAEA,mCACC,SACD,CAEA,oCACC,SACD,CCfA,MACC,6CAA8C,CAC9C,2CACD,CAGA,uBAKC,2CAA4C,CAC5C,6CAA8C,CAC9C,qCAAsC,CCXtC,oCAA8B,CDc9B,WAAY,CAPZ,eAAgB,CAMhB,UAED,CAEA,mCACC,0DAA2D,CAC3D,uDACD,CAEA,oCACC,kEAAqE,CACrE,+DACD,CACA,oCACC,kEAAqE,CACrE,+DACD,CAGA,yIAGC,4CACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-fake-panel {\n\tposition: absolute;\n\n\t/* Fake panels should be placed under main balloon content. */\n\tz-index: calc(var(--ck-z-modal) - 1);\n}\n\n.ck .ck-fake-panel div {\n\tposition: absolute;\n}\n\n.ck .ck-fake-panel div:nth-child( 1 ) {\n\tz-index: 2;\n}\n\n.ck .ck-fake-panel div:nth-child( 2 ) {\n\tz-index: 1;\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-balloon-fake-panel-offset-horizontal: 6px;\n\t--ck-balloon-fake-panel-offset-vertical: 6px;\n}\n\n/* Let\'s use `.ck-balloon-panel` appearance. See: balloonpanel.css. */\n.ck .ck-fake-panel div {\n\t@mixin ck-drop-shadow;\n\n\tmin-height: 15px;\n\n\tbackground: var(--ck-color-panel-background);\n\tborder: 1px solid var(--ck-color-panel-border);\n\tborder-radius: var(--ck-border-radius);\n\n\twidth: 100%;\n\theight: 100%;\n}\n\n.ck .ck-fake-panel div:nth-child( 1 ) {\n\tmargin-left: var(--ck-balloon-fake-panel-offset-horizontal);\n\tmargin-top: var(--ck-balloon-fake-panel-offset-vertical);\n}\n\n.ck .ck-fake-panel div:nth-child( 2 ) {\n\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);\n\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);\n}\n.ck .ck-fake-panel div:nth-child( 3 ) {\n\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3);\n\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 3);\n}\n\n/* If balloon is positioned above element, we need to move fake panel to the top. */\n.ck .ck-balloon-panel_arrow_s + .ck-fake-panel,\n.ck .ck-balloon-panel_arrow_se + .ck-fake-panel,\n.ck .ck-balloon-panel_arrow_sw + .ck-fake-panel {\n\t--ck-balloon-fake-panel-offset-vertical: -6px;\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    5868: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-sticky-panel .ck-sticky-panel__content_sticky{position:fixed;top:0;z-index:var(--ck-z-modal)}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{position:absolute;top:auto}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky{border-top-left-radius:0;border-top-right-radius:0;border-width:0 1px 1px;box-shadow:var(--ck-drop-shadow),0 0}",
                            "",
                            {
                                version: 3,
                                sources: [
                                    "webpack://./../ckeditor5-ui/theme/components/panel/stickypanel.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/stickypanel.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css",
                                ],
                                names: [],
                                mappings: "AAMC,qDAEC,cAAe,CACf,KAAM,CAFN,yBAGD,CAEA,kEAEC,iBAAkB,CADlB,QAED,CCPA,qDAIC,wBAAyB,CACzB,yBAA0B,CAF1B,sBAAuB,CCFxB,oCDKA",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-sticky-panel {\n\t& .ck-sticky-panel__content_sticky {\n\t\tz-index: var(--ck-z-modal); /* #315 */\n\t\tposition: fixed;\n\t\ttop: 0;\n\t}\n\n\t& .ck-sticky-panel__content_sticky_bottom-limit {\n\t\ttop: auto;\n\t\tposition: absolute;\n\t}\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_shadow.css";\n\n.ck.ck-sticky-panel {\n\t& .ck-sticky-panel__content_sticky {\n\t\t@mixin ck-drop-shadow;\n\n\t\tborder-width: 0 1px 1px;\n\t\tborder-top-left-radius: 0;\n\t\tborder-top-right-radius: 0;\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    6764: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            '.ck-vertical-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck-vertical-form .ck-button:focus:after{display:none}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck.ck-responsive-form .ck-button:focus:after{display:none}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-width)*.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){border-radius:0;margin-top:var(--ck-spacing-large);padding:var(--ck-spacing-standard)}.ck.ck-responsive-form>.ck-button:last-child:not(:focus),.ck.ck-responsive-form>.ck-button:nth-last-child(2):not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}',
                            "",
                            {
                                version: 3,
                                sources: [
                                    "webpack://./../ckeditor5-ui/theme/components/responsive-form/responsiveform.css",
                                    "webpack://./../ckeditor5-ui/theme/mixins/_rwd.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/responsive-form/responsiveform.css",
                                ],
                                names: [],
                                mappings:
                                    "AAQC,mCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,yCACC,YACD,CCdA,oCDoBE,wCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,8CACC,YACD,CC9BF,CCAD,qDACC,kDACD,CAEA,uBACC,+BAmED,CAjEC,6BAEC,YACD,CASC,uGACC,sCACD,CDvBD,oCCMD,uBAqBE,SAAU,CACV,oCA8CF,CA5CE,8CACC,wDAWD,CATC,6DACC,WAAY,CACZ,UACD,CAGA,4EACC,kBACD,CAKA,0DACC,kDACD,CAGD,iGAIC,eAAgB,CADhB,kCAAmC,CADnC,kCAmBD,CAfC,yHACC,gDACD,CARD,0OAeE,aAMF,CAJE,+IACC,kDACD,CDpEH",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck-vertical-form .ck-button {\n\t&::after {\n\t\tcontent: "";\n\t\twidth: 0;\n\t\tposition: absolute;\n\t\tright: -1px;\n\t\ttop: -1px;\n\t\tbottom: -1px;\n\t\tz-index: 1;\n\t}\n\n\t&:focus::after {\n\t\tdisplay: none;\n\t}\n}\n\n.ck.ck-responsive-form {\n\t@mixin ck-media-phone {\n\t\t& .ck-button {\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\tposition: absolute;\n\t\t\t\tright: -1px;\n\t\t\t\ttop: -1px;\n\t\t\t\tbottom: -1px;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\t&:focus::after {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck-vertical-form > .ck-button:nth-last-child(2)::after {\n\tborder-right: 1px solid var(--ck-color-base-border);\n}\n\n.ck.ck-responsive-form {\n\tpadding: var(--ck-spacing-large);\n\n\t&:focus {\n\t\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\n\t\toutline: none;\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& > :not(:first-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& > :not(:last-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\tpadding: 0;\n\t\twidth: calc(.8 * var(--ck-input-width));\n\n\t\t& .ck-labeled-field-view {\n\t\t\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) 0;\n\n\t\t\t& .ck-input-text {\n\t\t\t\tmin-width: 0;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t/* Let the long error messages wrap in the narrow form. */\n\t\t\t& .ck-labeled-field-view__error {\n\t\t\t\twhite-space: normal;\n\t\t\t}\n\t\t}\n\n\t\t/* Styles for two last buttons in the form (save&cancel, edit&unlink, etc.). */\n\t\t& > .ck-button:nth-last-child(2) {\n\t\t\t&::after {\n\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\t\t}\n\n\t\t& > .ck-button:nth-last-child(1),\n\t\t& > .ck-button:nth-last-child(2) {\n\t\t\tpadding: var(--ck-spacing-standard);\n\t\t\tmargin-top: var(--ck-spacing-large);\n\t\t\tborder-radius: 0;\n\n\t\t\t&:not(:focus) {\n\t\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-left: 0;\n\n\t\t\t\t&:last-of-type {\n\t\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n',
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    9695: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-block-toolbar-button{position:absolute;z-index:var(--ck-z-default)}:root{--ck-color-block-toolbar-button:var(--ck-color-text);--ck-block-toolbar-button-size:var(--ck-font-size-normal)}.ck.ck-block-toolbar-button{color:var(--ck-color-block-toolbar-button);font-size:var(--ck-block-toolbar-size)}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-ui/theme/components/toolbar/blocktoolbar.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/blocktoolbar.css"],
                                names: [],
                                mappings: "AAKA,4BACC,iBAAkB,CAClB,2BACD,CCHA,MACC,oDAAqD,CACrD,yDACD,CAEA,4BACC,0CAA2C,CAC3C,sCACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-block-toolbar-button {\n\tposition: absolute;\n\tz-index: var(--ck-z-default);\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-block-toolbar-button: var(--ck-color-text);\n\t--ck-block-toolbar-button-size: var(--ck-font-size-normal);\n}\n\n.ck.ck-block-toolbar-button {\n\tcolor: var(--ck-color-block-toolbar-button);\n\tfont-size: var(--ck-block-toolbar-size);\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    5542: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-toolbar{align-items:center;display:flex;flex-flow:row nowrap;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-toolbar>.ck-toolbar__items{align-items:center;display:flex;flex-flow:row wrap;flex-grow:1}.ck.ck-toolbar .ck.ck-toolbar__separator{display:inline-block}.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,.ck.ck-toolbar .ck.ck-toolbar__separator:last-child{display:none}.ck.ck-toolbar .ck-toolbar__line-break{flex-basis:100%}.ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items{flex-direction:column}.ck.ck-toolbar.ck-toolbar_floating>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck-dropdown__button .ck-dropdown__arrow{display:none}.ck.ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-toolbar,.ck.ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-toolbar{background:var(--ck-color-toolbar-background);border:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck.ck-toolbar .ck.ck-toolbar__separator{align-self:stretch;background:var(--ck-color-toolbar-border);margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small);min-width:1px;width:1px}.ck.ck-toolbar .ck-toolbar__line-break{height:0}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break){margin-right:var(--ck-spacing-small)}.ck.ck-toolbar>.ck-toolbar__items:empty+.ck.ck-toolbar__separator{display:none}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break),.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown{margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck.ck-toolbar.ck-toolbar_vertical{padding:0}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items>.ck{border-radius:0;margin:0;width:100%}.ck.ck-toolbar.ck-toolbar_compact{padding:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>*{margin:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>:not(:first-child):not(:last-child){border-radius:0}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck.ck-button.ck-dropdown__button{padding-left:var(--ck-spacing-tiny)}.ck-toolbar-container .ck.ck-toolbar{border:0}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck{margin-right:0}.ck.ck-toolbar[dir=rtl]:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-left:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:first-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=rtl]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=rtl]>.ck.ck-toolbar__separator,[dir=rtl] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=rtl] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-right:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:first-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=ltr]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=ltr]>.ck.ck-toolbar__separator,[dir=ltr] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=ltr] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-right:var(--ck-spacing-small)}",
                            "",
                            {
                                version: 3,
                                sources: [
                                    "webpack://./../ckeditor5-ui/theme/components/toolbar/toolbar.css",
                                    "webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/toolbar.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css",
                                ],
                                names: [],
                                mappings:
                                    "AAOA,eAKC,kBAAmB,CAFnB,YAAa,CACb,oBAAqB,CCFrB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD6CD,CA3CC,kCAGC,kBAAmB,CAFnB,YAAa,CACb,kBAAmB,CAEnB,WAED,CAEA,yCACC,oBAWD,CAJC,yGAEC,YACD,CAGD,uCACC,eACD,CAEA,sDACC,gBACD,CAEA,sDACC,qBACD,CAEA,sDACC,gBACD,CAGC,yFACC,YACD,CE/CF,eCGC,eDuFD,CA1FA,qECOE,qCDmFF,CA1FA,eAGC,6CAA8C,CAE9C,+CAAgD,CADhD,iCAsFD,CAnFC,yCACC,kBAAmB,CAGnB,yCAA0C,CAO1C,qCAAsC,CADtC,kCAAmC,CAPnC,aAAc,CADd,SAUD,CAEA,uCACC,QACD,CAGC,gEAEC,oCACD,CAIA,kEACC,YACD,CAGD,gHAIC,qCAAsC,CADtC,kCAED,CAEA,mCAEC,SAaD,CAVC,0DAQC,eAAgB,CAHhB,QAAS,CAHT,UAOD,CAGD,kCAEC,SAWD,CATC,uDAEC,QAMD,CAHC,yFACC,eACD,CASD,kFACC,mCACD,CApFF,qCAwFE,QAEF,CAYC,+FACC,cACD,CAEA,iJAEC,mCACD,CAEA,qHACC,aACD,CAIC,6JAEC,2BAA4B,CAD5B,wBAED,CAGA,2JAEC,4BAA6B,CAD7B,yBAED,CASD,8RACC,mCACD,CAWA,qHACC,cACD,CAIC,6JAEC,4BAA6B,CAD7B,yBAED,CAGA,2JAEC,2BAA4B,CAD5B,wBAED,CASD,8RACC,oCACD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-toolbar {\n\t@mixin ck-unselectable;\n\n\tdisplay: flex;\n\tflex-flow: row nowrap;\n\talign-items: center;\n\n\t& > .ck-toolbar__items {\n\t\tdisplay: flex;\n\t\tflex-flow: row wrap;\n\t\talign-items: center;\n\t\tflex-grow: 1;\n\n\t}\n\n\t& .ck.ck-toolbar__separator {\n\t\tdisplay: inline-block;\n\n\t\t/*\n\t\t * A leading or trailing separator makes no sense (separates from nothing on one side).\n\t\t * For instance, it can happen when toolbar items (also separators) are getting grouped one by one and\n\t\t * moved to another toolbar in the dropdown.\n\t\t */\n\t\t&:first-child,\n\t\t&:last-child {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& .ck-toolbar__line-break {\n\t\tflex-basis: 100%;\n\t}\n\n\t&.ck-toolbar_grouping > .ck-toolbar__items {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t&.ck-toolbar_vertical > .ck-toolbar__items {\n\t\tflex-direction: column;\n\t}\n\n\t&.ck-toolbar_floating > .ck-toolbar__items {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t& > .ck-dropdown__button .ck-dropdown__arrow {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-toolbar {\n\t@mixin ck-rounded-corners;\n\n\tbackground: var(--ck-color-toolbar-background);\n\tpadding: 0 var(--ck-spacing-small);\n\tborder: 1px solid var(--ck-color-toolbar-border);\n\n\t& .ck.ck-toolbar__separator {\n\t\talign-self: stretch;\n\t\twidth: 1px;\n\t\tmin-width: 1px;\n\t\tbackground: var(--ck-color-toolbar-border);\n\n\t\t/*\n\t\t * These margins make the separators look better in balloon toolbars (when aligned with the "tip").\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/7493.\n\t\t */\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t& .ck-toolbar__line-break {\n\t\theight: 0;\n\t}\n\n\t& > .ck-toolbar__items {\n\t\t& > *:not(.ck-toolbar__line-break) {\n\t\t\t/* (#11) Separate toolbar items. */\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\n\t\t/* Don\'t display a separator after an empty items container, for instance,\n\t\twhen all items were grouped */\n\t\t&:empty + .ck.ck-toolbar__separator {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& > .ck-toolbar__items > *:not(.ck-toolbar__line-break),\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t/* Make sure items wrapped to the next line have v-spacing */\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t&.ck-toolbar_vertical {\n\t\t/* Items in a vertical toolbar span the entire width. */\n\t\tpadding: 0;\n\n\t\t/* Specificity matters here. See https://github.com/ckeditor/ckeditor5-theme-lark/issues/168. */\n\t\t& > .ck-toolbar__items > .ck {\n\t\t\t/* Items in a vertical toolbar should span the horizontal space. */\n\t\t\twidth: 100%;\n\n\t\t\t/* Items in a vertical toolbar should have no margin. */\n\t\t\tmargin: 0;\n\n\t\t\t/* Items in a vertical toolbar span the entire width so rounded corners are pointless. */\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n\n\t&.ck-toolbar_compact {\n\t\t/* No spacing around items. */\n\t\tpadding: 0;\n\n\t\t& > .ck-toolbar__items > * {\n\t\t\t/* Compact toolbar items have no spacing between them. */\n\t\t\tmargin: 0;\n\n\t\t\t/* "Middle" children should have no rounded corners. */\n\t\t\t&:not(:first-child):not(:last-child) {\n\t\t\t\tborder-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t/*\n\t\t * Dropdown button has asymmetric padding to fit the arrow.\n\t\t * This button has no arrow so let\'s revert that padding back to normal.\n\t\t */\n\t\t& > .ck.ck-button.ck-dropdown__button {\n\t\t\tpadding-left: var(--ck-spacing-tiny);\n\t\t}\n\t}\n\n\t@nest .ck-toolbar-container & {\n\t\tborder: 0;\n\t}\n}\n\n/* stylelint-disable */\n\n/*\n * Styles for RTL toolbars.\n *\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"\n * because its parent is not controlled by the editor framework.\n */\n[dir="rtl"] .ck.ck-toolbar,\n.ck.ck-toolbar[dir="rtl"] {\n\t& > .ck-toolbar__items > .ck {\n\t\tmargin-right: 0;\n\t}\n\n\t&:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck {\n\t\t/* (#11) Separate toolbar items. */\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n\n\t& > .ck-toolbar__items > .ck:last-child {\n\t\tmargin-left: 0;\n\t}\n\n\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\n\t\t/* No rounded corners on the right side of the first child. */\n\t\t&:first-child {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\n\t\t/* No rounded corners on the left side of the last child. */\n\t\t&:last-child {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\t}\n\n\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\n\t& > .ck.ck-toolbar__separator {\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n\n\t/* Some spacing between the items and the separator before the grouped items dropdown. */\n\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n}\n\n/*\n * Styles for LTR toolbars.\n *\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"\n * because its parent is not controlled by the editor framework.\n */\n[dir="ltr"] .ck.ck-toolbar,\n.ck.ck-toolbar[dir="ltr"] {\n\t& > .ck-toolbar__items > .ck:last-child {\n\t\tmargin-right: 0;\n\t}\n\n\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\n\t\t/* No rounded corners on the right side of the first child. */\n\t\t&:first-child {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t/* No rounded corners on the left side of the last child. */\n\t\t&:last-child {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\t}\n\n\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\n\t& > .ck.ck-toolbar__separator {\n\t\tmargin-right: var(--ck-spacing-small);\n\t}\n\n\t/* Some spacing between the items and the separator before the grouped items dropdown. */\n\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\n\t\tmargin-right: var(--ck-spacing-small);\n\t}\n}\n\n/* stylelint-enable */\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    3332: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck.ck-balloon-panel.ck-tooltip{--ck-balloon-border-width:0px;--ck-balloon-arrow-offset:0px;--ck-balloon-arrow-half-width:4px;--ck-balloon-arrow-height:4px;--ck-color-panel-background:var(--ck-color-tooltip-background);padding:0 var(--ck-spacing-medium);pointer-events:none;z-index:calc(var(--ck-z-modal) + 100)}.ck.ck-balloon-panel.ck-tooltip .ck-tooltip__text{color:var(--ck-color-tooltip-text);font-size:.9em;line-height:1.5}.ck.ck-balloon-panel.ck-tooltip{box-shadow:none}.ck.ck-balloon-panel.ck-tooltip:before{display:none}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-ui/theme/components/tooltip/tooltip.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/tooltip/tooltip.css"],
                                names: [],
                                mappings: "AAKA,gCCGC,6BAA8B,CAC9B,6BAA8B,CAC9B,iCAAkC,CAClC,6BAA8B,CAC9B,8DAA+D,CAE/D,kCAAmC,CDPnC,mBAAoB,CAEpB,qCACD,CCMC,kDAGC,kCAAmC,CAFnC,cAAe,CACf,eAED,CAbD,gCAgBC,eAMD,CAHC,uCACC,YACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-balloon-panel.ck-tooltip {\n\t/* Keep tooltips transparent for any interactions. */\n\tpointer-events: none;\n\n\tz-index: calc( var(--ck-z-modal) + 100 );\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n.ck.ck-balloon-panel.ck-tooltip {\n\t--ck-balloon-border-width: 0px;\n\t--ck-balloon-arrow-offset: 0px;\n\t--ck-balloon-arrow-half-width: 4px;\n\t--ck-balloon-arrow-height: 4px;\n\t--ck-color-panel-background: var(--ck-color-tooltip-background);\n\n\tpadding: 0 var(--ck-spacing-medium);\n\n\t& .ck-tooltip__text {\n\t\tfont-size: .9em;\n\t\tline-height: 1.5;\n\t\tcolor: var(--ck-color-tooltip-text);\n\t}\n\n\t/* Reset balloon panel styles */\n\tbox-shadow: none;\n\n\t/* Hide the default shadow of the .ck-balloon-panel tip */\n\t&::before {\n\t\tdisplay: none;\n\t}\n}\n',
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    4793: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck-hidden{display:none!important}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset,.ck.ck-reset_all{box-sizing:border-box;height:auto;position:static;width:auto}:root{--ck-z-default:1;--ck-z-modal:calc(var(--ck-z-default) + 999)}.ck-transitions-disabled,.ck-transitions-disabled *{transition:none!important}:root{--ck-color-base-foreground:#fafafa;--ck-color-base-background:#fff;--ck-color-base-border:#ccced1;--ck-color-base-action:#53a336;--ck-color-base-focus:#6cb5f9;--ck-color-base-text:#333;--ck-color-base-active:#2977ff;--ck-color-base-active-focus:#0d65ff;--ck-color-base-error:#db3700;--ck-color-focus-border-coordinates:218,81.8%,56.9%;--ck-color-focus-border:hsl(var(--ck-color-focus-border-coordinates));--ck-color-focus-outer-shadow:#cae1fc;--ck-color-focus-disabled-shadow:rgba(119,186,248,.3);--ck-color-focus-error-shadow:rgba(255,64,31,.3);--ck-color-text:var(--ck-color-base-text);--ck-color-shadow-drop:rgba(0,0,0,.15);--ck-color-shadow-drop-active:rgba(0,0,0,.2);--ck-color-shadow-inner:rgba(0,0,0,.1);--ck-color-button-default-background:transparent;--ck-color-button-default-hover-background:#f0f0f0;--ck-color-button-default-active-background:#f0f0f0;--ck-color-button-default-disabled-background:transparent;--ck-color-button-on-background:#f0f7ff;--ck-color-button-on-hover-background:#dbecff;--ck-color-button-on-active-background:#dbecff;--ck-color-button-on-disabled-background:#f0f2f4;--ck-color-button-on-color:#2977ff;--ck-color-button-action-background:var(--ck-color-base-action);--ck-color-button-action-hover-background:#4d9d30;--ck-color-button-action-active-background:#4d9d30;--ck-color-button-action-disabled-background:#7ec365;--ck-color-button-action-text:var(--ck-color-base-background);--ck-color-button-save:#008a00;--ck-color-button-cancel:#db3700;--ck-color-switch-button-off-background:#939393;--ck-color-switch-button-off-hover-background:#7d7d7d;--ck-color-switch-button-on-background:var(--ck-color-button-action-background);--ck-color-switch-button-on-hover-background:#4d9d30;--ck-color-switch-button-inner-background:var(--ck-color-base-background);--ck-color-switch-button-inner-shadow:rgba(0,0,0,.1);--ck-color-dropdown-panel-background:var(--ck-color-base-background);--ck-color-dropdown-panel-border:var(--ck-color-base-border);--ck-color-input-background:var(--ck-color-base-background);--ck-color-input-border:var(--ck-color-base-border);--ck-color-input-error-border:var(--ck-color-base-error);--ck-color-input-text:var(--ck-color-base-text);--ck-color-input-disabled-background:#f2f2f2;--ck-color-input-disabled-border:var(--ck-color-base-border);--ck-color-input-disabled-text:#757575;--ck-color-list-background:var(--ck-color-base-background);--ck-color-list-button-hover-background:var(--ck-color-button-default-hover-background);--ck-color-list-button-on-background:var(--ck-color-button-on-color);--ck-color-list-button-on-background-focus:var(--ck-color-button-on-color);--ck-color-list-button-on-text:var(--ck-color-base-background);--ck-color-panel-background:var(--ck-color-base-background);--ck-color-panel-border:var(--ck-color-base-border);--ck-color-toolbar-background:var(--ck-color-base-background);--ck-color-toolbar-border:var(--ck-color-base-border);--ck-color-tooltip-background:var(--ck-color-base-text);--ck-color-tooltip-text:var(--ck-color-base-background);--ck-color-engine-placeholder-text:#707070;--ck-color-upload-bar-background:#6cb5f9;--ck-color-link-default:#0000f0;--ck-color-link-selected-background:rgba(31,176,255,.1);--ck-color-link-fake-selection:rgba(31,176,255,.3);--ck-disabled-opacity:.5;--ck-focus-outer-shadow-geometry:0 0 0 3px;--ck-focus-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);--ck-focus-disabled-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);--ck-focus-error-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);--ck-focus-ring:1px solid var(--ck-color-focus-border);--ck-font-size-base:13px;--ck-line-height-base:1.84615;--ck-font-face:Helvetica,Arial,Tahoma,Verdana,Sans-Serif;--ck-font-size-tiny:0.7em;--ck-font-size-small:0.75em;--ck-font-size-normal:1em;--ck-font-size-big:1.4em;--ck-font-size-large:1.8em;--ck-ui-component-min-height:2.3em}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset,.ck.ck-reset_all{word-wrap:break-word;background:transparent;border:0;margin:0;padding:0;text-decoration:none;transition:none;vertical-align:middle}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset_all{border-collapse:collapse;color:var(--ck-color-text);cursor:auto;float:none;font:normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);text-align:left;white-space:nowrap}.ck-reset_all .ck-rtl :not(.ck-reset_all-excluded *){text-align:right}.ck-reset_all iframe:not(.ck-reset_all-excluded *){vertical-align:inherit}.ck-reset_all textarea:not(.ck-reset_all-excluded *){white-space:pre-wrap}.ck-reset_all input[type=password]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text]:not(.ck-reset_all-excluded *),.ck-reset_all textarea:not(.ck-reset_all-excluded *){cursor:text}.ck-reset_all input[type=password][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all textarea[disabled]:not(.ck-reset_all-excluded *){cursor:default}.ck-reset_all fieldset:not(.ck-reset_all-excluded *){border:2px groove #dfdee3;padding:10px}.ck-reset_all button:not(.ck-reset_all-excluded *)::-moz-focus-inner{border:0;padding:0}.ck[dir=rtl],.ck[dir=rtl] .ck{text-align:right}:root{--ck-border-radius:2px;--ck-inner-shadow:2px 2px 3px var(--ck-color-shadow-inner) inset;--ck-drop-shadow:0 1px 2px 1px var(--ck-color-shadow-drop);--ck-drop-shadow-active:0 3px 6px 1px var(--ck-color-shadow-drop-active);--ck-spacing-unit:0.6em;--ck-spacing-large:calc(var(--ck-spacing-unit)*1.5);--ck-spacing-standard:var(--ck-spacing-unit);--ck-spacing-medium:calc(var(--ck-spacing-unit)*0.8);--ck-spacing-small:calc(var(--ck-spacing-unit)*0.5);--ck-spacing-tiny:calc(var(--ck-spacing-unit)*0.3);--ck-spacing-extra-tiny:calc(var(--ck-spacing-unit)*0.16)}",
                            "",
                            {
                                version: 3,
                                sources: [
                                    "webpack://./../ckeditor5-ui/theme/globals/_hidden.css",
                                    "webpack://./../ckeditor5-ui/theme/globals/_reset.css",
                                    "webpack://./../ckeditor5-ui/theme/globals/_zindex.css",
                                    "webpack://./../ckeditor5-ui/theme/globals/_transition.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_colors.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_disabled.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_focus.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_fonts.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_reset.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_rounded.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_shadow.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_spacing.css",
                                ],
                                names: [],
                                mappings:
                                    "AAQA,WAGC,sBACD,CCPA,2EAGC,qBAAsB,CAEtB,WAAY,CACZ,eAAgB,CAFhB,UAGD,CCPA,MACC,gBAAiB,CACjB,4CACD,CCAA,oDAEC,yBACD,CCNA,MACC,kCAAmD,CACnD,+BAAoD,CACpD,8BAAkD,CAClD,8BAAuD,CACvD,6BAAmD,CACnD,yBAA+C,CAC/C,8BAAsD,CACtD,oCAA4D,CAC5D,6BAAkD,CAIlD,mDAA4D,CAC5D,qEAA+E,CAC/E,qCAA4D,CAC5D,qDAA8D,CAC9D,gDAAyD,CACzD,yCAAqD,CACrD,sCAAsD,CACtD,4CAA0D,CAC1D,sCAAsD,CAItD,gDAAuD,CACvD,kDAAiE,CACjE,mDAAkE,CAClE,yDAA8D,CAE9D,uCAA6D,CAC7D,6CAAoE,CACpE,8CAAoE,CACpE,gDAAiE,CACjE,kCAAyD,CAGzD,+DAAsE,CACtE,iDAAsE,CACtE,kDAAsE,CACtE,oDAAoE,CACpE,6DAAsE,CAEtE,8BAAoD,CACpD,gCAAqD,CAErD,+CAA8D,CAC9D,qDAAiE,CACjE,+EAAqF,CACrF,oDAAuE,CACvE,yEAA8E,CAC9E,oDAAgE,CAIhE,oEAA2E,CAC3E,4DAAoE,CAIpE,2DAAoE,CACpE,mDAA6D,CAC7D,wDAAgE,CAChE,+CAA0D,CAC1D,4CAA2D,CAC3D,4DAAoE,CACpE,sCAAsD,CAItD,0DAAmE,CACnE,uFAA6F,CAC7F,oEAA2E,CAC3E,0EAA+E,CAC/E,8DAAsE,CAItE,2DAAoE,CACpE,mDAA6D,CAI7D,6DAAsE,CACtE,qDAA+D,CAI/D,uDAAgE,CAChE,uDAAiE,CAIjE,0CAAyD,CAIzD,wCAA2D,CAI3D,+BAAoD,CACpD,uDAAmE,CACnE,kDAAgE,CCnGhE,wBAAyB,CCAzB,0CAA2C,CAK3C,gGAAiG,CAKjG,4GAA6G,CAK7G,sGAAuG,CAKvG,sDAAuD,CCvBvD,wBAAyB,CACzB,6BAA8B,CAC9B,wDAA6D,CAE7D,yBAA0B,CAC1B,2BAA4B,CAC5B,yBAA0B,CAC1B,wBAAyB,CACzB,0BAA2B,CCJ3B,kCJmGD,CI7FA,2EAaC,oBAAqB,CANrB,sBAAuB,CADvB,QAAS,CAFT,QAAS,CACT,SAAU,CAGV,oBAAqB,CAErB,eAAgB,CADhB,qBAKD,CAKA,8DAGC,wBAAyB,CAEzB,0BAA2B,CAG3B,WAAY,CACZ,UAAW,CALX,iGAAkG,CAElG,eAAgB,CAChB,kBAGD,CAGC,qDACC,gBACD,CAEA,mDAEC,sBACD,CAEA,qDACC,oBACD,CAEA,mLAGC,WACD,CAEA,iNAGC,cACD,CAEA,qDAEC,yBAAoC,CADpC,YAED,CAEA,qEAGC,QAAQ,CADR,SAED,CAMD,8BAEC,gBACD,CCnFA,MACC,sBAAuB,CCAvB,gEAAiE,CAKjE,0DAA2D,CAK3D,wEAAyE,CCbzE,uBAA8B,CAC9B,mDAA2D,CAC3D,4CAAkD,CAClD,oDAA4D,CAC5D,mDAA2D,CAC3D,kDAA2D,CAC3D,yDFFD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which hides an element in DOM.\n */\n.ck-hidden {\n\t/* Override selector specificity. Otherwise, all elements with some display\n\tstyle defined will override this one, which is not a desired result. */\n\tdisplay: none !important;\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-reset,\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\tbox-sizing: border-box;\n\twidth: auto;\n\theight: auto;\n\tposition: static;\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-z-default: 1;\n\t--ck-z-modal: calc( var(--ck-z-default) + 999 );\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class that disables all transitions of the element and its children.\n */\n.ck-transitions-disabled,\n.ck-transitions-disabled * {\n\ttransition: none !important;\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-base-foreground: \t\t\t\t\t\t\t\thsl(0, 0%, 98%);\n\t--ck-color-base-background: \t\t\t\t\t\t\t\thsl(0, 0%, 100%);\n\t--ck-color-base-border: \t\t\t\t\t\t\t\t\thsl(220, 6%, 81%);\n\t--ck-color-base-action: \t\t\t\t\t\t\t\t\thsl(104, 50.2%, 42.5%);\n\t--ck-color-base-focus: \t\t\t\t\t\t\t\t\t\thsl(209, 92%, 70%);\n\t--ck-color-base-text: \t\t\t\t\t\t\t\t\t\thsl(0, 0%, 20%);\n\t--ck-color-base-active: \t\t\t\t\t\t\t\t\thsl(218.1, 100%, 58%);\n\t--ck-color-base-active-focus:\t\t\t\t\t\t\t\thsl(218.2, 100%, 52.5%);\n\t--ck-color-base-error:\t\t\t\t\t\t\t\t\t\thsl(15, 100%, 43%);\n\n\t/* -- Generic colors ------------------------------------------------------------------------ */\n\n\t--ck-color-focus-border-coordinates: \t\t\t\t\t\t218, 81.8%, 56.9%;\n\t--ck-color-focus-border: \t\t\t\t\t\t\t\t\thsl(var(--ck-color-focus-border-coordinates));\n\t--ck-color-focus-outer-shadow:\t\t\t\t\t\t\t\thsl(212.4, 89.3%, 89%);\n\t--ck-color-focus-disabled-shadow:\t\t\t\t\t\t\thsla(209, 90%, 72%,.3);\n\t--ck-color-focus-error-shadow:\t\t\t\t\t\t\t\thsla(9,100%,56%,.3);\n\t--ck-color-text: \t\t\t\t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-shadow-drop: \t\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.15);\n\t--ck-color-shadow-drop-active:\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.2);\n\t--ck-color-shadow-inner: \t\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.1);\n\n\t/* -- Buttons ------------------------------------------------------------------------------- */\n\n\t--ck-color-button-default-background: \t\t\t\t\t\ttransparent;\n\t--ck-color-button-default-hover-background: \t\t\t\thsl(0, 0%, 94.1%);\n\t--ck-color-button-default-active-background: \t\t\t\thsl(0, 0%, 94.1%);\n\t--ck-color-button-default-disabled-background: \t\t\t\ttransparent;\n\n\t--ck-color-button-on-background: \t\t\t\t\t\t\thsl(212, 100%, 97.1%);\n\t--ck-color-button-on-hover-background: \t\t\t\t\t\thsl(211.7, 100%, 92.9%);\n\t--ck-color-button-on-active-background: \t\t\t\t\thsl(211.7, 100%, 92.9%);\n\t--ck-color-button-on-disabled-background: \t\t\t\t\thsl(211, 15%, 95%);\n\t--ck-color-button-on-color:\t\t\t\t\t\t\t\t\thsl(218.1, 100%, 58%);\n\n\n\t--ck-color-button-action-background: \t\t\t\t\t\tvar(--ck-color-base-action);\n\t--ck-color-button-action-hover-background: \t\t\t\t\thsl(104, 53.2%, 40.2%);\n\t--ck-color-button-action-active-background: \t\t\t\thsl(104, 53.2%, 40.2%);\n\t--ck-color-button-action-disabled-background: \t\t\t\thsl(104, 44%, 58%);\n\t--ck-color-button-action-text: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t--ck-color-button-save: \t\t\t\t\t\t\t\t\thsl(120, 100%, 27%);\n\t--ck-color-button-cancel: \t\t\t\t\t\t\t\t\thsl(15, 100%, 43%);\n\n\t--ck-color-switch-button-off-background:\t\t\t\t\thsl(0, 0%, 57.6%);\n\t--ck-color-switch-button-off-hover-background:\t\t\t\thsl(0, 0%, 49%);\n\t--ck-color-switch-button-on-background:\t\t\t\t\t\tvar(--ck-color-button-action-background);\n\t--ck-color-switch-button-on-hover-background:\t\t\t\thsl(104, 53.2%, 40.2%);\n\t--ck-color-switch-button-inner-background:\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-switch-button-inner-shadow:\t\t\t\t\t\thsla(0, 0%, 0%, 0.1);\n\n\t/* -- Dropdown ------------------------------------------------------------------------------ */\n\n\t--ck-color-dropdown-panel-background: \t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-dropdown-panel-border: \t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Input --------------------------------------------------------------------------------- */\n\n\t--ck-color-input-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-input-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\t--ck-color-input-error-border:\t\t\t\t\t\t\t\tvar(--ck-color-base-error);\n\t--ck-color-input-text: \t\t\t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-input-disabled-background: \t\t\t\t\t\thsl(0, 0%, 95%);\n\t--ck-color-input-disabled-border: \t\t\t\t\t\t\tvar(--ck-color-base-border);\n\t--ck-color-input-disabled-text: \t\t\t\t\t\t\thsl(0, 0%, 46%);\n\n\t/* -- List ---------------------------------------------------------------------------------- */\n\n\t--ck-color-list-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-list-button-hover-background: \t\t\t\t\tvar(--ck-color-button-default-hover-background);\n\t--ck-color-list-button-on-background: \t\t\t\t\t\tvar(--ck-color-button-on-color);\n\t--ck-color-list-button-on-background-focus: \t\t\t\tvar(--ck-color-button-on-color);\n\t--ck-color-list-button-on-text:\t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t/* -- Panel --------------------------------------------------------------------------------- */\n\n\t--ck-color-panel-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-panel-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Toolbar ------------------------------------------------------------------------------- */\n\n\t--ck-color-toolbar-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-toolbar-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Tooltip ------------------------------------------------------------------------------- */\n\n\t--ck-color-tooltip-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-tooltip-text: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t/* -- Engine -------------------------------------------------------------------------------- */\n\n\t--ck-color-engine-placeholder-text: \t\t\t\t\t\thsl(0, 0%, 44%);\n\n\t/* -- Upload -------------------------------------------------------------------------------- */\n\n\t--ck-color-upload-bar-background:\t\t \t\t\t\t\thsl(209, 92%, 70%);\n\n\t/* -- Link -------------------------------------------------------------------------------- */\n\n\t--ck-color-link-default:\t\t\t\t\t\t\t\t\thsl(240, 100%, 47%);\n\t--ck-color-link-selected-background:\t\t\t\t\t\thsla(201, 100%, 56%, 0.1);\n\t--ck-color-link-fake-selection:\t\t\t\t\t\t\t\thsla(201, 100%, 56%, 0.3);\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * An opacity value of disabled UI item.\n\t */\n\t--ck-disabled-opacity: .5;\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * The geometry of the of focused element's outer shadow.\n\t */\n\t--ck-focus-outer-shadow-geometry: 0 0 0 3px;\n\n\t/**\n\t * A visual style of focused element's outer shadow.\n\t */\n\t--ck-focus-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);\n\n\t/**\n\t * A visual style of focused element's outer shadow (when disabled).\n\t */\n\t--ck-focus-disabled-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);\n\n\t/**\n\t * A visual style of focused element's outer shadow (when has errors).\n\t */\n\t--ck-focus-error-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);\n\n\t/**\n\t * A visual style of focused element's border or outline.\n\t */\n\t--ck-focus-ring: 1px solid var(--ck-color-focus-border);\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-font-size-base: 13px;\n\t--ck-line-height-base: 1.84615;\n\t--ck-font-face: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;\n\n\t--ck-font-size-tiny: 0.7em;\n\t--ck-font-size-small: 0.75em;\n\t--ck-font-size-normal: 1em;\n\t--ck-font-size-big: 1.4em;\n\t--ck-font-size-large: 1.8em;\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/* This is super-important. This is **manually** adjusted so a button without an icon\n\tis never smaller than a button with icon, additionally making sure that text-less buttons\n\tare perfect squares. The value is also shared by other components which should stay "in-line"\n\twith buttons. */\n\t--ck-ui-component-min-height: 2.3em;\n}\n\n/**\n * Resets an element, ignoring its children.\n */\n.ck.ck-reset,\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\t/* Do not include inheritable rules here. */\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tbackground: transparent;\n\ttext-decoration: none;\n\tvertical-align: middle;\n\ttransition: none;\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/105 */\n\tword-wrap: break-word;\n}\n\n/**\n * Resets an element AND its children.\n */\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\t/* These are rule inherited by all children elements. */\n\tborder-collapse: collapse;\n\tfont: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);\n\tcolor: var(--ck-color-text);\n\ttext-align: left;\n\twhite-space: nowrap;\n\tcursor: auto;\n\tfloat: none;\n}\n\n.ck-reset_all {\n\t& .ck-rtl *:not(.ck-reset_all-excluded *) {\n\t\ttext-align: right;\n\t}\n\n\t& iframe:not(.ck-reset_all-excluded *) {\n\t\t/* For IE */\n\t\tvertical-align: inherit;\n\t}\n\n\t& textarea:not(.ck-reset_all-excluded *) {\n\t\twhite-space: pre-wrap;\n\t}\n\n\t& textarea:not(.ck-reset_all-excluded *),\n\t& input[type="text"]:not(.ck-reset_all-excluded *),\n\t& input[type="password"]:not(.ck-reset_all-excluded *) {\n\t\tcursor: text;\n\t}\n\n\t& textarea[disabled]:not(.ck-reset_all-excluded *),\n\t& input[type="text"][disabled]:not(.ck-reset_all-excluded *),\n\t& input[type="password"][disabled]:not(.ck-reset_all-excluded *) {\n\t\tcursor: default;\n\t}\n\n\t& fieldset:not(.ck-reset_all-excluded *) {\n\t\tpadding: 10px;\n\t\tborder: 2px groove hsl(255, 7%, 88%);\n\t}\n\n\t& button:not(.ck-reset_all-excluded *)::-moz-focus-inner {\n\t\t/* See http://stackoverflow.com/questions/5517744/remove-extra-button-spacing-padding-in-firefox */\n\t\tpadding: 0;\n\t\tborder: 0\n\t}\n}\n\n/**\n * Default UI rules for RTL languages.\n */\n.ck[dir="rtl"],\n.ck[dir="rtl"] .ck {\n\ttext-align: right;\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Default border-radius value.\n */\n:root{\n\t--ck-border-radius: 2px;\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * A visual style of element's inner shadow (i.e. input).\n\t */\n\t--ck-inner-shadow: 2px 2px 3px var(--ck-color-shadow-inner) inset;\n\n\t/**\n\t * A visual style of element's drop shadow (i.e. panel).\n\t */\n\t--ck-drop-shadow: 0 1px 2px 1px var(--ck-color-shadow-drop);\n\n\t/**\n\t * A visual style of element's active shadow (i.e. comment or suggestion).\n\t */\n\t--ck-drop-shadow-active: 0 3px 6px 1px var(--ck-color-shadow-drop-active);\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-spacing-unit: \t\t\t\t\t\t0.6em;\n\t--ck-spacing-large: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 1.5);\n\t--ck-spacing-standard: \t\t\t\t\tvar(--ck-spacing-unit);\n\t--ck-spacing-medium: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.8);\n\t--ck-spacing-small: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.5);\n\t--ck-spacing-tiny: \t\t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.3);\n\t--ck-spacing-extra-tiny: \t\t\t\tcalc(var(--ck-spacing-unit) * 0.16);\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    3488: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ":root{--ck-color-resizer:var(--ck-color-focus-border);--ck-color-resizer-tooltip-background:#262626;--ck-color-resizer-tooltip-text:#f2f2f2;--ck-resizer-border-radius:var(--ck-border-radius);--ck-resizer-tooltip-offset:10px;--ck-resizer-tooltip-height:calc(var(--ck-spacing-small)*2 + 10px)}.ck .ck-widget,.ck .ck-widget.ck-widget_with-selection-handle{position:relative}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{position:absolute}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{display:block}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{visibility:visible}.ck .ck-size-view{background:var(--ck-color-resizer-tooltip-background);border:1px solid var(--ck-color-resizer-tooltip-text);border-radius:var(--ck-resizer-border-radius);color:var(--ck-color-resizer-tooltip-text);display:block;font-size:var(--ck-font-size-tiny);height:var(--ck-resizer-tooltip-height);line-height:var(--ck-resizer-tooltip-height);padding:0 var(--ck-spacing-small)}.ck .ck-size-view.ck-orientation-above-center,.ck .ck-size-view.ck-orientation-bottom-left,.ck .ck-size-view.ck-orientation-bottom-right,.ck .ck-size-view.ck-orientation-top-left,.ck .ck-size-view.ck-orientation-top-right{position:absolute}.ck .ck-size-view.ck-orientation-top-left{left:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-top-right{right:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-right{bottom:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-left{bottom:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-above-center{left:50%;top:calc(var(--ck-resizer-tooltip-height)*-1);transform:translate(-50%)}:root{--ck-widget-outline-thickness:3px;--ck-widget-handler-icon-size:16px;--ck-widget-handler-animation-duration:200ms;--ck-widget-handler-animation-curve:ease;--ck-color-widget-blurred-border:#dedede;--ck-color-widget-hover-border:#ffc83d;--ck-color-widget-editable-focus-background:var(--ck-color-base-background);--ck-color-widget-drag-handler-icon-color:var(--ck-color-base-background)}.ck .ck-widget{outline-color:transparent;outline-style:solid;outline-width:var(--ck-widget-outline-thickness);transition:outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_selected,.ck .ck-widget.ck-widget_selected:hover{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border)}.ck .ck-widget:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-editor__nested-editable{border:1px solid transparent}.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{background-color:var(--ck-color-widget-editable-focus-background);border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{background-color:transparent;border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0;box-sizing:border-box;left:calc(0px - var(--ck-widget-outline-thickness));opacity:0;padding:4px;top:0;transform:translateY(-100%);transition:background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{color:var(--ck-color-widget-drag-handler-icon-color);height:var(--ck-widget-handler-icon-size);width:var(--ck-widget-handler-icon-size)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:0;transition:opacity .3s var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator{opacity:1}.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{background-color:var(--ck-color-widget-hover-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{background-color:var(--ck-color-focus-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:1}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{left:auto;right:calc(0px - var(--ck-widget-outline-thickness))}.ck.ck-editor__editable.ck-read-only .ck-widget{transition:none}.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected){--ck-widget-outline-thickness:0px}.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover{outline-color:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle:hover,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable blockquote>.ck-widget.ck-widget_with-selection-handle:first-child,.ck.ck-editor__editable>.ck-widget.ck-widget_with-selection-handle:first-child{margin-top:calc(1em + var(--ck-widget-handler-icon-size))}",
                            "",
                            {
                                version: 3,
                                sources: [
                                    "webpack://./../ckeditor5-widget/theme/widget.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widget.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css",
                                    "webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css",
                                ],
                                names: [],
                                mappings:
                                    "AAKA,MACC,+CAAgD,CAChD,6CAAsD,CACtD,uCAAgD,CAEhD,kDAAmD,CACnD,gCAAiC,CACjC,kEACD,CAOA,8DAEC,iBAqBD,CAnBC,4EACC,iBAOD,CALC,qFAGC,aACD,CASD,iLACC,kBACD,CAGD,kBACC,qDAAsD,CAEtD,qDAAsD,CACtD,6CAA8C,CAF9C,0CAA2C,CAI3C,aAAc,CADd,kCAAmC,CAGnC,uCAAwC,CACxC,4CAA6C,CAF7C,iCAsCD,CAlCC,8NAKC,iBACD,CAEA,0CAEC,qCAAsC,CADtC,oCAED,CAEA,2CAEC,sCAAuC,CADvC,oCAED,CAEA,8CACC,uCAAwC,CACxC,sCACD,CAEA,6CACC,uCAAwC,CACxC,qCACD,CAGA,8CAEC,QAAS,CADT,6CAAgD,CAEhD,yBACD,CCjFD,MACC,iCAAkC,CAClC,kCAAmC,CACnC,4CAA6C,CAC7C,wCAAyC,CAEzC,wCAAiD,CACjD,sCAAkD,CAClD,2EAA4E,CAC5E,yEACD,CAEA,eAGC,yBAA0B,CAD1B,mBAAoB,CADpB,gDAAiD,CAGjD,6GAUD,CARC,0EAEC,6EACD,CAEA,qBACC,iDACD,CAGD,gCACC,4BAWD,CAPC,yGAKC,iEAAkE,CCnCnE,2BAA2B,CCF3B,qCAA8B,CDC9B,YDqCA,CAIA,4EAKC,4BAA6B,CAa7B,iEAAkE,CAhBlE,qBAAsB,CAoBtB,mDAAoD,CAhBpD,SAAU,CALV,WAAY,CAsBZ,KAAM,CAFN,2BAA4B,CAT5B,6SAgCD,CAnBC,qFAIC,oDAAqD,CADrD,yCAA0C,CAD1C,wCAWD,CANC,kHACC,SAAU,CAGV,+DACD,CAID,wHACC,SACD,CAID,kFAEC,oDAAqD,CADrD,SAED,CAKC,oMAEC,6CAA8C,CAD9C,SAOD,CAHC,gRACC,SACD,CAOH,qFACC,SAAU,CACV,oDACD,CAGA,gDAEC,eAkBD,CAhBC,yEAOC,iCACD,CAGC,gOAEC,gDACD,CAOD,wIAEC,mDAQD,CALE,ghBAEC,gDACD,CAKH,yKAOC,yDACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-resizer: var(--ck-color-focus-border);\n\t--ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);\n\t--ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);\n\n\t--ck-resizer-border-radius: var(--ck-border-radius);\n\t--ck-resizer-tooltip-offset: 10px;\n\t--ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px);\n}\n\n.ck .ck-widget {\n\t/* This is neccessary for type around UI to be positioned properly. */\n\tposition: relative;\n}\n\n.ck .ck-widget.ck-widget_with-selection-handle {\n\t/* Make the widget wrapper a relative positioning container for the drag handle. */\n\tposition: relative;\n\n\t& .ck-widget__selection-handle {\n\t\tposition: absolute;\n\n\t\t& .ck-icon {\n\t\t\t/* Make sure the icon in not a subject to font-size or line-height to avoid\n\t\t\tunnecessary spacing around it. */\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t/* Show the selection handle on mouse hover over the widget, but not for nested widgets. */\n\t&:hover > .ck-widget__selection-handle {\n\t\tvisibility: visible;\n\t}\n\n\t/* Show the selection handle when the widget is selected, but not for nested widgets. */\n\t&.ck-widget_selected > .ck-widget__selection-handle {\n\t\tvisibility: visible;\n\t}\n}\n\n.ck .ck-size-view {\n\tbackground: var(--ck-color-resizer-tooltip-background);\n\tcolor: var(--ck-color-resizer-tooltip-text);\n\tborder: 1px solid var(--ck-color-resizer-tooltip-text);\n\tborder-radius: var(--ck-resizer-border-radius);\n\tfont-size: var(--ck-font-size-tiny);\n\tdisplay: block;\n\tpadding: 0 var(--ck-spacing-small);\n\theight: var(--ck-resizer-tooltip-height);\n\tline-height: var(--ck-resizer-tooltip-height);\n\n\t&.ck-orientation-top-left,\n\t&.ck-orientation-top-right,\n\t&.ck-orientation-bottom-right,\n\t&.ck-orientation-bottom-left,\n\t&.ck-orientation-above-center {\n\t\tposition: absolute;\n\t}\n\n\t&.ck-orientation-top-left {\n\t\ttop: var(--ck-resizer-tooltip-offset);\n\t\tleft: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-top-right {\n\t\ttop: var(--ck-resizer-tooltip-offset);\n\t\tright: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-bottom-right {\n\t\tbottom: var(--ck-resizer-tooltip-offset);\n\t\tright: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-bottom-left {\n\t\tbottom: var(--ck-resizer-tooltip-offset);\n\t\tleft: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t/* Class applied if the widget is too small to contain the size label */\n\t&.ck-orientation-above-center {\n\t\ttop: calc(var(--ck-resizer-tooltip-height) * -1);\n\t\tleft: 50%;\n\t\ttransform: translate(-50%);\n\t}\n}\n",
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_focus.css";\n@import "../mixins/_shadow.css";\n\n:root {\n\t--ck-widget-outline-thickness: 3px;\n\t--ck-widget-handler-icon-size: 16px;\n\t--ck-widget-handler-animation-duration: 200ms;\n\t--ck-widget-handler-animation-curve: ease;\n\n\t--ck-color-widget-blurred-border: hsl(0, 0%, 87%);\n\t--ck-color-widget-hover-border: hsl(43, 100%, 62%);\n\t--ck-color-widget-editable-focus-background: var(--ck-color-base-background);\n\t--ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background);\n}\n\n.ck .ck-widget {\n\toutline-width: var(--ck-widget-outline-thickness);\n\toutline-style: solid;\n\toutline-color: transparent;\n\ttransition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);\n\t}\n\n\t&:hover {\n\t\toutline-color: var(--ck-color-widget-hover-border);\n\t}\n}\n\n.ck .ck-editor__nested-editable {\n\tborder: 1px solid transparent;\n\n\t/* The :focus style is applied before .ck-editor__nested-editable_focused class is rendered in the view.\n\tThese styles show a different border for a blink of an eye, so `:focus` need to have same styles applied. */\n\t&.ck-editor__nested-editable_focused,\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-inner-shadow);\n\n\t\tbackground-color: var(--ck-color-widget-editable-focus-background);\n\t}\n}\n\n.ck .ck-widget.ck-widget_with-selection-handle {\n\t& .ck-widget__selection-handle {\n\t\tpadding: 4px;\n\t\tbox-sizing: border-box;\n\n\t\t/* Background and opacity will be animated as the handler shows up or the widget gets selected. */\n\t\tbackground-color: transparent;\n\t\topacity: 0;\n\n\t\t/* Transition:\n\t\t   * background-color for the .ck-widget_selected state change,\n\t\t   * visibility for hiding the handler,\n\t\t   * opacity for the proper look of the icon when the handler disappears. */\n\t\ttransition:\n\t\t\tbackground-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\n\t\t\tvisibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\n\t\t\topacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t\t/* Make only top corners round. */\n\t\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\n\n\t\t/* Place the drag handler outside the widget wrapper. */\n\t\ttransform: translateY(-100%);\n\t\tleft: calc(0px - var(--ck-widget-outline-thickness));\n\t\ttop: 0;\n\n\t\t& .ck-icon {\n\t\t\t/* Make sure the dimensions of the icon are independent of the fon-size of the content. */\n\t\t\twidth: var(--ck-widget-handler-icon-size);\n\t\t\theight: var(--ck-widget-handler-icon-size);\n\t\t\tcolor: var(--ck-color-widget-drag-handler-icon-color);\n\n\t\t\t/* The "selected" part of the icon is invisible by default */\n\t\t\t& .ck-icon__selected-indicator {\n\t\t\t\topacity: 0;\n\n\t\t\t\t/* Note: The animation is longer on purpose. Simply feels better. */\n\t\t\t\ttransition: opacity 300ms var(--ck-widget-handler-animation-curve);\n\t\t\t}\n\t\t}\n\n\t\t/* Advertise using the look of the icon that once clicked the handler, the widget will be selected. */\n\t\t&:hover .ck-icon .ck-icon__selected-indicator {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t/* Show the selection handler on mouse hover over the widget, but not for nested widgets. */\n\t&:hover > .ck-widget__selection-handle {\n\t\topacity: 1;\n\t\tbackground-color: var(--ck-color-widget-hover-border);\n\t}\n\n\t/* Show the selection handler when the widget is selected, but not for nested widgets. */\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\t& > .ck-widget__selection-handle {\n\t\t\topacity: 1;\n\t\t\tbackground-color: var(--ck-color-focus-border);\n\n\t\t\t/* When the widget is selected, notify the user using the proper look of the icon. */\n\t\t\t& .ck-icon .ck-icon__selected-indicator {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* In a RTL environment, align the selection handler to the right side of the widget */\n/* stylelint-disable-next-line no-descending-specificity */\n.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {\n\tleft: auto;\n\tright: calc(0px - var(--ck-widget-outline-thickness));\n}\n\n/* https://github.com/ckeditor/ckeditor5/issues/6415 */\n.ck.ck-editor__editable.ck-read-only .ck-widget {\n\t/* Prevent the :hover outline from showing up because of the used outline-color transition. */\n\ttransition: none;\n\n\t&:not(.ck-widget_selected) {\n\t\t/* Disable visual effects of hover/active widget when CKEditor is in readOnly mode.\n\t\t * See: https://github.com/ckeditor/ckeditor5/issues/1261\n\t\t *\n\t\t * Leave the unit because this custom property is used in calc() by other features.\n\t\t * See: https://github.com/ckeditor/ckeditor5/issues/6775\n\t\t */\n\t\t--ck-widget-outline-thickness: 0px;\n\t}\n\n\t&.ck-widget_with-selection-handle {\n\t\t& .ck-widget__selection-handle,\n\t\t& .ck-widget__selection-handle:hover {\n\t\t\tbackground: var(--ck-color-widget-blurred-border);\n\t\t}\n\t}\n}\n\n/* Style the widget when it\'s selected but the editable it belongs to lost focus. */\n/* stylelint-disable-next-line no-descending-specificity */\n.ck.ck-editor__editable.ck-blurred .ck-widget {\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\toutline-color: var(--ck-color-widget-blurred-border);\n\n\t\t&.ck-widget_with-selection-handle {\n\t\t\t& > .ck-widget__selection-handle,\n\t\t\t& > .ck-widget__selection-handle:hover {\n\t\t\t\tbackground: var(--ck-color-widget-blurred-border);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-editor__editable > .ck-widget.ck-widget_with-selection-handle:first-child,\n.ck.ck-editor__editable blockquote > .ck-widget.ck-widget_with-selection-handle:first-child {\n\t/* Do not crop selection handler if a widget is a first-child in the blockquote or in the root editable.\n\tIn fact, anything with overflow: hidden.\n\thttps://github.com/ckeditor/ckeditor5-block-quote/issues/28\n\thttps://github.com/ckeditor/ckeditor5-widget/issues/44\n\thttps://github.com/ckeditor/ckeditor5-widget/issues/66 */\n\tmargin-top: calc(1em + var(--ck-widget-handler-icon-size));\n}\n',
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    8506: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            ".ck .ck-widget_with-resizer{position:relative}.ck .ck-widget__resizer{display:none;left:0;pointer-events:none;position:absolute;top:0}.ck-focused .ck-widget_with-resizer.ck-widget_selected>.ck-widget__resizer{display:block}.ck .ck-widget__resizer__handle{pointer-events:all;position:absolute}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{cursor:nwse-resize}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{cursor:nesw-resize}:root{--ck-resizer-size:10px;--ck-resizer-offset:calc(var(--ck-resizer-size)/-2 - 2px);--ck-resizer-border-width:1px}.ck .ck-widget__resizer{outline:1px solid var(--ck-color-resizer)}.ck .ck-widget__resizer__handle{background:var(--ck-color-focus-border);border:var(--ck-resizer-border-width) solid #fff;border-radius:var(--ck-resizer-border-radius);height:var(--ck-resizer-size);width:var(--ck-resizer-size)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{left:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{right:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right{bottom:var(--ck-resizer-offset);right:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left{bottom:var(--ck-resizer-offset);left:var(--ck-resizer-offset)}",
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-widget/theme/widgetresize.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widgetresize.css"],
                                names: [],
                                mappings:
                                    "AAKA,4BAEC,iBACD,CAEA,wBACC,YAAa,CAMb,MAAO,CAFP,mBAAoB,CAHpB,iBAAkB,CAMlB,KACD,CAGC,2EACC,aACD,CAGD,gCAIC,kBAAmB,CAHnB,iBAcD,CATC,4IAEC,kBACD,CAEA,4IAEC,kBACD,CCpCD,MACC,sBAAuB,CAGvB,yDAAiE,CACjE,6BACD,CAEA,wBACC,yCACD,CAEA,gCAGC,uCAAwC,CACxC,gDAA6D,CAC7D,6CAA8C,CAH9C,6BAA8B,CAD9B,4BAyBD,CAnBC,oEAEC,6BAA8B,CAD9B,4BAED,CAEA,qEAEC,8BAA+B,CAD/B,4BAED,CAEA,wEACC,+BAAgC,CAChC,8BACD,CAEA,uEACC,+BAAgC,CAChC,6BACD",
                                sourcesContent: [
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-widget_with-resizer {\n\t/* Make the widget wrapper a relative positioning container for the drag handle. */\n\tposition: relative;\n}\n\n.ck .ck-widget__resizer {\n\tdisplay: none;\n\tposition: absolute;\n\n\t/* The wrapper itself should not interfere with the pointer device, only the handles should. */\n\tpointer-events: none;\n\n\tleft: 0;\n\ttop: 0;\n}\n\n.ck-focused .ck-widget_with-resizer.ck-widget_selected {\n\t& > .ck-widget__resizer {\n\t\tdisplay: block;\n\t}\n}\n\n.ck .ck-widget__resizer__handle {\n\tposition: absolute;\n\n\t/* Resizers are the only UI elements that should interfere with a pointer device. */\n\tpointer-events: all;\n\n\t&.ck-widget__resizer__handle-top-left,\n\t&.ck-widget__resizer__handle-bottom-right {\n\t\tcursor: nwse-resize;\n\t}\n\n\t&.ck-widget__resizer__handle-top-right,\n\t&.ck-widget__resizer__handle-bottom-left {\n\t\tcursor: nesw-resize;\n\t}\n}\n",
                                    "/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-resizer-size: 10px;\n\n\t/* Set the resizer with a 50% offset. */\n\t--ck-resizer-offset: calc( ( var(--ck-resizer-size) / -2 ) - 2px);\n\t--ck-resizer-border-width: 1px;\n}\n\n.ck .ck-widget__resizer {\n\toutline: 1px solid var(--ck-color-resizer);\n}\n\n.ck .ck-widget__resizer__handle {\n\twidth: var(--ck-resizer-size);\n\theight: var(--ck-resizer-size);\n\tbackground: var(--ck-color-focus-border);\n\tborder: var(--ck-resizer-border-width) solid hsl(0, 0%, 100%);\n\tborder-radius: var(--ck-resizer-border-radius);\n\n\t&.ck-widget__resizer__handle-top-left {\n\t\ttop: var(--ck-resizer-offset);\n\t\tleft: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-top-right {\n\t\ttop: var(--ck-resizer-offset);\n\t\tright: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-bottom-right {\n\t\tbottom: var(--ck-resizer-offset);\n\t\tright: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-bottom-left {\n\t\tbottom: var(--ck-resizer-offset);\n\t\tleft: var(--ck-resizer-offset);\n\t}\n}\n",
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    4921: (t, e, n) => {
                        n.d(e, { Z: () => a });
                        var o = n(1799),
                            i = n.n(o),
                            r = n(2609),
                            s = n.n(r)()(i());
                        s.push([
                            t.id,
                            '.ck .ck-widget .ck-widget__type-around__button{display:block;overflow:hidden;position:absolute;z-index:var(--ck-z-default)}.ck .ck-widget .ck-widget__type-around__button svg{left:50%;position:absolute;top:50%;z-index:calc(var(--ck-z-default) + 2)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before{left:min(10%,30px);top:calc(var(--ck-widget-outline-thickness)*-.5);transform:translateY(-50%)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after{bottom:calc(var(--ck-widget-outline-thickness)*-.5);right:min(10%,30px);transform:translateY(50%)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{content:"";display:block;left:1px;position:absolute;top:1px;z-index:calc(var(--ck-z-default) + 1)}.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:none;left:0;position:absolute;right:0}.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__fake-caret{left:calc(var(--ck-widget-outline-thickness)*-1);right:calc(var(--ck-widget-outline-thickness)*-1)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:block;top:calc(var(--ck-widget-outline-thickness)*-1 - 1px)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__fake-caret{bottom:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck.ck-editor__editable.ck-read-only .ck-widget__type-around,.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around,.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around{display:none}:root{--ck-widget-type-around-button-size:20px;--ck-color-widget-type-around-button-active:var(--ck-color-focus-border);--ck-color-widget-type-around-button-hover:var(--ck-color-widget-hover-border);--ck-color-widget-type-around-button-blurred-editable:var(--ck-color-widget-blurred-border);--ck-color-widget-type-around-button-radar-start-alpha:0;--ck-color-widget-type-around-button-radar-end-alpha:.3;--ck-color-widget-type-around-button-icon:var(--ck-color-base-background)}.ck .ck-widget .ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button);border-radius:100px;height:var(--ck-widget-type-around-button-size);opacity:0;pointer-events:none;transition:opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);width:var(--ck-widget-type-around-button-size)}.ck .ck-widget .ck-widget__type-around__button svg{height:8px;margin-top:1px;transform:translate(-50%,-50%);transition:transform .5s ease;width:10px}.ck .ck-widget .ck-widget__type-around__button svg *{stroke-dasharray:10;stroke-dashoffset:0;fill:none;stroke:var(--ck-color-widget-type-around-button-icon);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.ck .ck-widget .ck-widget__type-around__button svg line{stroke-dasharray:7}.ck .ck-widget .ck-widget__type-around__button:hover{animation:ck-widget-type-around-button-sonar 1s ease infinite}.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:ck-widget-type-around-arrow-dash 2s linear}.ck .ck-widget .ck-widget__type-around__button:hover svg line{animation:ck-widget-type-around-arrow-tip-dash 2s linear}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:1;pointer-events:auto}.ck .ck-widget:not(.ck-widget_selected)>.ck-widget__type-around>.ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button-hover)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover{background:var(--ck-color-widget-type-around-button-active)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{background:linear-gradient(135deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3));border-radius:100px;height:calc(var(--ck-widget-type-around-button-size) - 2px);width:calc(var(--ck-widget-type-around-button-size) - 2px)}.ck .ck-widget.ck-widget_with-selection-handle>.ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:20px}.ck .ck-widget .ck-widget__type-around__fake-caret{animation:ck-widget-type-around-fake-caret-pulse 1s linear infinite normal forwards;background:var(--ck-color-base-text);height:1px;outline:1px solid hsla(0,0%,100%,.5);pointer-events:none}.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after,.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before{outline-color:transparent}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{opacity:0}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:0;margin-right:20px}.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover){background:var(--ck-color-widget-type-around-button-blurred-editable)}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover) svg *{stroke:#999}@keyframes ck-widget-type-around-arrow-dash{0%{stroke-dashoffset:10}20%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-arrow-tip-dash{0%,20%{stroke-dashoffset:7}40%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-button-sonar{0%{box-shadow:0 0 0 0 hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}50%{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-end-alpha))}to{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}}@keyframes ck-widget-type-around-fake-caret-pulse{0%{opacity:1}49%{opacity:1}50%{opacity:0}99%{opacity:0}to{opacity:1}}',
                            "",
                            {
                                version: 3,
                                sources: ["webpack://./../ckeditor5-widget/theme/widgettypearound.css", "webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widgettypearound.css"],
                                names: [],
                                mappings:
                                    "AASC,+CACC,aAAc,CAEd,eAAgB,CADhB,iBAAkB,CAElB,2BAwBD,CAtBC,mDAGC,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAEA,qFAGC,kBAAoB,CADpB,gDAAoD,CAGpD,0BACD,CAEA,oFAEC,mDAAuD,CACvD,mBAAqB,CAErB,yBACD,CAUA,mLACC,UAAW,CACX,aAAc,CAGd,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAMD,2EACC,YAAa,CAEb,MAAO,CADP,iBAAkB,CAElB,OACD,CAOA,iFACC,gDAAqD,CACrD,iDACD,CAKA,wHAEC,aAAc,CADd,qDAED,CAKA,uHACC,wDAA6D,CAC7D,aACD,CAoBD,mOACC,YACD,CC3GA,MACC,wCAAyC,CACzC,wEAAyE,CACzE,8EAA+E,CAC/E,2FAA4F,CAC5F,wDAAyD,CACzD,uDAAwD,CACxD,yEACD,CAgBC,+CAGC,oDAAqD,CACrD,mBAAoB,CAFpB,+CAAgD,CAVjD,SAAU,CACV,mBAAoB,CAYnB,uMAAyM,CAJzM,8CAkDD,CA1CC,mDAEC,UAAW,CAGX,cAAe,CAFf,8BAA+B,CAC/B,6BAA8B,CAH9B,UAoBD,CAdC,qDACC,mBAAoB,CACpB,mBAAoB,CAEpB,SAAU,CACV,qDAAsD,CACtD,kBAAmB,CACnB,oBAAqB,CACrB,qBACD,CAEA,wDACC,kBACD,CAGD,qDAIC,6DAcD,CARE,kEACC,oDACD,CAEA,8DACC,wDACD,CAUF,uKAvED,SAAU,CACV,mBAwEC,CAOD,gGACC,0DACD,CAOA,uKAEC,2DAQD,CANC,mLAIC,uEAAkF,CADlF,mBAAoB,CADpB,2DAA4D,CAD5D,0DAID,CAOD,8GACC,gBACD,CAKA,mDAGC,mFAAoF,CAOpF,oCAAqC,CARrC,UAAW,CAOX,oCAAwC,CARxC,mBAUD,CAOC,6JAEC,yBACD,CAUA,yKACC,iDACD,CAMA,uOAlJD,SAAU,CACV,mBAmJC,CAoBA,6yBACC,SACD,CASF,uHACC,aAAc,CACd,iBACD,CAYG,iRAlMF,SAAU,CACV,mBAmME,CAQH,kIACC,qEAKD,CAHC,wIACC,WACD,CAGD,4CACC,GACC,oBACD,CACA,OACC,mBACD,CACD,CAEA,gDACC,OACC,mBACD,CACA,OACC,mBACD,CACD,CAEA,8CACC,GACC,6HACD,CACA,IACC,6HACD,CACA,GACC,+HACD,CACD,CAEA,kDACC,GACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,GACC,SACD,CACD",
                                sourcesContent: [
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-widget {\n\t/*\n\t * Styles of the type around buttons\n\t */\n\t& .ck-widget__type-around__button {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\toverflow: hidden;\n\t\tz-index: var(--ck-z-default);\n\n\t\t& svg {\n\t\t\tposition: absolute;\n\t\t\ttop: 50%;\n\t\t\tleft: 50%;\n\t\t\tz-index: calc(var(--ck-z-default) + 2);\n\t\t}\n\n\t\t&.ck-widget__type-around__button_before {\n\t\t\t/* Place it in the middle of the outline */\n\t\t\ttop: calc(-0.5 * var(--ck-widget-outline-thickness));\n\t\t\tleft: min(10%, 30px);\n\n\t\t\ttransform: translateY(-50%);\n\t\t}\n\n\t\t&.ck-widget__type-around__button_after {\n\t\t\t/* Place it in the middle of the outline */\n\t\t\tbottom: calc(-0.5 * var(--ck-widget-outline-thickness));\n\t\t\tright: min(10%, 30px);\n\n\t\t\ttransform: translateY(50%);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the buttons when:\n\t * - the widget is selected,\n\t * - or the button is being hovered (regardless of the widget state).\n\t */\n\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\n\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\n\t\t&::after {\n\t\t\tcontent: "";\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\ttop: 1px;\n\t\t\tleft: 1px;\n\t\t\tz-index: calc(var(--ck-z-default) + 1);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.\n\t */\n\t& > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tdisplay: none;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n\n\t/*\n\t * When the widget is hovered the "fake caret" would normally be narrower than the\n\t * extra outline displayed around the widget. Let\'s extend the "fake caret" to match\n\t * the full width of the widget.\n\t */\n\t&:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tleft: calc( -1 * var(--ck-widget-outline-thickness) );\n\t\tright: calc( -1 * var(--ck-widget-outline-thickness) );\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" when it should be displayed before the widget (backward keyboard navigation).\n\t */\n\t&.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\ttop: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\n\t\tdisplay: block;\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" when it should be displayed after the widget (forward keyboard navigation).\n\t */\n\t&.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tbottom: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\n\t\tdisplay: block;\n\t}\n}\n\n/*\n * Integration with the read-only mode of the editor.\n */\n.ck.ck-editor__editable.ck-read-only .ck-widget__type-around {\n\tdisplay: none;\n}\n\n/*\n * Integration with the restricted editing mode (feature) of the editor.\n */\n.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around {\n\tdisplay: none;\n}\n\n/*\n * Integration with the #isEnabled property of the WidgetTypeAround plugin.\n */\n.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {\n\tdisplay: none;\n}\n',
                                    '/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-widget-type-around-button-size: 20px;\n\t--ck-color-widget-type-around-button-active: var(--ck-color-focus-border);\n\t--ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border);\n\t--ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border);\n\t--ck-color-widget-type-around-button-radar-start-alpha: 0;\n\t--ck-color-widget-type-around-button-radar-end-alpha: .3;\n\t--ck-color-widget-type-around-button-icon: var(--ck-color-base-background);\n}\n\n@define-mixin ck-widget-type-around-button-visible {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n@define-mixin ck-widget-type-around-button-hidden {\n\topacity: 0;\n\tpointer-events: none;\n}\n\n.ck .ck-widget {\n\t/*\n\t * Styles of the type around buttons\n\t */\n\t& .ck-widget__type-around__button {\n\t\twidth: var(--ck-widget-type-around-button-size);\n\t\theight: var(--ck-widget-type-around-button-size);\n\t\tbackground: var(--ck-color-widget-type-around-button);\n\t\tborder-radius: 100px;\n\t\ttransition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t\t@mixin ck-widget-type-around-button-hidden;\n\n\t\t& svg {\n\t\t\twidth: 10px;\n\t\t\theight: 8px;\n\t\t\ttransform: translate(-50%,-50%);\n\t\t\ttransition: transform .5s ease;\n\t\t\tmargin-top: 1px;\n\n\t\t\t& * {\n\t\t\t\tstroke-dasharray: 10;\n\t\t\t\tstroke-dashoffset: 0;\n\n\t\t\t\tfill: none;\n\t\t\t\tstroke: var(--ck-color-widget-type-around-button-icon);\n\t\t\t\tstroke-width: 1.5px;\n\t\t\t\tstroke-linecap: round;\n\t\t\t\tstroke-linejoin: round;\n\t\t\t}\n\n\t\t\t& line {\n\t\t\t\tstroke-dasharray: 7;\n\t\t\t}\n\t\t}\n\n\t\t&:hover {\n\t\t\t/*\n\t\t\t * Display the "sonar" around the button when hovered.\n\t\t\t */\n\t\t\tanimation: ck-widget-type-around-button-sonar 1s ease infinite;\n\n\t\t\t/*\n\t\t\t * Animate active button\'s icon.\n\t\t\t */\n\t\t\t& svg {\n\t\t\t\t& polyline {\n\t\t\t\t\tanimation: ck-widget-type-around-arrow-dash 2s linear;\n\t\t\t\t}\n\n\t\t\t\t& line {\n\t\t\t\t\tanimation: ck-widget-type-around-arrow-tip-dash 2s linear;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Show type around buttons when the widget gets selected or being hovered.\n\t */\n\t&.ck-widget_selected,\n\t&:hover {\n\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t@mixin ck-widget-type-around-button-visible;\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the buttons when the widget is NOT selected (but the buttons are visible\n\t * and still can be hovered).\n\t */\n\t&:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\tbackground: var(--ck-color-widget-type-around-button-hover);\n\t}\n\n\t/*\n\t * Styles for the buttons when:\n\t * - the widget is selected,\n\t * - or the button is being hovered (regardless of the widget state).\n\t */\n\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\n\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\n\t\tbackground: var(--ck-color-widget-type-around-button-active);\n\n\t\t&::after {\n\t\t\twidth: calc(var(--ck-widget-type-around-button-size) - 2px);\n\t\t\theight: calc(var(--ck-widget-type-around-button-size) - 2px);\n\t\t\tborder-radius: 100px;\n\t\t\tbackground: linear-gradient(135deg, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,.3) 100%);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the "before" button when the widget has a selection handle. Because some space\n\t * is consumed by the handle, the button must be moved slightly to the right to let it breathe.\n\t */\n\t&.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before {\n\t\tmargin-left: 20px;\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.\n\t */\n\t& .ck-widget__type-around__fake-caret {\n\t\tpointer-events: none;\n\t\theight: 1px;\n\t\tanimation: ck-widget-type-around-fake-caret-pulse linear 1s infinite normal forwards;\n\n\t\t/*\n\t\t * The semi-transparent-outline+background combo improves the contrast\n\t\t * when the background underneath the fake caret is dark.\n\t\t */\n\t\toutline: solid 1px hsla(0, 0%, 100%, .5);\n\t\tbackground: var(--ck-color-base-text);\n\t}\n\n\t/*\n\t * Styles of the widget when the "fake caret" is blinking (e.g. upon keyboard navigation).\n\t * Despite the widget being physically selected in the model, its outline should disappear.\n\t */\n\t&.ck-widget_selected {\n\t\t&.ck-widget_type-around_show-fake-caret_before,\n\t\t&.ck-widget_type-around_show-fake-caret_after {\n\t\t\toutline-color: transparent;\n\t\t}\n\t}\n\n\t&.ck-widget_type-around_show-fake-caret_before,\n\t&.ck-widget_type-around_show-fake-caret_after {\n\t\t/*\n\t\t * When the "fake caret" is visible we simulate that the widget is not selected\n\t\t * (despite being physically selected), so the outline color should be for the\n\t\t * unselected widget.\n\t\t */\n\t\t&.ck-widget_selected:hover {\n\t\t\toutline-color: var(--ck-color-widget-hover-border);\n\t\t}\n\n\t\t/*\n\t\t * Styles of the type around buttons when the "fake caret" is blinking (e.g. upon keyboard navigation).\n\t\t * In this state, the type around buttons would collide with the fake carets so they should disappear.\n\t\t */\n\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t@mixin ck-widget-type-around-button-hidden;\n\t\t}\n\n\t\t/*\n\t\t * Fake horizontal caret integration with the selection handle. When the caret is visible, simply\n\t\t * hide the handle because it intersects with the caret (and does not make much sense anyway).\n\t\t */\n\t\t&.ck-widget_with-selection-handle {\n\t\t\t&.ck-widget_selected,\n\t\t\t&.ck-widget_selected:hover {\n\t\t\t\t& > .ck-widget__selection-handle {\n\t\t\t\t\topacity: 0\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Fake horizontal caret integration with the resize UI. When the caret is visible, simply\n\t\t * hide the resize UI because it creates too much noise. It can be visible when the user\n\t\t * hovers the widget, though.\n\t\t */\n\t\t&.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer {\n\t\t\topacity: 0\n\t\t}\n\t}\n}\n\n/*\n * Styles for the "before" button when the widget has a selection handle in an RTL environment.\n * The selection handler is aligned to the right side of the widget so there is no need to create\n * additional space for it next to the "before" button.\n */\n.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before {\n\tmargin-left: 0;\n\tmargin-right: 20px;\n}\n\n/*\n * Hide type around buttons when the widget is selected as a child of a selected\n * nested editable (e.g. mulit-cell table selection).\n *\n * See https://github.com/ckeditor/ckeditor5/issues/7263.\n */\n.ck-editor__nested-editable.ck-editor__editable_selected {\n\t& .ck-widget {\n\t\t&.ck-widget_selected,\n\t\t&:hover {\n\t\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t\t@mixin ck-widget-type-around-button-hidden;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*\n * Styles for the buttons when the widget is selected but the user clicked outside of the editor (blurred the editor).\n */\n.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) {\n\tbackground: var(--ck-color-widget-type-around-button-blurred-editable);\n\n\t& svg * {\n\t\tstroke: hsl(0,0%,60%);\n\t}\n}\n\n@keyframes ck-widget-type-around-arrow-dash {\n\t0% {\n\t\tstroke-dashoffset: 10;\n\t}\n\t20%, 100% {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes ck-widget-type-around-arrow-tip-dash {\n\t0%, 20% {\n\t\tstroke-dashoffset: 7;\n\t}\n\t40%, 100% {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes ck-widget-type-around-button-sonar {\n\t0% {\n\t\tbox-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\n\t}\n\t50% {\n\t\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha));\n\t}\n\t100% {\n\t\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\n\t}\n}\n\n@keyframes ck-widget-type-around-fake-caret-pulse {\n\t0% {\n\t\topacity: 1;\n\t}\n\t49% {\n\t\topacity: 1;\n\t}\n\t50% {\n\t\topacity: 0;\n\t}\n\t99% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n}\n',
                                ],
                                sourceRoot: "",
                            },
                        ]);
                        const a = s;
                    },
                    2609: (t) => {
                        t.exports = function (t) {
                            var e = [];
                            return (
                                (e.toString = function () {
                                    return this.map(function (e) {
                                        var n = t(e);
                                        return e[2] ? "@media ".concat(e[2], " {").concat(n, "}") : n;
                                    }).join("");
                                }),
                                (e.i = function (t, n, o) {
                                    "string" == typeof t && (t = [[null, t, ""]]);
                                    var i = {};
                                    if (o)
                                        for (var r = 0; r < this.length; r++) {
                                            var s = this[r][0];
                                            null != s && (i[s] = !0);
                                        }
                                    for (var a = 0; a < t.length; a++) {
                                        var c = [].concat(t[a]);
                                        (o && i[c[0]]) || (n && (c[2] ? (c[2] = "".concat(n, " and ").concat(c[2])) : (c[2] = n)), e.push(c));
                                    }
                                }),
                                e
                            );
                        };
                    },
                    1799: (t) => {
                        function e(t, e) {
                            return (
                                (function (t) {
                                    if (Array.isArray(t)) return t;
                                })(t) ||
                                (function (t, e) {
                                    var n = t && (("undefined" != typeof Symbol && t[Symbol.iterator]) || t["@@iterator"]);
                                    if (null == n) return;
                                    var o,
                                        i,
                                        r = [],
                                        s = !0,
                                        a = !1;
                                    try {
                                        for (n = n.call(t); !(s = (o = n.next()).done) && (r.push(o.value), !e || r.length !== e); s = !0);
                                    } catch (t) {
                                        (a = !0), (i = t);
                                    } finally {
                                        try {
                                            s || null == n.return || n.return();
                                        } finally {
                                            if (a) throw i;
                                        }
                                    }
                                    return r;
                                })(t, e) ||
                                (function (t, e) {
                                    if (!t) return;
                                    if ("string" == typeof t) return n(t, e);
                                    var o = Object.prototype.toString.call(t).slice(8, -1);
                                    "Object" === o && t.constructor && (o = t.constructor.name);
                                    if ("Map" === o || "Set" === o) return Array.from(t);
                                    if ("Arguments" === o || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)) return n(t, e);
                                })(t, e) ||
                                (function () {
                                    throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
                                })()
                            );
                        }
                        function n(t, e) {
                            (null == e || e > t.length) && (e = t.length);
                            for (var n = 0, o = new Array(e); n < e; n++) o[n] = t[n];
                            return o;
                        }
                        t.exports = function (t) {
                            var n = e(t, 4),
                                o = n[1],
                                i = n[3];
                            if (!i) return o;
                            if ("function" == typeof btoa) {
                                var r = btoa(unescape(encodeURIComponent(JSON.stringify(i)))),
                                    s = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),
                                    a = "/*# ".concat(s, " */"),
                                    c = i.sources.map(function (t) {
                                        return "/*# sourceURL=".concat(i.sourceRoot || "").concat(t, " */");
                                    });
                                return [o].concat(c).concat([a]).join("\n");
                            }
                            return [o].join("\n");
                        };
                    },
                    6062: (t, e, n) => {
                        var o,
                            i = function () {
                                return void 0 === o && (o = Boolean(window && document && document.all && !window.atob)), o;
                            },
                            r = (function () {
                                var t = {};
                                return function (e) {
                                    if (void 0 === t[e]) {
                                        var n = document.querySelector(e);
                                        if (window.HTMLIFrameElement && n instanceof window.HTMLIFrameElement)
                                            try {
                                                n = n.contentDocument.head;
                                            } catch (t) {
                                                n = null;
                                            }
                                        t[e] = n;
                                    }
                                    return t[e];
                                };
                            })(),
                            s = [];
                        function a(t) {
                            for (var e = -1, n = 0; n < s.length; n++)
                                if (s[n].identifier === t) {
                                    e = n;
                                    break;
                                }
                            return e;
                        }
                        function c(t, e) {
                            for (var n = {}, o = [], i = 0; i < t.length; i++) {
                                var r = t[i],
                                    c = e.base ? r[0] + e.base : r[0],
                                    l = n[c] || 0,
                                    d = "".concat(c, " ").concat(l);
                                n[c] = l + 1;
                                var h = a(d),
                                    u = { css: r[1], media: r[2], sourceMap: r[3] };
                                -1 !== h ? (s[h].references++, s[h].updater(u)) : s.push({ identifier: d, updater: f(u, e), references: 1 }), o.push(d);
                            }
                            return o;
                        }
                        function l(t) {
                            var e = document.createElement("style"),
                                o = t.attributes || {};
                            if (void 0 === o.nonce) {
                                var i = n.nc;
                                i && (o.nonce = i);
                            }
                            if (
                                (Object.keys(o).forEach(function (t) {
                                    e.setAttribute(t, o[t]);
                                }),
                                "function" == typeof t.insert)
                            )
                                t.insert(e);
                            else {
                                var s = r(t.insert || "head");
                                if (!s) throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
                                s.appendChild(e);
                            }
                            return e;
                        }
                        var d,
                            h =
                                ((d = []),
                                function (t, e) {
                                    return (d[t] = e), d.filter(Boolean).join("\n");
                                });
                        function u(t, e, n, o) {
                            var i = n ? "" : o.media ? "@media ".concat(o.media, " {").concat(o.css, "}") : o.css;
                            if (t.styleSheet) t.styleSheet.cssText = h(e, i);
                            else {
                                var r = document.createTextNode(i),
                                    s = t.childNodes;
                                s[e] && t.removeChild(s[e]), s.length ? t.insertBefore(r, s[e]) : t.appendChild(r);
                            }
                        }
                        function g(t, e, n) {
                            var o = n.css,
                                i = n.media,
                                r = n.sourceMap;
                            if (
                                (i ? t.setAttribute("media", i) : t.removeAttribute("media"),
                                r && "undefined" != typeof btoa && (o += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r)))), " */")),
                                t.styleSheet)
                            )
                                t.styleSheet.cssText = o;
                            else {
                                for (; t.firstChild; ) t.removeChild(t.firstChild);
                                t.appendChild(document.createTextNode(o));
                            }
                        }
                        var m = null,
                            p = 0;
                        function f(t, e) {
                            var n, o, i;
                            if (e.singleton) {
                                var r = p++;
                                (n = m || (m = l(e))), (o = u.bind(null, n, r, !1)), (i = u.bind(null, n, r, !0));
                            } else
                                (n = l(e)),
                                    (o = g.bind(null, n, e)),
                                    (i = function () {
                                        !(function (t) {
                                            if (null === t.parentNode) return !1;
                                            t.parentNode.removeChild(t);
                                        })(n);
                                    });
                            return (
                                o(t),
                                function (e) {
                                    if (e) {
                                        if (e.css === t.css && e.media === t.media && e.sourceMap === t.sourceMap) return;
                                        o((t = e));
                                    } else i();
                                }
                            );
                        }
                        t.exports = function (t, e) {
                            (e = e || {}).singleton || "boolean" == typeof e.singleton || (e.singleton = i());
                            var n = c((t = t || []), e);
                            return function (t) {
                                if (((t = t || []), "[object Array]" === Object.prototype.toString.call(t))) {
                                    for (var o = 0; o < n.length; o++) {
                                        var i = a(n[o]);
                                        s[i].references--;
                                    }
                                    for (var r = c(t, e), l = 0; l < n.length; l++) {
                                        var d = a(n[l]);
                                        0 === s[d].references && (s[d].updater(), s.splice(d, 1));
                                    }
                                    n = r;
                                }
                            };
                        };
                    },
                },
                e = {};
            function n(o) {
                var i = e[o];
                if (void 0 !== i) return i.exports;
                var r = (e[o] = { id: o, exports: {} });
                return t[o](r, r.exports, n), r.exports;
            }
            (n.n = (t) => {
                var e = t && t.__esModule ? () => t.default : () => t;
                return n.d(e, { a: e }), e;
            }),
                (n.d = (t, e) => {
                    for (var o in e) n.o(e, o) && !n.o(t, o) && Object.defineProperty(t, o, { enumerable: !0, get: e[o] });
                }),
                (n.g = (function () {
                    if ("object" == typeof globalThis) return globalThis;
                    try {
                        return this || new Function("return this")();
                    } catch (t) {
                        if ("object" == typeof window) return window;
                    }
                })()),
                (n.o = (t, e) => Object.prototype.hasOwnProperty.call(t, e)),
                (n.nc = void 0);
            var o = {};
            return (
                (() => {
                    n.d(o, { default: () => QA });
                    const t = function () {
                        return function t() {
                            t.called = !0;
                        };
                    };
                    class e {
                        constructor(e, n) {
                            (this.source = e), (this.name = n), (this.path = []), (this.stop = t()), (this.off = t());
                        }
                    }
                    const i = new Array(256).fill("").map((t, e) => ("0" + e.toString(16)).slice(-2));
                    function r() {
                        const t = (4294967296 * Math.random()) >>> 0,
                            e = (4294967296 * Math.random()) >>> 0,
                            n = (4294967296 * Math.random()) >>> 0,
                            o = (4294967296 * Math.random()) >>> 0;
                        return (
                            "e" +
                            i[(t >> 0) & 255] +
                            i[(t >> 8) & 255] +
                            i[(t >> 16) & 255] +
                            i[(t >> 24) & 255] +
                            i[(e >> 0) & 255] +
                            i[(e >> 8) & 255] +
                            i[(e >> 16) & 255] +
                            i[(e >> 24) & 255] +
                            i[(n >> 0) & 255] +
                            i[(n >> 8) & 255] +
                            i[(n >> 16) & 255] +
                            i[(n >> 24) & 255] +
                            i[(o >> 0) & 255] +
                            i[(o >> 8) & 255] +
                            i[(o >> 16) & 255] +
                            i[(o >> 24) & 255]
                        );
                    }
                    const s = {
                        get(t = "normal") {
                            return "number" != typeof t ? this[t] || this.normal : t;
                        },
                        highest: 1e5,
                        high: 1e3,
                        normal: 0,
                        low: -1e3,
                        lowest: -1e5,
                    };
                    function a(t, e) {
                        const n = s.get(e.priority);
                        for (let o = 0; o < t.length; o++) if (s.get(t[o].priority) < n) return void t.splice(o, 0, e);
                        t.push(e);
                    }
                    class c extends Error {
                        constructor(t, e, n) {
                            super(
                                (function (t, e) {
                                    const n = new WeakSet(),
                                        o = (t, e) => {
                                            if ("object" == typeof e && null !== e) {
                                                if (n.has(e)) return `[object ${e.constructor.name}]`;
                                                n.add(e);
                                            }
                                            return e;
                                        },
                                        i = e ? ` ${JSON.stringify(e, o)}` : "",
                                        r = h(t);
                                    return t + i + r;
                                })(t, n)
                            ),
                                (this.name = "CKEditorError"),
                                (this.context = e),
                                (this.data = n);
                        }
                        is(t) {
                            return "CKEditorError" === t;
                        }
                        static rethrowUnexpectedError(t, e) {
                            if (t.is && t.is("CKEditorError")) throw t;
                            const n = new c(t.message, e);
                            throw ((n.stack = t.stack), n);
                        }
                    }
                    function l(t, e) {
                        console.warn(...u(t, e));
                    }
                    function d(t, e) {
                        console.error(...u(t, e));
                    }
                    function h(t) {
                        return `\nRead more: https://ckeditor.com/docs/ckeditor5/latest/support/error-codes.html#error-${t}`;
                    }
                    function u(t, e) {
                        const n = h(t);
                        return e ? [t, e, n] : [t, n];
                    }
                    const g = "35.1.0",
                        m = "object" == typeof window ? window : n.g;
                    if (m.CKEDITOR_VERSION) throw new c("ckeditor-duplicated-modules", null);
                    m.CKEDITOR_VERSION = g;
                    const p = Symbol("listeningTo"),
                        f = Symbol("emitterId"),
                        k = Symbol("delegations");
                    function b(t) {
                        return class extends t {
                            on(t, e, n) {
                                this.listenTo(this, t, e, n);
                            }
                            once(t, e, n) {
                                let o = !1;
                                this.listenTo(
                                    this,
                                    t,
                                    (t, ...n) => {
                                        o || ((o = !0), t.off(), e.call(this, t, ...n));
                                    },
                                    n
                                );
                            }
                            off(t, e) {
                                this.stopListening(this, t, e);
                            }
                            listenTo(t, e, n, o = {}) {
                                let i, r;
                                this[p] || (this[p] = {});
                                const s = this[p];
                                A(t) || _(t);
                                const a = A(t);
                                (i = s[a]) || (i = s[a] = { emitter: t, callbacks: {} }),
                                    (r = i.callbacks[e]) || (r = i.callbacks[e] = []),
                                    r.push(n),
                                    (function (t, e, n, o, i) {
                                        e._addEventListener ? e._addEventListener(n, o, i) : t._addEventListener.call(e, n, o, i);
                                    })(this, t, e, n, o);
                            }
                            stopListening(t, e, n) {
                                const o = this[p];
                                let i = t && A(t);
                                const r = o && i ? o[i] : void 0,
                                    s = r && e ? r.callbacks[e] : void 0;
                                if (!(!o || (t && !r) || (e && !s)))
                                    if (n) {
                                        E(this, t, e, n);
                                        -1 !== s.indexOf(n) && (1 === s.length ? delete r.callbacks[e] : E(this, t, e, n));
                                    } else if (s) {
                                        for (; (n = s.pop()); ) E(this, t, e, n);
                                        delete r.callbacks[e];
                                    } else if (r) {
                                        for (e in r.callbacks) this.stopListening(t, e);
                                        delete o[i];
                                    } else {
                                        for (i in o) this.stopListening(o[i].emitter);
                                        delete this[p];
                                    }
                            }
                            fire(t, ...n) {
                                try {
                                    const o = t instanceof e ? t : new e(this, t),
                                        i = o.name;
                                    let r = y(this, i);
                                    if ((o.path.push(this), r)) {
                                        const t = [o, ...n];
                                        r = Array.from(r);
                                        for (let e = 0; e < r.length && (r[e].callback.apply(this, t), o.off.called && (delete o.off.called, this._removeEventListener(i, r[e].callback)), !o.stop.called); e++);
                                    }
                                    const s = this[k];
                                    if (s) {
                                        const t = s.get(i),
                                            e = s.get("*");
                                        t && x(t, o, n), e && x(e, o, n);
                                    }
                                    return o.return;
                                } catch (t) {
                                    c.rethrowUnexpectedError(t, this);
                                }
                            }
                            delegate(...t) {
                                return {
                                    to: (e, n) => {
                                        this[k] || (this[k] = new Map()),
                                            t.forEach((t) => {
                                                const o = this[k].get(t);
                                                o ? o.set(e, n) : this[k].set(t, new Map([[e, n]]));
                                            });
                                    },
                                };
                            }
                            stopDelegating(t, e) {
                                if (this[k])
                                    if (t)
                                        if (e) {
                                            const n = this[k].get(t);
                                            n && n.delete(e);
                                        } else this[k].delete(t);
                                    else this[k].clear();
                            }
                            _addEventListener(t, e, n) {
                                !(function (t, e) {
                                    const n = C(t);
                                    if (n[e]) return;
                                    let o = e,
                                        i = null;
                                    const r = [];
                                    for (; "" !== o && !n[o]; ) (n[o] = { callbacks: [], childEvents: [] }), r.push(n[o]), i && n[o].childEvents.push(i), (i = o), (o = o.substr(0, o.lastIndexOf(":")));
                                    if ("" !== o) {
                                        for (const t of r) t.callbacks = n[o].callbacks.slice();
                                        n[o].childEvents.push(i);
                                    }
                                })(this, t);
                                const o = v(this, t),
                                    i = { callback: e, priority: s.get(n.priority) };
                                for (const t of o) a(t, i);
                            }
                            _removeEventListener(t, e) {
                                const n = v(this, t);
                                for (const t of n) for (let n = 0; n < t.length; n++) t[n].callback == e && (t.splice(n, 1), n--);
                            }
                        };
                    }
                    const w = b(Object);
                    function _(t, e) {
                        t[f] || (t[f] = e || r());
                    }
                    function A(t) {
                        return t[f];
                    }
                    function C(t) {
                        return t._events || Object.defineProperty(t, "_events", { value: {} }), t._events;
                    }
                    function v(t, e) {
                        const n = C(t)[e];
                        if (!n) return [];
                        let o = [n.callbacks];
                        for (let e = 0; e < n.childEvents.length; e++) {
                            const i = v(t, n.childEvents[e]);
                            o = o.concat(i);
                        }
                        return o;
                    }
                    function y(t, e) {
                        let n;
                        return t._events && (n = t._events[e]) && n.callbacks.length ? n.callbacks : e.indexOf(":") > -1 ? y(t, e.substr(0, e.lastIndexOf(":"))) : null;
                    }
                    function x(t, n, o) {
                        for (let [i, r] of t) {
                            r ? "function" == typeof r && (r = r(n.name)) : (r = n.name);
                            const t = new e(n.source, r);
                            (t.path = [...n.path]), i.fire(t, ...o);
                        }
                    }
                    function E(t, e, n, o) {
                        e._removeEventListener ? e._removeEventListener(n, o) : t._removeEventListener.call(e, n, o);
                    }
                    ["on", "once", "off", "listenTo", "stopListening", "fire", "delegate", "stopDelegating", "_addEventListener", "_removeEventListener"].forEach((t) => {
                        b[t] = w.prototype[t];
                    });
                    const D = function (t) {
                            var e = typeof t;
                            return null != t && ("object" == e || "function" == e);
                        },
                        I = Symbol("observableProperties"),
                        M = Symbol("boundObservables"),
                        T = Symbol("boundProperties"),
                        S = Symbol("decoratedMethods"),
                        N = Symbol("decoratedOriginal");
                    function B(t) {
                        return class extends t {
                            set(t, e) {
                                if (D(t))
                                    return void Object.keys(t).forEach((e) => {
                                        this.set(e, t[e]);
                                    }, this);
                                z(this);
                                const n = this[I];
                                if (t in this && !n.has(t)) throw new c("observable-set-cannot-override", this);
                                Object.defineProperty(this, t, {
                                    enumerable: !0,
                                    configurable: !0,
                                    get: () => n.get(t),
                                    set(e) {
                                        const o = n.get(t);
                                        let i = this.fire(`set:${t}`, t, e, o);
                                        void 0 === i && (i = e), (o === i && n.has(t)) || (n.set(t, i), this.fire(`change:${t}`, t, i, o));
                                    },
                                }),
                                    (this[t] = e);
                            }
                            bind(...t) {
                                if (!t.length || !R(t)) throw new c("observable-bind-wrong-properties", this);
                                if (new Set(t).size !== t.length) throw new c("observable-bind-duplicate-properties", this);
                                z(this);
                                const e = this[T];
                                t.forEach((t) => {
                                    if (e.has(t)) throw new c("observable-bind-rebind", this);
                                });
                                const n = new Map();
                                return (
                                    t.forEach((t) => {
                                        const o = { property: t, to: [] };
                                        e.set(t, o), n.set(t, o);
                                    }),
                                    { to: L, toMany: O, _observable: this, _bindProperties: t, _to: [], _bindings: n }
                                );
                            }
                            unbind(...t) {
                                if (!this[I]) return;
                                const e = this[T],
                                    n = this[M];
                                if (t.length) {
                                    if (!R(t)) throw new c("observable-unbind-wrong-properties", this);
                                    t.forEach((t) => {
                                        const o = e.get(t);
                                        o &&
                                            (o.to.forEach(([t, e]) => {
                                                const i = n.get(t),
                                                    r = i[e];
                                                r.delete(o), r.size || delete i[e], Object.keys(i).length || (n.delete(t), this.stopListening(t, "change"));
                                            }),
                                            e.delete(t));
                                    });
                                } else
                                    n.forEach((t, e) => {
                                        this.stopListening(e, "change");
                                    }),
                                        n.clear(),
                                        e.clear();
                            }
                            decorate(t) {
                                z(this);
                                const e = this[t];
                                if (!e) throw new c("observablemixin-cannot-decorate-undefined", this, { object: this, methodName: t });
                                this.on(t, (t, n) => {
                                    t.return = e.apply(this, n);
                                }),
                                    (this[t] = function (...e) {
                                        return this.fire(t, e);
                                    }),
                                    (this[t][N] = e),
                                    this[S] || (this[S] = []),
                                    this[S].push(t);
                            }
                            stopListening(t, e, n) {
                                if (!t && this[S]) {
                                    for (const t of this[S]) this[t] = this[t][N];
                                    delete this[S];
                                }
                                w.prototype.stopListening.call(this, t, e, n);
                            }
                        };
                    }
                    const P = B(w);
                    function z(t) {
                        t[I] || (Object.defineProperty(t, I, { value: new Map() }), Object.defineProperty(t, M, { value: new Map() }), Object.defineProperty(t, T, { value: new Map() }));
                    }
                    function L(...t) {
                        const e = (function (...t) {
                                if (!t.length) throw new c("observable-bind-to-parse-error", null);
                                const e = { to: [] };
                                let n;
                                "function" == typeof t[t.length - 1] && (e.callback = t.pop());
                                return (
                                    t.forEach((t) => {
                                        if ("string" == typeof t) n.properties.push(t);
                                        else {
                                            if ("object" != typeof t) throw new c("observable-bind-to-parse-error", null);
                                            (n = { observable: t, properties: [] }), e.to.push(n);
                                        }
                                    }),
                                    e
                                );
                            })(...t),
                            n = Array.from(this._bindings.keys()),
                            o = n.length;
                        if (!e.callback && e.to.length > 1) throw new c("observable-bind-to-no-callback", this);
                        if (o > 1 && e.callback) throw new c("observable-bind-to-extra-callback", this);
                        var i;
                        e.to.forEach((t) => {
                            if (t.properties.length && t.properties.length !== o) throw new c("observable-bind-to-properties-length", this);
                            t.properties.length || (t.properties = this._bindProperties);
                        }),
                            (this._to = e.to),
                            e.callback && (this._bindings.get(n[0]).callback = e.callback),
                            (i = this._observable),
                            this._to.forEach((t) => {
                                const e = i[M];
                                let n;
                                e.get(t.observable) ||
                                    i.listenTo(t.observable, "change", (o, r) => {
                                        (n = e.get(t.observable)[r]),
                                            n &&
                                                n.forEach((t) => {
                                                    j(i, t.property);
                                                });
                                    });
                            }),
                            (function (t) {
                                let e;
                                t._bindings.forEach((n, o) => {
                                    t._to.forEach((i) => {
                                        (e = i.properties[n.callback ? 0 : t._bindProperties.indexOf(o)]),
                                            n.to.push([i.observable, e]),
                                            (function (t, e, n, o) {
                                                const i = t[M],
                                                    r = i.get(n),
                                                    s = r || {};
                                                s[o] || (s[o] = new Set());
                                                s[o].add(e), r || i.set(n, s);
                                            })(t._observable, n, i.observable, e);
                                    });
                                });
                            })(this),
                            this._bindProperties.forEach((t) => {
                                j(this._observable, t);
                            });
                    }
                    function O(t, e, n) {
                        if (this._bindings.size > 1) throw new c("observable-bind-to-many-not-one-binding", this);
                        this.to(
                            ...(function (t, e) {
                                const n = t.map((t) => [t, e]);
                                return Array.prototype.concat.apply([], n);
                            })(t, e),
                            n
                        );
                    }
                    function R(t) {
                        return t.every((t) => "string" == typeof t);
                    }
                    function j(t, e) {
                        const n = t[T].get(e);
                        let o;
                        n.callback
                            ? (o = n.callback.apply(
                                  t,
                                  n.to.map((t) => t[0][t[1]])
                              ))
                            : ((o = n.to[0]), (o = o[0][o[1]])),
                            Object.prototype.hasOwnProperty.call(t, e) ? (t[e] = o) : t.set(e, o);
                    }
                    function F(t, ...e) {
                        e.forEach((e) => {
                            const n = Object.getOwnPropertyNames(e),
                                o = Object.getOwnPropertySymbols(e);
                            n.concat(o).forEach((n) => {
                                if (n in t.prototype) return;
                                if ("function" == typeof e && ("length" == n || "name" == n || "prototype" == n)) return;
                                const o = Object.getOwnPropertyDescriptor(e, n);
                                (o.enumerable = !1), Object.defineProperty(t.prototype, n, o);
                            });
                        });
                    }
                    ["set", "bind", "unbind", "decorate", "on", "once", "off", "listenTo", "stopListening", "fire", "delegate", "stopDelegating", "_addEventListener", "_removeEventListener"].forEach((t) => {
                        B[t] = P.prototype[t];
                    });
                    class V {
                        constructor(t) {
                            (this.editor = t), this.set("isEnabled", !0), (this._disableStack = new Set());
                        }
                        forceDisabled(t) {
                            this._disableStack.add(t), 1 == this._disableStack.size && (this.on("set:isEnabled", H, { priority: "highest" }), (this.isEnabled = !1));
                        }
                        clearForceDisabled(t) {
                            this._disableStack.delete(t), 0 == this._disableStack.size && (this.off("set:isEnabled", H), (this.isEnabled = !0));
                        }
                        destroy() {
                            this.stopListening();
                        }
                        static get isContextPlugin() {
                            return !1;
                        }
                    }
                    function H(t) {
                        (t.return = !1), t.stop();
                    }
                    F(V, B);
                    class U {
                        constructor(t) {
                            (this.editor = t),
                                this.set("value", void 0),
                                this.set("isEnabled", !1),
                                (this.affectsData = !0),
                                (this._disableStack = new Set()),
                                this.decorate("execute"),
                                this.listenTo(this.editor.model.document, "change", () => {
                                    this.refresh();
                                }),
                                this.on(
                                    "execute",
                                    (t) => {
                                        this.isEnabled || t.stop();
                                    },
                                    { priority: "high" }
                                ),
                                this.listenTo(t, "change:isReadOnly", (t, e, n) => {
                                    n && this.affectsData ? this.forceDisabled("readOnlyMode") : this.clearForceDisabled("readOnlyMode");
                                });
                        }
                        refresh() {
                            this.isEnabled = !0;
                        }
                        forceDisabled(t) {
                            this._disableStack.add(t), 1 == this._disableStack.size && (this.on("set:isEnabled", W, { priority: "highest" }), (this.isEnabled = !1));
                        }
                        clearForceDisabled(t) {
                            this._disableStack.delete(t), 0 == this._disableStack.size && (this.off("set:isEnabled", W), this.refresh());
                        }
                        execute() {}
                        destroy() {
                            this.stopListening();
                        }
                    }
                    function W(t) {
                        (t.return = !1), t.stop();
                    }
                    F(U, B);
                    class q extends U {
                        constructor(t) {
                            super(t), (this._childCommandsDefinitions = []);
                        }
                        refresh() {}
                        execute(...t) {
                            const e = this._getFirstEnabledCommand();
                            return !!e && e.execute(t);
                        }
                        registerChildCommand(t, e = { priority: "normal" }) {
                            a(this._childCommandsDefinitions, { command: t, priority: e.priority }), t.on("change:isEnabled", () => this._checkEnabled()), this._checkEnabled();
                        }
                        _checkEnabled() {
                            this.isEnabled = !!this._getFirstEnabledCommand();
                        }
                        _getFirstEnabledCommand() {
                            const t = this._childCommandsDefinitions.find(({ command: t }) => t.isEnabled);
                            return t && t.command;
                        }
                    }
                    const G = "object" == typeof global && global && global.Object === Object && global;
                    var $ = "object" == typeof self && self && self.Object === Object && self;
                    const Y = G || $ || Function("return this")();
                    const K = Y.Symbol;
                    var Q = Object.prototype,
                        Z = Q.hasOwnProperty,
                        J = Q.toString,
                        X = K ? K.toStringTag : void 0;
                    const tt = function (t) {
                        var e = Z.call(t, X),
                            n = t[X];
                        try {
                            t[X] = void 0;
                            var o = !0;
                        } catch (t) {}
                        var i = J.call(t);
                        return o && (e ? (t[X] = n) : delete t[X]), i;
                    };
                    var et = Object.prototype.toString;
                    const nt = function (t) {
                        return et.call(t);
                    };
                    var ot = K ? K.toStringTag : void 0;
                    const it = function (t) {
                        return null == t ? (void 0 === t ? "[object Undefined]" : "[object Null]") : ot && ot in Object(t) ? tt(t) : nt(t);
                    };
                    const rt = function (t, e) {
                        return function (n) {
                            return t(e(n));
                        };
                    };
                    const st = rt(Object.getPrototypeOf, Object);
                    const at = function (t) {
                        return null != t && "object" == typeof t;
                    };
                    var ct = Function.prototype,
                        lt = Object.prototype,
                        dt = ct.toString,
                        ht = lt.hasOwnProperty,
                        ut = dt.call(Object);
                    const gt = function (t) {
                        if (!at(t) || "[object Object]" != it(t)) return !1;
                        var e = st(t);
                        if (null === e) return !0;
                        var n = ht.call(e, "constructor") && e.constructor;
                        return "function" == typeof n && n instanceof n && dt.call(n) == ut;
                    };
                    const mt = function () {
                        (this.__data__ = []), (this.size = 0);
                    };
                    const pt = function (t, e) {
                        return t === e || (t != t && e != e);
                    };
                    const ft = function (t, e) {
                        for (var n = t.length; n--; ) if (pt(t[n][0], e)) return n;
                        return -1;
                    };
                    var kt = Array.prototype.splice;
                    const bt = function (t) {
                        var e = this.__data__,
                            n = ft(e, t);
                        return !(n < 0) && (n == e.length - 1 ? e.pop() : kt.call(e, n, 1), --this.size, !0);
                    };
                    const wt = function (t) {
                        var e = this.__data__,
                            n = ft(e, t);
                        return n < 0 ? void 0 : e[n][1];
                    };
                    const _t = function (t) {
                        return ft(this.__data__, t) > -1;
                    };
                    const At = function (t, e) {
                        var n = this.__data__,
                            o = ft(n, t);
                        return o < 0 ? (++this.size, n.push([t, e])) : (n[o][1] = e), this;
                    };
                    function Ct(t) {
                        var e = -1,
                            n = null == t ? 0 : t.length;
                        for (this.clear(); ++e < n; ) {
                            var o = t[e];
                            this.set(o[0], o[1]);
                        }
                    }
                    (Ct.prototype.clear = mt), (Ct.prototype.delete = bt), (Ct.prototype.get = wt), (Ct.prototype.has = _t), (Ct.prototype.set = At);
                    const vt = Ct;
                    const yt = function () {
                        (this.__data__ = new vt()), (this.size = 0);
                    };
                    const xt = function (t) {
                        var e = this.__data__,
                            n = e.delete(t);
                        return (this.size = e.size), n;
                    };
                    const Et = function (t) {
                        return this.__data__.get(t);
                    };
                    const Dt = function (t) {
                        return this.__data__.has(t);
                    };
                    const It = function (t) {
                        if (!D(t)) return !1;
                        var e = it(t);
                        return "[object Function]" == e || "[object GeneratorFunction]" == e || "[object AsyncFunction]" == e || "[object Proxy]" == e;
                    };
                    const Mt = Y["__core-js_shared__"];
                    var Tt = (function () {
                        var t = /[^.]+$/.exec((Mt && Mt.keys && Mt.keys.IE_PROTO) || "");
                        return t ? "Symbol(src)_1." + t : "";
                    })();
                    const St = function (t) {
                        return !!Tt && Tt in t;
                    };
                    var Nt = Function.prototype.toString;
                    const Bt = function (t) {
                        if (null != t) {
                            try {
                                return Nt.call(t);
                            } catch (t) {}
                            try {
                                return t + "";
                            } catch (t) {}
                        }
                        return "";
                    };
                    var Pt = /^\[object .+?Constructor\]$/,
                        zt = Function.prototype,
                        Lt = Object.prototype,
                        Ot = zt.toString,
                        Rt = Lt.hasOwnProperty,
                        jt = RegExp(
                            "^" +
                                Ot.call(Rt)
                                    .replace(/[\\^$.*+?()[\]{}|]/g, "\\$&")
                                    .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") +
                                "$"
                        );
                    const Ft = function (t) {
                        return !(!D(t) || St(t)) && (It(t) ? jt : Pt).test(Bt(t));
                    };
                    const Vt = function (t, e) {
                        return null == t ? void 0 : t[e];
                    };
                    const Ht = function (t, e) {
                        var n = Vt(t, e);
                        return Ft(n) ? n : void 0;
                    };
                    const Ut = Ht(Y, "Map");
                    const Wt = Ht(Object, "create");
                    const qt = function () {
                        (this.__data__ = Wt ? Wt(null) : {}), (this.size = 0);
                    };
                    const Gt = function (t) {
                        var e = this.has(t) && delete this.__data__[t];
                        return (this.size -= e ? 1 : 0), e;
                    };
                    var $t = Object.prototype.hasOwnProperty;
                    const Yt = function (t) {
                        var e = this.__data__;
                        if (Wt) {
                            var n = e[t];
                            return "__lodash_hash_undefined__" === n ? void 0 : n;
                        }
                        return $t.call(e, t) ? e[t] : void 0;
                    };
                    var Kt = Object.prototype.hasOwnProperty;
                    const Qt = function (t) {
                        var e = this.__data__;
                        return Wt ? void 0 !== e[t] : Kt.call(e, t);
                    };
                    const Zt = function (t, e) {
                        var n = this.__data__;
                        return (this.size += this.has(t) ? 0 : 1), (n[t] = Wt && void 0 === e ? "__lodash_hash_undefined__" : e), this;
                    };
                    function Jt(t) {
                        var e = -1,
                            n = null == t ? 0 : t.length;
                        for (this.clear(); ++e < n; ) {
                            var o = t[e];
                            this.set(o[0], o[1]);
                        }
                    }
                    (Jt.prototype.clear = qt), (Jt.prototype.delete = Gt), (Jt.prototype.get = Yt), (Jt.prototype.has = Qt), (Jt.prototype.set = Zt);
                    const Xt = Jt;
                    const te = function () {
                        (this.size = 0), (this.__data__ = { hash: new Xt(), map: new (Ut || vt)(), string: new Xt() });
                    };
                    const ee = function (t) {
                        var e = typeof t;
                        return "string" == e || "number" == e || "symbol" == e || "boolean" == e ? "__proto__" !== t : null === t;
                    };
                    const ne = function (t, e) {
                        var n = t.__data__;
                        return ee(e) ? n["string" == typeof e ? "string" : "hash"] : n.map;
                    };
                    const oe = function (t) {
                        var e = ne(this, t).delete(t);
                        return (this.size -= e ? 1 : 0), e;
                    };
                    const ie = function (t) {
                        return ne(this, t).get(t);
                    };
                    const re = function (t) {
                        return ne(this, t).has(t);
                    };
                    const se = function (t, e) {
                        var n = ne(this, t),
                            o = n.size;
                        return n.set(t, e), (this.size += n.size == o ? 0 : 1), this;
                    };
                    function ae(t) {
                        var e = -1,
                            n = null == t ? 0 : t.length;
                        for (this.clear(); ++e < n; ) {
                            var o = t[e];
                            this.set(o[0], o[1]);
                        }
                    }
                    (ae.prototype.clear = te), (ae.prototype.delete = oe), (ae.prototype.get = ie), (ae.prototype.has = re), (ae.prototype.set = se);
                    const ce = ae;
                    const le = function (t, e) {
                        var n = this.__data__;
                        if (n instanceof vt) {
                            var o = n.__data__;
                            if (!Ut || o.length < 199) return o.push([t, e]), (this.size = ++n.size), this;
                            n = this.__data__ = new ce(o);
                        }
                        return n.set(t, e), (this.size = n.size), this;
                    };
                    function de(t) {
                        var e = (this.__data__ = new vt(t));
                        this.size = e.size;
                    }
                    (de.prototype.clear = yt), (de.prototype.delete = xt), (de.prototype.get = Et), (de.prototype.has = Dt), (de.prototype.set = le);
                    const he = de;
                    const ue = function (t, e) {
                        for (var n = -1, o = null == t ? 0 : t.length; ++n < o && !1 !== e(t[n], n, t); );
                        return t;
                    };
                    const ge = (function () {
                        try {
                            var t = Ht(Object, "defineProperty");
                            return t({}, "", {}), t;
                        } catch (t) {}
                    })();
                    const me = function (t, e, n) {
                        "__proto__" == e && ge ? ge(t, e, { configurable: !0, enumerable: !0, value: n, writable: !0 }) : (t[e] = n);
                    };
                    var pe = Object.prototype.hasOwnProperty;
                    const fe = function (t, e, n) {
                        var o = t[e];
                        (pe.call(t, e) && pt(o, n) && (void 0 !== n || e in t)) || me(t, e, n);
                    };
                    const ke = function (t, e, n, o) {
                        var i = !n;
                        n || (n = {});
                        for (var r = -1, s = e.length; ++r < s; ) {
                            var a = e[r],
                                c = o ? o(n[a], t[a], a, n, t) : void 0;
                            void 0 === c && (c = t[a]), i ? me(n, a, c) : fe(n, a, c);
                        }
                        return n;
                    };
                    const be = function (t, e) {
                        for (var n = -1, o = Array(t); ++n < t; ) o[n] = e(n);
                        return o;
                    };
                    const we = function (t) {
                        return at(t) && "[object Arguments]" == it(t);
                    };
                    var _e = Object.prototype,
                        Ae = _e.hasOwnProperty,
                        Ce = _e.propertyIsEnumerable;
                    const ve = we(
                        (function () {
                            return arguments;
                        })()
                    )
                        ? we
                        : function (t) {
                              return at(t) && Ae.call(t, "callee") && !Ce.call(t, "callee");
                          };
                    const ye = Array.isArray;
                    const xe = function () {
                        return !1;
                    };
                    var Ee = "object" == typeof exports && exports && !exports.nodeType && exports,
                        De = Ee && "object" == typeof module && module && !module.nodeType && module,
                        Ie = De && De.exports === Ee ? Y.Buffer : void 0;
                    const Me = (Ie ? Ie.isBuffer : void 0) || xe;
                    var Te = /^(?:0|[1-9]\d*)$/;
                    const Se = function (t, e) {
                        var n = typeof t;
                        return !!(e = null == e ? 9007199254740991 : e) && ("number" == n || ("symbol" != n && Te.test(t))) && t > -1 && t % 1 == 0 && t < e;
                    };
                    const Ne = function (t) {
                        return "number" == typeof t && t > -1 && t % 1 == 0 && t <= 9007199254740991;
                    };
                    var Be = {};
                    (Be["[object Float32Array]"] = Be["[object Float64Array]"] = Be["[object Int8Array]"] = Be["[object Int16Array]"] = Be["[object Int32Array]"] = Be["[object Uint8Array]"] = Be["[object Uint8ClampedArray]"] = Be[
                        "[object Uint16Array]"
                    ] = Be["[object Uint32Array]"] = !0),
                        (Be["[object Arguments]"] = Be["[object Array]"] = Be["[object ArrayBuffer]"] = Be["[object Boolean]"] = Be["[object DataView]"] = Be["[object Date]"] = Be["[object Error]"] = Be["[object Function]"] = Be[
                            "[object Map]"
                        ] = Be["[object Number]"] = Be["[object Object]"] = Be["[object RegExp]"] = Be["[object Set]"] = Be["[object String]"] = Be["[object WeakMap]"] = !1);
                    const Pe = function (t) {
                        return at(t) && Ne(t.length) && !!Be[it(t)];
                    };
                    const ze = function (t) {
                        return function (e) {
                            return t(e);
                        };
                    };
                    var Le = "object" == typeof exports && exports && !exports.nodeType && exports,
                        Oe = Le && "object" == typeof module && module && !module.nodeType && module,
                        Re = Oe && Oe.exports === Le && G.process;
                    const je = (function () {
                        try {
                            var t = Oe && Oe.require && Oe.require("util").types;
                            return t || (Re && Re.binding && Re.binding("util"));
                        } catch (t) {}
                    })();
                    var Fe = je && je.isTypedArray;
                    const Ve = Fe ? ze(Fe) : Pe;
                    var He = Object.prototype.hasOwnProperty;
                    const Ue = function (t, e) {
                        var n = ye(t),
                            o = !n && ve(t),
                            i = !n && !o && Me(t),
                            r = !n && !o && !i && Ve(t),
                            s = n || o || i || r,
                            a = s ? be(t.length, String) : [],
                            c = a.length;
                        for (var l in t) (!e && !He.call(t, l)) || (s && ("length" == l || (i && ("offset" == l || "parent" == l)) || (r && ("buffer" == l || "byteLength" == l || "byteOffset" == l)) || Se(l, c))) || a.push(l);
                        return a;
                    };
                    var We = Object.prototype;
                    const qe = function (t) {
                        var e = t && t.constructor;
                        return t === (("function" == typeof e && e.prototype) || We);
                    };
                    const Ge = rt(Object.keys, Object);
                    var $e = Object.prototype.hasOwnProperty;
                    const Ye = function (t) {
                        if (!qe(t)) return Ge(t);
                        var e = [];
                        for (var n in Object(t)) $e.call(t, n) && "constructor" != n && e.push(n);
                        return e;
                    };
                    const Ke = function (t) {
                        return null != t && Ne(t.length) && !It(t);
                    };
                    const Qe = function (t) {
                        return Ke(t) ? Ue(t) : Ye(t);
                    };
                    const Ze = function (t, e) {
                        return t && ke(e, Qe(e), t);
                    };
                    const Je = function (t) {
                        var e = [];
                        if (null != t) for (var n in Object(t)) e.push(n);
                        return e;
                    };
                    var Xe = Object.prototype.hasOwnProperty;
                    const tn = function (t) {
                        if (!D(t)) return Je(t);
                        var e = qe(t),
                            n = [];
                        for (var o in t) ("constructor" != o || (!e && Xe.call(t, o))) && n.push(o);
                        return n;
                    };
                    const en = function (t) {
                        return Ke(t) ? Ue(t, !0) : tn(t);
                    };
                    const nn = function (t, e) {
                        return t && ke(e, en(e), t);
                    };
                    var on = "object" == typeof exports && exports && !exports.nodeType && exports,
                        rn = on && "object" == typeof module && module && !module.nodeType && module,
                        sn = rn && rn.exports === on ? Y.Buffer : void 0,
                        an = sn ? sn.allocUnsafe : void 0;
                    const cn = function (t, e) {
                        if (e) return t.slice();
                        var n = t.length,
                            o = an ? an(n) : new t.constructor(n);
                        return t.copy(o), o;
                    };
                    const ln = function (t, e) {
                        var n = -1,
                            o = t.length;
                        for (e || (e = Array(o)); ++n < o; ) e[n] = t[n];
                        return e;
                    };
                    const dn = function (t, e) {
                        for (var n = -1, o = null == t ? 0 : t.length, i = 0, r = []; ++n < o; ) {
                            var s = t[n];
                            e(s, n, t) && (r[i++] = s);
                        }
                        return r;
                    };
                    const hn = function () {
                        return [];
                    };
                    var un = Object.prototype.propertyIsEnumerable,
                        gn = Object.getOwnPropertySymbols;
                    const mn = gn
                        ? function (t) {
                              return null == t
                                  ? []
                                  : ((t = Object(t)),
                                    dn(gn(t), function (e) {
                                        return un.call(t, e);
                                    }));
                          }
                        : hn;
                    const pn = function (t, e) {
                        return ke(t, mn(t), e);
                    };
                    const fn = function (t, e) {
                        for (var n = -1, o = e.length, i = t.length; ++n < o; ) t[i + n] = e[n];
                        return t;
                    };
                    const kn = Object.getOwnPropertySymbols
                        ? function (t) {
                              for (var e = []; t; ) fn(e, mn(t)), (t = st(t));
                              return e;
                          }
                        : hn;
                    const bn = function (t, e) {
                        return ke(t, kn(t), e);
                    };
                    const wn = function (t, e, n) {
                        var o = e(t);
                        return ye(t) ? o : fn(o, n(t));
                    };
                    const _n = function (t) {
                        return wn(t, Qe, mn);
                    };
                    const An = function (t) {
                        return wn(t, en, kn);
                    };
                    const Cn = Ht(Y, "DataView");
                    const vn = Ht(Y, "Promise");
                    const yn = Ht(Y, "Set");
                    const xn = Ht(Y, "WeakMap");
                    var En = "[object Map]",
                        Dn = "[object Promise]",
                        In = "[object Set]",
                        Mn = "[object WeakMap]",
                        Tn = "[object DataView]",
                        Sn = Bt(Cn),
                        Nn = Bt(Ut),
                        Bn = Bt(vn),
                        Pn = Bt(yn),
                        zn = Bt(xn),
                        Ln = it;
                    ((Cn && Ln(new Cn(new ArrayBuffer(1))) != Tn) || (Ut && Ln(new Ut()) != En) || (vn && Ln(vn.resolve()) != Dn) || (yn && Ln(new yn()) != In) || (xn && Ln(new xn()) != Mn)) &&
                        (Ln = function (t) {
                            var e = it(t),
                                n = "[object Object]" == e ? t.constructor : void 0,
                                o = n ? Bt(n) : "";
                            if (o)
                                switch (o) {
                                    case Sn:
                                        return Tn;
                                    case Nn:
                                        return En;
                                    case Bn:
                                        return Dn;
                                    case Pn:
                                        return In;
                                    case zn:
                                        return Mn;
                                }
                            return e;
                        });
                    const On = Ln;
                    var Rn = Object.prototype.hasOwnProperty;
                    const jn = function (t) {
                        var e = t.length,
                            n = new t.constructor(e);
                        return e && "string" == typeof t[0] && Rn.call(t, "index") && ((n.index = t.index), (n.input = t.input)), n;
                    };
                    const Fn = Y.Uint8Array;
                    const Vn = function (t) {
                        var e = new t.constructor(t.byteLength);
                        return new Fn(e).set(new Fn(t)), e;
                    };
                    const Hn = function (t, e) {
                        var n = e ? Vn(t.buffer) : t.buffer;
                        return new t.constructor(n, t.byteOffset, t.byteLength);
                    };
                    var Un = /\w*$/;
                    const Wn = function (t) {
                        var e = new t.constructor(t.source, Un.exec(t));
                        return (e.lastIndex = t.lastIndex), e;
                    };
                    var qn = K ? K.prototype : void 0,
                        Gn = qn ? qn.valueOf : void 0;
                    const $n = function (t) {
                        return Gn ? Object(Gn.call(t)) : {};
                    };
                    const Yn = function (t, e) {
                        var n = e ? Vn(t.buffer) : t.buffer;
                        return new t.constructor(n, t.byteOffset, t.length);
                    };
                    const Kn = function (t, e, n) {
                        var o = t.constructor;
                        switch (e) {
                            case "[object ArrayBuffer]":
                                return Vn(t);
                            case "[object Boolean]":
                            case "[object Date]":
                                return new o(+t);
                            case "[object DataView]":
                                return Hn(t, n);
                            case "[object Float32Array]":
                            case "[object Float64Array]":
                            case "[object Int8Array]":
                            case "[object Int16Array]":
                            case "[object Int32Array]":
                            case "[object Uint8Array]":
                            case "[object Uint8ClampedArray]":
                            case "[object Uint16Array]":
                            case "[object Uint32Array]":
                                return Yn(t, n);
                            case "[object Map]":
                            case "[object Set]":
                                return new o();
                            case "[object Number]":
                            case "[object String]":
                                return new o(t);
                            case "[object RegExp]":
                                return Wn(t);
                            case "[object Symbol]":
                                return $n(t);
                        }
                    };
                    var Qn = Object.create;
                    const Zn = (function () {
                        function t() {}
                        return function (e) {
                            if (!D(e)) return {};
                            if (Qn) return Qn(e);
                            t.prototype = e;
                            var n = new t();
                            return (t.prototype = void 0), n;
                        };
                    })();
                    const Jn = function (t) {
                        return "function" != typeof t.constructor || qe(t) ? {} : Zn(st(t));
                    };
                    const Xn = function (t) {
                        return at(t) && "[object Map]" == On(t);
                    };
                    var to = je && je.isMap;
                    const eo = to ? ze(to) : Xn;
                    const no = function (t) {
                        return at(t) && "[object Set]" == On(t);
                    };
                    var oo = je && je.isSet;
                    const io = oo ? ze(oo) : no;
                    var ro = "[object Arguments]",
                        so = "[object Function]",
                        ao = "[object Object]",
                        co = {};
                    (co[ro] = co["[object Array]"] = co["[object ArrayBuffer]"] = co["[object DataView]"] = co["[object Boolean]"] = co["[object Date]"] = co["[object Float32Array]"] = co["[object Float64Array]"] = co[
                        "[object Int8Array]"
                    ] = co["[object Int16Array]"] = co["[object Int32Array]"] = co["[object Map]"] = co["[object Number]"] = co["[object Object]"] = co["[object RegExp]"] = co["[object Set]"] = co["[object String]"] = co[
                        "[object Symbol]"
                    ] = co["[object Uint8Array]"] = co["[object Uint8ClampedArray]"] = co["[object Uint16Array]"] = co["[object Uint32Array]"] = !0),
                        (co["[object Error]"] = co[so] = co["[object WeakMap]"] = !1);
                    const lo = function t(e, n, o, i, r, s) {
                        var a,
                            c = 1 & n,
                            l = 2 & n,
                            d = 4 & n;
                        if ((o && (a = r ? o(e, i, r, s) : o(e)), void 0 !== a)) return a;
                        if (!D(e)) return e;
                        var h = ye(e);
                        if (h) {
                            if (((a = jn(e)), !c)) return ln(e, a);
                        } else {
                            var u = On(e),
                                g = u == so || "[object GeneratorFunction]" == u;
                            if (Me(e)) return cn(e, c);
                            if (u == ao || u == ro || (g && !r)) {
                                if (((a = l || g ? {} : Jn(e)), !c)) return l ? bn(e, nn(a, e)) : pn(e, Ze(a, e));
                            } else {
                                if (!co[u]) return r ? e : {};
                                a = Kn(e, u, c);
                            }
                        }
                        s || (s = new he());
                        var m = s.get(e);
                        if (m) return m;
                        s.set(e, a),
                            io(e)
                                ? e.forEach(function (i) {
                                      a.add(t(i, n, o, i, e, s));
                                  })
                                : eo(e) &&
                                  e.forEach(function (i, r) {
                                      a.set(r, t(i, n, o, r, e, s));
                                  });
                        var p = h ? void 0 : (d ? (l ? An : _n) : l ? en : Qe)(e);
                        return (
                            ue(p || e, function (i, r) {
                                p && (i = e[(r = i)]), fe(a, r, t(i, n, o, r, e, s));
                            }),
                            a
                        );
                    };
                    const ho = function (t, e) {
                        return lo(t, 5, (e = "function" == typeof e ? e : void 0));
                    };
                    const uo = function (t) {
                        return at(t) && 1 === t.nodeType && !gt(t);
                    };
                    class go {
                        constructor(t, e) {
                            (this._config = {}), e && this.define(mo(e)), t && this._setObjectToTarget(this._config, t);
                        }
                        set(t, e) {
                            this._setToTarget(this._config, t, e);
                        }
                        define(t, e) {
                            this._setToTarget(this._config, t, e, !0);
                        }
                        get(t) {
                            return this._getFromSource(this._config, t);
                        }
                        *names() {
                            for (const t of Object.keys(this._config)) yield t;
                        }
                        _setToTarget(t, e, n, o = !1) {
                            if (gt(e)) return void this._setObjectToTarget(t, e, o);
                            const i = e.split(".");
                            e = i.pop();
                            for (const e of i) gt(t[e]) || (t[e] = {}), (t = t[e]);
                            if (gt(n)) return gt(t[e]) || (t[e] = {}), (t = t[e]), void this._setObjectToTarget(t, n, o);
                            (o && void 0 !== t[e]) || (t[e] = n);
                        }
                        _getFromSource(t, e) {
                            const n = e.split(".");
                            e = n.pop();
                            for (const e of n) {
                                if (!gt(t[e])) {
                                    t = null;
                                    break;
                                }
                                t = t[e];
                            }
                            return t ? mo(t[e]) : void 0;
                        }
                        _setObjectToTarget(t, e, n) {
                            Object.keys(e).forEach((o) => {
                                this._setToTarget(t, o, e[o], n);
                            });
                        }
                    }
                    function mo(t) {
                        return ho(t, po);
                    }
                    function po(t) {
                        return uo(t) ? t : void 0;
                    }
                    function fo(t) {
                        return !(!t || !t[Symbol.iterator]);
                    }
                    class ko extends w {
                        constructor(t = {}, e = {}) {
                            super();
                            const n = fo(t);
                            if (
                                (n || (e = t),
                                (this._items = []),
                                (this._itemMap = new Map()),
                                (this._idProperty = e.idProperty || "id"),
                                (this._bindToExternalToInternalMap = new WeakMap()),
                                (this._bindToInternalToExternalMap = new WeakMap()),
                                (this._skippedIndexesFromExternal = []),
                                n)
                            )
                                for (const e of t) this._items.push(e), this._itemMap.set(this._getItemIdBeforeAdding(e), e);
                        }
                        get length() {
                            return this._items.length;
                        }
                        get first() {
                            return this._items[0] || null;
                        }
                        get last() {
                            return this._items[this.length - 1] || null;
                        }
                        add(t, e) {
                            return this.addMany([t], e);
                        }
                        addMany(t, e) {
                            if (void 0 === e) e = this._items.length;
                            else if (e > this._items.length || e < 0) throw new c("collection-add-item-invalid-index", this);
                            let n = 0;
                            for (const o of t) {
                                const t = this._getItemIdBeforeAdding(o),
                                    i = e + n;
                                this._items.splice(i, 0, o), this._itemMap.set(t, o), this.fire("add", o, i), n++;
                            }
                            return this.fire("change", { added: t, removed: [], index: e }), this;
                        }
                        get(t) {
                            let e;
                            if ("string" == typeof t) e = this._itemMap.get(t);
                            else {
                                if ("number" != typeof t) throw new c("collection-get-invalid-arg", this);
                                e = this._items[t];
                            }
                            return e || null;
                        }
                        has(t) {
                            if ("string" == typeof t) return this._itemMap.has(t);
                            {
                                const e = t[this._idProperty];
                                return e && this._itemMap.has(e);
                            }
                        }
                        getIndex(t) {
                            let e;
                            return (e = "string" == typeof t ? this._itemMap.get(t) : t), e ? this._items.indexOf(e) : -1;
                        }
                        remove(t) {
                            const [e, n] = this._remove(t);
                            return this.fire("change", { added: [], removed: [e], index: n }), e;
                        }
                        map(t, e) {
                            return this._items.map(t, e);
                        }
                        find(t, e) {
                            return this._items.find(t, e);
                        }
                        filter(t, e) {
                            return this._items.filter(t, e);
                        }
                        clear() {
                            this._bindToCollection && (this.stopListening(this._bindToCollection), (this._bindToCollection = null));
                            const t = Array.from(this._items);
                            for (; this.length; ) this._remove(0);
                            this.fire("change", { added: [], removed: t, index: 0 });
                        }
                        bindTo(t) {
                            if (this._bindToCollection) throw new c("collection-bind-to-rebind", this);
                            return (
                                (this._bindToCollection = t),
                                {
                                    as: (t) => {
                                        this._setUpBindToBinding((e) => new t(e));
                                    },
                                    using: (t) => {
                                        "function" == typeof t ? this._setUpBindToBinding(t) : this._setUpBindToBinding((e) => e[t]);
                                    },
                                }
                            );
                        }
                        _setUpBindToBinding(t) {
                            const e = this._bindToCollection,
                                n = (n, o, i) => {
                                    const r = e._bindToCollection == this,
                                        s = e._bindToInternalToExternalMap.get(o);
                                    if (r && s) this._bindToExternalToInternalMap.set(o, s), this._bindToInternalToExternalMap.set(s, o);
                                    else {
                                        const n = t(o);
                                        if (!n) return void this._skippedIndexesFromExternal.push(i);
                                        let r = i;
                                        for (const t of this._skippedIndexesFromExternal) i > t && r--;
                                        for (const t of e._skippedIndexesFromExternal) r >= t && r++;
                                        this._bindToExternalToInternalMap.set(o, n), this._bindToInternalToExternalMap.set(n, o), this.add(n, r);
                                        for (let t = 0; t < e._skippedIndexesFromExternal.length; t++) r <= e._skippedIndexesFromExternal[t] && e._skippedIndexesFromExternal[t]++;
                                    }
                                };
                            for (const t of e) n(0, t, e.getIndex(t));
                            this.listenTo(e, "add", n),
                                this.listenTo(e, "remove", (t, e, n) => {
                                    const o = this._bindToExternalToInternalMap.get(e);
                                    o && this.remove(o), (this._skippedIndexesFromExternal = this._skippedIndexesFromExternal.reduce((t, e) => (n < e && t.push(e - 1), n > e && t.push(e), t), []));
                                });
                        }
                        _getItemIdBeforeAdding(t) {
                            const e = this._idProperty;
                            let n;
                            if (e in t) {
                                if (((n = t[e]), "string" != typeof n)) throw new c("collection-add-invalid-id", this);
                                if (this.get(n)) throw new c("collection-add-item-already-exists", this);
                            } else t[e] = n = r();
                            return n;
                        }
                        _remove(t) {
                            let e,
                                n,
                                o,
                                i = !1;
                            const r = this._idProperty;
                            if (
                                ("string" == typeof t
                                    ? ((n = t), (o = this._itemMap.get(n)), (i = !o), o && (e = this._items.indexOf(o)))
                                    : "number" == typeof t
                                    ? ((e = t), (o = this._items[e]), (i = !o), o && (n = o[r]))
                                    : ((o = t), (n = o[r]), (e = this._items.indexOf(o)), (i = -1 == e || !this._itemMap.get(n))),
                                i)
                            )
                                throw new c("collection-remove-404", this);
                            this._items.splice(e, 1), this._itemMap.delete(n);
                            const s = this._bindToInternalToExternalMap.get(o);
                            return this._bindToInternalToExternalMap.delete(o), this._bindToExternalToInternalMap.delete(s), this.fire("remove", o, e), [o, e];
                        }
                        [Symbol.iterator]() {
                            return this._items[Symbol.iterator]();
                        }
                    }
                    class bo {
                        constructor(t, e = [], n = []) {
                            (this._context = t), (this._plugins = new Map()), (this._availablePlugins = new Map());
                            for (const t of e) t.pluginName && this._availablePlugins.set(t.pluginName, t);
                            this._contextPlugins = new Map();
                            for (const [t, e] of n) this._contextPlugins.set(t, e), this._contextPlugins.set(e, t), t.pluginName && this._availablePlugins.set(t.pluginName, t);
                        }
                        *[Symbol.iterator]() {
                            for (const t of this._plugins) "function" == typeof t[0] && (yield t);
                        }
                        get(t) {
                            const e = this._plugins.get(t);
                            if (!e) {
                                let e = t;
                                throw ("function" == typeof t && (e = t.pluginName || t.name), new c("plugincollection-plugin-not-loaded", this._context, { plugin: e }));
                            }
                            return e;
                        }
                        has(t) {
                            return this._plugins.has(t);
                        }
                        init(t, e = [], n = []) {
                            const o = this,
                                i = this._context;
                            !(function t(e, n = new Set()) {
                                e.forEach((e) => {
                                    a(e) && (n.has(e) || (n.add(e), e.pluginName && !o._availablePlugins.has(e.pluginName) && o._availablePlugins.set(e.pluginName, e), e.requires && t(e.requires, n)));
                                });
                            })(t),
                                u(t);
                            const r = [
                                ...(function t(e, n = new Set()) {
                                    return e
                                        .map((t) => (a(t) ? t : o._availablePlugins.get(t)))
                                        .reduce((e, o) => (n.has(o) ? e : (n.add(o), o.requires && (u(o.requires, o), t(o.requires, n).forEach((t) => e.add(t))), e.add(o))), new Set());
                                })(t.filter((t) => !d(t, e))),
                            ];
                            !(function (t, e) {
                                for (const n of e) {
                                    if ("function" != typeof n) throw new c("plugincollection-replace-plugin-invalid-type", null, { pluginItem: n });
                                    const e = n.pluginName;
                                    if (!e) throw new c("plugincollection-replace-plugin-missing-name", null, { pluginItem: n });
                                    if (n.requires && n.requires.length) throw new c("plugincollection-plugin-for-replacing-cannot-have-dependencies", null, { pluginName: e });
                                    const i = o._availablePlugins.get(e);
                                    if (!i) throw new c("plugincollection-plugin-for-replacing-not-exist", null, { pluginName: e });
                                    const r = t.indexOf(i);
                                    if (-1 === r) {
                                        if (o._contextPlugins.has(i)) return;
                                        throw new c("plugincollection-plugin-for-replacing-not-loaded", null, { pluginName: e });
                                    }
                                    if (i.requires && i.requires.length) throw new c("plugincollection-replaced-plugin-cannot-have-dependencies", null, { pluginName: e });
                                    t.splice(r, 1, n), o._availablePlugins.set(e, n);
                                }
                            })(r, n);
                            const s = (function (t) {
                                return t.map((t) => {
                                    const e = o._contextPlugins.get(t) || new t(i);
                                    return o._add(t, e), e;
                                });
                            })(r);
                            return g(s, "init")
                                .then(() => g(s, "afterInit"))
                                .then(() => s);
                            function a(t) {
                                return "function" == typeof t;
                            }
                            function l(t) {
                                return a(t) && t.isContextPlugin;
                            }
                            function d(t, e) {
                                return e.some((e) => e === t || h(t) === e || h(e) === t);
                            }
                            function h(t) {
                                return a(t) ? t.pluginName || t.name : t;
                            }
                            function u(t, n = null) {
                                t.map((t) => (a(t) ? t : o._availablePlugins.get(t) || t)).forEach((t) => {
                                    !(function (t, e) {
                                        if (a(t)) return;
                                        if (e) throw new c("plugincollection-soft-required", i, { missingPlugin: t, requiredBy: h(e) });
                                        throw new c("plugincollection-plugin-not-found", i, { plugin: t });
                                    })(t, n),
                                        (function (t, e) {
                                            if (!l(e)) return;
                                            if (l(t)) return;
                                            throw new c("plugincollection-context-required", i, { plugin: h(t), requiredBy: h(e) });
                                        })(t, n),
                                        (function (t, n) {
                                            if (!n) return;
                                            if (!d(t, e)) return;
                                            throw new c("plugincollection-required", i, { plugin: h(t), requiredBy: h(n) });
                                        })(t, n);
                                });
                            }
                            function g(t, e) {
                                return t.reduce((t, n) => (n[e] ? (o._contextPlugins.has(n) ? t : t.then(n[e].bind(n))) : t), Promise.resolve());
                            }
                        }
                        destroy() {
                            const t = [];
                            for (const [, e] of this) "function" != typeof e.destroy || this._contextPlugins.has(e) || t.push(e.destroy());
                            return Promise.all(t);
                        }
                        _add(t, e) {
                            this._plugins.set(t, e);
                            const n = t.pluginName;
                            if (n) {
                                if (this._plugins.has(n)) throw new c("plugincollection-plugin-name-conflict", null, { pluginName: n, plugin1: this._plugins.get(n).constructor, plugin2: t });
                                this._plugins.set(n, e);
                            }
                        }
                    }
                    function wo(t) {
                        return Array.isArray(t) ? t : [t];
                    }
                    let _o;
                    F(bo, b);
                    try {
                        _o = { window, document };
                    } catch (t) {
                        _o = { window: {}, document: {} };
                    }
                    const Ao = _o;
                    function Co(t, e, n = 1) {
                        if ("number" != typeof n) throw new c("translation-service-quantity-not-a-number", null, { quantity: n });
                        const o = Object.keys(Ao.window.CKEDITOR_TRANSLATIONS).length;
                        1 === o && (t = Object.keys(Ao.window.CKEDITOR_TRANSLATIONS)[0]);
                        const i = e.id || e.string;
                        if (
                            0 === o ||
                            !(function (t, e) {
                                return !!Ao.window.CKEDITOR_TRANSLATIONS[t] && !!Ao.window.CKEDITOR_TRANSLATIONS[t].dictionary[e];
                            })(t, i)
                        )
                            return 1 !== n ? e.plural : e.string;
                        const r = Ao.window.CKEDITOR_TRANSLATIONS[t].dictionary,
                            s = Ao.window.CKEDITOR_TRANSLATIONS[t].getPluralForm || ((t) => (1 === t ? 0 : 1)),
                            a = r[i];
                        if ("string" == typeof a) return a;
                        return a[Number(s(n))];
                    }
                    Ao.window.CKEDITOR_TRANSLATIONS || (Ao.window.CKEDITOR_TRANSLATIONS = {});
                    const vo = ["ar", "ara", "fa", "per", "fas", "he", "heb", "ku", "kur", "ug", "uig"];
                    function yo(t) {
                        return vo.includes(t) ? "rtl" : "ltr";
                    }
                    class xo {
                        constructor(t = {}) {
                            (this.uiLanguage = t.uiLanguage || "en"),
                                (this.contentLanguage = t.contentLanguage || this.uiLanguage),
                                (this.uiLanguageDirection = yo(this.uiLanguage)),
                                (this.contentLanguageDirection = yo(this.contentLanguage)),
                                (this.t = (t, e) => this._t(t, e));
                        }
                        get language() {
                            return (
                                console.warn("locale-deprecated-language-property: The Locale#language property has been deprecated and will be removed in the near future. Please use #uiLanguage and #contentLanguage properties instead."),
                                this.uiLanguage
                            );
                        }
                        _t(t, e = []) {
                            (e = wo(e)), "string" == typeof t && (t = { string: t });
                            const n = !!t.plural ? e[0] : 1;
                            return (function (t, e) {
                                return t.replace(/%(\d+)/g, (t, n) => (n < e.length ? e[n] : t));
                            })(Co(this.uiLanguage, t, n), e);
                        }
                    }
                    class Eo {
                        constructor(t) {
                            this.config = new go(t, this.constructor.defaultConfig);
                            const e = this.constructor.builtinPlugins;
                            this.config.define("plugins", e), (this.plugins = new bo(this, e));
                            const n = this.config.get("language") || {};
                            (this.locale = new xo({ uiLanguage: "string" == typeof n ? n : n.ui, contentLanguage: this.config.get("language.content") })), (this.t = this.locale.t), (this.editors = new ko()), (this._contextOwner = null);
                        }
                        initPlugins() {
                            const t = this.config.get("plugins") || [],
                                e = this.config.get("substitutePlugins") || [];
                            for (const n of t.concat(e)) {
                                if ("function" != typeof n) throw new c("context-initplugins-constructor-only", null, { Plugin: n });
                                if (!0 !== n.isContextPlugin) throw new c("context-initplugins-invalid-plugin", null, { Plugin: n });
                            }
                            return this.plugins.init(t, [], e);
                        }
                        destroy() {
                            return Promise.all(Array.from(this.editors, (t) => t.destroy())).then(() => this.plugins.destroy());
                        }
                        _addEditor(t, e) {
                            if (this._contextOwner) throw new c("context-addeditor-private-context");
                            this.editors.add(t), e && (this._contextOwner = t);
                        }
                        _removeEditor(t) {
                            return this.editors.has(t) && this.editors.remove(t), this._contextOwner === t ? this.destroy() : Promise.resolve();
                        }
                        _getEditorConfig() {
                            const t = {};
                            for (const e of this.config.names()) ["plugins", "removePlugins", "extraPlugins"].includes(e) || (t[e] = this.config.get(e));
                            return t;
                        }
                        static create(t) {
                            return new Promise((e) => {
                                const n = new this(t);
                                e(n.initPlugins().then(() => n));
                            });
                        }
                    }
                    class Do {
                        constructor(t) {
                            this.context = t;
                        }
                        destroy() {
                            this.stopListening();
                        }
                        static get isContextPlugin() {
                            return !0;
                        }
                    }
                    F(Do, B);
                    class Io {
                        is() {
                            throw new Error("is() method is abstract");
                        }
                    }
                    function Mo(t, e) {
                        const n = Math.min(t.length, e.length);
                        for (let o = 0; o < n; o++) if (t[o] != e[o]) return o;
                        return t.length == e.length ? "same" : t.length < e.length ? "prefix" : "extension";
                    }
                    const To = function (t) {
                        return lo(t, 4);
                    };
                    class So extends b(Io) {
                        constructor(t) {
                            super(), (this.document = t), (this.parent = null);
                        }
                        get index() {
                            let t;
                            if (!this.parent) return null;
                            if (-1 == (t = this.parent.getChildIndex(this))) throw new c("view-node-not-found-in-parent", this);
                            return t;
                        }
                        get nextSibling() {
                            const t = this.index;
                            return (null !== t && this.parent.getChild(t + 1)) || null;
                        }
                        get previousSibling() {
                            const t = this.index;
                            return (null !== t && this.parent.getChild(t - 1)) || null;
                        }
                        get root() {
                            let t = this;
                            for (; t.parent; ) t = t.parent;
                            return t;
                        }
                        isAttached() {
                            return this.root.is("rootElement");
                        }
                        getPath() {
                            const t = [];
                            let e = this;
                            for (; e.parent; ) t.unshift(e.index), (e = e.parent);
                            return t;
                        }
                        getAncestors(t = {}) {
                            const e = [];
                            let n = t.includeSelf ? this : this.parent;
                            for (; n; ) e[t.parentFirst ? "push" : "unshift"](n), (n = n.parent);
                            return e;
                        }
                        getCommonAncestor(t, e = {}) {
                            const n = this.getAncestors(e),
                                o = t.getAncestors(e);
                            let i = 0;
                            for (; n[i] == o[i] && n[i]; ) i++;
                            return 0 === i ? null : n[i - 1];
                        }
                        isBefore(t) {
                            if (this == t) return !1;
                            if (this.root !== t.root) return !1;
                            const e = this.getPath(),
                                n = t.getPath(),
                                o = Mo(e, n);
                            switch (o) {
                                case "prefix":
                                    return !0;
                                case "extension":
                                    return !1;
                                default:
                                    return e[o] < n[o];
                            }
                        }
                        isAfter(t) {
                            return this != t && this.root === t.root && !this.isBefore(t);
                        }
                        _remove() {
                            this.parent._removeChildren(this.index);
                        }
                        _fireChange(t, e) {
                            this.fire(`change:${t}`, e), this.parent && this.parent._fireChange(t, e);
                        }
                        toJSON() {
                            const t = To(this);
                            return delete t.parent, t;
                        }
                    }
                    So.prototype.is = function (t) {
                        return "node" === t || "view:node" === t;
                    };
                    class No extends So {
                        constructor(t, e) {
                            super(t), (this._textData = e);
                        }
                        get data() {
                            return this._textData;
                        }
                        get _data() {
                            return this.data;
                        }
                        set _data(t) {
                            this._fireChange("text", this), (this._textData = t);
                        }
                        isSimilar(t) {
                            return t instanceof No && (this === t || this.data === t.data);
                        }
                        _clone() {
                            return new No(this.document, this.data);
                        }
                    }
                    No.prototype.is = function (t) {
                        return "$text" === t || "view:$text" === t || "text" === t || "view:text" === t || "node" === t || "view:node" === t;
                    };
                    class Bo extends Io {
                        constructor(t, e, n) {
                            if ((super(), (this.textNode = t), e < 0 || e > t.data.length)) throw new c("view-textproxy-wrong-offsetintext", this);
                            if (n < 0 || e + n > t.data.length) throw new c("view-textproxy-wrong-length", this);
                            (this.data = t.data.substring(e, e + n)), (this.offsetInText = e);
                        }
                        get offsetSize() {
                            return this.data.length;
                        }
                        get isPartial() {
                            return this.data.length !== this.textNode.data.length;
                        }
                        get parent() {
                            return this.textNode.parent;
                        }
                        get root() {
                            return this.textNode.root;
                        }
                        get document() {
                            return this.textNode.document;
                        }
                        getAncestors(t = {}) {
                            const e = [];
                            let n = t.includeSelf ? this.textNode : this.parent;
                            for (; null !== n; ) e[t.parentFirst ? "push" : "unshift"](n), (n = n.parent);
                            return e;
                        }
                    }
                    function Po(t) {
                        return fo(t)
                            ? new Map(t)
                            : (function (t) {
                                  const e = new Map();
                                  for (const n in t) e.set(n, t[n]);
                                  return e;
                              })(t);
                    }
                    Bo.prototype.is = function (t) {
                        return "$textProxy" === t || "view:$textProxy" === t || "textProxy" === t || "view:textProxy" === t;
                    };
                    class zo {
                        constructor(...t) {
                            (this._patterns = []), this.add(...t);
                        }
                        add(...t) {
                            for (let e of t) ("string" == typeof e || e instanceof RegExp) && (e = { name: e }), this._patterns.push(e);
                        }
                        match(...t) {
                            for (const e of t)
                                for (const t of this._patterns) {
                                    const n = Lo(e, t);
                                    if (n) return { element: e, pattern: t, match: n };
                                }
                            return null;
                        }
                        matchAll(...t) {
                            const e = [];
                            for (const n of t)
                                for (const t of this._patterns) {
                                    const o = Lo(n, t);
                                    o && e.push({ element: n, pattern: t, match: o });
                                }
                            return e.length > 0 ? e : null;
                        }
                        getElementName() {
                            if (1 !== this._patterns.length) return null;
                            const t = this._patterns[0],
                                e = t.name;
                            return "function" == typeof t || !e || e instanceof RegExp ? null : e;
                        }
                    }
                    function Lo(t, e) {
                        if ("function" == typeof e) return e(t);
                        const n = {};
                        return (e.name &&
                            ((n.name = (function (t, e) {
                                if (t instanceof RegExp) return !!e.match(t);
                                return t === e;
                            })(e.name, t.name)),
                            !n.name)) ||
                            (e.attributes &&
                                ((n.attributes = (function (t, e) {
                                    const n = new Set(e.getAttributeKeys());
                                    gt(t)
                                        ? (void 0 !== t.style && l("matcher-pattern-deprecated-attributes-style-key", t), void 0 !== t.class && l("matcher-pattern-deprecated-attributes-class-key", t))
                                        : (n.delete("style"), n.delete("class"));
                                    return Oo(t, n, (t) => e.getAttribute(t));
                                })(e.attributes, t)),
                                !n.attributes)) ||
                            (e.classes &&
                                ((n.classes = (function (t, e) {
                                    return Oo(t, e.getClassNames(), () => {});
                                })(e.classes, t)),
                                !n.classes)) ||
                            (e.styles &&
                                ((n.styles = (function (t, e) {
                                    return Oo(t, e.getStyleNames(!0), (t) => e.getStyle(t));
                                })(e.styles, t)),
                                !n.styles))
                            ? null
                            : n;
                    }
                    function Oo(t, e, n) {
                        const o = (function (t) {
                                if (Array.isArray(t)) return t.map((t) => (gt(t) ? ((void 0 !== t.key && void 0 !== t.value) || l("matcher-pattern-missing-key-or-value", t), [t.key, t.value]) : [t, !0]));
                                if (gt(t)) return Object.entries(t);
                                return [[t, !0]];
                            })(t),
                            i = Array.from(e),
                            r = [];
                        if (
                            (o.forEach(([t, e]) => {
                                i.forEach((o) => {
                                    (function (t, e) {
                                        return !0 === t || t === e || (t instanceof RegExp && e.match(t));
                                    })(t, o) &&
                                        (function (t, e, n) {
                                            if (!0 === t) return !0;
                                            const o = n(e);
                                            return t === o || (t instanceof RegExp && !!String(o).match(t));
                                        })(e, o, n) &&
                                        r.push(o);
                                });
                            }),
                            o.length && !(r.length < o.length))
                        )
                            return r;
                    }
                    const Ro = function (t) {
                        return "symbol" == typeof t || (at(t) && "[object Symbol]" == it(t));
                    };
                    var jo = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
                        Fo = /^\w*$/;
                    const Vo = function (t, e) {
                        if (ye(t)) return !1;
                        var n = typeof t;
                        return !("number" != n && "symbol" != n && "boolean" != n && null != t && !Ro(t)) || Fo.test(t) || !jo.test(t) || (null != e && t in Object(e));
                    };
                    function Ho(t, e) {
                        if ("function" != typeof t || (null != e && "function" != typeof e)) throw new TypeError("Expected a function");
                        var n = function () {
                            var o = arguments,
                                i = e ? e.apply(this, o) : o[0],
                                r = n.cache;
                            if (r.has(i)) return r.get(i);
                            var s = t.apply(this, o);
                            return (n.cache = r.set(i, s) || r), s;
                        };
                        return (n.cache = new (Ho.Cache || ce)()), n;
                    }
                    Ho.Cache = ce;
                    const Uo = Ho;
                    var Wo = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,
                        qo = /\\(\\)?/g,
                        Go = (function (t) {
                            var e = Uo(t, function (t) {
                                    return 500 === n.size && n.clear(), t;
                                }),
                                n = e.cache;
                            return e;
                        })(function (t) {
                            var e = [];
                            return (
                                46 === t.charCodeAt(0) && e.push(""),
                                t.replace(Wo, function (t, n, o, i) {
                                    e.push(o ? i.replace(qo, "$1") : n || t);
                                }),
                                e
                            );
                        });
                    const $o = Go;
                    const Yo = function (t, e) {
                        for (var n = -1, o = null == t ? 0 : t.length, i = Array(o); ++n < o; ) i[n] = e(t[n], n, t);
                        return i;
                    };
                    var Ko = K ? K.prototype : void 0,
                        Qo = Ko ? Ko.toString : void 0;
                    const Zo = function t(e) {
                        if ("string" == typeof e) return e;
                        if (ye(e)) return Yo(e, t) + "";
                        if (Ro(e)) return Qo ? Qo.call(e) : "";
                        var n = e + "";
                        return "0" == n && 1 / e == -Infinity ? "-0" : n;
                    };
                    const Jo = function (t) {
                        return null == t ? "" : Zo(t);
                    };
                    const Xo = function (t, e) {
                        return ye(t) ? t : Vo(t, e) ? [t] : $o(Jo(t));
                    };
                    const ti = function (t) {
                        var e = null == t ? 0 : t.length;
                        return e ? t[e - 1] : void 0;
                    };
                    const ei = function (t) {
                        if ("string" == typeof t || Ro(t)) return t;
                        var e = t + "";
                        return "0" == e && 1 / t == -Infinity ? "-0" : e;
                    };
                    const ni = function (t, e) {
                        for (var n = 0, o = (e = Xo(e, t)).length; null != t && n < o; ) t = t[ei(e[n++])];
                        return n && n == o ? t : void 0;
                    };
                    const oi = function (t, e, n) {
                        var o = -1,
                            i = t.length;
                        e < 0 && (e = -e > i ? 0 : i + e), (n = n > i ? i : n) < 0 && (n += i), (i = e > n ? 0 : (n - e) >>> 0), (e >>>= 0);
                        for (var r = Array(i); ++o < i; ) r[o] = t[o + e];
                        return r;
                    };
                    const ii = function (t, e) {
                        return e.length < 2 ? t : ni(t, oi(e, 0, -1));
                    };
                    const ri = function (t, e) {
                        return (e = Xo(e, t)), null == (t = ii(t, e)) || delete t[ei(ti(e))];
                    };
                    const si = function (t, e) {
                        return null == t || ri(t, e);
                    };
                    const ai = function (t, e, n) {
                        var o = null == t ? void 0 : ni(t, e);
                        return void 0 === o ? n : o;
                    };
                    const ci = function (t, e, n) {
                        ((void 0 !== n && !pt(t[e], n)) || (void 0 === n && !(e in t))) && me(t, e, n);
                    };
                    const li = (function (t) {
                        return function (e, n, o) {
                            for (var i = -1, r = Object(e), s = o(e), a = s.length; a--; ) {
                                var c = s[t ? a : ++i];
                                if (!1 === n(r[c], c, r)) break;
                            }
                            return e;
                        };
                    })();
                    const di = function (t) {
                        return at(t) && Ke(t);
                    };
                    const hi = function (t, e) {
                        if (("constructor" !== e || "function" != typeof t[e]) && "__proto__" != e) return t[e];
                    };
                    const ui = function (t) {
                        return ke(t, en(t));
                    };
                    const gi = function (t, e, n, o, i, r, s) {
                        var a = hi(t, n),
                            c = hi(e, n),
                            l = s.get(c);
                        if (l) ci(t, n, l);
                        else {
                            var d = r ? r(a, c, n + "", t, e, s) : void 0,
                                h = void 0 === d;
                            if (h) {
                                var u = ye(c),
                                    g = !u && Me(c),
                                    m = !u && !g && Ve(c);
                                (d = c),
                                    u || g || m
                                        ? ye(a)
                                            ? (d = a)
                                            : di(a)
                                            ? (d = ln(a))
                                            : g
                                            ? ((h = !1), (d = cn(c, !0)))
                                            : m
                                            ? ((h = !1), (d = Yn(c, !0)))
                                            : (d = [])
                                        : gt(c) || ve(c)
                                        ? ((d = a), ve(a) ? (d = ui(a)) : (D(a) && !It(a)) || (d = Jn(c)))
                                        : (h = !1);
                            }
                            h && (s.set(c, d), i(d, c, o, r, s), s.delete(c)), ci(t, n, d);
                        }
                    };
                    const mi = function t(e, n, o, i, r) {
                        e !== n &&
                            li(
                                n,
                                function (s, a) {
                                    if ((r || (r = new he()), D(s))) gi(e, n, a, o, t, i, r);
                                    else {
                                        var c = i ? i(hi(e, a), s, a + "", e, n, r) : void 0;
                                        void 0 === c && (c = s), ci(e, a, c);
                                    }
                                },
                                en
                            );
                    };
                    const pi = function (t) {
                        return t;
                    };
                    const fi = function (t, e, n) {
                        switch (n.length) {
                            case 0:
                                return t.call(e);
                            case 1:
                                return t.call(e, n[0]);
                            case 2:
                                return t.call(e, n[0], n[1]);
                            case 3:
                                return t.call(e, n[0], n[1], n[2]);
                        }
                        return t.apply(e, n);
                    };
                    var ki = Math.max;
                    const bi = function (t, e, n) {
                        return (
                            (e = ki(void 0 === e ? t.length - 1 : e, 0)),
                            function () {
                                for (var o = arguments, i = -1, r = ki(o.length - e, 0), s = Array(r); ++i < r; ) s[i] = o[e + i];
                                i = -1;
                                for (var a = Array(e + 1); ++i < e; ) a[i] = o[i];
                                return (a[e] = n(s)), fi(t, this, a);
                            }
                        );
                    };
                    const wi = function (t) {
                        return function () {
                            return t;
                        };
                    };
                    const _i = ge
                        ? function (t, e) {
                              return ge(t, "toString", { configurable: !0, enumerable: !1, value: wi(e), writable: !0 });
                          }
                        : pi;
                    var Ai = Date.now;
                    const Ci = function (t) {
                        var e = 0,
                            n = 0;
                        return function () {
                            var o = Ai(),
                                i = 16 - (o - n);
                            if (((n = o), i > 0)) {
                                if (++e >= 800) return arguments[0];
                            } else e = 0;
                            return t.apply(void 0, arguments);
                        };
                    };
                    const vi = Ci(_i);
                    const yi = function (t, e) {
                        return vi(bi(t, e, pi), t + "");
                    };
                    const xi = function (t, e, n) {
                        if (!D(n)) return !1;
                        var o = typeof e;
                        return !!("number" == o ? Ke(n) && Se(e, n.length) : "string" == o && e in n) && pt(n[e], t);
                    };
                    const Ei = function (t) {
                        return yi(function (e, n) {
                            var o = -1,
                                i = n.length,
                                r = i > 1 ? n[i - 1] : void 0,
                                s = i > 2 ? n[2] : void 0;
                            for (r = t.length > 3 && "function" == typeof r ? (i--, r) : void 0, s && xi(n[0], n[1], s) && ((r = i < 3 ? void 0 : r), (i = 1)), e = Object(e); ++o < i; ) {
                                var a = n[o];
                                a && t(e, a, o, r);
                            }
                            return e;
                        });
                    };
                    const Di = Ei(function (t, e, n) {
                        mi(t, e, n);
                    });
                    const Ii = function (t, e, n, o) {
                        if (!D(t)) return t;
                        for (var i = -1, r = (e = Xo(e, t)).length, s = r - 1, a = t; null != a && ++i < r; ) {
                            var c = ei(e[i]),
                                l = n;
                            if ("__proto__" === c || "constructor" === c || "prototype" === c) return t;
                            if (i != s) {
                                var d = a[c];
                                void 0 === (l = o ? o(d, c, a) : void 0) && (l = D(d) ? d : Se(e[i + 1]) ? [] : {});
                            }
                            fe(a, c, l), (a = a[c]);
                        }
                        return t;
                    };
                    const Mi = function (t, e, n) {
                        return null == t ? t : Ii(t, e, n);
                    };
                    class Ti {
                        constructor(t) {
                            (this._styles = {}), (this._styleProcessor = t);
                        }
                        get isEmpty() {
                            const t = Object.entries(this._styles);
                            return !Array.from(t).length;
                        }
                        get size() {
                            return this.isEmpty ? 0 : this.getStyleNames().length;
                        }
                        setTo(t) {
                            this.clear();
                            const e = Array.from(
                                (function (t) {
                                    let e = null,
                                        n = 0,
                                        o = 0,
                                        i = null;
                                    const r = new Map();
                                    if ("" === t) return r;
                                    ";" != t.charAt(t.length - 1) && (t += ";");
                                    for (let s = 0; s < t.length; s++) {
                                        const a = t.charAt(s);
                                        if (null === e)
                                            switch (a) {
                                                case ":":
                                                    i || ((i = t.substr(n, s - n)), (o = s + 1));
                                                    break;
                                                case '"':
                                                case "'":
                                                    e = a;
                                                    break;
                                                case ";": {
                                                    const e = t.substr(o, s - o);
                                                    i && r.set(i.trim(), e.trim()), (i = null), (n = s + 1);
                                                    break;
                                                }
                                            }
                                        else a === e && (e = null);
                                    }
                                    return r;
                                })(t).entries()
                            );
                            for (const [t, n] of e) this._styleProcessor.toNormalizedForm(t, n, this._styles);
                        }
                        has(t) {
                            if (this.isEmpty) return !1;
                            const e = this._styleProcessor.getReducedForm(t, this._styles).find(([e]) => e === t);
                            return Array.isArray(e);
                        }
                        set(t, e) {
                            if (D(t)) for (const [e, n] of Object.entries(t)) this._styleProcessor.toNormalizedForm(e, n, this._styles);
                            else this._styleProcessor.toNormalizedForm(t, e, this._styles);
                        }
                        remove(t) {
                            const e = Ni(t);
                            si(this._styles, e), delete this._styles[t], this._cleanEmptyObjectsOnPath(e);
                        }
                        getNormalized(t) {
                            return this._styleProcessor.getNormalized(t, this._styles);
                        }
                        toString() {
                            return this.isEmpty
                                ? ""
                                : this._getStylesEntries()
                                      .map((t) => t.join(":"))
                                      .sort()
                                      .join(";") + ";";
                        }
                        getAsString(t) {
                            if (this.isEmpty) return;
                            if (this._styles[t] && !D(this._styles[t])) return this._styles[t];
                            const e = this._styleProcessor.getReducedForm(t, this._styles).find(([e]) => e === t);
                            return Array.isArray(e) ? e[1] : void 0;
                        }
                        getStyleNames(t = !1) {
                            if (this.isEmpty) return [];
                            if (t) return this._styleProcessor.getStyleNames(this._styles);
                            return this._getStylesEntries().map(([t]) => t);
                        }
                        clear() {
                            this._styles = {};
                        }
                        _getStylesEntries() {
                            const t = [],
                                e = Object.keys(this._styles);
                            for (const n of e) t.push(...this._styleProcessor.getReducedForm(n, this._styles));
                            return t;
                        }
                        _cleanEmptyObjectsOnPath(t) {
                            const e = t.split(".");
                            if (!(e.length > 1)) return;
                            const n = e.splice(0, e.length - 1).join("."),
                                o = ai(this._styles, n);
                            if (!o) return;
                            !Array.from(Object.keys(o)).length && this.remove(n);
                        }
                    }
                    class Si {
                        constructor() {
                            (this._normalizers = new Map()), (this._extractors = new Map()), (this._reducers = new Map()), (this._consumables = new Map());
                        }
                        toNormalizedForm(t, e, n) {
                            if (D(e)) Bi(n, Ni(t), e);
                            else if (this._normalizers.has(t)) {
                                const o = this._normalizers.get(t),
                                    { path: i, value: r } = o(e);
                                Bi(n, i, r);
                            } else Bi(n, t, e);
                        }
                        getNormalized(t, e) {
                            if (!t) return Di({}, e);
                            if (void 0 !== e[t]) return e[t];
                            if (this._extractors.has(t)) {
                                const n = this._extractors.get(t);
                                if ("string" == typeof n) return ai(e, n);
                                const o = n(t, e);
                                if (o) return o;
                            }
                            return ai(e, Ni(t));
                        }
                        getReducedForm(t, e) {
                            const n = this.getNormalized(t, e);
                            if (void 0 === n) return [];
                            if (this._reducers.has(t)) {
                                return this._reducers.get(t)(n);
                            }
                            return [[t, n]];
                        }
                        getStyleNames(t) {
                            const e = Array.from(this._consumables.keys()).filter((e) => {
                                    const n = this.getNormalized(e, t);
                                    return n && "object" == typeof n ? Object.keys(n).length : n;
                                }),
                                n = new Set([...e, ...Object.keys(t)]);
                            return Array.from(n.values());
                        }
                        getRelatedStyles(t) {
                            return this._consumables.get(t) || [];
                        }
                        setNormalizer(t, e) {
                            this._normalizers.set(t, e);
                        }
                        setExtractor(t, e) {
                            this._extractors.set(t, e);
                        }
                        setReducer(t, e) {
                            this._reducers.set(t, e);
                        }
                        setStyleRelation(t, e) {
                            this._mapStyleNames(t, e);
                            for (const n of e) this._mapStyleNames(n, [t]);
                        }
                        _mapStyleNames(t, e) {
                            this._consumables.has(t) || this._consumables.set(t, []), this._consumables.get(t).push(...e);
                        }
                    }
                    function Ni(t) {
                        return t.replace("-", ".");
                    }
                    function Bi(t, e, n) {
                        let o = n;
                        D(n) && (o = Di({}, ai(t, e), n)), Mi(t, e, o);
                    }
                    class Pi extends So {
                        constructor(t, e, n, o) {
                            if (
                                (super(t),
                                (this.name = e),
                                (this._attrs = (function (t) {
                                    const e = Po(t);
                                    for (const [t, n] of e) null === n ? e.delete(t) : "string" != typeof n && e.set(t, String(n));
                                    return e;
                                })(n)),
                                (this._children = []),
                                o && this._insertChild(0, o),
                                (this._classes = new Set()),
                                this._attrs.has("class"))
                            ) {
                                const t = this._attrs.get("class");
                                zi(this._classes, t), this._attrs.delete("class");
                            }
                            (this._styles = new Ti(this.document.stylesProcessor)),
                                this._attrs.has("style") && (this._styles.setTo(this._attrs.get("style")), this._attrs.delete("style")),
                                (this._customProperties = new Map()),
                                (this._unsafeAttributesToRender = []);
                        }
                        get childCount() {
                            return this._children.length;
                        }
                        get isEmpty() {
                            return 0 === this._children.length;
                        }
                        getChild(t) {
                            return this._children[t];
                        }
                        getChildIndex(t) {
                            return this._children.indexOf(t);
                        }
                        getChildren() {
                            return this._children[Symbol.iterator]();
                        }
                        *getAttributeKeys() {
                            this._classes.size > 0 && (yield "class"), this._styles.isEmpty || (yield "style"), yield* this._attrs.keys();
                        }
                        *getAttributes() {
                            yield* this._attrs.entries(), this._classes.size > 0 && (yield ["class", this.getAttribute("class")]), this._styles.isEmpty || (yield ["style", this.getAttribute("style")]);
                        }
                        getAttribute(t) {
                            if ("class" == t) return this._classes.size > 0 ? [...this._classes].join(" ") : void 0;
                            if ("style" == t) {
                                const t = this._styles.toString();
                                return "" == t ? void 0 : t;
                            }
                            return this._attrs.get(t);
                        }
                        hasAttribute(t) {
                            return "class" == t ? this._classes.size > 0 : "style" == t ? !this._styles.isEmpty : this._attrs.has(t);
                        }
                        isSimilar(t) {
                            if (!(t instanceof Pi)) return !1;
                            if (this === t) return !0;
                            if (this.name != t.name) return !1;
                            if (this._attrs.size !== t._attrs.size || this._classes.size !== t._classes.size || this._styles.size !== t._styles.size) return !1;
                            for (const [e, n] of this._attrs) if (!t._attrs.has(e) || t._attrs.get(e) !== n) return !1;
                            for (const e of this._classes) if (!t._classes.has(e)) return !1;
                            for (const e of this._styles.getStyleNames()) if (!t._styles.has(e) || t._styles.getAsString(e) !== this._styles.getAsString(e)) return !1;
                            return !0;
                        }
                        hasClass(...t) {
                            for (const e of t) if (!this._classes.has(e)) return !1;
                            return !0;
                        }
                        getClassNames() {
                            return this._classes.keys();
                        }
                        getStyle(t) {
                            return this._styles.getAsString(t);
                        }
                        getNormalizedStyle(t) {
                            return this._styles.getNormalized(t);
                        }
                        getStyleNames(t) {
                            return this._styles.getStyleNames(t);
                        }
                        hasStyle(...t) {
                            for (const e of t) if (!this._styles.has(e)) return !1;
                            return !0;
                        }
                        findAncestor(...t) {
                            const e = new zo(...t);
                            let n = this.parent;
                            for (; n && !n.is("documentFragment"); ) {
                                if (e.match(n)) return n;
                                n = n.parent;
                            }
                            return null;
                        }
                        getCustomProperty(t) {
                            return this._customProperties.get(t);
                        }
                        *getCustomProperties() {
                            yield* this._customProperties.entries();
                        }
                        getIdentity() {
                            const t = Array.from(this._classes).sort().join(","),
                                e = this._styles.toString(),
                                n = Array.from(this._attrs)
                                    .map((t) => `${t[0]}="${t[1]}"`)
                                    .sort()
                                    .join(" ");
                            return this.name + ("" == t ? "" : ` class="${t}"`) + (e ? ` style="${e}"` : "") + ("" == n ? "" : ` ${n}`);
                        }
                        shouldRenderUnsafeAttribute(t) {
                            return this._unsafeAttributesToRender.includes(t);
                        }
                        _clone(t = !1) {
                            const e = [];
                            if (t) for (const n of this.getChildren()) e.push(n._clone(t));
                            const n = new this.constructor(this.document, this.name, this._attrs, e);
                            return (
                                (n._classes = new Set(this._classes)),
                                n._styles.set(this._styles.getNormalized()),
                                (n._customProperties = new Map(this._customProperties)),
                                (n.getFillerOffset = this.getFillerOffset),
                                (n._unsafeAttributesToRender = this._unsafeAttributesToRender),
                                n
                            );
                        }
                        _appendChild(t) {
                            return this._insertChild(this.childCount, t);
                        }
                        _insertChild(t, e) {
                            this._fireChange("children", this);
                            let n = 0;
                            const o = (function (t, e) {
                                if ("string" == typeof e) return [new No(t, e)];
                                fo(e) || (e = [e]);
                                return Array.from(e).map((e) => ("string" == typeof e ? new No(t, e) : e instanceof Bo ? new No(t, e.data) : e));
                            })(this.document, e);
                            for (const e of o) null !== e.parent && e._remove(), (e.parent = this), (e.document = this.document), this._children.splice(t, 0, e), t++, n++;
                            return n;
                        }
                        _removeChildren(t, e = 1) {
                            this._fireChange("children", this);
                            for (let n = t; n < t + e; n++) this._children[n].parent = null;
                            return this._children.splice(t, e);
                        }
                        _setAttribute(t, e) {
                            (e = String(e)), this._fireChange("attributes", this), "class" == t ? zi(this._classes, e) : "style" == t ? this._styles.setTo(e) : this._attrs.set(t, e);
                        }
                        _removeAttribute(t) {
                            return this._fireChange("attributes", this), "class" == t ? this._classes.size > 0 && (this._classes.clear(), !0) : "style" == t ? !this._styles.isEmpty && (this._styles.clear(), !0) : this._attrs.delete(t);
                        }
                        _addClass(t) {
                            this._fireChange("attributes", this);
                            for (const e of wo(t)) this._classes.add(e);
                        }
                        _removeClass(t) {
                            this._fireChange("attributes", this);
                            for (const e of wo(t)) this._classes.delete(e);
                        }
                        _setStyle(t, e) {
                            this._fireChange("attributes", this), gt(t) ? this._styles.set(t) : this._styles.set(t, e);
                        }
                        _removeStyle(t) {
                            this._fireChange("attributes", this);
                            for (const e of wo(t)) this._styles.remove(e);
                        }
                        _setCustomProperty(t, e) {
                            this._customProperties.set(t, e);
                        }
                        _removeCustomProperty(t) {
                            return this._customProperties.delete(t);
                        }
                    }
                    function zi(t, e) {
                        const n = e.split(/\s+/);
                        t.clear(), n.forEach((e) => t.add(e));
                    }
                    Pi.prototype.is = function (t, e) {
                        return e ? e === this.name && ("element" === t || "view:element" === t) : "element" === t || "view:element" === t || "node" === t || "view:node" === t;
                    };
                    class Li extends Pi {
                        constructor(...t) {
                            super(...t), (this.getFillerOffset = Oi);
                        }
                    }
                    function Oi() {
                        const t = [...this.getChildren()],
                            e = t[this.childCount - 1];
                        if (e && e.is("element", "br")) return this.childCount;
                        for (const e of t) if (!e.is("uiElement")) return null;
                        return this.childCount;
                    }
                    Li.prototype.is = function (t, e) {
                        return e
                            ? e === this.name && ("containerElement" === t || "view:containerElement" === t || "element" === t || "view:element" === t)
                            : "containerElement" === t || "view:containerElement" === t || "element" === t || "view:element" === t || "node" === t || "view:node" === t;
                    };
                    class Ri extends B(Li) {
                        constructor(...t) {
                            super(...t);
                            const e = t[0];
                            this.set("isReadOnly", !1),
                                this.set("isFocused", !1),
                                this.bind("isReadOnly").to(e),
                                this.bind("isFocused").to(e, "isFocused", (t) => t && e.selection.editableElement == this),
                                this.listenTo(e.selection, "change", () => {
                                    this.isFocused = e.isFocused && e.selection.editableElement == this;
                                });
                        }
                        destroy() {
                            this.stopListening();
                        }
                    }
                    Ri.prototype.is = function (t, e) {
                        return e
                            ? e === this.name && ("editableElement" === t || "view:editableElement" === t || "containerElement" === t || "view:containerElement" === t || "element" === t || "view:element" === t)
                            : "editableElement" === t || "view:editableElement" === t || "containerElement" === t || "view:containerElement" === t || "element" === t || "view:element" === t || "node" === t || "view:node" === t;
                    };
                    const ji = Symbol("rootName");
                    class Fi extends Ri {
                        constructor(t, e) {
                            super(t, e), (this.rootName = "main");
                        }
                        get rootName() {
                            return this.getCustomProperty(ji);
                        }
                        set rootName(t) {
                            this._setCustomProperty(ji, t);
                        }
                        set _name(t) {
                            this.name = t;
                        }
                    }
                    Fi.prototype.is = function (t, e) {
                        return e
                            ? e === this.name &&
                                  ("rootElement" === t ||
                                      "view:rootElement" === t ||
                                      "editableElement" === t ||
                                      "view:editableElement" === t ||
                                      "containerElement" === t ||
                                      "view:containerElement" === t ||
                                      "element" === t ||
                                      "view:element" === t)
                            : "rootElement" === t ||
                                  "view:rootElement" === t ||
                                  "editableElement" === t ||
                                  "view:editableElement" === t ||
                                  "containerElement" === t ||
                                  "view:containerElement" === t ||
                                  "element" === t ||
                                  "view:element" === t ||
                                  "node" === t ||
                                  "view:node" === t;
                    };
                    class Vi {
                        constructor(t = {}) {
                            if (!t.boundaries && !t.startPosition) throw new c("view-tree-walker-no-start-position", null);
                            if (t.direction && "forward" != t.direction && "backward" != t.direction) throw new c("view-tree-walker-unknown-direction", t.startPosition, { direction: t.direction });
                            (this.boundaries = t.boundaries || null),
                                t.startPosition ? (this.position = Hi._createAt(t.startPosition)) : (this.position = Hi._createAt(t.boundaries["backward" == t.direction ? "end" : "start"])),
                                (this.direction = t.direction || "forward"),
                                (this.singleCharacters = !!t.singleCharacters),
                                (this.shallow = !!t.shallow),
                                (this.ignoreElementEnd = !!t.ignoreElementEnd),
                                (this._boundaryStartParent = this.boundaries ? this.boundaries.start.parent : null),
                                (this._boundaryEndParent = this.boundaries ? this.boundaries.end.parent : null);
                        }
                        [Symbol.iterator]() {
                            return this;
                        }
                        skip(t) {
                            let e, n, o;
                            do {
                                (o = this.position), ({ done: e, value: n } = this.next());
                            } while (!e && t(n));
                            e || (this.position = o);
                        }
                        next() {
                            return "forward" == this.direction ? this._next() : this._previous();
                        }
                        _next() {
                            let t = this.position.clone();
                            const e = this.position,
                                n = t.parent;
                            if (null === n.parent && t.offset === n.childCount) return { done: !0, value: void 0 };
                            if (n === this._boundaryEndParent && t.offset == this.boundaries.end.offset) return { done: !0, value: void 0 };
                            let o;
                            if (n instanceof No) {
                                if (t.isAtEnd) return (this.position = Hi._createAfter(n)), this._next();
                                o = n.data[t.offset];
                            } else o = n.getChild(t.offset);
                            if (o instanceof Pi) return this.shallow ? t.offset++ : (t = new Hi(o, 0)), (this.position = t), this._formatReturnValue("elementStart", o, e, t, 1);
                            if (o instanceof No) {
                                if (this.singleCharacters) return (t = new Hi(o, 0)), (this.position = t), this._next();
                                {
                                    let n,
                                        i = o.data.length;
                                    return (
                                        o == this._boundaryEndParent ? ((i = this.boundaries.end.offset), (n = new Bo(o, 0, i)), (t = Hi._createAfter(n))) : ((n = new Bo(o, 0, o.data.length)), t.offset++),
                                        (this.position = t),
                                        this._formatReturnValue("text", n, e, t, i)
                                    );
                                }
                            }
                            if ("string" == typeof o) {
                                let o;
                                if (this.singleCharacters) o = 1;
                                else {
                                    o = (n === this._boundaryEndParent ? this.boundaries.end.offset : n.data.length) - t.offset;
                                }
                                const i = new Bo(n, t.offset, o);
                                return (t.offset += o), (this.position = t), this._formatReturnValue("text", i, e, t, o);
                            }
                            return (t = Hi._createAfter(n)), (this.position = t), this.ignoreElementEnd ? this._next() : this._formatReturnValue("elementEnd", n, e, t);
                        }
                        _previous() {
                            let t = this.position.clone();
                            const e = this.position,
                                n = t.parent;
                            if (null === n.parent && 0 === t.offset) return { done: !0, value: void 0 };
                            if (n == this._boundaryStartParent && t.offset == this.boundaries.start.offset) return { done: !0, value: void 0 };
                            let o;
                            if (n instanceof No) {
                                if (t.isAtStart) return (this.position = Hi._createBefore(n)), this._previous();
                                o = n.data[t.offset - 1];
                            } else o = n.getChild(t.offset - 1);
                            if (o instanceof Pi)
                                return this.shallow
                                    ? (t.offset--, (this.position = t), this._formatReturnValue("elementStart", o, e, t, 1))
                                    : ((t = new Hi(o, o.childCount)), (this.position = t), this.ignoreElementEnd ? this._previous() : this._formatReturnValue("elementEnd", o, e, t));
                            if (o instanceof No) {
                                if (this.singleCharacters) return (t = new Hi(o, o.data.length)), (this.position = t), this._previous();
                                {
                                    let n,
                                        i = o.data.length;
                                    if (o == this._boundaryStartParent) {
                                        const e = this.boundaries.start.offset;
                                        (n = new Bo(o, e, o.data.length - e)), (i = n.data.length), (t = Hi._createBefore(n));
                                    } else (n = new Bo(o, 0, o.data.length)), t.offset--;
                                    return (this.position = t), this._formatReturnValue("text", n, e, t, i);
                                }
                            }
                            if ("string" == typeof o) {
                                let o;
                                if (this.singleCharacters) o = 1;
                                else {
                                    const e = n === this._boundaryStartParent ? this.boundaries.start.offset : 0;
                                    o = t.offset - e;
                                }
                                t.offset -= o;
                                const i = new Bo(n, t.offset, o);
                                return (this.position = t), this._formatReturnValue("text", i, e, t, o);
                            }
                            return (t = Hi._createBefore(n)), (this.position = t), this._formatReturnValue("elementStart", n, e, t, 1);
                        }
                        _formatReturnValue(t, e, n, o, i) {
                            return (
                                e instanceof Bo &&
                                    (e.offsetInText + e.data.length == e.textNode.data.length &&
                                        ("forward" != this.direction || (this.boundaries && this.boundaries.end.isEqual(this.position)) ? (n = Hi._createAfter(e.textNode)) : ((o = Hi._createAfter(e.textNode)), (this.position = o))),
                                    0 === e.offsetInText &&
                                        ("backward" != this.direction || (this.boundaries && this.boundaries.start.isEqual(this.position)) ? (n = Hi._createBefore(e.textNode)) : ((o = Hi._createBefore(e.textNode)), (this.position = o)))),
                                { done: !1, value: { type: t, item: e, previousPosition: n, nextPosition: o, length: i } }
                            );
                        }
                    }
                    class Hi extends Io {
                        constructor(t, e) {
                            super(), (this.parent = t), (this.offset = e);
                        }
                        get nodeAfter() {
                            return this.parent.is("$text") ? null : this.parent.getChild(this.offset) || null;
                        }
                        get nodeBefore() {
                            return this.parent.is("$text") ? null : this.parent.getChild(this.offset - 1) || null;
                        }
                        get isAtStart() {
                            return 0 === this.offset;
                        }
                        get isAtEnd() {
                            const t = this.parent.is("$text") ? this.parent.data.length : this.parent.childCount;
                            return this.offset === t;
                        }
                        get root() {
                            return this.parent.root;
                        }
                        get editableElement() {
                            let t = this.parent;
                            for (; !(t instanceof Ri); ) {
                                if (!t.parent) return null;
                                t = t.parent;
                            }
                            return t;
                        }
                        getShiftedBy(t) {
                            const e = Hi._createAt(this),
                                n = e.offset + t;
                            return (e.offset = n < 0 ? 0 : n), e;
                        }
                        getLastMatchingPosition(t, e = {}) {
                            e.startPosition = this;
                            const n = new Vi(e);
                            return n.skip(t), n.position;
                        }
                        getAncestors() {
                            return this.parent.is("documentFragment") ? [this.parent] : this.parent.getAncestors({ includeSelf: !0 });
                        }
                        getCommonAncestor(t) {
                            const e = this.getAncestors(),
                                n = t.getAncestors();
                            let o = 0;
                            for (; e[o] == n[o] && e[o]; ) o++;
                            return 0 === o ? null : e[o - 1];
                        }
                        isEqual(t) {
                            return this.parent == t.parent && this.offset == t.offset;
                        }
                        isBefore(t) {
                            return "before" == this.compareWith(t);
                        }
                        isAfter(t) {
                            return "after" == this.compareWith(t);
                        }
                        compareWith(t) {
                            if (this.root !== t.root) return "different";
                            if (this.isEqual(t)) return "same";
                            const e = this.parent.is("node") ? this.parent.getPath() : [],
                                n = t.parent.is("node") ? t.parent.getPath() : [];
                            e.push(this.offset), n.push(t.offset);
                            const o = Mo(e, n);
                            switch (o) {
                                case "prefix":
                                    return "before";
                                case "extension":
                                    return "after";
                                default:
                                    return e[o] < n[o] ? "before" : "after";
                            }
                        }
                        getWalker(t = {}) {
                            return (t.startPosition = this), new Vi(t);
                        }
                        clone() {
                            return new Hi(this.parent, this.offset);
                        }
                        static _createAt(t, e) {
                            if (t instanceof Hi) return new this(t.parent, t.offset);
                            {
                                const n = t;
                                if ("end" == e) e = n.is("$text") ? n.data.length : n.childCount;
                                else {
                                    if ("before" == e) return this._createBefore(n);
                                    if ("after" == e) return this._createAfter(n);
                                    if (0 !== e && !e) throw new c("view-createpositionat-offset-required", n);
                                }
                                return new Hi(n, e);
                            }
                        }
                        static _createAfter(t) {
                            if (t.is("$textProxy")) return new Hi(t.textNode, t.offsetInText + t.data.length);
                            if (!t.parent) throw new c("view-position-after-root", t, { root: t });
                            return new Hi(t.parent, t.index + 1);
                        }
                        static _createBefore(t) {
                            if (t.is("$textProxy")) return new Hi(t.textNode, t.offsetInText);
                            if (!t.parent) throw new c("view-position-before-root", t, { root: t });
                            return new Hi(t.parent, t.index);
                        }
                    }
                    Hi.prototype.is = function (t) {
                        return "position" === t || "view:position" === t;
                    };
                    class Ui extends Io {
                        constructor(t, e = null) {
                            super(), (this.start = t.clone()), (this.end = e ? e.clone() : t.clone());
                        }
                        *[Symbol.iterator]() {
                            yield* new Vi({ boundaries: this, ignoreElementEnd: !0 });
                        }
                        get isCollapsed() {
                            return this.start.isEqual(this.end);
                        }
                        get isFlat() {
                            return this.start.parent === this.end.parent;
                        }
                        get root() {
                            return this.start.root;
                        }
                        getEnlarged() {
                            let t = this.start.getLastMatchingPosition(Wi, { direction: "backward" }),
                                e = this.end.getLastMatchingPosition(Wi);
                            return t.parent.is("$text") && t.isAtStart && (t = Hi._createBefore(t.parent)), e.parent.is("$text") && e.isAtEnd && (e = Hi._createAfter(e.parent)), new Ui(t, e);
                        }
                        getTrimmed() {
                            let t = this.start.getLastMatchingPosition(Wi);
                            if (t.isAfter(this.end) || t.isEqual(this.end)) return new Ui(t, t);
                            let e = this.end.getLastMatchingPosition(Wi, { direction: "backward" });
                            const n = t.nodeAfter,
                                o = e.nodeBefore;
                            return n && n.is("$text") && (t = new Hi(n, 0)), o && o.is("$text") && (e = new Hi(o, o.data.length)), new Ui(t, e);
                        }
                        isEqual(t) {
                            return this == t || (this.start.isEqual(t.start) && this.end.isEqual(t.end));
                        }
                        containsPosition(t) {
                            return t.isAfter(this.start) && t.isBefore(this.end);
                        }
                        containsRange(t, e = !1) {
                            t.isCollapsed && (e = !1);
                            const n = this.containsPosition(t.start) || (e && this.start.isEqual(t.start)),
                                o = this.containsPosition(t.end) || (e && this.end.isEqual(t.end));
                            return n && o;
                        }
                        getDifference(t) {
                            const e = [];
                            return this.isIntersecting(t) ? (this.containsPosition(t.start) && e.push(new Ui(this.start, t.start)), this.containsPosition(t.end) && e.push(new Ui(t.end, this.end))) : e.push(this.clone()), e;
                        }
                        getIntersection(t) {
                            if (this.isIntersecting(t)) {
                                let e = this.start,
                                    n = this.end;
                                return this.containsPosition(t.start) && (e = t.start), this.containsPosition(t.end) && (n = t.end), new Ui(e, n);
                            }
                            return null;
                        }
                        getWalker(t = {}) {
                            return (t.boundaries = this), new Vi(t);
                        }
                        getCommonAncestor() {
                            return this.start.getCommonAncestor(this.end);
                        }
                        getContainedElement() {
                            if (this.isCollapsed) return null;
                            let t = this.start.nodeAfter,
                                e = this.end.nodeBefore;
                            return (
                                this.start.parent.is("$text") && this.start.isAtEnd && this.start.parent.nextSibling && (t = this.start.parent.nextSibling),
                                this.end.parent.is("$text") && this.end.isAtStart && this.end.parent.previousSibling && (e = this.end.parent.previousSibling),
                                t && t.is("element") && t === e ? t : null
                            );
                        }
                        clone() {
                            return new Ui(this.start, this.end);
                        }
                        *getItems(t = {}) {
                            (t.boundaries = this), (t.ignoreElementEnd = !0);
                            const e = new Vi(t);
                            for (const t of e) yield t.item;
                        }
                        *getPositions(t = {}) {
                            t.boundaries = this;
                            const e = new Vi(t);
                            yield e.position;
                            for (const t of e) yield t.nextPosition;
                        }
                        isIntersecting(t) {
                            return this.start.isBefore(t.end) && this.end.isAfter(t.start);
                        }
                        static _createFromParentsAndOffsets(t, e, n, o) {
                            return new this(new Hi(t, e), new Hi(n, o));
                        }
                        static _createFromPositionAndShift(t, e) {
                            const n = t,
                                o = t.getShiftedBy(e);
                            return e > 0 ? new this(n, o) : new this(o, n);
                        }
                        static _createIn(t) {
                            return this._createFromParentsAndOffsets(t, 0, t, t.childCount);
                        }
                        static _createOn(t) {
                            const e = t.is("$textProxy") ? t.offsetSize : 1;
                            return this._createFromPositionAndShift(Hi._createBefore(t), e);
                        }
                    }
                    function Wi(t) {
                        return !(!t.item.is("attributeElement") && !t.item.is("uiElement"));
                    }
                    function qi(t) {
                        let e = 0;
                        for (const n of t) e++;
                        return e;
                    }
                    Ui.prototype.is = function (t) {
                        return "range" === t || "view:range" === t;
                    };
                    class Gi extends b(Io) {
                        constructor(...t) {
                            super(), (this._ranges = []), (this._lastRangeBackward = !1), (this._isFake = !1), (this._fakeSelectionLabel = ""), t.length && this.setTo(...t);
                        }
                        get isFake() {
                            return this._isFake;
                        }
                        get fakeSelectionLabel() {
                            return this._fakeSelectionLabel;
                        }
                        get anchor() {
                            if (!this._ranges.length) return null;
                            const t = this._ranges[this._ranges.length - 1];
                            return (this._lastRangeBackward ? t.end : t.start).clone();
                        }
                        get focus() {
                            if (!this._ranges.length) return null;
                            const t = this._ranges[this._ranges.length - 1];
                            return (this._lastRangeBackward ? t.start : t.end).clone();
                        }
                        get isCollapsed() {
                            return 1 === this.rangeCount && this._ranges[0].isCollapsed;
                        }
                        get rangeCount() {
                            return this._ranges.length;
                        }
                        get isBackward() {
                            return !this.isCollapsed && this._lastRangeBackward;
                        }
                        get editableElement() {
                            return this.anchor ? this.anchor.editableElement : null;
                        }
                        *getRanges() {
                            for (const t of this._ranges) yield t.clone();
                        }
                        getFirstRange() {
                            let t = null;
                            for (const e of this._ranges) (t && !e.start.isBefore(t.start)) || (t = e);
                            return t ? t.clone() : null;
                        }
                        getLastRange() {
                            let t = null;
                            for (const e of this._ranges) (t && !e.end.isAfter(t.end)) || (t = e);
                            return t ? t.clone() : null;
                        }
                        getFirstPosition() {
                            const t = this.getFirstRange();
                            return t ? t.start.clone() : null;
                        }
                        getLastPosition() {
                            const t = this.getLastRange();
                            return t ? t.end.clone() : null;
                        }
                        isEqual(t) {
                            if (this.isFake != t.isFake) return !1;
                            if (this.isFake && this.fakeSelectionLabel != t.fakeSelectionLabel) return !1;
                            if (this.rangeCount != t.rangeCount) return !1;
                            if (0 === this.rangeCount) return !0;
                            if (!this.anchor.isEqual(t.anchor) || !this.focus.isEqual(t.focus)) return !1;
                            for (const e of this._ranges) {
                                let n = !1;
                                for (const o of t._ranges)
                                    if (e.isEqual(o)) {
                                        n = !0;
                                        break;
                                    }
                                if (!n) return !1;
                            }
                            return !0;
                        }
                        isSimilar(t) {
                            if (this.isBackward != t.isBackward) return !1;
                            const e = qi(this.getRanges());
                            if (e != qi(t.getRanges())) return !1;
                            if (0 == e) return !0;
                            for (let e of this.getRanges()) {
                                e = e.getTrimmed();
                                let n = !1;
                                for (let o of t.getRanges())
                                    if (((o = o.getTrimmed()), e.start.isEqual(o.start) && e.end.isEqual(o.end))) {
                                        n = !0;
                                        break;
                                    }
                                if (!n) return !1;
                            }
                            return !0;
                        }
                        getSelectedElement() {
                            return 1 !== this.rangeCount ? null : this.getFirstRange().getContainedElement();
                        }
                        setTo(...t) {
                            let [e, n, o] = t;
                            if (("object" == typeof n && ((o = n), (n = void 0)), null === e)) this._setRanges([]), this._setFakeOptions(o);
                            else if (e instanceof Gi || e instanceof $i) this._setRanges(e.getRanges(), e.isBackward), this._setFakeOptions({ fake: e.isFake, label: e.fakeSelectionLabel });
                            else if (e instanceof Ui) this._setRanges([e], o && o.backward), this._setFakeOptions(o);
                            else if (e instanceof Hi) this._setRanges([new Ui(e)]), this._setFakeOptions(o);
                            else if (e instanceof So) {
                                const t = !!o && !!o.backward;
                                let i;
                                if (void 0 === n) throw new c("view-selection-setto-required-second-parameter", this);
                                (i = "in" == n ? Ui._createIn(e) : "on" == n ? Ui._createOn(e) : new Ui(Hi._createAt(e, n))), this._setRanges([i], t), this._setFakeOptions(o);
                            } else {
                                if (!fo(e)) throw new c("view-selection-setto-not-selectable", this);
                                this._setRanges(e, o && o.backward), this._setFakeOptions(o);
                            }
                            this.fire("change");
                        }
                        setFocus(t, e) {
                            if (null === this.anchor) throw new c("view-selection-setfocus-no-ranges", this);
                            const n = Hi._createAt(t, e);
                            if ("same" == n.compareWith(this.focus)) return;
                            const o = this.anchor;
                            this._ranges.pop(), "before" == n.compareWith(o) ? this._addRange(new Ui(n, o), !0) : this._addRange(new Ui(o, n)), this.fire("change");
                        }
                        _setRanges(t, e = !1) {
                            (t = Array.from(t)), (this._ranges = []);
                            for (const e of t) this._addRange(e);
                            this._lastRangeBackward = !!e;
                        }
                        _setFakeOptions(t = {}) {
                            (this._isFake = !!t.fake), (this._fakeSelectionLabel = (t.fake && t.label) || "");
                        }
                        _addRange(t, e = !1) {
                            if (!(t instanceof Ui)) throw new c("view-selection-add-range-not-range", this);
                            this._pushRange(t), (this._lastRangeBackward = !!e);
                        }
                        _pushRange(t) {
                            for (const e of this._ranges) if (t.isIntersecting(e)) throw new c("view-selection-range-intersects", this, { addedRange: t, intersectingRange: e });
                            this._ranges.push(new Ui(t.start, t.end));
                        }
                    }
                    Gi.prototype.is = function (t) {
                        return "selection" === t || "view:selection" === t;
                    };
                    class $i extends b(Io) {
                        constructor(...t) {
                            super(), (this._selection = new Gi()), this._selection.delegate("change").to(this), t.length && this._selection.setTo(...t);
                        }
                        get isFake() {
                            return this._selection.isFake;
                        }
                        get fakeSelectionLabel() {
                            return this._selection.fakeSelectionLabel;
                        }
                        get anchor() {
                            return this._selection.anchor;
                        }
                        get focus() {
                            return this._selection.focus;
                        }
                        get isCollapsed() {
                            return this._selection.isCollapsed;
                        }
                        get rangeCount() {
                            return this._selection.rangeCount;
                        }
                        get isBackward() {
                            return this._selection.isBackward;
                        }
                        get editableElement() {
                            return this._selection.editableElement;
                        }
                        get _ranges() {
                            return this._selection._ranges;
                        }
                        *getRanges() {
                            yield* this._selection.getRanges();
                        }
                        getFirstRange() {
                            return this._selection.getFirstRange();
                        }
                        getLastRange() {
                            return this._selection.getLastRange();
                        }
                        getFirstPosition() {
                            return this._selection.getFirstPosition();
                        }
                        getLastPosition() {
                            return this._selection.getLastPosition();
                        }
                        getSelectedElement() {
                            return this._selection.getSelectedElement();
                        }
                        isEqual(t) {
                            return this._selection.isEqual(t);
                        }
                        isSimilar(t) {
                            return this._selection.isSimilar(t);
                        }
                        _setTo(...t) {
                            this._selection.setTo(...t);
                        }
                        _setFocus(t, e) {
                            this._selection.setFocus(t, e);
                        }
                    }
                    $i.prototype.is = function (t) {
                        return "selection" === t || "documentSelection" == t || "view:selection" == t || "view:documentSelection" == t;
                    };
                    class Yi extends e {
                        constructor(t, e, n) {
                            super(t, e), (this.startRange = n), (this._eventPhase = "none"), (this._currentTarget = null);
                        }
                        get eventPhase() {
                            return this._eventPhase;
                        }
                        get currentTarget() {
                            return this._currentTarget;
                        }
                    }
                    const Ki = Symbol("bubbling contexts");
                    function Qi(t) {
                        return class extends t {
                            fire(t, ...n) {
                                try {
                                    const o = t instanceof e ? t : new e(this, t),
                                        i = tr(this);
                                    if (!i.size) return;
                                    if ((Zi(o, "capturing", this), Ji(i, "$capture", o, ...n))) return o.return;
                                    const r = o.startRange || this.selection.getFirstRange(),
                                        s = r ? r.getContainedElement() : null,
                                        a = !!s && Boolean(Xi(i, s));
                                    let c =
                                        s ||
                                        (function (t) {
                                            if (!t) return null;
                                            const e = t.start.parent,
                                                n = t.end.parent,
                                                o = e.getPath(),
                                                i = n.getPath();
                                            return o.length > i.length ? e : n;
                                        })(r);
                                    if ((Zi(o, "atTarget", c), !a)) {
                                        if (Ji(i, "$text", o, ...n)) return o.return;
                                        Zi(o, "bubbling", c);
                                    }
                                    for (; c; ) {
                                        if (c.is("rootElement")) {
                                            if (Ji(i, "$root", o, ...n)) return o.return;
                                        } else if (c.is("element") && Ji(i, c.name, o, ...n)) return o.return;
                                        if (Ji(i, c, o, ...n)) return o.return;
                                        (c = c.parent), Zi(o, "bubbling", c);
                                    }
                                    return Zi(o, "bubbling", this), Ji(i, "$document", o, ...n), o.return;
                                } catch (t) {
                                    c.rethrowUnexpectedError(t, this);
                                }
                            }
                            _addEventListener(t, e, n) {
                                const o = wo(n.context || "$document"),
                                    i = tr(this);
                                for (const r of o) {
                                    let o = i.get(r);
                                    o || ((o = new w()), i.set(r, o)), this.listenTo(o, t, e, n);
                                }
                            }
                            _removeEventListener(t, e) {
                                const n = tr(this);
                                for (const o of n.values()) this.stopListening(o, t, e);
                            }
                        };
                    }
                    {
                        const t = Qi(Object);
                        ["fire", "_addEventListener", "_removeEventListener"].forEach((e) => {
                            Qi[e] = t.prototype[e];
                        });
                    }
                    function Zi(t, e, n) {
                        t instanceof Yi && ((t._eventPhase = e), (t._currentTarget = n));
                    }
                    function Ji(t, e, n, ...o) {
                        const i = "string" == typeof e ? t.get(e) : Xi(t, e);
                        return !!i && (i.fire(n, ...o), n.stop.called);
                    }
                    function Xi(t, e) {
                        for (const [n, o] of t) if ("function" == typeof n && n(e)) return o;
                        return null;
                    }
                    function tr(t) {
                        return t[Ki] || (t[Ki] = new Map()), t[Ki];
                    }
                    class er extends Qi(P) {
                        constructor(t) {
                            super(),
                                (this.selection = new $i()),
                                (this.roots = new ko({ idProperty: "rootName" })),
                                (this.stylesProcessor = t),
                                this.set("isReadOnly", !1),
                                this.set("isFocused", !1),
                                this.set("isSelecting", !1),
                                this.set("isComposing", !1),
                                (this._postFixers = new Set());
                        }
                        getRoot(t = "main") {
                            return this.roots.get(t);
                        }
                        registerPostFixer(t) {
                            this._postFixers.add(t);
                        }
                        destroy() {
                            this.roots.map((t) => t.destroy()), this.stopListening();
                        }
                        _callPostFixers(t) {
                            let e = !1;
                            do {
                                for (const n of this._postFixers) if (((e = n(t)), e)) break;
                            } while (e);
                        }
                    }
                    class nr extends Pi {
                        constructor(...t) {
                            super(...t), (this.getFillerOffset = or), (this._priority = 10), (this._id = null), (this._clonesGroup = null);
                        }
                        get priority() {
                            return this._priority;
                        }
                        get id() {
                            return this._id;
                        }
                        getElementsWithSameId() {
                            if (null === this.id) throw new c("attribute-element-get-elements-with-same-id-no-id", this);
                            return new Set(this._clonesGroup);
                        }
                        isSimilar(t) {
                            return null !== this.id || null !== t.id ? this.id === t.id : super.isSimilar(t) && this.priority == t.priority;
                        }
                        _clone(t = !1) {
                            const e = super._clone(t);
                            return (e._priority = this._priority), (e._id = this._id), e;
                        }
                    }
                    function or() {
                        if (ir(this)) return null;
                        let t = this.parent;
                        for (; t && t.is("attributeElement"); ) {
                            if (ir(t) > 1) return null;
                            t = t.parent;
                        }
                        return !t || ir(t) > 1 ? null : this.childCount;
                    }
                    function ir(t) {
                        return Array.from(t.getChildren()).filter((t) => !t.is("uiElement")).length;
                    }
                    (nr.DEFAULT_PRIORITY = 10),
                        (nr.prototype.is = function (t, e) {
                            return e
                                ? e === this.name && ("attributeElement" === t || "view:attributeElement" === t || "element" === t || "view:element" === t)
                                : "attributeElement" === t || "view:attributeElement" === t || "element" === t || "view:element" === t || "node" === t || "view:node" === t;
                        });
                    class rr extends Pi {
                        constructor(t, e, n, o) {
                            super(t, e, n, o), (this.getFillerOffset = sr);
                        }
                        _insertChild(t, e) {
                            if (e && (e instanceof So || Array.from(e).length > 0)) throw new c("view-emptyelement-cannot-add", [this, e]);
                            return 0;
                        }
                    }
                    function sr() {
                        return null;
                    }
                    rr.prototype.is = function (t, e) {
                        return e
                            ? e === this.name && ("emptyElement" === t || "view:emptyElement" === t || "element" === t || "view:element" === t)
                            : "emptyElement" === t || "view:emptyElement" === t || "element" === t || "view:element" === t || "node" === t || "view:node" === t;
                    };
                    const ar = (function () {
                            try {
                                return navigator.userAgent.toLowerCase();
                            } catch (t) {
                                return "";
                            }
                        })(),
                        cr = {
                            isMac: dr(ar),
                            isWindows: (function (t) {
                                return t.indexOf("windows") > -1;
                            })(ar),
                            isGecko: (function (t) {
                                return !!t.match(/gecko\/\d+/);
                            })(ar),
                            isSafari: (function (t) {
                                return t.indexOf(" applewebkit/") > -1 && -1 === t.indexOf("chrome");
                            })(ar),
                            isiOS: (function (t) {
                                return !!t.match(/iphone|ipad/i) || (dr(t) && navigator.maxTouchPoints > 0);
                            })(ar),
                            isAndroid: (function (t) {
                                return t.indexOf("android") > -1;
                            })(ar),
                            isBlink: (function (t) {
                                return t.indexOf("chrome/") > -1 && t.indexOf("edge/") < 0;
                            })(ar),
                            features: {
                                isRegExpUnicodePropertySupported: (function () {
                                    let t = !1;
                                    try {
                                        t = 0 === "ć".search(new RegExp("[\\p{L}]", "u"));
                                    } catch (t) {}
                                    return t;
                                })(),
                            },
                        },
                        lr = cr;
                    function dr(t) {
                        return t.indexOf("macintosh") > -1;
                    }
                    const hr = { ctrl: "⌃", cmd: "⌘", alt: "⌥", shift: "⇧" },
                        ur = { ctrl: "Ctrl+", alt: "Alt+", shift: "Shift+" },
                        gr = (function () {
                            const t = { arrowleft: 37, arrowup: 38, arrowright: 39, arrowdown: 40, backspace: 8, delete: 46, enter: 13, space: 32, esc: 27, tab: 9, ctrl: 1114112, shift: 2228224, alt: 4456448, cmd: 8912896 };
                            for (let e = 65; e <= 90; e++) {
                                const n = String.fromCharCode(e);
                                t[n.toLowerCase()] = e;
                            }
                            for (let e = 48; e <= 57; e++) t[e - 48] = e;
                            for (let e = 112; e <= 123; e++) t["f" + (e - 111)] = e;
                            for (const e of "`-=[];',./\\") t[e] = e.charCodeAt(0);
                            return t;
                        })(),
                        mr = Object.fromEntries(Object.entries(gr).map(([t, e]) => [e, t.charAt(0).toUpperCase() + t.slice(1)]));
                    function pr(t) {
                        let e;
                        if ("string" == typeof t) {
                            if (((e = gr[t.toLowerCase()]), !e)) throw new c("keyboard-unknown-key", null, { key: t });
                        } else e = t.keyCode + (t.altKey ? gr.alt : 0) + (t.ctrlKey ? gr.ctrl : 0) + (t.shiftKey ? gr.shift : 0) + (t.metaKey ? gr.cmd : 0);
                        return e;
                    }
                    function fr(t) {
                        return (
                            "string" == typeof t &&
                                (t = (function (t) {
                                    return t.split("+").map((t) => t.trim());
                                })(t)),
                            t
                                .map((t) =>
                                    "string" == typeof t
                                        ? (function (t) {
                                              if (t.endsWith("!")) return pr(t.slice(0, -1));
                                              const e = pr(t);
                                              return lr.isMac && e == gr.ctrl ? gr.cmd : e;
                                          })(t)
                                        : t
                                )
                                .reduce((t, e) => e + t, 0)
                        );
                    }
                    function kr(t) {
                        let e = fr(t);
                        return Object.entries(lr.isMac ? hr : ur).reduce((t, [n, o]) => (0 != (e & gr[n]) && ((e &= ~gr[n]), (t += o)), t), "") + (e ? mr[e] : "");
                    }
                    function br(t, e) {
                        const n = "ltr" === e;
                        switch (t) {
                            case gr.arrowleft:
                                return n ? "left" : "right";
                            case gr.arrowright:
                                return n ? "right" : "left";
                            case gr.arrowup:
                                return "up";
                            case gr.arrowdown:
                                return "down";
                        }
                    }
                    class wr extends Pi {
                        constructor(...t) {
                            super(...t), (this.getFillerOffset = Ar);
                        }
                        _insertChild(t, e) {
                            if (e && (e instanceof So || Array.from(e).length > 0)) throw new c("view-uielement-cannot-add", [this, e]);
                            return 0;
                        }
                        render(t, e) {
                            return this.toDomElement(t);
                        }
                        toDomElement(t) {
                            const e = t.createElement(this.name);
                            for (const t of this.getAttributeKeys()) e.setAttribute(t, this.getAttribute(t));
                            return e;
                        }
                    }
                    function _r(t) {
                        t.document.on(
                            "arrowKey",
                            (e, n) =>
                                (function (t, e, n) {
                                    if (e.keyCode == gr.arrowright) {
                                        const t = e.domTarget.ownerDocument.defaultView.getSelection(),
                                            o = 1 == t.rangeCount && t.getRangeAt(0).collapsed;
                                        if (o || e.shiftKey) {
                                            const e = t.focusNode,
                                                i = t.focusOffset,
                                                r = n.domPositionToView(e, i);
                                            if (null === r) return;
                                            let s = !1;
                                            const a = r.getLastMatchingPosition((t) => (t.item.is("uiElement") && (s = !0), !(!t.item.is("uiElement") && !t.item.is("attributeElement"))));
                                            if (s) {
                                                const e = n.viewPositionToDom(a);
                                                o ? t.collapse(e.parent, e.offset) : t.extend(e.parent, e.offset);
                                            }
                                        }
                                    }
                                })(0, n, t.domConverter),
                            { priority: "low" }
                        );
                    }
                    function Ar() {
                        return null;
                    }
                    wr.prototype.is = function (t, e) {
                        return e
                            ? e === this.name && ("uiElement" === t || "view:uiElement" === t || "element" === t || "view:element" === t)
                            : "uiElement" === t || "view:uiElement" === t || "element" === t || "view:element" === t || "node" === t || "view:node" === t;
                    };
                    class Cr extends Pi {
                        constructor(...t) {
                            super(...t), (this.getFillerOffset = vr);
                        }
                        _insertChild(t, e) {
                            if (e && (e instanceof So || Array.from(e).length > 0)) throw new c("view-rawelement-cannot-add", [this, e]);
                            return 0;
                        }
                        render() {}
                    }
                    function vr() {
                        return null;
                    }
                    Cr.prototype.is = function (t, e) {
                        return e
                            ? e === this.name && ("rawElement" === t || "view:rawElement" === t || "element" === t || "view:element" === t)
                            : "rawElement" === t || "view:rawElement" === t || t === this.name || t === "view:" + this.name || "element" === t || "view:element" === t || "node" === t || "view:node" === t;
                    };
                    class yr extends b(Io) {
                        constructor(t, e) {
                            super(), (this.document = t), (this._children = []), e && this._insertChild(0, e);
                        }
                        [Symbol.iterator]() {
                            return this._children[Symbol.iterator]();
                        }
                        get childCount() {
                            return this._children.length;
                        }
                        get isEmpty() {
                            return 0 === this.childCount;
                        }
                        get root() {
                            return this;
                        }
                        get parent() {
                            return null;
                        }
                        _appendChild(t) {
                            return this._insertChild(this.childCount, t);
                        }
                        getChild(t) {
                            return this._children[t];
                        }
                        getChildIndex(t) {
                            return this._children.indexOf(t);
                        }
                        getChildren() {
                            return this._children[Symbol.iterator]();
                        }
                        _insertChild(t, e) {
                            this._fireChange("children", this);
                            let n = 0;
                            const o = (function (t, e) {
                                if ("string" == typeof e) return [new No(t, e)];
                                fo(e) || (e = [e]);
                                return Array.from(e).map((e) => ("string" == typeof e ? new No(t, e) : e instanceof Bo ? new No(t, e.data) : e));
                            })(this.document, e);
                            for (const e of o) null !== e.parent && e._remove(), (e.parent = this), this._children.splice(t, 0, e), t++, n++;
                            return n;
                        }
                        _removeChildren(t, e = 1) {
                            this._fireChange("children", this);
                            for (let n = t; n < t + e; n++) this._children[n].parent = null;
                            return this._children.splice(t, e);
                        }
                        _fireChange(t, e) {
                            this.fire("change:" + t, e);
                        }
                    }
                    yr.prototype.is = function (t) {
                        return "documentFragment" === t || "view:documentFragment" === t;
                    };
                    class xr {
                        constructor(t) {
                            (this.document = t), (this._cloneGroups = new Map()), (this._slotFactory = null);
                        }
                        setSelection(...t) {
                            this.document.selection._setTo(...t);
                        }
                        setSelectionFocus(...t) {
                            this.document.selection._setFocus(...t);
                        }
                        createDocumentFragment(t) {
                            return new yr(this.document, t);
                        }
                        createText(t) {
                            return new No(this.document, t);
                        }
                        createAttributeElement(t, e, n = {}) {
                            const o = new nr(this.document, t, e);
                            return "number" == typeof n.priority && (o._priority = n.priority), n.id && (o._id = n.id), n.renderUnsafeAttributes && o._unsafeAttributesToRender.push(...n.renderUnsafeAttributes), o;
                        }
                        createContainerElement(t, e, n = {}, o = {}) {
                            let i = null;
                            gt(n) ? (o = n) : (i = n);
                            const r = new Li(this.document, t, e, i);
                            return o.renderUnsafeAttributes && r._unsafeAttributesToRender.push(...o.renderUnsafeAttributes), r;
                        }
                        createEditableElement(t, e, n = {}) {
                            const o = new Ri(this.document, t, e);
                            return n.renderUnsafeAttributes && o._unsafeAttributesToRender.push(...n.renderUnsafeAttributes), o;
                        }
                        createEmptyElement(t, e, n = {}) {
                            const o = new rr(this.document, t, e);
                            return n.renderUnsafeAttributes && o._unsafeAttributesToRender.push(...n.renderUnsafeAttributes), o;
                        }
                        createUIElement(t, e, n) {
                            const o = new wr(this.document, t, e);
                            return n && (o.render = n), o;
                        }
                        createRawElement(t, e, n, o = {}) {
                            const i = new Cr(this.document, t, e);
                            return n && (i.render = n), o.renderUnsafeAttributes && i._unsafeAttributesToRender.push(...o.renderUnsafeAttributes), i;
                        }
                        setAttribute(t, e, n) {
                            n._setAttribute(t, e);
                        }
                        removeAttribute(t, e) {
                            e._removeAttribute(t);
                        }
                        addClass(t, e) {
                            e._addClass(t);
                        }
                        removeClass(t, e) {
                            e._removeClass(t);
                        }
                        setStyle(t, e, n) {
                            gt(t) && void 0 === n ? e._setStyle(t) : n._setStyle(t, e);
                        }
                        removeStyle(t, e) {
                            e._removeStyle(t);
                        }
                        setCustomProperty(t, e, n) {
                            n._setCustomProperty(t, e);
                        }
                        removeCustomProperty(t, e) {
                            return e._removeCustomProperty(t);
                        }
                        breakAttributes(t) {
                            return t instanceof Hi ? this._breakAttributes(t) : this._breakAttributesRange(t);
                        }
                        breakContainer(t) {
                            const e = t.parent;
                            if (!e.is("containerElement")) throw new c("view-writer-break-non-container-element", this.document);
                            if (!e.parent) throw new c("view-writer-break-root", this.document);
                            if (t.isAtStart) return Hi._createBefore(e);
                            if (!t.isAtEnd) {
                                const n = e._clone(!1);
                                this.insert(Hi._createAfter(e), n);
                                const o = new Ui(t, Hi._createAt(e, "end")),
                                    i = new Hi(n, 0);
                                this.move(o, i);
                            }
                            return Hi._createAfter(e);
                        }
                        mergeAttributes(t) {
                            const e = t.offset,
                                n = t.parent;
                            if (n.is("$text")) return t;
                            if (n.is("attributeElement") && 0 === n.childCount) {
                                const t = n.parent,
                                    e = n.index;
                                return n._remove(), this._removeFromClonedElementsGroup(n), this.mergeAttributes(new Hi(t, e));
                            }
                            const o = n.getChild(e - 1),
                                i = n.getChild(e);
                            if (!o || !i) return t;
                            if (o.is("$text") && i.is("$text")) return Tr(o, i);
                            if (o.is("attributeElement") && i.is("attributeElement") && o.isSimilar(i)) {
                                const t = o.childCount;
                                return o._appendChild(i.getChildren()), i._remove(), this._removeFromClonedElementsGroup(i), this.mergeAttributes(new Hi(o, t));
                            }
                            return t;
                        }
                        mergeContainers(t) {
                            const e = t.nodeBefore,
                                n = t.nodeAfter;
                            if (!(e && n && e.is("containerElement") && n.is("containerElement"))) throw new c("view-writer-merge-containers-invalid-position", this.document);
                            const o = e.getChild(e.childCount - 1),
                                i = o instanceof No ? Hi._createAt(o, "end") : Hi._createAt(e, "end");
                            return this.move(Ui._createIn(n), Hi._createAt(e, "end")), this.remove(Ui._createOn(n)), i;
                        }
                        insert(t, e) {
                            Nr((e = fo(e) ? [...e] : [e]), this.document);
                            const n = e.reduce((t, e) => {
                                const n = t[t.length - 1],
                                    o = !e.is("uiElement");
                                return n && n.breakAttributes == o ? n.nodes.push(e) : t.push({ breakAttributes: o, nodes: [e] }), t;
                            }, []);
                            let o = null,
                                i = t;
                            for (const { nodes: t, breakAttributes: e } of n) {
                                const n = this._insertNodes(i, t, e);
                                o || (o = n.start), (i = n.end);
                            }
                            return o ? new Ui(o, i) : new Ui(t);
                        }
                        remove(t) {
                            const e = t instanceof Ui ? t : Ui._createOn(t);
                            if ((Pr(e, this.document), e.isCollapsed)) return new yr(this.document);
                            const { start: n, end: o } = this._breakAttributesRange(e, !0),
                                i = n.parent,
                                r = o.offset - n.offset,
                                s = i._removeChildren(n.offset, r);
                            for (const t of s) this._removeFromClonedElementsGroup(t);
                            const a = this.mergeAttributes(n);
                            return (e.start = a), (e.end = a.clone()), new yr(this.document, s);
                        }
                        clear(t, e) {
                            Pr(t, this.document);
                            const n = t.getWalker({ direction: "backward", ignoreElementEnd: !0 });
                            for (const o of n) {
                                const n = o.item;
                                let i;
                                if (n.is("element") && e.isSimilar(n)) i = Ui._createOn(n);
                                else if (!o.nextPosition.isAfter(t.start) && n.is("$textProxy")) {
                                    const t = n.getAncestors().find((t) => t.is("element") && e.isSimilar(t));
                                    t && (i = Ui._createIn(t));
                                }
                                i && (i.end.isAfter(t.end) && (i.end = t.end), i.start.isBefore(t.start) && (i.start = t.start), this.remove(i));
                            }
                        }
                        move(t, e) {
                            let n;
                            if (e.isAfter(t.end)) {
                                const o = (e = this._breakAttributes(e, !0)).parent,
                                    i = o.childCount;
                                (t = this._breakAttributesRange(t, !0)), (n = this.remove(t)), (e.offset += o.childCount - i);
                            } else n = this.remove(t);
                            return this.insert(e, n);
                        }
                        wrap(t, e) {
                            if (!(e instanceof nr)) throw new c("view-writer-wrap-invalid-attribute", this.document);
                            if ((Pr(t, this.document), t.isCollapsed)) {
                                let o = t.start;
                                o.parent.is("element") && ((n = o.parent), !Array.from(n.getChildren()).some((t) => !t.is("uiElement"))) && (o = o.getLastMatchingPosition((t) => t.item.is("uiElement"))), (o = this._wrapPosition(o, e));
                                const i = this.document.selection;
                                return i.isCollapsed && i.getFirstPosition().isEqual(t.start) && this.setSelection(o), new Ui(o);
                            }
                            return this._wrapRange(t, e);
                            var n;
                        }
                        unwrap(t, e) {
                            if (!(e instanceof nr)) throw new c("view-writer-unwrap-invalid-attribute", this.document);
                            if ((Pr(t, this.document), t.isCollapsed)) return t;
                            const { start: n, end: o } = this._breakAttributesRange(t, !0),
                                i = n.parent,
                                r = this._unwrapChildren(i, n.offset, o.offset, e),
                                s = this.mergeAttributes(r.start);
                            s.isEqual(r.start) || r.end.offset--;
                            const a = this.mergeAttributes(r.end);
                            return new Ui(s, a);
                        }
                        rename(t, e) {
                            const n = new Li(this.document, t, e.getAttributes());
                            return this.insert(Hi._createAfter(e), n), this.move(Ui._createIn(e), Hi._createAt(n, 0)), this.remove(Ui._createOn(e)), n;
                        }
                        clearClonedElementsGroup(t) {
                            this._cloneGroups.delete(t);
                        }
                        createPositionAt(t, e) {
                            return Hi._createAt(t, e);
                        }
                        createPositionAfter(t) {
                            return Hi._createAfter(t);
                        }
                        createPositionBefore(t) {
                            return Hi._createBefore(t);
                        }
                        createRange(...t) {
                            return new Ui(...t);
                        }
                        createRangeOn(t) {
                            return Ui._createOn(t);
                        }
                        createRangeIn(t) {
                            return Ui._createIn(t);
                        }
                        createSelection(...t) {
                            return new Gi(...t);
                        }
                        createSlot(t) {
                            if (!this._slotFactory) throw new c("view-writer-invalid-create-slot-context", this.document);
                            return this._slotFactory(this, t);
                        }
                        _registerSlotFactory(t) {
                            this._slotFactory = t;
                        }
                        _clearSlotFactory() {
                            this._slotFactory = null;
                        }
                        _insertNodes(t, e, n) {
                            let o, i;
                            if (((o = n ? Er(t) : t.parent.is("$text") ? t.parent.parent : t.parent), !o)) throw new c("view-writer-invalid-position-container", this.document);
                            i = n ? this._breakAttributes(t, !0) : t.parent.is("$text") ? Mr(t) : t;
                            const r = o._insertChild(i.offset, e);
                            for (const t of e) this._addToClonedElementsGroup(t);
                            const s = i.getShiftedBy(r),
                                a = this.mergeAttributes(i);
                            a.isEqual(i) || s.offset--;
                            const l = this.mergeAttributes(s);
                            return new Ui(a, l);
                        }
                        _wrapChildren(t, e, n, o) {
                            let i = e;
                            const r = [];
                            for (; i < n; ) {
                                const e = t.getChild(i),
                                    n = e.is("$text"),
                                    s = e.is("attributeElement");
                                if (s && this._wrapAttributeElement(o, e)) r.push(new Hi(t, i));
                                else if (n || !s || Dr(o, e)) {
                                    const n = o._clone();
                                    e._remove(), n._appendChild(e), t._insertChild(i, n), this._addToClonedElementsGroup(n), r.push(new Hi(t, i));
                                } else this._wrapChildren(e, 0, e.childCount, o);
                                i++;
                            }
                            let s = 0;
                            for (const t of r) {
                                if (((t.offset -= s), t.offset == e)) continue;
                                this.mergeAttributes(t).isEqual(t) || (s++, n--);
                            }
                            return Ui._createFromParentsAndOffsets(t, e, t, n);
                        }
                        _unwrapChildren(t, e, n, o) {
                            let i = e;
                            const r = [];
                            for (; i < n; ) {
                                const e = t.getChild(i);
                                if (e.is("attributeElement"))
                                    if (e.isSimilar(o)) {
                                        const o = e.getChildren(),
                                            s = e.childCount;
                                        e._remove(), t._insertChild(i, o), this._removeFromClonedElementsGroup(e), r.push(new Hi(t, i), new Hi(t, i + s)), (i += s), (n += s - 1);
                                    } else this._unwrapAttributeElement(o, e) ? (r.push(new Hi(t, i), new Hi(t, i + 1)), i++) : (this._unwrapChildren(e, 0, e.childCount, o), i++);
                                else i++;
                            }
                            let s = 0;
                            for (const t of r) {
                                if (((t.offset -= s), t.offset == e || t.offset == n)) continue;
                                this.mergeAttributes(t).isEqual(t) || (s++, n--);
                            }
                            return Ui._createFromParentsAndOffsets(t, e, t, n);
                        }
                        _wrapRange(t, e) {
                            const { start: n, end: o } = this._breakAttributesRange(t, !0),
                                i = n.parent,
                                r = this._wrapChildren(i, n.offset, o.offset, e),
                                s = this.mergeAttributes(r.start);
                            s.isEqual(r.start) || r.end.offset--;
                            const a = this.mergeAttributes(r.end);
                            return new Ui(s, a);
                        }
                        _wrapPosition(t, e) {
                            if (e.isSimilar(t.parent)) return Ir(t.clone());
                            t.parent.is("$text") && (t = Mr(t));
                            const n = this.createAttributeElement("_wrapPosition-fake-element");
                            (n._priority = Number.POSITIVE_INFINITY), (n.isSimilar = () => !1), t.parent._insertChild(t.offset, n);
                            const o = new Ui(t, t.getShiftedBy(1));
                            this.wrap(o, e);
                            const i = new Hi(n.parent, n.index);
                            n._remove();
                            const r = i.nodeBefore,
                                s = i.nodeAfter;
                            return r instanceof No && s instanceof No ? Tr(r, s) : Ir(i);
                        }
                        _wrapAttributeElement(t, e) {
                            if (!zr(t, e)) return !1;
                            if (t.name !== e.name || t.priority !== e.priority) return !1;
                            for (const n of t.getAttributeKeys()) if ("class" !== n && "style" !== n && e.hasAttribute(n) && e.getAttribute(n) !== t.getAttribute(n)) return !1;
                            for (const n of t.getStyleNames()) if (e.hasStyle(n) && e.getStyle(n) !== t.getStyle(n)) return !1;
                            for (const n of t.getAttributeKeys()) "class" !== n && "style" !== n && (e.hasAttribute(n) || this.setAttribute(n, t.getAttribute(n), e));
                            for (const n of t.getStyleNames()) e.hasStyle(n) || this.setStyle(n, t.getStyle(n), e);
                            for (const n of t.getClassNames()) e.hasClass(n) || this.addClass(n, e);
                            return !0;
                        }
                        _unwrapAttributeElement(t, e) {
                            if (!zr(t, e)) return !1;
                            if (t.name !== e.name || t.priority !== e.priority) return !1;
                            for (const n of t.getAttributeKeys()) if ("class" !== n && "style" !== n && (!e.hasAttribute(n) || e.getAttribute(n) !== t.getAttribute(n))) return !1;
                            if (!e.hasClass(...t.getClassNames())) return !1;
                            for (const n of t.getStyleNames()) if (!e.hasStyle(n) || e.getStyle(n) !== t.getStyle(n)) return !1;
                            for (const n of t.getAttributeKeys()) "class" !== n && "style" !== n && this.removeAttribute(n, e);
                            return this.removeClass(Array.from(t.getClassNames()), e), this.removeStyle(Array.from(t.getStyleNames()), e), !0;
                        }
                        _breakAttributesRange(t, e = !1) {
                            const n = t.start,
                                o = t.end;
                            if ((Pr(t, this.document), t.isCollapsed)) {
                                const n = this._breakAttributes(t.start, e);
                                return new Ui(n, n);
                            }
                            const i = this._breakAttributes(o, e),
                                r = i.parent.childCount,
                                s = this._breakAttributes(n, e);
                            return (i.offset += i.parent.childCount - r), new Ui(s, i);
                        }
                        _breakAttributes(t, e = !1) {
                            const n = t.offset,
                                o = t.parent;
                            if (t.parent.is("emptyElement")) throw new c("view-writer-cannot-break-empty-element", this.document);
                            if (t.parent.is("uiElement")) throw new c("view-writer-cannot-break-ui-element", this.document);
                            if (t.parent.is("rawElement")) throw new c("view-writer-cannot-break-raw-element", this.document);
                            if (!e && o.is("$text") && Br(o.parent)) return t.clone();
                            if (Br(o)) return t.clone();
                            if (o.is("$text")) return this._breakAttributes(Mr(t), e);
                            if (n == o.childCount) {
                                const t = new Hi(o.parent, o.index + 1);
                                return this._breakAttributes(t, e);
                            }
                            if (0 === n) {
                                const t = new Hi(o.parent, o.index);
                                return this._breakAttributes(t, e);
                            }
                            {
                                const t = o.index + 1,
                                    i = o._clone();
                                o.parent._insertChild(t, i), this._addToClonedElementsGroup(i);
                                const r = o.childCount - n,
                                    s = o._removeChildren(n, r);
                                i._appendChild(s);
                                const a = new Hi(o.parent, t);
                                return this._breakAttributes(a, e);
                            }
                        }
                        _addToClonedElementsGroup(t) {
                            if (!t.root.is("rootElement")) return;
                            if (t.is("element")) for (const e of t.getChildren()) this._addToClonedElementsGroup(e);
                            const e = t.id;
                            if (!e) return;
                            let n = this._cloneGroups.get(e);
                            n || ((n = new Set()), this._cloneGroups.set(e, n)), n.add(t), (t._clonesGroup = n);
                        }
                        _removeFromClonedElementsGroup(t) {
                            if (t.is("element")) for (const e of t.getChildren()) this._removeFromClonedElementsGroup(e);
                            const e = t.id;
                            if (!e) return;
                            const n = this._cloneGroups.get(e);
                            n && n.delete(t);
                        }
                    }
                    function Er(t) {
                        let e = t.parent;
                        for (; !Br(e); ) {
                            if (!e) return;
                            e = e.parent;
                        }
                        return e;
                    }
                    function Dr(t, e) {
                        return t.priority < e.priority || (!(t.priority > e.priority) && t.getIdentity() < e.getIdentity());
                    }
                    function Ir(t) {
                        const e = t.nodeBefore;
                        if (e && e.is("$text")) return new Hi(e, e.data.length);
                        const n = t.nodeAfter;
                        return n && n.is("$text") ? new Hi(n, 0) : t;
                    }
                    function Mr(t) {
                        if (t.offset == t.parent.data.length) return new Hi(t.parent.parent, t.parent.index + 1);
                        if (0 === t.offset) return new Hi(t.parent.parent, t.parent.index);
                        const e = t.parent.data.slice(t.offset);
                        return (t.parent._data = t.parent.data.slice(0, t.offset)), t.parent.parent._insertChild(t.parent.index + 1, new No(t.root.document, e)), new Hi(t.parent.parent, t.parent.index + 1);
                    }
                    function Tr(t, e) {
                        const n = t.data.length;
                        return (t._data += e.data), e._remove(), new Hi(t, n);
                    }
                    const Sr = [No, nr, Li, rr, Cr, wr];
                    function Nr(t, e) {
                        for (const n of t) {
                            if (!Sr.some((t) => n instanceof t)) throw new c("view-writer-insert-invalid-node-type", e);
                            n.is("$text") || Nr(n.getChildren(), e);
                        }
                    }
                    function Br(t) {
                        return t && (t.is("containerElement") || t.is("documentFragment"));
                    }
                    function Pr(t, e) {
                        const n = Er(t.start),
                            o = Er(t.end);
                        if (!n || !o || n !== o) throw new c("view-writer-invalid-range-container", e);
                    }
                    function zr(t, e) {
                        return null === t.id && null === e.id;
                    }
                    function Lr(t) {
                        return "[object Text]" == Object.prototype.toString.call(t);
                    }
                    const Or = (t) => t.createTextNode(" "),
                        Rr = (t) => {
                            const e = t.createElement("span");
                            return (e.dataset.ckeFiller = "true"), (e.innerText = " "), e;
                        },
                        jr = (t) => {
                            const e = t.createElement("br");
                            return (e.dataset.ckeFiller = "true"), e;
                        },
                        Fr = "⁠".repeat(7);
                    function Vr(t) {
                        return Lr(t) && t.data.substr(0, 7) === Fr;
                    }
                    function Hr(t) {
                        return 7 == t.data.length && Vr(t);
                    }
                    function Ur(t) {
                        return Vr(t) ? t.data.slice(7) : t.data;
                    }
                    function Wr(t, e) {
                        if (e.keyCode == gr.arrowleft) {
                            const t = e.domTarget.ownerDocument.defaultView.getSelection();
                            if (1 == t.rangeCount && t.getRangeAt(0).collapsed) {
                                const e = t.getRangeAt(0).startContainer,
                                    n = t.getRangeAt(0).startOffset;
                                Vr(e) && n <= 7 && t.collapse(e, 0);
                            }
                        }
                    }
                    function qr(t, e, n, o = !1) {
                        n =
                            n ||
                            function (t, e) {
                                return t === e;
                            };
                        const i = Array.isArray(t) ? t : Array.prototype.slice.call(t),
                            r = Array.isArray(e) ? e : Array.prototype.slice.call(e),
                            s = (function (t, e, n) {
                                const o = Gr(t, e, n);
                                if (-1 === o) return { firstIndex: -1, lastIndexOld: -1, lastIndexNew: -1 };
                                const i = $r(t, o),
                                    r = $r(e, o),
                                    s = Gr(i, r, n),
                                    a = t.length - s,
                                    c = e.length - s;
                                return { firstIndex: o, lastIndexOld: a, lastIndexNew: c };
                            })(i, r, n);
                        return o
                            ? (function (t, e) {
                                  const { firstIndex: n, lastIndexOld: o, lastIndexNew: i } = t;
                                  if (-1 === n) return Array(e).fill("equal");
                                  let r = [];
                                  n > 0 && (r = r.concat(Array(n).fill("equal")));
                                  i - n > 0 && (r = r.concat(Array(i - n).fill("insert")));
                                  o - n > 0 && (r = r.concat(Array(o - n).fill("delete")));
                                  i < e && (r = r.concat(Array(e - i).fill("equal")));
                                  return r;
                              })(s, r.length)
                            : (function (t, e) {
                                  const n = [],
                                      { firstIndex: o, lastIndexOld: i, lastIndexNew: r } = e;
                                  r - o > 0 && n.push({ index: o, type: "insert", values: t.slice(o, r) });
                                  i - o > 0 && n.push({ index: o + (r - o), type: "delete", howMany: i - o });
                                  return n;
                              })(r, s);
                    }
                    function Gr(t, e, n) {
                        for (let o = 0; o < Math.max(t.length, e.length); o++) if (void 0 === t[o] || void 0 === e[o] || !n(t[o], e[o])) return o;
                        return -1;
                    }
                    function $r(t, e) {
                        return t.slice(e).reverse();
                    }
                    function Yr(t, e, n) {
                        n =
                            n ||
                            function (t, e) {
                                return t === e;
                            };
                        const o = t.length,
                            i = e.length;
                        if (o > 200 || i > 200 || o + i > 300) return Yr.fastDiff(t, e, n, !0);
                        let r, s;
                        if (i < o) {
                            const n = t;
                            (t = e), (e = n), (r = "delete"), (s = "insert");
                        } else (r = "insert"), (s = "delete");
                        const a = t.length,
                            c = e.length,
                            l = c - a,
                            d = {},
                            h = {};
                        function u(o) {
                            const i = (void 0 !== h[o - 1] ? h[o - 1] : -1) + 1,
                                l = void 0 !== h[o + 1] ? h[o + 1] : -1,
                                u = i > l ? -1 : 1;
                            d[o + u] && (d[o] = d[o + u].slice(0)), d[o] || (d[o] = []), d[o].push(i > l ? r : s);
                            let g = Math.max(i, l),
                                m = g - o;
                            for (; m < a && g < c && n(t[m], e[g]); ) m++, g++, d[o].push("equal");
                            return g;
                        }
                        let g,
                            m = 0;
                        do {
                            for (g = -m; g < l; g++) h[g] = u(g);
                            for (g = l + m; g > l; g--) h[g] = u(g);
                            (h[l] = u(l)), m++;
                        } while (h[l] !== c);
                        return d[l].slice(1);
                    }
                    function Kr(t, e, n) {
                        t.insertBefore(n, t.childNodes[e] || null);
                    }
                    function Qr(t) {
                        const e = t.parentNode;
                        e && e.removeChild(t);
                    }
                    function Zr(t) {
                        return t && t.nodeType === Node.COMMENT_NODE;
                    }
                    function Jr(t) {
                        if (t) {
                            if (t.defaultView) return t instanceof t.defaultView.Document;
                            if (t.ownerDocument && t.ownerDocument.defaultView) return t instanceof t.ownerDocument.defaultView.Node;
                        }
                        return !1;
                    }
                    Yr.fastDiff = qr;
                    var Xr = n(6062),
                        ts = n.n(Xr),
                        es = n(9315),
                        ns = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(es.Z, ns);
                    es.Z.locals;
                    class os extends P {
                        constructor(t, e) {
                            super(),
                                (this.domDocuments = new Set()),
                                (this.domConverter = t),
                                (this.markedAttributes = new Set()),
                                (this.markedChildren = new Set()),
                                (this.markedTexts = new Set()),
                                (this.selection = e),
                                this.set("isFocused", !1),
                                this.set("isSelecting", !1),
                                lr.isBlink &&
                                    !lr.isAndroid &&
                                    this.on("change:isSelecting", () => {
                                        this.isSelecting || this.render();
                                    }),
                                (this._inlineFiller = null),
                                (this._fakeSelectionContainer = null);
                        }
                        markToSync(t, e) {
                            if ("text" === t) this.domConverter.mapViewToDom(e.parent) && this.markedTexts.add(e);
                            else {
                                if (!this.domConverter.mapViewToDom(e)) return;
                                if ("attributes" === t) this.markedAttributes.add(e);
                                else {
                                    if ("children" !== t) throw new c("view-renderer-unknown-type", this);
                                    this.markedChildren.add(e);
                                }
                            }
                        }
                        render() {
                            let t = null;
                            const e = !(lr.isBlink && !lr.isAndroid) || !this.isSelecting;
                            for (const t of this.markedChildren) this._updateChildrenMappings(t);
                            e
                                ? (this._inlineFiller && !this._isSelectionInInlineFiller() && this._removeInlineFiller(),
                                  this._inlineFiller ? (t = this._getInlineFillerPosition()) : this._needsInlineFillerAtSelection() && ((t = this.selection.getFirstPosition()), this.markedChildren.add(t.parent)))
                                : this._inlineFiller && this._inlineFiller.parentNode && ((t = this.domConverter.domPositionToView(this._inlineFiller)), t && t.parent.is("$text") && (t = Hi._createBefore(t.parent)));
                            for (const t of this.markedAttributes) this._updateAttrs(t);
                            for (const e of this.markedChildren) this._updateChildren(e, { inlineFillerPosition: t });
                            for (const e of this.markedTexts) !this.markedChildren.has(e.parent) && this.domConverter.mapViewToDom(e.parent) && this._updateText(e, { inlineFillerPosition: t });
                            if (e)
                                if (t) {
                                    const e = this.domConverter.viewPositionToDom(t),
                                        n = e.parent.ownerDocument;
                                    Vr(e.parent) ? (this._inlineFiller = e.parent) : (this._inlineFiller = is(n, e.parent, e.offset));
                                } else this._inlineFiller = null;
                            this._updateFocus(), this._updateSelection(), this.markedTexts.clear(), this.markedAttributes.clear(), this.markedChildren.clear();
                        }
                        _updateChildrenMappings(t) {
                            if (!this.domConverter.mapViewToDom(t)) return;
                            const e = Array.from(this.domConverter.mapViewToDom(t).childNodes),
                                n = Array.from(this.domConverter.viewChildrenToDom(t, { withChildren: !1 })),
                                o = this._diffNodeLists(e, n),
                                i = this._findReplaceActions(o, e, n);
                            if (-1 !== i.indexOf("replace")) {
                                const o = { equal: 0, insert: 0, delete: 0 };
                                for (const r of i)
                                    if ("replace" === r) {
                                        const i = o.equal + o.insert,
                                            r = o.equal + o.delete,
                                            s = t.getChild(i);
                                        !s || s.is("uiElement") || s.is("rawElement") || this._updateElementMappings(s, e[r]), Qr(n[i]), o.equal++;
                                    } else o[r]++;
                            }
                        }
                        _updateElementMappings(t, e) {
                            this.domConverter.unbindDomElement(e), this.domConverter.bindElements(e, t), this.markedChildren.add(t), this.markedAttributes.add(t);
                        }
                        _getInlineFillerPosition() {
                            const t = this.selection.getFirstPosition();
                            return t.parent.is("$text") ? Hi._createBefore(t.parent) : t;
                        }
                        _isSelectionInInlineFiller() {
                            if (1 != this.selection.rangeCount || !this.selection.isCollapsed) return !1;
                            const t = this.selection.getFirstPosition(),
                                e = this.domConverter.viewPositionToDom(t);
                            return !!(e && Lr(e.parent) && Vr(e.parent));
                        }
                        _removeInlineFiller() {
                            const t = this._inlineFiller;
                            if (!Vr(t)) throw new c("view-renderer-filler-was-lost", this);
                            Hr(t) ? t.remove() : (t.data = t.data.substr(7)), (this._inlineFiller = null);
                        }
                        _needsInlineFillerAtSelection() {
                            if (1 != this.selection.rangeCount || !this.selection.isCollapsed) return !1;
                            const t = this.selection.getFirstPosition(),
                                e = t.parent,
                                n = t.offset;
                            if (!this.domConverter.mapViewToDom(e.root)) return !1;
                            if (!e.is("element")) return !1;
                            if (
                                !(function (t) {
                                    if ("false" == t.getAttribute("contenteditable")) return !1;
                                    const e = t.findAncestor((t) => t.hasAttribute("contenteditable"));
                                    return !e || "true" == e.getAttribute("contenteditable");
                                })(e)
                            )
                                return !1;
                            if (n === e.getFillerOffset()) return !1;
                            const o = t.nodeBefore,
                                i = t.nodeAfter;
                            return !(o instanceof No || i instanceof No);
                        }
                        _updateText(t, e) {
                            const n = this.domConverter.findCorrespondingDomText(t),
                                o = this.domConverter.viewToDom(t),
                                i = n.data;
                            let r = o.data;
                            const s = e.inlineFillerPosition;
                            if ((s && s.parent == t.parent && s.offset == t.index && (r = Fr + r), i != r)) {
                                const t = qr(i, r);
                                for (const e of t) "insert" === e.type ? n.insertData(e.index, e.values.join("")) : n.deleteData(e.index, e.howMany);
                            }
                        }
                        _updateAttrs(t) {
                            const e = this.domConverter.mapViewToDom(t);
                            if (!e) return;
                            const n = Array.from(e.attributes).map((t) => t.name),
                                o = t.getAttributeKeys();
                            for (const n of o) this.domConverter.setDomElementAttribute(e, n, t.getAttribute(n), t);
                            for (const o of n) t.hasAttribute(o) || this.domConverter.removeDomElementAttribute(e, o);
                        }
                        _updateChildren(t, e) {
                            const n = this.domConverter.mapViewToDom(t);
                            if (!n) return;
                            const o = e.inlineFillerPosition,
                                i = this.domConverter.mapViewToDom(t).childNodes,
                                r = Array.from(this.domConverter.viewChildrenToDom(t, { bind: !0 }));
                            o && o.parent === t && is(n.ownerDocument, r, o.offset);
                            const s = this._diffNodeLists(i, r);
                            let a = 0;
                            const c = new Set();
                            for (const t of s) "delete" === t ? (c.add(i[a]), Qr(i[a])) : "equal" === t && a++;
                            a = 0;
                            for (const t of s) "insert" === t ? (Kr(n, a, r[a]), a++) : "equal" === t && (this._markDescendantTextToSync(this.domConverter.domToView(r[a])), a++);
                            for (const t of c) t.parentNode || this.domConverter.unbindDomElement(t);
                        }
                        _diffNodeLists(t, e) {
                            return Yr(
                                (t = (function (t, e) {
                                    const n = Array.from(t);
                                    if (0 == n.length || !e) return n;
                                    n[n.length - 1] == e && n.pop();
                                    return n;
                                })(t, this._fakeSelectionContainer)),
                                e,
                                ss.bind(null, this.domConverter)
                            );
                        }
                        _findReplaceActions(t, e, n) {
                            if (-1 === t.indexOf("insert") || -1 === t.indexOf("delete")) return t;
                            let o = [],
                                i = [],
                                r = [];
                            const s = { equal: 0, insert: 0, delete: 0 };
                            for (const a of t)
                                "insert" === a
                                    ? r.push(n[s.equal + s.insert])
                                    : "delete" === a
                                    ? i.push(e[s.equal + s.delete])
                                    : ((o = o.concat(Yr(i, r, rs).map((t) => ("equal" === t ? "replace" : t)))), o.push("equal"), (i = []), (r = [])),
                                    s[a]++;
                            return o.concat(Yr(i, r, rs).map((t) => ("equal" === t ? "replace" : t)));
                        }
                        _markDescendantTextToSync(t) {
                            if (t)
                                if (t.is("$text")) this.markedTexts.add(t);
                                else if (t.is("element")) for (const e of t.getChildren()) this._markDescendantTextToSync(e);
                        }
                        _updateSelection() {
                            if (lr.isBlink && !lr.isAndroid && this.isSelecting && !this.markedChildren.size) return;
                            if (0 === this.selection.rangeCount) return this._removeDomSelection(), void this._removeFakeSelection();
                            const t = this.domConverter.mapViewToDom(this.selection.editableElement);
                            this.isFocused && t && (this.selection.isFake ? this._updateFakeSelection(t) : (this._removeFakeSelection(), this._updateDomSelection(t)));
                        }
                        _updateFakeSelection(t) {
                            const e = t.ownerDocument;
                            this._fakeSelectionContainer ||
                                (this._fakeSelectionContainer = (function (t) {
                                    const e = t.createElement("div");
                                    return (e.className = "ck-fake-selection-container"), Object.assign(e.style, { position: "fixed", top: 0, left: "-9999px", width: "42px" }), (e.textContent = " "), e;
                                })(e));
                            const n = this._fakeSelectionContainer;
                            if ((this.domConverter.bindFakeSelection(n, this.selection), !this._fakeSelectionNeedsUpdate(t))) return;
                            (n.parentElement && n.parentElement == t) || t.appendChild(n), (n.textContent = this.selection.fakeSelectionLabel || " ");
                            const o = e.getSelection(),
                                i = e.createRange();
                            o.removeAllRanges(), i.selectNodeContents(n), o.addRange(i);
                        }
                        _updateDomSelection(t) {
                            const e = t.ownerDocument.defaultView.getSelection();
                            if (!this._domSelectionNeedsUpdate(e)) return;
                            const n = this.domConverter.viewPositionToDom(this.selection.anchor),
                                o = this.domConverter.viewPositionToDom(this.selection.focus);
                            e.collapse(n.parent, n.offset),
                                e.extend(o.parent, o.offset),
                                lr.isGecko &&
                                    (function (t, e) {
                                        const n = t.parent;
                                        if (n.nodeType != Node.ELEMENT_NODE || t.offset != n.childNodes.length - 1) return;
                                        const o = n.childNodes[t.offset];
                                        o && "BR" == o.tagName && e.addRange(e.getRangeAt(0));
                                    })(o, e);
                        }
                        _domSelectionNeedsUpdate(t) {
                            if (!this.domConverter.isDomSelectionCorrect(t)) return !0;
                            const e = t && this.domConverter.domSelectionToView(t);
                            return (!e || !this.selection.isEqual(e)) && !(!this.selection.isCollapsed && this.selection.isSimilar(e));
                        }
                        _fakeSelectionNeedsUpdate(t) {
                            const e = this._fakeSelectionContainer,
                                n = t.ownerDocument.getSelection();
                            return !e || e.parentElement !== t || (n.anchorNode !== e && !e.contains(n.anchorNode)) || e.textContent !== this.selection.fakeSelectionLabel;
                        }
                        _removeDomSelection() {
                            for (const t of this.domDocuments) {
                                const e = t.getSelection();
                                if (e.rangeCount) {
                                    const n = t.activeElement,
                                        o = this.domConverter.mapDomToView(n);
                                    n && o && e.removeAllRanges();
                                }
                            }
                        }
                        _removeFakeSelection() {
                            const t = this._fakeSelectionContainer;
                            t && t.remove();
                        }
                        _updateFocus() {
                            if (this.isFocused) {
                                const t = this.selection.editableElement;
                                t && this.domConverter.focus(t);
                            }
                        }
                    }
                    function is(t, e, n) {
                        const o = e instanceof Array ? e : e.childNodes,
                            i = o[n];
                        if (Lr(i)) return (i.data = Fr + i.data), i;
                        {
                            const i = t.createTextNode(Fr);
                            return Array.isArray(e) ? o.splice(n, 0, i) : Kr(e, n, i), i;
                        }
                    }
                    function rs(t, e) {
                        return Jr(t) && Jr(e) && !Lr(t) && !Lr(e) && !Zr(t) && !Zr(e) && t.tagName.toLowerCase() === e.tagName.toLowerCase();
                    }
                    function ss(t, e, n) {
                        return e === n || (Lr(e) && Lr(n) ? e.data === n.data : !(!t.isBlockFiller(e) || !t.isBlockFiller(n)));
                    }
                    function as(t) {
                        let e = 0;
                        for (; t.previousSibling; ) (t = t.previousSibling), e++;
                        return e;
                    }
                    function cs(t) {
                        const e = [];
                        let n = t;
                        for (; n && n.nodeType != Node.DOCUMENT_NODE; ) e.unshift(n), (n = n.parentNode);
                        return e;
                    }
                    const ls = jr(Ao.document),
                        ds = Or(Ao.document),
                        hs = Rr(Ao.document),
                        us = "data-ck-unsafe-attribute-",
                        gs = "data-ck-unsafe-element";
                    class ms {
                        constructor(t, e = {}) {
                            (this.document = t),
                                (this.renderingMode = e.renderingMode || "editing"),
                                (this.blockFillerMode = e.blockFillerMode || ("editing" === this.renderingMode ? "br" : "nbsp")),
                                (this.preElements = ["pre"]),
                                (this.blockElements = [
                                    "address",
                                    "article",
                                    "aside",
                                    "blockquote",
                                    "caption",
                                    "center",
                                    "dd",
                                    "details",
                                    "dir",
                                    "div",
                                    "dl",
                                    "dt",
                                    "fieldset",
                                    "figcaption",
                                    "figure",
                                    "footer",
                                    "form",
                                    "h1",
                                    "h2",
                                    "h3",
                                    "h4",
                                    "h5",
                                    "h6",
                                    "header",
                                    "hgroup",
                                    "legend",
                                    "li",
                                    "main",
                                    "menu",
                                    "nav",
                                    "ol",
                                    "p",
                                    "pre",
                                    "section",
                                    "summary",
                                    "table",
                                    "tbody",
                                    "td",
                                    "tfoot",
                                    "th",
                                    "thead",
                                    "tr",
                                    "ul",
                                ]),
                                (this.inlineObjectElements = ["object", "iframe", "input", "button", "textarea", "select", "option", "video", "embed", "audio", "img", "canvas"]),
                                (this.unsafeElements = ["script", "style"]),
                                (this._domDocument = "editing" === this.renderingMode ? Ao.document : Ao.document.implementation.createHTMLDocument("")),
                                (this._domToViewMapping = new WeakMap()),
                                (this._viewToDomMapping = new WeakMap()),
                                (this._fakeSelectionMapping = new WeakMap()),
                                (this._rawContentElementMatcher = new zo()),
                                (this._encounteredRawContentDomNodes = new WeakSet());
                        }
                        bindFakeSelection(t, e) {
                            this._fakeSelectionMapping.set(t, new Gi(e));
                        }
                        fakeSelectionToView(t) {
                            return this._fakeSelectionMapping.get(t);
                        }
                        bindElements(t, e) {
                            this._domToViewMapping.set(t, e), this._viewToDomMapping.set(e, t);
                        }
                        unbindDomElement(t) {
                            const e = this._domToViewMapping.get(t);
                            if (e) {
                                this._domToViewMapping.delete(t), this._viewToDomMapping.delete(e);
                                for (const e of Array.from(t.children)) this.unbindDomElement(e);
                            }
                        }
                        bindDocumentFragments(t, e) {
                            this._domToViewMapping.set(t, e), this._viewToDomMapping.set(e, t);
                        }
                        shouldRenderAttribute(t, e, n) {
                            return (
                                "data" === this.renderingMode ||
                                (!(t = t.toLowerCase()).startsWith("on") &&
                                    ("srcdoc" !== t || !e.match(/\bon\S+\s*=|javascript:|<\s*\/*script/i)) &&
                                    (("img" === n && ("src" === t || "srcset" === t)) || ("source" === n && "srcset" === t) || !e.match(/^\s*(javascript:|data:(image\/svg|text\/x?html))/i)))
                            );
                        }
                        setContentOf(t, e) {
                            if ("data" === this.renderingMode) return void (t.innerHTML = e);
                            const n = new DOMParser().parseFromString(e, "text/html"),
                                o = n.createDocumentFragment(),
                                i = n.body.childNodes;
                            for (; i.length > 0; ) o.appendChild(i[0]);
                            const r = n.createTreeWalker(o, NodeFilter.SHOW_ELEMENT),
                                s = [];
                            let a;
                            for (; (a = r.nextNode()); ) s.push(a);
                            for (const t of s) {
                                for (const e of t.getAttributeNames()) this.setDomElementAttribute(t, e, t.getAttribute(e));
                                const e = t.tagName.toLowerCase();
                                this._shouldRenameElement(e) && (ks(e), t.replaceWith(this._createReplacementDomElement(e, t)));
                            }
                            for (; t.firstChild; ) t.firstChild.remove();
                            t.append(o);
                        }
                        viewToDom(t, e = {}) {
                            if (t.is("$text")) {
                                const e = this._processDataFromViewText(t);
                                return this._domDocument.createTextNode(e);
                            }
                            {
                                if (this.mapViewToDom(t)) return this.mapViewToDom(t);
                                let n;
                                if (t.is("documentFragment")) (n = this._domDocument.createDocumentFragment()), e.bind && this.bindDocumentFragments(n, t);
                                else {
                                    if (t.is("uiElement")) return (n = "$comment" === t.name ? this._domDocument.createComment(t.getCustomProperty("$rawContent")) : t.render(this._domDocument, this)), e.bind && this.bindElements(n, t), n;
                                    this._shouldRenameElement(t.name)
                                        ? (ks(t.name), (n = this._createReplacementDomElement(t.name)))
                                        : (n = t.hasAttribute("xmlns") ? this._domDocument.createElementNS(t.getAttribute("xmlns"), t.name) : this._domDocument.createElement(t.name)),
                                        t.is("rawElement") && t.render(n, this),
                                        e.bind && this.bindElements(n, t);
                                    for (const e of t.getAttributeKeys()) this.setDomElementAttribute(n, e, t.getAttribute(e), t);
                                }
                                if (!1 !== e.withChildren) for (const o of this.viewChildrenToDom(t, e)) n.appendChild(o);
                                return n;
                            }
                        }
                        setDomElementAttribute(t, e, n, o) {
                            const i = this.shouldRenderAttribute(e, n, t.tagName.toLowerCase()) || (o && o.shouldRenderUnsafeAttribute(e));
                            i || l("domconverter-unsafe-attribute-detected", { domElement: t, key: e, value: n }),
                                t.hasAttribute(e) && !i ? t.removeAttribute(e) : t.hasAttribute(us + e) && i && t.removeAttribute(us + e),
                                t.setAttribute(i ? e : us + e, n);
                        }
                        removeDomElementAttribute(t, e) {
                            e != gs && (t.removeAttribute(e), t.removeAttribute(us + e));
                        }
                        *viewChildrenToDom(t, e = {}) {
                            const n = t.getFillerOffset && t.getFillerOffset();
                            let o = 0;
                            for (const i of t.getChildren()) {
                                n === o && (yield this._getBlockFiller());
                                const t = i.is("element") && i.getCustomProperty("dataPipeline:transparentRendering");
                                t && "data" == this.renderingMode ? yield* this.viewChildrenToDom(i, e) : (t && l("domconverter-transparent-rendering-unsupported-in-editing-pipeline", { viewElement: i }), yield this.viewToDom(i, e)), o++;
                            }
                            n === o && (yield this._getBlockFiller());
                        }
                        viewRangeToDom(t) {
                            const e = this.viewPositionToDom(t.start),
                                n = this.viewPositionToDom(t.end),
                                o = this._domDocument.createRange();
                            return o.setStart(e.parent, e.offset), o.setEnd(n.parent, n.offset), o;
                        }
                        viewPositionToDom(t) {
                            const e = t.parent;
                            if (e.is("$text")) {
                                const n = this.findCorrespondingDomText(e);
                                if (!n) return null;
                                let o = t.offset;
                                return Vr(n) && (o += 7), { parent: n, offset: o };
                            }
                            {
                                let n, o, i;
                                if (0 === t.offset) {
                                    if (((n = this.mapViewToDom(e)), !n)) return null;
                                    i = n.childNodes[0];
                                } else {
                                    const e = t.nodeBefore;
                                    if (((o = e.is("$text") ? this.findCorrespondingDomText(e) : this.mapViewToDom(e)), !o)) return null;
                                    (n = o.parentNode), (i = o.nextSibling);
                                }
                                if (Lr(i) && Vr(i)) return { parent: i, offset: 7 };
                                return { parent: n, offset: o ? as(o) + 1 : 0 };
                            }
                        }
                        domToView(t, e = {}) {
                            if (this.isBlockFiller(t)) return null;
                            const n = this.getHostViewElement(t);
                            if (n) return n;
                            if (Zr(t) && e.skipComments) return null;
                            if (Lr(t)) {
                                if (Hr(t)) return null;
                                {
                                    const e = this._processDataFromDomText(t);
                                    return "" === e ? null : new No(this.document, e);
                                }
                            }
                            {
                                if (this.mapDomToView(t)) return this.mapDomToView(t);
                                let n;
                                if (this.isDocumentFragment(t)) (n = new yr(this.document)), e.bind && this.bindDocumentFragments(t, n);
                                else {
                                    (n = this._createViewElement(t, e)), e.bind && this.bindElements(t, n);
                                    const o = t.attributes;
                                    if (o) for (let t = o.length, e = 0; e < t; e++) n._setAttribute(o[e].name, o[e].value);
                                    if (this._isViewElementWithRawContent(n, e) || Zr(t)) {
                                        const e = Zr(t) ? t.data : t.innerHTML;
                                        return n._setCustomProperty("$rawContent", e), this._encounteredRawContentDomNodes.add(t), n;
                                    }
                                }
                                if (!1 !== e.withChildren) for (const o of this.domChildrenToView(t, e)) n._appendChild(o);
                                return n;
                            }
                        }
                        *domChildrenToView(t, e) {
                            for (let n = 0; n < t.childNodes.length; n++) {
                                const o = t.childNodes[n],
                                    i = this.domToView(o, e);
                                null !== i && (yield i);
                            }
                        }
                        domSelectionToView(t) {
                            if (1 === t.rangeCount) {
                                let e = t.getRangeAt(0).startContainer;
                                Lr(e) && (e = e.parentNode);
                                const n = this.fakeSelectionToView(e);
                                if (n) return n;
                            }
                            const e = this.isDomSelectionBackward(t),
                                n = [];
                            for (let e = 0; e < t.rangeCount; e++) {
                                const o = t.getRangeAt(e),
                                    i = this.domRangeToView(o);
                                i && n.push(i);
                            }
                            return new Gi(n, { backward: e });
                        }
                        domRangeToView(t) {
                            const e = this.domPositionToView(t.startContainer, t.startOffset),
                                n = this.domPositionToView(t.endContainer, t.endOffset);
                            return e && n ? new Ui(e, n) : null;
                        }
                        domPositionToView(t, e = 0) {
                            if (this.isBlockFiller(t)) return this.domPositionToView(t.parentNode, as(t));
                            const n = this.mapDomToView(t);
                            if (n && (n.is("uiElement") || n.is("rawElement"))) return Hi._createBefore(n);
                            if (Lr(t)) {
                                if (Hr(t)) return this.domPositionToView(t.parentNode, as(t));
                                const n = this.findCorrespondingViewText(t);
                                let o = e;
                                return n ? (Vr(t) && ((o -= 7), (o = o < 0 ? 0 : o)), new Hi(n, o)) : null;
                            }
                            if (0 === e) {
                                const e = this.mapDomToView(t);
                                if (e) return new Hi(e, 0);
                            } else {
                                const n = t.childNodes[e - 1],
                                    o = Lr(n) ? this.findCorrespondingViewText(n) : this.mapDomToView(n);
                                if (o && o.parent) return new Hi(o.parent, o.index + 1);
                            }
                            return null;
                        }
                        mapDomToView(t) {
                            return this.getHostViewElement(t) || this._domToViewMapping.get(t);
                        }
                        findCorrespondingViewText(t) {
                            if (Hr(t)) return null;
                            const e = this.getHostViewElement(t);
                            if (e) return e;
                            const n = t.previousSibling;
                            if (n) {
                                if (!this.isElement(n)) return null;
                                const t = this.mapDomToView(n);
                                if (t) {
                                    const e = t.nextSibling;
                                    return e instanceof No ? e : null;
                                }
                            } else {
                                const e = this.mapDomToView(t.parentNode);
                                if (e) {
                                    const t = e.getChild(0);
                                    return t instanceof No ? t : null;
                                }
                            }
                            return null;
                        }
                        mapViewToDom(t) {
                            return this._viewToDomMapping.get(t);
                        }
                        findCorrespondingDomText(t) {
                            const e = t.previousSibling;
                            return e && this.mapViewToDom(e) ? this.mapViewToDom(e).nextSibling : !e && t.parent && this.mapViewToDom(t.parent) ? this.mapViewToDom(t.parent).childNodes[0] : null;
                        }
                        focus(t) {
                            const e = this.mapViewToDom(t);
                            if (e && e.ownerDocument.activeElement !== e) {
                                const { scrollX: t, scrollY: n } = Ao.window,
                                    o = [];
                                ps(e, (t) => {
                                    const { scrollLeft: e, scrollTop: n } = t;
                                    o.push([e, n]);
                                }),
                                    e.focus(),
                                    ps(e, (t) => {
                                        const [e, n] = o.shift();
                                        (t.scrollLeft = e), (t.scrollTop = n);
                                    }),
                                    Ao.window.scrollTo(t, n);
                            }
                        }
                        isElement(t) {
                            return t && t.nodeType == Node.ELEMENT_NODE;
                        }
                        isDocumentFragment(t) {
                            return t && t.nodeType == Node.DOCUMENT_FRAGMENT_NODE;
                        }
                        isBlockFiller(t) {
                            return "br" == this.blockFillerMode
                                ? t.isEqualNode(ls)
                                : !("BR" !== t.tagName || !fs(t, this.blockElements) || 1 !== t.parentNode.childNodes.length) ||
                                      t.isEqualNode(hs) ||
                                      (function (t, e) {
                                          return t.isEqualNode(ds) && fs(t, e) && 1 === t.parentNode.childNodes.length;
                                      })(t, this.blockElements);
                        }
                        isDomSelectionBackward(t) {
                            if (t.isCollapsed) return !1;
                            const e = this._domDocument.createRange();
                            e.setStart(t.anchorNode, t.anchorOffset), e.setEnd(t.focusNode, t.focusOffset);
                            const n = e.collapsed;
                            return e.detach(), n;
                        }
                        getHostViewElement(t) {
                            const e = cs(t);
                            for (e.pop(); e.length; ) {
                                const t = e.pop(),
                                    n = this._domToViewMapping.get(t);
                                if (n && (n.is("uiElement") || n.is("rawElement"))) return n;
                            }
                            return null;
                        }
                        isDomSelectionCorrect(t) {
                            return this._isDomSelectionPositionCorrect(t.anchorNode, t.anchorOffset) && this._isDomSelectionPositionCorrect(t.focusNode, t.focusOffset);
                        }
                        registerRawContentMatcher(t) {
                            this._rawContentElementMatcher.add(t);
                        }
                        _getBlockFiller() {
                            switch (this.blockFillerMode) {
                                case "nbsp":
                                    return Or(this._domDocument);
                                case "markedNbsp":
                                    return Rr(this._domDocument);
                                case "br":
                                    return jr(this._domDocument);
                            }
                        }
                        _isDomSelectionPositionCorrect(t, e) {
                            if (Lr(t) && Vr(t) && e < 7) return !1;
                            if (this.isElement(t) && Vr(t.childNodes[e])) return !1;
                            const n = this.mapDomToView(t);
                            return !n || (!n.is("uiElement") && !n.is("rawElement"));
                        }
                        _processDataFromViewText(t) {
                            let e = t.data;
                            if (t.getAncestors().some((t) => this.preElements.includes(t.name))) return e;
                            if (" " == e.charAt(0)) {
                                const n = this._getTouchingInlineViewNode(t, !1);
                                (!(n && n.is("$textProxy") && this._nodeEndsWithSpace(n)) && n) || (e = " " + e.substr(1));
                            }
                            if (" " == e.charAt(e.length - 1)) {
                                const n = this._getTouchingInlineViewNode(t, !0),
                                    o = n && n.is("$textProxy") && " " == n.data.charAt(0);
                                (" " != e.charAt(e.length - 2) && n && !o) || (e = e.substr(0, e.length - 1) + " ");
                            }
                            return e.replace(/ {2}/g, "  ");
                        }
                        _nodeEndsWithSpace(t) {
                            if (t.getAncestors().some((t) => this.preElements.includes(t.name))) return !1;
                            const e = this._processDataFromViewText(t);
                            return " " == e.charAt(e.length - 1);
                        }
                        _processDataFromDomText(t) {
                            let e = t.data;
                            if (
                                (function (t, e) {
                                    return cs(t).some((t) => t.tagName && e.includes(t.tagName.toLowerCase()));
                                })(t, this.preElements)
                            )
                                return Ur(t);
                            e = e.replace(/[ \n\t\r]{1,}/g, " ");
                            const n = this._getTouchingInlineDomNode(t, !1),
                                o = this._getTouchingInlineDomNode(t, !0),
                                i = this._checkShouldLeftTrimDomText(t, n),
                                r = this._checkShouldRightTrimDomText(t, o);
                            i && (e = e.replace(/^ /, "")), r && (e = e.replace(/ $/, "")), (e = Ur(new Text(e))), (e = e.replace(/ \u00A0/g, "  "));
                            const s = o && this.isElement(o) && "BR" != o.tagName,
                                a = o && Lr(o) && " " == o.data.charAt(0);
                            return (/( |\u00A0)\u00A0$/.test(e) || !o || s || a) && (e = e.replace(/\u00A0$/, " ")), (i || (n && this.isElement(n) && "BR" != n.tagName)) && (e = e.replace(/^\u00A0/, " ")), e;
                        }
                        _checkShouldLeftTrimDomText(t, e) {
                            return !e || (this.isElement(e) ? "BR" === e.tagName : !this._encounteredRawContentDomNodes.has(t.previousSibling) && /[^\S\u00A0]/.test(e.data.charAt(e.data.length - 1)));
                        }
                        _checkShouldRightTrimDomText(t, e) {
                            return !e && !Vr(t);
                        }
                        _getTouchingInlineViewNode(t, e) {
                            const n = new Vi({ startPosition: e ? Hi._createAfter(t) : Hi._createBefore(t), direction: e ? "forward" : "backward" });
                            for (const t of n) {
                                if (t.item.is("element") && this.inlineObjectElements.includes(t.item.name)) return t.item;
                                if (t.item.is("containerElement")) return null;
                                if (t.item.is("element", "br")) return null;
                                if (t.item.is("$textProxy")) return t.item;
                            }
                            return null;
                        }
                        _getTouchingInlineDomNode(t, e) {
                            if (!t.parentNode) return null;
                            const n = e ? "firstChild" : "lastChild",
                                o = e ? "nextSibling" : "previousSibling";
                            let i = !0,
                                r = t;
                            do {
                                if ((!i && r[n] ? (r = r[n]) : r[o] ? ((r = r[o]), (i = !1)) : ((r = r.parentNode), (i = !0)), !r || this._isBlockElement(r))) return null;
                            } while (!Lr(r) && "BR" != r.tagName && !this._isInlineObjectElement(r));
                            return r;
                        }
                        _isBlockElement(t) {
                            return this.isElement(t) && this.blockElements.includes(t.tagName.toLowerCase());
                        }
                        _isInlineObjectElement(t) {
                            return this.isElement(t) && this.inlineObjectElements.includes(t.tagName.toLowerCase());
                        }
                        _createViewElement(t, e) {
                            if (Zr(t)) return new wr(this.document, "$comment");
                            const n = e.keepOriginalCase ? t.tagName : t.tagName.toLowerCase();
                            return new Pi(this.document, n);
                        }
                        _isViewElementWithRawContent(t, e) {
                            return !1 !== e.withChildren && !!this._rawContentElementMatcher.match(t);
                        }
                        _shouldRenameElement(t) {
                            const e = t.toLowerCase();
                            return "editing" === this.renderingMode && this.unsafeElements.includes(e);
                        }
                        _createReplacementDomElement(t, e) {
                            const n = this._domDocument.createElement("span");
                            if ((n.setAttribute(gs, t), e)) {
                                for (; e.firstChild; ) n.appendChild(e.firstChild);
                                for (const t of e.getAttributeNames()) n.setAttribute(t, e.getAttribute(t));
                            }
                            return n;
                        }
                    }
                    function ps(t, e) {
                        let n = t;
                        for (; n; ) e(n), (n = n.parentElement);
                    }
                    function fs(t, e) {
                        const n = t.parentNode;
                        return !!n && !!n.tagName && e.includes(n.tagName.toLowerCase());
                    }
                    function ks(t) {
                        "script" === t && l("domconverter-unsafe-script-element-detected"), "style" === t && l("domconverter-unsafe-style-element-detected");
                    }
                    function bs(t) {
                        const e = Object.prototype.toString.apply(t);
                        return "[object Window]" == e || "[object global]" == e;
                    }
                    function ws(t) {
                        return class extends t {
                            listenTo(t, e, n, o = {}) {
                                if (Jr(t) || bs(t)) {
                                    const i = { capture: !!o.useCapture, passive: !!o.usePassive },
                                        r = this._getProxyEmitter(t, i) || new As(t, i);
                                    this.listenTo(r, e, n, o);
                                } else w.prototype.listenTo.call(this, t, e, n, o);
                            }
                            stopListening(t, e, n) {
                                if (Jr(t) || bs(t)) {
                                    const o = this._getAllProxyEmitters(t);
                                    for (const t of o) this.stopListening(t, e, n);
                                } else w.prototype.stopListening.call(this, t, e, n);
                            }
                            _getProxyEmitter(t, e) {
                                return (function (t, e) {
                                    const n = t[p];
                                    return n && n[e] ? n[e].emitter : null;
                                })(this, Cs(t, e));
                            }
                            _getAllProxyEmitters(t) {
                                return [
                                    { capture: !1, passive: !1 },
                                    { capture: !1, passive: !0 },
                                    { capture: !0, passive: !1 },
                                    { capture: !0, passive: !0 },
                                ]
                                    .map((e) => this._getProxyEmitter(t, e))
                                    .filter((t) => !!t);
                            }
                        };
                    }
                    const _s = ws(w);
                    ["_getProxyEmitter", "_getAllProxyEmitters", "on", "once", "off", "listenTo", "stopListening", "fire", "delegate", "stopDelegating", "_addEventListener", "_removeEventListener"].forEach((t) => {
                        ws[t] = _s.prototype[t];
                    });
                    class As extends w {
                        constructor(t, e) {
                            super(), _(this, Cs(t, e)), (this._domNode = t), (this._options = e);
                        }
                        attach(t) {
                            if (this._domListeners && this._domListeners[t]) return;
                            const e = this._createDomListener(t);
                            this._domNode.addEventListener(t, e, this._options), this._domListeners || (this._domListeners = {}), (this._domListeners[t] = e);
                        }
                        detach(t) {
                            let e;
                            !this._domListeners[t] || ((e = this._events[t]) && e.callbacks.length) || this._domListeners[t].removeListener();
                        }
                        _addEventListener(t, e, n) {
                            this.attach(t), w.prototype._addEventListener.call(this, t, e, n);
                        }
                        _removeEventListener(t, e) {
                            w.prototype._removeEventListener.call(this, t, e), this.detach(t);
                        }
                        _createDomListener(t) {
                            const e = (e) => {
                                this.fire(t, e);
                            };
                            return (
                                (e.removeListener = () => {
                                    this._domNode.removeEventListener(t, e, this._options), delete this._domListeners[t];
                                }),
                                e
                            );
                        }
                    }
                    function Cs(t, e) {
                        let n = (function (t) {
                            return t["data-ck-expando"] || (t["data-ck-expando"] = r());
                        })(t);
                        for (const t of Object.keys(e).sort()) e[t] && (n += "-" + t);
                        return n;
                    }
                    class vs extends _s {
                        constructor(t) {
                            super(), (this.view = t), (this.document = t.document), (this.isEnabled = !1);
                        }
                        enable() {
                            this.isEnabled = !0;
                        }
                        disable() {
                            this.isEnabled = !1;
                        }
                        destroy() {
                            this.disable(), this.stopListening();
                        }
                        checkShouldIgnoreEventFromTarget(t) {
                            return t && 3 === t.nodeType && (t = t.parentNode), !(!t || 1 !== t.nodeType) && t.matches("[data-cke-ignore-events], [data-cke-ignore-events] *");
                        }
                    }
                    const ys = function (t) {
                        return this.__data__.set(t, "__lodash_hash_undefined__"), this;
                    };
                    const xs = function (t) {
                        return this.__data__.has(t);
                    };
                    function Es(t) {
                        var e = -1,
                            n = null == t ? 0 : t.length;
                        for (this.__data__ = new ce(); ++e < n; ) this.add(t[e]);
                    }
                    (Es.prototype.add = Es.prototype.push = ys), (Es.prototype.has = xs);
                    const Ds = Es;
                    const Is = function (t, e) {
                        for (var n = -1, o = null == t ? 0 : t.length; ++n < o; ) if (e(t[n], n, t)) return !0;
                        return !1;
                    };
                    const Ms = function (t, e) {
                        return t.has(e);
                    };
                    const Ts = function (t, e, n, o, i, r) {
                        var s = 1 & n,
                            a = t.length,
                            c = e.length;
                        if (a != c && !(s && c > a)) return !1;
                        var l = r.get(t),
                            d = r.get(e);
                        if (l && d) return l == e && d == t;
                        var h = -1,
                            u = !0,
                            g = 2 & n ? new Ds() : void 0;
                        for (r.set(t, e), r.set(e, t); ++h < a; ) {
                            var m = t[h],
                                p = e[h];
                            if (o) var f = s ? o(p, m, h, e, t, r) : o(m, p, h, t, e, r);
                            if (void 0 !== f) {
                                if (f) continue;
                                u = !1;
                                break;
                            }
                            if (g) {
                                if (
                                    !Is(e, function (t, e) {
                                        if (!Ms(g, e) && (m === t || i(m, t, n, o, r))) return g.push(e);
                                    })
                                ) {
                                    u = !1;
                                    break;
                                }
                            } else if (m !== p && !i(m, p, n, o, r)) {
                                u = !1;
                                break;
                            }
                        }
                        return r.delete(t), r.delete(e), u;
                    };
                    const Ss = function (t) {
                        var e = -1,
                            n = Array(t.size);
                        return (
                            t.forEach(function (t, o) {
                                n[++e] = [o, t];
                            }),
                            n
                        );
                    };
                    const Ns = function (t) {
                        var e = -1,
                            n = Array(t.size);
                        return (
                            t.forEach(function (t) {
                                n[++e] = t;
                            }),
                            n
                        );
                    };
                    var Bs = K ? K.prototype : void 0,
                        Ps = Bs ? Bs.valueOf : void 0;
                    const zs = function (t, e, n, o, i, r, s) {
                        switch (n) {
                            case "[object DataView]":
                                if (t.byteLength != e.byteLength || t.byteOffset != e.byteOffset) return !1;
                                (t = t.buffer), (e = e.buffer);
                            case "[object ArrayBuffer]":
                                return !(t.byteLength != e.byteLength || !r(new Fn(t), new Fn(e)));
                            case "[object Boolean]":
                            case "[object Date]":
                            case "[object Number]":
                                return pt(+t, +e);
                            case "[object Error]":
                                return t.name == e.name && t.message == e.message;
                            case "[object RegExp]":
                            case "[object String]":
                                return t == e + "";
                            case "[object Map]":
                                var a = Ss;
                            case "[object Set]":
                                var c = 1 & o;
                                if ((a || (a = Ns), t.size != e.size && !c)) return !1;
                                var l = s.get(t);
                                if (l) return l == e;
                                (o |= 2), s.set(t, e);
                                var d = Ts(a(t), a(e), o, i, r, s);
                                return s.delete(t), d;
                            case "[object Symbol]":
                                if (Ps) return Ps.call(t) == Ps.call(e);
                        }
                        return !1;
                    };
                    var Ls = Object.prototype.hasOwnProperty;
                    const Os = function (t, e, n, o, i, r) {
                        var s = 1 & n,
                            a = _n(t),
                            c = a.length;
                        if (c != _n(e).length && !s) return !1;
                        for (var l = c; l--; ) {
                            var d = a[l];
                            if (!(s ? d in e : Ls.call(e, d))) return !1;
                        }
                        var h = r.get(t),
                            u = r.get(e);
                        if (h && u) return h == e && u == t;
                        var g = !0;
                        r.set(t, e), r.set(e, t);
                        for (var m = s; ++l < c; ) {
                            var p = t[(d = a[l])],
                                f = e[d];
                            if (o) var k = s ? o(f, p, d, e, t, r) : o(p, f, d, t, e, r);
                            if (!(void 0 === k ? p === f || i(p, f, n, o, r) : k)) {
                                g = !1;
                                break;
                            }
                            m || (m = "constructor" == d);
                        }
                        if (g && !m) {
                            var b = t.constructor,
                                w = e.constructor;
                            b == w || !("constructor" in t) || !("constructor" in e) || ("function" == typeof b && b instanceof b && "function" == typeof w && w instanceof w) || (g = !1);
                        }
                        return r.delete(t), r.delete(e), g;
                    };
                    var Rs = "[object Arguments]",
                        js = "[object Array]",
                        Fs = "[object Object]",
                        Vs = Object.prototype.hasOwnProperty;
                    const Hs = function (t, e, n, o, i, r) {
                        var s = ye(t),
                            a = ye(e),
                            c = s ? js : On(t),
                            l = a ? js : On(e),
                            d = (c = c == Rs ? Fs : c) == Fs,
                            h = (l = l == Rs ? Fs : l) == Fs,
                            u = c == l;
                        if (u && Me(t)) {
                            if (!Me(e)) return !1;
                            (s = !0), (d = !1);
                        }
                        if (u && !d) return r || (r = new he()), s || Ve(t) ? Ts(t, e, n, o, i, r) : zs(t, e, c, n, o, i, r);
                        if (!(1 & n)) {
                            var g = d && Vs.call(t, "__wrapped__"),
                                m = h && Vs.call(e, "__wrapped__");
                            if (g || m) {
                                var p = g ? t.value() : t,
                                    f = m ? e.value() : e;
                                return r || (r = new he()), i(p, f, n, o, r);
                            }
                        }
                        return !!u && (r || (r = new he()), Os(t, e, n, o, i, r));
                    };
                    const Us = function t(e, n, o, i, r) {
                        return e === n || (null == e || null == n || (!at(e) && !at(n)) ? e != e && n != n : Hs(e, n, o, i, t, r));
                    };
                    const Ws = function (t, e, n) {
                        var o = (n = "function" == typeof n ? n : void 0) ? n(t, e) : void 0;
                        return void 0 === o ? Us(t, e, void 0, n) : !!o;
                    };
                    class qs extends vs {
                        constructor(t) {
                            super(t),
                                (this._config = { childList: !0, characterData: !0, characterDataOldValue: !0, subtree: !0 }),
                                (this.domConverter = t.domConverter),
                                (this.renderer = t._renderer),
                                (this._domElements = []),
                                (this._mutationObserver = new window.MutationObserver(this._onMutations.bind(this)));
                        }
                        flush() {
                            this._onMutations(this._mutationObserver.takeRecords());
                        }
                        observe(t) {
                            this._domElements.push(t), this.isEnabled && this._mutationObserver.observe(t, this._config);
                        }
                        enable() {
                            super.enable();
                            for (const t of this._domElements) this._mutationObserver.observe(t, this._config);
                        }
                        disable() {
                            super.disable(), this._mutationObserver.disconnect();
                        }
                        destroy() {
                            super.destroy(), this._mutationObserver.disconnect();
                        }
                        _onMutations(t) {
                            if (0 === t.length) return;
                            const e = this.domConverter,
                                n = new Map(),
                                o = new Set();
                            for (const n of t)
                                if ("childList" === n.type) {
                                    const t = e.mapDomToView(n.target);
                                    if (t && (t.is("uiElement") || t.is("rawElement"))) continue;
                                    t && !this._isBogusBrMutation(n) && o.add(t);
                                }
                            for (const i of t) {
                                const t = e.mapDomToView(i.target);
                                if ((!t || (!t.is("uiElement") && !t.is("rawElement"))) && "characterData" === i.type) {
                                    const t = e.findCorrespondingViewText(i.target);
                                    t && !o.has(t.parent) ? n.set(t, { type: "text", oldText: t.data, newText: Ur(i.target), node: t }) : !t && Vr(i.target) && o.add(e.mapDomToView(i.target.parentNode));
                                }
                            }
                            const i = [];
                            for (const t of n.values()) this.renderer.markToSync("text", t.node), i.push(t);
                            for (const t of o) {
                                const n = e.mapViewToDom(t),
                                    o = Array.from(t.getChildren()),
                                    r = Array.from(e.domChildrenToView(n, { withChildren: !1 }));
                                Ws(o, r, a) || (this.renderer.markToSync("children", t), i.push({ type: "children", oldChildren: o, newChildren: r, node: t }));
                            }
                            const r = t[0].target.ownerDocument.getSelection();
                            let s = null;
                            if (r && r.anchorNode) {
                                const t = e.domPositionToView(r.anchorNode, r.anchorOffset),
                                    n = e.domPositionToView(r.focusNode, r.focusOffset);
                                t && n && ((s = new Gi(t)), s.setFocus(n));
                            }
                            function a(t, e) {
                                if (!Array.isArray(t)) return t === e || (!(!t.is("$text") || !e.is("$text")) && t.data === e.data);
                            }
                            i.length && (this.document.fire("mutations", i, s), this.view.forceRender());
                        }
                        _isBogusBrMutation(t) {
                            let e = null;
                            return null === t.nextSibling && 0 === t.removedNodes.length && 1 == t.addedNodes.length && (e = this.domConverter.domToView(t.addedNodes[0], { withChildren: !1 })), e && e.is("element", "br");
                        }
                    }
                    const Gs = Ei(function (t, e) {
                        ke(e, en(e), t);
                    });
                    class $s {
                        constructor(t, e, n) {
                            (this.view = t), (this.document = t.document), (this.domEvent = e), (this.domTarget = e.target), Gs(this, n);
                        }
                        get target() {
                            return this.view.domConverter.mapDomToView(this.domTarget);
                        }
                        preventDefault() {
                            this.domEvent.preventDefault();
                        }
                        stopPropagation() {
                            this.domEvent.stopPropagation();
                        }
                    }
                    class Ys extends vs {
                        constructor(t) {
                            super(t), (this.useCapture = !1);
                        }
                        observe(t) {
                            ("string" == typeof this.domEventType ? [this.domEventType] : this.domEventType).forEach((e) => {
                                this.listenTo(
                                    t,
                                    e,
                                    (t, e) => {
                                        this.isEnabled && !this.checkShouldIgnoreEventFromTarget(e.target) && this.onDomEvent(e);
                                    },
                                    { useCapture: this.useCapture }
                                );
                            });
                        }
                        fire(t, e, n) {
                            this.isEnabled && this.document.fire(t, new $s(this.view, e, n));
                        }
                    }
                    class Ks extends Ys {
                        constructor(t) {
                            super(t), (this.domEventType = ["keydown", "keyup"]);
                        }
                        onDomEvent(t) {
                            const e = {
                                keyCode: t.keyCode,
                                altKey: t.altKey,
                                ctrlKey: t.ctrlKey,
                                shiftKey: t.shiftKey,
                                metaKey: t.metaKey,
                                get keystroke() {
                                    return pr(this);
                                },
                            };
                            this.fire(t.type, t, e);
                        }
                    }
                    const Qs = function () {
                        return Y.Date.now();
                    };
                    var Zs = /\s/;
                    const Js = function (t) {
                        for (var e = t.length; e-- && Zs.test(t.charAt(e)); );
                        return e;
                    };
                    var Xs = /^\s+/;
                    const ta = function (t) {
                        return t ? t.slice(0, Js(t) + 1).replace(Xs, "") : t;
                    };
                    var ea = /^[-+]0x[0-9a-f]+$/i,
                        na = /^0b[01]+$/i,
                        oa = /^0o[0-7]+$/i,
                        ia = parseInt;
                    const ra = function (t) {
                        if ("number" == typeof t) return t;
                        if (Ro(t)) return NaN;
                        if (D(t)) {
                            var e = "function" == typeof t.valueOf ? t.valueOf() : t;
                            t = D(e) ? e + "" : e;
                        }
                        if ("string" != typeof t) return 0 === t ? t : +t;
                        t = ta(t);
                        var n = na.test(t);
                        return n || oa.test(t) ? ia(t.slice(2), n ? 2 : 8) : ea.test(t) ? NaN : +t;
                    };
                    var sa = Math.max,
                        aa = Math.min;
                    const ca = function (t, e, n) {
                        var o,
                            i,
                            r,
                            s,
                            a,
                            c,
                            l = 0,
                            d = !1,
                            h = !1,
                            u = !0;
                        if ("function" != typeof t) throw new TypeError("Expected a function");
                        function g(e) {
                            var n = o,
                                r = i;
                            return (o = i = void 0), (l = e), (s = t.apply(r, n));
                        }
                        function m(t) {
                            return (l = t), (a = setTimeout(f, e)), d ? g(t) : s;
                        }
                        function p(t) {
                            var n = t - c;
                            return void 0 === c || n >= e || n < 0 || (h && t - l >= r);
                        }
                        function f() {
                            var t = Qs();
                            if (p(t)) return k(t);
                            a = setTimeout(
                                f,
                                (function (t) {
                                    var n = e - (t - c);
                                    return h ? aa(n, r - (t - l)) : n;
                                })(t)
                            );
                        }
                        function k(t) {
                            return (a = void 0), u && o ? g(t) : ((o = i = void 0), s);
                        }
                        function b() {
                            var t = Qs(),
                                n = p(t);
                            if (((o = arguments), (i = this), (c = t), n)) {
                                if (void 0 === a) return m(c);
                                if (h) return clearTimeout(a), (a = setTimeout(f, e)), g(c);
                            }
                            return void 0 === a && (a = setTimeout(f, e)), s;
                        }
                        return (
                            (e = ra(e) || 0),
                            D(n) && ((d = !!n.leading), (r = (h = "maxWait" in n) ? sa(ra(n.maxWait) || 0, e) : r), (u = "trailing" in n ? !!n.trailing : u)),
                            (b.cancel = function () {
                                void 0 !== a && clearTimeout(a), (l = 0), (o = c = i = a = void 0);
                            }),
                            (b.flush = function () {
                                return void 0 === a ? s : k(Qs());
                            }),
                            b
                        );
                    };
                    class la extends vs {
                        constructor(t) {
                            super(t),
                                (this._fireSelectionChangeDoneDebounced = ca((t) => {
                                    this.document.fire("selectionChangeDone", t);
                                }, 200));
                        }
                        observe() {
                            const t = this.document;
                            t.on(
                                "arrowKey",
                                (e, n) => {
                                    t.selection.isFake && this.isEnabled && n.preventDefault();
                                },
                                { context: "$capture" }
                            ),
                                t.on(
                                    "arrowKey",
                                    (e, n) => {
                                        t.selection.isFake && this.isEnabled && this._handleSelectionMove(n.keyCode);
                                    },
                                    { priority: "lowest" }
                                );
                        }
                        destroy() {
                            super.destroy(), this._fireSelectionChangeDoneDebounced.cancel();
                        }
                        _handleSelectionMove(t) {
                            const e = this.document.selection,
                                n = new Gi(e.getRanges(), { backward: e.isBackward, fake: !1 });
                            (t != gr.arrowleft && t != gr.arrowup) || n.setTo(n.getFirstPosition()), (t != gr.arrowright && t != gr.arrowdown) || n.setTo(n.getLastPosition());
                            const o = { oldSelection: e, newSelection: n, domSelection: null };
                            this.document.fire("selectionChange", o), this._fireSelectionChangeDoneDebounced(o);
                        }
                    }
                    class da extends vs {
                        constructor(t) {
                            super(t),
                                (this.mutationObserver = t.getObserver(qs)),
                                (this.selection = this.document.selection),
                                (this.domConverter = t.domConverter),
                                (this._documents = new WeakSet()),
                                (this._fireSelectionChangeDoneDebounced = ca((t) => {
                                    this.document.fire("selectionChangeDone", t);
                                }, 200)),
                                (this._clearInfiniteLoopInterval = setInterval(() => this._clearInfiniteLoop(), 1e3)),
                                (this._documentIsSelectingInactivityTimeoutDebounced = ca(() => (this.document.isSelecting = !1), 5e3)),
                                (this._loopbackCounter = 0);
                        }
                        observe(t) {
                            const e = t.ownerDocument,
                                n = () => {
                                    (this.document.isSelecting = !1), this._documentIsSelectingInactivityTimeoutDebounced.cancel();
                                };
                            this.listenTo(
                                t,
                                "selectstart",
                                () => {
                                    (this.document.isSelecting = !0), this._documentIsSelectingInactivityTimeoutDebounced();
                                },
                                { priority: "highest" }
                            ),
                                this.listenTo(t, "keydown", n, { priority: "highest" }),
                                this.listenTo(t, "keyup", n, { priority: "highest" }),
                                this._documents.has(e) ||
                                    (this.listenTo(e, "mouseup", n, { priority: "highest" }),
                                    this.listenTo(e, "selectionchange", (t, n) => {
                                        this._handleSelectionChange(n, e), this._documentIsSelectingInactivityTimeoutDebounced();
                                    }),
                                    this._documents.add(e));
                        }
                        destroy() {
                            super.destroy(), clearInterval(this._clearInfiniteLoopInterval), this._fireSelectionChangeDoneDebounced.cancel(), this._documentIsSelectingInactivityTimeoutDebounced.cancel();
                        }
                        _handleSelectionChange(t, e) {
                            if (!this.isEnabled) return;
                            const n = e.defaultView.getSelection();
                            if (this.checkShouldIgnoreEventFromTarget(n.anchorNode)) return;
                            this.mutationObserver.flush();
                            const o = this.domConverter.domSelectionToView(n);
                            if (0 != o.rangeCount) {
                                if (((this.view.hasDomSelection = !0), !((this.selection.isEqual(o) && this.domConverter.isDomSelectionCorrect(n)) || ++this._loopbackCounter > 60)))
                                    if (this.selection.isSimilar(o)) this.view.forceRender();
                                    else {
                                        const t = { oldSelection: this.selection, newSelection: o, domSelection: n };
                                        this.document.fire("selectionChange", t), this._fireSelectionChangeDoneDebounced(t);
                                    }
                            } else this.view.hasDomSelection = !1;
                        }
                        _clearInfiniteLoop() {
                            this._loopbackCounter = 0;
                        }
                    }
                    class ha extends Ys {
                        constructor(t) {
                            super(t), (this.domEventType = ["focus", "blur"]), (this.useCapture = !0);
                            const e = this.document;
                            e.on("focus", () => {
                                (e.isFocused = !0), (this._renderTimeoutId = setTimeout(() => t.change(() => {}), 50));
                            }),
                                e.on("blur", (n, o) => {
                                    const i = e.selection.editableElement;
                                    (null !== i && i !== o.target) || ((e.isFocused = !1), t.change(() => {}));
                                });
                        }
                        onDomEvent(t) {
                            this.fire(t.type, t);
                        }
                        destroy() {
                            this._renderTimeoutId && clearTimeout(this._renderTimeoutId), super.destroy();
                        }
                    }
                    class ua extends Ys {
                        constructor(t) {
                            super(t), (this.domEventType = ["compositionstart", "compositionupdate", "compositionend"]);
                            const e = this.document;
                            e.on("compositionstart", () => {
                                e.isComposing = !0;
                            }),
                                e.on("compositionend", () => {
                                    e.isComposing = !1;
                                });
                        }
                        onDomEvent(t) {
                            this.fire(t.type, t);
                        }
                    }
                    class ga extends Ys {
                        constructor(t) {
                            super(t), (this.domEventType = ["beforeinput"]);
                        }
                        onDomEvent(t) {
                            this.fire(t.type, t);
                        }
                    }
                    class ma {
                        constructor() {
                            this._replacedElements = [];
                        }
                        replace(t, e) {
                            this._replacedElements.push({ element: t, newElement: e }), (t.style.display = "none"), e && t.parentNode.insertBefore(e, t.nextSibling);
                        }
                        restore() {
                            this._replacedElements.forEach(({ element: t, newElement: e }) => {
                                (t.style.display = ""), e && e.remove();
                            }),
                                (this._replacedElements = []);
                        }
                    }
                    const pa = function (t) {
                        return "string" == typeof t || (!ye(t) && at(t) && "[object String]" == it(t));
                    };
                    function fa(t, e, n = {}, o = []) {
                        const i = n && n.xmlns,
                            r = i ? t.createElementNS(i, e) : t.createElement(e);
                        for (const t in n) r.setAttribute(t, n[t]);
                        (!pa(o) && fo(o)) || (o = [o]);
                        for (let e of o) pa(e) && (e = t.createTextNode(e)), r.appendChild(e);
                        return r;
                    }
                    class ka {
                        constructor(t, e) {
                            ka._observerInstance || ka._createObserver(), (this._element = t), (this._callback = e), ka._addElementCallback(t, e), ka._observerInstance.observe(t);
                        }
                        destroy() {
                            ka._deleteElementCallback(this._element, this._callback);
                        }
                        static _addElementCallback(t, e) {
                            ka._elementCallbacks || (ka._elementCallbacks = new Map());
                            let n = ka._elementCallbacks.get(t);
                            n || ((n = new Set()), ka._elementCallbacks.set(t, n)), n.add(e);
                        }
                        static _deleteElementCallback(t, e) {
                            const n = ka._getElementCallbacks(t);
                            n && (n.delete(e), n.size || (ka._elementCallbacks.delete(t), ka._observerInstance.unobserve(t))),
                                ka._elementCallbacks && !ka._elementCallbacks.size && ((ka._observerInstance = null), (ka._elementCallbacks = null));
                        }
                        static _getElementCallbacks(t) {
                            return ka._elementCallbacks ? ka._elementCallbacks.get(t) : null;
                        }
                        static _createObserver() {
                            ka._observerInstance = new Ao.window.ResizeObserver((t) => {
                                for (const e of t) {
                                    const t = ka._getElementCallbacks(e.target);
                                    if (t) for (const n of t) n(e);
                                }
                            });
                        }
                    }
                    function ba(t) {
                        return !!(t && t.getClientRects && t.getClientRects().length);
                    }
                    function wa(t) {
                        const e = t.next();
                        return e.done ? null : e.value;
                    }
                    (ka._observerInstance = null), (ka._elementCallbacks = null);
                    class _a extends ws(P) {
                        constructor() {
                            super(), this.set("isFocused", !1), this.set("focusedElement", null), (this._elements = new Set()), (this._nextEventLoopTimeout = null);
                        }
                        add(t) {
                            if (this._elements.has(t)) throw new c("focustracker-add-element-already-exist", this);
                            this.listenTo(t, "focus", () => this._focus(t), { useCapture: !0 }), this.listenTo(t, "blur", () => this._blur(), { useCapture: !0 }), this._elements.add(t);
                        }
                        remove(t) {
                            t === this.focusedElement && this._blur(), this._elements.has(t) && (this.stopListening(t), this._elements.delete(t));
                        }
                        destroy() {
                            this.stopListening();
                        }
                        _focus(t) {
                            clearTimeout(this._nextEventLoopTimeout), (this.focusedElement = t), (this.isFocused = !0);
                        }
                        _blur() {
                            clearTimeout(this._nextEventLoopTimeout),
                                (this._nextEventLoopTimeout = setTimeout(() => {
                                    (this.focusedElement = null), (this.isFocused = !1);
                                }, 0));
                        }
                    }
                    class Aa {
                        constructor() {
                            this._listener = Object.create(ws);
                        }
                        listenTo(t) {
                            this._listener.listenTo(t, "keydown", (t, e) => {
                                this._listener.fire("_keydown:" + pr(e), e);
                            });
                        }
                        set(t, e, n = {}) {
                            const o = fr(t),
                                i = n.priority;
                            this._listener.listenTo(
                                this._listener,
                                "_keydown:" + o,
                                (t, n) => {
                                    e(n, () => {
                                        n.preventDefault(), n.stopPropagation(), t.stop();
                                    }),
                                        (t.return = !0);
                                },
                                { priority: i }
                            );
                        }
                        press(t) {
                            return !!this._listener.fire("_keydown:" + pr(t), t);
                        }
                        destroy() {
                            this._listener.stopListening();
                        }
                    }
                    class Ca extends vs {
                        constructor(t) {
                            super(t),
                                this.document.on("keydown", (t, e) => {
                                    if (this.isEnabled && ((n = e.keyCode) == gr.arrowright || n == gr.arrowleft || n == gr.arrowup || n == gr.arrowdown)) {
                                        const n = new Yi(this.document, "arrowKey", this.document.selection.getFirstRange());
                                        this.document.fire(n, e), n.stop.called && t.stop();
                                    }
                                    var n;
                                });
                        }
                        observe() {}
                    }
                    class va extends vs {
                        constructor(t) {
                            super(t);
                            const e = this.document;
                            e.on("keydown", (t, n) => {
                                if (!this.isEnabled || n.keyCode != gr.tab || n.ctrlKey) return;
                                const o = new Yi(e, "tab", e.selection.getFirstRange());
                                e.fire(o, n), o.stop.called && t.stop();
                            });
                        }
                        observe() {}
                    }
                    function ya(t) {
                        return "[object Range]" == Object.prototype.toString.apply(t);
                    }
                    function xa(t) {
                        const e = t.ownerDocument.defaultView.getComputedStyle(t);
                        return { top: parseInt(e.borderTopWidth, 10), right: parseInt(e.borderRightWidth, 10), bottom: parseInt(e.borderBottomWidth, 10), left: parseInt(e.borderLeftWidth, 10) };
                    }
                    const Ea = ["top", "right", "bottom", "left", "width", "height"];
                    class Da {
                        constructor(t) {
                            const e = ya(t);
                            if ((Object.defineProperty(this, "_source", { value: t._source || t, writable: !0, enumerable: !1 }), Ta(t) || e))
                                if (e) {
                                    const e = Da.getDomRangeRects(t);
                                    Ia(this, Da.getBoundingRect(e));
                                } else Ia(this, t.getBoundingClientRect());
                            else if (bs(t)) {
                                const { innerWidth: e, innerHeight: n } = t;
                                Ia(this, { top: 0, right: e, bottom: n, left: 0, width: e, height: n });
                            } else Ia(this, t);
                        }
                        clone() {
                            return new Da(this);
                        }
                        moveTo(t, e) {
                            return (this.top = e), (this.right = t + this.width), (this.bottom = e + this.height), (this.left = t), this;
                        }
                        moveBy(t, e) {
                            return (this.top += e), (this.right += t), (this.left += t), (this.bottom += e), this;
                        }
                        getIntersection(t) {
                            const e = { top: Math.max(this.top, t.top), right: Math.min(this.right, t.right), bottom: Math.min(this.bottom, t.bottom), left: Math.max(this.left, t.left), width: 0, height: 0 };
                            return (e.width = e.right - e.left), (e.height = e.bottom - e.top), e.width < 0 || e.height < 0 ? null : new Da(e);
                        }
                        getIntersectionArea(t) {
                            const e = this.getIntersection(t);
                            return e ? e.getArea() : 0;
                        }
                        getArea() {
                            return this.width * this.height;
                        }
                        getVisible() {
                            const t = this._source;
                            let e = this.clone();
                            if (!Ma(t)) {
                                let n = t.parentNode || t.commonAncestorContainer;
                                for (; n && !Ma(n); ) {
                                    const t = new Da(n),
                                        o = e.getIntersection(t);
                                    if (!o) return null;
                                    o.getArea() < e.getArea() && (e = o), (n = n.parentNode);
                                }
                            }
                            return e;
                        }
                        isEqual(t) {
                            for (const e of Ea) if (this[e] !== t[e]) return !1;
                            return !0;
                        }
                        contains(t) {
                            const e = this.getIntersection(t);
                            return !(!e || !e.isEqual(t));
                        }
                        excludeScrollbarsAndBorders() {
                            const t = this._source;
                            let e, n, o;
                            if (bs(t)) (e = t.innerWidth - t.document.documentElement.clientWidth), (n = t.innerHeight - t.document.documentElement.clientHeight), (o = t.getComputedStyle(t.document.documentElement).direction);
                            else {
                                const i = xa(t);
                                (e = t.offsetWidth - t.clientWidth - i.left - i.right),
                                    (n = t.offsetHeight - t.clientHeight - i.top - i.bottom),
                                    (o = t.ownerDocument.defaultView.getComputedStyle(t).direction),
                                    (this.left += i.left),
                                    (this.top += i.top),
                                    (this.right -= i.right),
                                    (this.bottom -= i.bottom),
                                    (this.width = this.right - this.left),
                                    (this.height = this.bottom - this.top);
                            }
                            return (this.width -= e), "ltr" === o ? (this.right -= e) : (this.left += e), (this.height -= n), (this.bottom -= n), this;
                        }
                        static getDomRangeRects(t) {
                            const e = [],
                                n = Array.from(t.getClientRects());
                            if (n.length) for (const t of n) e.push(new Da(t));
                            else {
                                let n = t.startContainer;
                                Lr(n) && (n = n.parentNode);
                                const o = new Da(n.getBoundingClientRect());
                                (o.right = o.left), (o.width = 0), e.push(o);
                            }
                            return e;
                        }
                        static getBoundingRect(t) {
                            const e = { left: Number.POSITIVE_INFINITY, top: Number.POSITIVE_INFINITY, right: Number.NEGATIVE_INFINITY, bottom: Number.NEGATIVE_INFINITY, width: 0, height: 0 };
                            let n = 0;
                            for (const o of t) n++, (e.left = Math.min(e.left, o.left)), (e.top = Math.min(e.top, o.top)), (e.right = Math.max(e.right, o.right)), (e.bottom = Math.max(e.bottom, o.bottom));
                            return 0 == n ? null : ((e.width = e.right - e.left), (e.height = e.bottom - e.top), new Da(e));
                        }
                    }
                    function Ia(t, e) {
                        for (const n of Ea) t[n] = e[n];
                    }
                    function Ma(t) {
                        return !!Ta(t) && t === t.ownerDocument.body;
                    }
                    function Ta(t) {
                        return uo(t);
                    }
                    function Sa(t, e, n) {
                        const o = e.clone().moveBy(0, n),
                            i = e.clone().moveBy(0, -n),
                            r = new Da(t).excludeScrollbarsAndBorders();
                        if (![i, o].every((t) => r.contains(t))) {
                            let { scrollX: s, scrollY: a } = t;
                            Pa(i, r) ? (a -= r.top - e.top + n) : Ba(o, r) && (a += e.bottom - r.bottom + n), za(e, r) ? (s -= r.left - e.left + n) : La(e, r) && (s += e.right - r.right + n), t.scrollTo(s, a);
                        }
                    }
                    function Na(t, e) {
                        const n = Oa(t);
                        let o, i;
                        for (; t != n.document.body; )
                            (i = e()),
                                (o = new Da(t).excludeScrollbarsAndBorders()),
                                o.contains(i) || (Pa(i, o) ? (t.scrollTop -= o.top - i.top) : Ba(i, o) && (t.scrollTop += i.bottom - o.bottom), za(i, o) ? (t.scrollLeft -= o.left - i.left) : La(i, o) && (t.scrollLeft += i.right - o.right)),
                                (t = t.parentNode);
                    }
                    function Ba(t, e) {
                        return t.bottom > e.bottom;
                    }
                    function Pa(t, e) {
                        return t.top < e.top;
                    }
                    function za(t, e) {
                        return t.left < e.left;
                    }
                    function La(t, e) {
                        return t.right > e.right;
                    }
                    function Oa(t) {
                        return ya(t) ? t.startContainer.ownerDocument.defaultView : t.ownerDocument.defaultView;
                    }
                    function Ra(t) {
                        if (ya(t)) {
                            let e = t.commonAncestorContainer;
                            return Lr(e) && (e = e.parentNode), e;
                        }
                        return t.parentNode;
                    }
                    function ja(t, e) {
                        const n = Oa(t),
                            o = new Da(t);
                        if (n === e) return o;
                        {
                            let t = n;
                            for (; t != e; ) {
                                const e = t.frameElement,
                                    n = new Da(e).excludeScrollbarsAndBorders();
                                o.moveBy(n.left, n.top), (t = t.parent);
                            }
                        }
                        return o;
                    }
                    class Fa extends P {
                        constructor(t) {
                            super(),
                                (this.document = new er(t)),
                                (this.domConverter = new ms(this.document)),
                                (this.domRoots = new Map()),
                                this.set("isRenderingInProgress", !1),
                                this.set("hasDomSelection", !1),
                                (this._renderer = new os(this.domConverter, this.document.selection)),
                                this._renderer.bind("isFocused", "isSelecting").to(this.document, "isFocused", "isSelecting"),
                                (this._initialDomRootAttributes = new WeakMap()),
                                (this._observers = new Map()),
                                (this._ongoingChange = !1),
                                (this._postFixersInProgress = !1),
                                (this._renderingDisabled = !1),
                                (this._hasChangedSinceTheLastRendering = !1),
                                (this._writer = new xr(this.document)),
                                this.addObserver(qs),
                                this.addObserver(da),
                                this.addObserver(ha),
                                this.addObserver(Ks),
                                this.addObserver(la),
                                this.addObserver(ua),
                                this.addObserver(Ca),
                                this.addObserver(va),
                                lr.isAndroid && this.addObserver(ga),
                                this.document.on("arrowKey", Wr, { priority: "low" }),
                                _r(this),
                                this.on("render", () => {
                                    this._render(), this.document.fire("layoutChanged"), (this._hasChangedSinceTheLastRendering = !1);
                                }),
                                this.listenTo(this.document.selection, "change", () => {
                                    this._hasChangedSinceTheLastRendering = !0;
                                }),
                                this.listenTo(this.document, "change:isFocused", () => {
                                    this._hasChangedSinceTheLastRendering = !0;
                                });
                        }
                        attachDomRoot(t, e = "main") {
                            const n = this.document.getRoot(e);
                            n._name = t.tagName.toLowerCase();
                            const o = {};
                            for (const { name: e, value: i } of Array.from(t.attributes)) (o[e] = i), "class" === e ? this._writer.addClass(i.split(" "), n) : this._writer.setAttribute(e, i, n);
                            this._initialDomRootAttributes.set(t, o);
                            const i = () => {
                                this._writer.setAttribute("contenteditable", (!n.isReadOnly).toString(), n), n.isReadOnly ? this._writer.addClass("ck-read-only", n) : this._writer.removeClass("ck-read-only", n);
                            };
                            i(),
                                this.domRoots.set(e, t),
                                this.domConverter.bindElements(t, n),
                                this._renderer.markToSync("children", n),
                                this._renderer.markToSync("attributes", n),
                                this._renderer.domDocuments.add(t.ownerDocument),
                                n.on("change:children", (t, e) => this._renderer.markToSync("children", e)),
                                n.on("change:attributes", (t, e) => this._renderer.markToSync("attributes", e)),
                                n.on("change:text", (t, e) => this._renderer.markToSync("text", e)),
                                n.on("change:isReadOnly", () => this.change(i)),
                                n.on("change", () => {
                                    this._hasChangedSinceTheLastRendering = !0;
                                });
                            for (const n of this._observers.values()) n.observe(t, e);
                        }
                        detachDomRoot(t) {
                            const e = this.domRoots.get(t);
                            Array.from(e.attributes).forEach(({ name: t }) => e.removeAttribute(t));
                            const n = this._initialDomRootAttributes.get(e);
                            for (const t in n) e.setAttribute(t, n[t]);
                            this.domRoots.delete(t), this.domConverter.unbindDomElement(e);
                        }
                        getDomRoot(t = "main") {
                            return this.domRoots.get(t);
                        }
                        addObserver(t) {
                            let e = this._observers.get(t);
                            if (e) return e;
                            (e = new t(this)), this._observers.set(t, e);
                            for (const [t, n] of this.domRoots) e.observe(n, t);
                            return e.enable(), e;
                        }
                        getObserver(t) {
                            return this._observers.get(t);
                        }
                        disableObservers() {
                            for (const t of this._observers.values()) t.disable();
                        }
                        enableObservers() {
                            for (const t of this._observers.values()) t.enable();
                        }
                        scrollToTheSelection() {
                            const t = this.document.selection.getFirstRange();
                            t &&
                                (function ({ target: t, viewportOffset: e = 0 }) {
                                    const n = Oa(t);
                                    let o = n,
                                        i = null;
                                    for (; o; ) {
                                        let r;
                                        (r = Ra(o == n ? t : i)), Na(r, () => ja(t, o));
                                        const s = ja(t, o);
                                        if ((Sa(o, s, e), o.parent != o)) {
                                            if (((i = o.frameElement), (o = o.parent), !i)) return;
                                        } else o = null;
                                    }
                                })({ target: this.domConverter.viewRangeToDom(t), viewportOffset: 20 });
                        }
                        focus() {
                            if (!this.document.isFocused) {
                                const t = this.document.selection.editableElement;
                                t && (this.domConverter.focus(t), this.forceRender());
                            }
                        }
                        change(t) {
                            if (this.isRenderingInProgress || this._postFixersInProgress) throw new c("cannot-change-view-tree", this);
                            try {
                                if (this._ongoingChange) return t(this._writer);
                                this._ongoingChange = !0;
                                const e = t(this._writer);
                                return (
                                    (this._ongoingChange = !1),
                                    !this._renderingDisabled &&
                                        this._hasChangedSinceTheLastRendering &&
                                        ((this._postFixersInProgress = !0), this.document._callPostFixers(this._writer), (this._postFixersInProgress = !1), this.fire("render")),
                                    e
                                );
                            } catch (t) {
                                c.rethrowUnexpectedError(t, this);
                            }
                        }
                        forceRender() {
                            (this._hasChangedSinceTheLastRendering = !0), this.change(() => {});
                        }
                        destroy() {
                            for (const t of this._observers.values()) t.destroy();
                            this.document.destroy(), this.stopListening();
                        }
                        createPositionAt(t, e) {
                            return Hi._createAt(t, e);
                        }
                        createPositionAfter(t) {
                            return Hi._createAfter(t);
                        }
                        createPositionBefore(t) {
                            return Hi._createBefore(t);
                        }
                        createRange(...t) {
                            return new Ui(...t);
                        }
                        createRangeOn(t) {
                            return Ui._createOn(t);
                        }
                        createRangeIn(t) {
                            return Ui._createIn(t);
                        }
                        createSelection(...t) {
                            return new Gi(...t);
                        }
                        _disableRendering(t) {
                            (this._renderingDisabled = t), 0 == t && this.change(() => {});
                        }
                        _render() {
                            (this.isRenderingInProgress = !0), this.disableObservers(), this._renderer.render(), this.enableObservers(), (this.isRenderingInProgress = !1);
                        }
                    }
                    class Va {
                        is() {
                            throw new Error("is() method is abstract");
                        }
                    }
                    class Ha extends Va {
                        constructor(t) {
                            super(), (this.parent = null), (this._attrs = Po(t));
                        }
                        get document() {
                            return null;
                        }
                        get index() {
                            let t;
                            if (!this.parent) return null;
                            if (null === (t = this.parent.getChildIndex(this))) throw new c("model-node-not-found-in-parent", this);
                            return t;
                        }
                        get startOffset() {
                            let t;
                            if (!this.parent) return null;
                            if (null === (t = this.parent.getChildStartOffset(this))) throw new c("model-node-not-found-in-parent", this);
                            return t;
                        }
                        get offsetSize() {
                            return 1;
                        }
                        get endOffset() {
                            return this.parent ? this.startOffset + this.offsetSize : null;
                        }
                        get nextSibling() {
                            const t = this.index;
                            return (null !== t && this.parent.getChild(t + 1)) || null;
                        }
                        get previousSibling() {
                            const t = this.index;
                            return (null !== t && this.parent.getChild(t - 1)) || null;
                        }
                        get root() {
                            let t = this;
                            for (; t.parent; ) t = t.parent;
                            return t;
                        }
                        isAttached() {
                            return this.root.is("rootElement");
                        }
                        getPath() {
                            const t = [];
                            let e = this;
                            for (; e.parent; ) t.unshift(e.startOffset), (e = e.parent);
                            return t;
                        }
                        getAncestors(t = {}) {
                            const e = [];
                            let n = t.includeSelf ? this : this.parent;
                            for (; n; ) e[t.parentFirst ? "push" : "unshift"](n), (n = n.parent);
                            return e;
                        }
                        getCommonAncestor(t, e = {}) {
                            const n = this.getAncestors(e),
                                o = t.getAncestors(e);
                            let i = 0;
                            for (; n[i] == o[i] && n[i]; ) i++;
                            return 0 === i ? null : n[i - 1];
                        }
                        isBefore(t) {
                            if (this == t) return !1;
                            if (this.root !== t.root) return !1;
                            const e = this.getPath(),
                                n = t.getPath(),
                                o = Mo(e, n);
                            switch (o) {
                                case "prefix":
                                    return !0;
                                case "extension":
                                    return !1;
                                default:
                                    return e[o] < n[o];
                            }
                        }
                        isAfter(t) {
                            return this != t && this.root === t.root && !this.isBefore(t);
                        }
                        hasAttribute(t) {
                            return this._attrs.has(t);
                        }
                        getAttribute(t) {
                            return this._attrs.get(t);
                        }
                        getAttributes() {
                            return this._attrs.entries();
                        }
                        getAttributeKeys() {
                            return this._attrs.keys();
                        }
                        toJSON() {
                            const t = {};
                            return this._attrs.size && (t.attributes = Array.from(this._attrs).reduce((t, e) => ((t[e[0]] = e[1]), t), {})), t;
                        }
                        _clone(t) {
                            return new Ha(this._attrs);
                        }
                        _remove() {
                            this.parent._removeChildren(this.index);
                        }
                        _setAttribute(t, e) {
                            this._attrs.set(t, e);
                        }
                        _setAttributesTo(t) {
                            this._attrs = Po(t);
                        }
                        _removeAttribute(t) {
                            return this._attrs.delete(t);
                        }
                        _clearAttributes() {
                            this._attrs.clear();
                        }
                    }
                    Ha.prototype.is = function (t) {
                        return "node" === t || "model:node" === t;
                    };
                    class Ua {
                        constructor(t) {
                            (this._nodes = []), t && this._insertNodes(0, t);
                        }
                        [Symbol.iterator]() {
                            return this._nodes[Symbol.iterator]();
                        }
                        get length() {
                            return this._nodes.length;
                        }
                        get maxOffset() {
                            return this._nodes.reduce((t, e) => t + e.offsetSize, 0);
                        }
                        getNode(t) {
                            return this._nodes[t] || null;
                        }
                        getNodeIndex(t) {
                            const e = this._nodes.indexOf(t);
                            return -1 == e ? null : e;
                        }
                        getNodeStartOffset(t) {
                            const e = this.getNodeIndex(t);
                            return null === e ? null : this._nodes.slice(0, e).reduce((t, e) => t + e.offsetSize, 0);
                        }
                        indexToOffset(t) {
                            if (t == this._nodes.length) return this.maxOffset;
                            const e = this._nodes[t];
                            if (!e) throw new c("model-nodelist-index-out-of-bounds", this);
                            return this.getNodeStartOffset(e);
                        }
                        offsetToIndex(t) {
                            let e = 0;
                            for (const n of this._nodes) {
                                if (t >= e && t < e + n.offsetSize) return this.getNodeIndex(n);
                                e += n.offsetSize;
                            }
                            if (e != t) throw new c("model-nodelist-offset-out-of-bounds", this, { offset: t, nodeList: this });
                            return this.length;
                        }
                        _insertNodes(t, e) {
                            for (const t of e) if (!(t instanceof Ha)) throw new c("model-nodelist-insertnodes-not-node", this);
                            this._nodes.splice(t, 0, ...e);
                        }
                        _removeNodes(t, e = 1) {
                            return this._nodes.splice(t, e);
                        }
                        toJSON() {
                            return this._nodes.map((t) => t.toJSON());
                        }
                    }
                    class Wa extends Ha {
                        constructor(t, e) {
                            super(e), (this._data = t || "");
                        }
                        get offsetSize() {
                            return this.data.length;
                        }
                        get data() {
                            return this._data;
                        }
                        toJSON() {
                            const t = super.toJSON();
                            return (t.data = this.data), t;
                        }
                        _clone() {
                            return new Wa(this.data, this.getAttributes());
                        }
                        static fromJSON(t) {
                            return new Wa(t.data, t.attributes);
                        }
                    }
                    Wa.prototype.is = function (t) {
                        return "$text" === t || "model:$text" === t || "text" === t || "model:text" === t || "node" === t || "model:node" === t;
                    };
                    class qa extends Va {
                        constructor(t, e, n) {
                            if ((super(), (this.textNode = t), e < 0 || e > t.offsetSize)) throw new c("model-textproxy-wrong-offsetintext", this);
                            if (n < 0 || e + n > t.offsetSize) throw new c("model-textproxy-wrong-length", this);
                            (this.data = t.data.substring(e, e + n)), (this.offsetInText = e);
                        }
                        get startOffset() {
                            return null !== this.textNode.startOffset ? this.textNode.startOffset + this.offsetInText : null;
                        }
                        get offsetSize() {
                            return this.data.length;
                        }
                        get endOffset() {
                            return null !== this.startOffset ? this.startOffset + this.offsetSize : null;
                        }
                        get isPartial() {
                            return this.offsetSize !== this.textNode.offsetSize;
                        }
                        get parent() {
                            return this.textNode.parent;
                        }
                        get root() {
                            return this.textNode.root;
                        }
                        getPath() {
                            const t = this.textNode.getPath();
                            return t.length > 0 && (t[t.length - 1] += this.offsetInText), t;
                        }
                        getAncestors(t = {}) {
                            const e = [];
                            let n = t.includeSelf ? this : this.parent;
                            for (; n; ) e[t.parentFirst ? "push" : "unshift"](n), (n = n.parent);
                            return e;
                        }
                        hasAttribute(t) {
                            return this.textNode.hasAttribute(t);
                        }
                        getAttribute(t) {
                            return this.textNode.getAttribute(t);
                        }
                        getAttributes() {
                            return this.textNode.getAttributes();
                        }
                        getAttributeKeys() {
                            return this.textNode.getAttributeKeys();
                        }
                    }
                    qa.prototype.is = function (t) {
                        return "$textProxy" === t || "model:$textProxy" === t || "textProxy" === t || "model:textProxy" === t;
                    };
                    class Ga extends Ha {
                        constructor(t, e, n) {
                            super(e), (this.name = t), (this._children = new Ua()), n && this._insertChild(0, n);
                        }
                        get childCount() {
                            return this._children.length;
                        }
                        get maxOffset() {
                            return this._children.maxOffset;
                        }
                        get isEmpty() {
                            return 0 === this.childCount;
                        }
                        getChild(t) {
                            return this._children.getNode(t);
                        }
                        getChildren() {
                            return this._children[Symbol.iterator]();
                        }
                        getChildIndex(t) {
                            return this._children.getNodeIndex(t);
                        }
                        getChildStartOffset(t) {
                            return this._children.getNodeStartOffset(t);
                        }
                        offsetToIndex(t) {
                            return this._children.offsetToIndex(t);
                        }
                        getNodeByPath(t) {
                            let e = this;
                            for (const n of t) e = e.getChild(e.offsetToIndex(n));
                            return e;
                        }
                        findAncestor(t, e = {}) {
                            let n = e.includeSelf ? this : this.parent;
                            for (; n; ) {
                                if (n.name === t) return n;
                                n = n.parent;
                            }
                            return null;
                        }
                        toJSON() {
                            const t = super.toJSON();
                            if (((t.name = this.name), this._children.length > 0)) {
                                t.children = [];
                                for (const e of this._children) t.children.push(e.toJSON());
                            }
                            return t;
                        }
                        _clone(t = !1) {
                            const e = t ? Array.from(this._children).map((t) => t._clone(!0)) : void 0;
                            return new Ga(this.name, this.getAttributes(), e);
                        }
                        _appendChild(t) {
                            this._insertChild(this.childCount, t);
                        }
                        _insertChild(t, e) {
                            const n = (function (t) {
                                if ("string" == typeof t) return [new Wa(t)];
                                fo(t) || (t = [t]);
                                return Array.from(t).map((t) => ("string" == typeof t ? new Wa(t) : t instanceof qa ? new Wa(t.data, t.getAttributes()) : t));
                            })(e);
                            for (const t of n) null !== t.parent && t._remove(), (t.parent = this);
                            this._children._insertNodes(t, n);
                        }
                        _removeChildren(t, e = 1) {
                            const n = this._children._removeNodes(t, e);
                            for (const t of n) t.parent = null;
                            return n;
                        }
                        static fromJSON(t) {
                            let e;
                            if (t.children) {
                                e = [];
                                for (const n of t.children) n.name ? e.push(Ga.fromJSON(n)) : e.push(Wa.fromJSON(n));
                            }
                            return new Ga(t.name, t.attributes, e);
                        }
                    }
                    Ga.prototype.is = function (t, e) {
                        return e ? e === this.name && ("element" === t || "model:element" === t) : "element" === t || "model:element" === t || "node" === t || "model:node" === t;
                    };
                    class $a {
                        constructor(t = {}) {
                            if (!t.boundaries && !t.startPosition) throw new c("model-tree-walker-no-start-position", null);
                            const e = t.direction || "forward";
                            if ("forward" != e && "backward" != e) throw new c("model-tree-walker-unknown-direction", t, { direction: e });
                            (this.direction = e),
                                (this.boundaries = t.boundaries || null),
                                t.startPosition ? (this.position = t.startPosition.clone()) : (this.position = Ka._createAt(this.boundaries["backward" == this.direction ? "end" : "start"])),
                                (this.position.stickiness = "toNone"),
                                (this.singleCharacters = !!t.singleCharacters),
                                (this.shallow = !!t.shallow),
                                (this.ignoreElementEnd = !!t.ignoreElementEnd),
                                (this._boundaryStartParent = this.boundaries ? this.boundaries.start.parent : null),
                                (this._boundaryEndParent = this.boundaries ? this.boundaries.end.parent : null),
                                (this._visitedParent = this.position.parent);
                        }
                        [Symbol.iterator]() {
                            return this;
                        }
                        skip(t) {
                            let e, n, o, i;
                            do {
                                (o = this.position), (i = this._visitedParent), ({ done: e, value: n } = this.next());
                            } while (!e && t(n));
                            e || ((this.position = o), (this._visitedParent = i));
                        }
                        next() {
                            return "forward" == this.direction ? this._next() : this._previous();
                        }
                        _next() {
                            const t = this.position,
                                e = this.position.clone(),
                                n = this._visitedParent;
                            if (null === n.parent && e.offset === n.maxOffset) return { done: !0, value: void 0 };
                            if (n === this._boundaryEndParent && e.offset == this.boundaries.end.offset) return { done: !0, value: void 0 };
                            const o = Qa(e, n),
                                i = o || Za(e, n, o);
                            if (i instanceof Ga) return this.shallow ? e.offset++ : (e.path.push(0), (this._visitedParent = i)), (this.position = e), Ya("elementStart", i, t, e, 1);
                            if (i instanceof Wa) {
                                let o;
                                if (this.singleCharacters) o = 1;
                                else {
                                    let t = i.endOffset;
                                    this._boundaryEndParent == n && this.boundaries.end.offset < t && (t = this.boundaries.end.offset), (o = t - e.offset);
                                }
                                const r = e.offset - i.startOffset,
                                    s = new qa(i, r, o);
                                return (e.offset += o), (this.position = e), Ya("text", s, t, e, o);
                            }
                            return e.path.pop(), e.offset++, (this.position = e), (this._visitedParent = n.parent), this.ignoreElementEnd ? this._next() : Ya("elementEnd", n, t, e);
                        }
                        _previous() {
                            const t = this.position,
                                e = this.position.clone(),
                                n = this._visitedParent;
                            if (null === n.parent && 0 === e.offset) return { done: !0, value: void 0 };
                            if (n == this._boundaryStartParent && e.offset == this.boundaries.start.offset) return { done: !0, value: void 0 };
                            const o = e.parent,
                                i = Qa(e, o),
                                r = i || Ja(e, o, i);
                            if (r instanceof Ga)
                                return (
                                    e.offset--,
                                    this.shallow
                                        ? ((this.position = e), Ya("elementStart", r, t, e, 1))
                                        : (e.path.push(r.maxOffset), (this.position = e), (this._visitedParent = r), this.ignoreElementEnd ? this._previous() : Ya("elementEnd", r, t, e))
                                );
                            if (r instanceof Wa) {
                                let o;
                                if (this.singleCharacters) o = 1;
                                else {
                                    let t = r.startOffset;
                                    this._boundaryStartParent == n && this.boundaries.start.offset > t && (t = this.boundaries.start.offset), (o = e.offset - t);
                                }
                                const i = e.offset - r.startOffset,
                                    s = new qa(r, i - o, o);
                                return (e.offset -= o), (this.position = e), Ya("text", s, t, e, o);
                            }
                            return e.path.pop(), (this.position = e), (this._visitedParent = n.parent), Ya("elementStart", n, t, e, 1);
                        }
                    }
                    function Ya(t, e, n, o, i) {
                        return { done: !1, value: { type: t, item: e, previousPosition: n, nextPosition: o, length: i } };
                    }
                    class Ka extends Va {
                        constructor(t, e, n = "toNone") {
                            if ((super(), !t.is("element") && !t.is("documentFragment"))) throw new c("model-position-root-invalid", t);
                            if (!(e instanceof Array) || 0 === e.length) throw new c("model-position-path-incorrect-format", t, { path: e });
                            t.is("rootElement") ? (e = e.slice()) : ((e = [...t.getPath(), ...e]), (t = t.root)), (this.root = t), (this.path = e), (this.stickiness = n);
                        }
                        get offset() {
                            return this.path[this.path.length - 1];
                        }
                        set offset(t) {
                            this.path[this.path.length - 1] = t;
                        }
                        get parent() {
                            let t = this.root;
                            for (let e = 0; e < this.path.length - 1; e++) if (((t = t.getChild(t.offsetToIndex(this.path[e]))), !t)) throw new c("model-position-path-incorrect", this, { position: this });
                            if (t.is("$text")) throw new c("model-position-path-incorrect", this, { position: this });
                            return t;
                        }
                        get index() {
                            return this.parent.offsetToIndex(this.offset);
                        }
                        get textNode() {
                            return Qa(this, this.parent);
                        }
                        get nodeAfter() {
                            const t = this.parent;
                            return Za(this, t, Qa(this, t));
                        }
                        get nodeBefore() {
                            const t = this.parent;
                            return Ja(this, t, Qa(this, t));
                        }
                        get isAtStart() {
                            return 0 === this.offset;
                        }
                        get isAtEnd() {
                            return this.offset == this.parent.maxOffset;
                        }
                        compareWith(t) {
                            if (this.root != t.root) return "different";
                            const e = Mo(this.path, t.path);
                            switch (e) {
                                case "same":
                                    return "same";
                                case "prefix":
                                    return "before";
                                case "extension":
                                    return "after";
                                default:
                                    return this.path[e] < t.path[e] ? "before" : "after";
                            }
                        }
                        getLastMatchingPosition(t, e = {}) {
                            e.startPosition = this;
                            const n = new $a(e);
                            return n.skip(t), n.position;
                        }
                        getParentPath() {
                            return this.path.slice(0, -1);
                        }
                        getAncestors() {
                            const t = this.parent;
                            return t.is("documentFragment") ? [t] : t.getAncestors({ includeSelf: !0 });
                        }
                        findAncestor(t) {
                            const e = this.parent;
                            return e.is("element") ? e.findAncestor(t, { includeSelf: !0 }) : null;
                        }
                        getCommonPath(t) {
                            if (this.root != t.root) return [];
                            const e = Mo(this.path, t.path),
                                n = "string" == typeof e ? Math.min(this.path.length, t.path.length) : e;
                            return this.path.slice(0, n);
                        }
                        getCommonAncestor(t) {
                            const e = this.getAncestors(),
                                n = t.getAncestors();
                            let o = 0;
                            for (; e[o] == n[o] && e[o]; ) o++;
                            return 0 === o ? null : e[o - 1];
                        }
                        getShiftedBy(t) {
                            const e = this.clone(),
                                n = e.offset + t;
                            return (e.offset = n < 0 ? 0 : n), e;
                        }
                        isAfter(t) {
                            return "after" == this.compareWith(t);
                        }
                        isBefore(t) {
                            return "before" == this.compareWith(t);
                        }
                        isEqual(t) {
                            return "same" == this.compareWith(t);
                        }
                        isTouching(t) {
                            let e = null,
                                n = null;
                            switch (this.compareWith(t)) {
                                case "same":
                                    return !0;
                                case "before":
                                    (e = Ka._createAt(this)), (n = Ka._createAt(t));
                                    break;
                                case "after":
                                    (e = Ka._createAt(t)), (n = Ka._createAt(this));
                                    break;
                                default:
                                    return !1;
                            }
                            let o = e.parent;
                            for (; e.path.length + n.path.length; ) {
                                if (e.isEqual(n)) return !0;
                                if (e.path.length > n.path.length) {
                                    if (e.offset !== o.maxOffset) return !1;
                                    (e.path = e.path.slice(0, -1)), (o = o.parent), e.offset++;
                                } else {
                                    if (0 !== n.offset) return !1;
                                    n.path = n.path.slice(0, -1);
                                }
                            }
                            throw new Error("unreachable code");
                        }
                        hasSameParentAs(t) {
                            if (this.root !== t.root) return !1;
                            return "same" == Mo(this.getParentPath(), t.getParentPath());
                        }
                        getTransformedByOperation(t) {
                            let e;
                            switch (t.type) {
                                case "insert":
                                    e = this._getTransformedByInsertOperation(t);
                                    break;
                                case "move":
                                case "remove":
                                case "reinsert":
                                    e = this._getTransformedByMoveOperation(t);
                                    break;
                                case "split":
                                    e = this._getTransformedBySplitOperation(t);
                                    break;
                                case "merge":
                                    e = this._getTransformedByMergeOperation(t);
                                    break;
                                default:
                                    e = Ka._createAt(this);
                            }
                            return e;
                        }
                        _getTransformedByInsertOperation(t) {
                            return this._getTransformedByInsertion(t.position, t.howMany);
                        }
                        _getTransformedByMoveOperation(t) {
                            return this._getTransformedByMove(t.sourcePosition, t.targetPosition, t.howMany);
                        }
                        _getTransformedBySplitOperation(t) {
                            const e = t.movedRange;
                            return e.containsPosition(this) || (e.start.isEqual(this) && "toNext" == this.stickiness)
                                ? this._getCombined(t.splitPosition, t.moveTargetPosition)
                                : t.graveyardPosition
                                ? this._getTransformedByMove(t.graveyardPosition, t.insertionPosition, 1)
                                : this._getTransformedByInsertion(t.insertionPosition, 1);
                        }
                        _getTransformedByMergeOperation(t) {
                            const e = t.movedRange;
                            let n;
                            return (
                                e.containsPosition(this) || e.start.isEqual(this)
                                    ? ((n = this._getCombined(t.sourcePosition, t.targetPosition)), t.sourcePosition.isBefore(t.targetPosition) && (n = n._getTransformedByDeletion(t.deletionPosition, 1)))
                                    : (n = this.isEqual(t.deletionPosition) ? Ka._createAt(t.deletionPosition) : this._getTransformedByMove(t.deletionPosition, t.graveyardPosition, 1)),
                                n
                            );
                        }
                        _getTransformedByDeletion(t, e) {
                            const n = Ka._createAt(this);
                            if (this.root != t.root) return n;
                            if ("same" == Mo(t.getParentPath(), this.getParentPath())) {
                                if (t.offset < this.offset) {
                                    if (t.offset + e > this.offset) return null;
                                    n.offset -= e;
                                }
                            } else if ("prefix" == Mo(t.getParentPath(), this.getParentPath())) {
                                const o = t.path.length - 1;
                                if (t.offset <= this.path[o]) {
                                    if (t.offset + e > this.path[o]) return null;
                                    n.path[o] -= e;
                                }
                            }
                            return n;
                        }
                        _getTransformedByInsertion(t, e) {
                            const n = Ka._createAt(this);
                            if (this.root != t.root) return n;
                            if ("same" == Mo(t.getParentPath(), this.getParentPath())) (t.offset < this.offset || (t.offset == this.offset && "toPrevious" != this.stickiness)) && (n.offset += e);
                            else if ("prefix" == Mo(t.getParentPath(), this.getParentPath())) {
                                const o = t.path.length - 1;
                                t.offset <= this.path[o] && (n.path[o] += e);
                            }
                            return n;
                        }
                        _getTransformedByMove(t, e, n) {
                            if (((e = e._getTransformedByDeletion(t, n)), t.isEqual(e))) return Ka._createAt(this);
                            const o = this._getTransformedByDeletion(t, n);
                            return null === o || (t.isEqual(this) && "toNext" == this.stickiness) || (t.getShiftedBy(n).isEqual(this) && "toPrevious" == this.stickiness) ? this._getCombined(t, e) : o._getTransformedByInsertion(e, n);
                        }
                        _getCombined(t, e) {
                            const n = t.path.length - 1,
                                o = Ka._createAt(e);
                            return (o.stickiness = this.stickiness), (o.offset = o.offset + this.path[n] - t.offset), (o.path = [...o.path, ...this.path.slice(n + 1)]), o;
                        }
                        toJSON() {
                            return { root: this.root.toJSON(), path: Array.from(this.path), stickiness: this.stickiness };
                        }
                        clone() {
                            return new this.constructor(this.root, this.path, this.stickiness);
                        }
                        static _createAt(t, e, n = "toNone") {
                            if (t instanceof Ka) return new Ka(t.root, t.path, t.stickiness);
                            {
                                const o = t;
                                if ("end" == e) e = o.maxOffset;
                                else {
                                    if ("before" == e) return this._createBefore(o, n);
                                    if ("after" == e) return this._createAfter(o, n);
                                    if (0 !== e && !e) throw new c("model-createpositionat-offset-required", [this, t]);
                                }
                                if (!o.is("element") && !o.is("documentFragment")) throw new c("model-position-parent-incorrect", [this, t]);
                                const i = o.getPath();
                                return i.push(e), new this(o.root, i, n);
                            }
                        }
                        static _createAfter(t, e) {
                            if (!t.parent) throw new c("model-position-after-root", [this, t], { root: t });
                            return this._createAt(t.parent, t.endOffset, e);
                        }
                        static _createBefore(t, e) {
                            if (!t.parent) throw new c("model-position-before-root", t, { root: t });
                            return this._createAt(t.parent, t.startOffset, e);
                        }
                        static fromJSON(t, e) {
                            if ("$graveyard" === t.root) {
                                const n = new Ka(e.graveyard, t.path);
                                return (n.stickiness = t.stickiness), n;
                            }
                            if (!e.getRoot(t.root)) throw new c("model-position-fromjson-no-root", e, { rootName: t.root });
                            return new Ka(e.getRoot(t.root), t.path, t.stickiness);
                        }
                    }
                    function Qa(t, e) {
                        const n = e.getChild(e.offsetToIndex(t.offset));
                        return n && n.is("$text") && n.startOffset < t.offset ? n : null;
                    }
                    function Za(t, e, n) {
                        return null !== n ? null : e.getChild(e.offsetToIndex(t.offset));
                    }
                    function Ja(t, e, n) {
                        return null !== n ? null : e.getChild(e.offsetToIndex(t.offset) - 1);
                    }
                    Ka.prototype.is = function (t) {
                        return "position" === t || "model:position" === t;
                    };
                    class Xa extends Va {
                        constructor(t, e) {
                            super(),
                                (this.start = Ka._createAt(t)),
                                (this.end = e ? Ka._createAt(e) : Ka._createAt(t)),
                                (this.start.stickiness = this.isCollapsed ? "toNone" : "toNext"),
                                (this.end.stickiness = this.isCollapsed ? "toNone" : "toPrevious");
                        }
                        *[Symbol.iterator]() {
                            yield* new $a({ boundaries: this, ignoreElementEnd: !0 });
                        }
                        get isCollapsed() {
                            return this.start.isEqual(this.end);
                        }
                        get isFlat() {
                            return "same" == Mo(this.start.getParentPath(), this.end.getParentPath());
                        }
                        get root() {
                            return this.start.root;
                        }
                        containsPosition(t) {
                            return t.isAfter(this.start) && t.isBefore(this.end);
                        }
                        containsRange(t, e = !1) {
                            t.isCollapsed && (e = !1);
                            const n = this.containsPosition(t.start) || (e && this.start.isEqual(t.start)),
                                o = this.containsPosition(t.end) || (e && this.end.isEqual(t.end));
                            return n && o;
                        }
                        containsItem(t) {
                            const e = Ka._createBefore(t);
                            return this.containsPosition(e) || this.start.isEqual(e);
                        }
                        isEqual(t) {
                            return this.start.isEqual(t.start) && this.end.isEqual(t.end);
                        }
                        isIntersecting(t) {
                            return this.start.isBefore(t.end) && this.end.isAfter(t.start);
                        }
                        getDifference(t) {
                            const e = [];
                            return this.isIntersecting(t) ? (this.containsPosition(t.start) && e.push(new Xa(this.start, t.start)), this.containsPosition(t.end) && e.push(new Xa(t.end, this.end))) : e.push(new Xa(this.start, this.end)), e;
                        }
                        getIntersection(t) {
                            if (this.isIntersecting(t)) {
                                let e = this.start,
                                    n = this.end;
                                return this.containsPosition(t.start) && (e = t.start), this.containsPosition(t.end) && (n = t.end), new Xa(e, n);
                            }
                            return null;
                        }
                        getJoined(t, e = !1) {
                            let n = this.isIntersecting(t);
                            if ((n || (n = this.start.isBefore(t.start) ? (e ? this.end.isTouching(t.start) : this.end.isEqual(t.start)) : e ? t.end.isTouching(this.start) : t.end.isEqual(this.start)), !n)) return null;
                            let o = this.start,
                                i = this.end;
                            return t.start.isBefore(o) && (o = t.start), t.end.isAfter(i) && (i = t.end), new Xa(o, i);
                        }
                        getMinimalFlatRanges() {
                            const t = [],
                                e = this.start.getCommonPath(this.end).length,
                                n = Ka._createAt(this.start);
                            let o = n.parent;
                            for (; n.path.length > e + 1; ) {
                                const e = o.maxOffset - n.offset;
                                0 !== e && t.push(new Xa(n, n.getShiftedBy(e))), (n.path = n.path.slice(0, -1)), n.offset++, (o = o.parent);
                            }
                            for (; n.path.length <= this.end.path.length; ) {
                                const e = this.end.path[n.path.length - 1],
                                    o = e - n.offset;
                                0 !== o && t.push(new Xa(n, n.getShiftedBy(o))), (n.offset = e), n.path.push(0);
                            }
                            return t;
                        }
                        getWalker(t = {}) {
                            return (t.boundaries = this), new $a(t);
                        }
                        *getItems(t = {}) {
                            (t.boundaries = this), (t.ignoreElementEnd = !0);
                            const e = new $a(t);
                            for (const t of e) yield t.item;
                        }
                        *getPositions(t = {}) {
                            t.boundaries = this;
                            const e = new $a(t);
                            yield e.position;
                            for (const t of e) yield t.nextPosition;
                        }
                        getTransformedByOperation(t) {
                            switch (t.type) {
                                case "insert":
                                    return this._getTransformedByInsertOperation(t);
                                case "move":
                                case "remove":
                                case "reinsert":
                                    return this._getTransformedByMoveOperation(t);
                                case "split":
                                    return [this._getTransformedBySplitOperation(t)];
                                case "merge":
                                    return [this._getTransformedByMergeOperation(t)];
                            }
                            return [new Xa(this.start, this.end)];
                        }
                        getTransformedByOperations(t) {
                            const e = [new Xa(this.start, this.end)];
                            for (const n of t)
                                for (let t = 0; t < e.length; t++) {
                                    const o = e[t].getTransformedByOperation(n);
                                    e.splice(t, 1, ...o), (t += o.length - 1);
                                }
                            for (let t = 0; t < e.length; t++) {
                                const n = e[t];
                                for (let o = t + 1; o < e.length; o++) {
                                    const t = e[o];
                                    (n.containsRange(t) || t.containsRange(n) || n.isEqual(t)) && e.splice(o, 1);
                                }
                            }
                            return e;
                        }
                        getCommonAncestor() {
                            return this.start.getCommonAncestor(this.end);
                        }
                        getContainedElement() {
                            if (this.isCollapsed) return null;
                            const t = this.start.nodeAfter,
                                e = this.end.nodeBefore;
                            return t && t.is("element") && t === e ? t : null;
                        }
                        toJSON() {
                            return { start: this.start.toJSON(), end: this.end.toJSON() };
                        }
                        clone() {
                            return new this.constructor(this.start, this.end);
                        }
                        _getTransformedByInsertOperation(t, e = !1) {
                            return this._getTransformedByInsertion(t.position, t.howMany, e);
                        }
                        _getTransformedByMoveOperation(t, e = !1) {
                            const n = t.sourcePosition,
                                o = t.howMany,
                                i = t.targetPosition;
                            return this._getTransformedByMove(n, i, o, e);
                        }
                        _getTransformedBySplitOperation(t) {
                            const e = this.start._getTransformedBySplitOperation(t);
                            let n = this.end._getTransformedBySplitOperation(t);
                            return this.end.isEqual(t.insertionPosition) && (n = this.end.getShiftedBy(1)), e.root != n.root && (n = this.end.getShiftedBy(-1)), new Xa(e, n);
                        }
                        _getTransformedByMergeOperation(t) {
                            if (this.start.isEqual(t.targetPosition) && this.end.isEqual(t.deletionPosition)) return new Xa(this.start);
                            let e = this.start._getTransformedByMergeOperation(t),
                                n = this.end._getTransformedByMergeOperation(t);
                            return (
                                e.root != n.root && (n = this.end.getShiftedBy(-1)),
                                e.isAfter(n)
                                    ? (t.sourcePosition.isBefore(t.targetPosition) ? ((e = Ka._createAt(n)), (e.offset = 0)) : (t.deletionPosition.isEqual(e) || (n = t.deletionPosition), (e = t.targetPosition)), new Xa(e, n))
                                    : new Xa(e, n)
                            );
                        }
                        _getTransformedByInsertion(t, e, n = !1) {
                            if (n && this.containsPosition(t)) return [new Xa(this.start, t), new Xa(t.getShiftedBy(e), this.end._getTransformedByInsertion(t, e))];
                            {
                                const n = new Xa(this.start, this.end);
                                return (n.start = n.start._getTransformedByInsertion(t, e)), (n.end = n.end._getTransformedByInsertion(t, e)), [n];
                            }
                        }
                        _getTransformedByMove(t, e, n, o = !1) {
                            if (this.isCollapsed) {
                                const o = this.start._getTransformedByMove(t, e, n);
                                return [new Xa(o)];
                            }
                            const i = Xa._createFromPositionAndShift(t, n),
                                r = e._getTransformedByDeletion(t, n);
                            if (this.containsPosition(e) && !o && (i.containsPosition(this.start) || i.containsPosition(this.end))) {
                                const o = this.start._getTransformedByMove(t, e, n),
                                    i = this.end._getTransformedByMove(t, e, n);
                                return [new Xa(o, i)];
                            }
                            let s;
                            const a = this.getDifference(i);
                            let c = null;
                            const l = this.getIntersection(i);
                            if (
                                (1 == a.length ? (c = new Xa(a[0].start._getTransformedByDeletion(t, n), a[0].end._getTransformedByDeletion(t, n))) : 2 == a.length && (c = new Xa(this.start, this.end._getTransformedByDeletion(t, n))),
                                (s = c ? c._getTransformedByInsertion(r, n, null !== l || o) : []),
                                l)
                            ) {
                                const t = new Xa(l.start._getCombined(i.start, r), l.end._getCombined(i.start, r));
                                2 == s.length ? s.splice(1, 0, t) : s.push(t);
                            }
                            return s;
                        }
                        _getTransformedByDeletion(t, e) {
                            let n = this.start._getTransformedByDeletion(t, e),
                                o = this.end._getTransformedByDeletion(t, e);
                            return null == n && null == o ? null : (null == n && (n = t), null == o && (o = t), new Xa(n, o));
                        }
                        static _createFromPositionAndShift(t, e) {
                            const n = t,
                                o = t.getShiftedBy(e);
                            return e > 0 ? new this(n, o) : new this(o, n);
                        }
                        static _createIn(t) {
                            return new this(Ka._createAt(t, 0), Ka._createAt(t, t.maxOffset));
                        }
                        static _createOn(t) {
                            return this._createFromPositionAndShift(Ka._createBefore(t), t.offsetSize);
                        }
                        static _createFromRanges(t) {
                            if (0 === t.length) throw new c("range-create-from-ranges-empty-array", null);
                            if (1 == t.length) return t[0].clone();
                            const e = t[0];
                            t.sort((t, e) => (t.start.isAfter(e.start) ? 1 : -1));
                            const n = t.indexOf(e),
                                o = new this(e.start, e.end);
                            if (n > 0) for (let e = n - 1; t[e].end.isEqual(o.start); e++) o.start = Ka._createAt(t[e].start);
                            for (let e = n + 1; e < t.length && t[e].start.isEqual(o.end); e++) o.end = Ka._createAt(t[e].end);
                            return o;
                        }
                        static fromJSON(t, e) {
                            return new this(Ka.fromJSON(t.start, e), Ka.fromJSON(t.end, e));
                        }
                    }
                    Xa.prototype.is = function (t) {
                        return "range" === t || "model:range" === t;
                    };
                    class tc extends w {
                        constructor() {
                            super(),
                                (this._modelToViewMapping = new WeakMap()),
                                (this._viewToModelMapping = new WeakMap()),
                                (this._viewToModelLengthCallbacks = new Map()),
                                (this._markerNameToElements = new Map()),
                                (this._elementToMarkerNames = new Map()),
                                (this._deferredBindingRemovals = new Map()),
                                (this._unboundMarkerNames = new Set()),
                                this.on(
                                    "modelToViewPosition",
                                    (t, e) => {
                                        if (e.viewPosition) return;
                                        const n = this._modelToViewMapping.get(e.modelPosition.parent);
                                        if (!n) throw new c("mapping-model-position-view-parent-not-found", this, { modelPosition: e.modelPosition });
                                        e.viewPosition = this.findPositionIn(n, e.modelPosition.offset);
                                    },
                                    { priority: "low" }
                                ),
                                this.on(
                                    "viewToModelPosition",
                                    (t, e) => {
                                        if (e.modelPosition) return;
                                        const n = this.findMappedViewAncestor(e.viewPosition),
                                            o = this._viewToModelMapping.get(n),
                                            i = this._toModelOffset(e.viewPosition.parent, e.viewPosition.offset, n);
                                        e.modelPosition = Ka._createAt(o, i);
                                    },
                                    { priority: "low" }
                                );
                        }
                        bindElements(t, e) {
                            this._modelToViewMapping.set(t, e), this._viewToModelMapping.set(e, t);
                        }
                        unbindViewElement(t, e = {}) {
                            const n = this.toModelElement(t);
                            if (this._elementToMarkerNames.has(t)) for (const e of this._elementToMarkerNames.get(t)) this._unboundMarkerNames.add(e);
                            e.defer ? this._deferredBindingRemovals.set(t, t.root) : (this._viewToModelMapping.delete(t), this._modelToViewMapping.get(n) == t && this._modelToViewMapping.delete(n));
                        }
                        unbindModelElement(t) {
                            const e = this.toViewElement(t);
                            this._modelToViewMapping.delete(t), this._viewToModelMapping.get(e) == t && this._viewToModelMapping.delete(e);
                        }
                        bindElementToMarker(t, e) {
                            const n = this._markerNameToElements.get(e) || new Set();
                            n.add(t);
                            const o = this._elementToMarkerNames.get(t) || new Set();
                            o.add(e), this._markerNameToElements.set(e, n), this._elementToMarkerNames.set(t, o);
                        }
                        unbindElementFromMarkerName(t, e) {
                            const n = this._markerNameToElements.get(e);
                            n && (n.delete(t), 0 == n.size && this._markerNameToElements.delete(e));
                            const o = this._elementToMarkerNames.get(t);
                            o && (o.delete(e), 0 == o.size && this._elementToMarkerNames.delete(t));
                        }
                        flushUnboundMarkerNames() {
                            const t = Array.from(this._unboundMarkerNames);
                            return this._unboundMarkerNames.clear(), t;
                        }
                        flushDeferredBindings() {
                            for (const [t, e] of this._deferredBindingRemovals) t.root == e && this.unbindViewElement(t);
                            this._deferredBindingRemovals = new Map();
                        }
                        clearBindings() {
                            (this._modelToViewMapping = new WeakMap()),
                                (this._viewToModelMapping = new WeakMap()),
                                (this._markerNameToElements = new Map()),
                                (this._elementToMarkerNames = new Map()),
                                (this._unboundMarkerNames = new Set()),
                                (this._deferredBindingRemovals = new Map());
                        }
                        toModelElement(t) {
                            return this._viewToModelMapping.get(t);
                        }
                        toViewElement(t) {
                            return this._modelToViewMapping.get(t);
                        }
                        toModelRange(t) {
                            return new Xa(this.toModelPosition(t.start), this.toModelPosition(t.end));
                        }
                        toViewRange(t) {
                            return new Ui(this.toViewPosition(t.start), this.toViewPosition(t.end));
                        }
                        toModelPosition(t) {
                            const e = { viewPosition: t, mapper: this };
                            return this.fire("viewToModelPosition", e), e.modelPosition;
                        }
                        toViewPosition(t, e = {}) {
                            const n = { modelPosition: t, mapper: this, isPhantom: e.isPhantom };
                            return this.fire("modelToViewPosition", n), n.viewPosition;
                        }
                        markerNameToElements(t) {
                            const e = this._markerNameToElements.get(t);
                            if (!e) return null;
                            const n = new Set();
                            for (const t of e)
                                if (t.is("attributeElement")) for (const e of t.getElementsWithSameId()) n.add(e);
                                else n.add(t);
                            return n;
                        }
                        registerViewToModelLength(t, e) {
                            this._viewToModelLengthCallbacks.set(t, e);
                        }
                        findMappedViewAncestor(t) {
                            let e = t.parent;
                            for (; !this._viewToModelMapping.has(e); ) e = e.parent;
                            return e;
                        }
                        _toModelOffset(t, e, n) {
                            if (n != t) {
                                return this._toModelOffset(t.parent, t.index, n) + this._toModelOffset(t, e, t);
                            }
                            if (t.is("$text")) return e;
                            let o = 0;
                            for (let n = 0; n < e; n++) o += this.getModelLength(t.getChild(n));
                            return o;
                        }
                        getModelLength(t) {
                            if (this._viewToModelLengthCallbacks.get(t.name)) {
                                return this._viewToModelLengthCallbacks.get(t.name)(t);
                            }
                            if (this._viewToModelMapping.has(t)) return 1;
                            if (t.is("$text")) return t.data.length;
                            if (t.is("uiElement")) return 0;
                            {
                                let e = 0;
                                for (const n of t.getChildren()) e += this.getModelLength(n);
                                return e;
                            }
                        }
                        findPositionIn(t, e) {
                            let n,
                                o = 0,
                                i = 0,
                                r = 0;
                            if (t.is("$text")) return new Hi(t, e);
                            for (; i < e; ) (n = t.getChild(r)), (o = this.getModelLength(n)), (i += o), r++;
                            return i == e ? this._moveViewPositionToTextNode(new Hi(t, r)) : this.findPositionIn(n, e - (i - o));
                        }
                        _moveViewPositionToTextNode(t) {
                            const e = t.nodeBefore,
                                n = t.nodeAfter;
                            return e instanceof No ? new Hi(e, e.data.length) : n instanceof No ? new Hi(n, 0) : t;
                        }
                    }
                    class ec {
                        constructor() {
                            (this._consumable = new Map()), (this._textProxyRegistry = new Map());
                        }
                        add(t, e) {
                            (e = nc(e)), t instanceof qa && (t = this._getSymbolForTextProxy(t)), this._consumable.has(t) || this._consumable.set(t, new Map()), this._consumable.get(t).set(e, !0);
                        }
                        consume(t, e) {
                            return (e = nc(e)), t instanceof qa && (t = this._getSymbolForTextProxy(t)), !!this.test(t, e) && (this._consumable.get(t).set(e, !1), !0);
                        }
                        test(t, e) {
                            (e = nc(e)), t instanceof qa && (t = this._getSymbolForTextProxy(t));
                            const n = this._consumable.get(t);
                            if (void 0 === n) return null;
                            const o = n.get(e);
                            return void 0 === o ? null : o;
                        }
                        revert(t, e) {
                            (e = nc(e)), t instanceof qa && (t = this._getSymbolForTextProxy(t));
                            const n = this.test(t, e);
                            return !1 === n ? (this._consumable.get(t).set(e, !0), !0) : !0 !== n && null;
                        }
                        verifyAllConsumed(t) {
                            const e = [];
                            for (const [n, o] of this._consumable)
                                for (const [i, r] of o) {
                                    const o = i.split(":")[0];
                                    r && t == o && e.push({ event: i, item: n.name || n.description });
                                }
                            if (e.length) throw new c("conversion-model-consumable-not-consumed", null, { items: e });
                        }
                        _getSymbolForTextProxy(t) {
                            let e = null;
                            const n = this._textProxyRegistry.get(t.startOffset);
                            if (n) {
                                const o = n.get(t.endOffset);
                                o && (e = o.get(t.parent));
                            }
                            return e || (e = this._addSymbolForTextProxy(t)), e;
                        }
                        _addSymbolForTextProxy(t) {
                            const e = t.startOffset,
                                n = t.endOffset,
                                o = t.parent,
                                i = Symbol("$textProxy:" + t.data);
                            let r, s;
                            return (r = this._textProxyRegistry.get(e)), r || ((r = new Map()), this._textProxyRegistry.set(e, r)), (s = r.get(n)), s || ((s = new Map()), r.set(n, s)), s.set(o, i), i;
                        }
                    }
                    function nc(t) {
                        const e = t.split(":");
                        return "insert" == e[0] ? e[0] : "addMarker" == e[0] || "removeMarker" == e[0] ? t : e.length > 1 ? e[0] + ":" + e[1] : e[0];
                    }
                    class oc extends w {
                        constructor(t) {
                            super(), (this._conversionApi = { dispatcher: this, ...t }), (this._firedEventsMap = new WeakMap());
                        }
                        convertChanges(t, e, n) {
                            const o = this._createConversionApi(n, t.getRefreshedItems());
                            for (const e of t.getMarkersToRemove()) this._convertMarkerRemove(e.name, e.range, o);
                            const i = this._reduceChanges(t.getChanges());
                            for (const t of i)
                                "insert" === t.type
                                    ? this._convertInsert(Xa._createFromPositionAndShift(t.position, t.length), o)
                                    : "reinsert" === t.type
                                    ? this._convertReinsert(Xa._createFromPositionAndShift(t.position, t.length), o)
                                    : "remove" === t.type
                                    ? this._convertRemove(t.position, t.length, t.name, o)
                                    : this._convertAttribute(t.range, t.attributeKey, t.attributeOldValue, t.attributeNewValue, o);
                            for (const t of o.mapper.flushUnboundMarkerNames()) {
                                const n = e.get(t).getRange();
                                this._convertMarkerRemove(t, n, o), this._convertMarkerAdd(t, n, o);
                            }
                            for (const e of t.getMarkersToAdd()) this._convertMarkerAdd(e.name, e.range, o);
                            o.mapper.flushDeferredBindings(), o.consumable.verifyAllConsumed("insert");
                        }
                        convert(t, e, n, o = {}) {
                            const i = this._createConversionApi(n, void 0, o);
                            this._convertInsert(t, i);
                            for (const [t, n] of e) this._convertMarkerAdd(t, n, i);
                            i.consumable.verifyAllConsumed("insert");
                        }
                        convertSelection(t, e, n) {
                            const o = Array.from(e.getMarkersAtPosition(t.getFirstPosition())),
                                i = this._createConversionApi(n);
                            if ((this._addConsumablesForSelection(i.consumable, t, o), this.fire("selection", { selection: t }, i), t.isCollapsed)) {
                                for (const e of o) {
                                    const n = e.getRange();
                                    if (!ic(t.getFirstPosition(), e, i.mapper)) continue;
                                    const o = { item: t, markerName: e.name, markerRange: n };
                                    i.consumable.test(t, "addMarker:" + e.name) && this.fire(`addMarker:${e.name}`, o, i);
                                }
                                for (const e of t.getAttributeKeys()) {
                                    const n = { item: t, range: t.getFirstRange(), attributeKey: e, attributeOldValue: null, attributeNewValue: t.getAttribute(e) };
                                    i.consumable.test(t, "attribute:" + n.attributeKey) && this.fire(`attribute:${n.attributeKey}:$text`, n, i);
                                }
                            }
                        }
                        _convertInsert(t, e, n = {}) {
                            n.doNotAddConsumables || this._addConsumablesForInsert(e.consumable, Array.from(t));
                            for (const n of Array.from(t.getWalker({ shallow: !0 })).map(rc)) this._testAndFire("insert", n, e);
                        }
                        _convertRemove(t, e, n, o) {
                            this.fire(`remove:${n}`, { position: t, length: e }, o);
                        }
                        _convertAttribute(t, e, n, o, i) {
                            this._addConsumablesForRange(i.consumable, t, `attribute:${e}`);
                            for (const r of t) {
                                const t = { item: r.item, range: Xa._createFromPositionAndShift(r.previousPosition, r.length), attributeKey: e, attributeOldValue: n, attributeNewValue: o };
                                this._testAndFire(`attribute:${e}`, t, i);
                            }
                        }
                        _convertReinsert(t, e) {
                            const n = Array.from(t.getWalker({ shallow: !0 }));
                            this._addConsumablesForInsert(e.consumable, n);
                            for (const t of n.map(rc)) this._testAndFire("insert", { ...t, reconversion: !0 }, e);
                        }
                        _convertMarkerAdd(t, e, n) {
                            if ("$graveyard" == e.root.rootName) return;
                            const o = `addMarker:${t}`;
                            if ((n.consumable.add(e, o), this.fire(o, { markerName: t, markerRange: e }, n), n.consumable.consume(e, o))) {
                                this._addConsumablesForRange(n.consumable, e, o);
                                for (const i of e.getItems()) {
                                    if (!n.consumable.test(i, o)) continue;
                                    const r = { item: i, range: Xa._createOn(i), markerName: t, markerRange: e };
                                    this.fire(o, r, n);
                                }
                            }
                        }
                        _convertMarkerRemove(t, e, n) {
                            "$graveyard" != e.root.rootName && this.fire(`removeMarker:${t}`, { markerName: t, markerRange: e }, n);
                        }
                        _reduceChanges(t) {
                            const e = { changes: t };
                            return this.fire("reduceChanges", e), e.changes;
                        }
                        _addConsumablesForInsert(t, e) {
                            for (const n of e) {
                                const e = n.item;
                                if (null === t.test(e, "insert")) {
                                    t.add(e, "insert");
                                    for (const n of e.getAttributeKeys()) t.add(e, "attribute:" + n);
                                }
                            }
                            return t;
                        }
                        _addConsumablesForRange(t, e, n) {
                            for (const o of e.getItems()) t.add(o, n);
                            return t;
                        }
                        _addConsumablesForSelection(t, e, n) {
                            t.add(e, "selection");
                            for (const o of n) t.add(e, "addMarker:" + o.name);
                            for (const n of e.getAttributeKeys()) t.add(e, "attribute:" + n);
                            return t;
                        }
                        _testAndFire(t, e, n) {
                            const o = (function (t, e) {
                                    const n = e.item.is("element") ? e.item.name : "$text";
                                    return `${t}:${n}`;
                                })(t, e),
                                i = e.item.is("$textProxy") ? n.consumable._getSymbolForTextProxy(e.item) : e.item,
                                r = this._firedEventsMap.get(n),
                                s = r.get(i);
                            if (s) {
                                if (s.has(o)) return;
                                s.add(o);
                            } else r.set(i, new Set([o]));
                            this.fire(o, e, n);
                        }
                        _testAndFireAddAttributes(t, e) {
                            const n = { item: t, range: Xa._createOn(t) };
                            for (const t of n.item.getAttributeKeys()) (n.attributeKey = t), (n.attributeOldValue = null), (n.attributeNewValue = n.item.getAttribute(t)), this._testAndFire(`attribute:${t}`, n, e);
                        }
                        _createConversionApi(t, e = new Set(), n = {}) {
                            const o = {
                                ...this._conversionApi,
                                consumable: new ec(),
                                writer: t,
                                options: n,
                                convertItem: (t) => this._convertInsert(Xa._createOn(t), o),
                                convertChildren: (t) => this._convertInsert(Xa._createIn(t), o, { doNotAddConsumables: !0 }),
                                convertAttributes: (t) => this._testAndFireAddAttributes(t, o),
                                canReuseView: (t) => !e.has(o.mapper.toModelElement(t)),
                            };
                            return this._firedEventsMap.set(o, new Map()), o;
                        }
                    }
                    function ic(t, e, n) {
                        const o = e.getRange(),
                            i = Array.from(t.getAncestors());
                        i.shift(), i.reverse();
                        return !i.some((t) => {
                            if (o.containsItem(t)) {
                                return !!n.toViewElement(t).getCustomProperty("addHighlight");
                            }
                        });
                    }
                    function rc(t) {
                        return { item: t.item, range: Xa._createFromPositionAndShift(t.previousPosition, t.length) };
                    }
                    class sc extends b(Va) {
                        constructor(...t) {
                            super(), (this._lastRangeBackward = !1), (this._ranges = []), (this._attrs = new Map()), t.length && this.setTo(...t);
                        }
                        get anchor() {
                            if (this._ranges.length > 0) {
                                const t = this._ranges[this._ranges.length - 1];
                                return this._lastRangeBackward ? t.end : t.start;
                            }
                            return null;
                        }
                        get focus() {
                            if (this._ranges.length > 0) {
                                const t = this._ranges[this._ranges.length - 1];
                                return this._lastRangeBackward ? t.start : t.end;
                            }
                            return null;
                        }
                        get isCollapsed() {
                            return 1 === this._ranges.length && this._ranges[0].isCollapsed;
                        }
                        get rangeCount() {
                            return this._ranges.length;
                        }
                        get isBackward() {
                            return !this.isCollapsed && this._lastRangeBackward;
                        }
                        isEqual(t) {
                            if (this.rangeCount != t.rangeCount) return !1;
                            if (0 === this.rangeCount) return !0;
                            if (!this.anchor.isEqual(t.anchor) || !this.focus.isEqual(t.focus)) return !1;
                            for (const e of this._ranges) {
                                let n = !1;
                                for (const o of t._ranges)
                                    if (e.isEqual(o)) {
                                        n = !0;
                                        break;
                                    }
                                if (!n) return !1;
                            }
                            return !0;
                        }
                        *getRanges() {
                            for (const t of this._ranges) yield new Xa(t.start, t.end);
                        }
                        getFirstRange() {
                            let t = null;
                            for (const e of this._ranges) (t && !e.start.isBefore(t.start)) || (t = e);
                            return t ? new Xa(t.start, t.end) : null;
                        }
                        getLastRange() {
                            let t = null;
                            for (const e of this._ranges) (t && !e.end.isAfter(t.end)) || (t = e);
                            return t ? new Xa(t.start, t.end) : null;
                        }
                        getFirstPosition() {
                            const t = this.getFirstRange();
                            return t ? t.start.clone() : null;
                        }
                        getLastPosition() {
                            const t = this.getLastRange();
                            return t ? t.end.clone() : null;
                        }
                        setTo(...t) {
                            let [e, n, o] = t;
                            if (("object" == typeof n && ((o = n), (n = void 0)), null === e)) this._setRanges([]);
                            else if (e instanceof sc) this._setRanges(e.getRanges(), e.isBackward);
                            else if (e && "function" == typeof e.getRanges) this._setRanges(e.getRanges(), e.isBackward);
                            else if (e instanceof Xa) this._setRanges([e], !!o && !!o.backward);
                            else if (e instanceof Ka) this._setRanges([new Xa(e)]);
                            else if (e instanceof Ha) {
                                const t = !!o && !!o.backward;
                                let i;
                                if ("in" == n) i = Xa._createIn(e);
                                else if ("on" == n) i = Xa._createOn(e);
                                else {
                                    if (void 0 === n) throw new c("model-selection-setto-required-second-parameter", [this, e]);
                                    i = new Xa(Ka._createAt(e, n));
                                }
                                this._setRanges([i], t);
                            } else {
                                if (!fo(e)) throw new c("model-selection-setto-not-selectable", [this, e]);
                                this._setRanges(e, o && !!o.backward);
                            }
                        }
                        _setRanges(t, e = !1) {
                            const n = Array.from(t),
                                o = n.some((e) => {
                                    if (!(e instanceof Xa)) throw new c("model-selection-set-ranges-not-range", [this, t]);
                                    return this._ranges.every((t) => !t.isEqual(e));
                                });
                            (n.length !== this._ranges.length || o) && (this._replaceAllRanges(n), (this._lastRangeBackward = !!e), this.fire("change:range", { directChange: !0 }));
                        }
                        setFocus(t, e) {
                            if (null === this.anchor) throw new c("model-selection-setfocus-no-ranges", [this, t]);
                            const n = Ka._createAt(t, e);
                            if ("same" == n.compareWith(this.focus)) return;
                            const o = this.anchor;
                            this._ranges.length && this._popRange(),
                                "before" == n.compareWith(o) ? (this._pushRange(new Xa(n, o)), (this._lastRangeBackward = !0)) : (this._pushRange(new Xa(o, n)), (this._lastRangeBackward = !1)),
                                this.fire("change:range", { directChange: !0 });
                        }
                        getAttribute(t) {
                            return this._attrs.get(t);
                        }
                        getAttributes() {
                            return this._attrs.entries();
                        }
                        getAttributeKeys() {
                            return this._attrs.keys();
                        }
                        hasAttribute(t) {
                            return this._attrs.has(t);
                        }
                        removeAttribute(t) {
                            this.hasAttribute(t) && (this._attrs.delete(t), this.fire("change:attribute", { attributeKeys: [t], directChange: !0 }));
                        }
                        setAttribute(t, e) {
                            this.getAttribute(t) !== e && (this._attrs.set(t, e), this.fire("change:attribute", { attributeKeys: [t], directChange: !0 }));
                        }
                        getSelectedElement() {
                            return 1 !== this.rangeCount ? null : this.getFirstRange().getContainedElement();
                        }
                        *getSelectedBlocks() {
                            const t = new WeakSet();
                            for (const e of this.getRanges()) {
                                const n = lc(e.start, t);
                                n && dc(n, e) && (yield n);
                                for (const n of e.getWalker()) {
                                    const o = n.item;
                                    "elementEnd" == n.type && cc(o, t, e) && (yield o);
                                }
                                const o = lc(e.end, t);
                                o && !e.end.isTouching(Ka._createAt(o, 0)) && dc(o, e) && (yield o);
                            }
                        }
                        containsEntireContent(t = this.anchor.root) {
                            const e = Ka._createAt(t, 0),
                                n = Ka._createAt(t, "end");
                            return e.isTouching(this.getFirstPosition()) && n.isTouching(this.getLastPosition());
                        }
                        _pushRange(t) {
                            this._checkRange(t), this._ranges.push(new Xa(t.start, t.end));
                        }
                        _checkRange(t) {
                            for (let e = 0; e < this._ranges.length; e++) if (t.isIntersecting(this._ranges[e])) throw new c("model-selection-range-intersects", [this, t], { addedRange: t, intersectingRange: this._ranges[e] });
                        }
                        _replaceAllRanges(t) {
                            this._removeAllRanges();
                            for (const e of t) this._pushRange(e);
                        }
                        _removeAllRanges() {
                            for (; this._ranges.length > 0; ) this._popRange();
                        }
                        _popRange() {
                            this._ranges.pop();
                        }
                    }
                    function ac(t, e) {
                        return !e.has(t) && (e.add(t), t.root.document.model.schema.isBlock(t) && t.parent);
                    }
                    function cc(t, e, n) {
                        return ac(t, e) && dc(t, n);
                    }
                    function lc(t, e) {
                        const n = t.parent.root.document.model.schema,
                            o = t.parent.getAncestors({ parentFirst: !0, includeSelf: !0 });
                        let i = !1;
                        const r = o.find((t) => !i && ((i = n.isLimit(t)), !i && ac(t, e)));
                        return o.forEach((t) => e.add(t)), r;
                    }
                    function dc(t, e) {
                        const n = (function (t) {
                            const e = t.root.document.model.schema;
                            let n = t.parent;
                            for (; n; ) {
                                if (e.isBlock(n)) return n;
                                n = n.parent;
                            }
                        })(t);
                        if (!n) return !0;
                        return !e.containsRange(Xa._createOn(n), !0);
                    }
                    sc.prototype.is = function (t) {
                        return "selection" === t || "model:selection" === t;
                    };
                    class hc extends b(Xa) {
                        constructor(t, e) {
                            super(t, e), uc.call(this);
                        }
                        detach() {
                            this.stopListening();
                        }
                        toRange() {
                            return new Xa(this.start, this.end);
                        }
                        static fromRange(t) {
                            return new hc(t.start, t.end);
                        }
                    }
                    function uc() {
                        this.listenTo(
                            this.root.document.model,
                            "applyOperation",
                            (t, e) => {
                                const n = e[0];
                                n.isDocumentOperation && gc.call(this, n);
                            },
                            { priority: "low" }
                        );
                    }
                    function gc(t) {
                        const e = this.getTransformedByOperation(t),
                            n = Xa._createFromRanges(e),
                            o = !n.isEqual(this),
                            i = (function (t, e) {
                                switch (e.type) {
                                    case "insert":
                                        return t.containsPosition(e.position);
                                    case "move":
                                    case "remove":
                                    case "reinsert":
                                    case "merge":
                                        return t.containsPosition(e.sourcePosition) || t.start.isEqual(e.sourcePosition) || t.containsPosition(e.targetPosition);
                                    case "split":
                                        return t.containsPosition(e.splitPosition) || t.containsPosition(e.insertionPosition);
                                }
                                return !1;
                            })(this, t);
                        let r = null;
                        if (o) {
                            "$graveyard" == n.root.rootName && (r = "remove" == t.type ? t.sourcePosition : t.deletionPosition);
                            const e = this.toRange();
                            (this.start = n.start), (this.end = n.end), this.fire("change:range", e, { deletionPosition: r });
                        } else i && this.fire("change:content", this.toRange(), { deletionPosition: r });
                    }
                    hc.prototype.is = function (t) {
                        return "liveRange" === t || "model:liveRange" === t || "range" == t || "model:range" === t;
                    };
                    const mc = "selection:";
                    class pc extends b(Va) {
                        constructor(t) {
                            super(), (this._selection = new fc(t)), this._selection.delegate("change:range").to(this), this._selection.delegate("change:attribute").to(this), this._selection.delegate("change:marker").to(this);
                        }
                        get isCollapsed() {
                            return this._selection.isCollapsed;
                        }
                        get anchor() {
                            return this._selection.anchor;
                        }
                        get focus() {
                            return this._selection.focus;
                        }
                        get rangeCount() {
                            return this._selection.rangeCount;
                        }
                        get hasOwnRange() {
                            return this._selection.hasOwnRange;
                        }
                        get isBackward() {
                            return this._selection.isBackward;
                        }
                        get isGravityOverridden() {
                            return this._selection.isGravityOverridden;
                        }
                        get markers() {
                            return this._selection.markers;
                        }
                        get _ranges() {
                            return this._selection._ranges;
                        }
                        getRanges() {
                            return this._selection.getRanges();
                        }
                        getFirstPosition() {
                            return this._selection.getFirstPosition();
                        }
                        getLastPosition() {
                            return this._selection.getLastPosition();
                        }
                        getFirstRange() {
                            return this._selection.getFirstRange();
                        }
                        getLastRange() {
                            return this._selection.getLastRange();
                        }
                        getSelectedBlocks() {
                            return this._selection.getSelectedBlocks();
                        }
                        getSelectedElement() {
                            return this._selection.getSelectedElement();
                        }
                        containsEntireContent(t) {
                            return this._selection.containsEntireContent(t);
                        }
                        destroy() {
                            this._selection.destroy();
                        }
                        getAttributeKeys() {
                            return this._selection.getAttributeKeys();
                        }
                        getAttributes() {
                            return this._selection.getAttributes();
                        }
                        getAttribute(t) {
                            return this._selection.getAttribute(t);
                        }
                        hasAttribute(t) {
                            return this._selection.hasAttribute(t);
                        }
                        refresh() {
                            this._selection.updateMarkers(), this._selection._updateAttributes(!1);
                        }
                        observeMarkers(t) {
                            this._selection.observeMarkers(t);
                        }
                        _setFocus(t, e) {
                            this._selection.setFocus(t, e);
                        }
                        _setTo(...t) {
                            this._selection.setTo(...t);
                        }
                        _setAttribute(t, e) {
                            this._selection.setAttribute(t, e);
                        }
                        _removeAttribute(t) {
                            this._selection.removeAttribute(t);
                        }
                        _getStoredAttributes() {
                            return this._selection.getStoredAttributes();
                        }
                        _overrideGravity() {
                            return this._selection.overrideGravity();
                        }
                        _restoreGravity(t) {
                            this._selection.restoreGravity(t);
                        }
                        static _getStoreAttributeKey(t) {
                            return mc + t;
                        }
                        static _isStoreAttributeKey(t) {
                            return t.startsWith(mc);
                        }
                    }
                    pc.prototype.is = function (t) {
                        return "selection" === t || "model:selection" == t || "documentSelection" == t || "model:documentSelection" == t;
                    };
                    class fc extends sc {
                        constructor(t) {
                            super(),
                                (this.markers = new ko({ idProperty: "name" })),
                                (this._model = t.model),
                                (this._document = t),
                                (this._attributePriority = new Map()),
                                (this._selectionRestorePosition = null),
                                (this._hasChangedRange = !1),
                                (this._overriddenGravityRegister = new Set()),
                                (this._observedMarkers = new Set()),
                                this.listenTo(
                                    this._model,
                                    "applyOperation",
                                    (t, e) => {
                                        const n = e[0];
                                        n.isDocumentOperation &&
                                            "marker" != n.type &&
                                            "rename" != n.type &&
                                            "noop" != n.type &&
                                            (0 == this._ranges.length && this._selectionRestorePosition && this._fixGraveyardSelection(this._selectionRestorePosition),
                                            (this._selectionRestorePosition = null),
                                            this._hasChangedRange && ((this._hasChangedRange = !1), this.fire("change:range", { directChange: !1 })));
                                    },
                                    { priority: "lowest" }
                                ),
                                this.on("change:range", () => {
                                    this._validateSelectionRanges(this.getRanges());
                                }),
                                this.listenTo(this._model.markers, "update", (t, e, n, o) => {
                                    this._updateMarker(e, o);
                                }),
                                this.listenTo(this._document, "change", (t, e) => {
                                    !(function (t, e) {
                                        const n = t.document.differ;
                                        for (const o of n.getChanges()) {
                                            if ("insert" != o.type) continue;
                                            const n = o.position.parent;
                                            o.length === n.maxOffset &&
                                                t.enqueueChange(e, (t) => {
                                                    const e = Array.from(n.getAttributeKeys()).filter((t) => t.startsWith(mc));
                                                    for (const o of e) t.removeAttribute(o, n);
                                                });
                                        }
                                    })(this._model, e);
                                });
                        }
                        get isCollapsed() {
                            return 0 === this._ranges.length ? this._document._getDefaultRange().isCollapsed : super.isCollapsed;
                        }
                        get anchor() {
                            return super.anchor || this._document._getDefaultRange().start;
                        }
                        get focus() {
                            return super.focus || this._document._getDefaultRange().end;
                        }
                        get rangeCount() {
                            return this._ranges.length ? this._ranges.length : 1;
                        }
                        get hasOwnRange() {
                            return this._ranges.length > 0;
                        }
                        get isGravityOverridden() {
                            return !!this._overriddenGravityRegister.size;
                        }
                        destroy() {
                            for (let t = 0; t < this._ranges.length; t++) this._ranges[t].detach();
                            this.stopListening();
                        }
                        *getRanges() {
                            this._ranges.length ? yield* super.getRanges() : yield this._document._getDefaultRange();
                        }
                        getFirstRange() {
                            return super.getFirstRange() || this._document._getDefaultRange();
                        }
                        getLastRange() {
                            return super.getLastRange() || this._document._getDefaultRange();
                        }
                        setTo(...t) {
                            super.setTo(...t), this._updateAttributes(!0), this.updateMarkers();
                        }
                        setFocus(t, e) {
                            super.setFocus(t, e), this._updateAttributes(!0), this.updateMarkers();
                        }
                        setAttribute(t, e) {
                            if (this._setAttribute(t, e)) {
                                const e = [t];
                                this.fire("change:attribute", { attributeKeys: e, directChange: !0 });
                            }
                        }
                        removeAttribute(t) {
                            if (this._removeAttribute(t)) {
                                const e = [t];
                                this.fire("change:attribute", { attributeKeys: e, directChange: !0 });
                            }
                        }
                        overrideGravity() {
                            const t = r();
                            return this._overriddenGravityRegister.add(t), 1 === this._overriddenGravityRegister.size && this._updateAttributes(!0), t;
                        }
                        restoreGravity(t) {
                            if (!this._overriddenGravityRegister.has(t)) throw new c("document-selection-gravity-wrong-restore", this, { uid: t });
                            this._overriddenGravityRegister.delete(t), this.isGravityOverridden || this._updateAttributes(!0);
                        }
                        observeMarkers(t) {
                            this._observedMarkers.add(t), this.updateMarkers();
                        }
                        _replaceAllRanges(t) {
                            this._validateSelectionRanges(t), super._replaceAllRanges(t);
                        }
                        _popRange() {
                            this._ranges.pop().detach();
                        }
                        _pushRange(t) {
                            const e = this._prepareRange(t);
                            e && this._ranges.push(e);
                        }
                        _validateSelectionRanges(t) {
                            for (const e of t) if (!this._document._validateSelectionRange(e)) throw new c("document-selection-wrong-position", this, { range: e });
                        }
                        _prepareRange(t) {
                            if ((this._checkRange(t), t.root == this._document.graveyard)) return;
                            const e = hc.fromRange(t);
                            return (
                                e.on("change:range", (t, n, o) => {
                                    if (((this._hasChangedRange = !0), e.root == this._document.graveyard)) {
                                        this._selectionRestorePosition = o.deletionPosition;
                                        const t = this._ranges.indexOf(e);
                                        this._ranges.splice(t, 1), e.detach();
                                    }
                                }),
                                e
                            );
                        }
                        updateMarkers() {
                            if (!this._observedMarkers.size) return;
                            const t = [];
                            let e = !1;
                            for (const e of this._model.markers) {
                                const n = e.name.split(":", 1)[0];
                                if (!this._observedMarkers.has(n)) continue;
                                const o = e.getRange();
                                for (const n of this.getRanges()) o.containsRange(n, !n.isCollapsed) && t.push(e);
                            }
                            const n = Array.from(this.markers);
                            for (const n of t) this.markers.has(n) || (this.markers.add(n), (e = !0));
                            for (const n of Array.from(this.markers)) t.includes(n) || (this.markers.remove(n), (e = !0));
                            e && this.fire("change:marker", { oldMarkers: n, directChange: !1 });
                        }
                        _updateMarker(t, e) {
                            const n = t.name.split(":", 1)[0];
                            if (!this._observedMarkers.has(n)) return;
                            let o = !1;
                            const i = Array.from(this.markers),
                                r = this.markers.has(t);
                            if (e) {
                                let n = !1;
                                for (const t of this.getRanges())
                                    if (e.containsRange(t, !t.isCollapsed)) {
                                        n = !0;
                                        break;
                                    }
                                n && !r ? (this.markers.add(t), (o = !0)) : !n && r && (this.markers.remove(t), (o = !0));
                            } else r && (this.markers.remove(t), (o = !0));
                            o && this.fire("change:marker", { oldMarkers: i, directChange: !1 });
                        }
                        _updateAttributes(t) {
                            const e = Po(this._getSurroundingAttributes()),
                                n = Po(this.getAttributes());
                            if (t) (this._attributePriority = new Map()), (this._attrs = new Map());
                            else for (const [t, e] of this._attributePriority) "low" == e && (this._attrs.delete(t), this._attributePriority.delete(t));
                            this._setAttributesTo(e);
                            const o = [];
                            for (const [t, e] of this.getAttributes()) (n.has(t) && n.get(t) === e) || o.push(t);
                            for (const [t] of n) this.hasAttribute(t) || o.push(t);
                            o.length > 0 && this.fire("change:attribute", { attributeKeys: o, directChange: !1 });
                        }
                        _setAttribute(t, e, n = !0) {
                            const o = n ? "normal" : "low";
                            if ("low" == o && "normal" == this._attributePriority.get(t)) return !1;
                            return super.getAttribute(t) !== e && (this._attrs.set(t, e), this._attributePriority.set(t, o), !0);
                        }
                        _removeAttribute(t, e = !0) {
                            const n = e ? "normal" : "low";
                            return ("low" != n || "normal" != this._attributePriority.get(t)) && (this._attributePriority.set(t, n), !!super.hasAttribute(t) && (this._attrs.delete(t), !0));
                        }
                        _setAttributesTo(t) {
                            const e = new Set();
                            for (const [e, n] of this.getAttributes()) t.get(e) !== n && this._removeAttribute(e, !1);
                            for (const [n, o] of t) {
                                this._setAttribute(n, o, !1) && e.add(n);
                            }
                            return e;
                        }
                        *getStoredAttributes() {
                            const t = this.getFirstPosition().parent;
                            if (this.isCollapsed && t.isEmpty)
                                for (const e of t.getAttributeKeys())
                                    if (e.startsWith(mc)) {
                                        const n = e.substr(mc.length);
                                        yield [n, t.getAttribute(e)];
                                    }
                        }
                        _getSurroundingAttributes() {
                            const t = this.getFirstPosition(),
                                e = this._model.schema;
                            let n = null;
                            if (this.isCollapsed) {
                                const o = t.textNode ? t.textNode : t.nodeBefore,
                                    i = t.textNode ? t.textNode : t.nodeAfter;
                                if ((this.isGravityOverridden || (n = kc(o)), n || (n = kc(i)), !this.isGravityOverridden && !n)) {
                                    let t = o;
                                    for (; t && !e.isInline(t) && !n; ) (t = t.previousSibling), (n = kc(t));
                                }
                                if (!n) {
                                    let t = i;
                                    for (; t && !e.isInline(t) && !n; ) (t = t.nextSibling), (n = kc(t));
                                }
                                n || (n = this.getStoredAttributes());
                            } else {
                                const t = this.getFirstRange();
                                for (const o of t) {
                                    if (o.item.is("element") && e.isObject(o.item)) break;
                                    if ("text" == o.type) {
                                        n = o.item.getAttributes();
                                        break;
                                    }
                                }
                            }
                            return n;
                        }
                        _fixGraveyardSelection(t) {
                            const e = this._model.schema.getNearestSelectionRange(t);
                            e && this._pushRange(e);
                        }
                    }
                    function kc(t) {
                        return t instanceof qa || t instanceof Wa ? t.getAttributes() : null;
                    }
                    class bc {
                        constructor(t) {
                            this._dispatchers = t;
                        }
                        add(t) {
                            for (const e of this._dispatchers) t(e);
                            return this;
                        }
                    }
                    const wc = function (t) {
                        return lo(t, 5);
                    };
                    class _c extends bc {
                        elementToElement(t) {
                            return this.add(
                                (function (t) {
                                    const e = vc(t.model),
                                        n = yc(t.view, "container");
                                    e.attributes.length && (e.children = !0);
                                    return (o) => {
                                        o.on(
                                            `insert:${e.name}`,
                                            (function (t, e = Nc) {
                                                return (n, o, i) => {
                                                    if (!e(o.item, i.consumable, { preflight: !0 })) return;
                                                    const r = t(o.item, i, o);
                                                    if (!r) return;
                                                    e(o.item, i.consumable);
                                                    const s = i.mapper.toViewPosition(o.range.start);
                                                    i.mapper.bindElements(o.item, r), i.writer.insert(s, r), i.convertAttributes(o.item), Tc(r, o.item.getChildren(), i, { reconversion: o.reconversion });
                                                };
                                            })(n, Mc(e)),
                                            { priority: t.converterPriority || "normal" }
                                        ),
                                            (e.children || e.attributes.length) && o.on("reduceChanges", Ic(e), { priority: "low" });
                                    };
                                })(t)
                            );
                        }
                        elementToStructure(t) {
                            return this.add(
                                (function (t) {
                                    const e = vc(t.model),
                                        n = yc(t.view, "container");
                                    return (
                                        (e.children = !0),
                                        (o) => {
                                            if (o._conversionApi.schema.checkChild(e.name, "$text")) throw new c("conversion-element-to-structure-disallowed-text", o, { elementName: e.name });
                                            var i, r;
                                            o.on(
                                                `insert:${e.name}`,
                                                ((i = n),
                                                (r = Mc(e)),
                                                (t, e, n) => {
                                                    if (!r(e.item, n.consumable, { preflight: !0 })) return;
                                                    const o = new Map();
                                                    n.writer._registerSlotFactory(
                                                        (function (t, e, n) {
                                                            return (o, i = "children") => {
                                                                const r = o.createContainerElement("$slot");
                                                                let s = null;
                                                                if ("children" === i) s = Array.from(t.getChildren());
                                                                else {
                                                                    if ("function" != typeof i) throw new c("conversion-slot-mode-unknown", n.dispatcher, { modeOrFilter: i });
                                                                    s = Array.from(t.getChildren()).filter((t) => i(t));
                                                                }
                                                                return e.set(r, s), r;
                                                            };
                                                        })(e.item, o, n)
                                                    );
                                                    const s = i(e.item, n, e);
                                                    if ((n.writer._clearSlotFactory(), !s)) return;
                                                    !(function (t, e, n) {
                                                        const o = Array.from(e.values()).flat(),
                                                            i = new Set(o);
                                                        if (i.size != o.length) throw new c("conversion-slot-filter-overlap", n.dispatcher, { element: t });
                                                        if (i.size != t.childCount) throw new c("conversion-slot-filter-incomplete", n.dispatcher, { element: t });
                                                    })(e.item, o, n),
                                                        r(e.item, n.consumable);
                                                    const a = n.mapper.toViewPosition(e.range.start);
                                                    n.mapper.bindElements(e.item, s),
                                                        n.writer.insert(a, s),
                                                        n.convertAttributes(e.item),
                                                        (function (t, e, n, o) {
                                                            n.mapper.on("modelToViewPosition", s, { priority: "highest" });
                                                            let i = null,
                                                                r = null;
                                                            for ([i, r] of e) Tc(t, r, n, o), n.writer.move(n.writer.createRangeIn(i), n.writer.createPositionBefore(i)), n.writer.remove(i);
                                                            function s(t, e) {
                                                                const n = e.modelPosition.nodeAfter,
                                                                    o = r.indexOf(n);
                                                                o < 0 || (e.viewPosition = e.mapper.findPositionIn(i, o));
                                                            }
                                                            n.mapper.off("modelToViewPosition", s);
                                                        })(s, o, n, { reconversion: e.reconversion });
                                                }),
                                                { priority: t.converterPriority || "normal" }
                                            ),
                                                o.on("reduceChanges", Ic(e), { priority: "low" });
                                        }
                                    );
                                })(t)
                            );
                        }
                        attributeToElement(t) {
                            return this.add(
                                (function (t) {
                                    let e = (t = wc(t)).model;
                                    "string" == typeof e && (e = { key: e });
                                    let n = `attribute:${e.key}`;
                                    e.name && (n += ":" + e.name);
                                    if (e.values) for (const n of e.values) t.view[n] = yc(t.view[n], "attribute");
                                    else t.view = yc(t.view, "attribute");
                                    const o = xc(t);
                                    return (e) => {
                                        e.on(
                                            n,
                                            (function (t) {
                                                return (e, n, o) => {
                                                    if (!o.consumable.test(n.item, e.name)) return;
                                                    const i = t(n.attributeOldValue, o, n),
                                                        r = t(n.attributeNewValue, o, n);
                                                    if (!i && !r) return;
                                                    o.consumable.consume(n.item, e.name);
                                                    const s = o.writer,
                                                        a = s.document.selection;
                                                    if (n.item instanceof sc || n.item instanceof pc) s.wrap(a.getFirstRange(), r);
                                                    else {
                                                        let t = o.mapper.toViewRange(n.range);
                                                        null !== n.attributeOldValue && i && (t = s.unwrap(t, i)), null !== n.attributeNewValue && r && s.wrap(t, r);
                                                    }
                                                };
                                            })(o),
                                            { priority: t.converterPriority || "normal" }
                                        );
                                    };
                                })(t)
                            );
                        }
                        attributeToAttribute(t) {
                            return this.add(
                                (function (t) {
                                    let e = (t = wc(t)).model;
                                    "string" == typeof e && (e = { key: e });
                                    let n = `attribute:${e.key}`;
                                    e.name && (n += ":" + e.name);
                                    if (e.values) for (const n of e.values) t.view[n] = Ec(t.view[n]);
                                    else t.view = Ec(t.view);
                                    const o = xc(t);
                                    return (e) => {
                                        var i;
                                        e.on(
                                            n,
                                            ((i = o),
                                            (t, e, n) => {
                                                if (!n.consumable.test(e.item, t.name)) return;
                                                const o = i(e.attributeOldValue, n, e),
                                                    r = i(e.attributeNewValue, n, e);
                                                if (!o && !r) return;
                                                n.consumable.consume(e.item, t.name);
                                                const s = n.mapper.toViewElement(e.item),
                                                    a = n.writer;
                                                if (!s) throw new c("conversion-attribute-to-attribute-on-text", n.dispatcher, e);
                                                if (null !== e.attributeOldValue && o)
                                                    if ("class" == o.key) {
                                                        const t = wo(o.value);
                                                        for (const e of t) a.removeClass(e, s);
                                                    } else if ("style" == o.key) {
                                                        const t = Object.keys(o.value);
                                                        for (const e of t) a.removeStyle(e, s);
                                                    } else a.removeAttribute(o.key, s);
                                                if (null !== e.attributeNewValue && r)
                                                    if ("class" == r.key) {
                                                        const t = wo(r.value);
                                                        for (const e of t) a.addClass(e, s);
                                                    } else if ("style" == r.key) {
                                                        const t = Object.keys(r.value);
                                                        for (const e of t) a.setStyle(e, r.value[e], s);
                                                    } else a.setAttribute(r.key, r.value, s);
                                            }),
                                            { priority: t.converterPriority || "normal" }
                                        );
                                    };
                                })(t)
                            );
                        }
                        markerToElement(t) {
                            return this.add(
                                (function (t) {
                                    const e = yc(t.view, "ui");
                                    return (n) => {
                                        var o;
                                        n.on(
                                            `addMarker:${t.model}`,
                                            ((o = e),
                                            (t, e, n) => {
                                                e.isOpening = !0;
                                                const i = o(e, n);
                                                e.isOpening = !1;
                                                const r = o(e, n);
                                                if (!i || !r) return;
                                                const s = e.markerRange;
                                                if (s.isCollapsed && !n.consumable.consume(s, t.name)) return;
                                                for (const e of s) if (!n.consumable.consume(e.item, t.name)) return;
                                                const a = n.mapper,
                                                    c = n.writer;
                                                c.insert(a.toViewPosition(s.start), i),
                                                    n.mapper.bindElementToMarker(i, e.markerName),
                                                    s.isCollapsed || (c.insert(a.toViewPosition(s.end), r), n.mapper.bindElementToMarker(r, e.markerName)),
                                                    t.stop();
                                            }),
                                            { priority: t.converterPriority || "normal" }
                                        ),
                                            n.on(
                                                `removeMarker:${t.model}`,
                                                (t, e, n) => {
                                                    const o = n.mapper.markerNameToElements(e.markerName);
                                                    if (o) {
                                                        for (const t of o) n.mapper.unbindElementFromMarkerName(t, e.markerName), n.writer.clear(n.writer.createRangeOn(t), t);
                                                        n.writer.clearClonedElementsGroup(e.markerName), t.stop();
                                                    }
                                                },
                                                { priority: t.converterPriority || "normal" }
                                            );
                                    };
                                })(t)
                            );
                        }
                        markerToHighlight(t) {
                            return this.add(
                                (function (t) {
                                    return (e) => {
                                        var n;
                                        e.on(
                                            `addMarker:${t.model}`,
                                            ((n = t.view),
                                            (t, e, o) => {
                                                if (!e.item) return;
                                                if (!(e.item instanceof sc || e.item instanceof pc || e.item.is("$textProxy"))) return;
                                                const i = Dc(n, e, o);
                                                if (!i) return;
                                                if (!o.consumable.consume(e.item, t.name)) return;
                                                const r = o.writer,
                                                    s = Ac(r, i),
                                                    a = r.document.selection;
                                                if (e.item instanceof sc || e.item instanceof pc) r.wrap(a.getFirstRange(), s);
                                                else {
                                                    const t = o.mapper.toViewRange(e.range),
                                                        n = r.wrap(t, s);
                                                    for (const t of n.getItems())
                                                        if (t.is("attributeElement") && t.isSimilar(s)) {
                                                            o.mapper.bindElementToMarker(t, e.markerName);
                                                            break;
                                                        }
                                                }
                                            }),
                                            { priority: t.converterPriority || "normal" }
                                        ),
                                            e.on(
                                                `addMarker:${t.model}`,
                                                (function (t) {
                                                    return (e, n, o) => {
                                                        if (!n.item) return;
                                                        if (!(n.item instanceof Ga)) return;
                                                        const i = Dc(t, n, o);
                                                        if (!i) return;
                                                        if (!o.consumable.test(n.item, e.name)) return;
                                                        const r = o.mapper.toViewElement(n.item);
                                                        if (r && r.getCustomProperty("addHighlight")) {
                                                            o.consumable.consume(n.item, e.name);
                                                            for (const t of Xa._createIn(n.item)) o.consumable.consume(t.item, e.name);
                                                            r.getCustomProperty("addHighlight")(r, i, o.writer), o.mapper.bindElementToMarker(r, n.markerName);
                                                        }
                                                    };
                                                })(t.view),
                                                { priority: t.converterPriority || "normal" }
                                            ),
                                            e.on(
                                                `removeMarker:${t.model}`,
                                                (function (t) {
                                                    return (e, n, o) => {
                                                        if (n.markerRange.isCollapsed) return;
                                                        const i = Dc(t, n, o);
                                                        if (!i) return;
                                                        const r = Ac(o.writer, i),
                                                            s = o.mapper.markerNameToElements(n.markerName);
                                                        if (s) {
                                                            for (const t of s)
                                                                if ((o.mapper.unbindElementFromMarkerName(t, n.markerName), t.is("attributeElement"))) o.writer.unwrap(o.writer.createRangeOn(t), r);
                                                                else {
                                                                    t.getCustomProperty("removeHighlight")(t, i.id, o.writer);
                                                                }
                                                            o.writer.clearClonedElementsGroup(n.markerName), e.stop();
                                                        }
                                                    };
                                                })(t.view),
                                                { priority: t.converterPriority || "normal" }
                                            );
                                    };
                                })(t)
                            );
                        }
                        markerToData(t) {
                            return this.add(
                                (function (t) {
                                    const e = (t = wc(t)).model;
                                    let n = t.view;
                                    n || (n = (n) => ({ group: e, name: n.substr(t.model.length + 1) }));
                                    return (o) => {
                                        var i;
                                        o.on(
                                            `addMarker:${e}`,
                                            ((i = n),
                                            (t, e, n) => {
                                                const o = i(e.markerName, n);
                                                if (!o) return;
                                                const r = e.markerRange;
                                                n.consumable.consume(r, t.name) && (Cc(r, !1, n, e, o), Cc(r, !0, n, e, o), t.stop());
                                            }),
                                            { priority: t.converterPriority || "normal" }
                                        ),
                                            o.on(
                                                `removeMarker:${e}`,
                                                (function (t) {
                                                    return (e, n, o) => {
                                                        const i = t(n.markerName, o);
                                                        if (!i) return;
                                                        const r = o.mapper.markerNameToElements(n.markerName);
                                                        if (r) {
                                                            for (const t of r)
                                                                o.mapper.unbindElementFromMarkerName(t, n.markerName),
                                                                    t.is("containerElement")
                                                                        ? (s(`data-${i.group}-start-before`, t), s(`data-${i.group}-start-after`, t), s(`data-${i.group}-end-before`, t), s(`data-${i.group}-end-after`, t))
                                                                        : o.writer.clear(o.writer.createRangeOn(t), t);
                                                            o.writer.clearClonedElementsGroup(n.markerName), e.stop();
                                                        }
                                                        function s(t, e) {
                                                            if (e.hasAttribute(t)) {
                                                                const n = new Set(e.getAttribute(t).split(","));
                                                                n.delete(i.name), 0 == n.size ? o.writer.removeAttribute(t, e) : o.writer.setAttribute(t, Array.from(n).join(","), e);
                                                            }
                                                        }
                                                    };
                                                })(n),
                                                { priority: t.converterPriority || "normal" }
                                            );
                                    };
                                })(t)
                            );
                        }
                    }
                    function Ac(t, e) {
                        const n = t.createAttributeElement("span", e.attributes);
                        return e.classes && n._addClass(e.classes), "number" == typeof e.priority && (n._priority = e.priority), (n._id = e.id), n;
                    }
                    function Cc(t, e, n, o, i) {
                        const r = e ? t.start : t.end,
                            s = r.nodeAfter && r.nodeAfter.is("element") ? r.nodeAfter : null,
                            a = r.nodeBefore && r.nodeBefore.is("element") ? r.nodeBefore : null;
                        if (s || a) {
                            let t, r;
                            (e && s) || (!e && !a) ? ((t = s), (r = !0)) : ((t = a), (r = !1));
                            const c = n.mapper.toViewElement(t);
                            if (c)
                                return void (function (t, e, n, o, i, r) {
                                    const s = `data-${r.group}-${e ? "start" : "end"}-${n ? "before" : "after"}`,
                                        a = t.hasAttribute(s) ? t.getAttribute(s).split(",") : [];
                                    a.unshift(r.name), o.writer.setAttribute(s, a.join(","), t), o.mapper.bindElementToMarker(t, i.markerName);
                                })(c, e, r, n, o, i);
                        }
                        !(function (t, e, n, o, i) {
                            const r = `${i.group}-${e ? "start" : "end"}`,
                                s = i.name ? { name: i.name } : null,
                                a = n.writer.createUIElement(r, s);
                            n.writer.insert(t, a), n.mapper.bindElementToMarker(a, o.markerName);
                        })(n.mapper.toViewPosition(r), e, n, o, i);
                    }
                    function vc(t) {
                        return "string" == typeof t && (t = { name: t }), t.attributes ? Array.isArray(t.attributes) || (t.attributes = [t.attributes]) : (t.attributes = []), (t.children = !!t.children), t;
                    }
                    function yc(t, e) {
                        return "function" == typeof t
                            ? t
                            : (n, o) =>
                                  (function (t, e, n) {
                                      "string" == typeof t && (t = { name: t });
                                      let o;
                                      const i = e.writer,
                                          r = Object.assign({}, t.attributes);
                                      if ("container" == n) o = i.createContainerElement(t.name, r);
                                      else if ("attribute" == n) {
                                          const e = { priority: t.priority || nr.DEFAULT_PRIORITY };
                                          o = i.createAttributeElement(t.name, r, e);
                                      } else o = i.createUIElement(t.name, r);
                                      if (t.styles) {
                                          const e = Object.keys(t.styles);
                                          for (const n of e) i.setStyle(n, t.styles[n], o);
                                      }
                                      if (t.classes) {
                                          const e = t.classes;
                                          if ("string" == typeof e) i.addClass(e, o);
                                          else for (const t of e) i.addClass(t, o);
                                      }
                                      return o;
                                  })(t, o, e);
                    }
                    function xc(t) {
                        return t.model.values
                            ? (e, n, o) => {
                                  const i = t.view[e];
                                  return i ? i(e, n, o) : null;
                              }
                            : t.view;
                    }
                    function Ec(t) {
                        return "string" == typeof t ? (e) => ({ key: t, value: e }) : "object" == typeof t ? (t.value ? () => t : (e) => ({ key: t.key, value: e })) : t;
                    }
                    function Dc(t, e, n) {
                        const o = "function" == typeof t ? t(e, n) : t;
                        return o ? (o.priority || (o.priority = 10), o.id || (o.id = e.markerName), o) : null;
                    }
                    function Ic(t) {
                        const e = (function (t) {
                            return (e, n) => {
                                if (!e.is("element", t.name)) return !1;
                                if ("attribute" == n.type) {
                                    if (t.attributes.includes(n.attributeKey)) return !0;
                                } else if (t.children) return !0;
                                return !1;
                            };
                        })(t);
                        return (t, n) => {
                            const o = [];
                            n.reconvertedElements || (n.reconvertedElements = new Set());
                            for (const t of n.changes) {
                                const i = "attribute" == t.type ? t.range.start.nodeAfter : t.position.parent;
                                if (i && e(i, t)) {
                                    if (!n.reconvertedElements.has(i)) {
                                        n.reconvertedElements.add(i);
                                        const t = Ka._createBefore(i);
                                        o.push({ type: "remove", name: i.name, position: t, length: 1 }, { type: "reinsert", name: i.name, position: t, length: 1 });
                                    }
                                } else o.push(t);
                            }
                            n.changes = o;
                        };
                    }
                    function Mc(t) {
                        return (e, n, o = {}) => {
                            const i = ["insert"];
                            for (const n of t.attributes) e.hasAttribute(n) && i.push(`attribute:${n}`);
                            return !!i.every((t) => n.test(e, t)) && (o.preflight || i.forEach((t) => n.consume(e, t)), !0);
                        };
                    }
                    function Tc(t, e, n, o) {
                        for (const i of e) Sc(t.root, i, n, o) || n.convertItem(i);
                    }
                    function Sc(t, e, n, o) {
                        const { writer: i, mapper: r } = n;
                        if (!o.reconversion) return !1;
                        const s = r.toViewElement(e);
                        return !(!s || s.root == t) && !!n.canReuseView(s) && (i.move(i.createRangeOn(s), r.toViewPosition(Ka._createBefore(e))), !0);
                    }
                    function Nc(t, e, { preflight: n } = {}) {
                        return n ? e.test(t, "insert") : e.consume(t, "insert");
                    }
                    function Bc(t) {
                        const { schema: e, document: n } = t.model;
                        for (const o of n.getRootNames()) {
                            const i = n.getRoot(o);
                            if (i.isEmpty && !e.checkChild(i, "$text") && e.checkChild(i, "paragraph")) return t.insertElement("paragraph", i), !0;
                        }
                        return !1;
                    }
                    function Pc(t, e, n) {
                        const o = n.createContext(t);
                        return !!n.checkChild(o, "paragraph") && !!n.checkChild(o.push("paragraph"), e);
                    }
                    function zc(t, e) {
                        const n = e.createElement("paragraph");
                        return e.insert(n, t), e.createPositionAt(n, 0);
                    }
                    class Lc extends bc {
                        elementToElement(t) {
                            return this.add(Oc(t));
                        }
                        elementToAttribute(t) {
                            return this.add(
                                (function (t) {
                                    Fc((t = wc(t)));
                                    const e = Vc(t, !1),
                                        n = Rc(t.view),
                                        o = n ? `element:${n}` : "element";
                                    return (n) => {
                                        n.on(o, e, { priority: t.converterPriority || "low" });
                                    };
                                })(t)
                            );
                        }
                        attributeToAttribute(t) {
                            return this.add(
                                (function (t) {
                                    t = wc(t);
                                    let e = null;
                                    ("string" == typeof t.view || t.view.key) &&
                                        (e = (function (t) {
                                            "string" == typeof t.view && (t.view = { key: t.view });
                                            const e = t.view.key;
                                            let n;
                                            if ("class" == e || "style" == e) {
                                                n = { ["class" == e ? "classes" : "styles"]: t.view.value };
                                            } else {
                                                n = { attributes: { [e]: void 0 === t.view.value ? /[\s\S]*/ : t.view.value } };
                                            }
                                            t.view.name && (n.name = t.view.name);
                                            return (t.view = n), e;
                                        })(t));
                                    Fc(t, e);
                                    const n = Vc(t, !0);
                                    return (e) => {
                                        e.on("element", n, { priority: t.converterPriority || "low" });
                                    };
                                })(t)
                            );
                        }
                        elementToMarker(t) {
                            return this.add(
                                (function (t) {
                                    const e = (function (t) {
                                        return (e, n) => {
                                            const o = "string" == typeof t ? t : t(e, n);
                                            return n.writer.createElement("$marker", { "data-name": o });
                                        };
                                    })(t.model);
                                    return Oc({ ...t, model: e });
                                })(t)
                            );
                        }
                        dataToMarker(t) {
                            return this.add(
                                (function (t) {
                                    (t = wc(t)).model || (t.model = (e) => (e ? t.view + ":" + e : t.view));
                                    const e = { view: t.view, model: t.model },
                                        n = jc(Hc(e, "start")),
                                        o = jc(Hc(e, "end"));
                                    return (i) => {
                                        i.on(`element:${t.view}-start`, n, { priority: t.converterPriority || "normal" }), i.on(`element:${t.view}-end`, o, { priority: t.converterPriority || "normal" });
                                        const r = s.get("low"),
                                            a = s.get("highest"),
                                            c = s.get(t.converterPriority) / a;
                                        i.on(
                                            "element",
                                            (function (t) {
                                                return (e, n, o) => {
                                                    const i = `data-${t.view}`;
                                                    function r(e, i) {
                                                        for (const r of i) {
                                                            const i = t.model(r, o),
                                                                s = o.writer.createElement("$marker", { "data-name": i });
                                                            o.writer.insert(s, e),
                                                                n.modelCursor.isEqual(e) ? (n.modelCursor = n.modelCursor.getShiftedBy(1)) : (n.modelCursor = n.modelCursor._getTransformedByInsertion(e, 1)),
                                                                (n.modelRange = n.modelRange._getTransformedByInsertion(e, 1)[0]);
                                                        }
                                                    }
                                                    (o.consumable.test(n.viewItem, { attributes: i + "-end-after" }) ||
                                                        o.consumable.test(n.viewItem, { attributes: i + "-start-after" }) ||
                                                        o.consumable.test(n.viewItem, { attributes: i + "-end-before" }) ||
                                                        o.consumable.test(n.viewItem, { attributes: i + "-start-before" })) &&
                                                        (n.modelRange || Object.assign(n, o.convertChildren(n.viewItem, n.modelCursor)),
                                                        o.consumable.consume(n.viewItem, { attributes: i + "-end-after" }) && r(n.modelRange.end, n.viewItem.getAttribute(i + "-end-after").split(",")),
                                                        o.consumable.consume(n.viewItem, { attributes: i + "-start-after" }) && r(n.modelRange.end, n.viewItem.getAttribute(i + "-start-after").split(",")),
                                                        o.consumable.consume(n.viewItem, { attributes: i + "-end-before" }) && r(n.modelRange.start, n.viewItem.getAttribute(i + "-end-before").split(",")),
                                                        o.consumable.consume(n.viewItem, { attributes: i + "-start-before" }) && r(n.modelRange.start, n.viewItem.getAttribute(i + "-start-before").split(",")));
                                                };
                                            })(e),
                                            { priority: r + c }
                                        );
                                    };
                                })(t)
                            );
                        }
                    }
                    function Oc(t) {
                        const e = jc((t = wc(t))),
                            n = Rc(t.view),
                            o = n ? `element:${n}` : "element";
                        return (n) => {
                            n.on(o, e, { priority: t.converterPriority || "normal" });
                        };
                    }
                    function Rc(t) {
                        return "string" == typeof t ? t : "object" == typeof t && "string" == typeof t.name ? t.name : null;
                    }
                    function jc(t) {
                        const e = new zo(t.view);
                        return (n, o, i) => {
                            const r = e.match(o.viewItem);
                            if (!r) return;
                            const s = r.match;
                            if (((s.name = !0), !i.consumable.test(o.viewItem, s))) return;
                            const a = (function (t, e, n) {
                                return t instanceof Function ? t(e, n) : n.writer.createElement(t);
                            })(t.model, o.viewItem, i);
                            a && i.safeInsert(a, o.modelCursor) && (i.consumable.consume(o.viewItem, s), i.convertChildren(o.viewItem, a), i.updateConversionResult(a, o));
                        };
                    }
                    function Fc(t, e = null) {
                        const n = null === e || ((t) => t.getAttribute(e)),
                            o = "object" != typeof t.model ? t.model : t.model.key,
                            i = "object" != typeof t.model || void 0 === t.model.value ? n : t.model.value;
                        t.model = { key: o, value: i };
                    }
                    function Vc(t, e) {
                        const n = new zo(t.view);
                        return (o, i, r) => {
                            if (!i.modelRange && e) return;
                            const s = n.match(i.viewItem);
                            if (!s) return;
                            if (
                                (!(function (t, e) {
                                    const n = "function" == typeof t ? t(e) : t;
                                    if ("object" == typeof n && !Rc(n)) return !1;
                                    return !n.classes && !n.attributes && !n.styles;
                                })(t.view, i.viewItem)
                                    ? delete s.match.name
                                    : (s.match.name = !0),
                                !r.consumable.test(i.viewItem, s.match))
                            )
                                return;
                            const a = t.model.key,
                                c = "function" == typeof t.model.value ? t.model.value(i.viewItem, r) : t.model.value;
                            if (null === c) return;
                            i.modelRange || Object.assign(i, r.convertChildren(i.viewItem, i.modelCursor));
                            const l = (function (t, e, n, o) {
                                let i = !1;
                                for (const r of Array.from(t.getItems({ shallow: n }))) o.schema.checkAttribute(r, e.key) && ((i = !0), r.hasAttribute(e.key) || o.writer.setAttribute(e.key, e.value, r));
                                return i;
                            })(i.modelRange, { key: a, value: c }, e, r);
                            l && (r.consumable.test(i.viewItem, { name: !0 }) && (s.match.name = !0), r.consumable.consume(i.viewItem, s.match));
                        };
                    }
                    function Hc(t, e) {
                        return {
                            view: `${t.view}-${e}`,
                            model: (e, n) => {
                                const o = e.getAttribute("name"),
                                    i = t.model(o, n);
                                return n.writer.createElement("$marker", { "data-name": i });
                            },
                        };
                    }
                    class Uc extends P {
                        constructor(t, e) {
                            super(), (this.model = t), (this.view = new Fa(e)), (this.mapper = new tc()), (this.downcastDispatcher = new oc({ mapper: this.mapper, schema: t.schema }));
                            const n = this.model.document,
                                o = n.selection,
                                i = this.model.markers;
                            this.listenTo(
                                this.model,
                                "_beforeChanges",
                                () => {
                                    this.view._disableRendering(!0);
                                },
                                { priority: "highest" }
                            ),
                                this.listenTo(
                                    this.model,
                                    "_afterChanges",
                                    () => {
                                        this.view._disableRendering(!1);
                                    },
                                    { priority: "lowest" }
                                ),
                                this.listenTo(
                                    n,
                                    "change",
                                    () => {
                                        this.view.change((t) => {
                                            this.downcastDispatcher.convertChanges(n.differ, i, t), this.downcastDispatcher.convertSelection(o, i, t);
                                        });
                                    },
                                    { priority: "low" }
                                ),
                                this.listenTo(
                                    this.view.document,
                                    "selectionChange",
                                    (function (t, e) {
                                        return (n, o) => {
                                            const i = o.newSelection,
                                                r = [];
                                            for (const t of i.getRanges()) r.push(e.toModelRange(t));
                                            const s = t.createSelection(r, { backward: i.isBackward });
                                            s.isEqual(t.document.selection) ||
                                                t.change((t) => {
                                                    t.setSelection(s);
                                                });
                                        };
                                    })(this.model, this.mapper)
                                ),
                                this.downcastDispatcher.on(
                                    "insert:$text",
                                    (t, e, n) => {
                                        if (!n.consumable.consume(e.item, t.name)) return;
                                        const o = n.writer,
                                            i = n.mapper.toViewPosition(e.range.start),
                                            r = o.createText(e.item.data);
                                        o.insert(i, r);
                                    },
                                    { priority: "lowest" }
                                ),
                                this.downcastDispatcher.on(
                                    "insert",
                                    (t, e, n) => {
                                        n.convertAttributes(e.item), e.reconversion || !e.item.is("element") || e.item.isEmpty || n.convertChildren(e.item);
                                    },
                                    { priority: "lowest" }
                                ),
                                this.downcastDispatcher.on(
                                    "remove",
                                    (t, e, n) => {
                                        const o = n.mapper.toViewPosition(e.position),
                                            i = e.position.getShiftedBy(e.length),
                                            r = n.mapper.toViewPosition(i, { isPhantom: !0 }),
                                            s = n.writer.createRange(o, r),
                                            a = n.writer.remove(s.getTrimmed());
                                        for (const t of n.writer.createRangeIn(a).getItems()) n.mapper.unbindViewElement(t, { defer: !0 });
                                    },
                                    { priority: "low" }
                                ),
                                this.downcastDispatcher.on(
                                    "selection",
                                    (t, e, n) => {
                                        const o = n.writer,
                                            i = o.document.selection;
                                        for (const t of i.getRanges()) t.isCollapsed && t.end.parent.isAttached() && n.writer.mergeAttributes(t.start);
                                        o.setSelection(null);
                                    },
                                    { priority: "high" }
                                ),
                                this.downcastDispatcher.on(
                                    "selection",
                                    (t, e, n) => {
                                        const o = e.selection;
                                        if (o.isCollapsed) return;
                                        if (!n.consumable.consume(o, "selection")) return;
                                        const i = [];
                                        for (const t of o.getRanges()) i.push(n.mapper.toViewRange(t));
                                        n.writer.setSelection(i, { backward: o.isBackward });
                                    },
                                    { priority: "low" }
                                ),
                                this.downcastDispatcher.on(
                                    "selection",
                                    (t, e, n) => {
                                        const o = e.selection;
                                        if (!o.isCollapsed) return;
                                        if (!n.consumable.consume(o, "selection")) return;
                                        const i = n.writer,
                                            r = o.getFirstPosition(),
                                            s = n.mapper.toViewPosition(r),
                                            a = i.breakAttributes(s);
                                        i.setSelection(a);
                                    },
                                    { priority: "low" }
                                ),
                                this.view.document.roots.bindTo(this.model.document.roots).using((t) => {
                                    if ("$graveyard" == t.rootName) return null;
                                    const e = new Fi(this.view.document, t.name);
                                    return (e.rootName = t.rootName), this.mapper.bindElements(t, e), e;
                                });
                        }
                        destroy() {
                            this.view.destroy(), this.stopListening();
                        }
                        reconvertMarker(t) {
                            const e = "string" == typeof t ? t : t.name,
                                n = this.model.markers.get(e);
                            if (!n) throw new c("editingcontroller-reconvertmarker-marker-not-exist", this, { markerName: e });
                            this.model.change(() => {
                                this.model.markers._refresh(n);
                            });
                        }
                        reconvertItem(t) {
                            this.model.change(() => {
                                this.model.document.differ._refreshItem(t);
                            });
                        }
                    }
                    class Wc {
                        constructor() {
                            this._commands = new Map();
                        }
                        add(t, e) {
                            this._commands.set(t, e);
                        }
                        get(t) {
                            return this._commands.get(t);
                        }
                        execute(t, ...e) {
                            const n = this.get(t);
                            if (!n) throw new c("commandcollection-command-not-found", this, { commandName: t });
                            return n.execute(...e);
                        }
                        *names() {
                            yield* this._commands.keys();
                        }
                        *commands() {
                            yield* this._commands.values();
                        }
                        [Symbol.iterator]() {
                            return this._commands[Symbol.iterator]();
                        }
                        destroy() {
                            for (const t of this.commands()) t.destroy();
                        }
                    }
                    class qc {
                        constructor() {
                            this._consumables = new Map();
                        }
                        add(t, e) {
                            let n;
                            t.is("$text") || t.is("documentFragment") ? this._consumables.set(t, !0) : (this._consumables.has(t) ? (n = this._consumables.get(t)) : ((n = new $c(t)), this._consumables.set(t, n)), n.add(e));
                        }
                        test(t, e) {
                            const n = this._consumables.get(t);
                            return void 0 === n ? null : t.is("$text") || t.is("documentFragment") ? n : n.test(e);
                        }
                        consume(t, e) {
                            return !!this.test(t, e) && (t.is("$text") || t.is("documentFragment") ? this._consumables.set(t, !1) : this._consumables.get(t).consume(e), !0);
                        }
                        revert(t, e) {
                            const n = this._consumables.get(t);
                            void 0 !== n && (t.is("$text") || t.is("documentFragment") ? this._consumables.set(t, !0) : n.revert(e));
                        }
                        static consumablesFromElement(t) {
                            const e = { element: t, name: !0, attributes: [], classes: [], styles: [] },
                                n = t.getAttributeKeys();
                            for (const t of n) "style" != t && "class" != t && e.attributes.push(t);
                            const o = t.getClassNames();
                            for (const t of o) e.classes.push(t);
                            const i = t.getStyleNames();
                            for (const t of i) e.styles.push(t);
                            return e;
                        }
                        static createFrom(t, e) {
                            if ((e || (e = new qc()), t.is("$text"))) return e.add(t), e;
                            t.is("element") && e.add(t, qc.consumablesFromElement(t)), t.is("documentFragment") && e.add(t);
                            for (const n of t.getChildren()) e = qc.createFrom(n, e);
                            return e;
                        }
                    }
                    const Gc = ["attributes", "classes", "styles"];
                    class $c {
                        constructor(t) {
                            (this.element = t), (this._canConsumeName = null), (this._consumables = { attributes: new Map(), styles: new Map(), classes: new Map() });
                        }
                        add(t) {
                            t.name && (this._canConsumeName = !0);
                            for (const e of Gc) e in t && this._add(e, t[e]);
                        }
                        test(t) {
                            if (t.name && !this._canConsumeName) return this._canConsumeName;
                            for (const e of Gc)
                                if (e in t) {
                                    const n = this._test(e, t[e]);
                                    if (!0 !== n) return n;
                                }
                            return !0;
                        }
                        consume(t) {
                            t.name && (this._canConsumeName = !1);
                            for (const e of Gc) e in t && this._consume(e, t[e]);
                        }
                        revert(t) {
                            t.name && (this._canConsumeName = !0);
                            for (const e of Gc) e in t && this._revert(e, t[e]);
                        }
                        _add(t, e) {
                            const n = ye(e) ? e : [e],
                                o = this._consumables[t];
                            for (const e of n) {
                                if ("attributes" === t && ("class" === e || "style" === e)) throw new c("viewconsumable-invalid-attribute", this);
                                if ((o.set(e, !0), "styles" === t)) for (const t of this.element.document.stylesProcessor.getRelatedStyles(e)) o.set(t, !0);
                            }
                        }
                        _test(t, e) {
                            const n = ye(e) ? e : [e],
                                o = this._consumables[t];
                            for (const e of n)
                                if ("attributes" !== t || ("class" !== e && "style" !== e)) {
                                    const t = o.get(e);
                                    if (void 0 === t) return null;
                                    if (!t) return !1;
                                } else {
                                    const t = "class" == e ? "classes" : "styles",
                                        n = this._test(t, [...this._consumables[t].keys()]);
                                    if (!0 !== n) return n;
                                }
                            return !0;
                        }
                        _consume(t, e) {
                            const n = ye(e) ? e : [e],
                                o = this._consumables[t];
                            for (const e of n)
                                if ("attributes" !== t || ("class" !== e && "style" !== e)) {
                                    if ((o.set(e, !1), "styles" == t)) for (const t of this.element.document.stylesProcessor.getRelatedStyles(e)) o.set(t, !1);
                                } else {
                                    const t = "class" == e ? "classes" : "styles";
                                    this._consume(t, [...this._consumables[t].keys()]);
                                }
                        }
                        _revert(t, e) {
                            const n = ye(e) ? e : [e],
                                o = this._consumables[t];
                            for (const e of n)
                                if ("attributes" !== t || ("class" !== e && "style" !== e)) {
                                    !1 === o.get(e) && o.set(e, !0);
                                } else {
                                    const t = "class" == e ? "classes" : "styles";
                                    this._revert(t, [...this._consumables[t].keys()]);
                                }
                        }
                    }
                    class Yc extends P {
                        constructor() {
                            super(),
                                (this._sourceDefinitions = {}),
                                (this._attributeProperties = {}),
                                this.decorate("checkChild"),
                                this.decorate("checkAttribute"),
                                this.on(
                                    "checkAttribute",
                                    (t, e) => {
                                        e[0] = new Kc(e[0]);
                                    },
                                    { priority: "highest" }
                                ),
                                this.on(
                                    "checkChild",
                                    (t, e) => {
                                        (e[0] = new Kc(e[0])), (e[1] = this.getDefinition(e[1]));
                                    },
                                    { priority: "highest" }
                                );
                        }
                        register(t, e) {
                            if (this._sourceDefinitions[t]) throw new c("schema-cannot-register-item-twice", this, { itemName: t });
                            (this._sourceDefinitions[t] = [Object.assign({}, e)]), this._clearCache();
                        }
                        extend(t, e) {
                            if (!this._sourceDefinitions[t]) throw new c("schema-cannot-extend-missing-item", this, { itemName: t });
                            this._sourceDefinitions[t].push(Object.assign({}, e)), this._clearCache();
                        }
                        getDefinitions() {
                            return this._compiledDefinitions || this._compile(), this._compiledDefinitions;
                        }
                        getDefinition(t) {
                            let e;
                            return (e = "string" == typeof t ? t : "is" in t && (t.is("$text") || t.is("$textProxy")) ? "$text" : t.name), this.getDefinitions()[e];
                        }
                        isRegistered(t) {
                            return !!this.getDefinition(t);
                        }
                        isBlock(t) {
                            const e = this.getDefinition(t);
                            return !(!e || !e.isBlock);
                        }
                        isLimit(t) {
                            const e = this.getDefinition(t);
                            return !!e && !(!e.isLimit && !e.isObject);
                        }
                        isObject(t) {
                            const e = this.getDefinition(t);
                            return !!e && !!(e.isObject || (e.isLimit && e.isSelectable && e.isContent));
                        }
                        isInline(t) {
                            const e = this.getDefinition(t);
                            return !(!e || !e.isInline);
                        }
                        isSelectable(t) {
                            const e = this.getDefinition(t);
                            return !!e && !(!e.isSelectable && !e.isObject);
                        }
                        isContent(t) {
                            const e = this.getDefinition(t);
                            return !!e && !(!e.isContent && !e.isObject);
                        }
                        checkChild(t, e) {
                            return !!e && this._checkContextMatch(e, t);
                        }
                        checkAttribute(t, e) {
                            const n = this.getDefinition(t.last);
                            return !!n && n.allowAttributes.includes(e);
                        }
                        checkMerge(t, e) {
                            if (t instanceof Ka) {
                                const e = t.nodeBefore,
                                    n = t.nodeAfter;
                                if (!(e instanceof Ga)) throw new c("schema-check-merge-no-element-before", this);
                                if (!(n instanceof Ga)) throw new c("schema-check-merge-no-element-after", this);
                                return this.checkMerge(e, n);
                            }
                            for (const n of e.getChildren()) if (!this.checkChild(t, n)) return !1;
                            return !0;
                        }
                        addChildCheck(t) {
                            this.on(
                                "checkChild",
                                (e, [n, o]) => {
                                    if (!o) return;
                                    const i = t(n, o);
                                    "boolean" == typeof i && (e.stop(), (e.return = i));
                                },
                                { priority: "high" }
                            );
                        }
                        addAttributeCheck(t) {
                            this.on(
                                "checkAttribute",
                                (e, [n, o]) => {
                                    const i = t(n, o);
                                    "boolean" == typeof i && (e.stop(), (e.return = i));
                                },
                                { priority: "high" }
                            );
                        }
                        setAttributeProperties(t, e) {
                            this._attributeProperties[t] = Object.assign(this.getAttributeProperties(t), e);
                        }
                        getAttributeProperties(t) {
                            return this._attributeProperties[t] || {};
                        }
                        getLimitElement(t) {
                            let e;
                            if (t instanceof Ka) e = t.parent;
                            else {
                                e = (t instanceof Xa ? [t] : Array.from(t.getRanges())).reduce((t, e) => {
                                    const n = e.getCommonAncestor();
                                    return t ? t.getCommonAncestor(n, { includeSelf: !0 }) : n;
                                }, null);
                            }
                            for (; !this.isLimit(e) && e.parent; ) e = e.parent;
                            return e;
                        }
                        checkAttributeInSelection(t, e) {
                            if (t.isCollapsed) {
                                const n = [...t.getFirstPosition().getAncestors(), new Wa("", t.getAttributes())];
                                return this.checkAttribute(n, e);
                            }
                            {
                                const n = t.getRanges();
                                for (const t of n) for (const n of t) if (this.checkAttribute(n.item, e)) return !0;
                            }
                            return !1;
                        }
                        *getValidRanges(t, e) {
                            t = (function* (t) {
                                for (const e of t) yield* e.getMinimalFlatRanges();
                            })(t);
                            for (const n of t) yield* this._getValidRangesForRange(n, e);
                        }
                        getNearestSelectionRange(t, e = "both") {
                            if (this.checkChild(t, "$text")) return new Xa(t);
                            let n, o;
                            const i =
                                t
                                    .getAncestors()
                                    .reverse()
                                    .find((t) => this.isLimit(t)) || t.root;
                            ("both" != e && "backward" != e) || (n = new $a({ boundaries: Xa._createIn(i), startPosition: t, direction: "backward" })),
                                ("both" != e && "forward" != e) || (o = new $a({ boundaries: Xa._createIn(i), startPosition: t }));
                            for (const t of (function* (t, e) {
                                let n = !1;
                                for (; !n; ) {
                                    if (((n = !0), t)) {
                                        const e = t.next();
                                        e.done || ((n = !1), yield { walker: t, value: e.value });
                                    }
                                    if (e) {
                                        const t = e.next();
                                        t.done || ((n = !1), yield { walker: e, value: t.value });
                                    }
                                }
                            })(n, o)) {
                                const e = t.walker == n ? "elementEnd" : "elementStart",
                                    o = t.value;
                                if (o.type == e && this.isObject(o.item)) return Xa._createOn(o.item);
                                if (this.checkChild(o.nextPosition, "$text")) return new Xa(o.nextPosition);
                            }
                            return null;
                        }
                        findAllowedParent(t, e) {
                            let n = t.parent;
                            for (; n; ) {
                                if (this.checkChild(n, e)) return n;
                                if (this.isLimit(n)) return null;
                                n = n.parent;
                            }
                            return null;
                        }
                        setAllowedAttributes(t, e, n) {
                            const o = n.model;
                            for (const [i, r] of Object.entries(e)) o.schema.checkAttribute(t, i) && n.setAttribute(i, r, t);
                        }
                        removeDisallowedAttributes(t, e) {
                            for (const n of t)
                                if (n.is("$text")) cl(this, n, e);
                                else {
                                    const t = Xa._createIn(n).getPositions();
                                    for (const n of t) {
                                        cl(this, n.nodeBefore || n.parent, e);
                                    }
                                }
                        }
                        getAttributesWithProperty(t, e, n) {
                            const o = {};
                            for (const [i, r] of t.getAttributes()) {
                                const t = this.getAttributeProperties(i);
                                void 0 !== t[e] && ((void 0 !== n && n !== t[e]) || (o[i] = r));
                            }
                            return o;
                        }
                        createContext(t) {
                            return new Kc(t);
                        }
                        _clearCache() {
                            this._compiledDefinitions = null;
                        }
                        _compile() {
                            const t = {},
                                e = this._sourceDefinitions,
                                n = Object.keys(e);
                            for (const o of n) t[o] = Qc(e[o], o);
                            for (const e of n) Zc(t, e);
                            for (const e of n) Jc(t, e);
                            for (const e of n) Xc(t, e);
                            for (const e of n) tl(t, e), el(t, e);
                            for (const e of n) nl(t, e), ol(t, e), il(t, e);
                            this._compiledDefinitions = t;
                        }
                        _checkContextMatch(t, e, n = e.length - 1) {
                            const o = e.getItem(n);
                            if (t.allowIn.includes(o.name)) {
                                if (0 == n) return !0;
                                {
                                    const t = this.getDefinition(o);
                                    return this._checkContextMatch(t, e, n - 1);
                                }
                            }
                            return !1;
                        }
                        *_getValidRangesForRange(t, e) {
                            let n = t.start,
                                o = t.start;
                            for (const i of t.getItems({ shallow: !0 }))
                                i.is("element") && (yield* this._getValidRangesForRange(Xa._createIn(i), e)), this.checkAttribute(i, e) || (n.isEqual(o) || (yield new Xa(n, o)), (n = Ka._createAfter(i))), (o = Ka._createAfter(i));
                            n.isEqual(o) || (yield new Xa(n, o));
                        }
                    }
                    class Kc {
                        constructor(t) {
                            if (t instanceof Kc) return t;
                            let e;
                            (e = "string" == typeof t ? [t] : Array.isArray(t) ? t : t.getAncestors({ includeSelf: !0 })), (this._items = e.map(al));
                        }
                        get length() {
                            return this._items.length;
                        }
                        get last() {
                            return this._items[this._items.length - 1];
                        }
                        [Symbol.iterator]() {
                            return this._items[Symbol.iterator]();
                        }
                        push(t) {
                            const e = new Kc([t]);
                            return (e._items = [...this._items, ...e._items]), e;
                        }
                        getItem(t) {
                            return this._items[t];
                        }
                        *getNames() {
                            yield* this._items.map((t) => t.name);
                        }
                        endsWith(t) {
                            return Array.from(this.getNames()).join(" ").endsWith(t);
                        }
                        startsWith(t) {
                            return Array.from(this.getNames()).join(" ").startsWith(t);
                        }
                    }
                    function Qc(t, e) {
                        const n = { name: e, allowIn: [], allowContentOf: [], allowWhere: [], allowAttributes: [], allowAttributesOf: [], allowChildren: [], inheritTypesFrom: [] };
                        return (
                            (function (t, e) {
                                for (const n of t) {
                                    const t = Object.keys(n).filter((t) => t.startsWith("is"));
                                    for (const o of t) e[o] = !!n[o];
                                }
                            })(t, n),
                            rl(t, n, "allowIn"),
                            rl(t, n, "allowContentOf"),
                            rl(t, n, "allowWhere"),
                            rl(t, n, "allowAttributes"),
                            rl(t, n, "allowAttributesOf"),
                            rl(t, n, "allowChildren"),
                            rl(t, n, "inheritTypesFrom"),
                            (function (t, e) {
                                for (const n of t) {
                                    const t = n.inheritAllFrom;
                                    t && (e.allowContentOf.push(t), e.allowWhere.push(t), e.allowAttributesOf.push(t), e.inheritTypesFrom.push(t));
                                }
                            })(t, n),
                            n
                        );
                    }
                    function Zc(t, e) {
                        const n = t[e];
                        for (const o of n.allowChildren) {
                            const n = t[o];
                            n && n.allowIn.push(e);
                        }
                        n.allowChildren.length = 0;
                    }
                    function Jc(t, e) {
                        for (const n of t[e].allowContentOf)
                            if (t[n]) {
                                sl(t, n).forEach((t) => {
                                    t.allowIn.push(e);
                                });
                            }
                        delete t[e].allowContentOf;
                    }
                    function Xc(t, e) {
                        for (const n of t[e].allowWhere) {
                            const o = t[n];
                            if (o) {
                                const n = o.allowIn;
                                t[e].allowIn.push(...n);
                            }
                        }
                        delete t[e].allowWhere;
                    }
                    function tl(t, e) {
                        for (const n of t[e].allowAttributesOf) {
                            const o = t[n];
                            if (o) {
                                const n = o.allowAttributes;
                                t[e].allowAttributes.push(...n);
                            }
                        }
                        delete t[e].allowAttributesOf;
                    }
                    function el(t, e) {
                        const n = t[e];
                        for (const e of n.inheritTypesFrom) {
                            const o = t[e];
                            if (o) {
                                const t = Object.keys(o).filter((t) => t.startsWith("is"));
                                for (const e of t) e in n || (n[e] = o[e]);
                            }
                        }
                        delete n.inheritTypesFrom;
                    }
                    function nl(t, e) {
                        const n = t[e],
                            o = n.allowIn.filter((e) => t[e]);
                        n.allowIn = Array.from(new Set(o));
                    }
                    function ol(t, e) {
                        const n = t[e];
                        for (const o of n.allowIn) {
                            t[o].allowChildren.push(e);
                        }
                    }
                    function il(t, e) {
                        const n = t[e];
                        n.allowAttributes = Array.from(new Set(n.allowAttributes));
                    }
                    function rl(t, e, n) {
                        for (const o of t) {
                            const t = o[n];
                            "string" == typeof t ? e[n].push(t) : Array.isArray(t) && e[n].push(...t);
                        }
                    }
                    function sl(t, e) {
                        const n = t[e];
                        return ((o = t), Object.keys(o).map((t) => o[t])).filter((t) => t.allowIn.includes(n.name));
                        var o;
                    }
                    function al(t) {
                        return "string" == typeof t || t.is("documentFragment")
                            ? { name: "string" == typeof t ? t : "$documentFragment", *getAttributeKeys() {}, getAttribute() {} }
                            : {
                                  name: t.is("element") ? t.name : "$text",
                                  *getAttributeKeys() {
                                      yield* t.getAttributeKeys();
                                  },
                                  getAttribute: (e) => t.getAttribute(e),
                              };
                    }
                    function cl(t, e, n) {
                        for (const o of e.getAttributeKeys()) t.checkAttribute(e, o) || n.removeAttribute(o, e);
                    }
                    class ll extends w {
                        constructor(t) {
                            super(),
                                (this._splitParts = new Map()),
                                (this._cursorParents = new Map()),
                                (this._modelCursor = null),
                                (this._emptyElementsToKeep = new Set()),
                                (this.conversionApi = {
                                    ...t,
                                    consumable: null,
                                    writer: null,
                                    store: null,
                                    convertItem: (t, e) => this._convertItem(t, e),
                                    convertChildren: (t, e) => this._convertChildren(t, e),
                                    safeInsert: (t, e) => this._safeInsert(t, e),
                                    updateConversionResult: (t, e) => this._updateConversionResult(t, e),
                                    splitToAllowedParent: (t, e) => this._splitToAllowedParent(t, e),
                                    getSplitParts: (t) => this._getSplitParts(t),
                                    keepEmptyElement: (t) => this._keepEmptyElement(t),
                                });
                        }
                        convert(t, e, n = ["$root"]) {
                            this.fire("viewCleanup", t),
                                (this._modelCursor = (function (t, e) {
                                    let n;
                                    for (const o of new Kc(t)) {
                                        const t = {};
                                        for (const e of o.getAttributeKeys()) t[e] = o.getAttribute(e);
                                        const i = e.createElement(o.name, t);
                                        n && e.insert(i, n), (n = Ka._createAt(i, 0));
                                    }
                                    return n;
                                })(n, e)),
                                (this.conversionApi.writer = e),
                                (this.conversionApi.consumable = qc.createFrom(t)),
                                (this.conversionApi.store = {});
                            const { modelRange: o } = this._convertItem(t, this._modelCursor),
                                i = e.createDocumentFragment();
                            if (o) {
                                this._removeEmptyElements();
                                for (const t of Array.from(this._modelCursor.parent.getChildren())) e.append(t, i);
                                i.markers = (function (t, e) {
                                    const n = new Set(),
                                        o = new Map(),
                                        i = Xa._createIn(t).getItems();
                                    for (const t of i) t.is("element", "$marker") && n.add(t);
                                    for (const t of n) {
                                        const n = t.getAttribute("data-name"),
                                            i = e.createPositionBefore(t);
                                        o.has(n) ? (o.get(n).end = i.clone()) : o.set(n, new Xa(i.clone())), e.remove(t);
                                    }
                                    return o;
                                })(i, e);
                            }
                            return (this._modelCursor = null), this._splitParts.clear(), this._cursorParents.clear(), this._emptyElementsToKeep.clear(), (this.conversionApi.writer = null), (this.conversionApi.store = null), i;
                        }
                        _convertItem(t, e) {
                            const n = { viewItem: t, modelCursor: e, modelRange: null };
                            if (
                                (t.is("element") ? this.fire(`element:${t.name}`, n, this.conversionApi) : t.is("$text") ? this.fire("text", n, this.conversionApi) : this.fire("documentFragment", n, this.conversionApi),
                                n.modelRange && !(n.modelRange instanceof Xa))
                            )
                                throw new c("view-conversion-dispatcher-incorrect-result", this);
                            return { modelRange: n.modelRange, modelCursor: n.modelCursor };
                        }
                        _convertChildren(t, e) {
                            let n = e.is("position") ? e : Ka._createAt(e, 0);
                            const o = new Xa(n);
                            for (const e of Array.from(t.getChildren())) {
                                const t = this._convertItem(e, n);
                                t.modelRange instanceof Xa && ((o.end = t.modelRange.end), (n = t.modelCursor));
                            }
                            return { modelRange: o, modelCursor: n };
                        }
                        _safeInsert(t, e) {
                            const n = this._splitToAllowedParent(t, e);
                            return !!n && (this.conversionApi.writer.insert(t, n.position), !0);
                        }
                        _updateConversionResult(t, e) {
                            const n = this._getSplitParts(t),
                                o = this.conversionApi.writer;
                            e.modelRange || (e.modelRange = o.createRange(o.createPositionBefore(t), o.createPositionAfter(n[n.length - 1])));
                            const i = this._cursorParents.get(t);
                            e.modelCursor = i ? o.createPositionAt(i, 0) : e.modelRange.end;
                        }
                        _splitToAllowedParent(t, e) {
                            const { schema: n, writer: o } = this.conversionApi;
                            let i = n.findAllowedParent(e, t);
                            if (i) {
                                if (i === e.parent) return { position: e };
                                this._modelCursor.parent.getAncestors().includes(i) && (i = null);
                            }
                            if (!i) return Pc(e, t, n) ? { position: zc(e, o) } : null;
                            const r = this.conversionApi.writer.split(e, i),
                                s = [];
                            for (const t of r.range.getWalker())
                                if ("elementEnd" == t.type) s.push(t.item);
                                else {
                                    const e = s.pop(),
                                        n = t.item;
                                    this._registerSplitPair(e, n);
                                }
                            const a = r.range.end.parent;
                            return this._cursorParents.set(t, a), { position: r.position, cursorParent: a };
                        }
                        _registerSplitPair(t, e) {
                            this._splitParts.has(t) || this._splitParts.set(t, [t]);
                            const n = this._splitParts.get(t);
                            this._splitParts.set(e, n), n.push(e);
                        }
                        _getSplitParts(t) {
                            let e;
                            return (e = this._splitParts.has(t) ? this._splitParts.get(t) : [t]), e;
                        }
                        _keepEmptyElement(t) {
                            this._emptyElementsToKeep.add(t);
                        }
                        _removeEmptyElements() {
                            let t = !1;
                            for (const e of this._splitParts.keys()) e.isEmpty && !this._emptyElementsToKeep.has(e) && (this.conversionApi.writer.remove(e), this._splitParts.delete(e), (t = !0));
                            t && this._removeEmptyElements();
                        }
                    }
                    class dl {
                        getHtml(t) {
                            const e = document.implementation.createHTMLDocument("").createElement("div");
                            return e.appendChild(t), e.innerHTML;
                        }
                    }
                    class hl {
                        constructor(t) {
                            (this.domParser = new DOMParser()), (this.domConverter = new ms(t, { renderingMode: "data" })), (this.htmlWriter = new dl());
                        }
                        toData(t) {
                            const e = this.domConverter.viewToDom(t);
                            return this.htmlWriter.getHtml(e);
                        }
                        toView(t) {
                            const e = this._toDom(t);
                            return this.domConverter.domToView(e);
                        }
                        registerRawContentMatcher(t) {
                            this.domConverter.registerRawContentMatcher(t);
                        }
                        useFillerType(t) {
                            this.domConverter.blockFillerMode = "marked" == t ? "markedNbsp" : "nbsp";
                        }
                        _toDom(t) {
                            t.match(/<(?:html|body|head|meta)(?:\s[^>]*)?>/i) || (t = `<body>${t}</body>`);
                            const e = this.domParser.parseFromString(t, "text/html"),
                                n = e.createDocumentFragment(),
                                o = e.body.childNodes;
                            for (; o.length > 0; ) n.appendChild(o[0]);
                            return n;
                        }
                    }
                    class ul extends w {
                        constructor(t, e) {
                            super(),
                                (this.model = t),
                                (this.mapper = new tc()),
                                (this.downcastDispatcher = new oc({ mapper: this.mapper, schema: t.schema })),
                                this.downcastDispatcher.on(
                                    "insert:$text",
                                    (t, e, n) => {
                                        if (!n.consumable.consume(e.item, t.name)) return;
                                        const o = n.writer,
                                            i = n.mapper.toViewPosition(e.range.start),
                                            r = o.createText(e.item.data);
                                        o.insert(i, r);
                                    },
                                    { priority: "lowest" }
                                ),
                                this.downcastDispatcher.on(
                                    "insert",
                                    (t, e, n) => {
                                        n.convertAttributes(e.item), e.reconversion || !e.item.is("element") || e.item.isEmpty || n.convertChildren(e.item);
                                    },
                                    { priority: "lowest" }
                                ),
                                (this.upcastDispatcher = new ll({ schema: t.schema })),
                                (this.viewDocument = new er(e)),
                                (this.stylesProcessor = e),
                                (this.htmlProcessor = new hl(this.viewDocument)),
                                (this.processor = this.htmlProcessor),
                                (this._viewWriter = new xr(this.viewDocument)),
                                this.upcastDispatcher.on(
                                    "text",
                                    (t, e, { schema: n, consumable: o, writer: i }) => {
                                        let r = e.modelCursor;
                                        if (!o.test(e.viewItem)) return;
                                        if (!n.checkChild(r, "$text")) {
                                            if (!Pc(r, "$text", n)) return;
                                            if (0 == e.viewItem.data.trim().length) return;
                                            r = zc(r, i);
                                        }
                                        o.consume(e.viewItem);
                                        const s = i.createText(e.viewItem.data);
                                        i.insert(s, r), (e.modelRange = i.createRange(r, r.getShiftedBy(s.offsetSize))), (e.modelCursor = e.modelRange.end);
                                    },
                                    { priority: "lowest" }
                                ),
                                this.upcastDispatcher.on(
                                    "element",
                                    (t, e, n) => {
                                        if (!e.modelRange && n.consumable.consume(e.viewItem, { name: !0 })) {
                                            const { modelRange: t, modelCursor: o } = n.convertChildren(e.viewItem, e.modelCursor);
                                            (e.modelRange = t), (e.modelCursor = o);
                                        }
                                    },
                                    { priority: "lowest" }
                                ),
                                this.upcastDispatcher.on(
                                    "documentFragment",
                                    (t, e, n) => {
                                        if (!e.modelRange && n.consumable.consume(e.viewItem, { name: !0 })) {
                                            const { modelRange: t, modelCursor: o } = n.convertChildren(e.viewItem, e.modelCursor);
                                            (e.modelRange = t), (e.modelCursor = o);
                                        }
                                    },
                                    { priority: "lowest" }
                                ),
                                P.prototype.decorate.call(this, "init"),
                                P.prototype.decorate.call(this, "set"),
                                P.prototype.decorate.call(this, "get"),
                                this.on(
                                    "init",
                                    () => {
                                        this.fire("ready");
                                    },
                                    { priority: "lowest" }
                                ),
                                this.on(
                                    "ready",
                                    () => {
                                        this.model.enqueueChange({ isUndoable: !1 }, Bc);
                                    },
                                    { priority: "lowest" }
                                );
                        }
                        get(t = {}) {
                            const { rootName: e = "main", trim: n = "empty" } = t;
                            if (!this._checkIfRootsExists([e])) throw new c("datacontroller-get-non-existent-root", this);
                            const o = this.model.document.getRoot(e);
                            return "empty" !== n || this.model.hasContent(o, { ignoreWhitespaces: !0 }) ? this.stringify(o, t) : "";
                        }
                        stringify(t, e = {}) {
                            const n = this.toView(t, e);
                            return this.processor.toData(n);
                        }
                        toView(t, e = {}) {
                            const n = this.viewDocument,
                                o = this._viewWriter;
                            this.mapper.clearBindings();
                            const i = Xa._createIn(t),
                                r = new yr(n);
                            this.mapper.bindElements(t, r);
                            const s = t.is("documentFragment")
                                ? t.markers
                                : (function (t) {
                                      const e = [],
                                          n = t.root.document;
                                      if (!n) return new Map();
                                      const o = Xa._createIn(t);
                                      for (const t of n.model.markers) {
                                          const n = t.getRange(),
                                              i = n.isCollapsed,
                                              r = n.start.isEqual(o.start) || n.end.isEqual(o.end);
                                          if (i && r) e.push([t.name, n]);
                                          else {
                                              const i = o.getIntersection(n);
                                              i && e.push([t.name, i]);
                                          }
                                      }
                                      return (
                                          e.sort(([t, e], [n, o]) => {
                                              if ("after" !== e.end.compareWith(o.start)) return 1;
                                              if ("before" !== e.start.compareWith(o.end)) return -1;
                                              switch (e.start.compareWith(o.start)) {
                                                  case "before":
                                                      return 1;
                                                  case "after":
                                                      return -1;
                                                  default:
                                                      switch (e.end.compareWith(o.end)) {
                                                          case "before":
                                                              return 1;
                                                          case "after":
                                                              return -1;
                                                          default:
                                                              return n.localeCompare(t);
                                                      }
                                              }
                                          }),
                                          new Map(e)
                                      );
                                  })(t);
                            return this.downcastDispatcher.convert(i, s, o, e), r;
                        }
                        init(t) {
                            if (this.model.document.version) throw new c("datacontroller-init-document-not-empty", this);
                            let e = {};
                            if (("string" == typeof t ? (e.main = t) : (e = t), !this._checkIfRootsExists(Object.keys(e)))) throw new c("datacontroller-init-non-existent-root", this);
                            return (
                                this.model.enqueueChange({ isUndoable: !1 }, (t) => {
                                    for (const n of Object.keys(e)) {
                                        const o = this.model.document.getRoot(n);
                                        t.insert(this.parse(e[n], o), o, 0);
                                    }
                                }),
                                Promise.resolve()
                            );
                        }
                        set(t, e = {}) {
                            let n = {};
                            if (("string" == typeof t ? (n.main = t) : (n = t), !this._checkIfRootsExists(Object.keys(n)))) throw new c("datacontroller-set-non-existent-root", this);
                            this.model.enqueueChange(e.batchType || {}, (t) => {
                                t.setSelection(null), t.removeSelectionAttribute(this.model.document.selection.getAttributeKeys());
                                for (const e of Object.keys(n)) {
                                    const o = this.model.document.getRoot(e);
                                    t.remove(t.createRangeIn(o)), t.insert(this.parse(n[e], o), o, 0);
                                }
                            });
                        }
                        parse(t, e = "$root") {
                            const n = this.processor.toView(t);
                            return this.toModel(n, e);
                        }
                        toModel(t, e = "$root") {
                            return this.model.change((n) => this.upcastDispatcher.convert(t, n, e));
                        }
                        addStyleProcessorRules(t) {
                            t(this.stylesProcessor);
                        }
                        registerRawContentMatcher(t) {
                            this.processor && this.processor !== this.htmlProcessor && this.processor.registerRawContentMatcher(t), this.htmlProcessor.registerRawContentMatcher(t);
                        }
                        destroy() {
                            this.stopListening();
                        }
                        _checkIfRootsExists(t) {
                            for (const e of t) if (!this.model.document.getRootNames().includes(e)) return !1;
                            return !0;
                        }
                    }
                    class gl {
                        constructor(t, e) {
                            (this._helpers = new Map()),
                                (this._downcast = wo(t)),
                                this._createConversionHelpers({ name: "downcast", dispatchers: this._downcast, isDowncast: !0 }),
                                (this._upcast = wo(e)),
                                this._createConversionHelpers({ name: "upcast", dispatchers: this._upcast, isDowncast: !1 });
                        }
                        addAlias(t, e) {
                            const n = this._downcast.includes(e);
                            if (!this._upcast.includes(e) && !n) throw new c("conversion-add-alias-dispatcher-not-registered", this);
                            this._createConversionHelpers({ name: t, dispatchers: [e], isDowncast: n });
                        }
                        for(t) {
                            if (!this._helpers.has(t)) throw new c("conversion-for-unknown-group", this);
                            return this._helpers.get(t);
                        }
                        elementToElement(t) {
                            this.for("downcast").elementToElement(t);
                            for (const { model: e, view: n } of ml(t)) this.for("upcast").elementToElement({ model: e, view: n, converterPriority: t.converterPriority });
                        }
                        attributeToElement(t) {
                            this.for("downcast").attributeToElement(t);
                            for (const { model: e, view: n } of ml(t)) this.for("upcast").elementToAttribute({ view: n, model: e, converterPriority: t.converterPriority });
                        }
                        attributeToAttribute(t) {
                            this.for("downcast").attributeToAttribute(t);
                            for (const { model: e, view: n } of ml(t)) this.for("upcast").attributeToAttribute({ view: n, model: e });
                        }
                        _createConversionHelpers({ name: t, dispatchers: e, isDowncast: n }) {
                            if (this._helpers.has(t)) throw new c("conversion-group-exists", this);
                            const o = n ? new _c(e) : new Lc(e);
                            this._helpers.set(t, o);
                        }
                    }
                    function* ml(t) {
                        if (t.model.values)
                            for (const e of t.model.values) {
                                const n = { key: t.model.key, value: e },
                                    o = t.view[e],
                                    i = t.upcastAlso ? t.upcastAlso[e] : void 0;
                                yield* pl(n, o, i);
                            }
                        else yield* pl(t.model, t.view, t.upcastAlso);
                    }
                    function* pl(t, e, n) {
                        if ((yield { model: t, view: e }, n)) for (const e of wo(n)) yield { model: t, view: e };
                    }
                    class fl {
                        constructor(t = {}) {
                            "string" == typeof t && ((t = "transparent" === t ? { isUndoable: !1 } : {}), l("batch-constructor-deprecated-string-type"));
                            const { isUndoable: e = !0, isLocal: n = !0, isUndo: o = !1, isTyping: i = !1 } = t;
                            (this.operations = []), (this.isUndoable = e), (this.isLocal = n), (this.isUndo = o), (this.isTyping = i);
                        }
                        get type() {
                            return l("batch-type-deprecated"), "default";
                        }
                        get baseVersion() {
                            for (const t of this.operations) if (null !== t.baseVersion) return t.baseVersion;
                            return null;
                        }
                        addOperation(t) {
                            return (t.batch = this), this.operations.push(t), t;
                        }
                    }
                    class kl {
                        constructor(t) {
                            (this._markerCollection = t),
                                (this._changesInElement = new Map()),
                                (this._elementSnapshots = new Map()),
                                (this._changedMarkers = new Map()),
                                (this._changeCount = 0),
                                (this._cachedChanges = null),
                                (this._cachedChangesWithGraveyard = null),
                                (this._refreshedItems = new Set());
                        }
                        get isEmpty() {
                            return 0 == this._changesInElement.size && 0 == this._changedMarkers.size;
                        }
                        bufferOperation(t) {
                            const e = t;
                            switch (e.type) {
                                case "insert":
                                    if (this._isInInsertedElement(e.position.parent)) return;
                                    this._markInsert(e.position.parent, e.position.offset, e.nodes.maxOffset);
                                    break;
                                case "addAttribute":
                                case "removeAttribute":
                                case "changeAttribute":
                                    for (const t of e.range.getItems({ shallow: !0 })) this._isInInsertedElement(t.parent) || this._markAttribute(t);
                                    break;
                                case "remove":
                                case "move":
                                case "reinsert": {
                                    if (e.sourcePosition.isEqual(e.targetPosition) || e.sourcePosition.getShiftedBy(e.howMany).isEqual(e.targetPosition)) return;
                                    const t = this._isInInsertedElement(e.sourcePosition.parent),
                                        n = this._isInInsertedElement(e.targetPosition.parent);
                                    t || this._markRemove(e.sourcePosition.parent, e.sourcePosition.offset, e.howMany), n || this._markInsert(e.targetPosition.parent, e.getMovedRangeStart().offset, e.howMany);
                                    break;
                                }
                                case "rename": {
                                    if (this._isInInsertedElement(e.position.parent)) return;
                                    this._markRemove(e.position.parent, e.position.offset, 1), this._markInsert(e.position.parent, e.position.offset, 1);
                                    const t = Xa._createFromPositionAndShift(e.position, 1);
                                    for (const e of this._markerCollection.getMarkersIntersectingRange(t)) {
                                        const t = e.getData();
                                        this.bufferMarkerChange(e.name, t, t);
                                    }
                                    break;
                                }
                                case "split": {
                                    const t = e.splitPosition.parent;
                                    this._isInInsertedElement(t) || this._markRemove(t, e.splitPosition.offset, e.howMany),
                                        this._isInInsertedElement(e.insertionPosition.parent) || this._markInsert(e.insertionPosition.parent, e.insertionPosition.offset, 1),
                                        e.graveyardPosition && this._markRemove(e.graveyardPosition.parent, e.graveyardPosition.offset, 1);
                                    break;
                                }
                                case "merge": {
                                    const t = e.sourcePosition.parent;
                                    this._isInInsertedElement(t.parent) || this._markRemove(t.parent, t.startOffset, 1);
                                    const n = e.graveyardPosition.parent;
                                    this._markInsert(n, e.graveyardPosition.offset, 1);
                                    const o = e.targetPosition.parent;
                                    this._isInInsertedElement(o) || this._markInsert(o, e.targetPosition.offset, t.maxOffset);
                                    break;
                                }
                            }
                            this._cachedChanges = null;
                        }
                        bufferMarkerChange(t, e, n) {
                            const o = this._changedMarkers.get(t);
                            o ? ((o.newMarkerData = n), null == o.oldMarkerData.range && null == n.range && this._changedMarkers.delete(t)) : this._changedMarkers.set(t, { newMarkerData: n, oldMarkerData: e });
                        }
                        getMarkersToRemove() {
                            const t = [];
                            for (const [e, n] of this._changedMarkers) null != n.oldMarkerData.range && t.push({ name: e, range: n.oldMarkerData.range });
                            return t;
                        }
                        getMarkersToAdd() {
                            const t = [];
                            for (const [e, n] of this._changedMarkers) null != n.newMarkerData.range && t.push({ name: e, range: n.newMarkerData.range });
                            return t;
                        }
                        getChangedMarkers() {
                            return Array.from(this._changedMarkers).map(([t, e]) => ({ name: t, data: { oldRange: e.oldMarkerData.range, newRange: e.newMarkerData.range } }));
                        }
                        hasDataChanges() {
                            if (this._changesInElement.size > 0) return !0;
                            for (const { newMarkerData: t, oldMarkerData: e } of this._changedMarkers.values()) {
                                if (t.affectsData !== e.affectsData) return !0;
                                if (t.affectsData) {
                                    const n = t.range && !e.range,
                                        o = !t.range && e.range,
                                        i = t.range && e.range && !t.range.isEqual(e.range);
                                    if (n || o || i) return !0;
                                }
                            }
                            return !1;
                        }
                        getChanges(t = {}) {
                            if (this._cachedChanges) return t.includeChangesInGraveyard ? this._cachedChangesWithGraveyard.slice() : this._cachedChanges.slice();
                            let e = [];
                            for (const t of this._changesInElement.keys()) {
                                const n = this._changesInElement.get(t).sort((t, e) => (t.offset === e.offset ? (t.type != e.type ? ("remove" == t.type ? -1 : 1) : 0) : t.offset < e.offset ? -1 : 1)),
                                    o = this._elementSnapshots.get(t),
                                    i = bl(t.getChildren()),
                                    r = wl(o.length, n);
                                let s = 0,
                                    a = 0;
                                for (const n of r)
                                    if ("i" === n) e.push(this._getInsertDiff(t, s, i[s])), s++;
                                    else if ("r" === n) e.push(this._getRemoveDiff(t, s, o[a])), a++;
                                    else if ("a" === n) {
                                        const n = i[s].attributes,
                                            r = o[a].attributes;
                                        let c;
                                        if ("$text" == i[s].name) c = new Xa(Ka._createAt(t, s), Ka._createAt(t, s + 1));
                                        else {
                                            const e = t.offsetToIndex(s);
                                            c = new Xa(Ka._createAt(t, s), Ka._createAt(t.getChild(e), 0));
                                        }
                                        e.push(...this._getAttributesDiff(c, r, n)), s++, a++;
                                    } else s++, a++;
                            }
                            e.sort((t, e) =>
                                t.position.root != e.position.root ? (t.position.root.rootName < e.position.root.rootName ? -1 : 1) : t.position.isEqual(e.position) ? t.changeCount - e.changeCount : t.position.isBefore(e.position) ? -1 : 1
                            );
                            for (let t = 1, n = 0; t < e.length; t++) {
                                const o = e[n],
                                    i = e[t],
                                    r = "remove" == o.type && "remove" == i.type && "$text" == o.name && "$text" == i.name && o.position.isEqual(i.position),
                                    s = "insert" == o.type && "insert" == i.type && "$text" == o.name && "$text" == i.name && o.position.parent == i.position.parent && o.position.offset + o.length == i.position.offset,
                                    a =
                                        "attribute" == o.type &&
                                        "attribute" == i.type &&
                                        o.position.parent == i.position.parent &&
                                        o.range.isFlat &&
                                        i.range.isFlat &&
                                        o.position.offset + o.length == i.position.offset &&
                                        o.attributeKey == i.attributeKey &&
                                        o.attributeOldValue == i.attributeOldValue &&
                                        o.attributeNewValue == i.attributeNewValue;
                                r || s || a ? (o.length++, a && (o.range.end = o.range.end.getShiftedBy(1)), (e[t] = null)) : (n = t);
                            }
                            e = e.filter((t) => t);
                            for (const t of e) delete t.changeCount, "attribute" == t.type && (delete t.position, delete t.length);
                            return (this._changeCount = 0), (this._cachedChangesWithGraveyard = e), (this._cachedChanges = e.filter(_l)), t.includeChangesInGraveyard ? this._cachedChangesWithGraveyard.slice() : this._cachedChanges.slice();
                        }
                        getRefreshedItems() {
                            return new Set(this._refreshedItems);
                        }
                        reset() {
                            this._changesInElement.clear(), this._elementSnapshots.clear(), this._changedMarkers.clear(), (this._refreshedItems = new Set()), (this._cachedChanges = null);
                        }
                        _refreshItem(t) {
                            if (this._isInInsertedElement(t.parent)) return;
                            this._markRemove(t.parent, t.startOffset, t.offsetSize), this._markInsert(t.parent, t.startOffset, t.offsetSize), this._refreshedItems.add(t);
                            const e = Xa._createOn(t);
                            for (const t of this._markerCollection.getMarkersIntersectingRange(e)) {
                                const e = t.getData();
                                this.bufferMarkerChange(t.name, e, e);
                            }
                            this._cachedChanges = null;
                        }
                        _markInsert(t, e, n) {
                            const o = { type: "insert", offset: e, howMany: n, count: this._changeCount++ };
                            this._markChange(t, o);
                        }
                        _markRemove(t, e, n) {
                            const o = { type: "remove", offset: e, howMany: n, count: this._changeCount++ };
                            this._markChange(t, o), this._removeAllNestedChanges(t, e, n);
                        }
                        _markAttribute(t) {
                            const e = { type: "attribute", offset: t.startOffset, howMany: t.offsetSize, count: this._changeCount++ };
                            this._markChange(t.parent, e);
                        }
                        _markChange(t, e) {
                            this._makeSnapshot(t);
                            const n = this._getChangesForElement(t);
                            this._handleChange(e, n), n.push(e);
                            for (let t = 0; t < n.length; t++) n[t].howMany < 1 && (n.splice(t, 1), t--);
                        }
                        _getChangesForElement(t) {
                            let e;
                            return this._changesInElement.has(t) ? (e = this._changesInElement.get(t)) : ((e = []), this._changesInElement.set(t, e)), e;
                        }
                        _makeSnapshot(t) {
                            this._elementSnapshots.has(t) || this._elementSnapshots.set(t, bl(t.getChildren()));
                        }
                        _handleChange(t, e) {
                            t.nodesToHandle = t.howMany;
                            for (const n of e) {
                                const o = t.offset + t.howMany,
                                    i = n.offset + n.howMany;
                                if (
                                    "insert" == t.type &&
                                    ("insert" == n.type && (t.offset <= n.offset ? (n.offset += t.howMany) : t.offset < i && ((n.howMany += t.nodesToHandle), (t.nodesToHandle = 0))),
                                    "remove" == n.type && t.offset < n.offset && (n.offset += t.howMany),
                                    "attribute" == n.type)
                                )
                                    if (t.offset <= n.offset) n.offset += t.howMany;
                                    else if (t.offset < i) {
                                        const i = n.howMany;
                                        (n.howMany = t.offset - n.offset), e.unshift({ type: "attribute", offset: o, howMany: i - n.howMany, count: this._changeCount++ });
                                    }
                                if ("remove" == t.type) {
                                    if ("insert" == n.type)
                                        if (o <= n.offset) n.offset -= t.howMany;
                                        else if (o <= i)
                                            if (t.offset < n.offset) {
                                                const e = o - n.offset;
                                                (n.offset = t.offset), (n.howMany -= e), (t.nodesToHandle -= e);
                                            } else (n.howMany -= t.nodesToHandle), (t.nodesToHandle = 0);
                                        else if (t.offset <= n.offset) (t.nodesToHandle -= n.howMany), (n.howMany = 0);
                                        else if (t.offset < i) {
                                            const e = i - t.offset;
                                            (n.howMany -= e), (t.nodesToHandle -= e);
                                        }
                                    if (("remove" == n.type && (o <= n.offset ? (n.offset -= t.howMany) : t.offset < n.offset && ((t.nodesToHandle += n.howMany), (n.howMany = 0))), "attribute" == n.type))
                                        if (o <= n.offset) n.offset -= t.howMany;
                                        else if (t.offset < n.offset) {
                                            const e = o - n.offset;
                                            (n.offset = t.offset), (n.howMany -= e);
                                        } else if (t.offset < i)
                                            if (o <= i) {
                                                const o = n.howMany;
                                                n.howMany = t.offset - n.offset;
                                                const i = o - n.howMany - t.nodesToHandle;
                                                e.unshift({ type: "attribute", offset: t.offset, howMany: i, count: this._changeCount++ });
                                            } else n.howMany -= i - t.offset;
                                }
                                if ("attribute" == t.type) {
                                    if ("insert" == n.type)
                                        if (t.offset < n.offset && o > n.offset) {
                                            if (o > i) {
                                                const t = { type: "attribute", offset: i, howMany: o - i, count: this._changeCount++ };
                                                this._handleChange(t, e), e.push(t);
                                            }
                                            (t.nodesToHandle = n.offset - t.offset), (t.howMany = t.nodesToHandle);
                                        } else t.offset >= n.offset && t.offset < i && (o > i ? ((t.nodesToHandle = o - i), (t.offset = i)) : (t.nodesToHandle = 0));
                                    if ("remove" == n.type && t.offset < n.offset && o > n.offset) {
                                        const i = { type: "attribute", offset: n.offset, howMany: o - n.offset, count: this._changeCount++ };
                                        this._handleChange(i, e), e.push(i), (t.nodesToHandle = n.offset - t.offset), (t.howMany = t.nodesToHandle);
                                    }
                                    "attribute" == n.type && (t.offset >= n.offset && o <= i ? ((t.nodesToHandle = 0), (t.howMany = 0), (t.offset = 0)) : t.offset <= n.offset && o >= i && (n.howMany = 0));
                                }
                            }
                            (t.howMany = t.nodesToHandle), delete t.nodesToHandle;
                        }
                        _getInsertDiff(t, e, n) {
                            return { type: "insert", position: Ka._createAt(t, e), name: n.name, attributes: new Map(n.attributes), length: 1, changeCount: this._changeCount++ };
                        }
                        _getRemoveDiff(t, e, n) {
                            return { type: "remove", position: Ka._createAt(t, e), name: n.name, attributes: new Map(n.attributes), length: 1, changeCount: this._changeCount++ };
                        }
                        _getAttributesDiff(t, e, n) {
                            const o = [];
                            n = new Map(n);
                            for (const [i, r] of e) {
                                const e = n.has(i) ? n.get(i) : null;
                                e !== r && o.push({ type: "attribute", position: t.start, range: t.clone(), length: 1, attributeKey: i, attributeOldValue: r, attributeNewValue: e, changeCount: this._changeCount++ }), n.delete(i);
                            }
                            for (const [e, i] of n) o.push({ type: "attribute", position: t.start, range: t.clone(), length: 1, attributeKey: e, attributeOldValue: null, attributeNewValue: i, changeCount: this._changeCount++ });
                            return o;
                        }
                        _isInInsertedElement(t) {
                            const e = t.parent;
                            if (!e) return !1;
                            const n = this._changesInElement.get(e),
                                o = t.startOffset;
                            if (n) for (const t of n) if ("insert" == t.type && o >= t.offset && o < t.offset + t.howMany) return !0;
                            return this._isInInsertedElement(e);
                        }
                        _removeAllNestedChanges(t, e, n) {
                            const o = new Xa(Ka._createAt(t, e), Ka._createAt(t, e + n));
                            for (const t of o.getItems({ shallow: !0 })) t.is("element") && (this._elementSnapshots.delete(t), this._changesInElement.delete(t), this._removeAllNestedChanges(t, 0, t.maxOffset));
                        }
                    }
                    function bl(t) {
                        const e = [];
                        for (const n of t)
                            if (n.is("$text")) for (let t = 0; t < n.data.length; t++) e.push({ name: "$text", attributes: new Map(n.getAttributes()) });
                            else e.push({ name: n.name, attributes: new Map(n.getAttributes()) });
                        return e;
                    }
                    function wl(t, e) {
                        const n = [];
                        let o = 0,
                            i = 0;
                        for (const t of e) {
                            if (t.offset > o) {
                                for (let e = 0; e < t.offset - o; e++) n.push("e");
                                i += t.offset - o;
                            }
                            if ("insert" == t.type) {
                                for (let e = 0; e < t.howMany; e++) n.push("i");
                                o = t.offset + t.howMany;
                            } else if ("remove" == t.type) {
                                for (let e = 0; e < t.howMany; e++) n.push("r");
                                (o = t.offset), (i += t.howMany);
                            } else n.push(..."a".repeat(t.howMany).split("")), (o = t.offset + t.howMany), (i += t.howMany);
                        }
                        if (i < t) for (let e = 0; e < t - i - o; e++) n.push("e");
                        return n;
                    }
                    function _l(t) {
                        const e = "position" in t && "$graveyard" == t.position.root.rootName,
                            n = "range" in t && "$graveyard" == t.range.root.rootName;
                        return !e && !n;
                    }
                    class Al {
                        constructor() {
                            (this._operations = []), (this._undoPairs = new Map()), (this._undoneOperations = new Set()), (this._baseVersionToOperationIndex = new Map()), (this._version = 0), (this._gaps = new Map());
                        }
                        get version() {
                            return this._version;
                        }
                        set version(t) {
                            this._operations.length && t > this._version + 1 && this._gaps.set(this._version, t), (this._version = t);
                        }
                        get lastOperation() {
                            return this._operations[this._operations.length - 1];
                        }
                        addOperation(t) {
                            if (t.baseVersion !== this.version) throw new c("model-document-history-addoperation-incorrect-version", this, { operation: t, historyVersion: this.version });
                            this._operations.push(t), this._version++, this._baseVersionToOperationIndex.set(t.baseVersion, this._operations.length - 1);
                        }
                        getOperations(t, e = this.version) {
                            if (!this._operations.length) return [];
                            const n = this._operations[0];
                            void 0 === t && (t = n.baseVersion);
                            let o = e - 1;
                            for (const [e, n] of this._gaps) t > e && t < n && (t = n), o > e && o < n && (o = e - 1);
                            if (o < n.baseVersion || t > this.lastOperation.baseVersion) return [];
                            let i = this._baseVersionToOperationIndex.get(t);
                            void 0 === i && (i = 0);
                            let r = this._baseVersionToOperationIndex.get(o);
                            return void 0 === r && (r = this._operations.length - 1), this._operations.slice(i, r + 1);
                        }
                        getOperation(t) {
                            const e = this._baseVersionToOperationIndex.get(t);
                            if (void 0 !== e) return this._operations[e];
                        }
                        setOperationAsUndone(t, e) {
                            this._undoPairs.set(e, t), this._undoneOperations.add(t);
                        }
                        isUndoingOperation(t) {
                            return this._undoPairs.has(t);
                        }
                        isUndoneOperation(t) {
                            return this._undoneOperations.has(t);
                        }
                        getUndoneOperation(t) {
                            return this._undoPairs.get(t);
                        }
                        reset() {
                            (this._version = 0), (this._undoPairs = new Map()), (this._operations = []), (this._undoneOperations = new Set()), (this._gaps = new Map()), (this._baseVersionToOperationIndex = new Map());
                        }
                    }
                    class Cl extends Ga {
                        constructor(t, e, n = "main") {
                            super(e), (this._document = t), (this.rootName = n);
                        }
                        get document() {
                            return this._document;
                        }
                        toJSON() {
                            return this.rootName;
                        }
                    }
                    function vl(t, e) {
                        return (
                            !!(n = t.charAt(e - 1)) &&
                            1 == n.length &&
                            /[\ud800-\udbff]/.test(n) &&
                            (function (t) {
                                return !!t && 1 == t.length && /[\udc00-\udfff]/.test(t);
                            })(t.charAt(e))
                        );
                        var n;
                    }
                    function yl(t, e) {
                        return !!(n = t.charAt(e)) && 1 == n.length && /[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f]/.test(n);
                        var n;
                    }
                    Cl.prototype.is = function (t, e) {
                        return e
                            ? e === this.name && ("rootElement" === t || "model:rootElement" === t || "element" === t || "model:element" === t)
                            : "rootElement" === t || "model:rootElement" === t || "element" === t || "model:element" === t || "node" === t || "model:node" === t;
                    };
                    const xl = (function () {
                        const t = /\p{Regional_Indicator}{2}/u.source,
                            e =
                                "(?:" +
                                [/\p{Emoji}[\u{E0020}-\u{E007E}]+\u{E007F}/u, /\p{Emoji}\u{FE0F}?\u{20E3}/u, /\p{Emoji}\u{FE0F}/u, /(?=\p{General_Category=Other_Symbol})\p{Emoji}\p{Emoji_Modifier}*/u].map((t) => t.source).join("|") +
                                ")";
                        return new RegExp(`${t}|${e}(?:‍${e})*`, "ug");
                    })();
                    function El(t, e) {
                        const n = String(t).matchAll(xl);
                        return Array.from(n).some((t) => t.index < e && e < t.index + t[0].length);
                    }
                    const Dl = "$graveyard";
                    class Il extends w {
                        constructor(t) {
                            super(),
                                (this.model = t),
                                (this.history = new Al()),
                                (this.selection = new pc(this)),
                                (this.roots = new ko({ idProperty: "rootName" })),
                                (this.differ = new kl(t.markers)),
                                (this._postFixers = new Set()),
                                (this._hasSelectionChangedFromTheLastChangeBlock = !1),
                                this.createRoot("$root", Dl),
                                this.listenTo(
                                    t,
                                    "applyOperation",
                                    (t, e) => {
                                        const n = e[0];
                                        n.isDocumentOperation && this.differ.bufferOperation(n);
                                    },
                                    { priority: "high" }
                                ),
                                this.listenTo(
                                    t,
                                    "applyOperation",
                                    (t, e) => {
                                        const n = e[0];
                                        n.isDocumentOperation && this.history.addOperation(n);
                                    },
                                    { priority: "low" }
                                ),
                                this.listenTo(this.selection, "change", () => {
                                    this._hasSelectionChangedFromTheLastChangeBlock = !0;
                                }),
                                this.listenTo(t.markers, "update", (t, e, n, o, i) => {
                                    const r = { ...e.getData(), range: o };
                                    this.differ.bufferMarkerChange(e.name, i, r),
                                        null === n &&
                                            e.on("change", (t, n) => {
                                                const o = e.getData();
                                                this.differ.bufferMarkerChange(e.name, { ...o, range: n }, o);
                                            });
                                });
                        }
                        get version() {
                            return this.history.version;
                        }
                        set version(t) {
                            this.history.version = t;
                        }
                        get graveyard() {
                            return this.getRoot(Dl);
                        }
                        createRoot(t = "$root", e = "main") {
                            if (this.roots.get(e)) throw new c("model-document-createroot-name-exists", this, { name: e });
                            const n = new Cl(this, t, e);
                            return this.roots.add(n), n;
                        }
                        destroy() {
                            this.selection.destroy(), this.stopListening();
                        }
                        getRoot(t = "main") {
                            return this.roots.get(t);
                        }
                        getRootNames() {
                            return Array.from(this.roots, (t) => t.rootName).filter((t) => t != Dl);
                        }
                        registerPostFixer(t) {
                            this._postFixers.add(t);
                        }
                        toJSON() {
                            const t = To(this);
                            return (t.selection = "[engine.model.DocumentSelection]"), (t.model = "[engine.model.Model]"), t;
                        }
                        _handleChangeBlock(t) {
                            this._hasDocumentChangedFromTheLastChangeBlock() &&
                                (this._callPostFixers(t), this.selection.refresh(), this.differ.hasDataChanges() ? this.fire("change:data", t.batch) : this.fire("change", t.batch), this.selection.refresh(), this.differ.reset()),
                                (this._hasSelectionChangedFromTheLastChangeBlock = !1);
                        }
                        _hasDocumentChangedFromTheLastChangeBlock() {
                            return !this.differ.isEmpty || this._hasSelectionChangedFromTheLastChangeBlock;
                        }
                        _getDefaultRoot() {
                            for (const t of this.roots) if (t !== this.graveyard) return t;
                            return this.graveyard;
                        }
                        _getDefaultRange() {
                            const t = this._getDefaultRoot(),
                                e = this.model,
                                n = e.schema,
                                o = e.createPositionFromPath(t, [0]);
                            return n.getNearestSelectionRange(o) || e.createRange(o);
                        }
                        _validateSelectionRange(t) {
                            return Ml(t.start) && Ml(t.end);
                        }
                        _callPostFixers(t) {
                            let e = !1;
                            do {
                                for (const n of this._postFixers) if ((this.selection.refresh(), (e = n(t)), e)) break;
                            } while (e);
                        }
                    }
                    function Ml(t) {
                        const e = t.textNode;
                        if (e) {
                            const n = e.data,
                                o = t.offset - e.startOffset;
                            return !vl(n, o) && !yl(n, o);
                        }
                        return !0;
                    }
                    class Tl extends w {
                        constructor() {
                            super(), (this._markers = new Map());
                        }
                        [Symbol.iterator]() {
                            return this._markers.values();
                        }
                        has(t) {
                            const e = t instanceof Sl ? t.name : t;
                            return this._markers.has(e);
                        }
                        get(t) {
                            return this._markers.get(t) || null;
                        }
                        _set(t, e, n = !1, o = !1) {
                            const i = t instanceof Sl ? t.name : t;
                            if (i.includes(",")) throw new c("markercollection-incorrect-marker-name", this);
                            const r = this._markers.get(i);
                            if (r) {
                                const t = r.getData(),
                                    s = r.getRange();
                                let a = !1;
                                return (
                                    s.isEqual(e) || (r._attachLiveRange(hc.fromRange(e)), (a = !0)),
                                    n != r.managedUsingOperations && ((r._managedUsingOperations = n), (a = !0)),
                                    "boolean" == typeof o && o != r.affectsData && ((r._affectsData = o), (a = !0)),
                                    a && this.fire(`update:${i}`, r, s, e, t),
                                    r
                                );
                            }
                            const s = hc.fromRange(e),
                                a = new Sl(i, s, n, o);
                            return this._markers.set(i, a), this.fire(`update:${i}`, a, null, e, { ...a.getData(), range: null }), a;
                        }
                        _remove(t) {
                            const e = t instanceof Sl ? t.name : t,
                                n = this._markers.get(e);
                            return !!n && (this._markers.delete(e), this.fire(`update:${e}`, n, n.getRange(), null, n.getData()), this._destroyMarker(n), !0);
                        }
                        _refresh(t) {
                            const e = t instanceof Sl ? t.name : t,
                                n = this._markers.get(e);
                            if (!n) throw new c("markercollection-refresh-marker-not-exists", this);
                            const o = n.getRange();
                            this.fire(`update:${e}`, n, o, o, n.getData());
                        }
                        *getMarkersAtPosition(t) {
                            for (const e of this) e.getRange().containsPosition(t) && (yield e);
                        }
                        *getMarkersIntersectingRange(t) {
                            for (const e of this) null !== e.getRange().getIntersection(t) && (yield e);
                        }
                        destroy() {
                            for (const t of this._markers.values()) this._destroyMarker(t);
                            (this._markers = null), this.stopListening();
                        }
                        *getMarkersGroup(t) {
                            for (const e of this._markers.values()) e.name.startsWith(t + ":") && (yield e);
                        }
                        _destroyMarker(t) {
                            t.stopListening(), t._detachLiveRange();
                        }
                    }
                    class Sl extends b(Va) {
                        constructor(t, e, n, o) {
                            super(), (this.name = t), (this._liveRange = this._attachLiveRange(e)), (this._managedUsingOperations = n), (this._affectsData = o);
                        }
                        get managedUsingOperations() {
                            if (!this._liveRange) throw new c("marker-destroyed", this);
                            return this._managedUsingOperations;
                        }
                        get affectsData() {
                            if (!this._liveRange) throw new c("marker-destroyed", this);
                            return this._affectsData;
                        }
                        getData() {
                            return { range: this.getRange(), affectsData: this.affectsData, managedUsingOperations: this.managedUsingOperations };
                        }
                        getStart() {
                            if (!this._liveRange) throw new c("marker-destroyed", this);
                            return this._liveRange.start.clone();
                        }
                        getEnd() {
                            if (!this._liveRange) throw new c("marker-destroyed", this);
                            return this._liveRange.end.clone();
                        }
                        getRange() {
                            if (!this._liveRange) throw new c("marker-destroyed", this);
                            return this._liveRange.toRange();
                        }
                        _attachLiveRange(t) {
                            return this._liveRange && this._detachLiveRange(), t.delegate("change:range").to(this), t.delegate("change:content").to(this), (this._liveRange = t), t;
                        }
                        _detachLiveRange() {
                            this._liveRange.stopDelegating("change:range", this), this._liveRange.stopDelegating("change:content", this), this._liveRange.detach(), (this._liveRange = null);
                        }
                    }
                    Sl.prototype.is = function (t) {
                        return "marker" === t || "model:marker" === t;
                    };
                    class Nl {
                        constructor(t) {
                            (this.baseVersion = t), (this.isDocumentOperation = null !== this.baseVersion), (this.batch = null);
                        }
                        _validate() {}
                        toJSON() {
                            const t = Object.assign({}, this);
                            return (t.__className = this.constructor.className), delete t.batch, delete t.isDocumentOperation, t;
                        }
                        static get className() {
                            return "Operation";
                        }
                        static fromJSON(t, e) {
                            return new this(t.baseVersion);
                        }
                    }
                    function Bl(t, e) {
                        const n = Ll(e),
                            o = n.reduce((t, e) => t + e.offsetSize, 0),
                            i = t.parent;
                        Rl(t);
                        const r = t.index;
                        return i._insertChild(r, n), Ol(i, r + n.length), Ol(i, r), new Xa(t, t.getShiftedBy(o));
                    }
                    function Pl(t) {
                        if (!t.isFlat) throw new c("operation-utils-remove-range-not-flat", this);
                        const e = t.start.parent;
                        Rl(t.start), Rl(t.end);
                        const n = e._removeChildren(t.start.index, t.end.index - t.start.index);
                        return Ol(e, t.start.index), n;
                    }
                    function zl(t, e) {
                        if (!t.isFlat) throw new c("operation-utils-move-range-not-flat", this);
                        const n = Pl(t);
                        return Bl((e = e._getTransformedByDeletion(t.start, t.end.offset - t.start.offset)), n);
                    }
                    function Ll(t) {
                        const e = [];
                        !(function t(n) {
                            if ("string" == typeof n) e.push(new Wa(n));
                            else if (n instanceof qa) e.push(new Wa(n.data, n.getAttributes()));
                            else if (n instanceof Ha) e.push(n);
                            else if (fo(n)) for (const e of n) t(e);
                        })(t);
                        for (let t = 1; t < e.length; t++) {
                            const n = e[t],
                                o = e[t - 1];
                            n instanceof Wa && o instanceof Wa && jl(n, o) && (e.splice(t - 1, 2, new Wa(o.data + n.data, o.getAttributes())), t--);
                        }
                        return e;
                    }
                    function Ol(t, e) {
                        const n = t.getChild(e - 1),
                            o = t.getChild(e);
                        if (n && o && n.is("$text") && o.is("$text") && jl(n, o)) {
                            const i = new Wa(n.data + o.data, n.getAttributes());
                            t._removeChildren(e - 1, 2), t._insertChild(e - 1, i);
                        }
                    }
                    function Rl(t) {
                        const e = t.textNode,
                            n = t.parent;
                        if (e) {
                            const o = t.offset - e.startOffset,
                                i = e.index;
                            n._removeChildren(i, 1);
                            const r = new Wa(e.data.substr(0, o), e.getAttributes()),
                                s = new Wa(e.data.substr(o), e.getAttributes());
                            n._insertChild(i, [r, s]);
                        }
                    }
                    function jl(t, e) {
                        const n = t.getAttributes(),
                            o = e.getAttributes();
                        for (const t of n) {
                            if (t[1] !== e.getAttribute(t[0])) return !1;
                            o.next();
                        }
                        return o.next().done;
                    }
                    const Fl = function (t, e) {
                        return Us(t, e);
                    };
                    class Vl extends Nl {
                        constructor(t, e, n, o, i) {
                            super(i), (this.range = t.clone()), (this.key = e), (this.oldValue = void 0 === n ? null : n), (this.newValue = void 0 === o ? null : o);
                        }
                        get type() {
                            return null === this.oldValue ? "addAttribute" : null === this.newValue ? "removeAttribute" : "changeAttribute";
                        }
                        clone() {
                            return new Vl(this.range, this.key, this.oldValue, this.newValue, this.baseVersion);
                        }
                        getReversed() {
                            return new Vl(this.range, this.key, this.newValue, this.oldValue, this.baseVersion + 1);
                        }
                        toJSON() {
                            const t = super.toJSON();
                            return (t.range = this.range.toJSON()), t;
                        }
                        _validate() {
                            if (!this.range.isFlat) throw new c("attribute-operation-range-not-flat", this);
                            for (const t of this.range.getItems({ shallow: !0 })) {
                                if (null !== this.oldValue && !Fl(t.getAttribute(this.key), this.oldValue)) throw new c("attribute-operation-wrong-old-value", this, { item: t, key: this.key, value: this.oldValue });
                                if (null === this.oldValue && null !== this.newValue && t.hasAttribute(this.key)) throw new c("attribute-operation-attribute-exists", this, { node: t, key: this.key });
                            }
                        }
                        _execute() {
                            Fl(this.oldValue, this.newValue) ||
                                (function (t, e, n) {
                                    Rl(t.start), Rl(t.end);
                                    for (const o of t.getItems({ shallow: !0 })) {
                                        const t = o.is("$textProxy") ? o.textNode : o;
                                        null !== n ? t._setAttribute(e, n) : t._removeAttribute(e), Ol(t.parent, t.index);
                                    }
                                    Ol(t.end.parent, t.end.index);
                                })(this.range, this.key, this.newValue);
                        }
                        static get className() {
                            return "AttributeOperation";
                        }
                        static fromJSON(t, e) {
                            return new Vl(Xa.fromJSON(t.range, e), t.key, t.oldValue, t.newValue, t.baseVersion);
                        }
                    }
                    class Hl extends Nl {
                        constructor(t, e, n, o) {
                            super(o), (this.sourcePosition = t.clone()), (this.sourcePosition.stickiness = "toNext"), (this.howMany = e), (this.targetPosition = n.clone()), (this.targetPosition.stickiness = "toNone");
                        }
                        get type() {
                            return "$graveyard" == this.targetPosition.root.rootName ? "remove" : "$graveyard" == this.sourcePosition.root.rootName ? "reinsert" : "move";
                        }
                        clone() {
                            return new Hl(this.sourcePosition, this.howMany, this.targetPosition, this.baseVersion);
                        }
                        getMovedRangeStart() {
                            return this.targetPosition._getTransformedByDeletion(this.sourcePosition, this.howMany);
                        }
                        getReversed() {
                            const t = this.sourcePosition._getTransformedByInsertion(this.targetPosition, this.howMany);
                            return new Hl(this.getMovedRangeStart(), this.howMany, t, this.baseVersion + 1);
                        }
                        _validate() {
                            const t = this.sourcePosition.parent,
                                e = this.targetPosition.parent,
                                n = this.sourcePosition.offset,
                                o = this.targetPosition.offset;
                            if (n + this.howMany > t.maxOffset) throw new c("move-operation-nodes-do-not-exist", this);
                            if (t === e && n < o && o < n + this.howMany) throw new c("move-operation-range-into-itself", this);
                            if (this.sourcePosition.root == this.targetPosition.root && "prefix" == Mo(this.sourcePosition.getParentPath(), this.targetPosition.getParentPath())) {
                                const t = this.sourcePosition.path.length - 1;
                                if (this.targetPosition.path[t] >= n && this.targetPosition.path[t] < n + this.howMany) throw new c("move-operation-node-into-itself", this);
                            }
                        }
                        _execute() {
                            zl(Xa._createFromPositionAndShift(this.sourcePosition, this.howMany), this.targetPosition);
                        }
                        toJSON() {
                            const t = super.toJSON();
                            return (t.sourcePosition = this.sourcePosition.toJSON()), (t.targetPosition = this.targetPosition.toJSON()), t;
                        }
                        static get className() {
                            return "MoveOperation";
                        }
                        static fromJSON(t, e) {
                            const n = Ka.fromJSON(t.sourcePosition, e),
                                o = Ka.fromJSON(t.targetPosition, e);
                            return new this(n, t.howMany, o, t.baseVersion);
                        }
                    }
                    class Ul extends Nl {
                        constructor(t, e, n) {
                            super(n), (this.position = t.clone()), (this.position.stickiness = "toNone"), (this.nodes = new Ua(Ll(e))), (this.shouldReceiveAttributes = !1);
                        }
                        get type() {
                            return "insert";
                        }
                        get howMany() {
                            return this.nodes.maxOffset;
                        }
                        clone() {
                            const t = new Ua([...this.nodes].map((t) => t._clone(!0))),
                                e = new Ul(this.position, t, this.baseVersion);
                            return (e.shouldReceiveAttributes = this.shouldReceiveAttributes), e;
                        }
                        getReversed() {
                            const t = this.position.root.document.graveyard,
                                e = new Ka(t, [0]);
                            return new Hl(this.position, this.nodes.maxOffset, e, this.baseVersion + 1);
                        }
                        _validate() {
                            const t = this.position.parent;
                            if (!t || t.maxOffset < this.position.offset) throw new c("insert-operation-position-invalid", this);
                        }
                        _execute() {
                            const t = this.nodes;
                            (this.nodes = new Ua([...t].map((t) => t._clone(!0)))), Bl(this.position, t);
                        }
                        toJSON() {
                            const t = super.toJSON();
                            return (t.position = this.position.toJSON()), (t.nodes = this.nodes.toJSON()), t;
                        }
                        static get className() {
                            return "InsertOperation";
                        }
                        static fromJSON(t, e) {
                            const n = [];
                            for (const e of t.nodes) e.name ? n.push(Ga.fromJSON(e)) : n.push(Wa.fromJSON(e));
                            const o = new Ul(Ka.fromJSON(t.position, e), n, t.baseVersion);
                            return (o.shouldReceiveAttributes = t.shouldReceiveAttributes), o;
                        }
                    }
                    class Wl extends Nl {
                        constructor(t, e, n, o, i, r) {
                            super(r), (this.name = t), (this.oldRange = e ? e.clone() : null), (this.newRange = n ? n.clone() : null), (this.affectsData = i), (this._markers = o);
                        }
                        get type() {
                            return "marker";
                        }
                        clone() {
                            return new Wl(this.name, this.oldRange, this.newRange, this._markers, this.affectsData, this.baseVersion);
                        }
                        getReversed() {
                            return new Wl(this.name, this.newRange, this.oldRange, this._markers, this.affectsData, this.baseVersion + 1);
                        }
                        _execute() {
                            this.newRange ? this._markers._set(this.name, this.newRange, !0, this.affectsData) : this._markers._remove(this.name);
                        }
                        toJSON() {
                            const t = super.toJSON();
                            return this.oldRange && (t.oldRange = this.oldRange.toJSON()), this.newRange && (t.newRange = this.newRange.toJSON()), delete t._markers, t;
                        }
                        static get className() {
                            return "MarkerOperation";
                        }
                        static fromJSON(t, e) {
                            return new Wl(t.name, t.oldRange ? Xa.fromJSON(t.oldRange, e) : null, t.newRange ? Xa.fromJSON(t.newRange, e) : null, e.model.markers, t.affectsData, t.baseVersion);
                        }
                    }
                    class ql extends Nl {
                        get type() {
                            return "noop";
                        }
                        clone() {
                            return new ql(this.baseVersion);
                        }
                        getReversed() {
                            return new ql(this.baseVersion + 1);
                        }
                        _execute() {}
                        static get className() {
                            return "NoOperation";
                        }
                    }
                    class Gl extends Nl {
                        constructor(t, e, n, o) {
                            super(o), (this.position = t), (this.position.stickiness = "toNext"), (this.oldName = e), (this.newName = n);
                        }
                        get type() {
                            return "rename";
                        }
                        clone() {
                            return new Gl(this.position.clone(), this.oldName, this.newName, this.baseVersion);
                        }
                        getReversed() {
                            return new Gl(this.position.clone(), this.newName, this.oldName, this.baseVersion + 1);
                        }
                        _validate() {
                            const t = this.position.nodeAfter;
                            if (!(t instanceof Ga)) throw new c("rename-operation-wrong-position", this);
                            if (t.name !== this.oldName) throw new c("rename-operation-wrong-name", this);
                        }
                        _execute() {
                            this.position.nodeAfter.name = this.newName;
                        }
                        toJSON() {
                            const t = super.toJSON();
                            return (t.position = this.position.toJSON()), t;
                        }
                        static get className() {
                            return "RenameOperation";
                        }
                        static fromJSON(t, e) {
                            return new Gl(Ka.fromJSON(t.position, e), t.oldName, t.newName, t.baseVersion);
                        }
                    }
                    class $l extends Nl {
                        constructor(t, e, n, o, i) {
                            super(i), (this.root = t), (this.key = e), (this.oldValue = n), (this.newValue = o);
                        }
                        get type() {
                            return null === this.oldValue ? "addRootAttribute" : null === this.newValue ? "removeRootAttribute" : "changeRootAttribute";
                        }
                        clone() {
                            return new $l(this.root, this.key, this.oldValue, this.newValue, this.baseVersion);
                        }
                        getReversed() {
                            return new $l(this.root, this.key, this.newValue, this.oldValue, this.baseVersion + 1);
                        }
                        _validate() {
                            if (this.root != this.root.root || this.root.is("documentFragment")) throw new c("rootattribute-operation-not-a-root", this, { root: this.root, key: this.key });
                            if (null !== this.oldValue && this.root.getAttribute(this.key) !== this.oldValue) throw new c("rootattribute-operation-wrong-old-value", this, { root: this.root, key: this.key });
                            if (null === this.oldValue && null !== this.newValue && this.root.hasAttribute(this.key)) throw new c("rootattribute-operation-attribute-exists", this, { root: this.root, key: this.key });
                        }
                        _execute() {
                            null !== this.newValue ? this.root._setAttribute(this.key, this.newValue) : this.root._removeAttribute(this.key);
                        }
                        toJSON() {
                            const t = super.toJSON();
                            return (t.root = this.root.toJSON()), t;
                        }
                        static get className() {
                            return "RootAttributeOperation";
                        }
                        static fromJSON(t, e) {
                            if (!e.getRoot(t.root)) throw new c("rootattribute-operation-fromjson-no-root", this, { rootName: t.root });
                            return new $l(e.getRoot(t.root), t.key, t.oldValue, t.newValue, t.baseVersion);
                        }
                    }
                    class Yl extends Nl {
                        constructor(t, e, n, o, i) {
                            super(i),
                                (this.sourcePosition = t.clone()),
                                (this.sourcePosition.stickiness = "toPrevious"),
                                (this.howMany = e),
                                (this.targetPosition = n.clone()),
                                (this.targetPosition.stickiness = "toNext"),
                                (this.graveyardPosition = o.clone());
                        }
                        get type() {
                            return "merge";
                        }
                        get deletionPosition() {
                            return new Ka(this.sourcePosition.root, this.sourcePosition.path.slice(0, -1));
                        }
                        get movedRange() {
                            const t = this.sourcePosition.getShiftedBy(Number.POSITIVE_INFINITY);
                            return new Xa(this.sourcePosition, t);
                        }
                        clone() {
                            return new Yl(this.sourcePosition, this.howMany, this.targetPosition, this.graveyardPosition, this.baseVersion);
                        }
                        getReversed() {
                            const t = this.targetPosition._getTransformedByMergeOperation(this),
                                e = this.sourcePosition.path.slice(0, -1),
                                n = new Ka(this.sourcePosition.root, e)._getTransformedByMergeOperation(this);
                            return new Kl(t, this.howMany, n, this.graveyardPosition, this.baseVersion + 1);
                        }
                        _validate() {
                            const t = this.sourcePosition.parent,
                                e = this.targetPosition.parent;
                            if (!t.parent) throw new c("merge-operation-source-position-invalid", this);
                            if (!e.parent) throw new c("merge-operation-target-position-invalid", this);
                            if (this.howMany != t.maxOffset) throw new c("merge-operation-how-many-invalid", this);
                        }
                        _execute() {
                            const t = this.sourcePosition.parent;
                            zl(Xa._createIn(t), this.targetPosition), zl(Xa._createOn(t), this.graveyardPosition);
                        }
                        toJSON() {
                            const t = super.toJSON();
                            return (t.sourcePosition = t.sourcePosition.toJSON()), (t.targetPosition = t.targetPosition.toJSON()), (t.graveyardPosition = t.graveyardPosition.toJSON()), t;
                        }
                        static get className() {
                            return "MergeOperation";
                        }
                        static fromJSON(t, e) {
                            const n = Ka.fromJSON(t.sourcePosition, e),
                                o = Ka.fromJSON(t.targetPosition, e),
                                i = Ka.fromJSON(t.graveyardPosition, e);
                            return new this(n, t.howMany, o, i, t.baseVersion);
                        }
                    }
                    class Kl extends Nl {
                        constructor(t, e, n, o, i) {
                            super(i),
                                (this.splitPosition = t.clone()),
                                (this.splitPosition.stickiness = "toNext"),
                                (this.howMany = e),
                                (this.insertionPosition = n),
                                (this.graveyardPosition = o ? o.clone() : null),
                                this.graveyardPosition && (this.graveyardPosition.stickiness = "toNext");
                        }
                        get type() {
                            return "split";
                        }
                        get moveTargetPosition() {
                            const t = this.insertionPosition.path.slice();
                            return t.push(0), new Ka(this.insertionPosition.root, t);
                        }
                        get movedRange() {
                            const t = this.splitPosition.getShiftedBy(Number.POSITIVE_INFINITY);
                            return new Xa(this.splitPosition, t);
                        }
                        clone() {
                            return new Kl(this.splitPosition, this.howMany, this.insertionPosition, this.graveyardPosition, this.baseVersion);
                        }
                        getReversed() {
                            const t = this.splitPosition.root.document.graveyard,
                                e = new Ka(t, [0]);
                            return new Yl(this.moveTargetPosition, this.howMany, this.splitPosition, e, this.baseVersion + 1);
                        }
                        _validate() {
                            const t = this.splitPosition.parent,
                                e = this.splitPosition.offset;
                            if (!t || t.maxOffset < e) throw new c("split-operation-position-invalid", this);
                            if (!t.parent) throw new c("split-operation-split-in-root", this);
                            if (this.howMany != t.maxOffset - this.splitPosition.offset) throw new c("split-operation-how-many-invalid", this);
                            if (this.graveyardPosition && !this.graveyardPosition.nodeAfter) throw new c("split-operation-graveyard-position-invalid", this);
                        }
                        _execute() {
                            const t = this.splitPosition.parent;
                            if (this.graveyardPosition) zl(Xa._createFromPositionAndShift(this.graveyardPosition, 1), this.insertionPosition);
                            else {
                                const e = t._clone();
                                Bl(this.insertionPosition, e);
                            }
                            zl(new Xa(Ka._createAt(t, this.splitPosition.offset), Ka._createAt(t, t.maxOffset)), this.moveTargetPosition);
                        }
                        toJSON() {
                            const t = super.toJSON();
                            return (t.splitPosition = this.splitPosition.toJSON()), (t.insertionPosition = this.insertionPosition.toJSON()), this.graveyardPosition && (t.graveyardPosition = this.graveyardPosition.toJSON()), t;
                        }
                        static get className() {
                            return "SplitOperation";
                        }
                        static getInsertionPosition(t) {
                            const e = t.path.slice(0, -1);
                            return e[e.length - 1]++, new Ka(t.root, e, "toPrevious");
                        }
                        static fromJSON(t, e) {
                            const n = Ka.fromJSON(t.splitPosition, e),
                                o = Ka.fromJSON(t.insertionPosition, e),
                                i = t.graveyardPosition ? Ka.fromJSON(t.graveyardPosition, e) : null;
                            return new this(n, t.howMany, o, i, t.baseVersion);
                        }
                    }
                    const Ql = {};
                    (Ql[Vl.className] = Vl),
                        (Ql[Ul.className] = Ul),
                        (Ql[Wl.className] = Wl),
                        (Ql[Hl.className] = Hl),
                        (Ql[ql.className] = ql),
                        (Ql[Nl.className] = Nl),
                        (Ql[Gl.className] = Gl),
                        (Ql[$l.className] = $l),
                        (Ql[Kl.className] = Kl),
                        (Ql[Yl.className] = Yl);
                    class Zl extends Nl {
                        constructor(t, e) {
                            super(null), (this.sourcePosition = t.clone()), (this.howMany = e);
                        }
                        get type() {
                            return "detach";
                        }
                        toJSON() {
                            const t = super.toJSON();
                            return (t.sourcePosition = this.sourcePosition.toJSON()), t;
                        }
                        _validate() {
                            if (this.sourcePosition.root.document) throw new c("detach-operation-on-document-node", this);
                        }
                        _execute() {
                            Pl(Xa._createFromPositionAndShift(this.sourcePosition, this.howMany));
                        }
                        static get className() {
                            return "DetachOperation";
                        }
                    }
                    class Jl extends Va {
                        constructor(t) {
                            super(), (this.markers = new Map()), (this._children = new Ua()), t && this._insertChild(0, t);
                        }
                        [Symbol.iterator]() {
                            return this.getChildren();
                        }
                        get childCount() {
                            return this._children.length;
                        }
                        get maxOffset() {
                            return this._children.maxOffset;
                        }
                        get isEmpty() {
                            return 0 === this.childCount;
                        }
                        get nextSibling() {
                            return null;
                        }
                        get previousSibling() {
                            return null;
                        }
                        get root() {
                            return this;
                        }
                        get parent() {
                            return null;
                        }
                        get document() {
                            return null;
                        }
                        getAncestors() {
                            return [];
                        }
                        getChild(t) {
                            return this._children.getNode(t);
                        }
                        getChildren() {
                            return this._children[Symbol.iterator]();
                        }
                        getChildIndex(t) {
                            return this._children.getNodeIndex(t);
                        }
                        getChildStartOffset(t) {
                            return this._children.getNodeStartOffset(t);
                        }
                        getPath() {
                            return [];
                        }
                        getNodeByPath(t) {
                            let e = this;
                            for (const n of t) e = e.getChild(e.offsetToIndex(n));
                            return e;
                        }
                        offsetToIndex(t) {
                            return this._children.offsetToIndex(t);
                        }
                        toJSON() {
                            const t = [];
                            for (const e of this._children) t.push(e.toJSON());
                            return t;
                        }
                        static fromJSON(t) {
                            const e = [];
                            for (const n of t) n.name ? e.push(Ga.fromJSON(n)) : e.push(Wa.fromJSON(n));
                            return new Jl(e);
                        }
                        _appendChild(t) {
                            this._insertChild(this.childCount, t);
                        }
                        _insertChild(t, e) {
                            const n = (function (t) {
                                if ("string" == typeof t) return [new Wa(t)];
                                fo(t) || (t = [t]);
                                return Array.from(t).map((t) => ("string" == typeof t ? new Wa(t) : t instanceof qa ? new Wa(t.data, t.getAttributes()) : t));
                            })(e);
                            for (const t of n) null !== t.parent && t._remove(), (t.parent = this);
                            this._children._insertNodes(t, n);
                        }
                        _removeChildren(t, e = 1) {
                            const n = this._children._removeNodes(t, e);
                            for (const t of n) t.parent = null;
                            return n;
                        }
                    }
                    Jl.prototype.is = function (t) {
                        return "documentFragment" === t || "model:documentFragment" === t;
                    };
                    class Xl {
                        constructor(t, e) {
                            (this.model = t), (this.batch = e);
                        }
                        createText(t, e) {
                            return new Wa(t, e);
                        }
                        createElement(t, e) {
                            return new Ga(t, e);
                        }
                        createDocumentFragment() {
                            return new Jl();
                        }
                        cloneElement(t, e = !0) {
                            return t._clone(e);
                        }
                        insert(t, e, n = 0) {
                            if ((this._assertWriterUsedCorrectly(), t instanceof Wa && "" == t.data)) return;
                            const o = Ka._createAt(e, n);
                            if (t.parent) {
                                if (id(t.root, o.root)) return void this.move(Xa._createOn(t), o);
                                if (t.root.document) throw new c("model-writer-insert-forbidden-move", this);
                                this.remove(t);
                            }
                            const i = o.root.document ? o.root.document.version : null,
                                r = new Ul(o, t, i);
                            if ((t instanceof Wa && (r.shouldReceiveAttributes = !0), this.batch.addOperation(r), this.model.applyOperation(r), t instanceof Jl))
                                for (const [e, n] of t.markers) {
                                    const t = Ka._createAt(n.root, 0),
                                        i = { range: new Xa(n.start._getCombined(t, o), n.end._getCombined(t, o)), usingOperation: !0, affectsData: !0 };
                                    this.model.markers.has(e) ? this.updateMarker(e, i) : this.addMarker(e, i);
                                }
                        }
                        insertText(t, e, n, o) {
                            e instanceof Jl || e instanceof Ga || e instanceof Ka ? this.insert(this.createText(t), e, n) : this.insert(this.createText(t, e), n, o);
                        }
                        insertElement(t, e, n, o) {
                            e instanceof Jl || e instanceof Ga || e instanceof Ka ? this.insert(this.createElement(t), e, n) : this.insert(this.createElement(t, e), n, o);
                        }
                        append(t, e) {
                            this.insert(t, e, "end");
                        }
                        appendText(t, e, n) {
                            e instanceof Jl || e instanceof Ga ? this.insert(this.createText(t), e, "end") : this.insert(this.createText(t, e), n, "end");
                        }
                        appendElement(t, e, n) {
                            e instanceof Jl || e instanceof Ga ? this.insert(this.createElement(t), e, "end") : this.insert(this.createElement(t, e), n, "end");
                        }
                        setAttribute(t, e, n) {
                            if ((this._assertWriterUsedCorrectly(), n instanceof Xa)) {
                                const o = n.getMinimalFlatRanges();
                                for (const n of o) td(this, t, e, n);
                            } else ed(this, t, e, n);
                        }
                        setAttributes(t, e) {
                            for (const [n, o] of Po(t)) this.setAttribute(n, o, e);
                        }
                        removeAttribute(t, e) {
                            if ((this._assertWriterUsedCorrectly(), e instanceof Xa)) {
                                const n = e.getMinimalFlatRanges();
                                for (const e of n) td(this, t, null, e);
                            } else ed(this, t, null, e);
                        }
                        clearAttributes(t) {
                            this._assertWriterUsedCorrectly();
                            const e = (t) => {
                                for (const e of t.getAttributeKeys()) this.removeAttribute(e, t);
                            };
                            if (t instanceof Xa) for (const n of t.getItems()) e(n);
                            else e(t);
                        }
                        move(t, e, n) {
                            if ((this._assertWriterUsedCorrectly(), !(t instanceof Xa))) throw new c("writer-move-invalid-range", this);
                            if (!t.isFlat) throw new c("writer-move-range-not-flat", this);
                            const o = Ka._createAt(e, n);
                            if (o.isEqual(t.start)) return;
                            if ((this._addOperationForAffectedMarkers("move", t), !id(t.root, o.root))) throw new c("writer-move-different-document", this);
                            const i = t.root.document ? t.root.document.version : null,
                                r = new Hl(t.start, t.end.offset - t.start.offset, o, i);
                            this.batch.addOperation(r), this.model.applyOperation(r);
                        }
                        remove(t) {
                            this._assertWriterUsedCorrectly();
                            const e = (t instanceof Xa ? t : Xa._createOn(t)).getMinimalFlatRanges().reverse();
                            for (const t of e) this._addOperationForAffectedMarkers("move", t), od(t.start, t.end.offset - t.start.offset, this.batch, this.model);
                        }
                        merge(t) {
                            this._assertWriterUsedCorrectly();
                            const e = t.nodeBefore,
                                n = t.nodeAfter;
                            if ((this._addOperationForAffectedMarkers("merge", t), !(e instanceof Ga))) throw new c("writer-merge-no-element-before", this);
                            if (!(n instanceof Ga)) throw new c("writer-merge-no-element-after", this);
                            t.root.document ? this._merge(t) : this._mergeDetached(t);
                        }
                        createPositionFromPath(t, e, n) {
                            return this.model.createPositionFromPath(t, e, n);
                        }
                        createPositionAt(t, e) {
                            return this.model.createPositionAt(t, e);
                        }
                        createPositionAfter(t) {
                            return this.model.createPositionAfter(t);
                        }
                        createPositionBefore(t) {
                            return this.model.createPositionBefore(t);
                        }
                        createRange(t, e) {
                            return this.model.createRange(t, e);
                        }
                        createRangeIn(t) {
                            return this.model.createRangeIn(t);
                        }
                        createRangeOn(t) {
                            return this.model.createRangeOn(t);
                        }
                        createSelection(...t) {
                            return this.model.createSelection(...t);
                        }
                        _mergeDetached(t) {
                            const e = t.nodeBefore,
                                n = t.nodeAfter;
                            this.move(Xa._createIn(n), Ka._createAt(e, "end")), this.remove(n);
                        }
                        _merge(t) {
                            const e = Ka._createAt(t.nodeBefore, "end"),
                                n = Ka._createAt(t.nodeAfter, 0),
                                o = t.root.document.graveyard,
                                i = new Ka(o, [0]),
                                r = t.root.document.version,
                                s = new Yl(n, t.nodeAfter.maxOffset, e, i, r);
                            this.batch.addOperation(s), this.model.applyOperation(s);
                        }
                        rename(t, e) {
                            if ((this._assertWriterUsedCorrectly(), !(t instanceof Ga))) throw new c("writer-rename-not-element-instance", this);
                            const n = t.root.document ? t.root.document.version : null,
                                o = new Gl(Ka._createBefore(t), t.name, e, n);
                            this.batch.addOperation(o), this.model.applyOperation(o);
                        }
                        split(t, e) {
                            this._assertWriterUsedCorrectly();
                            let n,
                                o,
                                i = t.parent;
                            if (!i.parent) throw new c("writer-split-element-no-parent", this);
                            if ((e || (e = i.parent), !t.parent.getAncestors({ includeSelf: !0 }).includes(e))) throw new c("writer-split-invalid-limit-element", this);
                            do {
                                const e = i.root.document ? i.root.document.version : null,
                                    r = i.maxOffset - t.offset,
                                    s = Kl.getInsertionPosition(t),
                                    a = new Kl(t, r, s, null, e);
                                this.batch.addOperation(a), this.model.applyOperation(a), n || o || ((n = i), (o = t.parent.nextSibling)), (i = (t = this.createPositionAfter(t.parent)).parent);
                            } while (i !== e);
                            return { position: t, range: new Xa(Ka._createAt(n, "end"), Ka._createAt(o, 0)) };
                        }
                        wrap(t, e) {
                            if ((this._assertWriterUsedCorrectly(), !t.isFlat)) throw new c("writer-wrap-range-not-flat", this);
                            const n = e instanceof Ga ? e : new Ga(e);
                            if (n.childCount > 0) throw new c("writer-wrap-element-not-empty", this);
                            if (null !== n.parent) throw new c("writer-wrap-element-attached", this);
                            this.insert(n, t.start);
                            const o = new Xa(t.start.getShiftedBy(1), t.end.getShiftedBy(1));
                            this.move(o, Ka._createAt(n, 0));
                        }
                        unwrap(t) {
                            if ((this._assertWriterUsedCorrectly(), null === t.parent)) throw new c("writer-unwrap-element-no-parent", this);
                            this.move(Xa._createIn(t), this.createPositionAfter(t)), this.remove(t);
                        }
                        addMarker(t, e) {
                            if ((this._assertWriterUsedCorrectly(), !e || "boolean" != typeof e.usingOperation)) throw new c("writer-addmarker-no-usingoperation", this);
                            const n = e.usingOperation,
                                o = e.range,
                                i = void 0 !== e.affectsData && e.affectsData;
                            if (this.model.markers.has(t)) throw new c("writer-addmarker-marker-exists", this);
                            if (!o) throw new c("writer-addmarker-no-range", this);
                            return n ? (nd(this, t, null, o, i), this.model.markers.get(t)) : this.model.markers._set(t, o, n, i);
                        }
                        updateMarker(t, e) {
                            this._assertWriterUsedCorrectly();
                            const n = "string" == typeof t ? t : t.name,
                                o = this.model.markers.get(n);
                            if (!o) throw new c("writer-updatemarker-marker-not-exists", this);
                            if (!e) return l("writer-updatemarker-reconvert-using-editingcontroller", { markerName: n }), void this.model.markers._refresh(o);
                            const i = "boolean" == typeof e.usingOperation,
                                r = "boolean" == typeof e.affectsData,
                                s = r ? e.affectsData : o.affectsData;
                            if (!i && !e.range && !r) throw new c("writer-updatemarker-wrong-options", this);
                            const a = o.getRange(),
                                d = e.range ? e.range : a;
                            i && e.usingOperation !== o.managedUsingOperations
                                ? e.usingOperation
                                    ? nd(this, n, null, d, s)
                                    : (nd(this, n, a, null, s), this.model.markers._set(n, d, void 0, s))
                                : o.managedUsingOperations
                                ? nd(this, n, a, d, s)
                                : this.model.markers._set(n, d, void 0, s);
                        }
                        removeMarker(t) {
                            this._assertWriterUsedCorrectly();
                            const e = "string" == typeof t ? t : t.name;
                            if (!this.model.markers.has(e)) throw new c("writer-removemarker-no-marker", this);
                            const n = this.model.markers.get(e);
                            if (!n.managedUsingOperations) return void this.model.markers._remove(e);
                            nd(this, e, n.getRange(), null, n.affectsData);
                        }
                        setSelection(...t) {
                            this._assertWriterUsedCorrectly(), this.model.document.selection._setTo(...t);
                        }
                        setSelectionFocus(t, e) {
                            this._assertWriterUsedCorrectly(), this.model.document.selection._setFocus(t, e);
                        }
                        setSelectionAttribute(t, e) {
                            if ((this._assertWriterUsedCorrectly(), "string" == typeof t)) this._setSelectionAttribute(t, e);
                            else for (const [e, n] of Po(t)) this._setSelectionAttribute(e, n);
                        }
                        removeSelectionAttribute(t) {
                            if ((this._assertWriterUsedCorrectly(), "string" == typeof t)) this._removeSelectionAttribute(t);
                            else for (const e of t) this._removeSelectionAttribute(e);
                        }
                        overrideSelectionGravity() {
                            return this.model.document.selection._overrideGravity();
                        }
                        restoreSelectionGravity(t) {
                            this.model.document.selection._restoreGravity(t);
                        }
                        _setSelectionAttribute(t, e) {
                            const n = this.model.document.selection;
                            if (n.isCollapsed && n.anchor.parent.isEmpty) {
                                const o = pc._getStoreAttributeKey(t);
                                this.setAttribute(o, e, n.anchor.parent);
                            }
                            n._setAttribute(t, e);
                        }
                        _removeSelectionAttribute(t) {
                            const e = this.model.document.selection;
                            if (e.isCollapsed && e.anchor.parent.isEmpty) {
                                const n = pc._getStoreAttributeKey(t);
                                this.removeAttribute(n, e.anchor.parent);
                            }
                            e._removeAttribute(t);
                        }
                        _assertWriterUsedCorrectly() {
                            if (this.model._currentWriter !== this) throw new c("writer-incorrect-use", this);
                        }
                        _addOperationForAffectedMarkers(t, e) {
                            for (const n of this.model.markers) {
                                if (!n.managedUsingOperations) continue;
                                const o = n.getRange();
                                let i = !1;
                                if ("move" === t) {
                                    const t = e;
                                    i = t.containsPosition(o.start) || t.start.isEqual(o.start) || t.containsPosition(o.end) || t.end.isEqual(o.end);
                                } else {
                                    const t = e,
                                        n = t.nodeBefore,
                                        r = t.nodeAfter,
                                        s = o.start.parent == n && o.start.isAtEnd,
                                        a = o.end.parent == r && 0 == o.end.offset,
                                        c = o.end.nodeAfter == r,
                                        l = o.start.nodeAfter == r;
                                    i = s || a || c || l;
                                }
                                i && this.updateMarker(n.name, { range: o });
                            }
                        }
                    }
                    function td(t, e, n, o) {
                        const i = t.model,
                            r = i.document;
                        let s,
                            a,
                            c,
                            l = o.start;
                        for (const t of o.getWalker({ shallow: !0 })) (c = t.item.getAttribute(e)), s && a != c && (a != n && d(), (l = s)), (s = t.nextPosition), (a = c);
                        function d() {
                            const o = new Xa(l, s),
                                c = o.root.document ? r.version : null,
                                d = new Vl(o, e, a, n, c);
                            t.batch.addOperation(d), i.applyOperation(d);
                        }
                        s instanceof Ka && s != l && a != n && d();
                    }
                    function ed(t, e, n, o) {
                        const i = t.model,
                            r = i.document,
                            s = o.getAttribute(e);
                        let a, c;
                        if (s != n) {
                            if (o.root === o) {
                                const t = o.document ? r.version : null;
                                c = new $l(o, e, s, n, t);
                            } else {
                                a = new Xa(Ka._createBefore(o), t.createPositionAfter(o));
                                const i = a.root.document ? r.version : null;
                                c = new Vl(a, e, s, n, i);
                            }
                            t.batch.addOperation(c), i.applyOperation(c);
                        }
                    }
                    function nd(t, e, n, o, i) {
                        const r = t.model,
                            s = r.document,
                            a = new Wl(e, n, o, r.markers, !!i, s.version);
                        t.batch.addOperation(a), r.applyOperation(a);
                    }
                    function od(t, e, n, o) {
                        let i;
                        if (t.root.document) {
                            const n = o.document,
                                r = new Ka(n.graveyard, [0]);
                            i = new Hl(t, e, r, n.version);
                        } else i = new Zl(t, e);
                        n.addOperation(i), o.applyOperation(i);
                    }
                    function id(t, e) {
                        return t === e || (t instanceof Cl && e instanceof Cl);
                    }
                    function rd(t) {
                        t.document.registerPostFixer((e) =>
                            (function (t, e) {
                                const n = e.document.selection,
                                    o = e.schema,
                                    i = [];
                                let r = !1;
                                for (const t of n.getRanges()) {
                                    const e = sd(t, o);
                                    e && !e.isEqual(t) ? (i.push(e), (r = !0)) : i.push(t);
                                }
                                r &&
                                    t.setSelection(
                                        (function (t) {
                                            const e = [...t],
                                                n = new Set();
                                            let o = 1;
                                            for (; o < e.length; ) {
                                                const t = e[o],
                                                    i = e.slice(0, o);
                                                for (const [r, s] of i.entries())
                                                    if (!n.has(r))
                                                        if (t.isEqual(s)) n.add(r);
                                                        else if (t.isIntersecting(s)) {
                                                            n.add(r), n.add(o);
                                                            const i = t.getJoined(s);
                                                            e.push(i);
                                                        }
                                                o++;
                                            }
                                            return e.filter((t, e) => !n.has(e));
                                        })(i),
                                        { backward: n.isBackward }
                                    );
                                return !1;
                            })(e, t)
                        );
                    }
                    function sd(t, e) {
                        return t.isCollapsed
                            ? (function (t, e) {
                                  const n = t.start,
                                      o = e.getNearestSelectionRange(n);
                                  if (!o) {
                                      const t = n
                                          .getAncestors()
                                          .reverse()
                                          .find((t) => e.isObject(t));
                                      return t ? Xa._createOn(t) : null;
                                  }
                                  if (!o.isCollapsed) return o;
                                  const i = o.start;
                                  if (n.isEqual(i)) return null;
                                  return new Xa(i);
                              })(t, e)
                            : (function (t, e) {
                                  const { start: n, end: o } = t,
                                      i = e.checkChild(n, "$text"),
                                      r = e.checkChild(o, "$text"),
                                      s = e.getLimitElement(n),
                                      a = e.getLimitElement(o);
                                  if (s === a) {
                                      if (i && r) return null;
                                      if (
                                          (function (t, e, n) {
                                              const o = (t.nodeAfter && !n.isLimit(t.nodeAfter)) || n.checkChild(t, "$text"),
                                                  i = (e.nodeBefore && !n.isLimit(e.nodeBefore)) || n.checkChild(e, "$text");
                                              return o || i;
                                          })(n, o, e)
                                      ) {
                                          const t = n.nodeAfter && e.isSelectable(n.nodeAfter) ? null : e.getNearestSelectionRange(n, "forward"),
                                              i = o.nodeBefore && e.isSelectable(o.nodeBefore) ? null : e.getNearestSelectionRange(o, "backward"),
                                              r = t ? t.start : n,
                                              s = i ? i.end : o;
                                          return new Xa(r, s);
                                      }
                                  }
                                  const c = s && !s.is("rootElement"),
                                      l = a && !a.is("rootElement");
                                  if (c || l) {
                                      const t = n.nodeAfter && o.nodeBefore && n.nodeAfter.parent === o.nodeBefore.parent,
                                          i = c && (!t || !cd(n.nodeAfter, e)),
                                          r = l && (!t || !cd(o.nodeBefore, e));
                                      let d = n,
                                          h = o;
                                      return i && (d = Ka._createBefore(ad(s, e))), r && (h = Ka._createAfter(ad(a, e))), new Xa(d, h);
                                  }
                                  return null;
                              })(t, e);
                    }
                    function ad(t, e) {
                        let n = t,
                            o = n;
                        for (; e.isLimit(o) && o.parent; ) (n = o), (o = o.parent);
                        return n;
                    }
                    function cd(t, e) {
                        return t && e.isSelectable(t);
                    }
                    class ld extends b(Ka) {
                        constructor(t, e, n = "toNone") {
                            if ((super(t, e, n), !this.root.is("rootElement"))) throw new c("model-liveposition-root-not-rootelement", t);
                            dd.call(this);
                        }
                        detach() {
                            this.stopListening();
                        }
                        toPosition() {
                            return new Ka(this.root, this.path.slice(), this.stickiness);
                        }
                        static fromPosition(t, e) {
                            return new this(t.root, t.path.slice(), e || t.stickiness);
                        }
                    }
                    function dd() {
                        this.listenTo(
                            this.root.document.model,
                            "applyOperation",
                            (t, e) => {
                                const n = e[0];
                                n.isDocumentOperation && hd.call(this, n);
                            },
                            { priority: "low" }
                        );
                    }
                    function hd(t) {
                        const e = this.getTransformedByOperation(t);
                        if (!this.isEqual(e)) {
                            const t = this.toPosition();
                            (this.path = e.path), (this.root = e.root), this.fire("change", t);
                        }
                    }
                    function ud(t, e, n = {}) {
                        if (e.isCollapsed) return;
                        const o = e.getFirstRange();
                        if ("$graveyard" == o.root.rootName) return;
                        const i = t.schema;
                        t.change((t) => {
                            if (
                                !n.doNotResetEntireContent &&
                                (function (t, e) {
                                    const n = t.getLimitElement(e);
                                    if (!e.containsEntireContent(n)) return !1;
                                    const o = e.getFirstRange();
                                    if (o.start.parent == o.end.parent) return !1;
                                    return t.checkChild(n, "paragraph");
                                })(i, e)
                            )
                                return void (function (t, e) {
                                    const n = t.model.schema.getLimitElement(e);
                                    t.remove(t.createRangeIn(n)), fd(t, t.createPositionAt(n, 0), e);
                                })(t, e);
                            const r = {};
                            if (!n.doNotAutoparagraph) {
                                const t = e.getSelectedElement();
                                t && Object.assign(r, i.getAttributesWithProperty(t, "copyOnReplace", !0));
                            }
                            const [s, a] = (function (t) {
                                const e = t.root.document.model,
                                    n = t.start;
                                let o = t.end;
                                if (e.hasContent(t, { ignoreMarkers: !0 })) {
                                    const n = (function (t) {
                                        const e = t.parent,
                                            n = e.root.document.model.schema,
                                            o = e.getAncestors({ parentFirst: !0, includeSelf: !0 });
                                        for (const t of o) {
                                            if (n.isLimit(t)) return null;
                                            if (n.isBlock(t)) return t;
                                        }
                                    })(o);
                                    if (n && o.isTouching(e.createPositionAt(n, 0))) {
                                        const n = e.createSelection(t);
                                        e.modifySelection(n, { direction: "backward" });
                                        const i = n.getLastPosition(),
                                            r = e.createRange(i, o);
                                        e.hasContent(r, { ignoreMarkers: !0 }) || (o = i);
                                    }
                                }
                                return [ld.fromPosition(n, "toPrevious"), ld.fromPosition(o, "toNext")];
                            })(o);
                            s.isTouching(a) || t.remove(t.createRange(s, a)),
                                n.leaveUnmerged ||
                                    (!(function (t, e, n) {
                                        const o = t.model;
                                        if (!pd(t.model.schema, e, n)) return;
                                        const [i, r] = (function (t, e) {
                                            const n = t.getAncestors(),
                                                o = e.getAncestors();
                                            let i = 0;
                                            for (; n[i] && n[i] == o[i]; ) i++;
                                            return [n[i], o[i]];
                                        })(e, n);
                                        if (!i || !r) return;
                                        !o.hasContent(i, { ignoreMarkers: !0 }) && o.hasContent(r, { ignoreMarkers: !0 }) ? md(t, e, n, i.parent) : gd(t, e, n, i.parent);
                                    })(t, s, a),
                                    i.removeDisallowedAttributes(s.parent.getChildren(), t)),
                                kd(t, e, s),
                                !n.doNotAutoparagraph &&
                                    (function (t, e) {
                                        const n = t.checkChild(e, "$text"),
                                            o = t.checkChild(e, "paragraph");
                                        return !n && o;
                                    })(i, s) &&
                                    fd(t, s, e, r),
                                s.detach(),
                                a.detach();
                        });
                    }
                    function gd(t, e, n, o) {
                        const i = e.parent,
                            r = n.parent;
                        if (i != o && r != o) {
                            for (e = t.createPositionAfter(i), (n = t.createPositionBefore(r)).isEqual(e) || t.insert(r, e), t.merge(e); n.parent.isEmpty; ) {
                                const e = n.parent;
                                (n = t.createPositionBefore(e)), t.remove(e);
                            }
                            pd(t.model.schema, e, n) && gd(t, e, n, o);
                        }
                    }
                    function md(t, e, n, o) {
                        const i = e.parent,
                            r = n.parent;
                        if (i != o && r != o) {
                            for (e = t.createPositionAfter(i), (n = t.createPositionBefore(r)).isEqual(e) || t.insert(i, n); e.parent.isEmpty; ) {
                                const n = e.parent;
                                (e = t.createPositionBefore(n)), t.remove(n);
                            }
                            (n = t.createPositionBefore(r)),
                                (function (t, e) {
                                    const n = e.nodeBefore,
                                        o = e.nodeAfter;
                                    n.name != o.name && t.rename(n, o.name);
                                    t.clearAttributes(n), t.setAttributes(Object.fromEntries(o.getAttributes()), n), t.merge(e);
                                })(t, n),
                                pd(t.model.schema, e, n) && md(t, e, n, o);
                        }
                    }
                    function pd(t, e, n) {
                        const o = e.parent,
                            i = n.parent;
                        return (
                            o != i &&
                            !t.isLimit(o) &&
                            !t.isLimit(i) &&
                            (function (t, e, n) {
                                const o = new Xa(t, e);
                                for (const t of o.getWalker()) if (n.isLimit(t.item)) return !1;
                                return !0;
                            })(e, n, t)
                        );
                    }
                    function fd(t, e, n, o = {}) {
                        const i = t.createElement("paragraph");
                        t.model.schema.setAllowedAttributes(i, o, t), t.insert(i, e), kd(t, n, t.createPositionAt(i, 0));
                    }
                    function kd(t, e, n) {
                        e instanceof pc ? t.setSelection(n) : e.setTo(n);
                    }
                    function bd(t, e) {
                        const n = [];
                        Array.from(t.getItems({ direction: "backward" }))
                            .map((t) => e.createRangeOn(t))
                            .filter((e) => (e.start.isAfter(t.start) || e.start.isEqual(t.start)) && (e.end.isBefore(t.end) || e.end.isEqual(t.end)))
                            .forEach((t) => {
                                n.push(t.start.parent), e.remove(t);
                            }),
                            n.forEach((t) => {
                                let n = t;
                                for (; n.parent && n.isEmpty; ) {
                                    const t = e.createRangeOn(n);
                                    (n = n.parent), e.remove(t);
                                }
                            });
                    }
                    ld.prototype.is = function (t) {
                        return "livePosition" === t || "model:livePosition" === t || "position" == t || "model:position" === t;
                    };
                    class wd {
                        constructor(t, e, n) {
                            (this.model = t),
                                (this.writer = e),
                                (this.position = n),
                                (this.canMergeWith = new Set([this.position.parent])),
                                (this.schema = t.schema),
                                (this._documentFragment = e.createDocumentFragment()),
                                (this._documentFragmentPosition = e.createPositionAt(this._documentFragment, 0)),
                                (this._firstNode = null),
                                (this._lastNode = null),
                                (this._lastAutoParagraph = null),
                                (this._filterAttributesOf = []),
                                (this._affectedStart = null),
                                (this._affectedEnd = null);
                        }
                        handleNodes(t) {
                            for (const e of Array.from(t)) this._handleNode(e);
                            this._insertPartialFragment(),
                                this._lastAutoParagraph && this._updateLastNodeFromAutoParagraph(this._lastAutoParagraph),
                                this._mergeOnRight(),
                                this.schema.removeDisallowedAttributes(this._filterAttributesOf, this.writer),
                                (this._filterAttributesOf = []);
                        }
                        _updateLastNodeFromAutoParagraph(t) {
                            const e = this.writer.createPositionAfter(this._lastNode),
                                n = this.writer.createPositionAfter(t);
                            if (n.isAfter(e)) {
                                if (((this._lastNode = t), this.position.parent != t || !this.position.isAtEnd)) throw new c("insertcontent-invalid-insertion-position", this);
                                (this.position = n), this._setAffectedBoundaries(this.position);
                            }
                        }
                        getSelectionRange() {
                            return this._nodeToSelect ? Xa._createOn(this._nodeToSelect) : this.model.schema.getNearestSelectionRange(this.position);
                        }
                        getAffectedRange() {
                            return this._affectedStart ? new Xa(this._affectedStart, this._affectedEnd) : null;
                        }
                        destroy() {
                            this._affectedStart && this._affectedStart.detach(), this._affectedEnd && this._affectedEnd.detach();
                        }
                        _handleNode(t) {
                            if (this.schema.isObject(t)) return void this._handleObject(t);
                            let e = this._checkAndAutoParagraphToAllowedPosition(t);
                            e || ((e = this._checkAndSplitToAllowedPosition(t)), e) ? (this._appendToFragment(t), this._firstNode || (this._firstNode = t), (this._lastNode = t)) : this._handleDisallowedNode(t);
                        }
                        _insertPartialFragment() {
                            if (this._documentFragment.isEmpty) return;
                            const t = ld.fromPosition(this.position, "toNext");
                            this._setAffectedBoundaries(this.position),
                                this._documentFragment.getChild(0) == this._firstNode && (this.writer.insert(this._firstNode, this.position), this._mergeOnLeft(), (this.position = t.toPosition())),
                                this._documentFragment.isEmpty || this.writer.insert(this._documentFragment, this.position),
                                (this._documentFragmentPosition = this.writer.createPositionAt(this._documentFragment, 0)),
                                (this.position = t.toPosition()),
                                t.detach();
                        }
                        _handleObject(t) {
                            this._checkAndSplitToAllowedPosition(t) ? this._appendToFragment(t) : this._tryAutoparagraphing(t);
                        }
                        _handleDisallowedNode(t) {
                            t.is("element") ? this.handleNodes(t.getChildren()) : this._tryAutoparagraphing(t);
                        }
                        _appendToFragment(t) {
                            if (!this.schema.checkChild(this.position, t)) throw new c("insertcontent-wrong-position", this, { node: t, position: this.position });
                            this.writer.insert(t, this._documentFragmentPosition),
                                (this._documentFragmentPosition = this._documentFragmentPosition.getShiftedBy(t.offsetSize)),
                                this.schema.isObject(t) && !this.schema.checkChild(this.position, "$text") ? (this._nodeToSelect = t) : (this._nodeToSelect = null),
                                this._filterAttributesOf.push(t);
                        }
                        _setAffectedBoundaries(t) {
                            this._affectedStart || (this._affectedStart = ld.fromPosition(t, "toPrevious")),
                                (this._affectedEnd && !this._affectedEnd.isBefore(t)) || (this._affectedEnd && this._affectedEnd.detach(), (this._affectedEnd = ld.fromPosition(t, "toNext")));
                        }
                        _mergeOnLeft() {
                            const t = this._firstNode;
                            if (!(t instanceof Ga)) return;
                            if (!this._canMergeLeft(t)) return;
                            const e = ld._createBefore(t);
                            e.stickiness = "toNext";
                            const n = ld.fromPosition(this.position, "toNext");
                            this._affectedStart.isEqual(e) && (this._affectedStart.detach(), (this._affectedStart = ld._createAt(e.nodeBefore, "end", "toPrevious"))),
                                this._firstNode === this._lastNode && ((this._firstNode = e.nodeBefore), (this._lastNode = e.nodeBefore)),
                                this.writer.merge(e),
                                e.isEqual(this._affectedEnd) && this._firstNode === this._lastNode && (this._affectedEnd.detach(), (this._affectedEnd = ld._createAt(e.nodeBefore, "end", "toNext"))),
                                (this.position = n.toPosition()),
                                n.detach(),
                                this._filterAttributesOf.push(this.position.parent),
                                e.detach();
                        }
                        _mergeOnRight() {
                            const t = this._lastNode;
                            if (!(t instanceof Ga)) return;
                            if (!this._canMergeRight(t)) return;
                            const e = ld._createAfter(t);
                            if (((e.stickiness = "toNext"), !this.position.isEqual(e))) throw new c("insertcontent-invalid-insertion-position", this);
                            this.position = Ka._createAt(e.nodeBefore, "end");
                            const n = ld.fromPosition(this.position, "toPrevious");
                            this._affectedEnd.isEqual(e) && (this._affectedEnd.detach(), (this._affectedEnd = ld._createAt(e.nodeBefore, "end", "toNext"))),
                                this._firstNode === this._lastNode && ((this._firstNode = e.nodeBefore), (this._lastNode = e.nodeBefore)),
                                this.writer.merge(e),
                                e.getShiftedBy(-1).isEqual(this._affectedStart) && this._firstNode === this._lastNode && (this._affectedStart.detach(), (this._affectedStart = ld._createAt(e.nodeBefore, 0, "toPrevious"))),
                                (this.position = n.toPosition()),
                                n.detach(),
                                this._filterAttributesOf.push(this.position.parent),
                                e.detach();
                        }
                        _canMergeLeft(t) {
                            const e = t.previousSibling;
                            return e instanceof Ga && this.canMergeWith.has(e) && this.model.schema.checkMerge(e, t);
                        }
                        _canMergeRight(t) {
                            const e = t.nextSibling;
                            return e instanceof Ga && this.canMergeWith.has(e) && this.model.schema.checkMerge(t, e);
                        }
                        _tryAutoparagraphing(t) {
                            const e = this.writer.createElement("paragraph");
                            this._getAllowedIn(this.position.parent, e) && this.schema.checkChild(e, t) && (e._appendChild(t), this._handleNode(e));
                        }
                        _checkAndAutoParagraphToAllowedPosition(t) {
                            if (this.schema.checkChild(this.position.parent, t)) return !0;
                            if (!this.schema.checkChild(this.position.parent, "paragraph") || !this.schema.checkChild("paragraph", t)) return !1;
                            this._insertPartialFragment();
                            const e = this.writer.createElement("paragraph");
                            return this.writer.insert(e, this.position), this._setAffectedBoundaries(this.position), (this._lastAutoParagraph = e), (this.position = this.writer.createPositionAt(e, 0)), !0;
                        }
                        _checkAndSplitToAllowedPosition(t) {
                            const e = this._getAllowedIn(this.position.parent, t);
                            if (!e) return !1;
                            for (e != this.position.parent && this._insertPartialFragment(); e != this.position.parent; )
                                if (this.position.isAtStart) {
                                    const t = this.position.parent;
                                    (this.position = this.writer.createPositionBefore(t)), t.isEmpty && t.parent === e && this.writer.remove(t);
                                } else if (this.position.isAtEnd) this.position = this.writer.createPositionAfter(this.position.parent);
                                else {
                                    const t = this.writer.createPositionAfter(this.position.parent);
                                    this._setAffectedBoundaries(this.position), this.writer.split(this.position), (this.position = t), this.canMergeWith.add(this.position.nodeAfter);
                                }
                            return !0;
                        }
                        _getAllowedIn(t, e) {
                            return this.schema.checkChild(t, e) ? t : this.schema.isLimit(t) ? null : this._getAllowedIn(t.parent, e);
                        }
                    }
                    function _d(t, e, n = "auto") {
                        const o = t.getSelectedElement();
                        if (o && e.schema.isObject(o) && !e.schema.isInline(o)) return "before" == n || "after" == n ? e.createRange(e.createPositionAt(o, n)) : e.createRangeOn(o);
                        const i = wa(t.getSelectedBlocks());
                        if (!i) return e.createRange(t.focus);
                        if (i.isEmpty) return e.createRange(e.createPositionAt(i, 0));
                        const r = e.createPositionAfter(i);
                        return t.focus.isTouching(r) ? e.createRange(r) : e.createRange(e.createPositionBefore(i));
                    }
                    function Ad(t, e, n, o, i = {}) {
                        if (!t.schema.isObject(e)) throw new c("insertobject-element-not-an-object", t, { object: e });
                        let r;
                        r = n ? (n instanceof sc || n instanceof pc ? n : t.createSelection(n, o)) : t.document.selection;
                        let s = r;
                        i.findOptimalPosition && t.schema.isBlock(e) && (s = t.createSelection(_d(r, t, i.findOptimalPosition)));
                        const a = wa(r.getSelectedBlocks()),
                            l = {};
                        return (
                            a && Object.assign(l, t.schema.getAttributesWithProperty(a, "copyOnReplace", !0)),
                            t.change((n) => {
                                s.isCollapsed || t.deleteContent(s, { doNotAutoparagraph: !0 });
                                let o = e;
                                const r = s.anchor.parent;
                                !t.schema.checkChild(r, e) && t.schema.checkChild(r, "paragraph") && t.schema.checkChild("paragraph", e) && ((o = n.createElement("paragraph")), n.insert(e, o)), t.schema.setAllowedAttributes(o, l, n);
                                const a = t.insertContent(o, s);
                                return (
                                    a.isCollapsed ||
                                        (i.setSelection &&
                                            (function (t, e, n, o) {
                                                const i = t.model;
                                                if ("after" == n) {
                                                    let n = e.nextSibling;
                                                    !(n && i.schema.checkChild(n, "$text")) &&
                                                        i.schema.checkChild(e.parent, "paragraph") &&
                                                        ((n = t.createElement("paragraph")), i.schema.setAllowedAttributes(n, o, t), i.insertContent(n, t.createPositionAfter(e))),
                                                        n && t.setSelection(n, 0);
                                                } else {
                                                    if ("on" != n) throw new c("insertobject-invalid-place-parameter-value", i);
                                                    t.setSelection(e, "on");
                                                }
                                            })(n, e, i.setSelection, l)),
                                    a
                                );
                            })
                        );
                    }
                    const Cd = ' ,.?!:;"-()';
                    function vd(t, e) {
                        const { isForward: n, walker: o, unit: i, schema: r, treatEmojiAsSingleUnit: s } = t,
                            { type: a, item: c, nextPosition: l } = e;
                        if ("text" == a)
                            return "word" === t.unit
                                ? (function (t, e) {
                                      let n = t.position.textNode;
                                      if (n) {
                                          let o = t.position.offset - n.startOffset;
                                          for (; !xd(n.data, o, e) && !Ed(n, o, e); ) {
                                              t.next();
                                              const i = e ? t.position.nodeAfter : t.position.nodeBefore;
                                              if (i && i.is("$text")) {
                                                  const o = i.data.charAt(e ? 0 : i.data.length - 1);
                                                  Cd.includes(o) || (t.next(), (n = t.position.textNode));
                                              }
                                              o = t.position.offset - n.startOffset;
                                          }
                                      }
                                      return t.position;
                                  })(o, n)
                                : (function (t, e, n) {
                                      const o = t.position.textNode;
                                      if (o) {
                                          const i = o.data;
                                          let r = t.position.offset - o.startOffset;
                                          for (; vl(i, r) || ("character" == e && yl(i, r)) || (n && El(i, r)); ) t.next(), (r = t.position.offset - o.startOffset);
                                      }
                                      return t.position;
                                  })(o, i, s);
                        if (a == (n ? "elementStart" : "elementEnd")) {
                            if (r.isSelectable(c)) return Ka._createAt(c, n ? "after" : "before");
                            if (r.checkChild(l, "$text")) return l;
                        } else {
                            if (r.isLimit(c)) return void o.skip(() => !0);
                            if (r.checkChild(l, "$text")) return l;
                        }
                    }
                    function yd(t, e) {
                        const n = t.root,
                            o = Ka._createAt(n, e ? "end" : 0);
                        return e ? new Xa(t, o) : new Xa(o, t);
                    }
                    function xd(t, e, n) {
                        const o = e + (n ? 0 : -1);
                        return Cd.includes(t.charAt(o));
                    }
                    function Ed(t, e, n) {
                        return e === (n ? t.endOffset : 0);
                    }
                    class Dd extends P {
                        constructor() {
                            super(),
                                (this.markers = new Tl()),
                                (this.document = new Il(this)),
                                (this.schema = new Yc()),
                                (this._pendingChanges = []),
                                (this._currentWriter = null),
                                ["insertContent", "insertObject", "deleteContent", "modifySelection", "getSelectedContent", "applyOperation"].forEach((t) => this.decorate(t)),
                                this.on(
                                    "applyOperation",
                                    (t, e) => {
                                        e[0]._validate();
                                    },
                                    { priority: "highest" }
                                ),
                                this.schema.register("$root", { isLimit: !0 }),
                                this.schema.register("$container", { allowIn: ["$root", "$container"] }),
                                this.schema.register("$block", { allowIn: ["$root", "$container"], isBlock: !0 }),
                                this.schema.register("$blockObject", { allowWhere: "$block", isBlock: !0, isObject: !0 }),
                                this.schema.register("$inlineObject", { allowWhere: "$text", allowAttributesOf: "$text", isInline: !0, isObject: !0 }),
                                this.schema.register("$text", { allowIn: "$block", isInline: !0, isContent: !0 }),
                                this.schema.register("$clipboardHolder", { allowContentOf: "$root", allowChildren: "$text", isLimit: !0 }),
                                this.schema.register("$documentFragment", { allowContentOf: "$root", allowChildren: "$text", isLimit: !0 }),
                                this.schema.register("$marker"),
                                this.schema.addChildCheck((t, e) => {
                                    if ("$marker" === e.name) return !0;
                                }),
                                rd(this),
                                this.document.registerPostFixer(Bc);
                        }
                        change(t) {
                            try {
                                return 0 === this._pendingChanges.length ? (this._pendingChanges.push({ batch: new fl(), callback: t }), this._runPendingChanges()[0]) : t(this._currentWriter);
                            } catch (t) {
                                c.rethrowUnexpectedError(t, this);
                            }
                        }
                        enqueueChange(t, e) {
                            try {
                                t ? ("function" == typeof t ? ((e = t), (t = new fl())) : t instanceof fl || (t = new fl(t))) : (t = new fl()),
                                    this._pendingChanges.push({ batch: t, callback: e }),
                                    1 == this._pendingChanges.length && this._runPendingChanges();
                            } catch (t) {
                                c.rethrowUnexpectedError(t, this);
                            }
                        }
                        applyOperation(t) {
                            t._execute();
                        }
                        insertContent(t, e, n) {
                            return (function (t, e, n, o) {
                                return t.change((i) => {
                                    let r;
                                    (r = n ? (n instanceof sc || n instanceof pc ? n : i.createSelection(n, o)) : t.document.selection), r.isCollapsed || t.deleteContent(r, { doNotAutoparagraph: !0 });
                                    const s = new wd(t, i, r.anchor);
                                    let a;
                                    (a = e.is("documentFragment") ? e.getChildren() : [e]), s.handleNodes(a);
                                    const c = s.getSelectionRange();
                                    c && (r instanceof pc ? i.setSelection(c) : r.setTo(c));
                                    const l = s.getAffectedRange() || t.createRange(r.anchor);
                                    return s.destroy(), l;
                                });
                            })(this, t, e, n);
                        }
                        insertObject(t, e, n, o) {
                            return Ad(this, t, e, n, o);
                        }
                        deleteContent(t, e) {
                            ud(this, t, e);
                        }
                        modifySelection(t, e) {
                            !(function (t, e, n = {}) {
                                const o = t.schema,
                                    i = "backward" != n.direction,
                                    r = n.unit ? n.unit : "character",
                                    s = !!n.treatEmojiAsSingleUnit,
                                    a = e.focus,
                                    c = new $a({ boundaries: yd(a, i), singleCharacters: !0, direction: i ? "forward" : "backward" }),
                                    l = { walker: c, schema: o, isForward: i, unit: r, treatEmojiAsSingleUnit: s };
                                let d;
                                for (; (d = c.next()); ) {
                                    if (d.done) return;
                                    const n = vd(l, d.value);
                                    if (n)
                                        return void (e instanceof pc
                                            ? t.change((t) => {
                                                  t.setSelectionFocus(n);
                                              })
                                            : e.setFocus(n));
                                }
                            })(this, t, e);
                        }
                        getSelectedContent(t) {
                            return (function (t, e) {
                                return t.change((t) => {
                                    const n = t.createDocumentFragment(),
                                        o = e.getFirstRange();
                                    if (!o || o.isCollapsed) return n;
                                    const i = o.start.root,
                                        r = o.start.getCommonPath(o.end),
                                        s = i.getNodeByPath(r);
                                    let a;
                                    a = o.start.parent == o.end.parent ? o : t.createRange(t.createPositionAt(s, o.start.path[r.length]), t.createPositionAt(s, o.end.path[r.length] + 1));
                                    const c = a.end.offset - a.start.offset;
                                    for (const e of a.getItems({ shallow: !0 })) e.is("$textProxy") ? t.appendText(e.data, e.getAttributes(), n) : t.append(t.cloneElement(e, !0), n);
                                    if (a != o) {
                                        const e = o._getTransformedByMove(a.start, t.createPositionAt(n, 0), c)[0],
                                            i = t.createRange(t.createPositionAt(n, 0), e.start);
                                        bd(t.createRange(e.end, t.createPositionAt(n, "end")), t), bd(i, t);
                                    }
                                    return n;
                                });
                            })(this, t);
                        }
                        hasContent(t, e = {}) {
                            const n = t instanceof Xa ? t : Xa._createIn(t);
                            if (n.isCollapsed) return !1;
                            const { ignoreWhitespaces: o = !1, ignoreMarkers: i = !1 } = e;
                            if (!i) for (const t of this.markers.getMarkersIntersectingRange(n)) if (t.affectsData) return !0;
                            for (const t of n.getItems())
                                if (this.schema.isContent(t)) {
                                    if (!t.is("$textProxy")) return !0;
                                    if (!o) return !0;
                                    if (-1 !== t.data.search(/\S/)) return !0;
                                }
                            return !1;
                        }
                        createPositionFromPath(t, e, n) {
                            return new Ka(t, e, n);
                        }
                        createPositionAt(t, e) {
                            return Ka._createAt(t, e);
                        }
                        createPositionAfter(t) {
                            return Ka._createAfter(t);
                        }
                        createPositionBefore(t) {
                            return Ka._createBefore(t);
                        }
                        createRange(t, e) {
                            return new Xa(t, e);
                        }
                        createRangeIn(t) {
                            return Xa._createIn(t);
                        }
                        createRangeOn(t) {
                            return Xa._createOn(t);
                        }
                        createSelection(...t) {
                            return new sc(...t);
                        }
                        createBatch(t) {
                            return new fl(t);
                        }
                        createOperationFromJSON(t) {
                            return class {
                                static fromJSON(t, e) {
                                    return Ql[t.__className].fromJSON(t, e);
                                }
                            }.fromJSON(t, this.document);
                        }
                        destroy() {
                            this.document.destroy(), this.stopListening();
                        }
                        _runPendingChanges() {
                            const t = [];
                            this.fire("_beforeChanges");
                            try {
                                for (; this._pendingChanges.length; ) {
                                    const e = this._pendingChanges[0].batch;
                                    this._currentWriter = new Xl(this, e);
                                    const n = this._pendingChanges[0].callback(this._currentWriter);
                                    t.push(n), this.document._handleChangeBlock(this._currentWriter), this._pendingChanges.shift(), (this._currentWriter = null);
                                }
                            } finally {
                                (this._pendingChanges.length = 0), (this._currentWriter = null), this.fire("_afterChanges");
                            }
                            return t;
                        }
                    }
                    class Id extends Aa {
                        constructor(t) {
                            super(), (this.editor = t);
                        }
                        set(t, e, n = {}) {
                            if ("string" == typeof e) {
                                const t = e;
                                e = (e, n) => {
                                    this.editor.execute(t), n();
                                };
                            }
                            super.set(t, e, n);
                        }
                    }
                    class Md {
                        constructor(t = {}) {
                            const e = t.language || (this.constructor.defaultConfig && this.constructor.defaultConfig.language);
                            (this._context = t.context || new Eo({ language: e })), this._context._addEditor(this, !t.context);
                            const n = Array.from(this.constructor.builtinPlugins || []);
                            (this.config = new go(t, this.constructor.defaultConfig)),
                                this.config.define("plugins", n),
                                this.config.define(this._context._getEditorConfig()),
                                (this.plugins = new bo(this, n, this._context.plugins)),
                                (this.locale = this._context.locale),
                                (this.t = this.locale.t),
                                (this._readOnlyLocks = new Set()),
                                (this.commands = new Wc()),
                                this.set("state", "initializing"),
                                this.once("ready", () => (this.state = "ready"), { priority: "high" }),
                                this.once("destroy", () => (this.state = "destroyed"), { priority: "high" }),
                                (this.model = new Dd());
                            const o = new Si();
                            (this.data = new ul(this.model, o)),
                                (this.editing = new Uc(this.model, o)),
                                this.editing.view.document.bind("isReadOnly").to(this),
                                (this.conversion = new gl([this.editing.downcastDispatcher, this.data.downcastDispatcher], this.data.upcastDispatcher)),
                                this.conversion.addAlias("dataDowncast", this.data.downcastDispatcher),
                                this.conversion.addAlias("editingDowncast", this.editing.downcastDispatcher),
                                (this.keystrokes = new Id(this)),
                                this.keystrokes.listenTo(this.editing.view.document);
                        }
                        get isReadOnly() {
                            return this._readOnlyLocks.size > 0;
                        }
                        set isReadOnly(t) {
                            throw new c("editor-isreadonly-has-no-setter");
                        }
                        enableReadOnlyMode(t) {
                            if ("string" != typeof t && "symbol" != typeof t) throw new c("editor-read-only-lock-id-invalid", null, { lockId: t });
                            this._readOnlyLocks.has(t) || (this._readOnlyLocks.add(t), 1 === this._readOnlyLocks.size && this.fire("change:isReadOnly", "isReadOnly", !0, !1));
                        }
                        disableReadOnlyMode(t) {
                            if ("string" != typeof t && "symbol" != typeof t) throw new c("editor-read-only-lock-id-invalid", null, { lockId: t });
                            this._readOnlyLocks.has(t) && (this._readOnlyLocks.delete(t), 0 === this._readOnlyLocks.size && this.fire("change:isReadOnly", "isReadOnly", !1, !0));
                        }
                        initPlugins() {
                            const t = this.config,
                                e = t.get("plugins"),
                                n = t.get("removePlugins") || [],
                                o = t.get("extraPlugins") || [],
                                i = t.get("substitutePlugins") || [];
                            return this.plugins.init(e.concat(o), n, i);
                        }
                        destroy() {
                            let t = Promise.resolve();
                            return (
                                "initializing" == this.state && (t = new Promise((t) => this.once("ready", t))),
                                t
                                    .then(() => {
                                        this.fire("destroy"), this.stopListening(), this.commands.destroy();
                                    })
                                    .then(() => this.plugins.destroy())
                                    .then(() => {
                                        this.model.destroy(), this.data.destroy(), this.editing.destroy(), this.keystrokes.destroy();
                                    })
                                    .then(() => this._context._removeEditor(this))
                            );
                        }
                        execute(...t) {
                            try {
                                return this.commands.execute(...t);
                            } catch (t) {
                                c.rethrowUnexpectedError(t, this);
                            }
                        }
                        focus() {
                            this.editing.view.focus();
                        }
                    }
                    F(Md, B);
                    class Td {
                        constructor(t) {
                            (this.editor = t), (this._components = new Map());
                        }
                        *names() {
                            for (const t of this._components.values()) yield t.originalName;
                        }
                        add(t, e) {
                            this._components.set(Sd(t), { callback: e, originalName: t });
                        }
                        create(t) {
                            if (!this.has(t)) throw new c("componentfactory-item-missing", this, { name: t });
                            return this._components.get(Sd(t)).callback(this.editor.locale);
                        }
                        has(t) {
                            return this._components.has(Sd(t));
                        }
                    }
                    function Sd(t) {
                        return String(t).toLowerCase();
                    }
                    class Nd extends ko {
                        constructor(t = []) {
                            super(t, { idProperty: "viewUid" }),
                                this.on("add", (t, e, n) => {
                                    this._renderViewIntoCollectionParent(e, n);
                                }),
                                this.on("remove", (t, e) => {
                                    e.element && this._parentElement && e.element.remove();
                                }),
                                (this._parentElement = null);
                        }
                        destroy() {
                            this.map((t) => t.destroy());
                        }
                        setParent(t) {
                            this._parentElement = t;
                            for (const t of this) this._renderViewIntoCollectionParent(t);
                        }
                        delegate(...t) {
                            if (!t.length || !t.every((t) => "string" == typeof t)) throw new c("ui-viewcollection-delegate-wrong-events", this);
                            return {
                                to: (e) => {
                                    for (const n of this) for (const o of t) n.delegate(o).to(e);
                                    this.on("add", (n, o) => {
                                        for (const n of t) o.delegate(n).to(e);
                                    }),
                                        this.on("remove", (n, o) => {
                                            for (const n of t) o.stopDelegating(n, e);
                                        });
                                },
                            };
                        }
                        _renderViewIntoCollectionParent(t, e) {
                            t.isRendered || t.render(), t.element && this._parentElement && this._parentElement.insertBefore(t.element, this._parentElement.children[e]);
                        }
                    }
                    class Bd {
                        constructor(t) {
                            Object.assign(this, Ud(Hd(t))), (this._isRendered = !1), (this._revertData = null);
                        }
                        render() {
                            const t = this._renderNode({ intoFragment: !0 });
                            return (this._isRendered = !0), t;
                        }
                        apply(t) {
                            return (this._revertData = { children: [], bindings: [], attributes: {} }), this._renderNode({ node: t, isApplying: !0, revertData: this._revertData }), t;
                        }
                        revert(t) {
                            if (!this._revertData) throw new c("ui-template-revert-not-applied", [this, t]);
                            this._revertTemplateFromNode(t, this._revertData);
                        }
                        *getViews() {
                            yield* (function* t(e) {
                                if (e.children) for (const n of e.children) Kd(n) ? yield n : Qd(n) && (yield* t(n));
                            })(this);
                        }
                        static bind(t, e) {
                            return {
                                to: (n, o) => new zd({ eventNameOrFunction: n, attribute: n, observable: t, emitter: e, callback: o }),
                                if: (n, o, i) => new Ld({ observable: t, emitter: e, attribute: n, valueIfTrue: o, callback: i }),
                            };
                        }
                        static extend(t, e) {
                            if (t._isRendered) throw new c("template-extend-render", [this, t]);
                            $d(t, Ud(Hd(e)));
                        }
                        _renderNode(t) {
                            let e;
                            if (((e = t.node ? this.tag && this.text : this.tag ? this.text : !this.text), e)) throw new c("ui-template-wrong-syntax", this);
                            return this.text ? this._renderText(t) : this._renderElement(t);
                        }
                        _renderElement(t) {
                            let e = t.node;
                            return e || (e = t.node = document.createElementNS(this.ns || "http://www.w3.org/1999/xhtml", this.tag)), this._renderAttributes(t), this._renderElementChildren(t), this._setUpListeners(t), e;
                        }
                        _renderText(t) {
                            let e = t.node;
                            return (
                                e ? (t.revertData.text = e.textContent) : (e = t.node = document.createTextNode("")),
                                Od(this.text) ? this._bindToObservable({ schema: this.text, updater: jd(e), data: t }) : (e.textContent = this.text.join("")),
                                e
                            );
                        }
                        _renderAttributes(t) {
                            let e, n, o, i;
                            if (!this.attributes) return;
                            const r = t.node,
                                s = t.revertData;
                            for (e in this.attributes)
                                if (((o = r.getAttribute(e)), (n = this.attributes[e]), s && (s.attributes[e] = o), (i = D(n[0]) && n[0].ns ? n[0].ns : null), Od(n))) {
                                    const a = i ? n[0].value : n;
                                    s && Jd(e) && a.unshift(o), this._bindToObservable({ schema: a, updater: Fd(r, e, i), data: t });
                                } else
                                    "style" == e && "string" != typeof n[0]
                                        ? this._renderStyleAttribute(n[0], t)
                                        : (s && o && Jd(e) && n.unshift(o),
                                          (n = n
                                              .map((t) => (t && t.value) || t)
                                              .reduce((t, e) => t.concat(e), [])
                                              .reduce(qd, "")),
                                          Yd(n) || r.setAttributeNS(i, e, n));
                        }
                        _renderStyleAttribute(t, e) {
                            const n = e.node;
                            for (const o in t) {
                                const i = t[o];
                                Od(i) ? this._bindToObservable({ schema: [i], updater: Vd(n, o), data: e }) : (n.style[o] = i);
                            }
                        }
                        _renderElementChildren(t) {
                            const e = t.node,
                                n = t.intoFragment ? document.createDocumentFragment() : e,
                                o = t.isApplying;
                            let i = 0;
                            for (const r of this.children)
                                if (Zd(r)) {
                                    if (!o) {
                                        r.setParent(e);
                                        for (const t of r) n.appendChild(t.element);
                                    }
                                } else if (Kd(r)) o || (r.isRendered || r.render(), n.appendChild(r.element));
                                else if (Jr(r)) n.appendChild(r);
                                else if (o) {
                                    const e = { children: [], bindings: [], attributes: {} };
                                    t.revertData.children.push(e), r._renderNode({ node: n.childNodes[i++], isApplying: !0, revertData: e });
                                } else n.appendChild(r.render());
                            t.intoFragment && e.appendChild(n);
                        }
                        _setUpListeners(t) {
                            if (this.eventListeners)
                                for (const e in this.eventListeners) {
                                    const n = this.eventListeners[e].map((n) => {
                                        const [o, i] = e.split("@");
                                        return n.activateDomEventListener(o, i, t);
                                    });
                                    t.revertData && t.revertData.bindings.push(n);
                                }
                        }
                        _bindToObservable({ schema: t, updater: e, data: n }) {
                            const o = n.revertData;
                            Rd(t, e, n);
                            const i = t
                                .filter((t) => !Yd(t))
                                .filter((t) => t.observable)
                                .map((o) => o.activateAttributeListener(t, e, n));
                            o && o.bindings.push(i);
                        }
                        _revertTemplateFromNode(t, e) {
                            for (const t of e.bindings) for (const e of t) e();
                            if (e.text) t.textContent = e.text;
                            else {
                                for (const n in e.attributes) {
                                    const o = e.attributes[n];
                                    null === o ? t.removeAttribute(n) : t.setAttribute(n, o);
                                }
                                for (let n = 0; n < e.children.length; ++n) this._revertTemplateFromNode(t.childNodes[n], e.children[n]);
                            }
                        }
                    }
                    F(Bd, b);
                    class Pd {
                        constructor(t) {
                            Object.assign(this, t);
                        }
                        getValue(t) {
                            const e = this.observable[this.attribute];
                            return this.callback ? this.callback(e, t) : e;
                        }
                        activateAttributeListener(t, e, n) {
                            const o = () => Rd(t, e, n);
                            return (
                                this.emitter.listenTo(this.observable, "change:" + this.attribute, o),
                                () => {
                                    this.emitter.stopListening(this.observable, "change:" + this.attribute, o);
                                }
                            );
                        }
                    }
                    class zd extends Pd {
                        activateDomEventListener(t, e, n) {
                            const o = (t, n) => {
                                (e && !n.target.matches(e)) || ("function" == typeof this.eventNameOrFunction ? this.eventNameOrFunction(n) : this.observable.fire(this.eventNameOrFunction, n));
                            };
                            return (
                                this.emitter.listenTo(n.node, t, o),
                                () => {
                                    this.emitter.stopListening(n.node, t, o);
                                }
                            );
                        }
                    }
                    class Ld extends Pd {
                        getValue(t) {
                            return !Yd(super.getValue(t)) && (this.valueIfTrue || !0);
                        }
                    }
                    function Od(t) {
                        return !!t && (t.value && (t = t.value), Array.isArray(t) ? t.some(Od) : t instanceof Pd);
                    }
                    function Rd(t, e, { node: n }) {
                        let o = (function (t, e) {
                            return t.map((t) => (t instanceof Pd ? t.getValue(e) : t));
                        })(t, n);
                        (o = 1 == t.length && t[0] instanceof Ld ? o[0] : o.reduce(qd, "")), Yd(o) ? e.remove() : e.set(o);
                    }
                    function jd(t) {
                        return {
                            set(e) {
                                t.textContent = e;
                            },
                            remove() {
                                t.textContent = "";
                            },
                        };
                    }
                    function Fd(t, e, n) {
                        return {
                            set(o) {
                                t.setAttributeNS(n, e, o);
                            },
                            remove() {
                                t.removeAttributeNS(n, e);
                            },
                        };
                    }
                    function Vd(t, e) {
                        return {
                            set(n) {
                                t.style[e] = n;
                            },
                            remove() {
                                t.style[e] = null;
                            },
                        };
                    }
                    function Hd(t) {
                        return ho(t, (t) => {
                            if (t && (t instanceof Pd || Qd(t) || Kd(t) || Zd(t))) return t;
                        });
                    }
                    function Ud(t) {
                        if (
                            ("string" == typeof t
                                ? (t = (function (t) {
                                      return { text: [t] };
                                  })(t))
                                : t.text &&
                                  (function (t) {
                                      t.text = wo(t.text);
                                  })(t),
                            t.on &&
                                ((t.eventListeners = (function (t) {
                                    for (const e in t) Wd(t, e);
                                    return t;
                                })(t.on)),
                                delete t.on),
                            !t.text)
                        ) {
                            t.attributes &&
                                (function (t) {
                                    for (const e in t) t[e].value && (t[e].value = wo(t[e].value)), Wd(t, e);
                                })(t.attributes);
                            const e = [];
                            if (t.children)
                                if (Zd(t.children)) e.push(t.children);
                                else for (const n of t.children) Qd(n) || Kd(n) || Jr(n) ? e.push(n) : e.push(new Bd(n));
                            t.children = e;
                        }
                        return t;
                    }
                    function Wd(t, e) {
                        t[e] = wo(t[e]);
                    }
                    function qd(t, e) {
                        return Yd(e) ? t : Yd(t) ? e : `${t} ${e}`;
                    }
                    function Gd(t, e) {
                        for (const n in e) t[n] ? t[n].push(...e[n]) : (t[n] = e[n]);
                    }
                    function $d(t, e) {
                        if (
                            (e.attributes && (t.attributes || (t.attributes = {}), Gd(t.attributes, e.attributes)),
                            e.eventListeners && (t.eventListeners || (t.eventListeners = {}), Gd(t.eventListeners, e.eventListeners)),
                            e.text && t.text.push(...e.text),
                            e.children && e.children.length)
                        ) {
                            if (t.children.length != e.children.length) throw new c("ui-template-extend-children-mismatch", t);
                            let n = 0;
                            for (const o of e.children) $d(t.children[n++], o);
                        }
                    }
                    function Yd(t) {
                        return !t && 0 !== t;
                    }
                    function Kd(t) {
                        return t instanceof eh;
                    }
                    function Qd(t) {
                        return t instanceof Bd;
                    }
                    function Zd(t) {
                        return t instanceof Nd;
                    }
                    function Jd(t) {
                        return "class" == t || "style" == t;
                    }
                    var Xd = n(4793),
                        th = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Xd.Z, th);
                    Xd.Z.locals;
                    class eh {
                        constructor(t) {
                            (this.element = null),
                                (this.isRendered = !1),
                                (this.locale = t),
                                (this.t = t && t.t),
                                (this._viewCollections = new ko()),
                                (this._unboundChildren = this.createCollection()),
                                this._viewCollections.on("add", (e, n) => {
                                    n.locale = t;
                                }),
                                this.decorate("render");
                        }
                        get bindTemplate() {
                            return this._bindTemplate ? this._bindTemplate : (this._bindTemplate = Bd.bind(this, this));
                        }
                        createCollection(t) {
                            const e = new Nd(t);
                            return this._viewCollections.add(e), e;
                        }
                        registerChild(t) {
                            fo(t) || (t = [t]);
                            for (const e of t) this._unboundChildren.add(e);
                        }
                        deregisterChild(t) {
                            fo(t) || (t = [t]);
                            for (const e of t) this._unboundChildren.remove(e);
                        }
                        setTemplate(t) {
                            this.template = new Bd(t);
                        }
                        extendTemplate(t) {
                            Bd.extend(this.template, t);
                        }
                        render() {
                            if (this.isRendered) throw new c("ui-view-render-already-rendered", this);
                            this.template && ((this.element = this.template.render()), this.registerChild(this.template.getViews())), (this.isRendered = !0);
                        }
                        destroy() {
                            this.stopListening(), this._viewCollections.map((t) => t.destroy()), this.template && this.template._revertData && this.template.revert(this.element);
                        }
                    }
                    function nh({ element: t, target: e, positions: n, limiter: o, fitInViewport: i, viewportOffsetConfig: r }) {
                        It(e) && (e = e()), It(o) && (o = o());
                        const s = (function (t) {
                                return t && t.parentNode ? (t.offsetParent === Ao.document.body ? null : t.offsetParent) : null;
                            })(t),
                            a = new Da(t),
                            c = new Da(e);
                        let l;
                        const d =
                                (i &&
                                    (function (t) {
                                        t = Object.assign({ top: 0, bottom: 0, left: 0, right: 0 }, t);
                                        const e = new Da(Ao.window);
                                        return (e.top += t.top), (e.height -= t.top), (e.bottom -= t.bottom), (e.height -= t.bottom), e;
                                    })(r)) ||
                                null,
                            h = { targetRect: c, elementRect: a, positionedElementAncestor: s, viewportRect: d };
                        if (o || i) {
                            const t = o && new Da(o).getVisible();
                            Object.assign(h, { limiterRect: t, viewportRect: d }),
                                (l =
                                    (function (t, e) {
                                        const { elementRect: n } = e,
                                            o = n.getArea(),
                                            i = t.map((t) => new ih(t, e)).filter((t) => !!t.name);
                                        let r = 0,
                                            s = null;
                                        for (const t of i) {
                                            const { limiterIntersectionArea: e, viewportIntersectionArea: n } = t;
                                            if (e === o) return t;
                                            const i = n ** 2 + e ** 2;
                                            i > r && ((r = i), (s = t));
                                        }
                                        return s;
                                    })(n, h) || new ih(n[0], h));
                        } else l = new ih(n[0], h);
                        return l;
                    }
                    function oh(t) {
                        const { scrollX: e, scrollY: n } = Ao.window;
                        return t.clone().moveBy(e, n);
                    }
                    F(eh, ws), F(eh, B);
                    class ih {
                        constructor(t, e) {
                            const n = t(e.targetRect, e.elementRect, e.viewportRect);
                            if (!n) return;
                            const { left: o, top: i, name: r, config: s } = n;
                            (this.name = r), (this.config = s), (this._positioningFunctionCorrdinates = { left: o, top: i }), (this._options = e);
                        }
                        get left() {
                            return this._absoluteRect.left;
                        }
                        get top() {
                            return this._absoluteRect.top;
                        }
                        get limiterIntersectionArea() {
                            const t = this._options.limiterRect;
                            if (t) {
                                const e = this._options.viewportRect;
                                if (!e) return t.getIntersectionArea(this._rect);
                                {
                                    const n = t.getIntersection(e);
                                    if (n) return n.getIntersectionArea(this._rect);
                                }
                            }
                            return 0;
                        }
                        get viewportIntersectionArea() {
                            const t = this._options.viewportRect;
                            return t ? t.getIntersectionArea(this._rect) : 0;
                        }
                        get _rect() {
                            return this._cachedRect || (this._cachedRect = this._options.elementRect.clone().moveTo(this._positioningFunctionCorrdinates.left, this._positioningFunctionCorrdinates.top)), this._cachedRect;
                        }
                        get _absoluteRect() {
                            return (
                                this._cachedAbsoluteRect ||
                                    ((this._cachedAbsoluteRect = oh(this._rect)),
                                    this._options.positionedElementAncestor &&
                                        (function (t, e) {
                                            const n = oh(new Da(e)),
                                                o = xa(e);
                                            let i = 0,
                                                r = 0;
                                            (i -= n.left), (r -= n.top), (i += e.scrollLeft), (r += e.scrollTop), (i -= o.left), (r -= o.top), t.moveBy(i, r);
                                        })(this._cachedAbsoluteRect, this._options.positionedElementAncestor)),
                                this._cachedAbsoluteRect
                            );
                        }
                    }
                    function rh(t) {
                        return (e) => e + t;
                    }
                    var sh = n(8793),
                        ah = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(sh.Z, ah);
                    sh.Z.locals;
                    const ch = rh("px"),
                        lh = Ao.document.body;
                    class dh extends eh {
                        constructor(t) {
                            super(t);
                            const e = this.bindTemplate;
                            this.set("top", 0),
                                this.set("left", 0),
                                this.set("position", "arrow_nw"),
                                this.set("isVisible", !1),
                                this.set("withArrow", !0),
                                this.set("class"),
                                (this.content = this.createCollection()),
                                this.setTemplate({
                                    tag: "div",
                                    attributes: {
                                        class: ["ck", "ck-balloon-panel", e.to("position", (t) => `ck-balloon-panel_${t}`), e.if("isVisible", "ck-balloon-panel_visible"), e.if("withArrow", "ck-balloon-panel_with-arrow"), e.to("class")],
                                        style: { top: e.to("top", ch), left: e.to("left", ch) },
                                    },
                                    children: this.content,
                                });
                        }
                        show() {
                            this.isVisible = !0;
                        }
                        hide() {
                            this.isVisible = !1;
                        }
                        attachTo(t) {
                            this.show();
                            const e = dh.defaultPositions,
                                n = Object.assign(
                                    {},
                                    {
                                        element: this.element,
                                        positions: [
                                            e.southArrowNorth,
                                            e.southArrowNorthMiddleWest,
                                            e.southArrowNorthMiddleEast,
                                            e.southArrowNorthWest,
                                            e.southArrowNorthEast,
                                            e.northArrowSouth,
                                            e.northArrowSouthMiddleWest,
                                            e.northArrowSouthMiddleEast,
                                            e.northArrowSouthWest,
                                            e.northArrowSouthEast,
                                            e.viewportStickyNorth,
                                        ],
                                        limiter: lh,
                                        fitInViewport: !0,
                                    },
                                    t
                                ),
                                o = dh._getOptimalPosition(n),
                                i = parseInt(o.left),
                                r = parseInt(o.top),
                                { name: s, config: a = {} } = o,
                                { withArrow: c = !0 } = a;
                            Object.assign(this, { top: r, left: i, position: s, withArrow: c });
                        }
                        pin(t) {
                            this.unpin(),
                                (this._pinWhenIsVisibleCallback = () => {
                                    this.isVisible ? this._startPinning(t) : this._stopPinning();
                                }),
                                this._startPinning(t),
                                this.listenTo(this, "change:isVisible", this._pinWhenIsVisibleCallback);
                        }
                        unpin() {
                            this._pinWhenIsVisibleCallback && (this._stopPinning(), this.stopListening(this, "change:isVisible", this._pinWhenIsVisibleCallback), (this._pinWhenIsVisibleCallback = null), this.hide());
                        }
                        _startPinning(t) {
                            this.attachTo(t);
                            const e = hh(t.target),
                                n = t.limiter ? hh(t.limiter) : lh;
                            this.listenTo(
                                Ao.document,
                                "scroll",
                                (o, i) => {
                                    const r = i.target,
                                        s = e && r.contains(e),
                                        a = n && r.contains(n);
                                    (!s && !a && e && n) || this.attachTo(t);
                                },
                                { useCapture: !0 }
                            ),
                                this.listenTo(Ao.window, "resize", () => {
                                    this.attachTo(t);
                                });
                        }
                        _stopPinning() {
                            this.stopListening(Ao.document, "scroll"), this.stopListening(Ao.window, "resize");
                        }
                    }
                    function hh(t) {
                        return uo(t) ? t : ya(t) ? t.commonAncestorContainer : "function" == typeof t ? hh(t()) : null;
                    }
                    function uh({ sideOffset: t = dh.arrowSideOffset, heightOffset: e = dh.arrowHeightOffset, stickyVerticalOffset: n = dh.stickyVerticalOffset, config: o } = {}) {
                        return {
                            northWestArrowSouthWest: (e, n) => ({ top: i(e, n), left: e.left - t, name: "arrow_sw", ...(o && { config: o }) }),
                            northWestArrowSouthMiddleWest: (e, n) => ({ top: i(e, n), left: e.left - 0.25 * n.width - t, name: "arrow_smw", ...(o && { config: o }) }),
                            northWestArrowSouth: (t, e) => ({ top: i(t, e), left: t.left - e.width / 2, name: "arrow_s", ...(o && { config: o }) }),
                            northWestArrowSouthMiddleEast: (e, n) => ({ top: i(e, n), left: e.left - 0.75 * n.width + t, name: "arrow_sme", ...(o && { config: o }) }),
                            northWestArrowSouthEast: (e, n) => ({ top: i(e, n), left: e.left - n.width + t, name: "arrow_se", ...(o && { config: o }) }),
                            northArrowSouthWest: (e, n) => ({ top: i(e, n), left: e.left + e.width / 2 - t, name: "arrow_sw", ...(o && { config: o }) }),
                            northArrowSouthMiddleWest: (e, n) => ({ top: i(e, n), left: e.left + e.width / 2 - 0.25 * n.width - t, name: "arrow_smw", ...(o && { config: o }) }),
                            northArrowSouth: (t, e) => ({ top: i(t, e), left: t.left + t.width / 2 - e.width / 2, name: "arrow_s", ...(o && { config: o }) }),
                            northArrowSouthMiddleEast: (e, n) => ({ top: i(e, n), left: e.left + e.width / 2 - 0.75 * n.width + t, name: "arrow_sme", ...(o && { config: o }) }),
                            northArrowSouthEast: (e, n) => ({ top: i(e, n), left: e.left + e.width / 2 - n.width + t, name: "arrow_se", ...(o && { config: o }) }),
                            northEastArrowSouthWest: (e, n) => ({ top: i(e, n), left: e.right - t, name: "arrow_sw", ...(o && { config: o }) }),
                            northEastArrowSouthMiddleWest: (e, n) => ({ top: i(e, n), left: e.right - 0.25 * n.width - t, name: "arrow_smw", ...(o && { config: o }) }),
                            northEastArrowSouth: (t, e) => ({ top: i(t, e), left: t.right - e.width / 2, name: "arrow_s", ...(o && { config: o }) }),
                            northEastArrowSouthMiddleEast: (e, n) => ({ top: i(e, n), left: e.right - 0.75 * n.width + t, name: "arrow_sme", ...(o && { config: o }) }),
                            northEastArrowSouthEast: (e, n) => ({ top: i(e, n), left: e.right - n.width + t, name: "arrow_se", ...(o && { config: o }) }),
                            southWestArrowNorthWest: (e, n) => ({ top: r(e), left: e.left - t, name: "arrow_nw", ...(o && { config: o }) }),
                            southWestArrowNorthMiddleWest: (e, n) => ({ top: r(e), left: e.left - 0.25 * n.width - t, name: "arrow_nmw", ...(o && { config: o }) }),
                            southWestArrowNorth: (t, e) => ({ top: r(t), left: t.left - e.width / 2, name: "arrow_n", ...(o && { config: o }) }),
                            southWestArrowNorthMiddleEast: (e, n) => ({ top: r(e), left: e.left - 0.75 * n.width + t, name: "arrow_nme", ...(o && { config: o }) }),
                            southWestArrowNorthEast: (e, n) => ({ top: r(e), left: e.left - n.width + t, name: "arrow_ne", ...(o && { config: o }) }),
                            southArrowNorthWest: (e, n) => ({ top: r(e), left: e.left + e.width / 2 - t, name: "arrow_nw", ...(o && { config: o }) }),
                            southArrowNorthMiddleWest: (e, n) => ({ top: r(e), left: e.left + e.width / 2 - 0.25 * n.width - t, name: "arrow_nmw", ...(o && { config: o }) }),
                            southArrowNorth: (t, e) => ({ top: r(t), left: t.left + t.width / 2 - e.width / 2, name: "arrow_n", ...(o && { config: o }) }),
                            southArrowNorthMiddleEast: (e, n) => ({ top: r(e), left: e.left + e.width / 2 - 0.75 * n.width + t, name: "arrow_nme", ...(o && { config: o }) }),
                            southArrowNorthEast: (e, n) => ({ top: r(e), left: e.left + e.width / 2 - n.width + t, name: "arrow_ne", ...(o && { config: o }) }),
                            southEastArrowNorthWest: (e, n) => ({ top: r(e), left: e.right - t, name: "arrow_nw", ...(o && { config: o }) }),
                            southEastArrowNorthMiddleWest: (e, n) => ({ top: r(e), left: e.right - 0.25 * n.width - t, name: "arrow_nmw", ...(o && { config: o }) }),
                            southEastArrowNorth: (t, e) => ({ top: r(t), left: t.right - e.width / 2, name: "arrow_n", ...(o && { config: o }) }),
                            southEastArrowNorthMiddleEast: (e, n) => ({ top: r(e), left: e.right - 0.75 * n.width + t, name: "arrow_nme", ...(o && { config: o }) }),
                            southEastArrowNorthEast: (e, n) => ({ top: r(e), left: e.right - n.width + t, name: "arrow_ne", ...(o && { config: o }) }),
                            westArrowEast: (t, n) => ({ top: t.top + t.height / 2 - n.height / 2, left: t.left - n.width - e, name: "arrow_e", ...(o && { config: o }) }),
                            eastArrowWest: (t, n) => ({ top: t.top + t.height / 2 - n.height / 2, left: t.right + e, name: "arrow_w", ...(o && { config: o }) }),
                            viewportStickyNorth: (t, e, i) => (t.getIntersection(i) ? { top: i.top + n, left: t.left + t.width / 2 - e.width / 2, name: "arrowless", config: { withArrow: !1, ...o } } : null),
                        };
                        function i(t, n) {
                            return t.top - n.height - e;
                        }
                        function r(t) {
                            return t.bottom + e;
                        }
                    }
                    (dh.arrowSideOffset = 25), (dh.arrowHeightOffset = 10), (dh.stickyVerticalOffset = 20), (dh._getOptimalPosition = nh), (dh.defaultPositions = uh());
                    var gh = n(3332),
                        mh = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(gh.Z, mh);
                    gh.Z.locals;
                    const ph = "ck-tooltip";
                    class fh {
                        constructor(t) {
                            if ((fh._editors.add(t), fh._instance)) return fh._instance;
                            (fh._instance = this),
                                (this.tooltipTextView = new eh(t.locale)),
                                this.tooltipTextView.set("text", ""),
                                this.tooltipTextView.setTemplate({ tag: "span", attributes: { class: ["ck", "ck-tooltip__text"] }, children: [{ text: this.tooltipTextView.bindTemplate.to("text") }] }),
                                (this.balloonPanelView = new dh(t.locale)),
                                (this.balloonPanelView.class = ph),
                                this.balloonPanelView.content.add(this.tooltipTextView),
                                (this._currentElementWithTooltip = null),
                                (this._currentTooltipPosition = null),
                                (this._pinTooltipDebounced = ca(this._pinTooltip, 600)),
                                this.listenTo(Ao.document, "mouseenter", this._onEnterOrFocus.bind(this), { useCapture: !0 }),
                                this.listenTo(Ao.document, "mouseleave", this._onLeaveOrBlur.bind(this), { useCapture: !0 }),
                                this.listenTo(Ao.document, "focus", this._onEnterOrFocus.bind(this), { useCapture: !0 }),
                                this.listenTo(Ao.document, "blur", this._onLeaveOrBlur.bind(this), { useCapture: !0 }),
                                this.listenTo(Ao.document, "scroll", this._onScroll.bind(this), { useCapture: !0 }),
                                (this._watchdogExcluded = !0);
                        }
                        destroy(t) {
                            fh._editors.delete(t), this.stopListening(t.ui), fh._editors.size || (this._unpinTooltip(), this.balloonPanelView.destroy(), this.stopListening(), (fh._instance = null));
                        }
                        _onEnterOrFocus(t, { target: e }) {
                            const n = kh(e);
                            var o;
                            n &&
                                n !== this._currentElementWithTooltip &&
                                (this._unpinTooltip(), this._pinTooltipDebounced(n, { text: (o = n).dataset.ckeTooltipText, position: o.dataset.ckeTooltipPosition || "s", cssClass: o.dataset.ckeTooltipClass || "" }));
                        }
                        _onLeaveOrBlur(t, { target: e, relatedTarget: n }) {
                            if ("mouseleave" === t.name) {
                                if (!uo(e)) return;
                                if (this._currentElementWithTooltip && e !== this._currentElementWithTooltip) return;
                                const t = kh(e),
                                    o = kh(n);
                                t && t !== o && this._unpinTooltip();
                            } else {
                                if (this._currentElementWithTooltip && e !== this._currentElementWithTooltip) return;
                                this._unpinTooltip();
                            }
                        }
                        _onScroll(t, { target: e }) {
                            this._currentElementWithTooltip && ((e.contains(this.balloonPanelView.element) && e.contains(this._currentElementWithTooltip)) || this._unpinTooltip());
                        }
                        _pinTooltip(t, { text: e, position: n, cssClass: o }) {
                            const i = wa(fh._editors.values()).ui.view.body;
                            i.has(this.balloonPanelView) || i.add(this.balloonPanelView),
                                (this.tooltipTextView.text = e),
                                this.balloonPanelView.pin({ target: t, positions: fh.getPositioningFunctions(n) }),
                                (this.balloonPanelView.class = [ph, o].filter((t) => t).join(" "));
                            for (const t of fh._editors) this.listenTo(t.ui, "update", this._updateTooltipPosition.bind(this), { priority: "low" });
                            (this._currentElementWithTooltip = t), (this._currentTooltipPosition = n);
                        }
                        _unpinTooltip() {
                            this._pinTooltipDebounced.cancel(), this.balloonPanelView.unpin();
                            for (const t of fh._editors) this.stopListening(t.ui, "update");
                            (this._currentElementWithTooltip = null), (this._currentTooltipPosition = null);
                        }
                        _updateTooltipPosition() {
                            ba(this._currentElementWithTooltip) ? this.balloonPanelView.pin({ target: this._currentElementWithTooltip, positions: fh.getPositioningFunctions(this._currentTooltipPosition) }) : this._unpinTooltip();
                        }
                        static getPositioningFunctions(t) {
                            const e = fh.defaultBalloonPositions;
                            return { s: [e.southArrowNorth, e.southArrowNorthEast, e.southArrowNorthWest], n: [e.northArrowSouth], e: [e.eastArrowWest], w: [e.westArrowEast], sw: [e.southArrowNorthEast], se: [e.southArrowNorthWest] }[t];
                        }
                    }
                    function kh(t) {
                        return uo(t) ? t.closest("[data-cke-tooltip-text]:not([data-cke-tooltip-disabled])") : null;
                    }
                    F(fh, ws), (fh.defaultBalloonPositions = uh({ heightOffset: 5, sideOffset: 13 })), (fh._instance = null), (fh._editors = new Set());
                    class bh {
                        constructor(t) {
                            (this.editor = t),
                                (this.componentFactory = new Td(t)),
                                (this.focusTracker = new _a()),
                                (this.tooltipManager = new fh(t)),
                                this.set("viewportOffset", this._readViewportOffsetFromConfig()),
                                (this.isReady = !1),
                                this.once("ready", () => {
                                    this.isReady = !0;
                                }),
                                (this._editableElementsMap = new Map()),
                                (this._focusableToolbarDefinitions = []),
                                this.listenTo(t.editing.view.document, "layoutChanged", () => this.update()),
                                this._initFocusTracking();
                        }
                        get element() {
                            return null;
                        }
                        update() {
                            this.fire("update");
                        }
                        destroy() {
                            this.stopListening(), this.focusTracker.destroy(), this.tooltipManager.destroy(this.editor);
                            for (const t of this._editableElementsMap.values()) t.ckeditorInstance = null;
                            (this._editableElementsMap = new Map()), (this._focusableToolbarDefinitions = []);
                        }
                        setEditableElement(t, e) {
                            this._editableElementsMap.set(t, e), e.ckeditorInstance || (e.ckeditorInstance = this.editor), this.focusTracker.add(e);
                            const n = () => {
                                this.editor.editing.view.getDomRoot(t) || this.editor.keystrokes.listenTo(e);
                            };
                            this.isReady ? n() : this.once("ready", n);
                        }
                        getEditableElement(t = "main") {
                            return this._editableElementsMap.get(t);
                        }
                        getEditableElementsNames() {
                            return this._editableElementsMap.keys();
                        }
                        addToolbar(t, e = {}) {
                            t.isRendered
                                ? (this.focusTracker.add(t.element), this.editor.keystrokes.listenTo(t.element))
                                : t.once("render", () => {
                                      this.focusTracker.add(t.element), this.editor.keystrokes.listenTo(t.element);
                                  }),
                                this._focusableToolbarDefinitions.push({ toolbarView: t, options: e });
                        }
                        get _editableElements() {
                            return console.warn("editor-ui-deprecated-editable-elements: The EditorUI#_editableElements property has been deprecated and will be removed in the near future.", { editorUI: this }), this._editableElementsMap;
                        }
                        _readViewportOffsetFromConfig() {
                            const t = this.editor,
                                e = t.config.get("ui.viewportOffset");
                            if (e) return e;
                            const n = t.config.get("toolbar.viewportTopOffset");
                            return n
                                ? (console.warn(
                                      "editor-ui-deprecated-viewport-offset-config: The `toolbar.vieportTopOffset` configuration option is deprecated. It will be removed from future CKEditor versions. Use `ui.viewportOffset.top` instead."
                                  ),
                                  { top: n })
                                : { top: 0 };
                        }
                        _initFocusTracking() {
                            const t = this.editor,
                                e = t.editing.view;
                            let n, o;
                            t.keystrokes.set("Alt+F10", (t, i) => {
                                const r = this.focusTracker.focusedElement;
                                Array.from(this._editableElementsMap.values()).includes(r) && !Array.from(e.domRoots.values()).includes(r) && (n = r);
                                const s = this._getCurrentFocusedToolbarDefinition();
                                (s && o) || (o = this._getFocusableCandidateToolbarDefinitions(s));
                                for (let t = 0; t < o.length; t++) {
                                    const t = o.shift();
                                    if ((o.push(t), t !== s && this._focusFocusableCandidateToolbar(t))) {
                                        s && s.options.afterBlur && s.options.afterBlur();
                                        break;
                                    }
                                }
                                i();
                            }),
                                t.keystrokes.set("Esc", (e, o) => {
                                    const i = this._getCurrentFocusedToolbarDefinition();
                                    i && (n ? (n.focus(), (n = null)) : t.editing.view.focus(), i.options.afterBlur && i.options.afterBlur(), o());
                                });
                        }
                        _getFocusableCandidateToolbarDefinitions() {
                            const t = [];
                            for (const e of this._focusableToolbarDefinitions) {
                                const { toolbarView: n, options: o } = e;
                                (ba(n.element) || o.beforeFocus) && t.push(e);
                            }
                            return t.sort((t, e) => wh(t) - wh(e)), t;
                        }
                        _getCurrentFocusedToolbarDefinition() {
                            for (const t of this._focusableToolbarDefinitions) if (t.toolbarView.element && t.toolbarView.element.contains(this.focusTracker.focusedElement)) return t;
                            return null;
                        }
                        _focusFocusableCandidateToolbar(t) {
                            const {
                                toolbarView: e,
                                options: { beforeFocus: n },
                            } = t;
                            return n && n(), !!ba(e.element) && (e.focus(), !0);
                        }
                    }
                    function wh(t) {
                        const { toolbarView: e, options: n } = t;
                        let o = 10;
                        return ba(e.element) && o--, n.isContextual && o--, o;
                    }
                    F(bh, B);
                    const _h = {
                            setData(t) {
                                this.data.set(t);
                            },
                            getData(t) {
                                return this.data.get(t);
                            },
                        },
                        Ah = _h;
                    function Ch(t, e) {
                        t instanceof HTMLTextAreaElement && (t.value = e), (t.innerHTML = e);
                    }
                    const vh = {
                        updateSourceElement(t = this.data.get()) {
                            if (!this.sourceElement) throw new c("editor-missing-sourceelement", this);
                            const e = this.config.get("updateSourceElementOnDestroy"),
                                n = this.sourceElement instanceof HTMLTextAreaElement;
                            Ch(this.sourceElement, e || n ? t : "");
                        },
                    };
                    class yh extends Do {
                        static get pluginName() {
                            return "PendingActions";
                        }
                        init() {
                            this.set("hasAny", !1), (this._actions = new ko({ idProperty: "_id" })), this._actions.delegate("add", "remove").to(this);
                        }
                        add(t) {
                            if ("string" != typeof t) throw new c("pendingactions-add-invalid-message", this);
                            const e = Object.create(B);
                            return e.set("message", t), this._actions.add(e), (this.hasAny = !0), e;
                        }
                        remove(t) {
                            this._actions.remove(t), (this.hasAny = !!this._actions.length);
                        }
                        get first() {
                            return this._actions.get(0);
                        }
                        [Symbol.iterator]() {
                            return this._actions[Symbol.iterator]();
                        }
                    }
                    const xh = '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle cx="9.5" cy="4.5" r="1.5"/><circle cx="9.5" cy="10.5" r="1.5"/><circle cx="9.5" cy="16.5" r="1.5"/></svg>',
                        Eh = {
                            cancel:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m11.591 10.177 4.243 4.242a1 1 0 0 1-1.415 1.415l-4.242-4.243-4.243 4.243a1 1 0 0 1-1.414-1.415l4.243-4.242L4.52 5.934A1 1 0 0 1 5.934 4.52l4.243 4.243 4.242-4.243a1 1 0 1 1 1.415 1.414l-4.243 4.243z"/></svg>',
                            caption:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M2 16h9a1 1 0 0 1 0 2H2a1 1 0 0 1 0-2z"/><path d="M17 1a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h14zm0 1.5H3a.5.5 0 0 0-.492.41L2.5 3v9a.5.5 0 0 0 .41.492L3 12.5h14a.5.5 0 0 0 .492-.41L17.5 12V3a.5.5 0 0 0-.41-.492L17 2.5z" fill-opacity=".6"/></svg>',
                            check:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M6.972 16.615a.997.997 0 0 1-.744-.292l-4.596-4.596a1 1 0 1 1 1.414-1.414l3.926 3.926 9.937-9.937a1 1 0 0 1 1.414 1.415L7.717 16.323a.997.997 0 0 1-.745.292z"/></svg>',
                            cog:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m11.333 2 .19 2.263a5.899 5.899 0 0 1 1.458.604L14.714 3.4 16.6 5.286l-1.467 1.733c.263.452.468.942.605 1.46L18 8.666v2.666l-2.263.19a5.899 5.899 0 0 1-.604 1.458l1.467 1.733-1.886 1.886-1.733-1.467a5.899 5.899 0 0 1-1.46.605L11.334 18H8.667l-.19-2.263a5.899 5.899 0 0 1-1.458-.604L5.286 16.6 3.4 14.714l1.467-1.733a5.899 5.899 0 0 1-.604-1.458L2 11.333V8.667l2.262-.189a5.899 5.899 0 0 1 .605-1.459L3.4 5.286 5.286 3.4l1.733 1.467a5.899 5.899 0 0 1 1.46-.605L8.666 2h2.666zM10 6.267a3.733 3.733 0 1 0 0 7.466 3.733 3.733 0 0 0 0-7.466z"/></svg>',
                            eraser:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m8.636 9.531-2.758 3.94a.5.5 0 0 0 .122.696l3.224 2.284h1.314l2.636-3.736L8.636 9.53zm.288 8.451L5.14 15.396a2 2 0 0 1-.491-2.786l6.673-9.53a2 2 0 0 1 2.785-.49l3.742 2.62a2 2 0 0 1 .491 2.785l-7.269 10.053-2.147-.066z"/><path d="M4 18h5.523v-1H4zm-2 0h1v-1H2z"/></svg>',
                            lowVision:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M5.085 6.22 2.943 4.078a.75.75 0 1 1 1.06-1.06l2.592 2.59A11.094 11.094 0 0 1 10 5.068c4.738 0 8.578 3.101 8.578 5.083 0 1.197-1.401 2.803-3.555 3.887l1.714 1.713a.75.75 0 0 1-.09 1.138.488.488 0 0 1-.15.084.75.75 0 0 1-.821-.16L6.17 7.304c-.258.11-.51.233-.757.365l6.239 6.24-.006.005.78.78c-.388.094-.78.166-1.174.215l-1.11-1.11h.011L4.55 8.197a7.2 7.2 0 0 0-.665.514l-.112.098 4.897 4.897-.005.006 1.276 1.276a10.164 10.164 0 0 1-1.477-.117l-.479-.479-.009.009-4.863-4.863-.022.031a2.563 2.563 0 0 0-.124.2c-.043.077-.08.158-.108.241a.534.534 0 0 0-.028.133.29.29 0 0 0 .008.072.927.927 0 0 0 .082.226c.067.133.145.26.234.379l3.242 3.365.025.01.59.623c-3.265-.918-5.59-3.155-5.59-4.668 0-1.194 1.448-2.838 3.663-3.93zm7.07.531a4.632 4.632 0 0 1 1.108 5.992l.345.344.046-.018a9.313 9.313 0 0 0 2-1.112c.256-.187.5-.392.727-.613.137-.134.27-.277.392-.431.072-.091.141-.185.203-.286.057-.093.107-.19.148-.292a.72.72 0 0 0 .036-.12.29.29 0 0 0 .008-.072.492.492 0 0 0-.028-.133.999.999 0 0 0-.036-.096 2.165 2.165 0 0 0-.071-.145 2.917 2.917 0 0 0-.125-.2 3.592 3.592 0 0 0-.263-.335 5.444 5.444 0 0 0-.53-.523 7.955 7.955 0 0 0-1.054-.768 9.766 9.766 0 0 0-1.879-.891c-.337-.118-.68-.219-1.027-.301zm-2.85.21-.069.002a.508.508 0 0 0-.254.097.496.496 0 0 0-.104.679.498.498 0 0 0 .326.199l.045.005c.091.003.181.003.272.012a2.45 2.45 0 0 1 2.017 1.513c.024.061.043.125.069.185a.494.494 0 0 0 .45.287h.008a.496.496 0 0 0 .35-.158.482.482 0 0 0 .13-.335.638.638 0 0 0-.048-.219 3.379 3.379 0 0 0-.36-.723 3.438 3.438 0 0 0-2.791-1.543l-.028-.001h-.013z"/></svg>',
                            image:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M6.91 10.54c.26-.23.64-.21.88.03l3.36 3.14 2.23-2.06a.64.64 0 0 1 .87 0l2.52 2.97V4.5H3.2v10.12l3.71-4.08zm10.27-7.51c.6 0 1.09.47 1.09 1.05v11.84c0 .59-.49 1.06-1.09 1.06H2.79c-.6 0-1.09-.47-1.09-1.06V4.08c0-.58.49-1.05 1.1-1.05h14.38zm-5.22 5.56a1.96 1.96 0 1 1 3.4-1.96 1.96 1.96 0 0 1-3.4 1.96z"/></svg>',
                            alignBottom:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m9.239 13.938-2.88-1.663a.75.75 0 0 1 .75-1.3L9 12.067V4.75a.75.75 0 1 1 1.5 0v7.318l1.89-1.093a.75.75 0 0 1 .75 1.3l-2.879 1.663a.752.752 0 0 1-.511.187.752.752 0 0 1-.511-.187zM4.25 17a.75.75 0 1 1 0-1.5h10.5a.75.75 0 0 1 0 1.5H4.25z"/></svg>',
                            alignMiddle:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M9.75 11.875a.752.752 0 0 1 .508.184l2.883 1.666a.75.75 0 0 1-.659 1.344l-.091-.044-1.892-1.093.001 4.318a.75.75 0 1 1-1.5 0v-4.317l-1.89 1.092a.75.75 0 0 1-.75-1.3l2.879-1.663a.752.752 0 0 1 .51-.187zM15.25 9a.75.75 0 1 1 0 1.5H4.75a.75.75 0 1 1 0-1.5h10.5zM9.75.375a.75.75 0 0 1 .75.75v4.318l1.89-1.093.092-.045a.75.75 0 0 1 .659 1.344l-2.883 1.667a.752.752 0 0 1-.508.184.752.752 0 0 1-.511-.187L6.359 5.65a.75.75 0 0 1 .75-1.299L9 5.442V1.125a.75.75 0 0 1 .75-.75z"/></svg>',
                            alignTop:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m10.261 7.062 2.88 1.663a.75.75 0 0 1-.75 1.3L10.5 8.933v7.317a.75.75 0 1 1-1.5 0V8.932l-1.89 1.093a.75.75 0 0 1-.75-1.3l2.879-1.663a.752.752 0 0 1 .511-.187.752.752 0 0 1 .511.187zM15.25 4a.75.75 0 1 1 0 1.5H4.75a.75.75 0 0 1 0-1.5h10.5z"/></svg>',
                            alignLeft:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M2 3.75c0 .414.336.75.75.75h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm0 8c0 .414.336.75.75.75h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm0 4c0 .414.336.75.75.75h9.929a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm0-8c0 .414.336.75.75.75h9.929a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75z"/></svg>',
                            alignCenter:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M2 3.75c0 .414.336.75.75.75h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm0 8c0 .414.336.75.75.75h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm2.286 4c0 .414.336.75.75.75h9.928a.75.75 0 1 0 0-1.5H5.036a.75.75 0 0 0-.75.75zm0-8c0 .414.336.75.75.75h9.928a.75.75 0 1 0 0-1.5H5.036a.75.75 0 0 0-.75.75z"/></svg>',
                            alignRight:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M18 3.75a.75.75 0 0 1-.75.75H2.75a.75.75 0 1 1 0-1.5h14.5a.75.75 0 0 1 .75.75zm0 8a.75.75 0 0 1-.75.75H2.75a.75.75 0 1 1 0-1.5h14.5a.75.75 0 0 1 .75.75zm0 4a.75.75 0 0 1-.75.75H7.321a.75.75 0 1 1 0-1.5h9.929a.75.75 0 0 1 .75.75zm0-8a.75.75 0 0 1-.75.75H7.321a.75.75 0 1 1 0-1.5h9.929a.75.75 0 0 1 .75.75z"/></svg>',
                            alignJustify:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M2 3.75c0 .414.336.75.75.75h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm0 8c0 .414.336.75.75.75h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm0 4c0 .414.336.75.75.75h9.929a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm0-8c0 .414.336.75.75.75h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75z"/></svg>',
                            objectLeft:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path opacity=".5" d="M2 3h16v1.5H2zm11.5 9H18v1.5h-4.5zm0-3H18v1.5h-4.5zm0-3H18v1.5h-4.5zM2 15h16v1.5H2z"/><path d="M12.003 7v5.5a1 1 0 0 1-1 1H2.996a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h8.007a1 1 0 0 1 1 1zm-1.506.5H3.5V12h6.997V7.5z"/></svg>',
                            objectCenter:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path opacity=".5" d="M2 3h16v1.5H2zm0 12h16v1.5H2z"/><path d="M15.003 7v5.5a1 1 0 0 1-1 1H5.996a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h8.007a1 1 0 0 1 1 1zm-1.506.5H6.5V12h6.997V7.5z"/></svg>',
                            objectRight:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path opacity=".5" d="M2 3h16v1.5H2zm0 12h16v1.5H2zm0-9h5v1.5H2zm0 3h5v1.5H2zm0 3h5v1.5H2z"/><path d="M18.003 7v5.5a1 1 0 0 1-1 1H8.996a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h8.007a1 1 0 0 1 1 1zm-1.506.5H9.5V12h6.997V7.5z"/></svg>',
                            objectFullWidth:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path opacity=".5" d="M2 3h16v1.5H2zm0 12h16v1.5H2z"/><path d="M18 7v5.5a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1zm-1.505.5H3.504V12h12.991V7.5z"/></svg>',
                            objectInline:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path opacity=".5" d="M2 3h16v1.5H2zm11.5 9H18v1.5h-4.5zM2 15h16v1.5H2z"/><path d="M12.003 7v5.5a1 1 0 0 1-1 1H2.996a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h8.007a1 1 0 0 1 1 1zm-1.506.5H3.5V12h6.997V7.5z"/></svg>',
                            objectBlockLeft:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path opacity=".5" d="M2 3h16v1.5H2zm0 12h16v1.5H2z"/><path d="M12.003 7v5.5a1 1 0 0 1-1 1H2.996a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h8.007a1 1 0 0 1 1 1zm-1.506.5H3.5V12h6.997V7.5z"/></svg>',
                            objectBlockRight:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path opacity=".5" d="M2 3h16v1.5H2zm0 12h16v1.5H2z"/><path d="M18.003 7v5.5a1 1 0 0 1-1 1H8.996a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h8.007a1 1 0 0 1 1 1zm-1.506.5H9.5V12h6.997V7.5z"/></svg>',
                            objectSizeFull:
                                '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M2.5 17v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zM1 15.5v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm0-2v1h-1v-1h1zm-19 0v1H0v-1h1zM14.5 2v1h-1V2h1zm2 0v1h-1V2h1zm2 0v1h-1V2h1zm-8 0v1h-1V2h1zm-2 0v1h-1V2h1zm-2 0v1h-1V2h1zm-2 0v1h-1V2h1zm8 0v1h-1V2h1zm-10 0v1h-1V2h1z"/><path d="M18.095 2H1.905C.853 2 0 2.895 0 4v12c0 1.105.853 2 1.905 2h16.19C19.147 18 20 17.105 20 16V4c0-1.105-.853-2-1.905-2zm0 1.5c.263 0 .476.224.476.5v12c0 .276-.213.5-.476.5H1.905a.489.489 0 0 1-.476-.5V4c0-.276.213-.5.476-.5h16.19z"/></svg>',
                            objectSizeLarge:
                                '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M2.5 17v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zM1 15.5v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm0-2v1h-1v-1h1zm-19 0v1H0v-1h1zM14.5 2v1h-1V2h1zm2 0v1h-1V2h1zm2 0v1h-1V2h1zm-8 0v1h-1V2h1zm-2 0v1h-1V2h1zm-2 0v1h-1V2h1zm-2 0v1h-1V2h1zm8 0v1h-1V2h1zm-10 0v1h-1V2h1z"/><path d="M13 6H2a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2zm0 1.5a.5.5 0 0 1 .5.5v8a.5.5 0 0 1-.5.5H2a.5.5 0 0 1-.5-.5V8a.5.5 0 0 1 .5-.5h11z"/></svg>',
                            objectSizeSmall:
                                '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M2.5 17v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zM1 15.5v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm0-2v1h-1v-1h1zm-19 0v1H0v-1h1zM14.5 2v1h-1V2h1zm2 0v1h-1V2h1zm2 0v1h-1V2h1zm-8 0v1h-1V2h1zm-2 0v1h-1V2h1zm-2 0v1h-1V2h1zm-2 0v1h-1V2h1zm8 0v1h-1V2h1zm-10 0v1h-1V2h1z"/><path d="M7 10H2a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h5a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2zm0 1.5a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5H2a.5.5 0 0 1-.5-.5v-4a.5.5 0 0 1 .5-.5h5z"/></svg>',
                            objectSizeMedium:
                                '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M2.5 17v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1zM1 15.5v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm-19-2v1H0v-1h1zm19 0v1h-1v-1h1zm0-2v1h-1v-1h1zm-19 0v1H0v-1h1zM14.5 2v1h-1V2h1zm2 0v1h-1V2h1zm2 0v1h-1V2h1zm-8 0v1h-1V2h1zm-2 0v1h-1V2h1zm-2 0v1h-1V2h1zm-2 0v1h-1V2h1zm8 0v1h-1V2h1zm-10 0v1h-1V2h1z"/><path d="M10 8H2a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2zm0 1.5a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-.5.5H2a.5.5 0 0 1-.5-.5v-6a.5.5 0 0 1 .5-.5h8z"/></svg>',
                            pencil:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m7.3 17.37-.061.088a1.518 1.518 0 0 1-.934.535l-4.178.663-.806-4.153a1.495 1.495 0 0 1 .187-1.058l.056-.086L8.77 2.639c.958-1.351 2.803-1.076 4.296-.03 1.497 1.047 2.387 2.693 1.433 4.055L7.3 17.37zM9.14 4.728l-5.545 8.346 3.277 2.294 5.544-8.346L9.14 4.728zM6.07 16.512l-3.276-2.295.53 2.73 2.746-.435zM9.994 3.506 13.271 5.8c.316-.452-.16-1.333-1.065-1.966-.905-.634-1.895-.78-2.212-.328zM8 18.5 9.375 17H19v1.5H8z"/></svg>',
                            pilcrow: '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M6.999 2H15a1 1 0 0 1 0 2h-1.004v13a1 1 0 1 1-2 0V4H8.999v13a1 1 0 1 1-2 0v-7A4 4 0 0 1 3 6a4 4 0 0 1 3.999-4z"/></svg>',
                            quote:
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M3 10.423a6.5 6.5 0 0 1 6.056-6.408l.038.67C6.448 5.423 5.354 7.663 5.22 10H9c.552 0 .5.432.5.986v4.511c0 .554-.448.503-1 .503h-5c-.552 0-.5-.449-.5-1.003v-4.574zm8 0a6.5 6.5 0 0 1 6.056-6.408l.038.67c-2.646.739-3.74 2.979-3.873 5.315H17c.552 0 .5.432.5.986v4.511c0 .554-.448.503-1 .503h-5c-.552 0-.5-.449-.5-1.003v-4.574z"/></svg>',
                            threeVerticalDots: xh,
                        };
                    function Dh({ emitter: t, activator: e, callback: n, contextElements: o }) {
                        t.listenTo(document, "mousedown", (t, i) => {
                            if (!e()) return;
                            const r = "function" == typeof i.composedPath ? i.composedPath() : [];
                            for (const t of o) if (t.contains(i.target) || r.includes(t)) return;
                            n();
                        });
                    }
                    function Ih(t) {
                        t.set("_isCssTransitionsDisabled", !1),
                            (t.disableCssTransitions = () => {
                                t._isCssTransitionsDisabled = !0;
                            }),
                            (t.enableCssTransitions = () => {
                                t._isCssTransitionsDisabled = !1;
                            }),
                            t.extendTemplate({ attributes: { class: [t.bindTemplate.if("_isCssTransitionsDisabled", "ck-transitions-disabled")] } });
                    }
                    function Mh({ view: t }) {
                        t.listenTo(
                            t.element,
                            "submit",
                            (e, n) => {
                                n.preventDefault(), t.fire("submit");
                            },
                            { useCapture: !0 }
                        );
                    }
                    class Th extends Nd {
                        constructor(t, e = []) {
                            super(e), (this.locale = t);
                        }
                        attachToDom() {
                            this._bodyCollectionContainer = new Bd({ tag: "div", attributes: { class: ["ck", "ck-reset_all", "ck-body", "ck-rounded-corners"], dir: this.locale.uiLanguageDirection }, children: this }).render();
                            let t = document.querySelector(".ck-body-wrapper");
                            t || ((t = fa(document, "div", { class: "ck-body-wrapper" })), document.body.appendChild(t)), t.appendChild(this._bodyCollectionContainer);
                        }
                        detachFromDom() {
                            super.destroy(), this._bodyCollectionContainer && this._bodyCollectionContainer.remove();
                            const t = document.querySelector(".ck-body-wrapper");
                            t && 0 == t.childElementCount && t.remove();
                        }
                    }
                    var Sh = n(6574),
                        Nh = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Sh.Z, Nh);
                    Sh.Z.locals;
                    class Bh extends eh {
                        constructor() {
                            super();
                            const t = this.bindTemplate;
                            this.set("content", ""),
                                this.set("viewBox", "0 0 20 20"),
                                this.set("fillColor", ""),
                                this.setTemplate({ tag: "svg", ns: "http://www.w3.org/2000/svg", attributes: { class: ["ck", "ck-icon"], viewBox: t.to("viewBox") } });
                        }
                        render() {
                            super.render(),
                                this._updateXMLContent(),
                                this._colorFillPaths(),
                                this.on("change:content", () => {
                                    this._updateXMLContent(), this._colorFillPaths();
                                }),
                                this.on("change:fillColor", () => {
                                    this._colorFillPaths();
                                });
                        }
                        _updateXMLContent() {
                            if (this.content) {
                                const t = new DOMParser().parseFromString(this.content.trim(), "image/svg+xml").querySelector("svg"),
                                    e = t.getAttribute("viewBox");
                                for (e && (this.viewBox = e); this.element.firstChild; ) this.element.removeChild(this.element.firstChild);
                                for (; t.childNodes.length > 0; ) this.element.appendChild(t.childNodes[0]);
                            }
                        }
                        _colorFillPaths() {
                            this.fillColor &&
                                this.element.querySelectorAll(".ck-icon__fill").forEach((t) => {
                                    t.style.fill = this.fillColor;
                                });
                        }
                    }
                    var Ph = n(4906),
                        zh = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Ph.Z, zh);
                    Ph.Z.locals;
                    class Lh extends eh {
                        constructor(t) {
                            super(t);
                            const e = this.bindTemplate,
                                n = r();
                            this.set("class"),
                                this.set("labelStyle"),
                                this.set("icon"),
                                this.set("isEnabled", !0),
                                this.set("isOn", !1),
                                this.set("isVisible", !0),
                                this.set("isToggleable", !1),
                                this.set("keystroke"),
                                this.set("label"),
                                this.set("tabindex", -1),
                                this.set("tooltip"),
                                this.set("tooltipPosition", "s"),
                                this.set("type", "button"),
                                this.set("withText", !1),
                                this.set("withKeystroke", !1),
                                (this.children = this.createCollection()),
                                (this.labelView = this._createLabelView(n)),
                                (this.iconView = new Bh()),
                                this.iconView.extendTemplate({ attributes: { class: "ck-button__icon" } }),
                                (this.keystrokeView = this._createKeystrokeView()),
                                this.bind("_tooltipString").to(this, "tooltip", this, "label", this, "keystroke", this._getTooltipString.bind(this));
                            const o = {
                                tag: "button",
                                attributes: {
                                    class: [
                                        "ck",
                                        "ck-button",
                                        e.to("class"),
                                        e.if("isEnabled", "ck-disabled", (t) => !t),
                                        e.if("isVisible", "ck-hidden", (t) => !t),
                                        e.to("isOn", (t) => (t ? "ck-on" : "ck-off")),
                                        e.if("withText", "ck-button_with-text"),
                                        e.if("withKeystroke", "ck-button_with-keystroke"),
                                    ],
                                    type: e.to("type", (t) => t || "button"),
                                    tabindex: e.to("tabindex"),
                                    "aria-labelledby": `ck-editor__aria-label_${n}`,
                                    "aria-disabled": e.if("isEnabled", !0, (t) => !t),
                                    "aria-pressed": e.to("isOn", (t) => !!this.isToggleable && String(!!t)),
                                    "data-cke-tooltip-text": e.to("_tooltipString"),
                                    "data-cke-tooltip-position": e.to("tooltipPosition"),
                                },
                                children: this.children,
                                on: {
                                    click: e.to((t) => {
                                        this.isEnabled ? this.fire("execute") : t.preventDefault();
                                    }),
                                },
                            };
                            lr.isSafari &&
                                (o.on.mousedown = e.to((t) => {
                                    this.focus(), t.preventDefault();
                                })),
                                this.setTemplate(o);
                        }
                        render() {
                            super.render(),
                                this.icon && (this.iconView.bind("content").to(this, "icon"), this.children.add(this.iconView)),
                                this.children.add(this.labelView),
                                this.withKeystroke && this.keystroke && this.children.add(this.keystrokeView);
                        }
                        focus() {
                            this.element.focus();
                        }
                        _createLabelView(t) {
                            const e = new eh(),
                                n = this.bindTemplate;
                            return e.setTemplate({ tag: "span", attributes: { class: ["ck", "ck-button__label"], style: n.to("labelStyle"), id: `ck-editor__aria-label_${t}` }, children: [{ text: this.bindTemplate.to("label") }] }), e;
                        }
                        _createKeystrokeView() {
                            const t = new eh();
                            return t.setTemplate({ tag: "span", attributes: { class: ["ck", "ck-button__keystroke"] }, children: [{ text: this.bindTemplate.to("keystroke", (t) => kr(t)) }] }), t;
                        }
                        _getTooltipString(t, e, n) {
                            return t ? ("string" == typeof t ? t : (n && (n = kr(n)), t instanceof Function ? t(e, n) : `${e}${n ? ` (${n})` : ""}`)) : "";
                        }
                    }
                    var Oh = n(5332),
                        Rh = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Oh.Z, Rh);
                    Oh.Z.locals;
                    class jh extends Lh {
                        constructor(t) {
                            super(t), (this.isToggleable = !0), (this.toggleSwitchView = this._createToggleView()), this.extendTemplate({ attributes: { class: "ck-switchbutton" } });
                        }
                        render() {
                            super.render(), this.children.add(this.toggleSwitchView);
                        }
                        _createToggleView() {
                            const t = new eh();
                            return t.setTemplate({ tag: "span", attributes: { class: ["ck", "ck-button__toggle"] }, children: [{ tag: "span", attributes: { class: ["ck", "ck-button__toggle__inner"] } }] }), t;
                        }
                    }
                    var Fh = n(6781),
                        Vh = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Fh.Z, Vh);
                    Fh.Z.locals;
                    const Hh =
                        '<svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg"><path d="M.941 4.523a.75.75 0 1 1 1.06-1.06l3.006 3.005 3.005-3.005a.75.75 0 1 1 1.06 1.06l-3.549 3.55a.75.75 0 0 1-1.168-.136L.941 4.523z"/></svg>';
                    class Uh extends Lh {
                        constructor(t) {
                            super(t),
                                (this.arrowView = this._createArrowView()),
                                this.extendTemplate({ attributes: { "aria-haspopup": !0, "aria-expanded": this.bindTemplate.to("isOn", (t) => String(t)) } }),
                                this.delegate("execute").to(this, "open");
                        }
                        render() {
                            super.render(), this.children.add(this.arrowView);
                        }
                        _createArrowView() {
                            const t = new Bh();
                            return (t.content = Hh), t.extendTemplate({ attributes: { class: "ck-dropdown__arrow" } }), t;
                        }
                    }
                    var Wh = n(7686),
                        qh = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Wh.Z, qh);
                    Wh.Z.locals;
                    class Gh extends eh {
                        constructor(t) {
                            super(t);
                            const e = this.bindTemplate;
                            this.set("class"),
                                this.set("icon"),
                                this.set("isEnabled", !0),
                                this.set("isOn", !1),
                                this.set("isToggleable", !1),
                                this.set("isVisible", !0),
                                this.set("keystroke"),
                                this.set("label"),
                                this.set("tabindex", -1),
                                this.set("tooltip"),
                                this.set("tooltipPosition", "s"),
                                this.set("type", "button"),
                                this.set("withText", !1),
                                (this.children = this.createCollection()),
                                (this.actionView = this._createActionView()),
                                (this.arrowView = this._createArrowView()),
                                (this.keystrokes = new Aa()),
                                (this.focusTracker = new _a()),
                                this.setTemplate({
                                    tag: "div",
                                    attributes: { class: ["ck", "ck-splitbutton", e.to("class"), e.if("isVisible", "ck-hidden", (t) => !t), this.arrowView.bindTemplate.if("isOn", "ck-splitbutton_open")] },
                                    children: this.children,
                                });
                        }
                        render() {
                            super.render(),
                                this.children.add(this.actionView),
                                this.children.add(this.arrowView),
                                this.focusTracker.add(this.actionView.element),
                                this.focusTracker.add(this.arrowView.element),
                                this.keystrokes.listenTo(this.element),
                                this.keystrokes.set("arrowright", (t, e) => {
                                    this.focusTracker.focusedElement === this.actionView.element && (this.arrowView.focus(), e());
                                }),
                                this.keystrokes.set("arrowleft", (t, e) => {
                                    this.focusTracker.focusedElement === this.arrowView.element && (this.actionView.focus(), e());
                                });
                        }
                        destroy() {
                            super.destroy(), this.focusTracker.destroy(), this.keystrokes.destroy();
                        }
                        focus() {
                            this.actionView.focus();
                        }
                        _createActionView() {
                            const t = new Lh();
                            return (
                                t.bind("icon", "isEnabled", "isOn", "isToggleable", "keystroke", "label", "tabindex", "tooltip", "tooltipPosition", "type", "withText").to(this),
                                t.extendTemplate({ attributes: { class: "ck-splitbutton__action" } }),
                                t.delegate("execute").to(this),
                                t
                            );
                        }
                        _createArrowView() {
                            const t = new Lh(),
                                e = t.bindTemplate;
                            return (
                                (t.icon = Hh),
                                t.extendTemplate({ attributes: { class: ["ck-splitbutton__arrow"], "data-cke-tooltip-disabled": e.to("isOn"), "aria-haspopup": !0, "aria-expanded": e.to("isOn", (t) => String(t)) } }),
                                t.bind("isEnabled").to(this),
                                t.bind("label").to(this),
                                t.bind("tooltip").to(this),
                                t.delegate("execute").to(this, "open"),
                                t
                            );
                        }
                    }
                    class $h extends eh {
                        constructor(t) {
                            super(t);
                            const e = this.bindTemplate;
                            this.set("isVisible", !1),
                                this.set("position", "se"),
                                (this.children = this.createCollection()),
                                this.setTemplate({
                                    tag: "div",
                                    attributes: { class: ["ck", "ck-reset", "ck-dropdown__panel", e.to("position", (t) => `ck-dropdown__panel_${t}`), e.if("isVisible", "ck-dropdown__panel-visible")] },
                                    children: this.children,
                                    on: { selectstart: e.to((t) => t.preventDefault()) },
                                });
                        }
                        focus() {
                            this.children.length && ("function" == typeof this.children.first.focus ? this.children.first.focus() : l("ui-dropdown-panel-focus-child-missing-focus", { childView: this.children.first, dropdownPanel: this }));
                        }
                        focusLast() {
                            if (this.children.length) {
                                const t = this.children.last;
                                "function" == typeof t.focusLast ? t.focusLast() : t.focus();
                            }
                        }
                    }
                    var Yh = n(5485),
                        Kh = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Yh.Z, Kh);
                    Yh.Z.locals;
                    class Qh extends eh {
                        constructor(t, e, n) {
                            super(t);
                            const o = this.bindTemplate;
                            (this.buttonView = e),
                                (this.panelView = n),
                                this.set("isOpen", !1),
                                this.set("isEnabled", !0),
                                this.set("class"),
                                this.set("id"),
                                this.set("panelPosition", "auto"),
                                (this.keystrokes = new Aa()),
                                this.setTemplate({
                                    tag: "div",
                                    attributes: { class: ["ck", "ck-dropdown", o.to("class"), o.if("isEnabled", "ck-disabled", (t) => !t)], id: o.to("id"), "aria-describedby": o.to("ariaDescribedById") },
                                    children: [e, n],
                                }),
                                e.extendTemplate({ attributes: { class: ["ck-dropdown__button"], "data-cke-tooltip-disabled": o.to("isOpen") } });
                        }
                        render() {
                            super.render(),
                                this.listenTo(this.buttonView, "open", () => {
                                    this.isOpen = !this.isOpen;
                                }),
                                this.panelView.bind("isVisible").to(this, "isOpen"),
                                this.on("change:isOpen", () => {
                                    this.isOpen
                                        ? ("auto" === this.panelPosition
                                              ? (this.panelView.position = Qh._getOptimalPosition({ element: this.panelView.element, target: this.buttonView.element, fitInViewport: !0, positions: this._panelPositions }).name)
                                              : (this.panelView.position = this.panelPosition),
                                          this.panelView.focus())
                                        : this.focus();
                                }),
                                this.keystrokes.listenTo(this.element);
                            const t = (t, e) => {
                                this.isOpen && ((this.isOpen = !1), e());
                            };
                            this.keystrokes.set("arrowdown", (t, e) => {
                                this.buttonView.isEnabled && !this.isOpen && ((this.isOpen = !0), e());
                            }),
                                this.keystrokes.set("arrowright", (t, e) => {
                                    this.isOpen && e();
                                }),
                                this.keystrokes.set("arrowleft", t),
                                this.keystrokes.set("esc", t);
                        }
                        focus() {
                            this.buttonView.focus();
                        }
                        get _panelPositions() {
                            const { south: t, north: e, southEast: n, southWest: o, northEast: i, northWest: r, southMiddleEast: s, southMiddleWest: a, northMiddleEast: c, northMiddleWest: l } = Qh.defaultPanelPositions;
                            return "rtl" !== this.locale.uiLanguageDirection ? [n, o, s, a, t, i, r, c, l, e] : [o, n, a, s, t, r, i, l, c, e];
                        }
                    }
                    (Qh.defaultPanelPositions = {
                        south: (t, e) => ({ top: t.bottom, left: t.left - (e.width - t.width) / 2, name: "s" }),
                        southEast: (t) => ({ top: t.bottom, left: t.left, name: "se" }),
                        southWest: (t, e) => ({ top: t.bottom, left: t.left - e.width + t.width, name: "sw" }),
                        southMiddleEast: (t, e) => ({ top: t.bottom, left: t.left - (e.width - t.width) / 4, name: "sme" }),
                        southMiddleWest: (t, e) => ({ top: t.bottom, left: t.left - (3 * (e.width - t.width)) / 4, name: "smw" }),
                        north: (t, e) => ({ top: t.top - e.height, left: t.left - (e.width - t.width) / 2, name: "n" }),
                        northEast: (t, e) => ({ top: t.top - e.height, left: t.left, name: "ne" }),
                        northWest: (t, e) => ({ top: t.top - e.height, left: t.left - e.width + t.width, name: "nw" }),
                        northMiddleEast: (t, e) => ({ top: t.top - e.height, left: t.left - (e.width - t.width) / 4, name: "nme" }),
                        northMiddleWest: (t, e) => ({ top: t.top - e.height, left: t.left - (3 * (e.width - t.width)) / 4, name: "nmw" }),
                    }),
                        (Qh._getOptimalPosition = nh);
                    class Zh {
                        constructor(t) {
                            if ((Object.assign(this, t), t.actions && t.keystrokeHandler))
                                for (const e in t.actions) {
                                    let n = t.actions[e];
                                    "string" == typeof n && (n = [n]);
                                    for (const o of n)
                                        t.keystrokeHandler.set(o, (t, n) => {
                                            this[e](), n();
                                        });
                                }
                        }
                        get first() {
                            return this.focusables.find(Jh) || null;
                        }
                        get last() {
                            return this.focusables.filter(Jh).slice(-1)[0] || null;
                        }
                        get next() {
                            return this._getFocusableItem(1);
                        }
                        get previous() {
                            return this._getFocusableItem(-1);
                        }
                        get current() {
                            let t = null;
                            return null === this.focusTracker.focusedElement
                                ? null
                                : (this.focusables.find((e, n) => {
                                      const o = e.element === this.focusTracker.focusedElement;
                                      return o && (t = n), o;
                                  }),
                                  t);
                        }
                        focusFirst() {
                            this._focus(this.first);
                        }
                        focusLast() {
                            this._focus(this.last);
                        }
                        focusNext() {
                            this._focus(this.next);
                        }
                        focusPrevious() {
                            this._focus(this.previous);
                        }
                        _focus(t) {
                            t && t.focus();
                        }
                        _getFocusableItem(t) {
                            const e = this.current,
                                n = this.focusables.length;
                            if (!n) return null;
                            if (null === e) return this[1 === t ? "first" : "last"];
                            let o = (e + n + t) % n;
                            do {
                                const e = this.focusables.get(o);
                                if (Jh(e)) return e;
                                o = (o + n + t) % n;
                            } while (o !== e);
                            return null;
                        }
                    }
                    function Jh(t) {
                        return !(!t.focus || !ba(t.element));
                    }
                    class Xh extends eh {
                        constructor(t) {
                            super(t), this.setTemplate({ tag: "span", attributes: { class: ["ck", "ck-toolbar__separator"] } });
                        }
                    }
                    class tu extends eh {
                        constructor(t) {
                            super(t), this.setTemplate({ tag: "span", attributes: { class: ["ck", "ck-toolbar__line-break"] } });
                        }
                    }
                    function eu(t) {
                        return Array.isArray(t) ? { items: t, removeItems: [] } : t ? Object.assign({ items: [], removeItems: [] }, t) : { items: [], removeItems: [] };
                    }
                    var nu = n(5542),
                        ou = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(nu.Z, ou);
                    nu.Z.locals;
                    class iu extends eh {
                        constructor(t, e) {
                            super(t);
                            const n = this.bindTemplate,
                                o = this.t;
                            (this.options = e || {}),
                                this.set("ariaLabel", o("Editor toolbar")),
                                this.set("maxWidth", "auto"),
                                (this.items = this.createCollection()),
                                (this.focusTracker = new _a()),
                                (this.keystrokes = new Aa()),
                                this.set("class"),
                                this.set("isCompact", !1),
                                (this.itemsView = new ru(t)),
                                (this.children = this.createCollection()),
                                this.children.add(this.itemsView),
                                (this.focusables = this.createCollection());
                            const i = "rtl" === t.uiLanguageDirection;
                            this._focusCycler = new Zh({
                                focusables: this.focusables,
                                focusTracker: this.focusTracker,
                                keystrokeHandler: this.keystrokes,
                                actions: { focusPrevious: [i ? "arrowright" : "arrowleft", "arrowup"], focusNext: [i ? "arrowleft" : "arrowright", "arrowdown"] },
                            });
                            const r = ["ck", "ck-toolbar", n.to("class"), n.if("isCompact", "ck-toolbar_compact")];
                            var s;
                            this.options.shouldGroupWhenFull && this.options.isFloating && r.push("ck-toolbar_floating"),
                                this.setTemplate({
                                    tag: "div",
                                    attributes: { class: r, role: "toolbar", "aria-label": n.to("ariaLabel"), style: { maxWidth: n.to("maxWidth") } },
                                    children: this.children,
                                    on: {
                                        mousedown:
                                            ((s = this),
                                            s.bindTemplate.to((t) => {
                                                t.target === s.element && t.preventDefault();
                                            })),
                                    },
                                }),
                                (this._behavior = this.options.shouldGroupWhenFull ? new au(this) : new su(this));
                        }
                        render() {
                            super.render();
                            for (const t of this.items) this.focusTracker.add(t.element);
                            this.items.on("add", (t, e) => {
                                this.focusTracker.add(e.element);
                            }),
                                this.items.on("remove", (t, e) => {
                                    this.focusTracker.remove(e.element);
                                }),
                                this.keystrokes.listenTo(this.element),
                                this._behavior.render(this);
                        }
                        destroy() {
                            return this._behavior.destroy(), this.focusTracker.destroy(), this.keystrokes.destroy(), super.destroy();
                        }
                        focus() {
                            this._focusCycler.focusFirst();
                        }
                        focusLast() {
                            this._focusCycler.focusLast();
                        }
                        fillFromConfig(t, e) {
                            const n = eu(t),
                                o = n.items.filter(
                                    (t, o, i) =>
                                        "|" === t ||
                                        (-1 === n.removeItems.indexOf(t) &&
                                            ("-" === t ? !this.options.shouldGroupWhenFull || (l("toolbarview-line-break-ignored-when-grouping-items", i), !1) : !!e.has(t) || (l("toolbarview-item-unavailable", { name: t }), !1)))
                                ),
                                i = this._cleanSeparators(o).map((t) => ("|" === t ? new Xh() : "-" === t ? new tu() : e.create(t)));
                            this.items.addMany(i);
                        }
                        _cleanSeparators(t) {
                            const e = (t) => "-" !== t && "|" !== t,
                                n = t.length,
                                o = t.findIndex(e),
                                i = n - t.slice().reverse().findIndex(e);
                            return t.slice(o, i).filter((t, n, o) => {
                                if (e(t)) return !0;
                                return !(n > 0 && o[n - 1] === t);
                            });
                        }
                    }
                    class ru extends eh {
                        constructor(t) {
                            super(t), (this.children = this.createCollection()), this.setTemplate({ tag: "div", attributes: { class: ["ck", "ck-toolbar__items"] }, children: this.children });
                        }
                    }
                    class su {
                        constructor(t) {
                            const e = t.bindTemplate;
                            t.set("isVertical", !1),
                                t.itemsView.children.bindTo(t.items).using((t) => t),
                                t.focusables.bindTo(t.items).using((t) => t),
                                t.extendTemplate({ attributes: { class: [e.if("isVertical", "ck-toolbar_vertical")] } });
                        }
                        render() {}
                        destroy() {}
                    }
                    class au {
                        constructor(t) {
                            (this.view = t),
                                (this.viewChildren = t.children),
                                (this.viewFocusables = t.focusables),
                                (this.viewItemsView = t.itemsView),
                                (this.viewFocusTracker = t.focusTracker),
                                (this.viewLocale = t.locale),
                                (this.ungroupedItems = t.createCollection()),
                                (this.groupedItems = t.createCollection()),
                                (this.groupedItemsDropdown = this._createGroupedItemsDropdown()),
                                (this.resizeObserver = null),
                                (this.cachedPadding = null),
                                (this.shouldUpdateGroupingOnNextResize = !1),
                                t.itemsView.children.bindTo(this.ungroupedItems).using((t) => t),
                                this.ungroupedItems.on("add", this._updateFocusCycleableItems.bind(this)),
                                this.ungroupedItems.on("remove", this._updateFocusCycleableItems.bind(this)),
                                t.children.on("add", this._updateFocusCycleableItems.bind(this)),
                                t.children.on("remove", this._updateFocusCycleableItems.bind(this)),
                                t.items.on("change", (t, e) => {
                                    const n = e.index;
                                    for (const t of e.removed) n >= this.ungroupedItems.length ? this.groupedItems.remove(t) : this.ungroupedItems.remove(t);
                                    for (let t = n; t < n + e.added.length; t++) {
                                        const o = e.added[t - n];
                                        t > this.ungroupedItems.length ? this.groupedItems.add(o, t - this.ungroupedItems.length) : this.ungroupedItems.add(o, t);
                                    }
                                    this._updateGrouping();
                                }),
                                t.extendTemplate({ attributes: { class: ["ck-toolbar_grouping"] } });
                        }
                        render(t) {
                            (this.viewElement = t.element), this._enableGroupingOnResize(), this._enableGroupingOnMaxWidthChange(t);
                        }
                        destroy() {
                            this.groupedItemsDropdown.destroy(), this.resizeObserver.destroy();
                        }
                        _updateGrouping() {
                            if (!this.viewElement.ownerDocument.body.contains(this.viewElement)) return;
                            if (!ba(this.viewElement)) return void (this.shouldUpdateGroupingOnNextResize = !0);
                            const t = this.groupedItems.length;
                            let e;
                            for (; this._areItemsOverflowing; ) this._groupLastItem(), (e = !0);
                            if (!e && this.groupedItems.length) {
                                for (; this.groupedItems.length && !this._areItemsOverflowing; ) this._ungroupFirstItem();
                                this._areItemsOverflowing && this._groupLastItem();
                            }
                            this.groupedItems.length !== t && this.view.fire("groupedItemsUpdate");
                        }
                        get _areItemsOverflowing() {
                            if (!this.ungroupedItems.length) return !1;
                            const t = this.viewElement,
                                e = this.viewLocale.uiLanguageDirection,
                                n = new Da(t.lastChild),
                                o = new Da(t);
                            if (!this.cachedPadding) {
                                const n = Ao.window.getComputedStyle(t),
                                    o = "ltr" === e ? "paddingRight" : "paddingLeft";
                                this.cachedPadding = Number.parseInt(n[o]);
                            }
                            return "ltr" === e ? n.right > o.right - this.cachedPadding : n.left < o.left + this.cachedPadding;
                        }
                        _enableGroupingOnResize() {
                            let t;
                            (this.resizeObserver = new ka(this.viewElement, (e) => {
                                (t && t === e.contentRect.width && !this.shouldUpdateGroupingOnNextResize) || ((this.shouldUpdateGroupingOnNextResize = !1), this._updateGrouping(), (t = e.contentRect.width));
                            })),
                                this._updateGrouping();
                        }
                        _enableGroupingOnMaxWidthChange(t) {
                            t.on("change:maxWidth", () => {
                                this._updateGrouping();
                            });
                        }
                        _groupLastItem() {
                            this.groupedItems.length || (this.viewChildren.add(new Xh()), this.viewChildren.add(this.groupedItemsDropdown), this.viewFocusTracker.add(this.groupedItemsDropdown.element)),
                                this.groupedItems.add(this.ungroupedItems.remove(this.ungroupedItems.last), 0);
                        }
                        _ungroupFirstItem() {
                            this.ungroupedItems.add(this.groupedItems.remove(this.groupedItems.first)),
                                this.groupedItems.length || (this.viewChildren.remove(this.groupedItemsDropdown), this.viewChildren.remove(this.viewChildren.last), this.viewFocusTracker.remove(this.groupedItemsDropdown.element));
                        }
                        _createGroupedItemsDropdown() {
                            const t = this.viewLocale,
                                e = t.t,
                                n = ku(t);
                            return (
                                (n.class = "ck-toolbar__grouped-dropdown"),
                                (n.panelPosition = "ltr" === t.uiLanguageDirection ? "sw" : "se"),
                                bu(n, []),
                                n.buttonView.set({ label: e("Show more items"), tooltip: !0, tooltipPosition: "rtl" === t.uiLanguageDirection ? "se" : "sw", icon: xh }),
                                n.toolbarView.items.bindTo(this.groupedItems).using((t) => t),
                                n
                            );
                        }
                        _updateFocusCycleableItems() {
                            this.viewFocusables.clear(),
                                this.ungroupedItems.map((t) => {
                                    this.viewFocusables.add(t);
                                }),
                                this.groupedItems.length && this.viewFocusables.add(this.groupedItemsDropdown);
                        }
                    }
                    var cu = n(1046),
                        lu = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(cu.Z, lu);
                    cu.Z.locals;
                    class du extends eh {
                        constructor() {
                            super(),
                                (this.items = this.createCollection()),
                                (this.focusTracker = new _a()),
                                (this.keystrokes = new Aa()),
                                (this._focusCycler = new Zh({ focusables: this.items, focusTracker: this.focusTracker, keystrokeHandler: this.keystrokes, actions: { focusPrevious: "arrowup", focusNext: "arrowdown" } })),
                                this.setTemplate({ tag: "ul", attributes: { class: ["ck", "ck-reset", "ck-list"] }, children: this.items });
                        }
                        render() {
                            super.render();
                            for (const t of this.items) this.focusTracker.add(t.element);
                            this.items.on("add", (t, e) => {
                                this.focusTracker.add(e.element);
                            }),
                                this.items.on("remove", (t, e) => {
                                    this.focusTracker.remove(e.element);
                                }),
                                this.keystrokes.listenTo(this.element);
                        }
                        destroy() {
                            super.destroy(), this.focusTracker.destroy(), this.keystrokes.destroy();
                        }
                        focus() {
                            this._focusCycler.focusFirst();
                        }
                        focusLast() {
                            this._focusCycler.focusLast();
                        }
                    }
                    class hu extends eh {
                        constructor(t) {
                            super(t);
                            const e = this.bindTemplate;
                            this.set("isVisible", !0),
                                (this.children = this.createCollection()),
                                this.setTemplate({ tag: "li", attributes: { class: ["ck", "ck-list__item", e.if("isVisible", "ck-hidden", (t) => !t)] }, children: this.children });
                        }
                        focus() {
                            this.children.first.focus();
                        }
                    }
                    class uu extends eh {
                        constructor(t) {
                            super(t), this.setTemplate({ tag: "li", attributes: { class: ["ck", "ck-list__separator"] } });
                        }
                    }
                    var gu = n(7339),
                        mu = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(gu.Z, mu);
                    gu.Z.locals;
                    var pu = n(3949),
                        fu = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(pu.Z, fu);
                    pu.Z.locals;
                    function ku(t, e = Uh) {
                        const n = new e(t),
                            o = new $h(t),
                            i = new Qh(t, n, o);
                        return (
                            n.bind("isEnabled").to(i),
                            n instanceof Uh ? n.bind("isOn").to(i, "isOpen") : n.arrowView.bind("isOn").to(i, "isOpen"),
                            (function (t) {
                                (function (t) {
                                    t.on("render", () => {
                                        Dh({
                                            emitter: t,
                                            activator: () => t.isOpen,
                                            callback: () => {
                                                t.isOpen = !1;
                                            },
                                            contextElements: [t.element],
                                        });
                                    });
                                })(t),
                                    (function (t) {
                                        t.on("execute", (e) => {
                                            e.source instanceof jh || (t.isOpen = !1);
                                        });
                                    })(t),
                                    (function (t) {
                                        t.keystrokes.set("arrowdown", (e, n) => {
                                            t.isOpen && (t.panelView.focus(), n());
                                        }),
                                            t.keystrokes.set("arrowup", (e, n) => {
                                                t.isOpen && (t.panelView.focusLast(), n());
                                            });
                                    })(t);
                            })(i),
                            i
                        );
                    }
                    function bu(t, e, n = {}) {
                        const o = t.locale,
                            i = o.t,
                            r = (t.toolbarView = new iu(o));
                        r.set("ariaLabel", i("Dropdown toolbar")),
                            t.extendTemplate({ attributes: { class: ["ck-toolbar-dropdown"] } }),
                            e.map((t) => r.items.add(t)),
                            n.enableActiveItemFocusOnDropdownOpen && _u(t, () => r.items.find((t) => t.isOn)),
                            t.panelView.children.add(r),
                            r.items.delegate("execute").to(t);
                    }
                    function wu(t, e) {
                        const n = t.locale,
                            o = (t.listView = new du(n));
                        o.items.bindTo(e).using(({ type: t, model: e }) => {
                            if ("separator" === t) return new uu(n);
                            if ("button" === t || "switchbutton" === t) {
                                const o = new hu(n);
                                let i;
                                return (i = "button" === t ? new Lh(n) : new jh(n)), i.bind(...Object.keys(e)).to(e), i.delegate("execute").to(o), o.children.add(i), o;
                            }
                        }),
                            t.panelView.children.add(o),
                            o.items.delegate("execute").to(t),
                            _u(t, () => o.items.find((t) => t instanceof hu && t.children.first.isOn));
                    }
                    function _u(t, e) {
                        t.on(
                            "change:isOpen",
                            () => {
                                if (!t.isOpen) return;
                                const n = e();
                                n && ("function" == typeof n.focus ? n.focus() : l("ui-dropdown-focus-child-on-open-child-missing-focus", { view: n }));
                            },
                            { priority: "low" }
                        );
                    }
                    var Au = n(9688),
                        Cu = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Au.Z, Cu);
                    Au.Z.locals;
                    class vu extends eh {
                        constructor(t) {
                            super(t), (this.body = new Th(t));
                        }
                        render() {
                            super.render(), this.body.attachToDom();
                        }
                        destroy() {
                            return this.body.detachFromDom(), super.destroy();
                        }
                    }
                    var yu = n(3662),
                        xu = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(yu.Z, xu);
                    yu.Z.locals;
                    class Eu extends eh {
                        constructor(t) {
                            super(t), this.set("text"), this.set("for"), (this.id = `ck-editor__label_${r()}`);
                            const e = this.bindTemplate;
                            this.setTemplate({ tag: "label", attributes: { class: ["ck", "ck-label"], id: this.id, for: e.to("for") }, children: [{ text: e.to("text") }] });
                        }
                    }
                    class Du extends vu {
                        constructor(t) {
                            super(t),
                                (this.top = this.createCollection()),
                                (this.main = this.createCollection()),
                                (this._voiceLabelView = this._createVoiceLabel()),
                                this.setTemplate({
                                    tag: "div",
                                    attributes: { class: ["ck", "ck-reset", "ck-editor", "ck-rounded-corners"], role: "application", dir: t.uiLanguageDirection, lang: t.uiLanguage, "aria-labelledby": this._voiceLabelView.id },
                                    children: [
                                        this._voiceLabelView,
                                        { tag: "div", attributes: { class: ["ck", "ck-editor__top", "ck-reset_all"], role: "presentation" }, children: this.top },
                                        { tag: "div", attributes: { class: ["ck", "ck-editor__main"], role: "presentation" }, children: this.main },
                                    ],
                                });
                        }
                        _createVoiceLabel() {
                            const t = this.t,
                                e = new Eu();
                            return (e.text = t("Rich Text Editor")), e.extendTemplate({ attributes: { class: "ck-voice-label" } }), e;
                        }
                    }
                    class Iu extends eh {
                        constructor(t, e, n) {
                            super(t),
                                this.setTemplate({ tag: "div", attributes: { class: ["ck", "ck-content", "ck-editor__editable", "ck-rounded-corners"], lang: t.contentLanguage, dir: t.contentLanguageDirection } }),
                                (this.name = null),
                                this.set("isFocused", !1),
                                (this._editableElement = n),
                                (this._hasExternalElement = !!this._editableElement),
                                (this._editingView = e);
                        }
                        render() {
                            super.render(),
                                this._hasExternalElement ? this.template.apply((this.element = this._editableElement)) : (this._editableElement = this.element),
                                this.on("change:isFocused", () => this._updateIsFocusedClasses()),
                                this._updateIsFocusedClasses();
                        }
                        destroy() {
                            this._hasExternalElement && this.template.revert(this._editableElement), super.destroy();
                        }
                        _updateIsFocusedClasses() {
                            const t = this._editingView;
                            function e(e) {
                                t.change((n) => {
                                    const o = t.document.getRoot(e.name);
                                    n.addClass(e.isFocused ? "ck-focused" : "ck-blurred", o), n.removeClass(e.isFocused ? "ck-blurred" : "ck-focused", o);
                                });
                            }
                            t.isRenderingInProgress
                                ? (function n(o) {
                                      t.once("change:isRenderingInProgress", (t, i, r) => {
                                          r ? n(o) : e(o);
                                      });
                                  })(this)
                                : e(this);
                        }
                    }
                    class Mu extends Iu {
                        constructor(t, e, n, o = {}) {
                            super(t, e, n);
                            const i = t.t;
                            this.extendTemplate({ attributes: { role: "textbox", class: "ck-editor__editable_inline" } }), (this._generateLabel = o.label || (() => i("Editor editing area: %0", this.name)));
                        }
                        render() {
                            super.render();
                            const t = this._editingView;
                            t.change((e) => {
                                const n = t.document.getRoot(this.name);
                                e.setAttribute("aria-label", this._generateLabel(this), n);
                            });
                        }
                    }
                    var Tu = n(8847),
                        Su = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Tu.Z, Su);
                    Tu.Z.locals;
                    var Nu = n(4879),
                        Bu = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Nu.Z, Bu);
                    Nu.Z.locals;
                    class Pu extends eh {
                        constructor(t) {
                            super(t),
                                this.set("value"),
                                this.set("id"),
                                this.set("placeholder"),
                                this.set("isReadOnly", !1),
                                this.set("hasError", !1),
                                this.set("ariaDescribedById"),
                                (this.focusTracker = new _a()),
                                this.bind("isFocused").to(this.focusTracker),
                                this.set("isEmpty", !0),
                                this.set("inputMode", "text");
                            const e = this.bindTemplate;
                            this.setTemplate({
                                tag: "input",
                                attributes: {
                                    class: ["ck", "ck-input", e.if("isFocused", "ck-input_focused"), e.if("isEmpty", "ck-input-text_empty"), e.if("hasError", "ck-error")],
                                    id: e.to("id"),
                                    placeholder: e.to("placeholder"),
                                    readonly: e.to("isReadOnly"),
                                    inputmode: e.to("inputMode"),
                                    "aria-invalid": e.if("hasError", !0),
                                    "aria-describedby": e.to("ariaDescribedById"),
                                },
                                on: {
                                    input: e.to((...t) => {
                                        this.fire("input", ...t), this._updateIsEmpty();
                                    }),
                                    change: e.to(this._updateIsEmpty.bind(this)),
                                },
                            });
                        }
                        render() {
                            super.render(),
                                this.focusTracker.add(this.element),
                                this._setDomElementValue(this.value),
                                this._updateIsEmpty(),
                                this.on("change:value", (t, e, n) => {
                                    this._setDomElementValue(n), this._updateIsEmpty();
                                });
                        }
                        destroy() {
                            super.destroy(), this.focusTracker.destroy();
                        }
                        select() {
                            this.element.select();
                        }
                        focus() {
                            this.element.focus();
                        }
                        _updateIsEmpty() {
                            this.isEmpty = !this.element.value;
                        }
                        _setDomElementValue(t) {
                            this.element.value = t || 0 === t ? t : "";
                        }
                    }
                    class zu extends Pu {
                        constructor(t) {
                            super(t), this.extendTemplate({ attributes: { type: "text", class: ["ck-input-text"] } });
                        }
                    }
                    var Lu = n(2577),
                        Ou = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Lu.Z, Ou);
                    Lu.Z.locals;
                    class Ru extends eh {
                        constructor(t, e) {
                            super(t);
                            const n = `ck-labeled-field-view-${r()}`,
                                o = `ck-labeled-field-view-status-${r()}`;
                            (this.fieldView = e(this, n, o)),
                                this.set("label"),
                                this.set("isEnabled", !0),
                                this.set("isEmpty", !0),
                                this.set("isFocused", !1),
                                this.set("errorText", null),
                                this.set("infoText", null),
                                this.set("class"),
                                this.set("placeholder"),
                                (this.labelView = this._createLabelView(n)),
                                (this.statusView = this._createStatusView(o)),
                                this.bind("_statusText").to(this, "errorText", this, "infoText", (t, e) => t || e);
                            const i = this.bindTemplate;
                            this.setTemplate({
                                tag: "div",
                                attributes: {
                                    class: [
                                        "ck",
                                        "ck-labeled-field-view",
                                        i.to("class"),
                                        i.if("isEnabled", "ck-disabled", (t) => !t),
                                        i.if("isEmpty", "ck-labeled-field-view_empty"),
                                        i.if("isFocused", "ck-labeled-field-view_focused"),
                                        i.if("placeholder", "ck-labeled-field-view_placeholder"),
                                        i.if("errorText", "ck-error"),
                                    ],
                                },
                                children: [{ tag: "div", attributes: { class: ["ck", "ck-labeled-field-view__input-wrapper"] }, children: [this.fieldView, this.labelView] }, this.statusView],
                            });
                        }
                        _createLabelView(t) {
                            const e = new Eu(this.locale);
                            return (e.for = t), e.bind("text").to(this, "label"), e;
                        }
                        _createStatusView(t) {
                            const e = new eh(this.locale),
                                n = this.bindTemplate;
                            return (
                                e.setTemplate({
                                    tag: "div",
                                    attributes: {
                                        class: ["ck", "ck-labeled-field-view__status", n.if("errorText", "ck-labeled-field-view__status_error"), n.if("_statusText", "ck-hidden", (t) => !t)],
                                        id: t,
                                        role: n.if("errorText", "alert"),
                                    },
                                    children: [{ text: n.to("_statusText") }],
                                }),
                                e
                            );
                        }
                        focus() {
                            this.fieldView.focus();
                        }
                    }
                    function ju(t, e, n) {
                        const o = new zu(t.locale);
                        return (
                            o.set({ id: e, ariaDescribedById: n }),
                            o.bind("isReadOnly").to(t, "isEnabled", (t) => !t),
                            o.bind("hasError").to(t, "errorText", (t) => !!t),
                            o.on("input", () => {
                                t.errorText = null;
                            }),
                            t.bind("isEmpty", "isFocused", "placeholder").to(o),
                            o
                        );
                    }
                    class Fu extends Do {
                        static get pluginName() {
                            return "Notification";
                        }
                        init() {
                            this.on(
                                "show:warning",
                                (t, e) => {
                                    window.alert(e.message);
                                },
                                { priority: "lowest" }
                            );
                        }
                        showSuccess(t, e = {}) {
                            this._showNotification({ message: t, type: "success", namespace: e.namespace, title: e.title });
                        }
                        showInfo(t, e = {}) {
                            this._showNotification({ message: t, type: "info", namespace: e.namespace, title: e.title });
                        }
                        showWarning(t, e = {}) {
                            this._showNotification({ message: t, type: "warning", namespace: e.namespace, title: e.title });
                        }
                        _showNotification(t) {
                            const e = `show:${t.type}` + (t.namespace ? `:${t.namespace}` : "");
                            this.fire(e, { message: t.message, type: t.type, title: t.title || "" });
                        }
                    }
                    class Vu {
                        constructor(t, e) {
                            e && Gs(this, e), t && this.set(t);
                        }
                    }
                    F(Vu, B);
                    var Hu = n(4650),
                        Uu = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Hu.Z, Uu);
                    Hu.Z.locals;
                    var Wu = n(7676),
                        qu = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Wu.Z, qu);
                    Wu.Z.locals;
                    const Gu = rh("px");
                    class $u extends V {
                        static get pluginName() {
                            return "ContextualBalloon";
                        }
                        constructor(t) {
                            super(t),
                                (this.positionLimiter = () => {
                                    const t = this.editor.editing.view,
                                        e = t.document.selection.editableElement;
                                    return e ? t.domConverter.mapViewToDom(e.root) : null;
                                }),
                                this.set("visibleView", null),
                                (this.view = new dh(t.locale)),
                                t.ui.view.body.add(this.view),
                                t.ui.focusTracker.add(this.view.element),
                                (this._viewToStack = new Map()),
                                (this._idToStack = new Map()),
                                this.set("_numberOfStacks", 0),
                                this.set("_singleViewMode", !1),
                                (this._rotatorView = this._createRotatorView()),
                                (this._fakePanelsView = this._createFakePanelsView());
                        }
                        destroy() {
                            super.destroy(), this.view.destroy(), this._rotatorView.destroy(), this._fakePanelsView.destroy();
                        }
                        hasView(t) {
                            return Array.from(this._viewToStack.keys()).includes(t);
                        }
                        add(t) {
                            if (this.hasView(t.view)) throw new c("contextualballoon-add-view-exist", [this, t]);
                            const e = t.stackId || "main";
                            if (!this._idToStack.has(e))
                                return (
                                    this._idToStack.set(e, new Map([[t.view, t]])),
                                    this._viewToStack.set(t.view, this._idToStack.get(e)),
                                    (this._numberOfStacks = this._idToStack.size),
                                    void ((this._visibleStack && !t.singleViewMode) || this.showStack(e))
                                );
                            const n = this._idToStack.get(e);
                            t.singleViewMode && this.showStack(e), n.set(t.view, t), this._viewToStack.set(t.view, n), n === this._visibleStack && this._showView(t);
                        }
                        remove(t) {
                            if (!this.hasView(t)) throw new c("contextualballoon-remove-view-not-exist", [this, t]);
                            const e = this._viewToStack.get(t);
                            this._singleViewMode && this.visibleView === t && (this._singleViewMode = !1),
                                this.visibleView === t &&
                                    (1 === e.size ? (this._idToStack.size > 1 ? this._showNextStack() : (this.view.hide(), (this.visibleView = null), this._rotatorView.hideView())) : this._showView(Array.from(e.values())[e.size - 2])),
                                1 === e.size ? (this._idToStack.delete(this._getStackId(e)), (this._numberOfStacks = this._idToStack.size)) : e.delete(t),
                                this._viewToStack.delete(t);
                        }
                        updatePosition(t) {
                            t && (this._visibleStack.get(this.visibleView).position = t), this.view.pin(this._getBalloonPosition()), this._fakePanelsView.updatePosition();
                        }
                        showStack(t) {
                            this.visibleStack = t;
                            const e = this._idToStack.get(t);
                            if (!e) throw new c("contextualballoon-showstack-stack-not-exist", this);
                            this._visibleStack !== e && this._showView(Array.from(e.values()).pop());
                        }
                        get _visibleStack() {
                            return this._viewToStack.get(this.visibleView);
                        }
                        _getStackId(t) {
                            return Array.from(this._idToStack.entries()).find((e) => e[1] === t)[0];
                        }
                        _showNextStack() {
                            const t = Array.from(this._idToStack.values());
                            let e = t.indexOf(this._visibleStack) + 1;
                            t[e] || (e = 0), this.showStack(this._getStackId(t[e]));
                        }
                        _showPrevStack() {
                            const t = Array.from(this._idToStack.values());
                            let e = t.indexOf(this._visibleStack) - 1;
                            t[e] || (e = t.length - 1), this.showStack(this._getStackId(t[e]));
                        }
                        _createRotatorView() {
                            const t = new Yu(this.editor.locale),
                                e = this.editor.locale.t;
                            return (
                                this.view.content.add(t),
                                t.bind("isNavigationVisible").to(this, "_numberOfStacks", this, "_singleViewMode", (t, e) => !e && t > 1),
                                t.on("change:isNavigationVisible", () => this.updatePosition(), { priority: "low" }),
                                t.bind("counter").to(this, "visibleView", this, "_numberOfStacks", (t, n) => {
                                    if (n < 2) return "";
                                    const o = Array.from(this._idToStack.values()).indexOf(this._visibleStack) + 1;
                                    return e("%0 of %1", [o, n]);
                                }),
                                t.buttonNextView.on("execute", () => {
                                    t.focusTracker.isFocused && this.editor.editing.view.focus(), this._showNextStack();
                                }),
                                t.buttonPrevView.on("execute", () => {
                                    t.focusTracker.isFocused && this.editor.editing.view.focus(), this._showPrevStack();
                                }),
                                t
                            );
                        }
                        _createFakePanelsView() {
                            const t = new Ku(this.editor.locale, this.view);
                            return (
                                t.bind("numberOfPanels").to(this, "_numberOfStacks", this, "_singleViewMode", (t, e) => (!e && t >= 2 ? Math.min(t - 1, 2) : 0)),
                                t.listenTo(this.view, "change:top", () => t.updatePosition()),
                                t.listenTo(this.view, "change:left", () => t.updatePosition()),
                                this.editor.ui.view.body.add(t),
                                t
                            );
                        }
                        _showView({ view: t, balloonClassName: e = "", withArrow: n = !0, singleViewMode: o = !1 }) {
                            (this.view.class = e),
                                (this.view.withArrow = n),
                                this._rotatorView.showView(t),
                                (this.visibleView = t),
                                this.view.pin(this._getBalloonPosition()),
                                this._fakePanelsView.updatePosition(),
                                o && (this._singleViewMode = !0);
                        }
                        _getBalloonPosition() {
                            let t = Array.from(this._visibleStack.values()).pop().position;
                            return t && (t.limiter || (t = Object.assign({}, t, { limiter: this.positionLimiter })), (t = Object.assign({}, t, { viewportOffsetConfig: this.editor.ui.viewportOffset }))), t;
                        }
                    }
                    class Yu extends eh {
                        constructor(t) {
                            super(t);
                            const e = t.t,
                                n = this.bindTemplate;
                            this.set("isNavigationVisible", !0),
                                (this.focusTracker = new _a()),
                                (this.buttonPrevView = this._createButtonView(
                                    e("Previous"),
                                    '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M11.463 5.187a.888.888 0 1 1 1.254 1.255L9.16 10l3.557 3.557a.888.888 0 1 1-1.254 1.255L7.26 10.61a.888.888 0 0 1 .16-1.382l4.043-4.042z"/></svg>'
                                )),
                                (this.buttonNextView = this._createButtonView(
                                    e("Next"),
                                    '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M8.537 14.813a.888.888 0 1 1-1.254-1.255L10.84 10 7.283 6.442a.888.888 0 1 1 1.254-1.255L12.74 9.39a.888.888 0 0 1-.16 1.382l-4.043 4.042z"/></svg>'
                                )),
                                (this.content = this.createCollection()),
                                this.setTemplate({
                                    tag: "div",
                                    attributes: { class: ["ck", "ck-balloon-rotator"], "z-index": "-1" },
                                    children: [
                                        {
                                            tag: "div",
                                            attributes: { class: ["ck-balloon-rotator__navigation", n.to("isNavigationVisible", (t) => (t ? "" : "ck-hidden"))] },
                                            children: [this.buttonPrevView, { tag: "span", attributes: { class: ["ck-balloon-rotator__counter"] }, children: [{ text: n.to("counter") }] }, this.buttonNextView],
                                        },
                                        { tag: "div", attributes: { class: "ck-balloon-rotator__content" }, children: this.content },
                                    ],
                                });
                        }
                        render() {
                            super.render(), this.focusTracker.add(this.element);
                        }
                        destroy() {
                            super.destroy(), this.focusTracker.destroy();
                        }
                        showView(t) {
                            this.hideView(), this.content.add(t);
                        }
                        hideView() {
                            this.content.clear();
                        }
                        _createButtonView(t, e) {
                            const n = new Lh(this.locale);
                            return n.set({ label: t, icon: e, tooltip: !0 }), n;
                        }
                    }
                    class Ku extends eh {
                        constructor(t, e) {
                            super(t);
                            const n = this.bindTemplate;
                            this.set("top", 0),
                                this.set("left", 0),
                                this.set("height", 0),
                                this.set("width", 0),
                                this.set("numberOfPanels", 0),
                                (this.content = this.createCollection()),
                                (this._balloonPanelView = e),
                                this.setTemplate({
                                    tag: "div",
                                    attributes: {
                                        class: ["ck-fake-panel", n.to("numberOfPanels", (t) => (t ? "" : "ck-hidden"))],
                                        style: { top: n.to("top", Gu), left: n.to("left", Gu), width: n.to("width", Gu), height: n.to("height", Gu) },
                                    },
                                    children: this.content,
                                }),
                                this.on("change:numberOfPanels", (t, e, n, o) => {
                                    n > o ? this._addPanels(n - o) : this._removePanels(o - n), this.updatePosition();
                                });
                        }
                        _addPanels(t) {
                            for (; t--; ) {
                                const t = new eh();
                                t.setTemplate({ tag: "div" }), this.content.add(t), this.registerChild(t);
                            }
                        }
                        _removePanels(t) {
                            for (; t--; ) {
                                const t = this.content.last;
                                this.content.remove(t), this.deregisterChild(t), t.destroy();
                            }
                        }
                        updatePosition() {
                            if (this.numberOfPanels) {
                                const { top: t, left: e } = this._balloonPanelView,
                                    { width: n, height: o } = new Da(this._balloonPanelView.element);
                                Object.assign(this, { top: t, left: e, width: n, height: o });
                            }
                        }
                    }
                    var Qu = n(5868),
                        Zu = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Qu.Z, Zu);
                    Qu.Z.locals;
                    const Ju = rh("px");
                    class Xu extends eh {
                        constructor(t) {
                            super(t);
                            const e = this.bindTemplate;
                            this.set("isActive", !1),
                                this.set("isSticky", !1),
                                this.set("limiterElement", null),
                                this.set("limiterBottomOffset", 50),
                                this.set("viewportTopOffset", 0),
                                this.set("_marginLeft", null),
                                this.set("_isStickyToTheLimiter", !1),
                                this.set("_hasViewportTopOffset", !1),
                                (this.content = this.createCollection()),
                                (this._contentPanelPlaceholder = new Bd({
                                    tag: "div",
                                    attributes: {
                                        class: ["ck", "ck-sticky-panel__placeholder"],
                                        style: { display: e.to("isSticky", (t) => (t ? "block" : "none")), height: e.to("isSticky", (t) => (t ? Ju(this._panelRect.height) : null)) },
                                    },
                                }).render()),
                                (this._contentPanel = new Bd({
                                    tag: "div",
                                    attributes: {
                                        class: ["ck", "ck-sticky-panel__content", e.if("isSticky", "ck-sticky-panel__content_sticky"), e.if("_isStickyToTheLimiter", "ck-sticky-panel__content_sticky_bottom-limit")],
                                        style: {
                                            width: e.to("isSticky", (t) => (t ? Ju(this._contentPanelPlaceholder.getBoundingClientRect().width) : null)),
                                            top: e.to("_hasViewportTopOffset", (t) => (t ? Ju(this.viewportTopOffset) : null)),
                                            bottom: e.to("_isStickyToTheLimiter", (t) => (t ? Ju(this.limiterBottomOffset) : null)),
                                            marginLeft: e.to("_marginLeft"),
                                        },
                                    },
                                    children: this.content,
                                }).render()),
                                this.setTemplate({ tag: "div", attributes: { class: ["ck", "ck-sticky-panel"] }, children: [this._contentPanelPlaceholder, this._contentPanel] });
                        }
                        render() {
                            super.render(),
                                this._checkIfShouldBeSticky(),
                                this.listenTo(Ao.window, "scroll", () => {
                                    this._checkIfShouldBeSticky();
                                }),
                                this.listenTo(this, "change:isActive", () => {
                                    this._checkIfShouldBeSticky();
                                });
                        }
                        _checkIfShouldBeSticky() {
                            const t = (this._panelRect = this._contentPanel.getBoundingClientRect());
                            let e;
                            this.limiterElement
                                ? ((e = this._limiterRect = this.limiterElement.getBoundingClientRect()), (this.isSticky = this.isActive && e.top < this.viewportTopOffset && this._panelRect.height + this.limiterBottomOffset < e.height))
                                : (this.isSticky = !1),
                                this.isSticky
                                    ? ((this._isStickyToTheLimiter = e.bottom < t.height + this.limiterBottomOffset + this.viewportTopOffset),
                                      (this._hasViewportTopOffset = !this._isStickyToTheLimiter && !!this.viewportTopOffset),
                                      (this._marginLeft = this._isStickyToTheLimiter ? null : Ju(-Ao.window.scrollX)))
                                    : ((this._isStickyToTheLimiter = !1), (this._hasViewportTopOffset = !1), (this._marginLeft = null));
                        }
                    }
                    rh("px");
                    var tg = n(9695),
                        eg = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(tg.Z, eg);
                    tg.Z.locals, rh("px");
                    rh("px");
                    var ng = n(4717),
                        og = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(ng.Z, og);
                    ng.Z.locals;
                    const ig = new WeakMap();
                    function rg(t) {
                        const { view: e, element: n, text: o, isDirectHost: i = !0, keepOnFocus: r = !1 } = t,
                            s = e.document;
                        ig.has(s) || (ig.set(s, new Map()), s.registerPostFixer((t) => ag(s, t))), ig.get(s).set(n, { text: o, isDirectHost: i, keepOnFocus: r, hostElement: i ? n : null }), e.change((t) => ag(s, t));
                    }
                    function sg(t, e) {
                        return !!e.hasClass("ck-placeholder") && (t.removeClass("ck-placeholder", e), !0);
                    }
                    function ag(t, e) {
                        const n = ig.get(t),
                            o = [];
                        let i = !1;
                        for (const [t, r] of n) r.isDirectHost && (o.push(t), cg(e, t, r) && (i = !0));
                        for (const [t, r] of n) {
                            if (r.isDirectHost) continue;
                            const n = lg(t);
                            n && (o.includes(n) || ((r.hostElement = n), cg(e, t, r) && (i = !0)));
                        }
                        return i;
                    }
                    function cg(t, e, n) {
                        const { text: o, isDirectHost: i, hostElement: r } = n;
                        let s = !1;
                        r.getAttribute("data-placeholder") !== o && (t.setAttribute("data-placeholder", o, r), (s = !0));
                        return (
                            (i || 1 == e.childCount) &&
                            (function (t, e) {
                                if (!t.isAttached()) return !1;
                                const n = Array.from(t.getChildren()).some((t) => !t.is("uiElement"));
                                if (n) return !1;
                                if (e) return !0;
                                const o = t.document;
                                if (!o.isFocused) return !0;
                                const i = o.selection.anchor;
                                return !!i && i.parent !== t;
                            })(r, n.keepOnFocus)
                                ? (function (t, e) {
                                      return !e.hasClass("ck-placeholder") && (t.addClass("ck-placeholder", e), !0);
                                  })(t, r) && (s = !0)
                                : sg(t, r) && (s = !0),
                            s
                        );
                    }
                    function lg(t) {
                        if (t.childCount) {
                            const e = t.getChild(0);
                            if (e.is("element") && !e.is("uiElement") && !e.is("attributeElement")) return e;
                        }
                        return null;
                    }
                    const dg = new Map();
                    function hg(t, e, n) {
                        let o = dg.get(t);
                        o || ((o = new Map()), dg.set(t, o)), o.set(e, n);
                    }
                    function ug(t) {
                        return [t];
                    }
                    function gg(t, e, n = {}) {
                        const o = (function (t, e) {
                            const n = dg.get(t);
                            return n && n.has(e) ? n.get(e) : ug;
                        })(t.constructor, e.constructor);
                        try {
                            return o((t = t.clone()), e, n);
                        } catch (t) {
                            throw t;
                        }
                    }
                    function mg(t, e, n) {
                        (t = t.slice()), (e = e.slice());
                        const o = new pg(n.document, n.useRelations, n.forceWeakRemove);
                        o.setOriginalOperations(t), o.setOriginalOperations(e);
                        const i = o.originalOperations;
                        if (0 == t.length || 0 == e.length) return { operationsA: t, operationsB: e, originalOperations: i };
                        const r = new WeakMap();
                        for (const e of t) r.set(e, 0);
                        const s = { nextBaseVersionA: t[t.length - 1].baseVersion + 1, nextBaseVersionB: e[e.length - 1].baseVersion + 1, originalOperationsACount: t.length, originalOperationsBCount: e.length };
                        let a = 0;
                        for (; a < t.length; ) {
                            const n = t[a],
                                i = r.get(n);
                            if (i == e.length) {
                                a++;
                                continue;
                            }
                            const s = e[i],
                                c = gg(n, s, o.getContext(n, s, !0)),
                                l = gg(s, n, o.getContext(s, n, !1));
                            o.updateRelation(n, s), o.setOriginalOperations(c, n), o.setOriginalOperations(l, s);
                            for (const t of c) r.set(t, i + l.length);
                            t.splice(a, 1, ...c), e.splice(i, 1, ...l);
                        }
                        if (n.padWithNoOps) {
                            const n = t.length - s.originalOperationsACount,
                                o = e.length - s.originalOperationsBCount;
                            kg(t, o - n), kg(e, n - o);
                        }
                        return fg(t, s.nextBaseVersionB), fg(e, s.nextBaseVersionA), { operationsA: t, operationsB: e, originalOperations: i };
                    }
                    class pg {
                        constructor(t, e, n = !1) {
                            (this.originalOperations = new Map()), (this._history = t.history), (this._useRelations = e), (this._forceWeakRemove = !!n), (this._relations = new Map());
                        }
                        setOriginalOperations(t, e = null) {
                            const n = e ? this.originalOperations.get(e) : null;
                            for (const e of t) this.originalOperations.set(e, n || e);
                        }
                        updateRelation(t, e) {
                            if (t instanceof Hl)
                                e instanceof Yl
                                    ? t.targetPosition.isEqual(e.sourcePosition) || e.movedRange.containsPosition(t.targetPosition)
                                        ? this._setRelation(t, e, "insertAtSource")
                                        : t.targetPosition.isEqual(e.deletionPosition)
                                        ? this._setRelation(t, e, "insertBetween")
                                        : t.targetPosition.isAfter(e.sourcePosition) && this._setRelation(t, e, "moveTargetAfter")
                                    : e instanceof Hl && (t.targetPosition.isEqual(e.sourcePosition) || t.targetPosition.isBefore(e.sourcePosition) ? this._setRelation(t, e, "insertBefore") : this._setRelation(t, e, "insertAfter"));
                            else if (t instanceof Kl) {
                                if (e instanceof Yl) t.splitPosition.isBefore(e.sourcePosition) && this._setRelation(t, e, "splitBefore");
                                else if (e instanceof Hl)
                                    if (t.splitPosition.isEqual(e.sourcePosition) || t.splitPosition.isBefore(e.sourcePosition)) this._setRelation(t, e, "splitBefore");
                                    else {
                                        const n = Xa._createFromPositionAndShift(e.sourcePosition, e.howMany);
                                        if (t.splitPosition.hasSameParentAs(e.sourcePosition) && n.containsPosition(t.splitPosition)) {
                                            const o = n.end.offset - t.splitPosition.offset,
                                                i = t.splitPosition.offset - n.start.offset;
                                            this._setRelation(t, e, { howMany: o, offset: i });
                                        }
                                    }
                            } else if (t instanceof Yl)
                                e instanceof Yl
                                    ? (t.targetPosition.isEqual(e.sourcePosition) || this._setRelation(t, e, "mergeTargetNotMoved"),
                                      t.sourcePosition.isEqual(e.targetPosition) && this._setRelation(t, e, "mergeSourceNotMoved"),
                                      t.sourcePosition.isEqual(e.sourcePosition) && this._setRelation(t, e, "mergeSameElement"))
                                    : e instanceof Kl && t.sourcePosition.isEqual(e.splitPosition) && this._setRelation(t, e, "splitAtSource");
                            else if (t instanceof Wl) {
                                const n = t.newRange;
                                if (!n) return;
                                if (e instanceof Hl) {
                                    const o = Xa._createFromPositionAndShift(e.sourcePosition, e.howMany),
                                        i = o.containsPosition(n.start) || o.start.isEqual(n.start),
                                        r = o.containsPosition(n.end) || o.end.isEqual(n.end);
                                    (!i && !r) || o.containsRange(n) || this._setRelation(t, e, { side: i ? "left" : "right", path: i ? n.start.path.slice() : n.end.path.slice() });
                                } else if (e instanceof Yl) {
                                    const o = n.start.isEqual(e.targetPosition),
                                        i = n.start.isEqual(e.deletionPosition),
                                        r = n.end.isEqual(e.deletionPosition),
                                        s = n.end.isEqual(e.sourcePosition);
                                    (o || i || r || s) && this._setRelation(t, e, { wasInLeftElement: o, wasStartBeforeMergedElement: i, wasEndBeforeMergedElement: r, wasInRightElement: s });
                                }
                            }
                        }
                        getContext(t, e, n) {
                            return {
                                aIsStrong: n,
                                aWasUndone: this._wasUndone(t),
                                bWasUndone: this._wasUndone(e),
                                abRelation: this._useRelations ? this._getRelation(t, e) : null,
                                baRelation: this._useRelations ? this._getRelation(e, t) : null,
                                forceWeakRemove: this._forceWeakRemove,
                            };
                        }
                        _wasUndone(t) {
                            const e = this.originalOperations.get(t);
                            return e.wasUndone || this._history.isUndoneOperation(e);
                        }
                        _getRelation(t, e) {
                            const n = this.originalOperations.get(e),
                                o = this._history.getUndoneOperation(n);
                            if (!o) return null;
                            const i = this.originalOperations.get(t),
                                r = this._relations.get(i);
                            return (r && r.get(o)) || null;
                        }
                        _setRelation(t, e, n) {
                            const o = this.originalOperations.get(t),
                                i = this.originalOperations.get(e);
                            let r = this._relations.get(o);
                            r || ((r = new Map()), this._relations.set(o, r)), r.set(i, n);
                        }
                    }
                    function fg(t, e) {
                        for (const n of t) n.baseVersion = e++;
                    }
                    function kg(t, e) {
                        for (let n = 0; n < e; n++) t.push(new ql(0));
                    }
                    function bg(t, e, n) {
                        const o = t.nodes.getNode(0).getAttribute(e);
                        if (o == n) return null;
                        const i = new Xa(t.position, t.position.getShiftedBy(t.howMany));
                        return new Vl(i, e, o, n, 0);
                    }
                    function wg(t, e) {
                        return null === t.targetPosition._getTransformedByDeletion(e.sourcePosition, e.howMany);
                    }
                    function _g(t, e) {
                        const n = [];
                        for (let o = 0; o < t.length; o++) {
                            const i = t[o],
                                r = new Hl(i.start, i.end.offset - i.start.offset, e, 0);
                            n.push(r);
                            for (let e = o + 1; e < t.length; e++) t[e] = t[e]._getTransformedByMove(r.sourcePosition, r.targetPosition, r.howMany)[0];
                            e = e._getTransformedByMove(r.sourcePosition, r.targetPosition, r.howMany);
                        }
                        return n;
                    }
                    hg(Vl, Vl, (t, e, n) => {
                        if (t.key === e.key && t.range.start.hasSameParentAs(e.range.start)) {
                            const o = t.range.getDifference(e.range).map((e) => new Vl(e, t.key, t.oldValue, t.newValue, 0)),
                                i = t.range.getIntersection(e.range);
                            return i && n.aIsStrong && o.push(new Vl(i, e.key, e.newValue, t.newValue, 0)), 0 == o.length ? [new ql(0)] : o;
                        }
                        return [t];
                    }),
                        hg(Vl, Ul, (t, e) => {
                            if (t.range.start.hasSameParentAs(e.position) && t.range.containsPosition(e.position)) {
                                const n = t.range._getTransformedByInsertion(e.position, e.howMany, !e.shouldReceiveAttributes).map((e) => new Vl(e, t.key, t.oldValue, t.newValue, t.baseVersion));
                                if (e.shouldReceiveAttributes) {
                                    const o = bg(e, t.key, t.oldValue);
                                    o && n.unshift(o);
                                }
                                return n;
                            }
                            return (t.range = t.range._getTransformedByInsertion(e.position, e.howMany, !1)[0]), [t];
                        }),
                        hg(Vl, Yl, (t, e) => {
                            const n = [];
                            t.range.start.hasSameParentAs(e.deletionPosition) && (t.range.containsPosition(e.deletionPosition) || t.range.start.isEqual(e.deletionPosition)) && n.push(Xa._createFromPositionAndShift(e.graveyardPosition, 1));
                            const o = t.range._getTransformedByMergeOperation(e);
                            return o.isCollapsed || n.push(o), n.map((e) => new Vl(e, t.key, t.oldValue, t.newValue, t.baseVersion));
                        }),
                        hg(Vl, Hl, (t, e) => {
                            const n = (function (t, e) {
                                const n = Xa._createFromPositionAndShift(e.sourcePosition, e.howMany);
                                let o = null,
                                    i = [];
                                n.containsRange(t, !0) ? (o = t) : t.start.hasSameParentAs(n.start) ? ((i = t.getDifference(n)), (o = t.getIntersection(n))) : (i = [t]);
                                const r = [];
                                for (let t of i) {
                                    t = t._getTransformedByDeletion(e.sourcePosition, e.howMany);
                                    const n = e.getMovedRangeStart(),
                                        o = t.start.hasSameParentAs(n),
                                        i = t._getTransformedByInsertion(n, e.howMany, o);
                                    r.push(...i);
                                }
                                o && r.push(o._getTransformedByMove(e.sourcePosition, e.targetPosition, e.howMany, !1)[0]);
                                return r;
                            })(t.range, e);
                            return n.map((e) => new Vl(e, t.key, t.oldValue, t.newValue, t.baseVersion));
                        }),
                        hg(Vl, Kl, (t, e) => {
                            if (t.range.end.isEqual(e.insertionPosition)) return e.graveyardPosition || t.range.end.offset++, [t];
                            if (t.range.start.hasSameParentAs(e.splitPosition) && t.range.containsPosition(e.splitPosition)) {
                                const n = t.clone();
                                return (
                                    (n.range = new Xa(e.moveTargetPosition.clone(), t.range.end._getCombined(e.splitPosition, e.moveTargetPosition))), (t.range.end = e.splitPosition.clone()), (t.range.end.stickiness = "toPrevious"), [t, n]
                                );
                            }
                            return (t.range = t.range._getTransformedBySplitOperation(e)), [t];
                        }),
                        hg(Ul, Vl, (t, e) => {
                            const n = [t];
                            if (t.shouldReceiveAttributes && t.position.hasSameParentAs(e.range.start) && e.range.containsPosition(t.position)) {
                                const o = bg(t, e.key, e.newValue);
                                o && n.push(o);
                            }
                            return n;
                        }),
                        hg(Ul, Ul, (t, e, n) => ((t.position.isEqual(e.position) && n.aIsStrong) || (t.position = t.position._getTransformedByInsertOperation(e)), [t])),
                        hg(Ul, Hl, (t, e) => ((t.position = t.position._getTransformedByMoveOperation(e)), [t])),
                        hg(Ul, Kl, (t, e) => ((t.position = t.position._getTransformedBySplitOperation(e)), [t])),
                        hg(Ul, Yl, (t, e) => ((t.position = t.position._getTransformedByMergeOperation(e)), [t])),
                        hg(Wl, Ul, (t, e) => (t.oldRange && (t.oldRange = t.oldRange._getTransformedByInsertOperation(e)[0]), t.newRange && (t.newRange = t.newRange._getTransformedByInsertOperation(e)[0]), [t])),
                        hg(Wl, Wl, (t, e, n) => {
                            if (t.name == e.name) {
                                if (!n.aIsStrong) return [new ql(0)];
                                t.oldRange = e.newRange ? e.newRange.clone() : null;
                            }
                            return [t];
                        }),
                        hg(Wl, Yl, (t, e) => (t.oldRange && (t.oldRange = t.oldRange._getTransformedByMergeOperation(e)), t.newRange && (t.newRange = t.newRange._getTransformedByMergeOperation(e)), [t])),
                        hg(Wl, Hl, (t, e, n) => {
                            if ((t.oldRange && (t.oldRange = Xa._createFromRanges(t.oldRange._getTransformedByMoveOperation(e))), t.newRange)) {
                                if (n.abRelation) {
                                    const o = Xa._createFromRanges(t.newRange._getTransformedByMoveOperation(e));
                                    if ("left" == n.abRelation.side && e.targetPosition.isEqual(t.newRange.start)) return (t.newRange.end = o.end), (t.newRange.start.path = n.abRelation.path), [t];
                                    if ("right" == n.abRelation.side && e.targetPosition.isEqual(t.newRange.end)) return (t.newRange.start = o.start), (t.newRange.end.path = n.abRelation.path), [t];
                                }
                                t.newRange = Xa._createFromRanges(t.newRange._getTransformedByMoveOperation(e));
                            }
                            return [t];
                        }),
                        hg(Wl, Kl, (t, e, n) => {
                            if ((t.oldRange && (t.oldRange = t.oldRange._getTransformedBySplitOperation(e)), t.newRange)) {
                                if (n.abRelation) {
                                    const o = t.newRange._getTransformedBySplitOperation(e);
                                    return (
                                        t.newRange.start.isEqual(e.splitPosition) && n.abRelation.wasStartBeforeMergedElement
                                            ? (t.newRange.start = Ka._createAt(e.insertionPosition))
                                            : t.newRange.start.isEqual(e.splitPosition) && !n.abRelation.wasInLeftElement && (t.newRange.start = Ka._createAt(e.moveTargetPosition)),
                                        t.newRange.end.isEqual(e.splitPosition) && n.abRelation.wasInRightElement
                                            ? (t.newRange.end = Ka._createAt(e.moveTargetPosition))
                                            : t.newRange.end.isEqual(e.splitPosition) && n.abRelation.wasEndBeforeMergedElement
                                            ? (t.newRange.end = Ka._createAt(e.insertionPosition))
                                            : (t.newRange.end = o.end),
                                        [t]
                                    );
                                }
                                t.newRange = t.newRange._getTransformedBySplitOperation(e);
                            }
                            return [t];
                        }),
                        hg(
                            Yl,
                            Ul,
                            (t, e) => (
                                t.sourcePosition.hasSameParentAs(e.position) && (t.howMany += e.howMany),
                                (t.sourcePosition = t.sourcePosition._getTransformedByInsertOperation(e)),
                                (t.targetPosition = t.targetPosition._getTransformedByInsertOperation(e)),
                                [t]
                            )
                        ),
                        hg(Yl, Yl, (t, e, n) => {
                            if (t.sourcePosition.isEqual(e.sourcePosition) && t.targetPosition.isEqual(e.targetPosition)) {
                                if (n.bWasUndone) {
                                    const n = e.graveyardPosition.path.slice();
                                    return n.push(0), (t.sourcePosition = new Ka(e.graveyardPosition.root, n)), (t.howMany = 0), [t];
                                }
                                return [new ql(0)];
                            }
                            if (t.sourcePosition.isEqual(e.sourcePosition) && !t.targetPosition.isEqual(e.targetPosition) && !n.bWasUndone && "splitAtSource" != n.abRelation) {
                                const o = "$graveyard" == t.targetPosition.root.rootName,
                                    i = "$graveyard" == e.targetPosition.root.rootName,
                                    r = o && !i;
                                if ((i && !o) || (!r && n.aIsStrong)) {
                                    const n = e.targetPosition._getTransformedByMergeOperation(e),
                                        o = t.targetPosition._getTransformedByMergeOperation(e);
                                    return [new Hl(n, t.howMany, o, 0)];
                                }
                                return [new ql(0)];
                            }
                            return (
                                t.sourcePosition.hasSameParentAs(e.targetPosition) && (t.howMany += e.howMany),
                                (t.sourcePosition = t.sourcePosition._getTransformedByMergeOperation(e)),
                                (t.targetPosition = t.targetPosition._getTransformedByMergeOperation(e)),
                                (t.graveyardPosition.isEqual(e.graveyardPosition) && n.aIsStrong) || (t.graveyardPosition = t.graveyardPosition._getTransformedByMergeOperation(e)),
                                [t]
                            );
                        }),
                        hg(Yl, Hl, (t, e, n) => {
                            const o = Xa._createFromPositionAndShift(e.sourcePosition, e.howMany);
                            return "remove" == e.type && !n.bWasUndone && !n.forceWeakRemove && t.deletionPosition.hasSameParentAs(e.sourcePosition) && o.containsPosition(t.sourcePosition)
                                ? [new ql(0)]
                                : (t.sourcePosition.hasSameParentAs(e.targetPosition) && (t.howMany += e.howMany),
                                  t.sourcePosition.hasSameParentAs(e.sourcePosition) && (t.howMany -= e.howMany),
                                  (t.sourcePosition = t.sourcePosition._getTransformedByMoveOperation(e)),
                                  (t.targetPosition = t.targetPosition._getTransformedByMoveOperation(e)),
                                  t.graveyardPosition.isEqual(e.targetPosition) || (t.graveyardPosition = t.graveyardPosition._getTransformedByMoveOperation(e)),
                                  [t]);
                        }),
                        hg(Yl, Kl, (t, e, n) => {
                            if (
                                (e.graveyardPosition && ((t.graveyardPosition = t.graveyardPosition._getTransformedByDeletion(e.graveyardPosition, 1)), t.deletionPosition.isEqual(e.graveyardPosition) && (t.howMany = e.howMany)),
                                t.targetPosition.isEqual(e.splitPosition))
                            ) {
                                const o = 0 != e.howMany,
                                    i = e.graveyardPosition && t.deletionPosition.isEqual(e.graveyardPosition);
                                if (o || i || "mergeTargetNotMoved" == n.abRelation) return (t.sourcePosition = t.sourcePosition._getTransformedBySplitOperation(e)), [t];
                            }
                            if (t.sourcePosition.isEqual(e.splitPosition)) {
                                if ("mergeSourceNotMoved" == n.abRelation) return (t.howMany = 0), (t.targetPosition = t.targetPosition._getTransformedBySplitOperation(e)), [t];
                                if ("mergeSameElement" == n.abRelation || t.sourcePosition.offset > 0) return (t.sourcePosition = e.moveTargetPosition.clone()), (t.targetPosition = t.targetPosition._getTransformedBySplitOperation(e)), [t];
                            }
                            return (
                                t.sourcePosition.hasSameParentAs(e.splitPosition) && (t.howMany = e.splitPosition.offset),
                                (t.sourcePosition = t.sourcePosition._getTransformedBySplitOperation(e)),
                                (t.targetPosition = t.targetPosition._getTransformedBySplitOperation(e)),
                                [t]
                            );
                        }),
                        hg(Hl, Ul, (t, e) => {
                            const n = Xa._createFromPositionAndShift(t.sourcePosition, t.howMany)._getTransformedByInsertOperation(e, !1)[0];
                            return (t.sourcePosition = n.start), (t.howMany = n.end.offset - n.start.offset), t.targetPosition.isEqual(e.position) || (t.targetPosition = t.targetPosition._getTransformedByInsertOperation(e)), [t];
                        }),
                        hg(Hl, Hl, (t, e, n) => {
                            const o = Xa._createFromPositionAndShift(t.sourcePosition, t.howMany),
                                i = Xa._createFromPositionAndShift(e.sourcePosition, e.howMany);
                            let r,
                                s = n.aIsStrong,
                                a = !n.aIsStrong;
                            if (
                                ("insertBefore" == n.abRelation || "insertAfter" == n.baRelation ? (a = !0) : ("insertAfter" != n.abRelation && "insertBefore" != n.baRelation) || (a = !1),
                                (r =
                                    t.targetPosition.isEqual(e.targetPosition) && a
                                        ? t.targetPosition._getTransformedByDeletion(e.sourcePosition, e.howMany)
                                        : t.targetPosition._getTransformedByMove(e.sourcePosition, e.targetPosition, e.howMany)),
                                wg(t, e) && wg(e, t))
                            )
                                return [e.getReversed()];
                            if (o.containsPosition(e.targetPosition) && o.containsRange(i, !0))
                                return (o.start = o.start._getTransformedByMove(e.sourcePosition, e.targetPosition, e.howMany)), (o.end = o.end._getTransformedByMove(e.sourcePosition, e.targetPosition, e.howMany)), _g([o], r);
                            if (i.containsPosition(t.targetPosition) && i.containsRange(o, !0))
                                return (o.start = o.start._getCombined(e.sourcePosition, e.getMovedRangeStart())), (o.end = o.end._getCombined(e.sourcePosition, e.getMovedRangeStart())), _g([o], r);
                            const c = Mo(t.sourcePosition.getParentPath(), e.sourcePosition.getParentPath());
                            if ("prefix" == c || "extension" == c)
                                return (o.start = o.start._getTransformedByMove(e.sourcePosition, e.targetPosition, e.howMany)), (o.end = o.end._getTransformedByMove(e.sourcePosition, e.targetPosition, e.howMany)), _g([o], r);
                            "remove" != t.type || "remove" == e.type || n.aWasUndone || n.forceWeakRemove ? "remove" == t.type || "remove" != e.type || n.bWasUndone || n.forceWeakRemove || (s = !1) : (s = !0);
                            const l = [],
                                d = o.getDifference(i);
                            for (const t of d) {
                                (t.start = t.start._getTransformedByDeletion(e.sourcePosition, e.howMany)), (t.end = t.end._getTransformedByDeletion(e.sourcePosition, e.howMany));
                                const n = "same" == Mo(t.start.getParentPath(), e.getMovedRangeStart().getParentPath()),
                                    o = t._getTransformedByInsertion(e.getMovedRangeStart(), e.howMany, n);
                                l.push(...o);
                            }
                            const h = o.getIntersection(i);
                            return (
                                null !== h &&
                                    s &&
                                    ((h.start = h.start._getCombined(e.sourcePosition, e.getMovedRangeStart())),
                                    (h.end = h.end._getCombined(e.sourcePosition, e.getMovedRangeStart())),
                                    0 === l.length ? l.push(h) : 1 == l.length ? (i.start.isBefore(o.start) || i.start.isEqual(o.start) ? l.unshift(h) : l.push(h)) : l.splice(1, 0, h)),
                                0 === l.length ? [new ql(t.baseVersion)] : _g(l, r)
                            );
                        }),
                        hg(Hl, Kl, (t, e, n) => {
                            let o = t.targetPosition.clone();
                            (t.targetPosition.isEqual(e.insertionPosition) && e.graveyardPosition && "moveTargetAfter" != n.abRelation) || (o = t.targetPosition._getTransformedBySplitOperation(e));
                            const i = Xa._createFromPositionAndShift(t.sourcePosition, t.howMany);
                            if (i.end.isEqual(e.insertionPosition)) return e.graveyardPosition || t.howMany++, (t.targetPosition = o), [t];
                            if (i.start.hasSameParentAs(e.splitPosition) && i.containsPosition(e.splitPosition)) {
                                let t = new Xa(e.splitPosition, i.end);
                                t = t._getTransformedBySplitOperation(e);
                                return _g([new Xa(i.start, e.splitPosition), t], o);
                            }
                            t.targetPosition.isEqual(e.splitPosition) && "insertAtSource" == n.abRelation && (o = e.moveTargetPosition),
                                t.targetPosition.isEqual(e.insertionPosition) && "insertBetween" == n.abRelation && (o = t.targetPosition);
                            const r = [i._getTransformedBySplitOperation(e)];
                            if (e.graveyardPosition) {
                                const o = i.start.isEqual(e.graveyardPosition) || i.containsPosition(e.graveyardPosition);
                                t.howMany > 1 && o && !n.aWasUndone && r.push(Xa._createFromPositionAndShift(e.insertionPosition, 1));
                            }
                            return _g(r, o);
                        }),
                        hg(Hl, Yl, (t, e, n) => {
                            const o = Xa._createFromPositionAndShift(t.sourcePosition, t.howMany);
                            if (e.deletionPosition.hasSameParentAs(t.sourcePosition) && o.containsPosition(e.sourcePosition))
                                if ("remove" != t.type || n.forceWeakRemove) {
                                    if (1 == t.howMany) return n.bWasUndone ? ((t.sourcePosition = e.graveyardPosition.clone()), (t.targetPosition = t.targetPosition._getTransformedByMergeOperation(e)), [t]) : [new ql(0)];
                                } else if (!n.aWasUndone) {
                                    const n = [];
                                    let o = e.graveyardPosition.clone(),
                                        i = e.targetPosition._getTransformedByMergeOperation(e);
                                    t.howMany > 1 &&
                                        (n.push(new Hl(t.sourcePosition, t.howMany - 1, t.targetPosition, 0)),
                                        (o = o._getTransformedByMove(t.sourcePosition, t.targetPosition, t.howMany - 1)),
                                        (i = i._getTransformedByMove(t.sourcePosition, t.targetPosition, t.howMany - 1)));
                                    const r = e.deletionPosition._getCombined(t.sourcePosition, t.targetPosition),
                                        s = new Hl(o, 1, r, 0),
                                        a = s.getMovedRangeStart().path.slice();
                                    a.push(0);
                                    const c = new Ka(s.targetPosition.root, a);
                                    i = i._getTransformedByMove(o, r, 1);
                                    const l = new Hl(i, e.howMany, c, 0);
                                    return n.push(s), n.push(l), n;
                                }
                            const i = Xa._createFromPositionAndShift(t.sourcePosition, t.howMany)._getTransformedByMergeOperation(e);
                            return (t.sourcePosition = i.start), (t.howMany = i.end.offset - i.start.offset), (t.targetPosition = t.targetPosition._getTransformedByMergeOperation(e)), [t];
                        }),
                        hg(Gl, Ul, (t, e) => ((t.position = t.position._getTransformedByInsertOperation(e)), [t])),
                        hg(Gl, Yl, (t, e) =>
                            t.position.isEqual(e.deletionPosition) ? ((t.position = e.graveyardPosition.clone()), (t.position.stickiness = "toNext"), [t]) : ((t.position = t.position._getTransformedByMergeOperation(e)), [t])
                        ),
                        hg(Gl, Hl, (t, e) => ((t.position = t.position._getTransformedByMoveOperation(e)), [t])),
                        hg(Gl, Gl, (t, e, n) => {
                            if (t.position.isEqual(e.position)) {
                                if (!n.aIsStrong) return [new ql(0)];
                                t.oldName = e.newName;
                            }
                            return [t];
                        }),
                        hg(Gl, Kl, (t, e) => {
                            if ("same" == Mo(t.position.path, e.splitPosition.getParentPath()) && !e.graveyardPosition) {
                                const e = new Gl(t.position.getShiftedBy(1), t.oldName, t.newName, 0);
                                return [t, e];
                            }
                            return (t.position = t.position._getTransformedBySplitOperation(e)), [t];
                        }),
                        hg($l, $l, (t, e, n) => {
                            if (t.root === e.root && t.key === e.key) {
                                if (!n.aIsStrong || t.newValue === e.newValue) return [new ql(0)];
                                t.oldValue = e.newValue;
                            }
                            return [t];
                        }),
                        hg(
                            Kl,
                            Ul,
                            (t, e) => (
                                t.splitPosition.hasSameParentAs(e.position) && t.splitPosition.offset < e.position.offset && (t.howMany += e.howMany),
                                (t.splitPosition = t.splitPosition._getTransformedByInsertOperation(e)),
                                (t.insertionPosition = t.insertionPosition._getTransformedByInsertOperation(e)),
                                [t]
                            )
                        ),
                        hg(Kl, Yl, (t, e, n) => {
                            if (!t.graveyardPosition && !n.bWasUndone && t.splitPosition.hasSameParentAs(e.sourcePosition)) {
                                const n = e.graveyardPosition.path.slice();
                                n.push(0);
                                const o = new Ka(e.graveyardPosition.root, n),
                                    i = Kl.getInsertionPosition(new Ka(e.graveyardPosition.root, n)),
                                    r = new Kl(o, 0, i, null, 0);
                                return (
                                    (t.splitPosition = t.splitPosition._getTransformedByMergeOperation(e)),
                                    (t.insertionPosition = Kl.getInsertionPosition(t.splitPosition)),
                                    (t.graveyardPosition = r.insertionPosition.clone()),
                                    (t.graveyardPosition.stickiness = "toNext"),
                                    [r, t]
                                );
                            }
                            return (
                                t.splitPosition.hasSameParentAs(e.deletionPosition) && !t.splitPosition.isAfter(e.deletionPosition) && t.howMany--,
                                t.splitPosition.hasSameParentAs(e.targetPosition) && (t.howMany += e.howMany),
                                (t.splitPosition = t.splitPosition._getTransformedByMergeOperation(e)),
                                (t.insertionPosition = Kl.getInsertionPosition(t.splitPosition)),
                                t.graveyardPosition && (t.graveyardPosition = t.graveyardPosition._getTransformedByMergeOperation(e)),
                                [t]
                            );
                        }),
                        hg(Kl, Hl, (t, e, n) => {
                            const o = Xa._createFromPositionAndShift(e.sourcePosition, e.howMany);
                            if (t.graveyardPosition) {
                                const i = o.start.isEqual(t.graveyardPosition) || o.containsPosition(t.graveyardPosition);
                                if (!n.bWasUndone && i) {
                                    const n = t.splitPosition._getTransformedByMoveOperation(e),
                                        o = t.graveyardPosition._getTransformedByMoveOperation(e),
                                        i = o.path.slice();
                                    i.push(0);
                                    const r = new Ka(o.root, i);
                                    return [new Hl(n, t.howMany, r, 0)];
                                }
                                t.graveyardPosition = t.graveyardPosition._getTransformedByMoveOperation(e);
                            }
                            const i = t.splitPosition.isEqual(e.targetPosition);
                            if (i && ("insertAtSource" == n.baRelation || "splitBefore" == n.abRelation))
                                return (t.howMany += e.howMany), (t.splitPosition = t.splitPosition._getTransformedByDeletion(e.sourcePosition, e.howMany)), (t.insertionPosition = Kl.getInsertionPosition(t.splitPosition)), [t];
                            if (i && n.abRelation && n.abRelation.howMany) {
                                const { howMany: e, offset: o } = n.abRelation;
                                return (t.howMany += e), (t.splitPosition = t.splitPosition.getShiftedBy(o)), [t];
                            }
                            if (t.splitPosition.hasSameParentAs(e.sourcePosition) && o.containsPosition(t.splitPosition)) {
                                const n = e.howMany - (t.splitPosition.offset - e.sourcePosition.offset);
                                return (
                                    (t.howMany -= n),
                                    t.splitPosition.hasSameParentAs(e.targetPosition) && t.splitPosition.offset < e.targetPosition.offset && (t.howMany += e.howMany),
                                    (t.splitPosition = e.sourcePosition.clone()),
                                    (t.insertionPosition = Kl.getInsertionPosition(t.splitPosition)),
                                    [t]
                                );
                            }
                            return (
                                e.sourcePosition.isEqual(e.targetPosition) ||
                                    (t.splitPosition.hasSameParentAs(e.sourcePosition) && t.splitPosition.offset <= e.sourcePosition.offset && (t.howMany -= e.howMany),
                                    t.splitPosition.hasSameParentAs(e.targetPosition) && t.splitPosition.offset < e.targetPosition.offset && (t.howMany += e.howMany)),
                                (t.splitPosition.stickiness = "toNone"),
                                (t.splitPosition = t.splitPosition._getTransformedByMoveOperation(e)),
                                (t.splitPosition.stickiness = "toNext"),
                                t.graveyardPosition ? (t.insertionPosition = t.insertionPosition._getTransformedByMoveOperation(e)) : (t.insertionPosition = Kl.getInsertionPosition(t.splitPosition)),
                                [t]
                            );
                        }),
                        hg(Kl, Kl, (t, e, n) => {
                            if (t.splitPosition.isEqual(e.splitPosition)) {
                                if (!t.graveyardPosition && !e.graveyardPosition) return [new ql(0)];
                                if (t.graveyardPosition && e.graveyardPosition && t.graveyardPosition.isEqual(e.graveyardPosition)) return [new ql(0)];
                                if ("splitBefore" == n.abRelation) return (t.howMany = 0), (t.graveyardPosition = t.graveyardPosition._getTransformedBySplitOperation(e)), [t];
                            }
                            if (t.graveyardPosition && e.graveyardPosition && t.graveyardPosition.isEqual(e.graveyardPosition)) {
                                const o = "$graveyard" == t.splitPosition.root.rootName,
                                    i = "$graveyard" == e.splitPosition.root.rootName,
                                    r = o && !i;
                                if ((i && !o) || (!r && n.aIsStrong)) {
                                    const n = [];
                                    return e.howMany && n.push(new Hl(e.moveTargetPosition, e.howMany, e.splitPosition, 0)), t.howMany && n.push(new Hl(t.splitPosition, t.howMany, t.moveTargetPosition, 0)), n;
                                }
                                return [new ql(0)];
                            }
                            if ((t.graveyardPosition && (t.graveyardPosition = t.graveyardPosition._getTransformedBySplitOperation(e)), t.splitPosition.isEqual(e.insertionPosition) && "splitBefore" == n.abRelation)) return t.howMany++, [t];
                            if (e.splitPosition.isEqual(t.insertionPosition) && "splitBefore" == n.baRelation) {
                                const n = e.insertionPosition.path.slice();
                                n.push(0);
                                const o = new Ka(e.insertionPosition.root, n);
                                return [t, new Hl(t.insertionPosition, 1, o, 0)];
                            }
                            return (
                                t.splitPosition.hasSameParentAs(e.splitPosition) && t.splitPosition.offset < e.splitPosition.offset && (t.howMany -= e.howMany),
                                (t.splitPosition = t.splitPosition._getTransformedBySplitOperation(e)),
                                (t.insertionPosition = Kl.getInsertionPosition(t.splitPosition)),
                                [t]
                            );
                        });
                    class Ag extends Ys {
                        constructor(t) {
                            super(t), (this.domEventType = "click");
                        }
                        onDomEvent(t) {
                            this.fire(t.type, t);
                        }
                    }
                    class Cg extends Ys {
                        constructor(t) {
                            super(t), (this.domEventType = ["mousedown", "mouseup", "mouseover", "mouseout"]);
                        }
                        onDomEvent(t) {
                            this.fire(t.type, t);
                        }
                    }
                    class vg {
                        constructor(t) {
                            this.document = t;
                        }
                        createDocumentFragment(t) {
                            return new yr(this.document, t);
                        }
                        createElement(t, e, n) {
                            return new Pi(this.document, t, e, n);
                        }
                        createText(t) {
                            return new No(this.document, t);
                        }
                        clone(t, e = !1) {
                            return t._clone(e);
                        }
                        appendChild(t, e) {
                            return e._appendChild(t);
                        }
                        insertChild(t, e, n) {
                            return n._insertChild(t, e);
                        }
                        removeChildren(t, e, n) {
                            return n._removeChildren(t, e);
                        }
                        remove(t) {
                            const e = t.parent;
                            return e ? this.removeChildren(e.getChildIndex(t), 1, e) : [];
                        }
                        replace(t, e) {
                            const n = t.parent;
                            if (n) {
                                const o = n.getChildIndex(t);
                                return this.removeChildren(o, 1, n), this.insertChild(o, e, n), !0;
                            }
                            return !1;
                        }
                        unwrapElement(t) {
                            const e = t.parent;
                            if (e) {
                                const n = e.getChildIndex(t);
                                this.remove(t), this.insertChild(n, t.getChildren(), e);
                            }
                        }
                        rename(t, e) {
                            const n = new Pi(this.document, t, e.getAttributes(), e.getChildren());
                            return this.replace(e, n) ? n : null;
                        }
                        setAttribute(t, e, n) {
                            n._setAttribute(t, e);
                        }
                        removeAttribute(t, e) {
                            e._removeAttribute(t);
                        }
                        addClass(t, e) {
                            e._addClass(t);
                        }
                        removeClass(t, e) {
                            e._removeClass(t);
                        }
                        setStyle(t, e, n) {
                            gt(t) && void 0 === n ? e._setStyle(t) : n._setStyle(t, e);
                        }
                        removeStyle(t, e) {
                            e._removeStyle(t);
                        }
                        setCustomProperty(t, e, n) {
                            n._setCustomProperty(t, e);
                        }
                        removeCustomProperty(t, e) {
                            return e._removeCustomProperty(t);
                        }
                        createPositionAt(t, e) {
                            return Hi._createAt(t, e);
                        }
                        createPositionAfter(t) {
                            return Hi._createAfter(t);
                        }
                        createPositionBefore(t) {
                            return Hi._createBefore(t);
                        }
                        createRange(t, e) {
                            return new Ui(t, e);
                        }
                        createRangeOn(t) {
                            return Ui._createOn(t);
                        }
                        createRangeIn(t) {
                            return Ui._createIn(t);
                        }
                        createSelection(...t) {
                            return new Gi(...t);
                        }
                    }
                    new Set([
                        "black",
                        "silver",
                        "gray",
                        "white",
                        "maroon",
                        "red",
                        "purple",
                        "fuchsia",
                        "green",
                        "lime",
                        "olive",
                        "yellow",
                        "navy",
                        "blue",
                        "teal",
                        "aqua",
                        "orange",
                        "aliceblue",
                        "antiquewhite",
                        "aquamarine",
                        "azure",
                        "beige",
                        "bisque",
                        "blanchedalmond",
                        "blueviolet",
                        "brown",
                        "burlywood",
                        "cadetblue",
                        "chartreuse",
                        "chocolate",
                        "coral",
                        "cornflowerblue",
                        "cornsilk",
                        "crimson",
                        "cyan",
                        "darkblue",
                        "darkcyan",
                        "darkgoldenrod",
                        "darkgray",
                        "darkgreen",
                        "darkgrey",
                        "darkkhaki",
                        "darkmagenta",
                        "darkolivegreen",
                        "darkorange",
                        "darkorchid",
                        "darkred",
                        "darksalmon",
                        "darkseagreen",
                        "darkslateblue",
                        "darkslategray",
                        "darkslategrey",
                        "darkturquoise",
                        "darkviolet",
                        "deeppink",
                        "deepskyblue",
                        "dimgray",
                        "dimgrey",
                        "dodgerblue",
                        "firebrick",
                        "floralwhite",
                        "forestgreen",
                        "gainsboro",
                        "ghostwhite",
                        "gold",
                        "goldenrod",
                        "greenyellow",
                        "grey",
                        "honeydew",
                        "hotpink",
                        "indianred",
                        "indigo",
                        "ivory",
                        "khaki",
                        "lavender",
                        "lavenderblush",
                        "lawngreen",
                        "lemonchiffon",
                        "lightblue",
                        "lightcoral",
                        "lightcyan",
                        "lightgoldenrodyellow",
                        "lightgray",
                        "lightgreen",
                        "lightgrey",
                        "lightpink",
                        "lightsalmon",
                        "lightseagreen",
                        "lightskyblue",
                        "lightslategray",
                        "lightslategrey",
                        "lightsteelblue",
                        "lightyellow",
                        "limegreen",
                        "linen",
                        "magenta",
                        "mediumaquamarine",
                        "mediumblue",
                        "mediumorchid",
                        "mediumpurple",
                        "mediumseagreen",
                        "mediumslateblue",
                        "mediumspringgreen",
                        "mediumturquoise",
                        "mediumvioletred",
                        "midnightblue",
                        "mintcream",
                        "mistyrose",
                        "moccasin",
                        "navajowhite",
                        "oldlace",
                        "olivedrab",
                        "orangered",
                        "orchid",
                        "palegoldenrod",
                        "palegreen",
                        "paleturquoise",
                        "palevioletred",
                        "papayawhip",
                        "peachpuff",
                        "peru",
                        "pink",
                        "plum",
                        "powderblue",
                        "rosybrown",
                        "royalblue",
                        "saddlebrown",
                        "salmon",
                        "sandybrown",
                        "seagreen",
                        "seashell",
                        "sienna",
                        "skyblue",
                        "slateblue",
                        "slategray",
                        "slategrey",
                        "snow",
                        "springgreen",
                        "steelblue",
                        "tan",
                        "thistle",
                        "tomato",
                        "turquoise",
                        "violet",
                        "wheat",
                        "whitesmoke",
                        "yellowgreen",
                        "activeborder",
                        "activecaption",
                        "appworkspace",
                        "background",
                        "buttonface",
                        "buttonhighlight",
                        "buttonshadow",
                        "buttontext",
                        "captiontext",
                        "graytext",
                        "highlight",
                        "highlighttext",
                        "inactiveborder",
                        "inactivecaption",
                        "inactivecaptiontext",
                        "infobackground",
                        "infotext",
                        "menu",
                        "menutext",
                        "scrollbar",
                        "threeddarkshadow",
                        "threedface",
                        "threedhighlight",
                        "threedlightshadow",
                        "threedshadow",
                        "window",
                        "windowframe",
                        "windowtext",
                        "rebeccapurple",
                        "currentcolor",
                        "transparent",
                    ]);
                    class yg extends bh {
                        constructor(t, e) {
                            super(t), (this.view = e), (this._toolbarConfig = eu(t.config.get("toolbar"))), (this._elementReplacer = new ma());
                        }
                        get element() {
                            return this.view.element;
                        }
                        init(t) {
                            const e = this.editor,
                                n = this.view,
                                o = e.editing.view,
                                i = n.editable,
                                r = o.document.getRoot();
                            (i.name = r.rootName), n.render();
                            const s = i.element;
                            this.setEditableElement(i.name, s),
                                n.editable.bind("isFocused").to(this.focusTracker),
                                o.attachDomRoot(s),
                                t && this._elementReplacer.replace(t, this.element),
                                this._initPlaceholder(),
                                this._initToolbar(),
                                this.fire("ready");
                        }
                        destroy() {
                            const t = this.view,
                                e = this.editor.editing.view;
                            this._elementReplacer.restore(), e.detachDomRoot(t.editable.name), t.destroy(), super.destroy();
                        }
                        _initToolbar() {
                            const t = this.view;
                            t.stickyPanel.bind("isActive").to(this.focusTracker, "isFocused"),
                                (t.stickyPanel.limiterElement = t.element),
                                t.stickyPanel.bind("viewportTopOffset").to(this, "viewportOffset", ({ top: t }) => t),
                                t.toolbar.fillFromConfig(this._toolbarConfig, this.componentFactory),
                                this.addToolbar(t.toolbar);
                        }
                        _initPlaceholder() {
                            const t = this.editor,
                                e = t.editing.view,
                                n = e.document.getRoot(),
                                o = t.sourceElement,
                                i = t.config.get("placeholder") || (o && "textarea" === o.tagName.toLowerCase() && o.getAttribute("placeholder"));
                            i && rg({ view: e, element: n, text: i, isDirectHost: !1, keepOnFocus: !0 });
                        }
                    }
                    var xg = n(3143),
                        Eg = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(xg.Z, Eg);
                    xg.Z.locals;
                    class Dg extends Du {
                        constructor(t, e, n = {}) {
                            super(t), (this.stickyPanel = new Xu(t)), (this.toolbar = new iu(t, { shouldGroupWhenFull: n.shouldToolbarGroupWhenFull })), (this.editable = new Mu(t, e));
                        }
                        render() {
                            super.render(), this.stickyPanel.content.add(this.toolbar), this.top.add(this.stickyPanel), this.main.add(this.editable);
                        }
                    }
                    class Ig extends Md {
                        constructor(t, e = {}) {
                            if (!uo(t) && void 0 !== e.initialData) throw new c("editor-create-initial-data", null);
                            super(e),
                                void 0 === this.config.get("initialData") &&
                                    this.config.set(
                                        "initialData",
                                        (function (t) {
                                            return uo(t) ? ((e = t), e instanceof HTMLTextAreaElement ? e.value : e.innerHTML) : t;
                                            var e;
                                        })(t)
                                    ),
                                uo(t) && (this.sourceElement = t),
                                this.model.document.createRoot();
                            const n = !this.config.get("toolbar.shouldNotGroupWhenFull"),
                                o = new Dg(this.locale, this.editing.view, { shouldToolbarGroupWhenFull: n });
                            (this.ui = new yg(this, o)),
                                (function (t) {
                                    if (!It(t.updateSourceElement)) throw new c("attachtoform-missing-elementapi-interface", t);
                                    const e = t.sourceElement;
                                    if (e && "textarea" === e.tagName.toLowerCase() && e.form) {
                                        let n;
                                        const o = e.form,
                                            i = () => t.updateSourceElement();
                                        It(o.submit) &&
                                            ((n = o.submit),
                                            (o.submit = () => {
                                                i(), n.apply(o);
                                            })),
                                            o.addEventListener("submit", i),
                                            t.on("destroy", () => {
                                                o.removeEventListener("submit", i), n && (o.submit = n);
                                            });
                                    }
                                })(this);
                        }
                        destroy() {
                            return this.sourceElement && this.updateSourceElement(), this.ui.destroy(), super.destroy();
                        }
                        static create(t, e = {}) {
                            return new Promise((n) => {
                                const o = new this(t, e);
                                n(
                                    o
                                        .initPlugins()
                                        .then(() => o.ui.init(uo(t) ? t : null))
                                        .then(() => o.data.init(o.config.get("initialData")))
                                        .then(() => o.fire("ready"))
                                        .then(() => o)
                                );
                            });
                        }
                    }
                    F(Ig, Ah), F(Ig, vh);
                    class Mg {
                        constructor(t) {
                            (this.files = (function (t) {
                                const e = Array.from(t.files || []),
                                    n = Array.from(t.items || []);
                                if (e.length) return e;
                                return n.filter((t) => "file" === t.kind).map((t) => t.getAsFile());
                            })(t)),
                                (this._native = t);
                        }
                        get types() {
                            return this._native.types;
                        }
                        getData(t) {
                            return this._native.getData(t);
                        }
                        setData(t, e) {
                            this._native.setData(t, e);
                        }
                        set effectAllowed(t) {
                            this._native.effectAllowed = t;
                        }
                        get effectAllowed() {
                            return this._native.effectAllowed;
                        }
                        set dropEffect(t) {
                            this._native.dropEffect = t;
                        }
                        get dropEffect() {
                            return this._native.dropEffect;
                        }
                        get isCanceled() {
                            return "none" == this._native.dropEffect || !!this._native.mozUserCancelled;
                        }
                    }
                    class Tg extends Ys {
                        constructor(t) {
                            super(t);
                            const n = this.document;
                            function o(t) {
                                return (o, i) => {
                                    i.preventDefault();
                                    const r = i.dropRange ? [i.dropRange] : null,
                                        s = new e(n, t);
                                    n.fire(s, { dataTransfer: i.dataTransfer, method: o.name, targetRanges: r, target: i.target }), s.stop.called && i.stopPropagation();
                                };
                            }
                            (this.domEventType = ["paste", "copy", "cut", "drop", "dragover", "dragstart", "dragend", "dragenter", "dragleave"]),
                                this.listenTo(n, "paste", o("clipboardInput"), { priority: "low" }),
                                this.listenTo(n, "drop", o("clipboardInput"), { priority: "low" }),
                                this.listenTo(n, "dragover", o("dragging"), { priority: "low" });
                        }
                        onDomEvent(t) {
                            const e = { dataTransfer: new Mg(t.clipboardData ? t.clipboardData : t.dataTransfer) };
                            ("drop" != t.type && "dragover" != t.type) ||
                                (e.dropRange = (function (t, e) {
                                    const n = e.target.ownerDocument,
                                        o = e.clientX,
                                        i = e.clientY;
                                    let r;
                                    n.caretRangeFromPoint && n.caretRangeFromPoint(o, i) ? (r = n.caretRangeFromPoint(o, i)) : e.rangeParent && ((r = n.createRange()), r.setStart(e.rangeParent, e.rangeOffset), r.collapse(!0));
                                    if (r) return t.domConverter.domRangeToView(r);
                                    return null;
                                })(this.view, t)),
                                this.fire(t.type, t, e);
                        }
                    }
                    const Sg = ["figcaption", "li"];
                    function Ng(t) {
                        let e = "";
                        if (t.is("$text") || t.is("$textProxy")) e = t.data;
                        else if (t.is("element", "img") && t.hasAttribute("alt")) e = t.getAttribute("alt");
                        else if (t.is("element", "br")) e = "\n";
                        else {
                            let n = null;
                            for (const o of t.getChildren()) {
                                const t = Ng(o);
                                n && (n.is("containerElement") || o.is("containerElement")) && (Sg.includes(n.name) || Sg.includes(o.name) ? (e += "\n") : (e += "\n\n")), (e += t), (n = o);
                            }
                        }
                        return e;
                    }
                    class Bg extends V {
                        static get pluginName() {
                            return "ClipboardPipeline";
                        }
                        init() {
                            this.editor.editing.view.addObserver(Tg), this._setupPasteDrop(), this._setupCopyCut();
                        }
                        _setupPasteDrop() {
                            const t = this.editor,
                                n = t.model,
                                o = t.editing.view,
                                i = o.document;
                            this.listenTo(
                                i,
                                "clipboardInput",
                                (e) => {
                                    t.isReadOnly && e.stop();
                                },
                                { priority: "highest" }
                            ),
                                this.listenTo(
                                    i,
                                    "clipboardInput",
                                    (t, n) => {
                                        const i = n.dataTransfer;
                                        let r = n.content || "";
                                        var s;
                                        r ||
                                            (i.getData("text/html")
                                                ? (r = (function (t) {
                                                      return t.replace(/<span(?: class="Apple-converted-space"|)>(\s+)<\/span>/g, (t, e) => (1 == e.length ? " " : e)).replace(/<!--[\s\S]*?-->/g, "");
                                                  })(i.getData("text/html")))
                                                : i.getData("text/plain") &&
                                                  (((s = (s = i.getData("text/plain"))
                                                      .replace(/</g, "&lt;")
                                                      .replace(/>/g, "&gt;")
                                                      .replace(/\r?\n\r?\n/g, "</p><p>")
                                                      .replace(/\r?\n/g, "<br>")
                                                      .replace(/^\s/, "&nbsp;")
                                                      .replace(/\s$/, "&nbsp;")
                                                      .replace(/\s\s/g, " &nbsp;")).includes("</p><p>") ||
                                                      s.includes("<br>")) &&
                                                      (s = `<p>${s}</p>`),
                                                  (r = s)),
                                            (r = this.editor.data.htmlProcessor.toView(r)));
                                        const a = new e(this, "inputTransformation");
                                        this.fire(a, { content: r, dataTransfer: i, targetRanges: n.targetRanges, method: n.method }), a.stop.called && t.stop(), o.scrollToTheSelection();
                                    },
                                    { priority: "low" }
                                ),
                                this.listenTo(
                                    this,
                                    "inputTransformation",
                                    (t, e) => {
                                        if (e.content.isEmpty) return;
                                        const o = this.editor.data.toModel(e.content, "$clipboardHolder");
                                        0 != o.childCount &&
                                            (t.stop(),
                                            n.change(() => {
                                                this.fire("contentInsertion", { content: o, method: e.method, dataTransfer: e.dataTransfer, targetRanges: e.targetRanges });
                                            }));
                                    },
                                    { priority: "low" }
                                ),
                                this.listenTo(
                                    this,
                                    "contentInsertion",
                                    (t, e) => {
                                        e.resultRange = n.insertContent(e.content);
                                    },
                                    { priority: "low" }
                                );
                        }
                        _setupCopyCut() {
                            const t = this.editor,
                                e = t.model.document,
                                n = t.editing.view.document;
                            function o(o, i) {
                                const r = i.dataTransfer;
                                i.preventDefault();
                                const s = t.data.toView(t.model.getSelectedContent(e.selection));
                                n.fire("clipboardOutput", { dataTransfer: r, content: s, method: o.name });
                            }
                            this.listenTo(n, "copy", o, { priority: "low" }),
                                this.listenTo(
                                    n,
                                    "cut",
                                    (e, n) => {
                                        t.isReadOnly ? n.preventDefault() : o(e, n);
                                    },
                                    { priority: "low" }
                                ),
                                this.listenTo(
                                    n,
                                    "clipboardOutput",
                                    (n, o) => {
                                        o.content.isEmpty || (o.dataTransfer.setData("text/html", this.editor.data.htmlProcessor.toData(o.content)), o.dataTransfer.setData("text/plain", Ng(o.content))),
                                            "cut" == o.method && t.model.deleteContent(e.selection);
                                    },
                                    { priority: "low" }
                                );
                        }
                    }
                    function* Pg(t, e) {
                        for (const n of e) n && t.getAttributeProperties(n[0]).copyOnEnter && (yield n);
                    }
                    class zg extends U {
                        execute() {
                            const t = this.editor.model,
                                e = t.document;
                            t.change((n) => {
                                !(function (t, e, n, o) {
                                    const i = n.isCollapsed,
                                        r = n.getFirstRange(),
                                        s = r.start.parent,
                                        a = r.end.parent;
                                    if (o.isLimit(s) || o.isLimit(a)) return void (i || s != a || t.deleteContent(n));
                                    if (i) {
                                        const t = Pg(e.model.schema, n.getAttributes());
                                        Lg(e, r.start), e.setSelectionAttribute(t);
                                    } else {
                                        const o = !(r.start.isAtStart && r.end.isAtEnd),
                                            i = s == a;
                                        t.deleteContent(n, { leaveUnmerged: o }), o && (i ? Lg(e, n.focus) : e.setSelection(a, 0));
                                    }
                                })(this.editor.model, n, e.selection, t.schema),
                                    this.fire("afterExecute", { writer: n });
                            });
                        }
                    }
                    function Lg(t, e) {
                        t.split(e), t.setSelection(e.parent.nextSibling, 0);
                    }
                    class Og extends vs {
                        constructor(t) {
                            super(t);
                            const e = this.document;
                            e.on("keydown", (t, n) => {
                                if (this.isEnabled && n.keyCode == gr.enter) {
                                    const o = new Yi(e, "enter", e.selection.getFirstRange());
                                    e.fire(o, new $s(e, n.domEvent, { isSoft: n.shiftKey })), o.stop.called && t.stop();
                                }
                            });
                        }
                        observe() {}
                    }
                    class Rg extends V {
                        static get pluginName() {
                            return "Enter";
                        }
                        init() {
                            const t = this.editor,
                                e = t.editing.view,
                                n = e.document;
                            e.addObserver(Og),
                                t.commands.add("enter", new zg(t)),
                                this.listenTo(
                                    n,
                                    "enter",
                                    (n, o) => {
                                        o.preventDefault(), o.isSoft || (t.execute("enter"), e.scrollToTheSelection());
                                    },
                                    { priority: "low" }
                                );
                        }
                    }
                    class jg {
                        constructor(t, e = 20) {
                            (this.model = t),
                                (this.size = 0),
                                (this.limit = e),
                                (this.isLocked = !1),
                                (this._changeCallback = (t, e) => {
                                    e.isLocal && e.isUndoable && e !== this._batch && this._reset(!0);
                                }),
                                (this._selectionChangeCallback = () => {
                                    this._reset();
                                }),
                                this.model.document.on("change", this._changeCallback),
                                this.model.document.selection.on("change:range", this._selectionChangeCallback),
                                this.model.document.selection.on("change:attribute", this._selectionChangeCallback);
                        }
                        get batch() {
                            return this._batch || (this._batch = this.model.createBatch({ isTyping: !0 })), this._batch;
                        }
                        input(t) {
                            (this.size += t), this.size >= this.limit && this._reset(!0);
                        }
                        lock() {
                            this.isLocked = !0;
                        }
                        unlock() {
                            this.isLocked = !1;
                        }
                        destroy() {
                            this.model.document.off("change", this._changeCallback),
                                this.model.document.selection.off("change:range", this._selectionChangeCallback),
                                this.model.document.selection.off("change:attribute", this._selectionChangeCallback);
                        }
                        _reset(t) {
                            (this.isLocked && !t) || ((this._batch = null), (this.size = 0));
                        }
                    }
                    class Fg extends U {
                        constructor(t, e) {
                            super(t), (this.direction = e), (this._buffer = new jg(t.model, t.config.get("typing.undoStep")));
                        }
                        get buffer() {
                            return this._buffer;
                        }
                        execute(t = {}) {
                            const e = this.editor.model,
                                n = e.document;
                            e.enqueueChange(this._buffer.batch, (o) => {
                                this._buffer.lock();
                                const i = o.createSelection(t.selection || n.selection),
                                    r = t.sequence || 1,
                                    s = i.isCollapsed;
                                if ((i.isCollapsed && e.modifySelection(i, { direction: this.direction, unit: t.unit, treatEmojiAsSingleUnit: !0 }), this._shouldEntireContentBeReplacedWithParagraph(r)))
                                    return void this._replaceEntireContentWithParagraph(o);
                                if (this._shouldReplaceFirstBlockWithParagraph(i, r)) return void this.editor.execute("paragraph", { selection: i });
                                if (i.isCollapsed) return;
                                let a = 0;
                                i
                                    .getFirstRange()
                                    .getMinimalFlatRanges()
                                    .forEach((t) => {
                                        a += qi(t.getWalker({ singleCharacters: !0, ignoreElementEnd: !0, shallow: !0 }));
                                    }),
                                    e.deleteContent(i, { doNotResetEntireContent: s, direction: this.direction }),
                                    this._buffer.input(a),
                                    o.setSelection(i),
                                    this._buffer.unlock();
                            });
                        }
                        _shouldEntireContentBeReplacedWithParagraph(t) {
                            if (t > 1) return !1;
                            const e = this.editor.model,
                                n = e.document.selection,
                                o = e.schema.getLimitElement(n);
                            if (!(n.isCollapsed && n.containsEntireContent(o))) return !1;
                            if (!e.schema.checkChild(o, "paragraph")) return !1;
                            const i = o.getChild(0);
                            return !i || "paragraph" !== i.name;
                        }
                        _replaceEntireContentWithParagraph(t) {
                            const e = this.editor.model,
                                n = e.document.selection,
                                o = e.schema.getLimitElement(n),
                                i = t.createElement("paragraph");
                            t.remove(t.createRangeIn(o)), t.insert(i, o), t.setSelection(i, 0);
                        }
                        _shouldReplaceFirstBlockWithParagraph(t, e) {
                            const n = this.editor.model;
                            if (e > 1 || "backward" != this.direction) return !1;
                            if (!t.isCollapsed) return !1;
                            const o = t.getFirstPosition(),
                                i = n.schema.getLimitElement(o),
                                r = i.getChild(0);
                            return o.parent == r && !!t.containsEntireContent(r) && !!n.schema.checkChild(i, "paragraph") && "paragraph" != r.name;
                        }
                    }
                    function Vg(t) {
                        if (t.newChildren.length - t.oldChildren.length != 1) return;
                        const e = (function (t, e) {
                            const n = [];
                            let o = 0,
                                i = null;
                            return (
                                t.forEach((t) => {
                                    "equal" == t
                                        ? (r(), o++)
                                        : "insert" == t
                                        ? (i && "insert" == i.type ? i.values.push(e[o]) : (r(), (i = { type: "insert", index: o, values: [e[o]] })), o++)
                                        : i && "delete" == i.type
                                        ? i.howMany++
                                        : (r(), (i = { type: "delete", index: o, howMany: 1 }));
                                }),
                                r(),
                                n
                            );
                            function r() {
                                i && (n.push(i), (i = null));
                            }
                        })(Yr(t.oldChildren, t.newChildren, Hg), t.newChildren);
                        if (e.length > 1) return;
                        const n = e[0];
                        return n.values[0] && n.values[0].is("$text") ? n : void 0;
                    }
                    function Hg(t, e) {
                        return t && t.is("$text") && e && e.is("$text") ? t.data === e.data : t === e;
                    }
                    function Ug(t, e) {
                        const n = e.selection,
                            o = t.shiftKey && t.keyCode === gr.delete,
                            i = !n.isCollapsed;
                        return o && i;
                    }
                    class Wg extends vs {
                        constructor(t) {
                            super(t);
                            const e = t.document;
                            let n = 0;
                            function o(t, n, o) {
                                const i = new Yi(e, "delete", e.selection.getFirstRange());
                                e.fire(i, new $s(e, n, o)), i.stop.called && t.stop();
                            }
                            e.on("keyup", (t, e) => {
                                (e.keyCode != gr.delete && e.keyCode != gr.backspace) || (n = 0);
                            }),
                                e.on("keydown", (t, i) => {
                                    if (lr.isWindows && Ug(i, e)) return;
                                    const r = {};
                                    if (i.keyCode == gr.delete) (r.direction = "forward"), (r.unit = "character");
                                    else {
                                        if (i.keyCode != gr.backspace) return;
                                        (r.direction = "backward"), (r.unit = "codePoint");
                                    }
                                    const s = lr.isMac ? i.altKey : i.ctrlKey;
                                    (r.unit = s ? "word" : r.unit), (r.sequence = ++n), o(t, i.domEvent, r);
                                }),
                                lr.isAndroid &&
                                    e.on("beforeinput", (e, n) => {
                                        if ("deleteContentBackward" != n.domEvent.inputType) return;
                                        const i = { unit: "codepoint", direction: "backward", sequence: 1 },
                                            r = n.domTarget.ownerDocument.defaultView.getSelection();
                                        r.anchorNode == r.focusNode && r.anchorOffset + 1 != r.focusOffset && (i.selectionToRemove = t.domConverter.domSelectionToView(r)), o(e, n.domEvent, i);
                                    });
                        }
                        observe() {}
                    }
                    class qg extends V {
                        static get pluginName() {
                            return "Delete";
                        }
                        init() {
                            const t = this.editor,
                                e = t.editing.view,
                                n = e.document,
                                o = t.model.document;
                            e.addObserver(Wg), (this._undoOnBackspace = !1);
                            const i = new Fg(t, "forward");
                            if (
                                (t.commands.add("deleteForward", i),
                                t.commands.add("forwardDelete", i),
                                t.commands.add("delete", new Fg(t, "backward")),
                                this.listenTo(
                                    n,
                                    "delete",
                                    (n, o) => {
                                        const i = { unit: o.unit, sequence: o.sequence };
                                        if (o.selectionToRemove) {
                                            const e = t.model.createSelection(),
                                                n = [];
                                            for (const e of o.selectionToRemove.getRanges()) n.push(t.editing.mapper.toModelRange(e));
                                            e.setTo(n), (i.selection = e);
                                        }
                                        t.execute("forward" == o.direction ? "deleteForward" : "delete", i), o.preventDefault(), e.scrollToTheSelection();
                                    },
                                    { priority: "low" }
                                ),
                                lr.isAndroid)
                            ) {
                                let t = null;
                                this.listenTo(
                                    n,
                                    "delete",
                                    (e, n) => {
                                        const o = n.domTarget.ownerDocument.defaultView.getSelection();
                                        t = { anchorNode: o.anchorNode, anchorOffset: o.anchorOffset, focusNode: o.focusNode, focusOffset: o.focusOffset };
                                    },
                                    { priority: "lowest" }
                                ),
                                    this.listenTo(n, "keyup", (e, n) => {
                                        if (t) {
                                            const e = n.domTarget.ownerDocument.defaultView.getSelection();
                                            e.collapse(t.anchorNode, t.anchorOffset), e.extend(t.focusNode, t.focusOffset), (t = null);
                                        }
                                    });
                            }
                            this.editor.plugins.has("UndoEditing") &&
                                (this.listenTo(
                                    n,
                                    "delete",
                                    (e, n) => {
                                        this._undoOnBackspace && "backward" == n.direction && 1 == n.sequence && "codePoint" == n.unit && ((this._undoOnBackspace = !1), t.execute("undo"), n.preventDefault(), e.stop());
                                    },
                                    { context: "$capture" }
                                ),
                                this.listenTo(o, "change", () => {
                                    this._undoOnBackspace = !1;
                                }));
                        }
                        requestUndoOnBackspace() {
                            this.editor.plugins.has("UndoEditing") && (this._undoOnBackspace = !0);
                        }
                    }
                    class Gg {
                        constructor() {
                            this._stack = [];
                        }
                        add(t, e) {
                            const n = this._stack,
                                o = n[0];
                            this._insertDescriptor(t);
                            const i = n[0];
                            o === i || $g(o, i) || this.fire("change:top", { oldDescriptor: o, newDescriptor: i, writer: e });
                        }
                        remove(t, e) {
                            const n = this._stack,
                                o = n[0];
                            this._removeDescriptor(t);
                            const i = n[0];
                            o === i || $g(o, i) || this.fire("change:top", { oldDescriptor: o, newDescriptor: i, writer: e });
                        }
                        _insertDescriptor(t) {
                            const e = this._stack,
                                n = e.findIndex((e) => e.id === t.id);
                            if ($g(t, e[n])) return;
                            n > -1 && e.splice(n, 1);
                            let o = 0;
                            for (; e[o] && Yg(e[o], t); ) o++;
                            e.splice(o, 0, t);
                        }
                        _removeDescriptor(t) {
                            const e = this._stack,
                                n = e.findIndex((e) => e.id === t);
                            n > -1 && e.splice(n, 1);
                        }
                    }
                    function $g(t, e) {
                        return t && e && t.priority == e.priority && Kg(t.classes) == Kg(e.classes);
                    }
                    function Yg(t, e) {
                        return t.priority > e.priority || (!(t.priority < e.priority) && Kg(t.classes) > Kg(e.classes));
                    }
                    function Kg(t) {
                        return Array.isArray(t) ? t.sort().join(",") : t;
                    }
                    F(Gg, b);
                    const Qg =
                            '<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M4 0v1H1v3H0V.5A.5.5 0 0 1 .5 0H4zm8 0h3.5a.5.5 0 0 1 .5.5V4h-1V1h-3V0zM4 16H.5a.5.5 0 0 1-.5-.5V12h1v3h3v1zm8 0v-1h3v-3h1v3.5a.5.5 0 0 1-.5.5H12z"/><path fill-opacity=".256" d="M1 1h14v14H1z"/><g class="ck-icon__selected-indicator"><path d="M7 0h2v1H7V0zM0 7h1v2H0V7zm15 0h1v2h-1V7zm-8 8h2v1H7v-1z"/><path fill-opacity=".254" d="M1 1h14v14H1z"/></g></svg>',
                        Zg = "ck-widget_selected";
                    function Jg(t) {
                        return !!t.is("element") && !!t.getCustomProperty("widget");
                    }
                    function Xg(t, e, n = {}) {
                        if (!t.is("containerElement")) throw new c("widget-to-widget-wrong-element-type", null, { element: t });
                        return (
                            e.setAttribute("contenteditable", "false", t),
                            e.addClass("ck-widget", t),
                            e.setCustomProperty("widget", !0, t),
                            (t.getFillerOffset = sm),
                            n.label &&
                                (function (t, e, n) {
                                    n.setCustomProperty("widgetLabel", e, t);
                                })(t, n.label, e),
                            n.hasSelectionHandle &&
                                (function (t, e) {
                                    const n = e.createUIElement("div", { class: "ck ck-widget__selection-handle" }, function (t) {
                                        const e = this.toDomElement(t),
                                            n = new Bh();
                                        return n.set("content", Qg), n.render(), e.appendChild(n.element), e;
                                    });
                                    e.insert(e.createPositionAt(t, 0), n), e.addClass(["ck-widget_with-selection-handle"], t);
                                })(t, e),
                            nm(t, e),
                            t
                        );
                    }
                    function tm(t, e, n) {
                        if ((e.classes && n.addClass(wo(e.classes), t), e.attributes)) for (const o in e.attributes) n.setAttribute(o, e.attributes[o], t);
                    }
                    function em(t, e, n) {
                        if ((e.classes && n.removeClass(wo(e.classes), t), e.attributes)) for (const o in e.attributes) n.removeAttribute(o, t);
                    }
                    function nm(t, e, n = tm, o = em) {
                        const i = new Gg();
                        i.on("change:top", (e, i) => {
                            i.oldDescriptor && o(t, i.oldDescriptor, i.writer), i.newDescriptor && n(t, i.newDescriptor, i.writer);
                        }),
                            e.setCustomProperty("addHighlight", (t, e, n) => i.add(e, n), t),
                            e.setCustomProperty("removeHighlight", (t, e, n) => i.remove(e, n), t);
                    }
                    function om(t) {
                        const e = t.getCustomProperty("widgetLabel");
                        return e ? ("function" == typeof e ? e() : e) : "";
                    }
                    function im(t, e, n = {}) {
                        return (
                            e.addClass(["ck-editor__editable", "ck-editor__nested-editable"], t),
                            e.setAttribute("role", "textbox", t),
                            n.label && e.setAttribute("aria-label", n.label, t),
                            e.setAttribute("contenteditable", t.isReadOnly ? "false" : "true", t),
                            t.on("change:isReadOnly", (n, o, i) => {
                                e.setAttribute("contenteditable", i ? "false" : "true", t);
                            }),
                            t.on("change:isFocused", (n, o, i) => {
                                i ? e.addClass("ck-editor__nested-editable_focused", t) : e.removeClass("ck-editor__nested-editable_focused", t);
                            }),
                            nm(t, e),
                            t
                        );
                    }
                    function rm(t, e) {
                        const n = t.getSelectedElement();
                        if (n) {
                            const o = lm(t);
                            if (o) return e.createRange(e.createPositionAt(n, o));
                        }
                        return _d(t, e);
                    }
                    function sm() {
                        return null;
                    }
                    const am = "widget-type-around";
                    function cm(t, e, n) {
                        return t && Jg(t) && !n.isInline(e);
                    }
                    function lm(t) {
                        return t.getAttribute(am);
                    }
                    const dm = [pr("arrowUp"), pr("arrowRight"), pr("arrowDown"), pr("arrowLeft"), 9, 16, 17, 18, 19, 20, 27, 33, 34, 35, 36, 45, 91, 93, 144, 145, 173, 174, 175, 176, 177, 178, 179, 255];
                    for (let t = 112; t <= 135; t++) dm.push(t);
                    function hm(t) {
                        return !(!t.ctrlKey && !t.metaKey) || dm.includes(t.keyCode);
                    }
                    var um = n(4921),
                        gm = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(um.Z, gm);
                    um.Z.locals;
                    const mm = ["before", "after"],
                        pm = new DOMParser().parseFromString('<svg viewBox="0 0 10 8" xmlns="http://www.w3.org/2000/svg"><path d="M9.055.263v3.972h-6.77M1 4.216l2-2.038m-2 2 2 2.038"/></svg>', "image/svg+xml").firstChild,
                        fm = "ck-widget__type-around_disabled";
                    class km extends V {
                        static get pluginName() {
                            return "WidgetTypeAround";
                        }
                        static get requires() {
                            return [Rg, qg];
                        }
                        constructor(t) {
                            super(t), (this._currentFakeCaretModelElement = null);
                        }
                        init() {
                            const t = this.editor,
                                e = t.editing.view;
                            this.on("change:isEnabled", (n, o, i) => {
                                e.change((t) => {
                                    for (const n of e.document.roots) i ? t.removeClass(fm, n) : t.addClass(fm, n);
                                }),
                                    i ||
                                        t.model.change((t) => {
                                            t.removeSelectionAttribute(am);
                                        });
                            }),
                                this._enableTypeAroundUIInjection(),
                                this._enableInsertingParagraphsOnButtonClick(),
                                this._enableInsertingParagraphsOnEnterKeypress(),
                                this._enableInsertingParagraphsOnTypingKeystroke(),
                                this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows(),
                                this._enableDeleteIntegration(),
                                this._enableInsertContentIntegration(),
                                this._enableInsertObjectIntegration(),
                                this._enableDeleteContentIntegration();
                        }
                        destroy() {
                            this._currentFakeCaretModelElement = null;
                        }
                        _insertParagraph(t, e) {
                            const n = this.editor,
                                o = n.editing.view,
                                i = n.model.schema.getAttributesWithProperty(t, "copyOnReplace", !0);
                            n.execute("insertParagraph", { position: n.model.createPositionAt(t, e), attributes: i }), o.focus(), o.scrollToTheSelection();
                        }
                        _listenToIfEnabled(t, e, n, o) {
                            this.listenTo(
                                t,
                                e,
                                (...t) => {
                                    this.isEnabled && n(...t);
                                },
                                o
                            );
                        }
                        _insertParagraphAccordingToFakeCaretPosition() {
                            const t = this.editor.model.document.selection,
                                e = lm(t);
                            if (!e) return !1;
                            const n = t.getSelectedElement();
                            return this._insertParagraph(n, e), !0;
                        }
                        _enableTypeAroundUIInjection() {
                            const t = this.editor,
                                e = t.model.schema,
                                n = t.locale.t,
                                o = { before: n("Insert paragraph before block"), after: n("Insert paragraph after block") };
                            t.editing.downcastDispatcher.on(
                                "insert",
                                (t, n, i) => {
                                    const r = i.mapper.toViewElement(n.item);
                                    cm(r, n.item, e) &&
                                        (function (t, e, n) {
                                            const o = t.createUIElement("div", { class: "ck ck-reset_all ck-widget__type-around" }, function (t) {
                                                const n = this.toDomElement(t);
                                                return (
                                                    (function (t, e) {
                                                        for (const n of mm) {
                                                            const o = new Bd({
                                                                tag: "div",
                                                                attributes: { class: ["ck", "ck-widget__type-around__button", `ck-widget__type-around__button_${n}`], title: e[n] },
                                                                children: [t.ownerDocument.importNode(pm, !0)],
                                                            });
                                                            t.appendChild(o.render());
                                                        }
                                                    })(n, e),
                                                    (function (t) {
                                                        const e = new Bd({ tag: "div", attributes: { class: ["ck", "ck-widget__type-around__fake-caret"] } });
                                                        t.appendChild(e.render());
                                                    })(n),
                                                    n
                                                );
                                            });
                                            t.insert(t.createPositionAt(n, "end"), o);
                                        })(i.writer, o, r);
                                },
                                { priority: "low" }
                            );
                        }
                        _enableTypeAroundFakeCaretActivationUsingKeyboardArrows() {
                            const t = this.editor,
                                e = t.model,
                                n = e.document.selection,
                                o = e.schema,
                                i = t.editing.view;
                            function r(t) {
                                return `ck-widget_type-around_show-fake-caret_${t}`;
                            }
                            this._listenToIfEnabled(
                                i.document,
                                "arrowKey",
                                (t, e) => {
                                    this._handleArrowKeyPress(t, e);
                                },
                                { context: [Jg, "$text"], priority: "high" }
                            ),
                                this._listenToIfEnabled(n, "change:range", (e, n) => {
                                    n.directChange &&
                                        t.model.change((t) => {
                                            t.removeSelectionAttribute(am);
                                        });
                                }),
                                this._listenToIfEnabled(e.document, "change:data", () => {
                                    const e = n.getSelectedElement();
                                    if (e) {
                                        if (cm(t.editing.mapper.toViewElement(e), e, o)) return;
                                    }
                                    t.model.change((t) => {
                                        t.removeSelectionAttribute(am);
                                    });
                                }),
                                this._listenToIfEnabled(t.editing.downcastDispatcher, "selection", (t, e, n) => {
                                    const i = n.writer;
                                    if (this._currentFakeCaretModelElement) {
                                        const t = n.mapper.toViewElement(this._currentFakeCaretModelElement);
                                        t && (i.removeClass(mm.map(r), t), (this._currentFakeCaretModelElement = null));
                                    }
                                    const s = e.selection.getSelectedElement();
                                    if (!s) return;
                                    const a = n.mapper.toViewElement(s);
                                    if (!cm(a, s, o)) return;
                                    const c = lm(e.selection);
                                    c && (i.addClass(r(c), a), (this._currentFakeCaretModelElement = s));
                                }),
                                this._listenToIfEnabled(t.ui.focusTracker, "change:isFocused", (e, n, o) => {
                                    o ||
                                        t.model.change((t) => {
                                            t.removeSelectionAttribute(am);
                                        });
                                });
                        }
                        _handleArrowKeyPress(t, e) {
                            const n = this.editor,
                                o = n.model,
                                i = o.document.selection,
                                r = o.schema,
                                s = n.editing.view,
                                a = (function (t, e) {
                                    const n = br(t, e);
                                    return "down" === n || "right" === n;
                                })(e.keyCode, n.locale.contentLanguageDirection),
                                c = s.document.selection.getSelectedElement();
                            let l;
                            cm(c, n.editing.mapper.toModelElement(c), r)
                                ? (l = this._handleArrowKeyPressOnSelectedWidget(a))
                                : i.isCollapsed
                                ? (l = this._handleArrowKeyPressWhenSelectionNextToAWidget(a))
                                : e.shiftKey || (l = this._handleArrowKeyPressWhenNonCollapsedSelection(a)),
                                l && (e.preventDefault(), t.stop());
                        }
                        _handleArrowKeyPressOnSelectedWidget(t) {
                            const e = this.editor.model,
                                n = lm(e.document.selection);
                            return e.change((e) => {
                                if (!n) return e.setSelectionAttribute(am, t ? "after" : "before"), !0;
                                if (!(n === (t ? "after" : "before"))) return e.removeSelectionAttribute(am), !0;
                                return !1;
                            });
                        }
                        _handleArrowKeyPressWhenSelectionNextToAWidget(t) {
                            const e = this.editor,
                                n = e.model,
                                o = n.schema,
                                i = e.plugins.get("Widget"),
                                r = i._getObjectElementNextToSelection(t);
                            return (
                                !!cm(e.editing.mapper.toViewElement(r), r, o) &&
                                (n.change((e) => {
                                    i._setSelectionOverElement(r), e.setSelectionAttribute(am, t ? "before" : "after");
                                }),
                                !0)
                            );
                        }
                        _handleArrowKeyPressWhenNonCollapsedSelection(t) {
                            const e = this.editor,
                                n = e.model,
                                o = n.schema,
                                i = e.editing.mapper,
                                r = n.document.selection,
                                s = t ? r.getLastPosition().nodeBefore : r.getFirstPosition().nodeAfter;
                            return (
                                !!cm(i.toViewElement(s), s, o) &&
                                (n.change((e) => {
                                    e.setSelection(s, "on"), e.setSelectionAttribute(am, t ? "after" : "before");
                                }),
                                !0)
                            );
                        }
                        _enableInsertingParagraphsOnButtonClick() {
                            const t = this.editor,
                                e = t.editing.view;
                            this._listenToIfEnabled(e.document, "mousedown", (n, o) => {
                                const i = o.domTarget.closest(".ck-widget__type-around__button");
                                if (!i) return;
                                const r = (function (t) {
                                        return t.classList.contains("ck-widget__type-around__button_before") ? "before" : "after";
                                    })(i),
                                    s = (function (t, e) {
                                        const n = t.closest(".ck-widget");
                                        return e.mapDomToView(n);
                                    })(i, e.domConverter),
                                    a = t.editing.mapper.toModelElement(s);
                                this._insertParagraph(a, r), o.preventDefault(), n.stop();
                            });
                        }
                        _enableInsertingParagraphsOnEnterKeypress() {
                            const t = this.editor,
                                e = t.model.document.selection,
                                n = t.editing.view;
                            this._listenToIfEnabled(
                                n.document,
                                "enter",
                                (n, o) => {
                                    if ("atTarget" != n.eventPhase) return;
                                    const i = e.getSelectedElement(),
                                        r = t.editing.mapper.toViewElement(i),
                                        s = t.model.schema;
                                    let a;
                                    this._insertParagraphAccordingToFakeCaretPosition() ? (a = !0) : cm(r, i, s) && (this._insertParagraph(i, o.isSoft ? "before" : "after"), (a = !0)), a && (o.preventDefault(), n.stop());
                                },
                                { context: Jg }
                            );
                        }
                        _enableInsertingParagraphsOnTypingKeystroke() {
                            const t = this.editor.editing.view,
                                e = [gr.enter, gr.delete, gr.backspace];
                            this._listenToIfEnabled(
                                t.document,
                                "keydown",
                                (t, n) => {
                                    e.includes(n.keyCode) || hm(n) || this._insertParagraphAccordingToFakeCaretPosition();
                                },
                                { priority: "high" }
                            );
                        }
                        _enableDeleteIntegration() {
                            const t = this.editor,
                                e = t.editing.view,
                                n = t.model,
                                o = n.schema;
                            this._listenToIfEnabled(
                                e.document,
                                "delete",
                                (e, i) => {
                                    if ("atTarget" != e.eventPhase) return;
                                    const r = lm(n.document.selection);
                                    if (!r) return;
                                    const s = i.direction,
                                        a = n.document.selection.getSelectedElement(),
                                        c = "forward" == s;
                                    if (("before" === r) === c) t.execute("delete", { selection: n.createSelection(a, "on") });
                                    else {
                                        const e = o.getNearestSelectionRange(n.createPositionAt(a, r), s);
                                        if (e)
                                            if (e.isCollapsed) {
                                                const i = n.createSelection(e.start);
                                                if ((n.modifySelection(i, { direction: s }), i.focus.isEqual(e.start))) {
                                                    const t = (function (t, e) {
                                                        let n = e;
                                                        for (const o of e.getAncestors({ parentFirst: !0 })) {
                                                            if (o.childCount > 1 || t.isLimit(o)) break;
                                                            n = o;
                                                        }
                                                        return n;
                                                    })(o, e.start.parent);
                                                    n.deleteContent(n.createSelection(t, "on"), { doNotAutoparagraph: !0 });
                                                } else
                                                    n.change((n) => {
                                                        n.setSelection(e), t.execute(c ? "deleteForward" : "delete");
                                                    });
                                            } else
                                                n.change((n) => {
                                                    n.setSelection(e), t.execute(c ? "deleteForward" : "delete");
                                                });
                                    }
                                    i.preventDefault(), e.stop();
                                },
                                { context: Jg }
                            );
                        }
                        _enableInsertContentIntegration() {
                            const t = this.editor,
                                e = this.editor.model,
                                n = e.document.selection;
                            this._listenToIfEnabled(
                                t.model,
                                "insertContent",
                                (t, [o, i]) => {
                                    if (i && !i.is("documentSelection")) return;
                                    const r = lm(n);
                                    return r
                                        ? (t.stop(),
                                          e.change((t) => {
                                              const i = n.getSelectedElement(),
                                                  s = e.createPositionAt(i, r),
                                                  a = t.createSelection(s),
                                                  c = e.insertContent(o, a);
                                              return t.setSelection(a), c;
                                          }))
                                        : void 0;
                                },
                                { priority: "high" }
                            );
                        }
                        _enableInsertObjectIntegration() {
                            const t = this.editor,
                                e = this.editor.model.document.selection;
                            this._listenToIfEnabled(
                                t.model,
                                "insertObject",
                                (t, n) => {
                                    const [, o, , i = {}] = n;
                                    if (o && !o.is("documentSelection")) return;
                                    const r = lm(e);
                                    r && ((i.findOptimalPosition = r), (n[3] = i));
                                },
                                { priority: "high" }
                            );
                        }
                        _enableDeleteContentIntegration() {
                            const t = this.editor,
                                e = this.editor.model.document.selection;
                            this._listenToIfEnabled(
                                t.model,
                                "deleteContent",
                                (t, [n]) => {
                                    if (n && !n.is("documentSelection")) return;
                                    lm(e) && t.stop();
                                },
                                { priority: "high" }
                            );
                        }
                    }
                    function bm(t) {
                        const e = t.model;
                        return (n, o) => {
                            const i = o.keyCode == gr.arrowup,
                                r = o.keyCode == gr.arrowdown,
                                s = o.shiftKey,
                                a = e.document.selection;
                            if (!i && !r) return;
                            const c = r;
                            if (
                                s &&
                                (function (t, e) {
                                    return !t.isCollapsed && t.isBackward == e;
                                })(a, c)
                            )
                                return;
                            const l = (function (t, e, n) {
                                const o = t.model;
                                if (n) {
                                    const t = e.isCollapsed ? e.focus : e.getLastPosition(),
                                        n = wm(o, t, "forward");
                                    if (!n) return null;
                                    const i = o.createRange(t, n),
                                        r = _m(o.schema, i, "backward");
                                    return r ? o.createRange(t, r) : null;
                                }
                                {
                                    const t = e.isCollapsed ? e.focus : e.getFirstPosition(),
                                        n = wm(o, t, "backward");
                                    if (!n) return null;
                                    const i = o.createRange(n, t),
                                        r = _m(o.schema, i, "forward");
                                    return r ? o.createRange(r, t) : null;
                                }
                            })(t, a, c);
                            if (l) {
                                if (l.isCollapsed) {
                                    if (a.isCollapsed) return;
                                    if (s) return;
                                }
                                (l.isCollapsed ||
                                    (function (t, e, n) {
                                        const o = t.model,
                                            i = t.view.domConverter;
                                        if (n) {
                                            const t = o.createSelection(e.start);
                                            o.modifySelection(t), t.focus.isAtEnd || e.start.isEqual(t.focus) || (e = o.createRange(t.focus, e.end));
                                        }
                                        const r = t.mapper.toViewRange(e),
                                            s = i.viewRangeToDom(r),
                                            a = Da.getDomRangeRects(s);
                                        let c;
                                        for (const t of a)
                                            if (void 0 !== c) {
                                                if (Math.round(t.top) >= c) return !1;
                                                c = Math.max(c, Math.round(t.bottom));
                                            } else c = Math.round(t.bottom);
                                        return !0;
                                    })(t, l, c)) &&
                                    (e.change((t) => {
                                        const n = c ? l.end : l.start;
                                        if (s) {
                                            const o = e.createSelection(a.anchor);
                                            o.setFocus(n), t.setSelection(o);
                                        } else t.setSelection(n);
                                    }),
                                    n.stop(),
                                    o.preventDefault(),
                                    o.stopPropagation());
                            }
                        };
                    }
                    function wm(t, e, n) {
                        const o = t.schema,
                            i = t.createRangeIn(e.root),
                            r = "forward" == n ? "elementStart" : "elementEnd";
                        for (const { previousPosition: t, item: s, type: a } of i.getWalker({ startPosition: e, direction: n })) {
                            if (o.isLimit(s) && !o.isInline(s)) return t;
                            if (a == r && o.isBlock(s)) return null;
                        }
                        return null;
                    }
                    function _m(t, e, n) {
                        const o = "backward" == n ? e.end : e.start;
                        if (t.checkChild(o, "$text")) return o;
                        for (const { nextPosition: o } of e.getWalker({ direction: n })) if (t.checkChild(o, "$text")) return o;
                        return null;
                    }
                    var Am = n(3488),
                        Cm = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Am.Z, Cm);
                    Am.Z.locals;
                    class vm extends V {
                        static get pluginName() {
                            return "Widget";
                        }
                        static get requires() {
                            return [km, qg];
                        }
                        init() {
                            const t = this.editor,
                                e = t.editing.view,
                                n = e.document;
                            (this._previouslySelected = new Set()),
                                this.editor.editing.downcastDispatcher.on("selection", (e, n, o) => {
                                    const i = o.writer,
                                        r = n.selection;
                                    if (r.isCollapsed) return;
                                    const s = r.getSelectedElement();
                                    if (!s) return;
                                    const a = t.editing.mapper.toViewElement(s);
                                    Jg(a) && o.consumable.consume(r, "selection") && i.setSelection(i.createRangeOn(a), { fake: !0, label: om(a) });
                                }),
                                this.editor.editing.downcastDispatcher.on(
                                    "selection",
                                    (t, e, n) => {
                                        this._clearPreviouslySelectedWidgets(n.writer);
                                        const o = n.writer,
                                            i = o.document.selection;
                                        let r = null;
                                        for (const t of i.getRanges())
                                            for (const e of t) {
                                                const t = e.item;
                                                Jg(t) && !ym(t, r) && (o.addClass(Zg, t), this._previouslySelected.add(t), (r = t));
                                            }
                                    },
                                    { priority: "low" }
                                ),
                                e.addObserver(Cg),
                                this.listenTo(n, "mousedown", (...t) => this._onMousedown(...t)),
                                this.listenTo(
                                    n,
                                    "arrowKey",
                                    (...t) => {
                                        this._handleSelectionChangeOnArrowKeyPress(...t);
                                    },
                                    { context: [Jg, "$text"] }
                                ),
                                this.listenTo(
                                    n,
                                    "arrowKey",
                                    (...t) => {
                                        this._preventDefaultOnArrowKeyPress(...t);
                                    },
                                    { context: "$root" }
                                ),
                                this.listenTo(n, "arrowKey", bm(this.editor.editing), { context: "$text" }),
                                this.listenTo(
                                    n,
                                    "delete",
                                    (t, e) => {
                                        this._handleDelete("forward" == e.direction) && (e.preventDefault(), t.stop());
                                    },
                                    { context: "$root" }
                                );
                        }
                        _onMousedown(t, e) {
                            const n = this.editor,
                                o = n.editing.view,
                                i = o.document;
                            let r = e.target;
                            if (
                                (function (t) {
                                    for (; t; ) {
                                        if (t.is("editableElement") && !t.is("rootElement")) return !0;
                                        if (Jg(t)) return !1;
                                        t = t.parent;
                                    }
                                    return !1;
                                })(r)
                            ) {
                                if ((lr.isSafari || lr.isGecko) && e.domEvent.detail >= 3) {
                                    const t = n.editing.mapper,
                                        o = r.is("attributeElement") ? r.findAncestor((t) => !t.is("attributeElement")) : r,
                                        i = t.toModelElement(o);
                                    e.preventDefault(),
                                        this.editor.model.change((t) => {
                                            t.setSelection(i, "in");
                                        });
                                }
                                return;
                            }
                            if (!Jg(r) && ((r = r.findAncestor(Jg)), !r)) return;
                            lr.isAndroid && e.preventDefault(), i.isFocused || o.focus();
                            const s = n.editing.mapper.toModelElement(r);
                            this._setSelectionOverElement(s);
                        }
                        _handleSelectionChangeOnArrowKeyPress(t, e) {
                            const n = e.keyCode,
                                o = this.editor.model,
                                i = o.schema,
                                r = o.document.selection,
                                s = r.getSelectedElement(),
                                a = br(n, this.editor.locale.contentLanguageDirection),
                                c = "down" == a || "right" == a,
                                l = "up" == a || "down" == a;
                            if (s && i.isObject(s)) {
                                const n = c ? r.getLastPosition() : r.getFirstPosition(),
                                    s = i.getNearestSelectionRange(n, c ? "forward" : "backward");
                                return void (
                                    s &&
                                    (o.change((t) => {
                                        t.setSelection(s);
                                    }),
                                    e.preventDefault(),
                                    t.stop())
                                );
                            }
                            if (!r.isCollapsed && !e.shiftKey) {
                                const n = r.getFirstPosition(),
                                    s = r.getLastPosition(),
                                    a = n.nodeAfter,
                                    l = s.nodeBefore;
                                return void (
                                    ((a && i.isObject(a)) || (l && i.isObject(l))) &&
                                    (o.change((t) => {
                                        t.setSelection(c ? s : n);
                                    }),
                                    e.preventDefault(),
                                    t.stop())
                                );
                            }
                            if (!r.isCollapsed) return;
                            const d = this._getObjectElementNextToSelection(c);
                            if (d && i.isObject(d)) {
                                if (i.isInline(d) && l) return;
                                this._setSelectionOverElement(d), e.preventDefault(), t.stop();
                            }
                        }
                        _preventDefaultOnArrowKeyPress(t, e) {
                            const n = this.editor.model,
                                o = n.schema,
                                i = n.document.selection.getSelectedElement();
                            i && o.isObject(i) && (e.preventDefault(), t.stop());
                        }
                        _handleDelete(t) {
                            if (this.editor.isReadOnly) return;
                            const e = this.editor.model.document.selection;
                            if (!e.isCollapsed) return;
                            const n = this._getObjectElementNextToSelection(t);
                            return n
                                ? (this.editor.model.change((t) => {
                                      let o = e.anchor.parent;
                                      for (; o.isEmpty; ) {
                                          const e = o;
                                          (o = e.parent), t.remove(e);
                                      }
                                      this._setSelectionOverElement(n);
                                  }),
                                  !0)
                                : void 0;
                        }
                        _setSelectionOverElement(t) {
                            this.editor.model.change((e) => {
                                e.setSelection(e.createRangeOn(t));
                            });
                        }
                        _getObjectElementNextToSelection(t) {
                            const e = this.editor.model,
                                n = e.schema,
                                o = e.document.selection,
                                i = e.createSelection(o);
                            if ((e.modifySelection(i, { direction: t ? "forward" : "backward" }), i.isEqual(o))) return null;
                            const r = t ? i.focus.nodeBefore : i.focus.nodeAfter;
                            return r && n.isObject(r) ? r : null;
                        }
                        _clearPreviouslySelectedWidgets(t) {
                            for (const e of this._previouslySelected) t.removeClass(Zg, e);
                            this._previouslySelected.clear();
                        }
                    }
                    function ym(t, e) {
                        return !!e && Array.from(t.getAncestors()).includes(e);
                    }
                    const xm = function (t, e, n) {
                        var o = !0,
                            i = !0;
                        if ("function" != typeof t) throw new TypeError("Expected a function");
                        return D(n) && ((o = "leading" in n ? !!n.leading : o), (i = "trailing" in n ? !!n.trailing : i)), ca(t, e, { leading: o, maxWait: e, trailing: i });
                    };
                    var Em = n(903),
                        Dm = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Em.Z, Dm);
                    Em.Z.locals;
                    class Im extends V {
                        static get pluginName() {
                            return "DragDrop";
                        }
                        static get requires() {
                            return [Bg, vm];
                        }
                        init() {
                            const t = this.editor,
                                e = t.editing.view;
                            (this._draggedRange = null),
                                (this._draggingUid = ""),
                                (this._draggableElement = null),
                                (this._updateDropMarkerThrottled = xm((t) => this._updateDropMarker(t), 40)),
                                (this._removeDropMarkerDelayed = Sm(() => this._removeDropMarker(), 40)),
                                (this._clearDraggableAttributesDelayed = Sm(() => this._clearDraggableAttributes(), 40)),
                                e.addObserver(Tg),
                                e.addObserver(Cg),
                                this._setupDragging(),
                                this._setupContentInsertionIntegration(),
                                this._setupClipboardInputIntegration(),
                                this._setupDropMarker(),
                                this._setupDraggableAttributeHandling(),
                                this.listenTo(t, "change:isReadOnly", (t, e, n) => {
                                    n ? this.forceDisabled("readOnlyMode") : this.clearForceDisabled("readOnlyMode");
                                }),
                                this.on("change:isEnabled", (t, e, n) => {
                                    n || this._finalizeDragging(!1);
                                }),
                                lr.isAndroid && this.forceDisabled("noAndroidSupport");
                        }
                        destroy() {
                            return (
                                this._draggedRange && (this._draggedRange.detach(), (this._draggedRange = null)),
                                this._updateDropMarkerThrottled.cancel(),
                                this._removeDropMarkerDelayed.cancel(),
                                this._clearDraggableAttributesDelayed.cancel(),
                                super.destroy()
                            );
                        }
                        _setupDragging() {
                            const t = this.editor,
                                e = t.model,
                                n = e.document,
                                o = t.editing.view,
                                i = o.document;
                            this.listenTo(
                                i,
                                "dragstart",
                                (o, s) => {
                                    const a = n.selection;
                                    if (s.target && s.target.is("editableElement")) return void s.preventDefault();
                                    const c = s.target ? Nm(s.target) : null;
                                    if (c) {
                                        const n = t.editing.mapper.toModelElement(c);
                                        (this._draggedRange = hc.fromRange(e.createRangeOn(n))), t.plugins.has("WidgetToolbarRepository") && t.plugins.get("WidgetToolbarRepository").forceDisabled("dragDrop");
                                    } else if (!i.selection.isCollapsed) {
                                        const t = i.selection.getSelectedElement();
                                        (t && Jg(t)) || (this._draggedRange = hc.fromRange(a.getFirstRange()));
                                    }
                                    if (!this._draggedRange) return void s.preventDefault();
                                    (this._draggingUid = r()), (s.dataTransfer.effectAllowed = this.isEnabled ? "copyMove" : "copy"), s.dataTransfer.setData("application/ckeditor5-dragging-uid", this._draggingUid);
                                    const l = e.createSelection(this._draggedRange.toRange()),
                                        d = t.data.toView(e.getSelectedContent(l));
                                    i.fire("clipboardOutput", { dataTransfer: s.dataTransfer, content: d, method: o.name }), this.isEnabled || (this._draggedRange.detach(), (this._draggedRange = null), (this._draggingUid = ""));
                                },
                                { priority: "low" }
                            ),
                                this.listenTo(
                                    i,
                                    "dragend",
                                    (t, e) => {
                                        this._finalizeDragging(!e.dataTransfer.isCanceled && "move" == e.dataTransfer.dropEffect);
                                    },
                                    { priority: "low" }
                                ),
                                this.listenTo(i, "dragenter", () => {
                                    this.isEnabled && o.focus();
                                }),
                                this.listenTo(i, "dragleave", () => {
                                    this._removeDropMarkerDelayed();
                                }),
                                this.listenTo(
                                    i,
                                    "dragging",
                                    (e, n) => {
                                        if (!this.isEnabled) return void (n.dataTransfer.dropEffect = "none");
                                        this._removeDropMarkerDelayed.cancel();
                                        const o = Mm(t, n.targetRanges, n.target);
                                        this._draggedRange || (n.dataTransfer.dropEffect = "copy"),
                                            lr.isGecko || ("copy" == n.dataTransfer.effectAllowed ? (n.dataTransfer.dropEffect = "copy") : ["all", "copyMove"].includes(n.dataTransfer.effectAllowed) && (n.dataTransfer.dropEffect = "move")),
                                            o && this._updateDropMarkerThrottled(o);
                                    },
                                    { priority: "low" }
                                );
                        }
                        _setupClipboardInputIntegration() {
                            const t = this.editor,
                                e = t.editing.view.document;
                            this.listenTo(
                                e,
                                "clipboardInput",
                                (e, n) => {
                                    if ("drop" != n.method) return;
                                    const o = Mm(t, n.targetRanges, n.target);
                                    if ((this._removeDropMarker(), !o)) return this._finalizeDragging(!1), void e.stop();
                                    this._draggedRange && this._draggingUid != n.dataTransfer.getData("application/ckeditor5-dragging-uid") && (this._draggedRange.detach(), (this._draggedRange = null), (this._draggingUid = ""));
                                    if ("move" == Tm(n.dataTransfer) && this._draggedRange && this._draggedRange.containsRange(o, !0)) return this._finalizeDragging(!1), void e.stop();
                                    n.targetRanges = [t.editing.mapper.toViewRange(o)];
                                },
                                { priority: "high" }
                            );
                        }
                        _setupContentInsertionIntegration() {
                            const t = this.editor.plugins.get(Bg);
                            t.on(
                                "contentInsertion",
                                (t, e) => {
                                    if (!this.isEnabled || "drop" !== e.method) return;
                                    const n = e.targetRanges.map((t) => this.editor.editing.mapper.toModelRange(t));
                                    this.editor.model.change((t) => t.setSelection(n));
                                },
                                { priority: "high" }
                            ),
                                t.on(
                                    "contentInsertion",
                                    (t, e) => {
                                        if (!this.isEnabled || "drop" !== e.method) return;
                                        const n = "move" == Tm(e.dataTransfer),
                                            o = !e.resultRange || !e.resultRange.isCollapsed;
                                        this._finalizeDragging(o && n);
                                    },
                                    { priority: "lowest" }
                                );
                        }
                        _setupDraggableAttributeHandling() {
                            const t = this.editor,
                                e = t.editing.view,
                                n = e.document;
                            this.listenTo(n, "mousedown", (o, i) => {
                                if (lr.isAndroid || !i) return;
                                this._clearDraggableAttributesDelayed.cancel();
                                let r = Nm(i.target);
                                if (lr.isBlink && !t.isReadOnly && !r && !n.selection.isCollapsed) {
                                    const t = n.selection.getSelectedElement();
                                    (t && Jg(t)) || (r = n.selection.editableElement);
                                }
                                r &&
                                    (e.change((t) => {
                                        t.setAttribute("draggable", "true", r);
                                    }),
                                    (this._draggableElement = t.editing.mapper.toModelElement(r)));
                            }),
                                this.listenTo(n, "mouseup", () => {
                                    lr.isAndroid || this._clearDraggableAttributesDelayed();
                                });
                        }
                        _clearDraggableAttributes() {
                            const t = this.editor.editing;
                            t.view.change((e) => {
                                this._draggableElement && "$graveyard" != this._draggableElement.root.rootName && e.removeAttribute("draggable", t.mapper.toViewElement(this._draggableElement)), (this._draggableElement = null);
                            });
                        }
                        _setupDropMarker() {
                            const t = this.editor;
                            t.conversion.for("editingDowncast").markerToHighlight({ model: "drop-target", view: { classes: ["ck-clipboard-drop-target-range"] } }),
                                t.conversion.for("editingDowncast").markerToElement({
                                    model: "drop-target",
                                    view: (e, { writer: n }) => {
                                        if (t.model.schema.checkChild(e.markerRange.start, "$text"))
                                            return n.createUIElement("span", { class: "ck ck-clipboard-drop-target-position" }, function (t) {
                                                const e = this.toDomElement(t);
                                                return e.append("⁠", t.createElement("span"), "⁠"), e;
                                            });
                                    },
                                });
                        }
                        _updateDropMarker(t) {
                            const e = this.editor,
                                n = e.model.markers;
                            e.model.change((e) => {
                                n.has("drop-target") ? n.get("drop-target").getRange().isEqual(t) || e.updateMarker("drop-target", { range: t }) : e.addMarker("drop-target", { range: t, usingOperation: !1, affectsData: !1 });
                            });
                        }
                        _removeDropMarker() {
                            const t = this.editor.model;
                            this._removeDropMarkerDelayed.cancel(),
                                this._updateDropMarkerThrottled.cancel(),
                                t.markers.has("drop-target") &&
                                    t.change((t) => {
                                        t.removeMarker("drop-target");
                                    });
                        }
                        _finalizeDragging(t) {
                            const e = this.editor,
                                n = e.model;
                            this._removeDropMarker(),
                                this._clearDraggableAttributes(),
                                e.plugins.has("WidgetToolbarRepository") && e.plugins.get("WidgetToolbarRepository").clearForceDisabled("dragDrop"),
                                (this._draggingUid = ""),
                                this._draggedRange && (t && this.isEnabled && n.deleteContent(n.createSelection(this._draggedRange), { doNotAutoparagraph: !0 }), this._draggedRange.detach(), (this._draggedRange = null));
                        }
                    }
                    function Mm(t, e, n) {
                        const o = t.model,
                            i = t.editing.mapper;
                        let r = null;
                        const s = e ? e[0].start : null;
                        if (
                            (n.is("uiElement") && (n = n.parent),
                            (r = (function (t, e) {
                                const n = t.model,
                                    o = t.editing.mapper;
                                if (Jg(e)) return n.createRangeOn(o.toModelElement(e));
                                if (!e.is("editableElement")) {
                                    const t = e.findAncestor((t) => Jg(t) || t.is("editableElement"));
                                    if (Jg(t)) return n.createRangeOn(o.toModelElement(t));
                                }
                                return null;
                            })(t, n)),
                            r)
                        )
                            return r;
                        const a = (function (t, e) {
                                const n = t.editing.mapper,
                                    o = t.editing.view,
                                    i = n.toModelElement(e);
                                if (i) return i;
                                const r = o.createPositionBefore(e),
                                    s = n.findMappedViewAncestor(r);
                                return n.toModelElement(s);
                            })(t, n),
                            c = s ? i.toModelPosition(s) : null;
                        return c
                            ? ((r = (function (t, e, n) {
                                  const o = t.model;
                                  if (!o.schema.checkChild(n, "$block")) return null;
                                  const i = o.createPositionAt(n, 0),
                                      r = e.path.slice(0, i.path.length),
                                      s = o.createPositionFromPath(e.root, r).nodeAfter;
                                  if (s && o.schema.isObject(s)) return o.createRangeOn(s);
                                  return null;
                              })(t, c, a)),
                              r ||
                                  ((r = o.schema.getNearestSelectionRange(c, lr.isGecko ? "forward" : "backward")),
                                  r ||
                                      (function (t, e) {
                                          const n = t.model;
                                          for (; e; ) {
                                              if (n.schema.isObject(e)) return n.createRangeOn(e);
                                              e = e.parent;
                                          }
                                      })(t, c.parent)))
                            : (function (t, e) {
                                  const n = t.model,
                                      o = n.schema,
                                      i = n.createPositionAt(e, 0);
                                  return o.getNearestSelectionRange(i, "forward");
                              })(t, a);
                    }
                    function Tm(t) {
                        return lr.isGecko ? t.dropEffect : ["all", "copyMove"].includes(t.effectAllowed) ? "move" : "copy";
                    }
                    function Sm(t, e) {
                        let n;
                        function o(...i) {
                            o.cancel(), (n = setTimeout(() => t(...i), e));
                        }
                        return (
                            (o.cancel = () => {
                                clearTimeout(n);
                            }),
                            o
                        );
                    }
                    function Nm(t) {
                        if (t.is("editableElement")) return null;
                        if (t.hasClass("ck-widget__selection-handle")) return t.findAncestor(Jg);
                        if (Jg(t)) return t;
                        const e = t.findAncestor((t) => Jg(t) || t.is("editableElement"));
                        return Jg(e) ? e : null;
                    }
                    class Bm extends V {
                        static get pluginName() {
                            return "PastePlainText";
                        }
                        static get requires() {
                            return [Bg];
                        }
                        init() {
                            const t = this.editor,
                                e = t.model,
                                n = t.editing.view,
                                o = n.document,
                                i = e.document.selection;
                            let r = !1;
                            n.addObserver(Tg),
                                this.listenTo(o, "keydown", (t, e) => {
                                    r = e.shiftKey;
                                }),
                                t.plugins.get(Bg).on("contentInsertion", (t, n) => {
                                    (r ||
                                        (function (t, e) {
                                            if (t.childCount > 1) return !1;
                                            const n = t.getChild(0);
                                            if (e.isObject(n)) return !1;
                                            return 0 == [...n.getAttributeKeys()].length;
                                        })(n.content, e.schema)) &&
                                        e.change((t) => {
                                            const o = Array.from(i.getAttributes()).filter(([t]) => e.schema.getAttributeProperties(t).isFormatting);
                                            i.isCollapsed || e.deleteContent(i, { doNotAutoparagraph: !0 }), o.push(...i.getAttributes());
                                            const r = t.createRangeIn(n.content);
                                            for (const e of r.getItems()) e.is("$textProxy") && t.setAttributes(o, e);
                                        });
                                });
                        }
                    }
                    class Pm extends V {
                        static get pluginName() {
                            return "Clipboard";
                        }
                        static get requires() {
                            return [Bg, Im, Bm];
                        }
                    }
                    class zm extends U {
                        execute() {
                            const t = this.editor.model,
                                e = t.document;
                            t.change((n) => {
                                !(function (t, e, n) {
                                    const o = n.isCollapsed,
                                        i = n.getFirstRange(),
                                        r = i.start.parent,
                                        s = i.end.parent,
                                        a = r == s;
                                    if (o) {
                                        const o = Pg(t.schema, n.getAttributes());
                                        Lm(t, e, i.end), e.removeSelectionAttribute(n.getAttributeKeys()), e.setSelectionAttribute(o);
                                    } else {
                                        const o = !(i.start.isAtStart && i.end.isAtEnd);
                                        t.deleteContent(n, { leaveUnmerged: o }), a ? Lm(t, e, n.focus) : o && e.setSelection(s, 0);
                                    }
                                })(t, n, e.selection),
                                    this.fire("afterExecute", { writer: n });
                            });
                        }
                        refresh() {
                            const t = this.editor.model,
                                e = t.document;
                            this.isEnabled = (function (t, e) {
                                if (e.rangeCount > 1) return !1;
                                const n = e.anchor;
                                if (!n || !t.checkChild(n, "softBreak")) return !1;
                                const o = e.getFirstRange(),
                                    i = o.start.parent,
                                    r = o.end.parent;
                                if ((Om(i, t) || Om(r, t)) && i !== r) return !1;
                                return !0;
                            })(t.schema, e.selection);
                        }
                    }
                    function Lm(t, e, n) {
                        const o = e.createElement("softBreak");
                        t.insertContent(o, n), e.setSelection(o, "after");
                    }
                    function Om(t, e) {
                        return !t.is("rootElement") && (e.isLimit(t) || Om(t.parent, e));
                    }
                    class Rm extends V {
                        static get pluginName() {
                            return "ShiftEnter";
                        }
                        init() {
                            const t = this.editor,
                                e = t.model.schema,
                                n = t.conversion,
                                o = t.editing.view,
                                i = o.document;
                            e.register("softBreak", { allowWhere: "$text", isInline: !0 }),
                                n.for("upcast").elementToElement({ model: "softBreak", view: "br" }),
                                n.for("downcast").elementToElement({ model: "softBreak", view: (t, { writer: e }) => e.createEmptyElement("br") }),
                                o.addObserver(Og),
                                t.commands.add("shiftEnter", new zm(t)),
                                this.listenTo(
                                    i,
                                    "enter",
                                    (e, n) => {
                                        n.preventDefault(), n.isSoft && (t.execute("shiftEnter"), o.scrollToTheSelection());
                                    },
                                    { priority: "low" }
                                );
                        }
                    }
                    class jm extends U {
                        constructor(t) {
                            super(t), (this.affectsData = !1);
                        }
                        execute() {
                            const t = this.editor.model,
                                e = t.document.selection;
                            let n = t.schema.getLimitElement(e);
                            if (e.containsEntireContent(n) || !Fm(t.schema, n))
                                do {
                                    if (((n = n.parent), !n)) return;
                                } while (!Fm(t.schema, n));
                            t.change((t) => {
                                t.setSelection(n, "in");
                            });
                        }
                    }
                    function Fm(t, e) {
                        return t.isLimit(e) && (t.checkChild(e, "$text") || t.checkChild(e, "paragraph"));
                    }
                    const Vm = fr("Ctrl+A");
                    class Hm extends V {
                        static get pluginName() {
                            return "SelectAllEditing";
                        }
                        init() {
                            const t = this.editor,
                                e = t.editing.view.document;
                            t.commands.add("selectAll", new jm(t)),
                                this.listenTo(e, "keydown", (e, n) => {
                                    pr(n) === Vm && (t.execute("selectAll"), n.preventDefault());
                                });
                        }
                    }
                    class Um extends V {
                        static get pluginName() {
                            return "SelectAllUI";
                        }
                        init() {
                            const t = this.editor;
                            t.ui.componentFactory.add("selectAll", (e) => {
                                const n = t.commands.get("selectAll"),
                                    o = new Lh(e),
                                    i = e.t;
                                return (
                                    o.set({
                                        label: i("Select all"),
                                        icon:
                                            '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M.75 15.5a.75.75 0 0 1 .75.75V18l.008.09A.5.5 0 0 0 2 18.5h1.75a.75.75 0 1 1 0 1.5H1.5l-.144-.007a1.5 1.5 0 0 1-1.35-1.349L0 18.5v-2.25a.75.75 0 0 1 .75-.75zm18.5 0a.75.75 0 0 1 .75.75v2.25l-.007.144a1.5 1.5 0 0 1-1.349 1.35L18.5 20h-2.25a.75.75 0 1 1 0-1.5H18a.5.5 0 0 0 .492-.41L18.5 18v-1.75a.75.75 0 0 1 .75-.75zm-10.45 3c.11 0 .2.09.2.2v1.1a.2.2 0 0 1-.2.2H7.2a.2.2 0 0 1-.2-.2v-1.1c0-.11.09-.2.2-.2h1.6zm4 0c.11 0 .2.09.2.2v1.1a.2.2 0 0 1-.2.2h-1.6a.2.2 0 0 1-.2-.2v-1.1c0-.11.09-.2.2-.2h1.6zm.45-5.5a.75.75 0 1 1 0 1.5h-8.5a.75.75 0 1 1 0-1.5h8.5zM1.3 11c.11 0 .2.09.2.2v1.6a.2.2 0 0 1-.2.2H.2a.2.2 0 0 1-.2-.2v-1.6c0-.11.09-.2.2-.2h1.1zm18.5 0c.11 0 .2.09.2.2v1.6a.2.2 0 0 1-.2.2h-1.1a.2.2 0 0 1-.2-.2v-1.6c0-.11.09-.2.2-.2h1.1zm-4.55-2a.75.75 0 1 1 0 1.5H4.75a.75.75 0 1 1 0-1.5h10.5zM1.3 7c.11 0 .2.09.2.2v1.6a.2.2 0 0 1-.2.2H.2a.2.2 0 0 1-.2-.2V7.2c0-.11.09-.2.2-.2h1.1zm18.5 0c.11 0 .2.09.2.2v1.6a.2.2 0 0 1-.2.2h-1.1a.2.2 0 0 1-.2-.2V7.2c0-.11.09-.2.2-.2h1.1zm-4.55-2a.75.75 0 1 1 0 1.5h-2.5a.75.75 0 1 1 0-1.5h2.5zm-5 0a.75.75 0 1 1 0 1.5h-5.5a.75.75 0 0 1 0-1.5h5.5zm-6.5-5a.75.75 0 0 1 0 1.5H2a.5.5 0 0 0-.492.41L1.5 2v1.75a.75.75 0 0 1-1.5 0V1.5l.007-.144A1.5 1.5 0 0 1 1.356.006L1.5 0h2.25zM18.5 0l.144.007a1.5 1.5 0 0 1 1.35 1.349L20 1.5v2.25a.75.75 0 1 1-1.5 0V2l-.008-.09A.5.5 0 0 0 18 1.5h-1.75a.75.75 0 1 1 0-1.5h2.25zM8.8 0c.11 0 .2.09.2.2v1.1a.2.2 0 0 1-.2.2H7.2a.2.2 0 0 1-.2-.2V.2c0-.11.09-.2.2-.2h1.6zm4 0c.11 0 .2.09.2.2v1.1a.2.2 0 0 1-.2.2h-1.6a.2.2 0 0 1-.2-.2V.2c0-.11.09-.2.2-.2h1.6z"/></svg>',
                                        keystroke: "Ctrl+A",
                                        tooltip: !0,
                                    }),
                                    o.bind("isOn", "isEnabled").to(n, "value", "isEnabled"),
                                    this.listenTo(o, "execute", () => {
                                        t.execute("selectAll"), t.editing.view.focus();
                                    }),
                                    o
                                );
                            });
                        }
                    }
                    class Wm extends V {
                        static get requires() {
                            return [Hm, Um];
                        }
                        static get pluginName() {
                            return "SelectAll";
                        }
                    }
                    class qm extends U {
                        constructor(t, e) {
                            super(t), (this._buffer = new jg(t.model, e));
                        }
                        get buffer() {
                            return this._buffer;
                        }
                        destroy() {
                            super.destroy(), this._buffer.destroy();
                        }
                        execute(t = {}) {
                            const e = this.editor.model,
                                n = e.document,
                                o = t.text || "",
                                i = o.length,
                                r = t.range ? e.createSelection(t.range) : n.selection,
                                s = t.resultRange;
                            e.enqueueChange(this._buffer.batch, (t) => {
                                this._buffer.lock(),
                                    e.deleteContent(r),
                                    o && e.insertContent(t.createText(o, n.selection.getAttributes()), r),
                                    s ? t.setSelection(s) : r.is("documentSelection") || t.setSelection(r),
                                    this._buffer.unlock(),
                                    this._buffer.input(i);
                            });
                        }
                    }
                    class Gm {
                        constructor(t) {
                            (this.editor = t), (this.editing = this.editor.editing);
                        }
                        handle(t, e) {
                            if (
                                (function (t) {
                                    if (0 == t.length) return !1;
                                    for (const e of t) if ("children" === e.type && !Vg(e)) return !0;
                                    return !1;
                                })(t)
                            )
                                this._handleContainerChildrenMutations(t, e);
                            else for (const n of t) this._handleTextMutation(n, e), this._handleTextNodeInsertion(n);
                        }
                        _handleContainerChildrenMutations(t, e) {
                            const n = (function (t) {
                                const e = t.map((t) => t.node).reduce((t, e) => t.getCommonAncestor(e, { includeSelf: !0 }));
                                if (!e) return;
                                return e.getAncestors({ includeSelf: !0, parentFirst: !0 }).find((t) => t.is("containerElement") || t.is("rootElement"));
                            })(t);
                            if (!n) return;
                            const o = this.editor.editing.view.domConverter.mapViewToDom(n),
                                i = new ms(this.editor.editing.view.document),
                                r = this.editor.data.toModel(i.domToView(o)).getChild(0),
                                s = this.editor.editing.mapper.toModelElement(n);
                            if (!s) return;
                            const a = Array.from(r.getChildren()),
                                c = Array.from(s.getChildren()),
                                l = a[a.length - 1],
                                d = c[c.length - 1],
                                h = l && l.is("element", "softBreak"),
                                u = d && !d.is("element", "softBreak");
                            h && u && a.pop();
                            const g = this.editor.model.schema;
                            if (!$m(a, g) || !$m(c, g)) return;
                            const m = a
                                    .map((t) => (t.is("$text") ? t.data : "@"))
                                    .join("")
                                    .replace(/\u00A0/g, " "),
                                p = c
                                    .map((t) => (t.is("$text") ? t.data : "@"))
                                    .join("")
                                    .replace(/\u00A0/g, " ");
                            if (p === m) return;
                            const f = Yr(p, m),
                                { firstChangeAt: k, insertions: b, deletions: w } = Ym(f);
                            let _ = null;
                            e && (_ = this.editing.mapper.toModelRange(e.getFirstRange()));
                            const A = m.substr(k, b),
                                C = this.editor.model.createRange(this.editor.model.createPositionAt(s, k), this.editor.model.createPositionAt(s, k + w));
                            this.editor.execute("input", { text: A, range: C, resultRange: _ });
                        }
                        _handleTextMutation(t, e) {
                            if ("text" != t.type) return;
                            const n = t.newText.replace(/\u00A0/g, " "),
                                o = t.oldText.replace(/\u00A0/g, " ");
                            if (o === n) return;
                            const i = Yr(o, n),
                                { firstChangeAt: r, insertions: s, deletions: a } = Ym(i);
                            let c = null;
                            e && (c = this.editing.mapper.toModelRange(e.getFirstRange()));
                            const l = this.editing.view.createPositionAt(t.node, r),
                                d = this.editing.mapper.toModelPosition(l),
                                h = this.editor.model.createRange(d, d.getShiftedBy(a)),
                                u = n.substr(r, s);
                            this.editor.execute("input", { text: u, range: h, resultRange: c });
                        }
                        _handleTextNodeInsertion(t) {
                            if ("children" != t.type) return;
                            const e = Vg(t),
                                n = this.editing.view.createPositionAt(t.node, e.index),
                                o = this.editing.mapper.toModelPosition(n),
                                i = e.values[0].data;
                            this.editor.execute("input", { text: i.replace(/\u00A0/g, " "), range: this.editor.model.createRange(o) });
                        }
                    }
                    function $m(t, e) {
                        return t.every((t) => e.isInline(t));
                    }
                    function Ym(t) {
                        let e = null,
                            n = null;
                        for (let o = 0; o < t.length; o++) {
                            "equal" != t[o] && ((e = null === e ? o : e), (n = o));
                        }
                        let o = 0,
                            i = 0;
                        for (let r = e; r <= n; r++) "insert" != t[r] && o++, "delete" != t[r] && i++;
                        return { insertions: i, deletions: o, firstChangeAt: e };
                    }
                    class Km extends V {
                        static get pluginName() {
                            return "Input";
                        }
                        init() {
                            const t = this.editor,
                                e = new qm(t, t.config.get("typing.undoStep") || 20);
                            t.commands.add("input", e),
                                (function (t) {
                                    let e = null;
                                    const n = t.model,
                                        o = t.editing.view,
                                        i = t.commands.get("input");
                                    function r(t) {
                                        if (lr.isWindows && Ug(t, o.document)) return;
                                        const r = n.document,
                                            a = o.document.isComposing,
                                            c = e && e.isEqual(r.selection);
                                        (e = null), i.isEnabled && (hm(t) || r.selection.isCollapsed || (a && 229 === t.keyCode) || (!a && 229 === t.keyCode && c) || s());
                                    }
                                    function s() {
                                        const t = i.buffer;
                                        t.lock();
                                        const e = t.batch;
                                        n.enqueueChange(e, () => {
                                            n.deleteContent(n.document.selection);
                                        }),
                                            t.unlock();
                                    }
                                    lr.isAndroid ? o.document.on("beforeinput", (t, e) => r(e), { priority: "lowest" }) : o.document.on("keydown", (t, e) => r(e), { priority: "lowest" }),
                                        o.document.on(
                                            "compositionstart",
                                            function () {
                                                const t = n.document,
                                                    e = 1 !== t.selection.rangeCount || t.selection.getFirstRange().isFlat;
                                                t.selection.isCollapsed || e || s();
                                            },
                                            { priority: "lowest" }
                                        ),
                                        o.document.on(
                                            "compositionend",
                                            () => {
                                                e = n.createSelection(n.document.selection);
                                            },
                                            { priority: "lowest" }
                                        );
                                })(t),
                                (function (t) {
                                    t.editing.view.document.on("mutations", (e, n, o) => {
                                        new Gm(t).handle(n, o);
                                    });
                                })(t);
                        }
                    }
                    class Qm extends V {
                        static get requires() {
                            return [Km, qg];
                        }
                        static get pluginName() {
                            return "Typing";
                        }
                    }
                    function Zm(t, e) {
                        let n = t.start;
                        return { text: Array.from(t.getItems()).reduce((t, o) => (o.is("$text") || o.is("$textProxy") ? t + o.data : ((n = e.createPositionAfter(o)), "")), ""), range: e.createRange(n, t.end) };
                    }
                    class Jm {
                        constructor(t, e) {
                            (this.model = t),
                                (this.testCallback = e),
                                (this.hasMatch = !1),
                                this.set("isEnabled", !0),
                                this.on("change:isEnabled", () => {
                                    this.isEnabled ? this._startListening() : (this.stopListening(t.document.selection), this.stopListening(t.document));
                                }),
                                this._startListening();
                        }
                        _startListening() {
                            const t = this.model.document;
                            this.listenTo(t.selection, "change:range", (e, { directChange: n }) => {
                                n && (t.selection.isCollapsed ? this._evaluateTextBeforeSelection("selection") : this.hasMatch && (this.fire("unmatched"), (this.hasMatch = !1)));
                            }),
                                this.listenTo(t, "change:data", (t, e) => {
                                    !e.isUndo && e.isLocal && this._evaluateTextBeforeSelection("data", { batch: e });
                                });
                        }
                        _evaluateTextBeforeSelection(t, e = {}) {
                            const n = this.model,
                                o = n.document.selection,
                                i = n.createRange(n.createPositionAt(o.focus.parent, 0), o.focus),
                                { text: r, range: s } = Zm(i, n),
                                a = this.testCallback(r);
                            if ((!a && this.hasMatch && this.fire("unmatched"), (this.hasMatch = !!a), a)) {
                                const n = Object.assign(e, { text: r, range: s });
                                "object" == typeof a && Object.assign(n, a), this.fire(`matched:${t}`, n);
                            }
                        }
                    }
                    F(Jm, B);
                    class Xm extends V {
                        static get pluginName() {
                            return "TwoStepCaretMovement";
                        }
                        constructor(t) {
                            super(t), (this.attributes = new Set()), (this._overrideUid = null);
                        }
                        init() {
                            const t = this.editor,
                                e = t.model,
                                n = t.editing.view,
                                o = t.locale,
                                i = e.document.selection;
                            this.listenTo(
                                n.document,
                                "arrowKey",
                                (t, e) => {
                                    if (!i.isCollapsed) return;
                                    if (e.shiftKey || e.altKey || e.ctrlKey) return;
                                    const n = e.keyCode == gr.arrowright,
                                        r = e.keyCode == gr.arrowleft;
                                    if (!n && !r) return;
                                    const s = o.contentLanguageDirection;
                                    let a = !1;
                                    (a = ("ltr" === s && n) || ("rtl" === s && r) ? this._handleForwardMovement(e) : this._handleBackwardMovement(e)), !0 === a && t.stop();
                                },
                                { context: "$text", priority: "highest" }
                            ),
                                (this._isNextGravityRestorationSkipped = !1),
                                this.listenTo(i, "change:range", (t, e) => {
                                    this._isNextGravityRestorationSkipped
                                        ? (this._isNextGravityRestorationSkipped = !1)
                                        : this._isGravityOverridden && ((!e.directChange && op(i.getFirstPosition(), this.attributes)) || this._restoreGravity());
                                });
                        }
                        registerAttribute(t) {
                            this.attributes.add(t);
                        }
                        _handleForwardMovement(t) {
                            const e = this.attributes,
                                n = this.editor.model.document.selection,
                                o = n.getFirstPosition();
                            return !this._isGravityOverridden && (!o.isAtStart || !tp(n, e)) && (op(o, e) ? (np(t), this._overrideGravity(), !0) : void 0);
                        }
                        _handleBackwardMovement(t) {
                            const e = this.attributes,
                                n = this.editor.model,
                                o = n.document.selection,
                                i = o.getFirstPosition();
                            return this._isGravityOverridden
                                ? (np(t), this._restoreGravity(), ep(n, e, i), !0)
                                : i.isAtStart
                                ? !!tp(o, e) && (np(t), ep(n, e, i), !0)
                                : (function (t, e) {
                                      return op(t.getShiftedBy(-1), e);
                                  })(i, e)
                                ? i.isAtEnd && !tp(o, e) && op(i, e)
                                    ? (np(t), ep(n, e, i), !0)
                                    : ((this._isNextGravityRestorationSkipped = !0), this._overrideGravity(), !1)
                                : void 0;
                        }
                        get _isGravityOverridden() {
                            return !!this._overrideUid;
                        }
                        _overrideGravity() {
                            this._overrideUid = this.editor.model.change((t) => t.overrideSelectionGravity());
                        }
                        _restoreGravity() {
                            this.editor.model.change((t) => {
                                t.restoreSelectionGravity(this._overrideUid), (this._overrideUid = null);
                            });
                        }
                    }
                    function tp(t, e) {
                        for (const n of e) if (t.hasAttribute(n)) return !0;
                        return !1;
                    }
                    function ep(t, e, n) {
                        const o = n.nodeBefore;
                        t.change((t) => {
                            o ? t.setSelectionAttribute(o.getAttributes()) : t.removeSelectionAttribute(e);
                        });
                    }
                    function np(t) {
                        t.preventDefault();
                    }
                    function op(t, e) {
                        const { nodeBefore: n, nodeAfter: o } = t;
                        for (const t of e) {
                            const e = n ? n.getAttribute(t) : void 0;
                            if ((o ? o.getAttribute(t) : void 0) !== e) return !0;
                        }
                        return !1;
                    }
                    var ip = /[\\^$.*+?()[\]{}|]/g,
                        rp = RegExp(ip.source);
                    const sp = function (t) {
                            return (t = Jo(t)) && rp.test(t) ? t.replace(ip, "\\$&") : t;
                        },
                        ap = {
                            copyright: { from: "(c)", to: "©" },
                            registeredTrademark: { from: "(r)", to: "®" },
                            trademark: { from: "(tm)", to: "™" },
                            oneHalf: { from: /(^|[^/a-z0-9])(1\/2)([^/a-z0-9])$/i, to: [null, "½", null] },
                            oneThird: { from: /(^|[^/a-z0-9])(1\/3)([^/a-z0-9])$/i, to: [null, "⅓", null] },
                            twoThirds: { from: /(^|[^/a-z0-9])(2\/3)([^/a-z0-9])$/i, to: [null, "⅔", null] },
                            oneForth: { from: /(^|[^/a-z0-9])(1\/4)([^/a-z0-9])$/i, to: [null, "¼", null] },
                            threeQuarters: { from: /(^|[^/a-z0-9])(3\/4)([^/a-z0-9])$/i, to: [null, "¾", null] },
                            lessThanOrEqual: { from: "<=", to: "≤" },
                            greaterThanOrEqual: { from: ">=", to: "≥" },
                            notEqual: { from: "!=", to: "≠" },
                            arrowLeft: { from: "<-", to: "←" },
                            arrowRight: { from: "->", to: "→" },
                            horizontalEllipsis: { from: "...", to: "…" },
                            enDash: { from: /(^| )(--)( )$/, to: [null, "–", null] },
                            emDash: { from: /(^| )(---)( )$/, to: [null, "—", null] },
                            quotesPrimary: { from: gp('"'), to: [null, "“", null, "”"] },
                            quotesSecondary: { from: gp("'"), to: [null, "‘", null, "’"] },
                            quotesPrimaryEnGb: { from: gp("'"), to: [null, "‘", null, "’"] },
                            quotesSecondaryEnGb: { from: gp('"'), to: [null, "“", null, "”"] },
                            quotesPrimaryPl: { from: gp('"'), to: [null, "„", null, "”"] },
                            quotesSecondaryPl: { from: gp("'"), to: [null, "‚", null, "’"] },
                        },
                        cp = {
                            symbols: ["copyright", "registeredTrademark", "trademark"],
                            mathematical: ["oneHalf", "oneThird", "twoThirds", "oneForth", "threeQuarters", "lessThanOrEqual", "greaterThanOrEqual", "notEqual", "arrowLeft", "arrowRight"],
                            typography: ["horizontalEllipsis", "enDash", "emDash"],
                            quotes: ["quotesPrimary", "quotesSecondary"],
                        },
                        lp = ["symbols", "mathematical", "typography", "quotes"];
                    function dp(t) {
                        return "string" == typeof t ? new RegExp(`(${sp(t)})$`) : t;
                    }
                    function hp(t) {
                        return "string" == typeof t ? () => [t] : t instanceof Array ? () => t : t;
                    }
                    function up(t) {
                        return (t.textNode ? t.textNode : t.nodeAfter).getAttributes();
                    }
                    function gp(t) {
                        return new RegExp(`(^|\\s)(${t})([^${t}]*)(${t})$`);
                    }
                    function mp(t, e, n, o) {
                        return o.createRange(pp(t, e, n, !0, o), pp(t, e, n, !1, o));
                    }
                    function pp(t, e, n, o, i) {
                        let r = t.textNode || (o ? t.nodeBefore : t.nodeAfter),
                            s = null;
                        for (; r && r.getAttribute(e) == n; ) (s = r), (r = o ? r.previousSibling : r.nextSibling);
                        return s ? i.createPositionAt(s, o ? "before" : "after") : t;
                    }
                    class fp extends U {
                        constructor(t) {
                            super(t),
                                (this._stack = []),
                                (this._createdBatches = new WeakSet()),
                                this.refresh(),
                                this.listenTo(
                                    t.data,
                                    "set",
                                    (t, e) => {
                                        e[1] = { ...e[1] };
                                        const n = e[1];
                                        n.batchType || (n.batchType = { isUndoable: !1 });
                                    },
                                    { priority: "high" }
                                ),
                                this.listenTo(t.data, "set", (t, e) => {
                                    e[1].batchType.isUndoable || this.clearStack();
                                });
                        }
                        refresh() {
                            this.isEnabled = this._stack.length > 0;
                        }
                        addBatch(t) {
                            const e = this.editor.model.document.selection,
                                n = { ranges: e.hasOwnRange ? Array.from(e.getRanges()) : [], isBackward: e.isBackward };
                            this._stack.push({ batch: t, selection: n }), this.refresh();
                        }
                        clearStack() {
                            (this._stack = []), this.refresh();
                        }
                        _restoreSelection(t, e, n) {
                            const o = this.editor.model,
                                i = o.document,
                                r = [],
                                s = t.map((t) => t.getTransformedByOperations(n)),
                                a = s.flat();
                            for (const t of s) {
                                const e = t.filter((t) => t.root != i.graveyard).filter((t) => !bp(t, a));
                                e.length && (kp(e), r.push(e[0]));
                            }
                            r.length &&
                                o.change((t) => {
                                    t.setSelection(r, { backward: e });
                                });
                        }
                        _undo(t, e) {
                            const n = this.editor.model,
                                o = n.document;
                            this._createdBatches.add(e);
                            const i = t.operations.slice().filter((t) => t.isDocumentOperation);
                            i.reverse();
                            for (const t of i) {
                                const i = t.baseVersion + 1,
                                    r = Array.from(o.history.getOperations(i)),
                                    s = mg([t.getReversed()], r, { useRelations: !0, document: this.editor.model.document, padWithNoOps: !1, forceWeakRemove: !0 }).operationsA;
                                for (const i of s) e.addOperation(i), n.applyOperation(i), o.history.setOperationAsUndone(t, i);
                            }
                        }
                    }
                    function kp(t) {
                        t.sort((t, e) => (t.start.isBefore(e.start) ? -1 : 1));
                        for (let e = 1; e < t.length; e++) {
                            const n = t[e - 1].getJoined(t[e], !0);
                            n && (e--, t.splice(e, 2, n));
                        }
                    }
                    function bp(t, e) {
                        return e.some((e) => e !== t && e.containsRange(t, !0));
                    }
                    class wp extends fp {
                        execute(t = null) {
                            const e = t ? this._stack.findIndex((e) => e.batch == t) : this._stack.length - 1,
                                n = this._stack.splice(e, 1)[0],
                                o = this.editor.model.createBatch({ isUndo: !0 });
                            this.editor.model.enqueueChange(o, () => {
                                this._undo(n.batch, o);
                                const t = this.editor.model.document.history.getOperations(n.batch.baseVersion);
                                this._restoreSelection(n.selection.ranges, n.selection.isBackward, t), this.fire("revert", n.batch, o);
                            }),
                                this.refresh();
                        }
                    }
                    class _p extends fp {
                        execute() {
                            const t = this._stack.pop(),
                                e = this.editor.model.createBatch({ isUndo: !0 });
                            this.editor.model.enqueueChange(e, () => {
                                const n = t.batch.operations[t.batch.operations.length - 1].baseVersion + 1,
                                    o = this.editor.model.document.history.getOperations(n);
                                this._restoreSelection(t.selection.ranges, t.selection.isBackward, o), this._undo(t.batch, e);
                            }),
                                this.refresh();
                        }
                    }
                    class Ap extends V {
                        static get pluginName() {
                            return "UndoEditing";
                        }
                        constructor(t) {
                            super(t), (this._batchRegistry = new WeakSet());
                        }
                        init() {
                            const t = this.editor;
                            (this._undoCommand = new wp(t)),
                                (this._redoCommand = new _p(t)),
                                t.commands.add("undo", this._undoCommand),
                                t.commands.add("redo", this._redoCommand),
                                this.listenTo(
                                    t.model,
                                    "applyOperation",
                                    (t, e) => {
                                        const n = e[0];
                                        if (!n.isDocumentOperation) return;
                                        const o = n.batch,
                                            i = this._redoCommand._createdBatches.has(o),
                                            r = this._undoCommand._createdBatches.has(o);
                                        this._batchRegistry.has(o) || (this._batchRegistry.add(o), o.isUndoable && (i ? this._undoCommand.addBatch(o) : r || (this._undoCommand.addBatch(o), this._redoCommand.clearStack())));
                                    },
                                    { priority: "highest" }
                                ),
                                this.listenTo(this._undoCommand, "revert", (t, e, n) => {
                                    this._redoCommand.addBatch(n);
                                }),
                                t.keystrokes.set("CTRL+Z", "undo"),
                                t.keystrokes.set("CTRL+Y", "redo"),
                                t.keystrokes.set("CTRL+SHIFT+Z", "redo");
                        }
                    }
                    const Cp =
                            '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m5.042 9.367 2.189 1.837a.75.75 0 0 1-.965 1.149l-3.788-3.18a.747.747 0 0 1-.21-.284.75.75 0 0 1 .17-.945L6.23 4.762a.75.75 0 1 1 .964 1.15L4.863 7.866h8.917A.75.75 0 0 1 14 7.9a4 4 0 1 1-1.477 7.718l.344-1.489a2.5 2.5 0 1 0 1.094-4.73l.008-.032H5.042z"/></svg>',
                        vp =
                            '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m14.958 9.367-2.189 1.837a.75.75 0 0 0 .965 1.149l3.788-3.18a.747.747 0 0 0 .21-.284.75.75 0 0 0-.17-.945L13.77 4.762a.75.75 0 1 0-.964 1.15l2.331 1.955H6.22A.75.75 0 0 0 6 7.9a4 4 0 1 0 1.477 7.718l-.344-1.489A2.5 2.5 0 1 1 6.039 9.4l-.008-.032h8.927z"/></svg>';
                    class yp extends V {
                        static get pluginName() {
                            return "UndoUI";
                        }
                        init() {
                            const t = this.editor,
                                e = t.locale,
                                n = t.t,
                                o = "ltr" == e.uiLanguageDirection ? Cp : vp,
                                i = "ltr" == e.uiLanguageDirection ? vp : Cp;
                            this._addButton("undo", n("Undo"), "CTRL+Z", o), this._addButton("redo", n("Redo"), "CTRL+Y", i);
                        }
                        _addButton(t, e, n, o) {
                            const i = this.editor;
                            i.ui.componentFactory.add(t, (r) => {
                                const s = i.commands.get(t),
                                    a = new Lh(r);
                                return (
                                    a.set({ label: e, icon: o, keystroke: n, tooltip: !0 }),
                                    a.bind("isEnabled").to(s, "isEnabled"),
                                    this.listenTo(a, "execute", () => {
                                        i.execute(t), i.editing.view.focus();
                                    }),
                                    a
                                );
                            });
                        }
                    }
                    class xp extends V {
                        static get requires() {
                            return [Ap, yp];
                        }
                        static get pluginName() {
                            return "Undo";
                        }
                    }
                    class Ep {
                        constructor() {
                            const t = new window.FileReader();
                            (this._reader = t),
                                (this._data = void 0),
                                this.set("loaded", 0),
                                (t.onprogress = (t) => {
                                    this.loaded = t.loaded;
                                });
                        }
                        get error() {
                            return this._reader.error;
                        }
                        get data() {
                            return this._data;
                        }
                        read(t) {
                            const e = this._reader;
                            return (
                                (this.total = t.size),
                                new Promise((n, o) => {
                                    (e.onload = () => {
                                        const t = e.result;
                                        (this._data = t), n(t);
                                    }),
                                        (e.onerror = () => {
                                            o("error");
                                        }),
                                        (e.onabort = () => {
                                            o("aborted");
                                        }),
                                        this._reader.readAsDataURL(t);
                                })
                            );
                        }
                        abort() {
                            this._reader.abort();
                        }
                    }
                    F(Ep, B);
                    class Dp extends V {
                        static get pluginName() {
                            return "FileRepository";
                        }
                        static get requires() {
                            return [yh];
                        }
                        init() {
                            (this.loaders = new ko()),
                                this.loaders.on("add", () => this._updatePendingAction()),
                                this.loaders.on("remove", () => this._updatePendingAction()),
                                (this._loadersMap = new Map()),
                                (this._pendingAction = null),
                                this.set("uploaded", 0),
                                this.set("uploadTotal", null),
                                this.bind("uploadedPercent").to(this, "uploaded", this, "uploadTotal", (t, e) => (e ? (t / e) * 100 : 0));
                        }
                        getLoader(t) {
                            return this._loadersMap.get(t) || null;
                        }
                        createLoader(t) {
                            if (!this.createUploadAdapter) return l("filerepository-no-upload-adapter"), null;
                            const e = new Ip(Promise.resolve(t), this.createUploadAdapter);
                            return (
                                this.loaders.add(e),
                                this._loadersMap.set(t, e),
                                t instanceof Promise &&
                                    e.file
                                        .then((t) => {
                                            this._loadersMap.set(t, e);
                                        })
                                        .catch(() => {}),
                                e.on("change:uploaded", () => {
                                    let t = 0;
                                    for (const e of this.loaders) t += e.uploaded;
                                    this.uploaded = t;
                                }),
                                e.on("change:uploadTotal", () => {
                                    let t = 0;
                                    for (const e of this.loaders) e.uploadTotal && (t += e.uploadTotal);
                                    this.uploadTotal = t;
                                }),
                                e
                            );
                        }
                        destroyLoader(t) {
                            const e = t instanceof Ip ? t : this.getLoader(t);
                            e._destroy(),
                                this.loaders.remove(e),
                                this._loadersMap.forEach((t, n) => {
                                    t === e && this._loadersMap.delete(n);
                                });
                        }
                        _updatePendingAction() {
                            const t = this.editor.plugins.get(yh);
                            if (this.loaders.length) {
                                if (!this._pendingAction) {
                                    const e = this.editor.t,
                                        n = (t) => `${e("Upload in progress")} ${parseInt(t)}%.`;
                                    (this._pendingAction = t.add(n(this.uploadedPercent))), this._pendingAction.bind("message").to(this, "uploadedPercent", n);
                                }
                            } else t.remove(this._pendingAction), (this._pendingAction = null);
                        }
                    }
                    F(Dp, B);
                    class Ip {
                        constructor(t, e) {
                            (this.id = r()),
                                (this._filePromiseWrapper = this._createFilePromiseWrapper(t)),
                                (this._adapter = e(this)),
                                (this._reader = new Ep()),
                                this.set("status", "idle"),
                                this.set("uploaded", 0),
                                this.set("uploadTotal", null),
                                this.bind("uploadedPercent").to(this, "uploaded", this, "uploadTotal", (t, e) => (e ? (t / e) * 100 : 0)),
                                this.set("uploadResponse", null);
                        }
                        get file() {
                            return this._filePromiseWrapper ? this._filePromiseWrapper.promise.then((t) => (this._filePromiseWrapper ? t : null)) : Promise.resolve(null);
                        }
                        get data() {
                            return this._reader.data;
                        }
                        read() {
                            if ("idle" != this.status) throw new c("filerepository-read-wrong-status", this);
                            return (
                                (this.status = "reading"),
                                this.file
                                    .then((t) => this._reader.read(t))
                                    .then((t) => {
                                        if ("reading" !== this.status) throw this.status;
                                        return (this.status = "idle"), t;
                                    })
                                    .catch((t) => {
                                        if ("aborted" === t) throw ((this.status = "aborted"), "aborted");
                                        throw ((this.status = "error"), this._reader.error ? this._reader.error : t);
                                    })
                            );
                        }
                        upload() {
                            if ("idle" != this.status) throw new c("filerepository-upload-wrong-status", this);
                            return (
                                (this.status = "uploading"),
                                this.file
                                    .then(() => this._adapter.upload())
                                    .then((t) => ((this.uploadResponse = t), (this.status = "idle"), t))
                                    .catch((t) => {
                                        if ("aborted" === this.status) throw "aborted";
                                        throw ((this.status = "error"), t);
                                    })
                            );
                        }
                        abort() {
                            const t = this.status;
                            (this.status = "aborted"),
                                this._filePromiseWrapper.isFulfilled
                                    ? "reading" == t
                                        ? this._reader.abort()
                                        : "uploading" == t && this._adapter.abort && this._adapter.abort()
                                    : (this._filePromiseWrapper.promise.catch(() => {}), this._filePromiseWrapper.rejecter("aborted")),
                                this._destroy();
                        }
                        _destroy() {
                            (this._filePromiseWrapper = void 0), (this._reader = void 0), (this._adapter = void 0), (this.uploadResponse = void 0);
                        }
                        _createFilePromiseWrapper(t) {
                            const e = {};
                            return (
                                (e.promise = new Promise((n, o) => {
                                    (e.rejecter = o),
                                        (e.isFulfilled = !1),
                                        t
                                            .then((t) => {
                                                (e.isFulfilled = !0), n(t);
                                            })
                                            .catch((t) => {
                                                (e.isFulfilled = !0), o(t);
                                            });
                                })),
                                e
                            );
                        }
                    }
                    F(Ip, B);
                    class Mp extends eh {
                        constructor(t) {
                            super(t),
                                (this.buttonView = new Lh(t)),
                                (this._fileInputView = new Tp(t)),
                                this._fileInputView.bind("acceptedType").to(this),
                                this._fileInputView.bind("allowMultipleFiles").to(this),
                                this._fileInputView.delegate("done").to(this),
                                this.setTemplate({ tag: "span", attributes: { class: "ck-file-dialog-button" }, children: [this.buttonView, this._fileInputView] }),
                                this.buttonView.on("execute", () => {
                                    this._fileInputView.open();
                                });
                        }
                        focus() {
                            this.buttonView.focus();
                        }
                    }
                    class Tp extends eh {
                        constructor(t) {
                            super(t), this.set("acceptedType"), this.set("allowMultipleFiles", !1);
                            const e = this.bindTemplate;
                            this.setTemplate({
                                tag: "input",
                                attributes: { class: ["ck-hidden"], type: "file", tabindex: "-1", accept: e.to("acceptedType"), multiple: e.to("allowMultipleFiles") },
                                on: {
                                    change: e.to(() => {
                                        this.element && this.element.files && this.element.files.length && this.fire("done", this.element.files), (this.element.value = "");
                                    }),
                                },
                            });
                        }
                        open() {
                            this.element.click();
                        }
                    }
                    const Sp = "ckCsrfToken",
                        Np = "abcdefghijklmnopqrstuvwxyz0123456789";
                    function Bp() {
                        let t = (function (t) {
                            t = t.toLowerCase();
                            const e = document.cookie.split(";");
                            for (const n of e) {
                                const e = n.split("=");
                                if (decodeURIComponent(e[0].trim().toLowerCase()) === t) return decodeURIComponent(e[1]);
                            }
                            return null;
                        })(Sp);
                        var e, n;
                        return (
                            (t && 40 == t.length) ||
                                ((t = (function (t) {
                                    let e = "";
                                    const n = new Uint8Array(t);
                                    window.crypto.getRandomValues(n);
                                    for (let t = 0; t < n.length; t++) {
                                        const o = Np.charAt(n[t] % Np.length);
                                        e += Math.random() > 0.5 ? o.toUpperCase() : o;
                                    }
                                    return e;
                                })(40)),
                                (e = Sp),
                                (n = t),
                                (document.cookie = encodeURIComponent(e) + "=" + encodeURIComponent(n) + ";path=/")),
                            t
                        );
                    }
                    class Pp {
                        constructor(t, e, n) {
                            (this.loader = t), (this.url = e), (this.t = n);
                        }
                        upload() {
                            return this.loader.file.then(
                                (t) =>
                                    new Promise((e, n) => {
                                        this._initRequest(), this._initListeners(e, n, t), this._sendRequest(t);
                                    })
                            );
                        }
                        abort() {
                            this.xhr && this.xhr.abort();
                        }
                        _initRequest() {
                            const t = (this.xhr = new XMLHttpRequest());
                            t.open("POST", this.url, !0), (t.responseType = "json");
                        }
                        _initListeners(t, e, n) {
                            const o = this.xhr,
                                i = this.loader,
                                r = (0, this.t)("Cannot upload file:") + ` ${n.name}.`;
                            o.addEventListener("error", () => e(r)),
                                o.addEventListener("abort", () => e()),
                                o.addEventListener("load", () => {
                                    const n = o.response;
                                    if (!n || !n.uploaded) return e(n && n.error && n.error.message ? n.error.message : r);
                                    t({ default: n.url });
                                }),
                                o.upload &&
                                    o.upload.addEventListener("progress", (t) => {
                                        t.lengthComputable && ((i.uploadTotal = t.total), (i.uploaded = t.loaded));
                                    });
                        }
                        _sendRequest(t) {
                            const e = new FormData();
                            e.append("upload", t), e.append("ckCsrfToken", Bp()), this.xhr.send(e);
                        }
                    }
                    function zp(t, e, n, o) {
                        let i,
                            r = null;
                        "function" == typeof o
                            ? (i = o)
                            : ((r = t.commands.get(o)),
                              (i = () => {
                                  t.execute(o);
                              })),
                            t.model.document.on("change:data", (s, a) => {
                                if ((r && !r.isEnabled) || !e.isEnabled) return;
                                const c = wa(t.model.document.selection.getRanges());
                                if (!c.isCollapsed) return;
                                if (a.isUndo || !a.isLocal) return;
                                const l = Array.from(t.model.document.differ.getChanges()),
                                    d = l[0];
                                if (1 != l.length || "insert" !== d.type || "$text" != d.name || 1 != d.length) return;
                                const h = d.position.parent;
                                if (h.is("element", "codeBlock")) return;
                                if (h.is("element", "listItem") && "function" != typeof o && !["numberedList", "bulletedList", "todoList"].includes(o)) return;
                                if (r && !0 === r.value) return;
                                const u = h.getChild(0),
                                    g = t.model.createRangeOn(u);
                                if (!g.containsRange(c) && !c.end.isEqual(g.end)) return;
                                const m = n.exec(u.data.substr(0, c.end.offset));
                                m &&
                                    t.model.enqueueChange((e) => {
                                        const n = e.createPositionAt(h, 0),
                                            o = e.createPositionAt(h, m[0].length),
                                            r = new hc(n, o);
                                        if (!1 !== i({ match: m })) {
                                            e.remove(r);
                                            const n = t.model.document.selection.getFirstRange(),
                                                o = e.createRangeIn(h);
                                            !h.isEmpty || o.isEqual(n) || o.containsRange(n, !0) || e.remove(h);
                                        }
                                        r.detach(),
                                            t.model.enqueueChange(() => {
                                                t.plugins.get("Delete").requestUndoOnBackspace();
                                            });
                                    });
                            });
                    }
                    function Lp(t, e, n, o) {
                        let i, r;
                        n instanceof RegExp ? (i = n) : (r = n),
                            (r =
                                r ||
                                ((t) => {
                                    let e;
                                    const n = [],
                                        o = [];
                                    for (; null !== (e = i.exec(t)) && !(e && e.length < 4); ) {
                                        let { index: t, 1: i, 2: r, 3: s } = e;
                                        const a = i + r + s;
                                        t += e[0].length - a.length;
                                        const c = [t, t + i.length],
                                            l = [t + i.length + r.length, t + i.length + r.length + s.length];
                                        n.push(c), n.push(l), o.push([t + i.length, t + i.length + r.length]);
                                    }
                                    return { remove: n, format: o };
                                })),
                            t.model.document.on("change:data", (n, i) => {
                                if (i.isUndo || !i.isLocal || !e.isEnabled) return;
                                const s = t.model,
                                    a = s.document.selection;
                                if (!a.isCollapsed) return;
                                const c = Array.from(s.document.differ.getChanges()),
                                    l = c[0];
                                if (1 != c.length || "insert" !== l.type || "$text" != l.name || 1 != l.length) return;
                                const d = a.focus,
                                    h = d.parent,
                                    { text: u, range: g } = (function (t, e) {
                                        let n = t.start;
                                        return {
                                            text: Array.from(t.getItems()).reduce((t, o) => ((!o.is("$text") && !o.is("$textProxy")) || o.getAttribute("code") ? ((n = e.createPositionAfter(o)), "") : t + o.data), ""),
                                            range: e.createRange(n, t.end),
                                        };
                                    })(s.createRange(s.createPositionAt(h, 0), d), s),
                                    m = r(u),
                                    p = Op(g.start, m.format, s),
                                    f = Op(g.start, m.remove, s);
                                p.length &&
                                    f.length &&
                                    s.enqueueChange((e) => {
                                        if (!1 !== o(e, p)) {
                                            for (const t of f.reverse()) e.remove(t);
                                            s.enqueueChange(() => {
                                                t.plugins.get("Delete").requestUndoOnBackspace();
                                            });
                                        }
                                    });
                            });
                    }
                    function Op(t, e, n) {
                        return e.filter((t) => void 0 !== t[0] && void 0 !== t[1]).map((e) => n.createRange(t.getShiftedBy(e[0]), t.getShiftedBy(e[1])));
                    }
                    function Rp(t, e) {
                        return (n, o) => {
                            if (!t.commands.get(e).isEnabled) return !1;
                            const i = t.model.schema.getValidRanges(o, e);
                            for (const t of i) n.setAttribute(e, !0, t);
                            n.removeSelectionAttribute(e);
                        };
                    }
                    class jp extends U {
                        constructor(t, e) {
                            super(t), (this.attributeKey = e);
                        }
                        refresh() {
                            const t = this.editor.model,
                                e = t.document;
                            (this.value = this._getValueFromFirstAllowedNode()), (this.isEnabled = t.schema.checkAttributeInSelection(e.selection, this.attributeKey));
                        }
                        execute(t = {}) {
                            const e = this.editor.model,
                                n = e.document.selection,
                                o = void 0 === t.forceValue ? !this.value : t.forceValue;
                            e.change((t) => {
                                if (n.isCollapsed) o ? t.setSelectionAttribute(this.attributeKey, !0) : t.removeSelectionAttribute(this.attributeKey);
                                else {
                                    const i = e.schema.getValidRanges(n.getRanges(), this.attributeKey);
                                    for (const e of i) o ? t.setAttribute(this.attributeKey, o, e) : t.removeAttribute(this.attributeKey, e);
                                }
                            });
                        }
                        _getValueFromFirstAllowedNode() {
                            const t = this.editor.model,
                                e = t.schema,
                                n = t.document.selection;
                            if (n.isCollapsed) return n.hasAttribute(this.attributeKey);
                            for (const t of n.getRanges()) for (const n of t.getItems()) if (e.checkAttribute(n, this.attributeKey)) return n.hasAttribute(this.attributeKey);
                            return !1;
                        }
                    }
                    const Fp = "bold";
                    class Vp extends V {
                        static get pluginName() {
                            return "BoldEditing";
                        }
                        init() {
                            const t = this.editor;
                            t.model.schema.extend("$text", { allowAttributes: Fp }),
                                t.model.schema.setAttributeProperties(Fp, { isFormatting: !0, copyOnEnter: !0 }),
                                t.conversion.attributeToElement({
                                    model: Fp,
                                    view: "strong",
                                    upcastAlso: [
                                        "b",
                                        (t) => {
                                            const e = t.getStyle("font-weight");
                                            return e ? ("bold" == e || Number(e) >= 600 ? { name: !0, styles: ["font-weight"] } : void 0) : null;
                                        },
                                    ],
                                }),
                                t.commands.add(Fp, new jp(t, Fp)),
                                t.keystrokes.set("CTRL+B", Fp);
                        }
                    }
                    const Hp = "bold";
                    class Up extends V {
                        static get pluginName() {
                            return "BoldUI";
                        }
                        init() {
                            const t = this.editor,
                                e = t.t;
                            t.ui.componentFactory.add(Hp, (n) => {
                                const o = t.commands.get(Hp),
                                    i = new Lh(n);
                                return (
                                    i.set({
                                        label: e("Bold"),
                                        icon:
                                            '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M10.187 17H5.773c-.637 0-1.092-.138-1.364-.415-.273-.277-.409-.718-.409-1.323V4.738c0-.617.14-1.062.419-1.332.279-.27.73-.406 1.354-.406h4.68c.69 0 1.288.041 1.793.124.506.083.96.242 1.36.478.341.197.644.447.906.75a3.262 3.262 0 0 1 .808 2.162c0 1.401-.722 2.426-2.167 3.075C15.05 10.175 16 11.315 16 13.01a3.756 3.756 0 0 1-2.296 3.504 6.1 6.1 0 0 1-1.517.377c-.571.073-1.238.11-2 .11zm-.217-6.217H7v4.087h3.069c1.977 0 2.965-.69 2.965-2.072 0-.707-.256-1.22-.768-1.537-.512-.319-1.277-.478-2.296-.478zM7 5.13v3.619h2.606c.729 0 1.292-.067 1.69-.2a1.6 1.6 0 0 0 .91-.765c.165-.267.247-.566.247-.897 0-.707-.26-1.176-.778-1.409-.519-.232-1.31-.348-2.375-.348H7z"/></svg>',
                                        keystroke: "CTRL+B",
                                        tooltip: !0,
                                        isToggleable: !0,
                                    }),
                                    i.bind("isOn", "isEnabled").to(o, "value", "isEnabled"),
                                    this.listenTo(i, "execute", () => {
                                        t.execute(Hp), t.editing.view.focus();
                                    }),
                                    i
                                );
                            });
                        }
                    }
                    const Wp = "italic";
                    class qp extends V {
                        static get pluginName() {
                            return "ItalicEditing";
                        }
                        init() {
                            const t = this.editor;
                            t.model.schema.extend("$text", { allowAttributes: Wp }),
                                t.model.schema.setAttributeProperties(Wp, { isFormatting: !0, copyOnEnter: !0 }),
                                t.conversion.attributeToElement({ model: Wp, view: "i", upcastAlso: ["em", { styles: { "font-style": "italic" } }] }),
                                t.commands.add(Wp, new jp(t, Wp)),
                                t.keystrokes.set("CTRL+I", Wp);
                        }
                    }
                    const Gp = "italic";
                    class $p extends V {
                        static get pluginName() {
                            return "ItalicUI";
                        }
                        init() {
                            const t = this.editor,
                                e = t.t;
                            t.ui.componentFactory.add(Gp, (n) => {
                                const o = t.commands.get(Gp),
                                    i = new Lh(n);
                                return (
                                    i.set({
                                        label: e("Italic"),
                                        icon:
                                            '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m9.586 14.633.021.004c-.036.335.095.655.393.962.082.083.173.15.274.201h1.474a.6.6 0 1 1 0 1.2H5.304a.6.6 0 0 1 0-1.2h1.15c.474-.07.809-.182 1.005-.334.157-.122.291-.32.404-.597l2.416-9.55a1.053 1.053 0 0 0-.281-.823 1.12 1.12 0 0 0-.442-.296H8.15a.6.6 0 0 1 0-1.2h6.443a.6.6 0 1 1 0 1.2h-1.195c-.376.056-.65.155-.823.296-.215.175-.423.439-.623.79l-2.366 9.347z"/></svg>',
                                        keystroke: "CTRL+I",
                                        tooltip: !0,
                                        isToggleable: !0,
                                    }),
                                    i.bind("isOn", "isEnabled").to(o, "value", "isEnabled"),
                                    this.listenTo(i, "execute", () => {
                                        t.execute(Gp), t.editing.view.focus();
                                    }),
                                    i
                                );
                            });
                        }
                    }
                    class Yp extends U {
                        refresh() {
                            (this.value = this._getValue()), (this.isEnabled = this._checkEnabled());
                        }
                        execute(t = {}) {
                            const e = this.editor.model,
                                n = e.schema,
                                o = e.document.selection,
                                i = Array.from(o.getSelectedBlocks()),
                                r = void 0 === t.forceValue ? !this.value : t.forceValue;
                            e.change((t) => {
                                if (r) {
                                    const e = i.filter((t) => Kp(t) || Zp(n, t));
                                    this._applyQuote(t, e);
                                } else this._removeQuote(t, i.filter(Kp));
                            });
                        }
                        _getValue() {
                            const t = wa(this.editor.model.document.selection.getSelectedBlocks());
                            return !(!t || !Kp(t));
                        }
                        _checkEnabled() {
                            if (this.value) return !0;
                            const t = this.editor.model.document.selection,
                                e = this.editor.model.schema,
                                n = wa(t.getSelectedBlocks());
                            return !!n && Zp(e, n);
                        }
                        _removeQuote(t, e) {
                            Qp(t, e)
                                .reverse()
                                .forEach((e) => {
                                    if (e.start.isAtStart && e.end.isAtEnd) return void t.unwrap(e.start.parent);
                                    if (e.start.isAtStart) {
                                        const n = t.createPositionBefore(e.start.parent);
                                        return void t.move(e, n);
                                    }
                                    e.end.isAtEnd || t.split(e.end);
                                    const n = t.createPositionAfter(e.end.parent);
                                    t.move(e, n);
                                });
                        }
                        _applyQuote(t, e) {
                            const n = [];
                            Qp(t, e)
                                .reverse()
                                .forEach((e) => {
                                    let o = Kp(e.start);
                                    o || ((o = t.createElement("blockQuote")), t.wrap(e, o)), n.push(o);
                                }),
                                n.reverse().reduce((e, n) => (e.nextSibling == n ? (t.merge(t.createPositionAfter(e)), e) : n));
                        }
                    }
                    function Kp(t) {
                        return "blockQuote" == t.parent.name ? t.parent : null;
                    }
                    function Qp(t, e) {
                        let n,
                            o = 0;
                        const i = [];
                        for (; o < e.length; ) {
                            const r = e[o],
                                s = e[o + 1];
                            n || (n = t.createPositionBefore(r)), (s && r.nextSibling == s) || (i.push(t.createRange(n, t.createPositionAfter(r))), (n = null)), o++;
                        }
                        return i;
                    }
                    function Zp(t, e) {
                        const n = t.checkChild(e.parent, "blockQuote"),
                            o = t.checkChild(["$root", "blockQuote"], e);
                        return n && o;
                    }
                    class Jp extends V {
                        static get pluginName() {
                            return "BlockQuoteEditing";
                        }
                        static get requires() {
                            return [Rg, qg];
                        }
                        init() {
                            const t = this.editor,
                                e = t.model.schema;
                            t.commands.add("blockQuote", new Yp(t)),
                                e.register("blockQuote", { inheritAllFrom: "$container" }),
                                t.conversion.elementToElement({ model: "blockQuote", view: "blockquote" }),
                                t.model.document.registerPostFixer((n) => {
                                    const o = t.model.document.differ.getChanges();
                                    for (const t of o)
                                        if ("insert" == t.type) {
                                            const o = t.position.nodeAfter;
                                            if (!o) continue;
                                            if (o.is("element", "blockQuote") && o.isEmpty) return n.remove(o), !0;
                                            if (o.is("element", "blockQuote") && !e.checkChild(t.position, o)) return n.unwrap(o), !0;
                                            if (o.is("element")) {
                                                const t = n.createRangeIn(o);
                                                for (const o of t.getItems()) if (o.is("element", "blockQuote") && !e.checkChild(n.createPositionBefore(o), o)) return n.unwrap(o), !0;
                                            }
                                        } else if ("remove" == t.type) {
                                            const e = t.position.parent;
                                            if (e.is("element", "blockQuote") && e.isEmpty) return n.remove(e), !0;
                                        }
                                    return !1;
                                });
                            const n = this.editor.editing.view.document,
                                o = t.model.document.selection,
                                i = t.commands.get("blockQuote");
                            this.listenTo(
                                n,
                                "enter",
                                (e, n) => {
                                    if (!o.isCollapsed || !i.value) return;
                                    o.getLastPosition().parent.isEmpty && (t.execute("blockQuote"), t.editing.view.scrollToTheSelection(), n.preventDefault(), e.stop());
                                },
                                { context: "blockquote" }
                            ),
                                this.listenTo(
                                    n,
                                    "delete",
                                    (e, n) => {
                                        if ("backward" != n.direction || !o.isCollapsed || !i.value) return;
                                        const r = o.getLastPosition().parent;
                                        r.isEmpty && !r.previousSibling && (t.execute("blockQuote"), t.editing.view.scrollToTheSelection(), n.preventDefault(), e.stop());
                                    },
                                    { context: "blockquote" }
                                );
                        }
                    }
                    var Xp = n(3062),
                        tf = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Xp.Z, tf);
                    Xp.Z.locals;
                    class ef extends V {
                        static get pluginName() {
                            return "BlockQuoteUI";
                        }
                        init() {
                            const t = this.editor,
                                e = t.t;
                            t.ui.componentFactory.add("blockQuote", (n) => {
                                const o = t.commands.get("blockQuote"),
                                    i = new Lh(n);
                                return (
                                    i.set({ label: e("Block quote"), icon: Eh.quote, tooltip: !0, isToggleable: !0 }),
                                    i.bind("isOn", "isEnabled").to(o, "value", "isEnabled"),
                                    this.listenTo(i, "execute", () => {
                                        t.execute("blockQuote"), t.editing.view.focus();
                                    }),
                                    i
                                );
                            });
                        }
                    }
                    class nf extends V {
                        static get pluginName() {
                            return "CKBoxUI";
                        }
                        afterInit() {
                            const t = this.editor;
                            if (!t.commands.get("ckbox")) return;
                            const e = t.t;
                            t.ui.componentFactory.add("ckbox", (n) => {
                                const o = t.commands.get("ckbox"),
                                    i = new Lh(n);
                                return (
                                    i.set({
                                        label: e("Open file manager"),
                                        icon:
                                            '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M11.627 16.5zm5.873-.196zm0-7.001V8h-13v8.5h4.341c.191.54.457 1.044.785 1.5H2a1.5 1.5 0 0 1-1.5-1.5v-13A1.5 1.5 0 0 1 2 2h4.5a1.5 1.5 0 0 1 1.06.44L9.122 4H16a1.5 1.5 0 0 1 1.5 1.5v1A1.5 1.5 0 0 1 19 8v2.531a6.027 6.027 0 0 0-1.5-1.228zM16 6.5v-1H8.5l-2-2H2v13h1V8a1.5 1.5 0 0 1 1.5-1.5H16z"/><path d="M14.5 19.5a5 5 0 1 1 0-10 5 5 0 0 1 0 10zM15 14v-2h-1v2h-2v1h2v2h1v-2h2v-1h-2z"/></svg>',
                                        tooltip: !0,
                                    }),
                                    i.bind("isOn", "isEnabled").to(o, "value", "isEnabled"),
                                    i.on("execute", () => {
                                        t.execute("ckbox");
                                    }),
                                    i
                                );
                            });
                        }
                    }
                    function of({ token: t, id: e, origin: n, width: o, extension: i }) {
                        const r = rf(t),
                            s = (function (t) {
                                const e = [(10 * t) / 100, 80],
                                    n = Math.floor(Math.max(...e)),
                                    o = [Math.min(t, 4e3)];
                                let i = o[0];
                                for (; i - n >= n; ) (i -= n), o.unshift(i);
                                return o;
                            })(o),
                            a = (function (t) {
                                if ("bmp" === t || "tiff" === t || "jpg" === t) return "jpeg";
                                return t;
                            })(i);
                        return {
                            imageFallbackUrl: sf({ environmentId: r, id: e, origin: n, width: o, extension: a }),
                            imageSources: [{ srcset: s.map((t) => `${sf({ environmentId: r, id: e, origin: n, width: t, extension: "webp" })} ${t}w`).join(","), sizes: `(max-width: ${o}px) 100vw, ${o}px`, type: "image/webp" }],
                        };
                    }
                    function rf(t) {
                        const [, e] = t.value.split(".");
                        return JSON.parse(atob(e)).aud;
                    }
                    function sf({ environmentId: t, id: e, origin: n, width: o, extension: i }) {
                        return new URL(`${t}/assets/${e}/images/${o}.${i}`, n).toString();
                    }
                    class af extends U {
                        constructor(t) {
                            super(t), (this._chosenAssets = new Set()), (this._wrapper = null), this._initListeners();
                        }
                        refresh() {
                            (this.value = this._getValue()), (this.isEnabled = this._checkEnabled());
                        }
                        execute() {
                            this.fire("ckbox:open");
                        }
                        _getValue() {
                            return null !== this._wrapper;
                        }
                        _checkEnabled() {
                            const t = this.editor.commands.get("insertImage"),
                                e = this.editor.commands.get("link");
                            return !(!t.isEnabled && !e.isEnabled);
                        }
                        _prepareOptions() {
                            const t = this.editor.config.get("ckbox");
                            return {
                                theme: t.theme,
                                language: t.language,
                                tokenUrl: t.tokenUrl,
                                serviceOrigin: t.serviceOrigin,
                                assetsOrigin: t.assetsOrigin,
                                dialog: { onClose: () => this.fire("ckbox:close") },
                                assets: { onChoose: (t) => this.fire("ckbox:choose", t) },
                            };
                        }
                        _initListeners() {
                            const t = this.editor,
                                e = t.model,
                                n = !t.config.get("ckbox.ignoreDataId");
                            this.on(
                                "ckbox",
                                () => {
                                    this.refresh();
                                },
                                { priority: "low" }
                            ),
                                this.on("ckbox:open", () => {
                                    this.isEnabled &&
                                        !this.value &&
                                        ((this._wrapper = fa(document, "div", { class: "ck ckbox-wrapper" })), document.body.appendChild(this._wrapper), window.CKBox.mount(this._wrapper, this._prepareOptions()));
                                }),
                                this.on("ckbox:close", () => {
                                    this.value && (this._wrapper.remove(), (this._wrapper = null));
                                }),
                                this.on("ckbox:choose", (o, i) => {
                                    if (!this.isEnabled) return;
                                    const r = t.commands.get("insertImage"),
                                        s = t.commands.get("link"),
                                        a = t.plugins.get("CKBoxEditing"),
                                        c = (function ({ assets: t, origin: e, token: n, isImageAllowed: o, isLinkAllowed: i }) {
                                            return t.map((t) => ({ id: t.data.id, type: lf(t) ? "image" : "link", attributes: cf(t, n, e) })).filter((t) => ("image" === t.type ? o : i));
                                        })({ assets: i, origin: t.config.get("ckbox.assetsOrigin"), token: a.getToken(), isImageAllowed: r.isEnabled, isLinkAllowed: s.isEnabled });
                                    0 !== c.length &&
                                        e.change((t) => {
                                            for (const e of c) {
                                                const o = e === c[c.length - 1];
                                                this._insertAsset(e, o, t), n && (setTimeout(() => this._chosenAssets.delete(e), 1e3), this._chosenAssets.add(e));
                                            }
                                        });
                                }),
                                this.listenTo(t, "destroy", () => {
                                    this.fire("ckbox:close"), this._chosenAssets.clear();
                                });
                        }
                        _insertAsset(t, e, n) {
                            const o = this.editor.model.document.selection;
                            n.removeSelectionAttribute("linkHref"), "image" === t.type ? this._insertImage(t) : this._insertLink(t, n), e || n.setSelection(o.getLastPosition());
                        }
                        _insertImage(t) {
                            const e = this.editor,
                                { imageFallbackUrl: n, imageSources: o, imageTextAlternative: i } = t.attributes;
                            e.execute("insertImage", { source: { src: n, sources: o, alt: i } });
                        }
                        _insertLink(t, e) {
                            const n = this.editor,
                                o = n.model,
                                i = o.document.selection,
                                { linkName: r, linkHref: s } = t.attributes;
                            if (i.isCollapsed) {
                                const t = Po(i.getAttributes()),
                                    n = e.createText(r, t),
                                    s = o.insertContent(n);
                                e.setSelection(s);
                            }
                            n.execute("link", s);
                        }
                    }
                    function cf(t, e, n) {
                        if (lf(t)) {
                            const { imageFallbackUrl: o, imageSources: i } = of({ token: e, origin: n, id: t.data.id, width: t.data.metadata.width, extension: t.data.extension });
                            return { imageFallbackUrl: o, imageSources: i, imageTextAlternative: t.data.metadata.description || "" };
                        }
                        return { linkName: t.data.name, linkHref: df(t, e, n) };
                    }
                    function lf(t) {
                        const e = t.data.metadata;
                        return !!e && e.width && e.height;
                    }
                    function df(t, e, n) {
                        const o = rf(e),
                            i = new URL(`${o}/assets/${t.data.id}/file`, n);
                        return i.searchParams.set("download", "true"), i.toString();
                    }
                    class hf extends V {
                        static get requires() {
                            return ["ImageUploadEditing", "ImageUploadProgress", Dp, mf];
                        }
                        static get pluginName() {
                            return "CKBoxUploadAdapter";
                        }
                        async afterInit() {
                            const t = this.editor,
                                e = !!t.config.get("ckbox"),
                                n = !!window.CKBox;
                            if (!e && !n) return;
                            const o = t.plugins.get(Dp),
                                i = t.plugins.get(mf);
                            o.createUploadAdapter = (e) => new uf(e, i.getToken(), t);
                            const r = !t.config.get("ckbox.ignoreDataId"),
                                s = t.plugins.get("ImageUploadEditing");
                            r &&
                                s.on("uploadComplete", (e, { imageElement: n, data: o }) => {
                                    t.model.change((t) => {
                                        t.setAttribute("ckboxImageId", o.ckboxImageId, n);
                                    });
                                });
                        }
                    }
                    class uf {
                        constructor(t, e, n) {
                            (this.loader = t),
                                (this.token = e),
                                (this.editor = n),
                                (this.controller = new AbortController()),
                                (this.serviceOrigin = n.config.get("ckbox.serviceOrigin")),
                                (this.assetsOrigin = n.config.get("ckbox.assetsOrigin"));
                        }
                        async getAvailableCategories(t = 0) {
                            const e = new URL("categories", this.serviceOrigin);
                            return (
                                e.searchParams.set("limit", (50).toString()),
                                e.searchParams.set("offset", t.toString()),
                                this._sendHttpRequest({ url: e })
                                    .then(async (e) => {
                                        if (e.totalCount - (t + 50) > 0) {
                                            const n = await this.getAvailableCategories(t + 50);
                                            return [...e.items, ...n];
                                        }
                                        return e.items;
                                    })
                                    .catch(() => {
                                        this.controller.signal.throwIfAborted(), d("ckbox-fetch-category-http-error");
                                    })
                            );
                        }
                        async getCategoryIdForFile(t) {
                            const e = gf(t.name),
                                n = await this.getAvailableCategories();
                            if (!n) return null;
                            const o = this.editor.config.get("ckbox.defaultUploadCategories");
                            if (o) {
                                const t = Object.keys(o).find((t) => o[t].includes(e));
                                if (t) {
                                    const e = n.find((e) => e.id === t || e.name === t);
                                    return e ? e.id : null;
                                }
                            }
                            const i = n.find((t) => t.extensions.includes(e));
                            return i ? i.id : null;
                        }
                        async upload() {
                            const t = this.editor.t,
                                e = t("Cannot determine a category for the uploaded file."),
                                n = await this.loader.file,
                                o = await this.getCategoryIdForFile(n);
                            if (!o) return Promise.reject(e);
                            const i = new URL("assets", this.serviceOrigin),
                                r = new FormData();
                            r.append("categoryId", o), r.append("file", n);
                            const s = {
                                method: "POST",
                                url: i,
                                data: r,
                                onUploadProgress: (t) => {
                                    t.lengthComputable && ((this.loader.uploadTotal = t.total), (this.loader.uploaded = t.loaded));
                                },
                            };
                            return this._sendHttpRequest(s)
                                .then(async (t) => {
                                    const e = await this._getImageWidth(),
                                        o = gf(n.name),
                                        i = of({ token: this.token, id: t.id, origin: this.assetsOrigin, width: e, extension: o });
                                    return { ckboxImageId: t.id, default: i.imageFallbackUrl, sources: i.imageSources };
                                })
                                .catch(() => {
                                    const e = t("Cannot upload file:") + ` ${n.name}.`;
                                    return Promise.reject(e);
                                });
                        }
                        abort() {
                            this.controller.abort();
                        }
                        _sendHttpRequest(t) {
                            const { url: e, data: n, onUploadProgress: o } = t,
                                i = t.method || "GET",
                                r = this.controller.signal,
                                s = new XMLHttpRequest();
                            s.open(i, e.toString(), !0), s.setRequestHeader("Authorization", this.token.value), s.setRequestHeader("CKBox-Version", "CKEditor 5"), (s.responseType = "json");
                            const a = () => {
                                s.abort();
                            };
                            return new Promise((t, e) => {
                                r.addEventListener("abort", a),
                                    s.addEventListener("loadstart", () => {
                                        r.addEventListener("abort", a);
                                    }),
                                    s.addEventListener("loadend", () => {
                                        r.removeEventListener("abort", a);
                                    }),
                                    s.addEventListener("error", () => {
                                        e();
                                    }),
                                    s.addEventListener("abort", () => {
                                        e();
                                    }),
                                    s.addEventListener("load", async () => {
                                        const n = s.response;
                                        return !n || n.statusCode >= 400 ? e(n && n.message) : t(n);
                                    }),
                                    o &&
                                        s.upload.addEventListener("progress", (t) => {
                                            o(t);
                                        }),
                                    s.send(n);
                            });
                        }
                        _getImageWidth() {
                            return new Promise((t) => {
                                const e = new Image();
                                (e.onload = () => {
                                    URL.revokeObjectURL(e.src), t(e.width);
                                }),
                                    (e.src = this.loader.data);
                            });
                        }
                    }
                    function gf(t) {
                        return t.match(/\.(?<ext>[^.]+)$/).groups.ext;
                    }
                    class mf extends V {
                        static get pluginName() {
                            return "CKBoxEditing";
                        }
                        static get requires() {
                            return ["CloudServices", "LinkEditing", "PictureEditing", hf];
                        }
                        async init() {
                            const t = this.editor,
                                e = !!t.config.get("ckbox"),
                                n = !!window.CKBox;
                            if (!e && !n) return;
                            this._initConfig();
                            const o = t.plugins.get("CloudServicesCore"),
                                i = t.config.get("ckbox.tokenUrl"),
                                r = t.config.get("cloudServices.tokenUrl");
                            (this._token = i === r ? t.plugins.get("CloudServices").token : await o.createToken(i).init()),
                                t.config.get("ckbox.ignoreDataId") || (this._initSchema(), this._initConversion(), this._initFixers()),
                                n && t.commands.add("ckbox", new af(t));
                        }
                        getToken() {
                            return this._token;
                        }
                        _initConfig() {
                            const t = this.editor;
                            t.config.define("ckbox", {
                                serviceOrigin: "https://api.ckbox.io",
                                assetsOrigin: "https://ckbox.cloud",
                                defaultUploadCategories: null,
                                ignoreDataId: !1,
                                language: t.locale.uiLanguage,
                                theme: "default",
                                tokenUrl: t.config.get("cloudServices.tokenUrl"),
                            });
                            if (!t.config.get("ckbox.tokenUrl")) throw new c("ckbox-plugin-missing-token-url", this);
                            t.plugins.has("ImageBlockEditing") || t.plugins.has("ImageInlineEditing") || d("ckbox-plugin-image-feature-missing", t);
                        }
                        _initSchema() {
                            const t = this.editor.model.schema;
                            t.extend("$text", { allowAttributes: "ckboxLinkId" }),
                                t.isRegistered("imageBlock") && t.extend("imageBlock", { allowAttributes: ["ckboxImageId", "ckboxLinkId"] }),
                                t.isRegistered("imageInline") && t.extend("imageInline", { allowAttributes: ["ckboxImageId", "ckboxLinkId"] }),
                                t.addAttributeCheck((t, e) => {
                                    if (!!!t.last.getAttribute("linkHref") && "ckboxLinkId" === e) return !1;
                                });
                        }
                        _initConversion() {
                            const t = this.editor;
                            t.conversion.for("downcast").add((t) => {
                                t.on(
                                    "attribute:ckboxLinkId:imageBlock",
                                    (t, e, n) => {
                                        const { writer: o, mapper: i, consumable: r } = n;
                                        if (!r.consume(e.item, t.name)) return;
                                        const s = [...i.toViewElement(e.item).getChildren()].find((t) => "a" === t.name);
                                        s && (e.item.hasAttribute("ckboxLinkId") ? o.setAttribute("data-ckbox-resource-id", e.item.getAttribute("ckboxLinkId"), s) : o.removeAttribute("data-ckbox-resource-id", s));
                                    },
                                    { priority: "low" }
                                ),
                                    t.on(
                                        "attribute:ckboxLinkId",
                                        (t, e, n) => {
                                            const { writer: o, mapper: i, consumable: r } = n;
                                            if (r.consume(e.item, t.name)) {
                                                if (e.attributeOldValue) {
                                                    const t = ff(o, e.attributeOldValue);
                                                    o.unwrap(i.toViewRange(e.range), t);
                                                }
                                                if (e.attributeNewValue) {
                                                    const t = ff(o, e.attributeNewValue);
                                                    if (e.item.is("selection")) {
                                                        const e = o.document.selection;
                                                        o.wrap(e.getFirstRange(), t);
                                                    } else o.wrap(i.toViewRange(e.range), t);
                                                }
                                            }
                                        },
                                        { priority: "low" }
                                    );
                            }),
                                t.conversion.for("upcast").add((t) => {
                                    t.on(
                                        "element:a",
                                        (t, e, n) => {
                                            const { writer: o, consumable: i } = n;
                                            if (!e.viewItem.getAttribute("href")) return;
                                            if (!i.consume(e.viewItem, { attributes: ["data-ckbox-resource-id"] })) return;
                                            const r = e.viewItem.getAttribute("data-ckbox-resource-id");
                                            if (r)
                                                if (e.modelRange) for (let t of e.modelRange.getItems()) t.is("$textProxy") && (t = t.textNode), kf(t) && o.setAttribute("ckboxLinkId", r, t);
                                                else {
                                                    const t = e.modelCursor.nodeBefore || e.modelCursor.parent;
                                                    o.setAttribute("ckboxLinkId", r, t);
                                                }
                                        },
                                        { priority: "low" }
                                    );
                                }),
                                t.conversion.for("downcast").attributeToAttribute({ model: "ckboxImageId", view: "data-ckbox-resource-id" }),
                                t.conversion.for("upcast").elementToAttribute({ model: { key: "ckboxImageId", value: (t) => t.getAttribute("data-ckbox-resource-id") }, view: { attributes: { "data-ckbox-resource-id": /[\s\S]+/ } } });
                        }
                        _initFixers() {
                            const t = this.editor,
                                e = t.model,
                                n = e.document.selection;
                            e.document.registerPostFixer(
                                (function (t) {
                                    return (e) => {
                                        let n = !1;
                                        const o = t.model,
                                            i = t.commands.get("ckbox");
                                        if (!i) return n;
                                        for (const t of o.document.differ.getChanges()) {
                                            if ("insert" !== t.type && "attribute" !== t.type) continue;
                                            const o = "insert" === t.type ? new Xa(t.position, t.position.getShiftedBy(t.length)) : t.range,
                                                r = "attribute" === t.type && "linkHref" === t.attributeKey && null === t.attributeNewValue;
                                            for (const t of o.getItems()) {
                                                if (r && t.hasAttribute("ckboxLinkId")) {
                                                    e.removeAttribute("ckboxLinkId", t), (n = !0);
                                                    continue;
                                                }
                                                const o = pf(t, i._chosenAssets);
                                                for (const i of o) {
                                                    const o = "image" === i.type ? "ckboxImageId" : "ckboxLinkId";
                                                    i.id !== t.getAttribute(o) && (e.setAttribute(o, i.id, t), (n = !0));
                                                }
                                            }
                                        }
                                        return n;
                                    };
                                })(t)
                            ),
                                e.document.registerPostFixer(
                                    (function (t) {
                                        return (e) => {
                                            !t.hasAttribute("linkHref") && t.hasAttribute("ckboxLinkId") && e.removeSelectionAttribute("ckboxLinkId");
                                        };
                                    })(n)
                                );
                        }
                    }
                    function pf(t, e) {
                        const n = t.is("element", "imageInline") || t.is("element", "imageBlock"),
                            o = t.hasAttribute("linkHref");
                        return [...e].filter((e) => ("image" === e.type && n ? e.attributes.imageFallbackUrl === t.getAttribute("src") : "link" === e.type && o ? e.attributes.linkHref === t.getAttribute("linkHref") : void 0));
                    }
                    function ff(t, e) {
                        const n = t.createAttributeElement("a", { "data-ckbox-resource-id": e }, { priority: 5 });
                        return t.setCustomProperty("link", !0, n), n;
                    }
                    function kf(t) {
                        return !!t.is("$text") || !(!t.is("element", "imageInline") && !t.is("element", "imageBlock"));
                    }
                    class bf extends V {
                        static get pluginName() {
                            return "CKFinderUI";
                        }
                        init() {
                            const t = this.editor,
                                e = t.ui.componentFactory,
                                n = t.t;
                            e.add("ckfinder", (e) => {
                                const o = t.commands.get("ckfinder"),
                                    i = new Lh(e);
                                return (
                                    i.set({
                                        label: n("Insert image or file"),
                                        icon:
                                            '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M11.627 16.5zm5.873-.196zm0-7.001V8h-13v8.5h4.341c.191.54.457 1.044.785 1.5H2a1.5 1.5 0 0 1-1.5-1.5v-13A1.5 1.5 0 0 1 2 2h4.5a1.5 1.5 0 0 1 1.06.44L9.122 4H16a1.5 1.5 0 0 1 1.5 1.5v1A1.5 1.5 0 0 1 19 8v2.531a6.027 6.027 0 0 0-1.5-1.228zM16 6.5v-1H8.5l-2-2H2v13h1V8a1.5 1.5 0 0 1 1.5-1.5H16z"/><path d="M14.5 19.5a5 5 0 1 1 0-10 5 5 0 0 1 0 10zM15 14v-2h-1v2h-2v1h2v2h1v-2h2v-1h-2z"/></svg>',
                                        tooltip: !0,
                                    }),
                                    i.bind("isEnabled").to(o),
                                    i.on("execute", () => {
                                        t.execute("ckfinder"), t.editing.view.focus();
                                    }),
                                    i
                                );
                            });
                        }
                    }
                    class wf extends U {
                        constructor(t) {
                            super(t), this.stopListening(this.editor.model.document, "change"), this.listenTo(this.editor.model.document, "change", () => this.refresh(), { priority: "low" });
                        }
                        refresh() {
                            const t = this.editor.commands.get("insertImage"),
                                e = this.editor.commands.get("link");
                            this.isEnabled = t.isEnabled || e.isEnabled;
                        }
                        execute() {
                            const t = this.editor,
                                e = this.editor.config.get("ckfinder.openerMethod") || "modal";
                            if ("popup" != e && "modal" != e) throw new c("ckfinder-unknown-openermethod", t);
                            const n = this.editor.config.get("ckfinder.options") || {};
                            n.chooseFiles = !0;
                            const o = n.onInit;
                            n.language || (n.language = t.locale.uiLanguage),
                                (n.onInit = (e) => {
                                    o && o(e),
                                        e.on("files:choose", (n) => {
                                            const o = n.data.files.toArray(),
                                                i = o.filter((t) => !t.isImage()),
                                                r = o.filter((t) => t.isImage());
                                            for (const e of i) t.execute("link", e.getUrl());
                                            const s = [];
                                            for (const t of r) {
                                                const n = t.getUrl();
                                                s.push(n || e.request("file:getProxyUrl", { file: t }));
                                            }
                                            s.length && _f(t, s);
                                        }),
                                        e.on("file:choose:resizedImage", (e) => {
                                            const n = e.data.resizedUrl;
                                            if (n) _f(t, [n]);
                                            else {
                                                const e = t.plugins.get("Notification"),
                                                    n = t.locale.t;
                                                e.showWarning(n("Could not obtain resized image URL."), { title: n("Selecting resized image failed"), namespace: "ckfinder" });
                                            }
                                        });
                                }),
                                window.CKFinder[e](n);
                        }
                    }
                    function _f(t, e) {
                        if (t.commands.get("insertImage").isEnabled) t.execute("insertImage", { source: e });
                        else {
                            const e = t.plugins.get("Notification"),
                                n = t.locale.t;
                            e.showWarning(n("Could not insert image at the current position."), { title: n("Inserting image failed"), namespace: "ckfinder" });
                        }
                    }
                    class Af extends V {
                        static get pluginName() {
                            return "CKFinderEditing";
                        }
                        static get requires() {
                            return [Fu, "LinkEditing"];
                        }
                        init() {
                            const t = this.editor;
                            if (!t.plugins.has("ImageBlockEditing") && !t.plugins.has("ImageInlineEditing")) throw new c("ckfinder-missing-image-plugin", t);
                            t.commands.add("ckfinder", new wf(t));
                        }
                    }
                    class Cf extends V {
                        static get pluginName() {
                            return "CloudServicesUploadAdapter";
                        }
                        static get requires() {
                            return ["CloudServices", Dp];
                        }
                        init() {
                            const t = this.editor,
                                e = t.plugins.get("CloudServices"),
                                n = e.token,
                                o = e.uploadUrl;
                            n && ((this._uploadGateway = t.plugins.get("CloudServicesCore").createUploadGateway(n, o)), (t.plugins.get(Dp).createUploadAdapter = (t) => new vf(this._uploadGateway, t)));
                        }
                    }
                    class vf {
                        constructor(t, e) {
                            (this.uploadGateway = t), (this.loader = e);
                        }
                        upload() {
                            return this.loader.file.then(
                                (t) => (
                                    (this.fileUploader = this.uploadGateway.upload(t)),
                                    this.fileUploader.on("progress", (t, e) => {
                                        (this.loader.uploadTotal = e.total), (this.loader.uploaded = e.uploaded);
                                    }),
                                    this.fileUploader.send()
                                )
                            );
                        }
                        abort() {
                            this.fileUploader.abort();
                        }
                    }
                    class yf extends U {
                        refresh() {
                            const t = this.editor.model,
                                e = wa(t.document.selection.getSelectedBlocks());
                            (this.value = !!e && e.is("element", "paragraph")), (this.isEnabled = !!e && xf(e, t.schema));
                        }
                        execute(t = {}) {
                            const e = this.editor.model,
                                n = e.document;
                            e.change((o) => {
                                const i = (t.selection || n.selection).getSelectedBlocks();
                                for (const t of i) !t.is("element", "paragraph") && xf(t, e.schema) && o.rename(t, "paragraph");
                            });
                        }
                    }
                    function xf(t, e) {
                        return e.checkChild(t.parent, "paragraph") && !e.isObject(t);
                    }
                    class Ef extends U {
                        execute(t) {
                            const e = this.editor.model,
                                n = t.attributes;
                            let o = t.position;
                            e.change((t) => {
                                const i = t.createElement("paragraph");
                                if ((n && e.schema.setAllowedAttributes(i, n, t), !e.schema.checkChild(o.parent, i))) {
                                    const n = e.schema.findAllowedParent(o, i);
                                    if (!n) return;
                                    o = t.split(o, n).position;
                                }
                                e.insertContent(i, o), t.setSelection(i, "in");
                            });
                        }
                    }
                    class Df extends V {
                        static get pluginName() {
                            return "Paragraph";
                        }
                        init() {
                            const t = this.editor,
                                e = t.model;
                            t.commands.add("paragraph", new yf(t)),
                                t.commands.add("insertParagraph", new Ef(t)),
                                e.schema.register("paragraph", { inheritAllFrom: "$block" }),
                                t.conversion.elementToElement({ model: "paragraph", view: "p" }),
                                t.conversion
                                    .for("upcast")
                                    .elementToElement({ model: (t, { writer: e }) => (Df.paragraphLikeElements.has(t.name) ? (t.isEmpty ? null : e.createElement("paragraph")) : null), view: /.+/, converterPriority: "low" });
                        }
                    }
                    Df.paragraphLikeElements = new Set(["blockquote", "dd", "div", "dt", "h1", "h2", "h3", "h4", "h5", "h6", "li", "p", "td", "th"]);
                    class If extends U {
                        constructor(t, e) {
                            super(t), (this.modelElements = e);
                        }
                        refresh() {
                            const t = wa(this.editor.model.document.selection.getSelectedBlocks());
                            (this.value = !!t && this.modelElements.includes(t.name) && t.name), (this.isEnabled = !!t && this.modelElements.some((e) => Mf(t, e, this.editor.model.schema)));
                        }
                        execute(t) {
                            const e = this.editor.model,
                                n = e.document,
                                o = t.value;
                            e.change((t) => {
                                const i = Array.from(n.selection.getSelectedBlocks()).filter((t) => Mf(t, o, e.schema));
                                for (const e of i) e.is("element", o) || t.rename(e, o);
                            });
                        }
                    }
                    function Mf(t, e, n) {
                        return n.checkChild(t.parent, e) && !n.isObject(t);
                    }
                    const Tf = "paragraph";
                    class Sf extends V {
                        static get pluginName() {
                            return "HeadingEditing";
                        }
                        constructor(t) {
                            super(t),
                                t.config.define("heading", {
                                    options: [
                                        { model: "paragraph", title: "Paragraph", class: "ck-heading_paragraph" },
                                        { model: "heading1", view: "h2", title: "Heading 1", class: "ck-heading_heading1" },
                                        { model: "heading2", view: "h3", title: "Heading 2", class: "ck-heading_heading2" },
                                        { model: "heading3", view: "h4", title: "Heading 3", class: "ck-heading_heading3" },
                                    ],
                                });
                        }
                        static get requires() {
                            return [Df];
                        }
                        init() {
                            const t = this.editor,
                                e = t.config.get("heading.options"),
                                n = [];
                            for (const o of e) o.model !== Tf && (t.model.schema.register(o.model, { inheritAllFrom: "$block" }), t.conversion.elementToElement(o), n.push(o.model));
                            this._addDefaultH1Conversion(t), t.commands.add("heading", new If(t, n));
                        }
                        afterInit() {
                            const t = this.editor,
                                e = t.commands.get("enter"),
                                n = t.config.get("heading.options");
                            e &&
                                this.listenTo(e, "afterExecute", (e, o) => {
                                    const i = t.model.document.selection.getFirstPosition().parent;
                                    n.some((t) => i.is("element", t.model)) && !i.is("element", Tf) && 0 === i.childCount && o.writer.rename(i, Tf);
                                });
                        }
                        _addDefaultH1Conversion(t) {
                            t.conversion.for("upcast").elementToElement({ model: "heading1", view: "h1", converterPriority: s.get("low") + 1 });
                        }
                    }
                    var Nf = n(8733),
                        Bf = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Nf.Z, Bf);
                    Nf.Z.locals;
                    class Pf extends V {
                        static get pluginName() {
                            return "HeadingUI";
                        }
                        init() {
                            const t = this.editor,
                                e = t.t,
                                n = (function (t) {
                                    const e = t.t,
                                        n = {
                                            Paragraph: e("Paragraph"),
                                            "Heading 1": e("Heading 1"),
                                            "Heading 2": e("Heading 2"),
                                            "Heading 3": e("Heading 3"),
                                            "Heading 4": e("Heading 4"),
                                            "Heading 5": e("Heading 5"),
                                            "Heading 6": e("Heading 6"),
                                        };
                                    return t.config.get("heading.options").map((t) => {
                                        const e = n[t.title];
                                        return e && e != t.title && (t.title = e), t;
                                    });
                                })(t),
                                o = e("Choose heading"),
                                i = e("Heading");
                            t.ui.componentFactory.add("heading", (e) => {
                                const r = {},
                                    s = new ko(),
                                    a = t.commands.get("heading"),
                                    c = t.commands.get("paragraph"),
                                    l = [a];
                                for (const t of n) {
                                    const e = { type: "button", model: new Vu({ label: t.title, class: t.class, withText: !0 }) };
                                    "paragraph" === t.model
                                        ? (e.model.bind("isOn").to(c, "value"), e.model.set("commandName", "paragraph"), l.push(c))
                                        : (e.model.bind("isOn").to(a, "value", (e) => e === t.model), e.model.set({ commandName: "heading", commandValue: t.model })),
                                        s.add(e),
                                        (r[t.model] = t.title);
                                }
                                const d = ku(e);
                                return (
                                    wu(d, s),
                                    d.buttonView.set({ isOn: !1, withText: !0, tooltip: i }),
                                    d.extendTemplate({ attributes: { class: ["ck-heading-dropdown"] } }),
                                    d.bind("isEnabled").toMany(l, "isEnabled", (...t) => t.some((t) => t)),
                                    d.buttonView.bind("label").to(a, "value", c, "value", (t, e) => {
                                        const n = t || (e && "paragraph");
                                        return r[n] ? r[n] : o;
                                    }),
                                    this.listenTo(d, "execute", (e) => {
                                        t.execute(e.source.commandName, e.source.commandValue ? { value: e.source.commandValue } : void 0), t.editing.view.focus();
                                    }),
                                    d
                                );
                            });
                        }
                    }
                    class zf extends V {
                        static get requires() {
                            return [$u];
                        }
                        static get pluginName() {
                            return "WidgetToolbarRepository";
                        }
                        init() {
                            const t = this.editor;
                            if (t.plugins.has("BalloonToolbar")) {
                                const e = t.plugins.get("BalloonToolbar");
                                this.listenTo(
                                    e,
                                    "show",
                                    (e) => {
                                        (function (t) {
                                            const e = t.getSelectedElement();
                                            return !(!e || !Jg(e));
                                        })(t.editing.view.document.selection) && e.stop();
                                    },
                                    { priority: "high" }
                                );
                            }
                            (this._toolbarDefinitions = new Map()),
                                (this._balloon = this.editor.plugins.get("ContextualBalloon")),
                                this.on("change:isEnabled", () => {
                                    this._updateToolbarsVisibility();
                                }),
                                this.listenTo(t.ui, "update", () => {
                                    this._updateToolbarsVisibility();
                                }),
                                this.listenTo(
                                    t.ui.focusTracker,
                                    "change:isFocused",
                                    () => {
                                        this._updateToolbarsVisibility();
                                    },
                                    { priority: "low" }
                                );
                        }
                        destroy() {
                            super.destroy();
                            for (const t of this._toolbarDefinitions.values()) t.view.destroy();
                        }
                        register(t, { ariaLabel: e, items: n, getRelatedElement: o, balloonClassName: i = "ck-toolbar-container" }) {
                            if (!n.length) return void l("widget-toolbar-no-items", { toolbarId: t });
                            const r = this.editor,
                                s = r.t,
                                a = new iu(r.locale);
                            if (((a.ariaLabel = e || s("Widget toolbar")), this._toolbarDefinitions.has(t))) throw new c("widget-toolbar-duplicated", this, { toolbarId: t });
                            a.fillFromConfig(n, r.ui.componentFactory);
                            const d = { view: a, getRelatedElement: o, balloonClassName: i };
                            r.ui.addToolbar(a, {
                                isContextual: !0,
                                beforeFocus: () => {
                                    const t = o(r.editing.view.document.selection);
                                    t && this._showToolbar(d, t);
                                },
                                afterBlur: () => {
                                    this._hideToolbar(d);
                                },
                            }),
                                this._toolbarDefinitions.set(t, d);
                        }
                        _updateToolbarsVisibility() {
                            let t = 0,
                                e = null,
                                n = null;
                            for (const o of this._toolbarDefinitions.values()) {
                                const i = o.getRelatedElement(this.editor.editing.view.document.selection);
                                if (this.isEnabled && i)
                                    if (this.editor.ui.focusTracker.isFocused) {
                                        const r = i.getAncestors().length;
                                        r > t && ((t = r), (e = i), (n = o));
                                    } else this._isToolbarVisible(o) && this._hideToolbar(o);
                                else this._isToolbarInBalloon(o) && this._hideToolbar(o);
                            }
                            n && this._showToolbar(n, e);
                        }
                        _hideToolbar(t) {
                            this._balloon.remove(t.view), this.stopListening(this._balloon, "change:visibleView");
                        }
                        _showToolbar(t, e) {
                            this._isToolbarVisible(t)
                                ? Lf(this.editor, e)
                                : this._isToolbarInBalloon(t) ||
                                  (this._balloon.add({ view: t.view, position: Of(this.editor, e), balloonClassName: t.balloonClassName }),
                                  this.listenTo(this._balloon, "change:visibleView", () => {
                                      for (const t of this._toolbarDefinitions.values())
                                          if (this._isToolbarVisible(t)) {
                                              const e = t.getRelatedElement(this.editor.editing.view.document.selection);
                                              Lf(this.editor, e);
                                          }
                                  }));
                        }
                        _isToolbarVisible(t) {
                            return this._balloon.visibleView === t.view;
                        }
                        _isToolbarInBalloon(t) {
                            return this._balloon.hasView(t.view);
                        }
                    }
                    function Lf(t, e) {
                        const n = t.plugins.get("ContextualBalloon"),
                            o = Of(t, e);
                        n.updatePosition(o);
                    }
                    function Of(t, e) {
                        const n = t.editing.view,
                            o = dh.defaultPositions;
                        return { target: n.domConverter.mapViewToDom(e), positions: [o.northArrowSouth, o.northArrowSouthWest, o.northArrowSouthEast, o.southArrowNorth, o.southArrowNorthWest, o.southArrowNorthEast, o.viewportStickyNorth] };
                    }
                    class Rf {
                        constructor(t) {
                            this.set("activeHandlePosition", null),
                                this.set("proposedWidthPercents", null),
                                this.set("proposedWidth", null),
                                this.set("proposedHeight", null),
                                this.set("proposedHandleHostWidth", null),
                                this.set("proposedHandleHostHeight", null),
                                (this._options = t),
                                (this._referenceCoordinates = null);
                        }
                        begin(t, e, n) {
                            const o = new Da(e);
                            (this.activeHandlePosition = (function (t) {
                                const e = ["top-left", "top-right", "bottom-right", "bottom-left"];
                                for (const n of e) if (t.classList.contains(jf(n))) return n;
                            })(t)),
                                (this._referenceCoordinates = (function (t, e) {
                                    const n = new Da(t),
                                        o = e.split("-"),
                                        i = { x: "right" == o[1] ? n.right : n.left, y: "bottom" == o[0] ? n.bottom : n.top };
                                    return (i.x += t.ownerDocument.defaultView.scrollX), (i.y += t.ownerDocument.defaultView.scrollY), i;
                                })(
                                    e,
                                    (function (t) {
                                        const e = t.split("-"),
                                            n = { top: "bottom", bottom: "top", left: "right", right: "left" };
                                        return `${n[e[0]]}-${n[e[1]]}`;
                                    })(this.activeHandlePosition)
                                )),
                                (this.originalWidth = o.width),
                                (this.originalHeight = o.height),
                                (this.aspectRatio = o.width / o.height);
                            const i = n.style.width;
                            i && i.match(/^\d+(\.\d*)?%$/)
                                ? (this.originalWidthPercents = parseFloat(i))
                                : (this.originalWidthPercents = (function (t, e) {
                                      const n = t.parentElement,
                                          o = parseFloat(n.ownerDocument.defaultView.getComputedStyle(n).width);
                                      return (e.width / o) * 100;
                                  })(n, o));
                        }
                        update(t) {
                            (this.proposedWidth = t.width),
                                (this.proposedHeight = t.height),
                                (this.proposedWidthPercents = t.widthPercents),
                                (this.proposedHandleHostWidth = t.handleHostWidth),
                                (this.proposedHandleHostHeight = t.handleHostHeight);
                        }
                    }
                    function jf(t) {
                        return `ck-widget__resizer__handle-${t}`;
                    }
                    F(Rf, B);
                    class Ff extends eh {
                        constructor() {
                            super();
                            const t = this.bindTemplate;
                            this.setTemplate({
                                tag: "div",
                                attributes: { class: ["ck", "ck-size-view", t.to("_viewPosition", (t) => (t ? `ck-orientation-${t}` : ""))], style: { display: t.if("_isVisible", "none", (t) => !t) } },
                                children: [{ text: t.to("_label") }],
                            });
                        }
                        _bindToState(t, e) {
                            this.bind("_isVisible").to(e, "proposedWidth", e, "proposedHeight", (t, e) => null !== t && null !== e),
                                this.bind("_label").to(e, "proposedHandleHostWidth", e, "proposedHandleHostHeight", e, "proposedWidthPercents", (e, n, o) => ("px" === t.unit ? `${e}×${n}` : `${o}%`)),
                                this.bind("_viewPosition").to(e, "activeHandlePosition", e, "proposedHandleHostWidth", e, "proposedHandleHostHeight", (t, e, n) => (e < 50 || n < 50 ? "above-center" : t));
                        }
                        _dismiss() {
                            this.unbind(), (this._isVisible = !1);
                        }
                    }
                    class Vf {
                        constructor(t) {
                            (this._options = t),
                                (this._viewResizerWrapper = null),
                                this.set("isEnabled", !0),
                                this.decorate("begin"),
                                this.decorate("cancel"),
                                this.decorate("commit"),
                                this.decorate("updateSize"),
                                this.on(
                                    "commit",
                                    (t) => {
                                        this.state.proposedWidth || this.state.proposedWidthPercents || (this._cleanup(), t.stop());
                                    },
                                    { priority: "high" }
                                ),
                                this.on("change:isEnabled", () => {
                                    this.isEnabled && this.redraw();
                                });
                        }
                        attach() {
                            const t = this,
                                e = this._options.viewElement;
                            this._options.editor.editing.view.change((n) => {
                                const o = n.createUIElement("div", { class: "ck ck-reset_all ck-widget__resizer" }, function (e) {
                                    const n = this.toDomElement(e);
                                    return (
                                        t._appendHandles(n),
                                        t._appendSizeUI(n),
                                        t.on("change:isEnabled", (t, e, o) => {
                                            n.style.display = o ? "" : "none";
                                        }),
                                        (n.style.display = t.isEnabled ? "" : "none"),
                                        n
                                    );
                                });
                                n.insert(n.createPositionAt(e, "end"), o), n.addClass("ck-widget_with-resizer", e), (this._viewResizerWrapper = o);
                            });
                        }
                        begin(t) {
                            (this.state = new Rf(this._options)),
                                this._sizeView._bindToState(this._options, this.state),
                                (this._initialViewWidth = this._options.viewElement.getStyle("width")),
                                this.state.begin(t, this._getHandleHost(), this._getResizeHost());
                        }
                        updateSize(t) {
                            const e = this._proposeNewSize(t);
                            this._options.editor.editing.view.change((t) => {
                                const n = this._options.unit || "%",
                                    o = ("%" === n ? e.widthPercents : e.width) + n;
                                t.setStyle("width", o, this._options.viewElement);
                            });
                            const n = this._getHandleHost(),
                                o = new Da(n);
                            (e.handleHostWidth = Math.round(o.width)), (e.handleHostHeight = Math.round(o.height));
                            const i = new Da(n);
                            (e.width = Math.round(i.width)), (e.height = Math.round(i.height)), this.redraw(o), this.state.update(e);
                        }
                        commit() {
                            const t = this._options.unit || "%",
                                e = ("%" === t ? this.state.proposedWidthPercents : this.state.proposedWidth) + t;
                            this._options.editor.editing.view.change(() => {
                                this._cleanup(), this._options.onCommit(e);
                            });
                        }
                        cancel() {
                            this._cleanup();
                        }
                        destroy() {
                            this.cancel();
                        }
                        redraw(t) {
                            const e = this._domResizerWrapper;
                            if (!((n = e) && n.ownerDocument && n.ownerDocument.contains(n))) return;
                            var n;
                            const o = e.parentElement,
                                i = this._getHandleHost(),
                                r = this._viewResizerWrapper,
                                s = [r.getStyle("width"), r.getStyle("height"), r.getStyle("left"), r.getStyle("top")];
                            let a;
                            if (o.isSameNode(i)) {
                                const e = t || new Da(i);
                                a = [e.width + "px", e.height + "px", void 0, void 0];
                            } else a = [i.offsetWidth + "px", i.offsetHeight + "px", i.offsetLeft + "px", i.offsetTop + "px"];
                            "same" !== Mo(s, a) &&
                                this._options.editor.editing.view.change((t) => {
                                    t.setStyle({ width: a[0], height: a[1], left: a[2], top: a[3] }, r);
                                });
                        }
                        containsHandle(t) {
                            return this._domResizerWrapper.contains(t);
                        }
                        static isResizeHandle(t) {
                            return t.classList.contains("ck-widget__resizer__handle");
                        }
                        _cleanup() {
                            this._sizeView._dismiss();
                            this._options.editor.editing.view.change((t) => {
                                t.setStyle("width", this._initialViewWidth, this._options.viewElement);
                            });
                        }
                        _proposeNewSize(t) {
                            const e = this.state,
                                n = { x: (o = t).pageX, y: o.pageY };
                            var o;
                            const i = !this._options.isCentered || this._options.isCentered(this),
                                r = { x: e._referenceCoordinates.x - (n.x + e.originalWidth), y: n.y - e.originalHeight - e._referenceCoordinates.y };
                            i && e.activeHandlePosition.endsWith("-right") && (r.x = n.x - (e._referenceCoordinates.x + e.originalWidth)), i && (r.x *= 2);
                            const s = { width: Math.abs(e.originalWidth + r.x), height: Math.abs(e.originalHeight + r.y) };
                            (s.dominant = s.width / e.aspectRatio > s.height ? "width" : "height"), (s.max = s[s.dominant]);
                            const a = { width: s.width, height: s.height };
                            return (
                                "width" == s.dominant ? (a.height = a.width / e.aspectRatio) : (a.width = a.height * e.aspectRatio),
                                { width: Math.round(a.width), height: Math.round(a.height), widthPercents: Math.min(Math.round((e.originalWidthPercents / e.originalWidth) * a.width * 100) / 100, 100) }
                            );
                        }
                        _getResizeHost() {
                            const t = this._domResizerWrapper.parentElement;
                            return this._options.getResizeHost(t);
                        }
                        _getHandleHost() {
                            const t = this._domResizerWrapper.parentElement;
                            return this._options.getHandleHost(t);
                        }
                        get _domResizerWrapper() {
                            return this._options.editor.editing.view.domConverter.mapViewToDom(this._viewResizerWrapper);
                        }
                        _appendHandles(t) {
                            const e = ["top-left", "top-right", "bottom-right", "bottom-left"];
                            for (const o of e) t.appendChild(new Bd({ tag: "div", attributes: { class: "ck-widget__resizer__handle " + ((n = o), `ck-widget__resizer__handle-${n}`) } }).render());
                            var n;
                        }
                        _appendSizeUI(t) {
                            (this._sizeView = new Ff()), this._sizeView.render(), t.appendChild(this._sizeView.element);
                        }
                    }
                    F(Vf, B);
                    var Hf = n(8506),
                        Uf = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Hf.Z, Uf);
                    Hf.Z.locals;
                    F(
                        class extends V {
                            static get pluginName() {
                                return "WidgetResize";
                            }
                            init() {
                                const t = this.editor.editing,
                                    e = Ao.window.document;
                                this.set("visibleResizer", null),
                                    this.set("_activeResizer", null),
                                    (this._resizers = new Map()),
                                    t.view.addObserver(Cg),
                                    (this._observer = Object.create(ws)),
                                    this.listenTo(t.view.document, "mousedown", this._mouseDownListener.bind(this), { priority: "high" }),
                                    this._observer.listenTo(e, "mousemove", this._mouseMoveListener.bind(this)),
                                    this._observer.listenTo(e, "mouseup", this._mouseUpListener.bind(this));
                                const n = () => {
                                    this.visibleResizer && this.visibleResizer.redraw();
                                };
                                (this._redrawFocusedResizerThrottled = xm(n, 200)),
                                    this.on("change:visibleResizer", n),
                                    this.editor.ui.on("update", this._redrawFocusedResizerThrottled),
                                    this.editor.model.document.on(
                                        "change",
                                        () => {
                                            for (const [t, e] of this._resizers) t.isAttached() || (this._resizers.delete(t), e.destroy());
                                        },
                                        { priority: "lowest" }
                                    ),
                                    this._observer.listenTo(Ao.window, "resize", this._redrawFocusedResizerThrottled);
                                const o = this.editor.editing.view.document.selection;
                                o.on("change", () => {
                                    const t = o.getSelectedElement();
                                    this.visibleResizer = this.getResizerByViewElement(t) || null;
                                });
                            }
                            destroy() {
                                this._observer.stopListening();
                                for (const t of this._resizers.values()) t.destroy();
                                this._redrawFocusedResizerThrottled.cancel();
                            }
                            attachTo(t) {
                                const e = new Vf(t),
                                    n = this.editor.plugins;
                                if ((e.attach(), n.has("WidgetToolbarRepository"))) {
                                    const t = n.get("WidgetToolbarRepository");
                                    e.on(
                                        "begin",
                                        () => {
                                            t.forceDisabled("resize");
                                        },
                                        { priority: "lowest" }
                                    ),
                                        e.on(
                                            "cancel",
                                            () => {
                                                t.clearForceDisabled("resize");
                                            },
                                            { priority: "highest" }
                                        ),
                                        e.on(
                                            "commit",
                                            () => {
                                                t.clearForceDisabled("resize");
                                            },
                                            { priority: "highest" }
                                        );
                                }
                                this._resizers.set(t.viewElement, e);
                                const o = this.editor.editing.view.document.selection.getSelectedElement();
                                return this.getResizerByViewElement(o) == e && (this.visibleResizer = e), e;
                            }
                            getResizerByViewElement(t) {
                                return this._resizers.get(t);
                            }
                            _getResizerByHandle(t) {
                                for (const e of this._resizers.values()) if (e.containsHandle(t)) return e;
                            }
                            _mouseDownListener(t, e) {
                                const n = e.domTarget;
                                Vf.isResizeHandle(n) && ((this._activeResizer = this._getResizerByHandle(n)), this._activeResizer && (this._activeResizer.begin(n), t.stop(), e.preventDefault()));
                            }
                            _mouseMoveListener(t, e) {
                                this._activeResizer && this._activeResizer.updateSize(e);
                            }
                            _mouseUpListener() {
                                this._activeResizer && (this._activeResizer.commit(), (this._activeResizer = null));
                            }
                        },
                        B
                    );
                    class Wf extends U {
                        refresh() {
                            const t = this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);
                            (this.isEnabled = !!t), this.isEnabled && t.hasAttribute("alt") ? (this.value = t.getAttribute("alt")) : (this.value = !1);
                        }
                        execute(t) {
                            const e = this.editor,
                                n = e.plugins.get("ImageUtils"),
                                o = e.model,
                                i = n.getClosestSelectedImageElement(o.document.selection);
                            o.change((e) => {
                                e.setAttribute("alt", t.newValue, i);
                            });
                        }
                    }
                    function qf(t) {
                        return t.createContainerElement("figure", { class: "image" }, [t.createEmptyElement("img"), t.createSlot()]);
                    }
                    function Gf(t, e) {
                        const n = t.plugins.get("ImageUtils"),
                            o = t.plugins.has("ImageInlineEditing") && t.plugins.has("ImageBlockEditing");
                        return (t) => {
                            if (!n.isInlineImageView(t)) return null;
                            if (!o) return i(t);
                            return (t.findAncestor(n.isBlockImageView) ? "imageBlock" : "imageInline") !== e ? null : i(t);
                        };
                        function i(t) {
                            const e = { name: !0 };
                            return t.hasAttribute("src") && (e.attributes = ["src"]), e;
                        }
                    }
                    function $f(t, e) {
                        const n = wa(e.getSelectedBlocks());
                        return !n || t.isObject(n) || (n.isEmpty && "listItem" != n.name) ? "imageBlock" : "imageInline";
                    }
                    class Yf extends V {
                        static get pluginName() {
                            return "ImageUtils";
                        }
                        isImage(t) {
                            return this.isInlineImage(t) || this.isBlockImage(t);
                        }
                        isInlineImageView(t) {
                            return !!t && t.is("element", "img");
                        }
                        isBlockImageView(t) {
                            return !!t && t.is("element", "figure") && t.hasClass("image");
                        }
                        insertImage(t = {}, e = null, n = null) {
                            const o = this.editor,
                                i = o.model,
                                r = i.document.selection;
                            (n = Kf(o, e || r, n)), (t = { ...Object.fromEntries(r.getAttributes()), ...t });
                            for (const e in t) i.schema.checkAttribute(n, e) || delete t[e];
                            return i.change((o) => {
                                const r = o.createElement(n, t);
                                return i.insertObject(r, e, null, { setSelection: "on", findOptimalPosition: !e && "imageInline" != n }), r.parent ? r : null;
                            });
                        }
                        getClosestSelectedImageWidget(t) {
                            const e = t.getFirstPosition();
                            if (!e) return null;
                            const n = t.getSelectedElement();
                            if (n && this.isImageWidget(n)) return n;
                            let o = e.parent;
                            for (; o; ) {
                                if (o.is("element") && this.isImageWidget(o)) return o;
                                o = o.parent;
                            }
                            return null;
                        }
                        getClosestSelectedImageElement(t) {
                            const e = t.getSelectedElement();
                            return this.isImage(e) ? e : t.getFirstPosition().findAncestor("imageBlock");
                        }
                        isImageAllowed() {
                            const t = this.editor.model.document.selection;
                            return (
                                (function (t, e) {
                                    if ("imageBlock" == Kf(t, e)) {
                                        const n = (function (t, e) {
                                            const n = rm(t, e).start.parent;
                                            if (n.isEmpty && !n.is("element", "$root")) return n.parent;
                                            return n;
                                        })(e, t.model);
                                        if (t.model.schema.checkChild(n, "imageBlock")) return !0;
                                    } else if (t.model.schema.checkChild(e.focus, "imageInline")) return !0;
                                    return !1;
                                })(this.editor, t) &&
                                (function (t) {
                                    return [...t.focus.getAncestors()].every((t) => !t.is("element", "imageBlock"));
                                })(t)
                            );
                        }
                        toImageWidget(t, e, n) {
                            e.setCustomProperty("image", !0, t);
                            return Xg(t, e, {
                                label: () => {
                                    const e = this.findViewImgElement(t).getAttribute("alt");
                                    return e ? `${e} ${n}` : n;
                                },
                            });
                        }
                        isImageWidget(t) {
                            return !!t.getCustomProperty("image") && Jg(t);
                        }
                        isBlockImage(t) {
                            return !!t && t.is("element", "imageBlock");
                        }
                        isInlineImage(t) {
                            return !!t && t.is("element", "imageInline");
                        }
                        findViewImgElement(t) {
                            if (this.isInlineImageView(t)) return t;
                            const e = this.editor.editing.view;
                            for (const { item: n } of e.createRangeIn(t)) if (this.isInlineImageView(n)) return n;
                        }
                    }
                    function Kf(t, e, n) {
                        const o = t.model.schema,
                            i = t.config.get("image.insert.type");
                        return t.plugins.has("ImageBlockEditing")
                            ? t.plugins.has("ImageInlineEditing")
                                ? n || ("inline" === i ? "imageInline" : "block" === i ? "imageBlock" : e.is("selection") ? $f(o, e) : o.checkChild(e, "imageInline") ? "imageInline" : "imageBlock")
                                : "imageBlock"
                            : "imageInline";
                    }
                    class Qf extends V {
                        static get requires() {
                            return [Yf];
                        }
                        static get pluginName() {
                            return "ImageTextAlternativeEditing";
                        }
                        init() {
                            this.editor.commands.add("imageTextAlternative", new Wf(this.editor));
                        }
                    }
                    var Zf = n(1905),
                        Jf = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Zf.Z, Jf);
                    Zf.Z.locals;
                    var Xf = n(6764),
                        tk = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Xf.Z, tk);
                    Xf.Z.locals;
                    class ek extends eh {
                        constructor(t) {
                            super(t);
                            const e = this.locale.t;
                            (this.focusTracker = new _a()),
                                (this.keystrokes = new Aa()),
                                (this.labeledInput = this._createLabeledInputView()),
                                (this.saveButtonView = this._createButton(e("Save"), Eh.check, "ck-button-save")),
                                (this.saveButtonView.type = "submit"),
                                (this.cancelButtonView = this._createButton(e("Cancel"), Eh.cancel, "ck-button-cancel", "cancel")),
                                (this._focusables = new Nd()),
                                (this._focusCycler = new Zh({ focusables: this._focusables, focusTracker: this.focusTracker, keystrokeHandler: this.keystrokes, actions: { focusPrevious: "shift + tab", focusNext: "tab" } })),
                                this.setTemplate({ tag: "form", attributes: { class: ["ck", "ck-text-alternative-form", "ck-responsive-form"], tabindex: "-1" }, children: [this.labeledInput, this.saveButtonView, this.cancelButtonView] }),
                                Ih(this);
                        }
                        render() {
                            super.render(),
                                this.keystrokes.listenTo(this.element),
                                Mh({ view: this }),
                                [this.labeledInput, this.saveButtonView, this.cancelButtonView].forEach((t) => {
                                    this._focusables.add(t), this.focusTracker.add(t.element);
                                });
                        }
                        destroy() {
                            super.destroy(), this.focusTracker.destroy(), this.keystrokes.destroy();
                        }
                        _createButton(t, e, n, o) {
                            const i = new Lh(this.locale);
                            return i.set({ label: t, icon: e, tooltip: !0 }), i.extendTemplate({ attributes: { class: n } }), o && i.delegate("execute").to(this, o), i;
                        }
                        _createLabeledInputView() {
                            const t = this.locale.t,
                                e = new Ru(this.locale, ju);
                            return (e.label = t("Text alternative")), e;
                        }
                    }
                    function nk(t) {
                        const e = t.editing.view,
                            n = dh.defaultPositions,
                            o = t.plugins.get("ImageUtils");
                        return {
                            target: e.domConverter.mapViewToDom(o.getClosestSelectedImageWidget(e.document.selection)),
                            positions: [n.northArrowSouth, n.northArrowSouthWest, n.northArrowSouthEast, n.southArrowNorth, n.southArrowNorthWest, n.southArrowNorthEast, n.viewportStickyNorth],
                        };
                    }
                    class ok extends V {
                        static get requires() {
                            return [$u];
                        }
                        static get pluginName() {
                            return "ImageTextAlternativeUI";
                        }
                        init() {
                            this._createButton(), this._createForm();
                        }
                        destroy() {
                            super.destroy(), this._form.destroy();
                        }
                        _createButton() {
                            const t = this.editor,
                                e = t.t;
                            t.ui.componentFactory.add("imageTextAlternative", (n) => {
                                const o = t.commands.get("imageTextAlternative"),
                                    i = new Lh(n);
                                return (
                                    i.set({ label: e("Change image text alternative"), icon: Eh.lowVision, tooltip: !0 }),
                                    i.bind("isEnabled").to(o, "isEnabled"),
                                    this.listenTo(i, "execute", () => {
                                        this._showForm();
                                    }),
                                    i
                                );
                            });
                        }
                        _createForm() {
                            const t = this.editor,
                                e = t.editing.view.document,
                                n = t.plugins.get("ImageUtils");
                            (this._balloon = this.editor.plugins.get("ContextualBalloon")),
                                (this._form = new ek(t.locale)),
                                this._form.render(),
                                this.listenTo(this._form, "submit", () => {
                                    t.execute("imageTextAlternative", { newValue: this._form.labeledInput.fieldView.element.value }), this._hideForm(!0);
                                }),
                                this.listenTo(this._form, "cancel", () => {
                                    this._hideForm(!0);
                                }),
                                this._form.keystrokes.set("Esc", (t, e) => {
                                    this._hideForm(!0), e();
                                }),
                                this.listenTo(t.ui, "update", () => {
                                    n.getClosestSelectedImageWidget(e.selection)
                                        ? this._isVisible &&
                                          (function (t) {
                                              const e = t.plugins.get("ContextualBalloon");
                                              if (t.plugins.get("ImageUtils").getClosestSelectedImageWidget(t.editing.view.document.selection)) {
                                                  const n = nk(t);
                                                  e.updatePosition(n);
                                              }
                                          })(t)
                                        : this._hideForm(!0);
                                }),
                                Dh({ emitter: this._form, activator: () => this._isVisible, contextElements: [this._balloon.view.element], callback: () => this._hideForm() });
                        }
                        _showForm() {
                            if (this._isVisible) return;
                            const t = this.editor,
                                e = t.commands.get("imageTextAlternative"),
                                n = this._form.labeledInput;
                            this._form.disableCssTransitions(),
                                this._isInBalloon || this._balloon.add({ view: this._form, position: nk(t) }),
                                (n.fieldView.value = n.fieldView.element.value = e.value || ""),
                                this._form.labeledInput.fieldView.select(),
                                this._form.enableCssTransitions();
                        }
                        _hideForm(t) {
                            this._isInBalloon && (this._form.focusTracker.isFocused && this._form.saveButtonView.focus(), this._balloon.remove(this._form), t && this.editor.editing.view.focus());
                        }
                        get _isVisible() {
                            return this._balloon.visibleView === this._form;
                        }
                        get _isInBalloon() {
                            return this._balloon.hasView(this._form);
                        }
                    }
                    class ik extends V {
                        static get requires() {
                            return [Qf, ok];
                        }
                        static get pluginName() {
                            return "ImageTextAlternative";
                        }
                    }
                    function rk(t, e) {
                        return (t) => {
                            t.on(`attribute:srcset:${e}`, n);
                        };
                        function n(e, n, o) {
                            if (!o.consumable.consume(n.item, e.name)) return;
                            const i = o.writer,
                                r = o.mapper.toViewElement(n.item),
                                s = t.findViewImgElement(r);
                            if (null === n.attributeNewValue) {
                                const t = n.attributeOldValue;
                                t.data && (i.removeAttribute("srcset", s), i.removeAttribute("sizes", s), t.width && i.removeAttribute("width", s));
                            } else {
                                const t = n.attributeNewValue;
                                t.data && (i.setAttribute("srcset", t.data, s), i.setAttribute("sizes", "100vw", s), t.width && i.setAttribute("width", t.width, s));
                            }
                        }
                    }
                    function sk(t, e, n) {
                        return (t) => {
                            t.on(`attribute:${n}:${e}`, o);
                        };
                        function o(e, n, o) {
                            if (!o.consumable.consume(n.item, e.name)) return;
                            const i = o.writer,
                                r = o.mapper.toViewElement(n.item),
                                s = t.findViewImgElement(r);
                            i.setAttribute(n.attributeKey, n.attributeNewValue || "", s);
                        }
                    }
                    class ak extends vs {
                        observe(t) {
                            this.listenTo(
                                t,
                                "load",
                                (t, e) => {
                                    const n = e.target;
                                    this.checkShouldIgnoreEventFromTarget(n) || ("IMG" == n.tagName && this._fireEvents(e));
                                },
                                { useCapture: !0 }
                            );
                        }
                        _fireEvents(t) {
                            this.isEnabled && (this.document.fire("layoutChanged"), this.document.fire("imageLoaded", t));
                        }
                    }
                    class ck extends U {
                        constructor(t) {
                            super(t);
                            const e = t.config.get("image.insert.type");
                            t.plugins.has("ImageBlockEditing") || ("block" === e && l("image-block-plugin-required")), t.plugins.has("ImageInlineEditing") || ("inline" === e && l("image-inline-plugin-required"));
                        }
                        refresh() {
                            this.isEnabled = this.editor.plugins.get("ImageUtils").isImageAllowed();
                        }
                        execute(t) {
                            const e = wo(t.source),
                                n = this.editor.model.document.selection,
                                o = this.editor.plugins.get("ImageUtils"),
                                i = Object.fromEntries(n.getAttributes());
                            e.forEach((t, e) => {
                                const r = n.getSelectedElement();
                                if (("string" == typeof t && (t = { src: t }), e && r && o.isImage(r))) {
                                    const e = this.editor.model.createPositionAfter(r);
                                    o.insertImage({ ...t, ...i }, e);
                                } else o.insertImage({ ...t, ...i });
                            });
                        }
                    }
                    class lk extends V {
                        static get requires() {
                            return [Yf];
                        }
                        static get pluginName() {
                            return "ImageEditing";
                        }
                        init() {
                            const t = this.editor,
                                e = t.conversion;
                            t.editing.view.addObserver(ak),
                                e
                                    .for("upcast")
                                    .attributeToAttribute({ view: { name: "img", key: "alt" }, model: "alt" })
                                    .attributeToAttribute({
                                        view: { name: "img", key: "srcset" },
                                        model: {
                                            key: "srcset",
                                            value: (t) => {
                                                const e = { data: t.getAttribute("srcset") };
                                                return t.hasAttribute("width") && (e.width = t.getAttribute("width")), e;
                                            },
                                        },
                                    });
                            const n = new ck(t);
                            t.commands.add("insertImage", n), t.commands.add("imageInsert", n);
                        }
                    }
                    class dk extends U {
                        constructor(t, e) {
                            super(t), (this._modelElementName = e);
                        }
                        refresh() {
                            const t = this.editor.plugins.get("ImageUtils"),
                                e = t.getClosestSelectedImageElement(this.editor.model.document.selection);
                            "imageBlock" === this._modelElementName ? (this.isEnabled = t.isInlineImage(e)) : (this.isEnabled = t.isBlockImage(e));
                        }
                        execute() {
                            const t = this.editor,
                                e = this.editor.model,
                                n = t.plugins.get("ImageUtils"),
                                o = n.getClosestSelectedImageElement(e.document.selection),
                                i = Object.fromEntries(o.getAttributes());
                            return i.src || i.uploadId
                                ? e.change((t) => {
                                      const r = Array.from(e.markers).filter((t) => t.getRange().containsItem(o)),
                                          s = n.insertImage(i, e.createSelection(o, "on"), this._modelElementName);
                                      if (!s) return null;
                                      const a = t.createRangeOn(s);
                                      for (const e of r) {
                                          const n = e.getRange(),
                                              o = "$graveyard" != n.root.rootName ? n.getJoined(a, !0) : a;
                                          t.updateMarker(e, { range: o });
                                      }
                                      return { oldElement: o, newElement: s };
                                  })
                                : null;
                        }
                    }
                    class hk extends V {
                        static get requires() {
                            return [lk, Yf, Bg];
                        }
                        static get pluginName() {
                            return "ImageBlockEditing";
                        }
                        init() {
                            const t = this.editor;
                            t.model.schema.register("imageBlock", { inheritAllFrom: "$blockObject", allowAttributes: ["alt", "src", "srcset"] }),
                                this._setupConversion(),
                                t.plugins.has("ImageInlineEditing") && (t.commands.add("imageTypeBlock", new dk(this.editor, "imageBlock")), this._setupClipboardIntegration());
                        }
                        _setupConversion() {
                            const t = this.editor,
                                e = t.t,
                                n = t.conversion,
                                o = t.plugins.get("ImageUtils");
                            n.for("dataDowncast").elementToStructure({ model: "imageBlock", view: (t, { writer: e }) => qf(e) }),
                                n.for("editingDowncast").elementToStructure({ model: "imageBlock", view: (t, { writer: n }) => o.toImageWidget(qf(n), n, e("image widget")) }),
                                n.for("downcast").add(sk(o, "imageBlock", "src")).add(sk(o, "imageBlock", "alt")).add(rk(o, "imageBlock")),
                                n
                                    .for("upcast")
                                    .elementToElement({ view: Gf(t, "imageBlock"), model: (t, { writer: e }) => e.createElement("imageBlock", t.hasAttribute("src") ? { src: t.getAttribute("src") } : null) })
                                    .add(
                                        (function (t) {
                                            return (t) => {
                                                t.on("element:figure", e);
                                            };
                                            function e(e, n, o) {
                                                if (!o.consumable.test(n.viewItem, { name: !0, classes: "image" })) return;
                                                const i = t.findViewImgElement(n.viewItem);
                                                if (!i || !o.consumable.test(i, { name: !0 })) return;
                                                o.consumable.consume(n.viewItem, { name: !0, classes: "image" });
                                                const r = wa(o.convertItem(i, n.modelCursor).modelRange.getItems());
                                                r ? (o.convertChildren(n.viewItem, r), o.updateConversionResult(r, n)) : o.consumable.revert(n.viewItem, { name: !0, classes: "image" });
                                            }
                                        })(o)
                                    );
                        }
                        _setupClipboardIntegration() {
                            const t = this.editor,
                                e = t.model,
                                n = t.editing.view,
                                o = t.plugins.get("ImageUtils");
                            this.listenTo(t.plugins.get("ClipboardPipeline"), "inputTransformation", (i, r) => {
                                const s = Array.from(r.content.getChildren());
                                let a;
                                if (!s.every(o.isInlineImageView)) return;
                                a = r.targetRanges ? t.editing.mapper.toModelRange(r.targetRanges[0]) : e.document.selection.getFirstRange();
                                const c = e.createSelection(a);
                                if ("imageBlock" === $f(e.schema, c)) {
                                    const t = new vg(n.document),
                                        e = s.map((e) => t.createElement("figure", { class: "image" }, e));
                                    r.content = t.createDocumentFragment(e);
                                }
                            });
                        }
                    }
                    var uk = n(3508),
                        gk = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(uk.Z, gk);
                    uk.Z.locals;
                    class mk extends V {
                        static get requires() {
                            return [hk, vm, ik];
                        }
                        static get pluginName() {
                            return "ImageBlock";
                        }
                    }
                    class pk extends V {
                        static get requires() {
                            return [lk, Yf, Bg];
                        }
                        static get pluginName() {
                            return "ImageInlineEditing";
                        }
                        init() {
                            const t = this.editor,
                                e = t.model.schema;
                            e.register("imageInline", { inheritAllFrom: "$inlineObject", allowAttributes: ["alt", "src", "srcset"] }),
                                e.addChildCheck((t, e) => {
                                    if (t.endsWith("caption") && "imageInline" === e.name) return !1;
                                }),
                                this._setupConversion(),
                                t.plugins.has("ImageBlockEditing") && (t.commands.add("imageTypeInline", new dk(this.editor, "imageInline")), this._setupClipboardIntegration());
                        }
                        _setupConversion() {
                            const t = this.editor,
                                e = t.t,
                                n = t.conversion,
                                o = t.plugins.get("ImageUtils");
                            n.for("dataDowncast").elementToElement({ model: "imageInline", view: (t, { writer: e }) => e.createEmptyElement("img") }),
                                n.for("editingDowncast").elementToStructure({
                                    model: "imageInline",
                                    view: (t, { writer: n }) =>
                                        o.toImageWidget(
                                            (function (t) {
                                                return t.createContainerElement("span", { class: "image-inline" }, t.createEmptyElement("img"));
                                            })(n),
                                            n,
                                            e("image widget")
                                        ),
                                }),
                                n.for("downcast").add(sk(o, "imageInline", "src")).add(sk(o, "imageInline", "alt")).add(rk(o, "imageInline")),
                                n.for("upcast").elementToElement({ view: Gf(t, "imageInline"), model: (t, { writer: e }) => e.createElement("imageInline", t.hasAttribute("src") ? { src: t.getAttribute("src") } : null) });
                        }
                        _setupClipboardIntegration() {
                            const t = this.editor,
                                e = t.model,
                                n = t.editing.view,
                                o = t.plugins.get("ImageUtils");
                            this.listenTo(t.plugins.get("ClipboardPipeline"), "inputTransformation", (i, r) => {
                                const s = Array.from(r.content.getChildren());
                                let a;
                                if (!s.every(o.isBlockImageView)) return;
                                a = r.targetRanges ? t.editing.mapper.toModelRange(r.targetRanges[0]) : e.document.selection.getFirstRange();
                                const c = e.createSelection(a);
                                if ("imageInline" === $f(e.schema, c)) {
                                    const t = new vg(n.document),
                                        e = s.map((e) => (1 === e.childCount ? (Array.from(e.getAttributes()).forEach((n) => t.setAttribute(...n, o.findViewImgElement(e))), e.getChild(0)) : e));
                                    r.content = t.createDocumentFragment(e);
                                }
                            });
                        }
                    }
                    class fk extends V {
                        static get requires() {
                            return [pk, vm, ik];
                        }
                        static get pluginName() {
                            return "ImageInline";
                        }
                    }
                    class kk extends U {
                        refresh() {
                            const t = this.editor,
                                e = t.plugins.get("ImageCaptionUtils");
                            if (!t.plugins.has(hk)) return (this.isEnabled = !1), void (this.value = !1);
                            const n = t.model.document.selection,
                                o = n.getSelectedElement();
                            if (!o) {
                                const t = e.getCaptionFromModelSelection(n);
                                return (this.isEnabled = !!t), void (this.value = !!t);
                            }
                            (this.isEnabled = this.editor.plugins.get("ImageUtils").isImage(o)), this.isEnabled ? (this.value = !!e.getCaptionFromImageModelElement(o)) : (this.value = !1);
                        }
                        execute(t = {}) {
                            const { focusCaptionOnShow: e } = t;
                            this.editor.model.change((t) => {
                                this.value ? this._hideImageCaption(t) : this._showImageCaption(t, e);
                            });
                        }
                        _showImageCaption(t, e) {
                            const n = this.editor.model.document.selection,
                                o = this.editor.plugins.get("ImageCaptionEditing");
                            let i = n.getSelectedElement();
                            const r = o._getSavedCaption(i);
                            this.editor.plugins.get("ImageUtils").isInlineImage(i) && (this.editor.execute("imageTypeBlock"), (i = n.getSelectedElement()));
                            const s = r || t.createElement("caption");
                            t.append(s, i), e && t.setSelection(s, "in");
                        }
                        _hideImageCaption(t) {
                            const e = this.editor,
                                n = e.model.document.selection,
                                o = e.plugins.get("ImageCaptionEditing"),
                                i = e.plugins.get("ImageCaptionUtils");
                            let r,
                                s = n.getSelectedElement();
                            s ? (r = i.getCaptionFromImageModelElement(s)) : ((r = i.getCaptionFromModelSelection(n)), (s = r.parent)), o._saveCaption(s, r), t.setSelection(s, "on"), t.remove(r);
                        }
                    }
                    class bk extends V {
                        static get pluginName() {
                            return "ImageCaptionUtils";
                        }
                        static get requires() {
                            return [Yf];
                        }
                        getCaptionFromImageModelElement(t) {
                            for (const e of t.getChildren()) if (e && e.is("element", "caption")) return e;
                            return null;
                        }
                        getCaptionFromModelSelection(t) {
                            const e = this.editor.plugins.get("ImageUtils"),
                                n = t.getFirstPosition().findAncestor("caption");
                            return n && e.isBlockImage(n.parent) ? n : null;
                        }
                        matchImageCaptionViewElement(t) {
                            const e = this.editor.plugins.get("ImageUtils");
                            return "figcaption" == t.name && e.isBlockImageView(t.parent) ? { name: !0 } : null;
                        }
                    }
                    class wk extends V {
                        static get requires() {
                            return [Yf, bk];
                        }
                        static get pluginName() {
                            return "ImageCaptionEditing";
                        }
                        constructor(t) {
                            super(t), (this._savedCaptionsMap = new WeakMap());
                        }
                        init() {
                            const t = this.editor,
                                e = t.model.schema;
                            e.isRegistered("caption") ? e.extend("caption", { allowIn: "imageBlock" }) : e.register("caption", { allowIn: "imageBlock", allowContentOf: "$block", isLimit: !0 }),
                                t.commands.add("toggleImageCaption", new kk(this.editor)),
                                this._setupConversion(),
                                this._setupImageTypeCommandsIntegration(),
                                this._registerCaptionReconversion();
                        }
                        _setupConversion() {
                            const t = this.editor,
                                e = t.editing.view,
                                n = t.plugins.get("ImageUtils"),
                                o = t.plugins.get("ImageCaptionUtils"),
                                i = t.t;
                            t.conversion.for("upcast").elementToElement({ view: (t) => o.matchImageCaptionViewElement(t), model: "caption" }),
                                t.conversion.for("dataDowncast").elementToElement({ model: "caption", view: (t, { writer: e }) => (n.isBlockImage(t.parent) ? e.createContainerElement("figcaption") : null) }),
                                t.conversion.for("editingDowncast").elementToElement({
                                    model: "caption",
                                    view: (t, { writer: o }) => {
                                        if (!n.isBlockImage(t.parent)) return null;
                                        const r = o.createEditableElement("figcaption");
                                        o.setCustomProperty("imageCaption", !0, r), rg({ view: e, element: r, text: i("Enter image caption"), keepOnFocus: !0 });
                                        const s = t.parent.getAttribute("alt");
                                        return im(r, o, { label: s ? i("Caption for image: %0", [s]) : i("Caption for the image") });
                                    },
                                });
                        }
                        _setupImageTypeCommandsIntegration() {
                            const t = this.editor,
                                e = t.plugins.get("ImageUtils"),
                                n = t.plugins.get("ImageCaptionUtils"),
                                o = t.commands.get("imageTypeInline"),
                                i = t.commands.get("imageTypeBlock"),
                                r = (t) => {
                                    if (!t.return) return;
                                    const { oldElement: o, newElement: i } = t.return;
                                    if (!o) return;
                                    if (e.isBlockImage(o)) {
                                        const t = n.getCaptionFromImageModelElement(o);
                                        if (t) return void this._saveCaption(i, t);
                                    }
                                    const r = this._getSavedCaption(o);
                                    r && this._saveCaption(i, r);
                                };
                            o && this.listenTo(o, "execute", r, { priority: "low" }), i && this.listenTo(i, "execute", r, { priority: "low" });
                        }
                        _getSavedCaption(t) {
                            const e = this._savedCaptionsMap.get(t);
                            return e ? Ga.fromJSON(e) : null;
                        }
                        _saveCaption(t, e) {
                            this._savedCaptionsMap.set(t, e.toJSON());
                        }
                        _registerCaptionReconversion() {
                            const t = this.editor,
                                e = t.model,
                                n = t.plugins.get("ImageUtils"),
                                o = t.plugins.get("ImageCaptionUtils");
                            e.document.on("change:data", () => {
                                const i = e.document.differ.getChanges();
                                for (const e of i) {
                                    if ("alt" !== e.attributeKey) continue;
                                    const i = e.range.start.nodeAfter;
                                    if (n.isBlockImage(i)) {
                                        const e = o.getCaptionFromImageModelElement(i);
                                        if (!e) return;
                                        t.editing.reconvertItem(e);
                                    }
                                }
                            });
                        }
                    }
                    class _k extends V {
                        static get requires() {
                            return [bk];
                        }
                        static get pluginName() {
                            return "ImageCaptionUI";
                        }
                        init() {
                            const t = this.editor,
                                e = t.editing.view,
                                n = t.plugins.get("ImageCaptionUtils"),
                                o = t.t;
                            t.ui.componentFactory.add("toggleImageCaption", (i) => {
                                const r = t.commands.get("toggleImageCaption"),
                                    s = new Lh(i);
                                return (
                                    s.set({ icon: Eh.caption, tooltip: !0, isToggleable: !0 }),
                                    s.bind("isOn", "isEnabled").to(r, "value", "isEnabled"),
                                    s.bind("label").to(r, "value", (t) => o(t ? "Toggle caption off" : "Toggle caption on")),
                                    this.listenTo(s, "execute", () => {
                                        t.execute("toggleImageCaption", { focusCaptionOnShow: !0 });
                                        const o = n.getCaptionFromModelSelection(t.model.document.selection);
                                        if (o) {
                                            const n = t.editing.mapper.toViewElement(o);
                                            e.scrollToTheSelection(),
                                                e.change((t) => {
                                                    t.addClass("image__caption_highlighted", n);
                                                });
                                        }
                                        t.editing.view.focus();
                                    }),
                                    s
                                );
                            });
                        }
                    }
                    var Ak = n(2640),
                        Ck = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Ak.Z, Ck);
                    Ak.Z.locals;
                    class vk extends U {
                        constructor(t, e) {
                            super(t),
                                (this._defaultStyles = { imageBlock: !1, imageInline: !1 }),
                                (this._styles = new Map(
                                    e.map((t) => {
                                        if (t.isDefault) for (const e of t.modelElements) this._defaultStyles[e] = t.name;
                                        return [t.name, t];
                                    })
                                ));
                        }
                        refresh() {
                            const t = this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);
                            (this.isEnabled = !!t), this.isEnabled ? (t.hasAttribute("imageStyle") ? (this.value = t.getAttribute("imageStyle")) : (this.value = this._defaultStyles[t.name])) : (this.value = !1);
                        }
                        execute(t = {}) {
                            const e = this.editor,
                                n = e.model,
                                o = e.plugins.get("ImageUtils");
                            n.change((e) => {
                                const i = t.value;
                                let r = o.getClosestSelectedImageElement(n.document.selection);
                                i && this.shouldConvertImageType(i, r) && (this.editor.execute(o.isBlockImage(r) ? "imageTypeInline" : "imageTypeBlock"), (r = o.getClosestSelectedImageElement(n.document.selection))),
                                    !i || this._styles.get(i).isDefault ? e.removeAttribute("imageStyle", r) : e.setAttribute("imageStyle", i, r);
                            });
                        }
                        shouldConvertImageType(t, e) {
                            return !this._styles.get(t).modelElements.includes(e.name);
                        }
                    }
                    const { objectFullWidth: yk, objectInline: xk, objectLeft: Ek, objectRight: Dk, objectCenter: Ik, objectBlockLeft: Mk, objectBlockRight: Tk } = Eh,
                        Sk = {
                            get inline() {
                                return { name: "inline", title: "In line", icon: xk, modelElements: ["imageInline"], isDefault: !0 };
                            },
                            get alignLeft() {
                                return { name: "alignLeft", title: "Left aligned image", icon: Ek, modelElements: ["imageBlock", "imageInline"], className: "image-style-align-left" };
                            },
                            get alignBlockLeft() {
                                return { name: "alignBlockLeft", title: "Left aligned image", icon: Mk, modelElements: ["imageBlock"], className: "image-style-block-align-left" };
                            },
                            get alignCenter() {
                                return { name: "alignCenter", title: "Centered image", icon: Ik, modelElements: ["imageBlock"], className: "image-style-align-center" };
                            },
                            get alignRight() {
                                return { name: "alignRight", title: "Right aligned image", icon: Dk, modelElements: ["imageBlock", "imageInline"], className: "image-style-align-right" };
                            },
                            get alignBlockRight() {
                                return { name: "alignBlockRight", title: "Right aligned image", icon: Tk, modelElements: ["imageBlock"], className: "image-style-block-align-right" };
                            },
                            get block() {
                                return { name: "block", title: "Centered image", icon: Ik, modelElements: ["imageBlock"], isDefault: !0 };
                            },
                            get side() {
                                return { name: "side", title: "Side image", icon: Dk, modelElements: ["imageBlock"], className: "image-style-side" };
                            },
                        },
                        Nk = { full: yk, left: Mk, right: Tk, center: Ik, inlineLeft: Ek, inlineRight: Dk, inline: xk },
                        Bk = [
                            { name: "imageStyle:wrapText", title: "Wrap text", defaultItem: "imageStyle:alignLeft", items: ["imageStyle:alignLeft", "imageStyle:alignRight"] },
                            { name: "imageStyle:breakText", title: "Break text", defaultItem: "imageStyle:block", items: ["imageStyle:alignBlockLeft", "imageStyle:block", "imageStyle:alignBlockRight"] },
                        ];
                    function Pk(t) {
                        l("image-style-configuration-definition-invalid", t);
                    }
                    const zk = {
                        normalizeStyles: function (t) {
                            return (t.configuredStyles.options || [])
                                .map((t) =>
                                    (function (t) {
                                        t =
                                            "string" == typeof t
                                                ? Sk[t]
                                                    ? { ...Sk[t] }
                                                    : { name: t }
                                                : (function (t, e) {
                                                      const n = { ...e };
                                                      for (const o in t) Object.prototype.hasOwnProperty.call(e, o) || (n[o] = t[o]);
                                                      return n;
                                                  })(Sk[t.name], t);
                                        "string" == typeof t.icon && (t.icon = Nk[t.icon] || t.icon);
                                        return t;
                                    })(t)
                                )
                                .filter((e) =>
                                    (function (t, { isBlockPluginLoaded: e, isInlinePluginLoaded: n }) {
                                        const { modelElements: o, name: i } = t;
                                        if (!(o && o.length && i)) return Pk({ style: t }), !1;
                                        {
                                            const i = [e ? "imageBlock" : null, n ? "imageInline" : null];
                                            if (!o.some((t) => i.includes(t))) return l("image-style-missing-dependency", { style: t, missingPlugins: o.map((t) => ("imageBlock" === t ? "ImageBlockEditing" : "ImageInlineEditing")) }), !1;
                                        }
                                        return !0;
                                    })(e, t)
                                );
                        },
                        getDefaultStylesConfiguration: function (t, e) {
                            return t && e
                                ? { options: ["inline", "alignLeft", "alignRight", "alignCenter", "alignBlockLeft", "alignBlockRight", "block", "side"] }
                                : t
                                ? { options: ["block", "side"] }
                                : e
                                ? { options: ["inline", "alignLeft", "alignRight"] }
                                : {};
                        },
                        getDefaultDropdownDefinitions: function (t) {
                            return t.has("ImageBlockEditing") && t.has("ImageInlineEditing") ? [...Bk] : [];
                        },
                        warnInvalidStyle: Pk,
                        DEFAULT_OPTIONS: Sk,
                        DEFAULT_ICONS: Nk,
                        DEFAULT_DROPDOWN_DEFINITIONS: Bk,
                    };
                    function Lk(t, e) {
                        for (const n of e) if (n.name === t) return n;
                    }
                    class Ok extends V {
                        static get pluginName() {
                            return "ImageStyleEditing";
                        }
                        static get requires() {
                            return [Yf];
                        }
                        init() {
                            const { normalizeStyles: t, getDefaultStylesConfiguration: e } = zk,
                                n = this.editor,
                                o = n.plugins.has("ImageBlockEditing"),
                                i = n.plugins.has("ImageInlineEditing");
                            n.config.define("image.styles", e(o, i)),
                                (this.normalizedStyles = t({ configuredStyles: n.config.get("image.styles"), isBlockPluginLoaded: o, isInlinePluginLoaded: i })),
                                this._setupConversion(o, i),
                                this._setupPostFixer(),
                                n.commands.add("imageStyle", new vk(n, this.normalizedStyles));
                        }
                        _setupConversion(t, e) {
                            const n = this.editor,
                                o = n.model.schema,
                                i =
                                    ((r = this.normalizedStyles),
                                    (t, e, n) => {
                                        if (!n.consumable.consume(e.item, t.name)) return;
                                        const o = Lk(e.attributeNewValue, r),
                                            i = Lk(e.attributeOldValue, r),
                                            s = n.mapper.toViewElement(e.item),
                                            a = n.writer;
                                        i && a.removeClass(i.className, s), o && a.addClass(o.className, s);
                                    });
                            var r;
                            const s = (function (t) {
                                const e = { imageInline: t.filter((t) => !t.isDefault && t.modelElements.includes("imageInline")), imageBlock: t.filter((t) => !t.isDefault && t.modelElements.includes("imageBlock")) };
                                return (t, n, o) => {
                                    if (!n.modelRange) return;
                                    const i = n.viewItem,
                                        r = wa(n.modelRange.getItems());
                                    if (r && o.schema.checkAttribute(r, "imageStyle")) for (const t of e[r.name]) o.consumable.consume(i, { classes: t.className }) && o.writer.setAttribute("imageStyle", t.name, r);
                                };
                            })(this.normalizedStyles);
                            n.editing.downcastDispatcher.on("attribute:imageStyle", i),
                                n.data.downcastDispatcher.on("attribute:imageStyle", i),
                                t && (o.extend("imageBlock", { allowAttributes: "imageStyle" }), n.data.upcastDispatcher.on("element:figure", s, { priority: "low" })),
                                e && (o.extend("imageInline", { allowAttributes: "imageStyle" }), n.data.upcastDispatcher.on("element:img", s, { priority: "low" }));
                        }
                        _setupPostFixer() {
                            const t = this.editor,
                                e = t.model.document,
                                n = t.plugins.get(Yf),
                                o = new Map(this.normalizedStyles.map((t) => [t.name, t]));
                            e.registerPostFixer((t) => {
                                let i = !1;
                                for (const r of e.differ.getChanges())
                                    if ("insert" == r.type || ("attribute" == r.type && "imageStyle" == r.attributeKey)) {
                                        let e = "insert" == r.type ? r.position.nodeAfter : r.range.start.nodeAfter;
                                        if ((e && e.is("element", "paragraph") && e.childCount > 0 && (e = e.getChild(0)), !n.isImage(e))) continue;
                                        const s = e.getAttribute("imageStyle");
                                        if (!s) continue;
                                        const a = o.get(s);
                                        (a && a.modelElements.includes(e.name)) || (t.removeAttribute("imageStyle", e), (i = !0));
                                    }
                                return i;
                            });
                        }
                    }
                    var Rk = n(5083),
                        jk = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Rk.Z, jk);
                    Rk.Z.locals;
                    class Fk extends V {
                        static get requires() {
                            return [Ok];
                        }
                        static get pluginName() {
                            return "ImageStyleUI";
                        }
                        get localizedDefaultStylesTitles() {
                            const t = this.editor.t;
                            return {
                                "Wrap text": t("Wrap text"),
                                "Break text": t("Break text"),
                                "In line": t("In line"),
                                "Full size image": t("Full size image"),
                                "Side image": t("Side image"),
                                "Left aligned image": t("Left aligned image"),
                                "Centered image": t("Centered image"),
                                "Right aligned image": t("Right aligned image"),
                            };
                        }
                        init() {
                            const t = this.editor.plugins,
                                e = this.editor.config.get("image.toolbar") || [],
                                n = Vk(t.get("ImageStyleEditing").normalizedStyles, this.localizedDefaultStylesTitles);
                            for (const t of n) this._createButton(t);
                            const o = Vk([...e.filter(D), ...zk.getDefaultDropdownDefinitions(t)], this.localizedDefaultStylesTitles);
                            for (const t of o) this._createDropdown(t, n);
                        }
                        _createDropdown(t, e) {
                            const n = this.editor.ui.componentFactory;
                            n.add(t.name, (o) => {
                                let i;
                                const { defaultItem: r, items: s, title: a } = t,
                                    c = s
                                        .filter((t) => e.find(({ name: e }) => Hk(e) === t))
                                        .map((t) => {
                                            const e = n.create(t);
                                            return t === r && (i = e), e;
                                        });
                                s.length !== c.length && zk.warnInvalidStyle({ dropdown: t });
                                const l = ku(o, Gh),
                                    d = l.buttonView,
                                    h = d.arrowView;
                                return (
                                    bu(l, c, { enableActiveItemFocusOnDropdownOpen: !0 }),
                                    d.set({ label: Uk(a, i.label), class: null, tooltip: !0 }),
                                    h.unbind("label"),
                                    h.set({ label: a }),
                                    d.bind("icon").toMany(c, "isOn", (...t) => {
                                        const e = t.findIndex(pi);
                                        return e < 0 ? i.icon : c[e].icon;
                                    }),
                                    d.bind("label").toMany(c, "isOn", (...t) => {
                                        const e = t.findIndex(pi);
                                        return Uk(a, e < 0 ? i.label : c[e].label);
                                    }),
                                    d.bind("isOn").toMany(c, "isOn", (...t) => t.some(pi)),
                                    d.bind("class").toMany(c, "isOn", (...t) => (t.some(pi) ? "ck-splitbutton_flatten" : null)),
                                    d.on("execute", () => {
                                        c.some(({ isOn: t }) => t) ? (l.isOpen = !l.isOpen) : i.fire("execute");
                                    }),
                                    l.bind("isEnabled").toMany(c, "isEnabled", (...t) => t.some(pi)),
                                    this.listenTo(l, "execute", () => {
                                        this.editor.editing.view.focus();
                                    }),
                                    l
                                );
                            });
                        }
                        _createButton(t) {
                            const e = t.name;
                            this.editor.ui.componentFactory.add(Hk(e), (n) => {
                                const o = this.editor.commands.get("imageStyle"),
                                    i = new Lh(n);
                                return (
                                    i.set({ label: t.title, icon: t.icon, tooltip: !0, isToggleable: !0 }),
                                    i.bind("isEnabled").to(o, "isEnabled"),
                                    i.bind("isOn").to(o, "value", (t) => t === e),
                                    i.on("execute", this._executeCommand.bind(this, e)),
                                    i
                                );
                            });
                        }
                        _executeCommand(t) {
                            this.editor.execute("imageStyle", { value: t }), this.editor.editing.view.focus();
                        }
                    }
                    function Vk(t, e) {
                        for (const n of t) e[n.title] && (n.title = e[n.title]);
                        return t;
                    }
                    function Hk(t) {
                        return `imageStyle:${t}`;
                    }
                    function Uk(t, e) {
                        return (t ? t + ": " : "") + e;
                    }
                    function Wk(t) {
                        const e = t.map((t) => t.replace("+", "\\+"));
                        return new RegExp(`^image\\/(${e.join("|")})$`);
                    }
                    function qk(t) {
                        return new Promise((e, n) => {
                            const o = t.getAttribute("src");
                            fetch(o)
                                .then((t) => t.blob())
                                .then((t) => {
                                    const n = Gk(t, o),
                                        i = n.replace("image/", ""),
                                        r = new File([t], `image.${i}`, { type: n });
                                    e(r);
                                })
                                .catch((t) =>
                                    t && "TypeError" === t.name
                                        ? (function (t) {
                                              return (function (t) {
                                                  return new Promise((e, n) => {
                                                      const o = Ao.document.createElement("img");
                                                      o.addEventListener("load", () => {
                                                          const t = Ao.document.createElement("canvas");
                                                          (t.width = o.width), (t.height = o.height);
                                                          t.getContext("2d").drawImage(o, 0, 0), t.toBlob((t) => (t ? e(t) : n()));
                                                      }),
                                                          o.addEventListener("error", () => n()),
                                                          (o.src = t);
                                                  });
                                              })(t).then((e) => {
                                                  const n = Gk(e, t),
                                                      o = n.replace("image/", "");
                                                  return new File([e], `image.${o}`, { type: n });
                                              });
                                          })(o)
                                              .then(e)
                                              .catch(n)
                                        : n(t)
                                );
                        });
                    }
                    function Gk(t, e) {
                        return t.type ? t.type : e.match(/data:(image\/\w+);base64/) ? e.match(/data:(image\/\w+);base64/)[1].toLowerCase() : "image/jpeg";
                    }
                    class $k extends V {
                        static get pluginName() {
                            return "ImageUploadUI";
                        }
                        init() {
                            const t = this.editor,
                                e = t.t,
                                n = (n) => {
                                    const o = new Mp(n),
                                        i = t.commands.get("uploadImage"),
                                        r = t.config.get("image.upload.types"),
                                        s = Wk(r);
                                    return (
                                        o.set({ acceptedType: r.map((t) => `image/${t}`).join(","), allowMultipleFiles: !0 }),
                                        o.buttonView.set({ label: e("Insert image"), icon: Eh.image, tooltip: !0 }),
                                        o.buttonView.bind("isEnabled").to(i),
                                        o.on("done", (e, n) => {
                                            const o = Array.from(n).filter((t) => s.test(t.type));
                                            o.length && (t.execute("uploadImage", { file: o }), t.editing.view.focus());
                                        }),
                                        o
                                    );
                                };
                            t.ui.componentFactory.add("uploadImage", n), t.ui.componentFactory.add("imageUpload", n);
                        }
                    }
                    var Yk = n(3689),
                        Kk = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Yk.Z, Kk);
                    Yk.Z.locals;
                    var Qk = n(4036),
                        Zk = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Qk.Z, Zk);
                    Qk.Z.locals;
                    var Jk = n(3773),
                        Xk = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Jk.Z, Xk);
                    Jk.Z.locals;
                    class tb extends V {
                        static get pluginName() {
                            return "ImageUploadProgress";
                        }
                        constructor(t) {
                            super(t), (this.placeholder = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==");
                        }
                        init() {
                            const t = this.editor;
                            t.plugins.has("ImageBlockEditing") && t.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock", (...t) => this.uploadStatusChange(...t)),
                                t.plugins.has("ImageInlineEditing") && t.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline", (...t) => this.uploadStatusChange(...t));
                        }
                        uploadStatusChange(t, e, n) {
                            const o = this.editor,
                                i = e.item,
                                r = i.getAttribute("uploadId");
                            if (!n.consumable.consume(e.item, t.name)) return;
                            const s = o.plugins.get("ImageUtils"),
                                a = o.plugins.get(Dp),
                                c = r ? e.attributeNewValue : null,
                                l = this.placeholder,
                                d = o.editing.mapper.toViewElement(i),
                                h = n.writer;
                            if ("reading" == c) return eb(d, h), void nb(s, l, d, h);
                            if ("uploading" == c) {
                                const t = a.loaders.get(r);
                                return (
                                    eb(d, h),
                                    void (t
                                        ? (ob(d, h),
                                          (function (t, e, n, o) {
                                              const i = (function (t) {
                                                  const e = t.createUIElement("div", { class: "ck-progress-bar" });
                                                  return t.setCustomProperty("progressBar", !0, e), e;
                                              })(e);
                                              e.insert(e.createPositionAt(t, "end"), i),
                                                  n.on("change:uploadedPercent", (t, e, n) => {
                                                      o.change((t) => {
                                                          t.setStyle("width", n + "%", i);
                                                      });
                                                  });
                                          })(d, h, t, o.editing.view),
                                          (function (t, e, n, o) {
                                              if (o.data) {
                                                  const i = t.findViewImgElement(e);
                                                  n.setAttribute("src", o.data, i);
                                              }
                                          })(s, d, h, t))
                                        : nb(s, l, d, h))
                                );
                            }
                            "complete" == c &&
                                a.loaders.get(r) &&
                                (function (t, e, n) {
                                    const o = e.createUIElement("div", { class: "ck-image-upload-complete-icon" });
                                    e.insert(e.createPositionAt(t, "end"), o),
                                        setTimeout(() => {
                                            n.change((t) => t.remove(t.createRangeOn(o)));
                                        }, 3e3);
                                })(d, h, o.editing.view),
                                (function (t, e) {
                                    rb(t, e, "progressBar");
                                })(d, h),
                                ob(d, h),
                                (function (t, e) {
                                    e.removeClass("ck-appear", t);
                                })(d, h);
                        }
                    }
                    function eb(t, e) {
                        t.hasClass("ck-appear") || e.addClass("ck-appear", t);
                    }
                    function nb(t, e, n, o) {
                        n.hasClass("ck-image-upload-placeholder") || o.addClass("ck-image-upload-placeholder", n);
                        const i = t.findViewImgElement(n);
                        i.getAttribute("src") !== e && o.setAttribute("src", e, i),
                            ib(n, "placeholder") ||
                                o.insert(
                                    o.createPositionAfter(i),
                                    (function (t) {
                                        const e = t.createUIElement("div", { class: "ck-upload-placeholder-loader" });
                                        return t.setCustomProperty("placeholder", !0, e), e;
                                    })(o)
                                );
                    }
                    function ob(t, e) {
                        t.hasClass("ck-image-upload-placeholder") && e.removeClass("ck-image-upload-placeholder", t), rb(t, e, "placeholder");
                    }
                    function ib(t, e) {
                        for (const n of t.getChildren()) if (n.getCustomProperty(e)) return n;
                    }
                    function rb(t, e, n) {
                        const o = ib(t, n);
                        o && e.remove(e.createRangeOn(o));
                    }
                    class sb extends U {
                        refresh() {
                            const t = this.editor,
                                e = t.plugins.get("ImageUtils"),
                                n = t.model.document.selection.getSelectedElement();
                            this.isEnabled = e.isImageAllowed() || e.isImage(n);
                        }
                        execute(t) {
                            const e = wo(t.file),
                                n = this.editor.model.document.selection,
                                o = this.editor.plugins.get("ImageUtils"),
                                i = Object.fromEntries(n.getAttributes());
                            e.forEach((t, e) => {
                                const r = n.getSelectedElement();
                                if (e && r && o.isImage(r)) {
                                    const e = this.editor.model.createPositionAfter(r);
                                    this._uploadImage(t, i, e);
                                } else this._uploadImage(t, i);
                            });
                        }
                        _uploadImage(t, e, n) {
                            const o = this.editor,
                                i = o.plugins.get(Dp).createLoader(t),
                                r = o.plugins.get("ImageUtils");
                            i && r.insertImage({ ...e, uploadId: i.id }, n);
                        }
                    }
                    class ab extends V {
                        static get requires() {
                            return [Dp, Fu, Bg, Yf];
                        }
                        static get pluginName() {
                            return "ImageUploadEditing";
                        }
                        constructor(t) {
                            super(t), t.config.define("image", { upload: { types: ["jpeg", "png", "gif", "bmp", "webp", "tiff"] } }), (this._uploadImageElements = new Map());
                        }
                        init() {
                            const t = this.editor,
                                e = t.model.document,
                                n = t.conversion,
                                o = t.plugins.get(Dp),
                                i = t.plugins.get("ImageUtils"),
                                r = Wk(t.config.get("image.upload.types")),
                                s = new sb(t);
                            t.commands.add("uploadImage", s),
                                t.commands.add("imageUpload", s),
                                n.for("upcast").attributeToAttribute({ view: { name: "img", key: "uploadId" }, model: "uploadId" }),
                                this.listenTo(t.editing.view.document, "clipboardInput", (e, n) => {
                                    if (((o = n.dataTransfer), Array.from(o.types).includes("text/html") && "" !== o.getData("text/html"))) return;
                                    var o;
                                    const i = Array.from(n.dataTransfer.files).filter((t) => !!t && r.test(t.type));
                                    i.length &&
                                        (e.stop(),
                                        t.model.change((e) => {
                                            n.targetRanges && e.setSelection(n.targetRanges.map((e) => t.editing.mapper.toModelRange(e))),
                                                t.model.enqueueChange(() => {
                                                    t.execute("uploadImage", { file: i });
                                                });
                                        }));
                                }),
                                this.listenTo(t.plugins.get("ClipboardPipeline"), "inputTransformation", (e, n) => {
                                    const r = Array.from(t.editing.view.createRangeIn(n.content))
                                        .filter(
                                            (t) =>
                                                (function (t, e) {
                                                    return !(!t.isInlineImageView(e) || !e.getAttribute("src")) && (e.getAttribute("src").match(/^data:image\/\w+;base64,/g) || e.getAttribute("src").match(/^blob:/g));
                                                })(i, t.item) && !t.item.getAttribute("uploadProcessed")
                                        )
                                        .map((t) => ({ promise: qk(t.item), imageElement: t.item }));
                                    if (!r.length) return;
                                    const s = new vg(t.editing.view.document);
                                    for (const t of r) {
                                        s.setAttribute("uploadProcessed", !0, t.imageElement);
                                        const e = o.createLoader(t.promise);
                                        e && (s.setAttribute("src", "", t.imageElement), s.setAttribute("uploadId", e.id, t.imageElement));
                                    }
                                }),
                                t.editing.view.document.on("dragover", (t, e) => {
                                    e.preventDefault();
                                }),
                                e.on("change", () => {
                                    const n = e.differ.getChanges({ includeChangesInGraveyard: !0 }).reverse(),
                                        i = new Set();
                                    for (const e of n)
                                        if ("insert" == e.type && "$text" != e.name) {
                                            const n = e.position.nodeAfter,
                                                r = "$graveyard" == e.position.root.rootName;
                                            for (const e of cb(t, n)) {
                                                const t = e.getAttribute("uploadId");
                                                if (!t) continue;
                                                const n = o.loaders.get(t);
                                                n && (r ? i.has(t) || n.abort() : (i.add(t), this._uploadImageElements.set(t, e), "idle" == n.status && this._readAndUpload(n)));
                                            }
                                        }
                                }),
                                this.on(
                                    "uploadComplete",
                                    (t, { imageElement: e, data: n }) => {
                                        const o = n.urls ? n.urls : n;
                                        this.editor.model.change((t) => {
                                            t.setAttribute("src", o.default, e), this._parseAndSetSrcsetAttributeOnImage(o, e, t);
                                        });
                                    },
                                    { priority: "low" }
                                );
                        }
                        afterInit() {
                            const t = this.editor.model.schema;
                            this.editor.plugins.has("ImageBlockEditing") && t.extend("imageBlock", { allowAttributes: ["uploadId", "uploadStatus"] }),
                                this.editor.plugins.has("ImageInlineEditing") && t.extend("imageInline", { allowAttributes: ["uploadId", "uploadStatus"] });
                        }
                        _readAndUpload(t) {
                            const e = this.editor,
                                n = e.model,
                                o = e.locale.t,
                                i = e.plugins.get(Dp),
                                r = e.plugins.get(Fu),
                                s = e.plugins.get("ImageUtils"),
                                a = this._uploadImageElements;
                            return (
                                n.enqueueChange({ isUndoable: !1 }, (e) => {
                                    e.setAttribute("uploadStatus", "reading", a.get(t.id));
                                }),
                                t
                                    .read()
                                    .then(() => {
                                        const o = t.upload(),
                                            i = a.get(t.id);
                                        if (lr.isSafari) {
                                            const t = e.editing.mapper.toViewElement(i),
                                                n = s.findViewImgElement(t);
                                            e.editing.view.once("render", () => {
                                                if (!n.parent) return;
                                                const t = e.editing.view.domConverter.mapViewToDom(n.parent);
                                                if (!t) return;
                                                const o = t.style.display;
                                                (t.style.display = "none"), (t._ckHack = t.offsetHeight), (t.style.display = o);
                                            });
                                        }
                                        return (
                                            n.enqueueChange({ isUndoable: !1 }, (t) => {
                                                t.setAttribute("uploadStatus", "uploading", i);
                                            }),
                                            o
                                        );
                                    })
                                    .then((e) => {
                                        n.enqueueChange({ isUndoable: !1 }, (n) => {
                                            const o = a.get(t.id);
                                            n.setAttribute("uploadStatus", "complete", o), this.fire("uploadComplete", { data: e, imageElement: o });
                                        }),
                                            c();
                                    })
                                    .catch((e) => {
                                        if ("error" !== t.status && "aborted" !== t.status) throw e;
                                        "error" == t.status && e && r.showWarning(e, { title: o("Upload failed"), namespace: "upload" }),
                                            n.enqueueChange({ isUndoable: !1 }, (e) => {
                                                e.remove(a.get(t.id));
                                            }),
                                            c();
                                    })
                            );
                            function c() {
                                n.enqueueChange({ isUndoable: !1 }, (e) => {
                                    const n = a.get(t.id);
                                    e.removeAttribute("uploadId", n), e.removeAttribute("uploadStatus", n), a.delete(t.id);
                                }),
                                    i.destroyLoader(t);
                            }
                        }
                        _parseAndSetSrcsetAttributeOnImage(t, e, n) {
                            let o = 0;
                            const i = Object.keys(t)
                                .filter((t) => {
                                    const e = parseInt(t, 10);
                                    if (!isNaN(e)) return (o = Math.max(o, e)), !0;
                                })
                                .map((e) => `${t[e]} ${e}w`)
                                .join(", ");
                            "" != i && n.setAttribute("srcset", { data: i, width: o }, e);
                        }
                    }
                    function cb(t, e) {
                        const n = t.plugins.get("ImageUtils");
                        return Array.from(t.model.createRangeOn(e))
                            .filter((t) => n.isImage(t.item))
                            .map((t) => t.item);
                    }
                    class lb extends V {
                        static get pluginName() {
                            return "IndentEditing";
                        }
                        init() {
                            const t = this.editor;
                            t.commands.add("indent", new q(t)), t.commands.add("outdent", new q(t));
                        }
                    }
                    const db =
                            '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M2 3.75c0 .414.336.75.75.75h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm5 6c0 .414.336.75.75.75h9.5a.75.75 0 1 0 0-1.5h-9.5a.75.75 0 0 0-.75.75zM2.75 16.5h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 1 0 0 1.5zM1.632 6.95 5.02 9.358a.4.4 0 0 1-.013.661l-3.39 2.207A.4.4 0 0 1 1 11.892V7.275a.4.4 0 0 1 .632-.326z"/></svg>',
                        hb =
                            '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M2 3.75c0 .414.336.75.75.75h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm5 6c0 .414.336.75.75.75h9.5a.75.75 0 1 0 0-1.5h-9.5a.75.75 0 0 0-.75.75zM2.75 16.5h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 1 0 0 1.5zm1.618-9.55L.98 9.358a.4.4 0 0 0 .013.661l3.39 2.207A.4.4 0 0 0 5 11.892V7.275a.4.4 0 0 0-.632-.326z"/></svg>';
                    class ub extends V {
                        static get pluginName() {
                            return "IndentUI";
                        }
                        init() {
                            const t = this.editor,
                                e = t.locale,
                                n = t.t,
                                o = "ltr" == e.uiLanguageDirection ? db : hb,
                                i = "ltr" == e.uiLanguageDirection ? hb : db;
                            this._defineButton("indent", n("Increase indent"), o), this._defineButton("outdent", n("Decrease indent"), i);
                        }
                        _defineButton(t, e, n) {
                            const o = this.editor;
                            o.ui.componentFactory.add(t, (i) => {
                                const r = o.commands.get(t),
                                    s = new Lh(i);
                                return (
                                    s.set({ label: e, icon: n, tooltip: !0 }),
                                    s.bind("isOn", "isEnabled").to(r, "value", "isEnabled"),
                                    this.listenTo(s, "execute", () => {
                                        o.execute(t), o.editing.view.focus();
                                    }),
                                    s
                                );
                            });
                        }
                    }
                    class gb {
                        constructor() {
                            this._definitions = new Set();
                        }
                        get length() {
                            return this._definitions.size;
                        }
                        add(t) {
                            Array.isArray(t) ? t.forEach((t) => this._definitions.add(t)) : this._definitions.add(t);
                        }
                        getDispatcher() {
                            return (t) => {
                                t.on(
                                    "attribute:linkHref",
                                    (t, e, n) => {
                                        if (!n.consumable.test(e.item, "attribute:linkHref")) return;
                                        if (!e.item.is("selection") && !n.schema.isInline(e.item)) return;
                                        const o = n.writer,
                                            i = o.document.selection;
                                        for (const t of this._definitions) {
                                            const r = o.createAttributeElement("a", t.attributes, { priority: 5 });
                                            t.classes && o.addClass(t.classes, r);
                                            for (const e in t.styles) o.setStyle(e, t.styles[e], r);
                                            o.setCustomProperty("link", !0, r),
                                                t.callback(e.attributeNewValue) ? (e.item.is("selection") ? o.wrap(i.getFirstRange(), r) : o.wrap(n.mapper.toViewRange(e.range), r)) : o.unwrap(n.mapper.toViewRange(e.range), r);
                                        }
                                    },
                                    { priority: "high" }
                                );
                            };
                        }
                        getDispatcherForLinkedImage() {
                            return (t) => {
                                t.on("attribute:linkHref:imageBlock", (t, e, { writer: n, mapper: o }) => {
                                    const i = o.toViewElement(e.item),
                                        r = Array.from(i.getChildren()).find((t) => "a" === t.name);
                                    for (const t of this._definitions) {
                                        const o = Po(t.attributes);
                                        if (t.callback(e.attributeNewValue)) {
                                            for (const [t, e] of o) "class" === t ? n.addClass(e, r) : n.setAttribute(t, e, r);
                                            t.classes && n.addClass(t.classes, r);
                                            for (const e in t.styles) n.setStyle(e, t.styles[e], r);
                                        } else {
                                            for (const [t, e] of o) "class" === t ? n.removeClass(e, r) : n.removeAttribute(t, r);
                                            t.classes && n.removeClass(t.classes, r);
                                            for (const e in t.styles) n.removeStyle(e, r);
                                        }
                                    }
                                });
                            };
                        }
                    }
                    const mb = function (t, e, n) {
                        var o = t.length;
                        return (n = void 0 === n ? o : n), !e && n >= o ? t : oi(t, e, n);
                    };
                    var pb = RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");
                    const fb = function (t) {
                        return pb.test(t);
                    };
                    const kb = function (t) {
                        return t.split("");
                    };
                    var bb = "[\\ud800-\\udfff]",
                        wb = "[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",
                        _b = "\\ud83c[\\udffb-\\udfff]",
                        Ab = "[^\\ud800-\\udfff]",
                        Cb = "(?:\\ud83c[\\udde6-\\uddff]){2}",
                        vb = "[\\ud800-\\udbff][\\udc00-\\udfff]",
                        yb = "(?:" + wb + "|" + _b + ")" + "?",
                        xb = "[\\ufe0e\\ufe0f]?",
                        Eb = xb + yb + ("(?:\\u200d(?:" + [Ab, Cb, vb].join("|") + ")" + xb + yb + ")*"),
                        Db = "(?:" + [Ab + wb + "?", wb, Cb, vb, bb].join("|") + ")",
                        Ib = RegExp(_b + "(?=" + _b + ")|" + Db + Eb, "g");
                    const Mb = function (t) {
                        return t.match(Ib) || [];
                    };
                    const Tb = function (t) {
                        return fb(t) ? Mb(t) : kb(t);
                    };
                    const Sb = (function (t) {
                            return function (e) {
                                e = Jo(e);
                                var n = fb(e) ? Tb(e) : void 0,
                                    o = n ? n[0] : e.charAt(0),
                                    i = n ? mb(n, 1).join("") : e.slice(1);
                                return o[t]() + i;
                            };
                        })("toUpperCase"),
                        Nb = /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,
                        Bb = /^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i,
                        Pb = /^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,
                        zb = /^((\w+:(\/{2,})?)|(\W))/i,
                        Lb = "Ctrl+K";
                    function Ob(t, { writer: e }) {
                        const n = e.createAttributeElement("a", { href: t }, { priority: 5 });
                        return e.setCustomProperty("link", !0, n), n;
                    }
                    function Rb(t) {
                        return (function (t) {
                            return t.replace(Nb, "").match(Bb);
                        })((t = String(t)))
                            ? t
                            : "#";
                    }
                    function jb(t, e) {
                        return !!t && e.checkAttribute(t.name, "linkHref");
                    }
                    function Fb(t, e) {
                        const n = ((o = t), Pb.test(o) ? "mailto:" : e);
                        var o;
                        const i = !!n && !zb.test(t);
                        return t && i ? n + t : t;
                    }
                    function Vb(t) {
                        window.open(t, "_blank", "noopener");
                    }
                    class Hb extends U {
                        constructor(t) {
                            super(t), (this.manualDecorators = new ko()), (this.automaticDecorators = new gb());
                        }
                        restoreManualDecoratorStates() {
                            for (const t of this.manualDecorators) t.value = this._getDecoratorStateFromModel(t.id);
                        }
                        refresh() {
                            const t = this.editor.model,
                                e = t.document.selection,
                                n = e.getSelectedElement() || wa(e.getSelectedBlocks());
                            jb(n, t.schema)
                                ? ((this.value = n.getAttribute("linkHref")), (this.isEnabled = t.schema.checkAttribute(n, "linkHref")))
                                : ((this.value = e.getAttribute("linkHref")), (this.isEnabled = t.schema.checkAttributeInSelection(e, "linkHref")));
                            for (const t of this.manualDecorators) t.value = this._getDecoratorStateFromModel(t.id);
                        }
                        execute(t, e = {}) {
                            const n = this.editor.model,
                                o = n.document.selection,
                                i = [],
                                r = [];
                            for (const t in e) e[t] ? i.push(t) : r.push(t);
                            n.change((e) => {
                                if (o.isCollapsed) {
                                    const s = o.getFirstPosition();
                                    if (o.hasAttribute("linkHref")) {
                                        const a = mp(s, "linkHref", o.getAttribute("linkHref"), n);
                                        e.setAttribute("linkHref", t, a),
                                            i.forEach((t) => {
                                                e.setAttribute(t, !0, a);
                                            }),
                                            r.forEach((t) => {
                                                e.removeAttribute(t, a);
                                            }),
                                            e.setSelection(e.createPositionAfter(a.end.nodeBefore));
                                    } else if ("" !== t) {
                                        const r = Po(o.getAttributes());
                                        r.set("linkHref", t),
                                            i.forEach((t) => {
                                                r.set(t, !0);
                                            });
                                        const { end: a } = n.insertContent(e.createText(t, r), s);
                                        e.setSelection(a);
                                    }
                                    ["linkHref", ...i, ...r].forEach((t) => {
                                        e.removeSelectionAttribute(t);
                                    });
                                } else {
                                    const s = n.schema.getValidRanges(o.getRanges(), "linkHref"),
                                        a = [];
                                    for (const t of o.getSelectedBlocks()) n.schema.checkAttribute(t, "linkHref") && a.push(e.createRangeOn(t));
                                    const c = a.slice();
                                    for (const t of s) this._isRangeToUpdate(t, a) && c.push(t);
                                    for (const n of c)
                                        e.setAttribute("linkHref", t, n),
                                            i.forEach((t) => {
                                                e.setAttribute(t, !0, n);
                                            }),
                                            r.forEach((t) => {
                                                e.removeAttribute(t, n);
                                            });
                                }
                            });
                        }
                        _getDecoratorStateFromModel(t) {
                            const e = this.editor.model,
                                n = e.document.selection,
                                o = n.getSelectedElement();
                            return jb(o, e.schema) ? o.getAttribute(t) : n.getAttribute(t);
                        }
                        _isRangeToUpdate(t, e) {
                            for (const n of e) if (n.containsRange(t)) return !1;
                            return !0;
                        }
                    }
                    class Ub extends U {
                        refresh() {
                            const t = this.editor.model,
                                e = t.document.selection,
                                n = e.getSelectedElement();
                            jb(n, t.schema) ? (this.isEnabled = t.schema.checkAttribute(n, "linkHref")) : (this.isEnabled = t.schema.checkAttributeInSelection(e, "linkHref"));
                        }
                        execute() {
                            const t = this.editor,
                                e = this.editor.model,
                                n = e.document.selection,
                                o = t.commands.get("link");
                            e.change((t) => {
                                const i = n.isCollapsed ? [mp(n.getFirstPosition(), "linkHref", n.getAttribute("linkHref"), e)] : e.schema.getValidRanges(n.getRanges(), "linkHref");
                                for (const e of i) if ((t.removeAttribute("linkHref", e), o)) for (const n of o.manualDecorators) t.removeAttribute(n.id, e);
                            });
                        }
                    }
                    class Wb {
                        constructor({ id: t, label: e, attributes: n, classes: o, styles: i, defaultValue: r }) {
                            (this.id = t), this.set("value"), (this.defaultValue = r), (this.label = e), (this.attributes = n), (this.classes = o), (this.styles = i);
                        }
                        _createPattern() {
                            return { attributes: this.attributes, classes: this.classes, styles: this.styles };
                        }
                    }
                    F(Wb, B);
                    var qb = n(9773),
                        Gb = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(qb.Z, Gb);
                    qb.Z.locals;
                    const $b = "automatic",
                        Yb = /^(https?:)?\/\//;
                    class Kb extends V {
                        static get pluginName() {
                            return "LinkEditing";
                        }
                        static get requires() {
                            return [Xm, Km, Bg];
                        }
                        constructor(t) {
                            super(t), t.config.define("link", { addTargetToExternalLinks: !1 });
                        }
                        init() {
                            const t = this.editor;
                            t.model.schema.extend("$text", { allowAttributes: "linkHref" }),
                                t.conversion.for("dataDowncast").attributeToElement({ model: "linkHref", view: Ob }),
                                t.conversion.for("editingDowncast").attributeToElement({ model: "linkHref", view: (t, e) => Ob(Rb(t), e) }),
                                t.conversion.for("upcast").elementToAttribute({ view: { name: "a", attributes: { href: !0 } }, model: { key: "linkHref", value: (t) => t.getAttribute("href") } }),
                                t.commands.add("link", new Hb(t)),
                                t.commands.add("unlink", new Ub(t));
                            const e = (function (t, e) {
                                const n = { "Open in a new tab": t("Open in a new tab"), Downloadable: t("Downloadable") };
                                return e.forEach((t) => (t.label && n[t.label] && (t.label = n[t.label]), t)), e;
                            })(
                                t.t,
                                (function (t) {
                                    const e = [];
                                    if (t)
                                        for (const [n, o] of Object.entries(t)) {
                                            const t = Object.assign({}, o, { id: `link${Sb(n)}` });
                                            e.push(t);
                                        }
                                    return e;
                                })(t.config.get("link.decorators"))
                            );
                            this._enableAutomaticDecorators(e.filter((t) => t.mode === $b)), this._enableManualDecorators(e.filter((t) => "manual" === t.mode));
                            t.plugins.get(Xm).registerAttribute("linkHref"),
                                (function (t, e, n, o) {
                                    const i = t.editing.view,
                                        r = new Set();
                                    i.document.registerPostFixer((i) => {
                                        const s = t.model.document.selection;
                                        let a = !1;
                                        if (s.hasAttribute(e)) {
                                            const c = mp(s.getFirstPosition(), e, s.getAttribute(e), t.model),
                                                l = t.editing.mapper.toViewRange(c);
                                            for (const t of l.getItems()) t.is("element", n) && !t.hasClass(o) && (i.addClass(o, t), r.add(t), (a = !0));
                                        }
                                        return a;
                                    }),
                                        t.conversion.for("editingDowncast").add((t) => {
                                            function e() {
                                                i.change((t) => {
                                                    for (const e of r.values()) t.removeClass(o, e), r.delete(e);
                                                });
                                            }
                                            t.on("insert", e, { priority: "highest" }), t.on("remove", e, { priority: "highest" }), t.on("attribute", e, { priority: "highest" }), t.on("selection", e, { priority: "highest" });
                                        });
                                })(t, "linkHref", "a", "ck-link_selected"),
                                this._enableLinkOpen(),
                                this._enableInsertContentSelectionAttributesFixer(),
                                this._enableClickingAfterLink(),
                                this._enableTypingOverLink(),
                                this._handleDeleteContentAfterLink();
                        }
                        _enableAutomaticDecorators(t) {
                            const e = this.editor,
                                n = e.commands.get("link").automaticDecorators;
                            e.config.get("link.addTargetToExternalLinks") && n.add({ id: "linkIsExternal", mode: $b, callback: (t) => Yb.test(t), attributes: { target: "_blank", rel: "noopener noreferrer" } }),
                                n.add(t),
                                n.length && e.conversion.for("downcast").add(n.getDispatcher());
                        }
                        _enableManualDecorators(t) {
                            if (!t.length) return;
                            const e = this.editor,
                                n = e.commands.get("link").manualDecorators;
                            t.forEach((t) => {
                                e.model.schema.extend("$text", { allowAttributes: t.id }),
                                    (t = new Wb(t)),
                                    n.add(t),
                                    e.conversion.for("downcast").attributeToElement({
                                        model: t.id,
                                        view: (e, { writer: n, schema: o }, { item: i }) => {
                                            if ((i.is("selection") || o.isInline(i)) && e) {
                                                const e = n.createAttributeElement("a", t.attributes, { priority: 5 });
                                                t.classes && n.addClass(t.classes, e);
                                                for (const o in t.styles) n.setStyle(o, t.styles[o], e);
                                                return n.setCustomProperty("link", !0, e), e;
                                            }
                                        },
                                    }),
                                    e.conversion.for("upcast").elementToAttribute({ view: { name: "a", ...t._createPattern() }, model: { key: t.id } });
                            });
                        }
                        _enableLinkOpen() {
                            const t = this.editor,
                                e = t.editing.view.document,
                                n = t.model.document;
                            this.listenTo(
                                e,
                                "click",
                                (t, e) => {
                                    if (!(lr.isMac ? e.domEvent.metaKey : e.domEvent.ctrlKey)) return;
                                    let n = e.domTarget;
                                    if (("a" != n.tagName.toLowerCase() && (n = n.closest("a")), !n)) return;
                                    const o = n.getAttribute("href");
                                    o && (t.stop(), e.preventDefault(), Vb(o));
                                },
                                { context: "$capture" }
                            ),
                                this.listenTo(
                                    e,
                                    "enter",
                                    (t, e) => {
                                        const o = n.selection,
                                            i = o.getSelectedElement(),
                                            r = i ? i.getAttribute("linkHref") : o.getAttribute("linkHref");
                                        r && e.domEvent.altKey && (t.stop(), Vb(r));
                                    },
                                    { context: "a" }
                                );
                        }
                        _enableInsertContentSelectionAttributesFixer() {
                            const t = this.editor.model,
                                e = t.document.selection;
                            this.listenTo(
                                t,
                                "insertContent",
                                () => {
                                    const n = e.anchor.nodeBefore,
                                        o = e.anchor.nodeAfter;
                                    e.hasAttribute("linkHref") &&
                                        n &&
                                        n.hasAttribute("linkHref") &&
                                        ((o && o.hasAttribute("linkHref")) ||
                                            t.change((e) => {
                                                Qb(e, Jb(t.schema));
                                            }));
                                },
                                { priority: "low" }
                            );
                        }
                        _enableClickingAfterLink() {
                            const t = this.editor,
                                e = t.model;
                            t.editing.view.addObserver(Cg);
                            let n = !1;
                            this.listenTo(t.editing.view.document, "mousedown", () => {
                                n = !0;
                            }),
                                this.listenTo(t.editing.view.document, "selectionChange", () => {
                                    if (!n) return;
                                    n = !1;
                                    const t = e.document.selection;
                                    if (!t.isCollapsed) return;
                                    if (!t.hasAttribute("linkHref")) return;
                                    const o = t.getFirstPosition(),
                                        i = mp(o, "linkHref", t.getAttribute("linkHref"), e);
                                    (o.isTouching(i.start) || o.isTouching(i.end)) &&
                                        e.change((t) => {
                                            Qb(t, Jb(e.schema));
                                        });
                                });
                        }
                        _enableTypingOverLink() {
                            const t = this.editor,
                                e = t.editing.view;
                            let n, o;
                            this.listenTo(
                                e.document,
                                "delete",
                                () => {
                                    o = !0;
                                },
                                { priority: "high" }
                            ),
                                this.listenTo(
                                    t.model,
                                    "deleteContent",
                                    () => {
                                        const e = t.model.document.selection;
                                        e.isCollapsed ||
                                            (o
                                                ? (o = !1)
                                                : Zb(t) &&
                                                  (function (t) {
                                                      const e = t.document.selection,
                                                          n = e.getFirstPosition(),
                                                          o = e.getLastPosition(),
                                                          i = n.nodeAfter;
                                                      if (!i) return !1;
                                                      if (!i.is("$text")) return !1;
                                                      if (!i.hasAttribute("linkHref")) return !1;
                                                      const r = o.textNode || o.nodeBefore;
                                                      if (i === r) return !0;
                                                      return mp(n, "linkHref", i.getAttribute("linkHref"), t).containsRange(t.createRange(n, o), !0);
                                                  })(t.model) &&
                                                  (n = e.getAttributes()));
                                    },
                                    { priority: "high" }
                                ),
                                this.listenTo(
                                    t.model,
                                    "insertContent",
                                    (e, [i]) => {
                                        (o = !1),
                                            Zb(t) &&
                                                n &&
                                                (t.model.change((t) => {
                                                    for (const [e, o] of n) t.setAttribute(e, o, i);
                                                }),
                                                (n = null));
                                    },
                                    { priority: "high" }
                                );
                        }
                        _handleDeleteContentAfterLink() {
                            const t = this.editor,
                                e = t.model,
                                n = e.document.selection,
                                o = t.editing.view;
                            let i = !1,
                                r = !1;
                            this.listenTo(
                                o.document,
                                "delete",
                                (t, e) => {
                                    r = e.domEvent.keyCode === gr.backspace;
                                },
                                { priority: "high" }
                            ),
                                this.listenTo(
                                    e,
                                    "deleteContent",
                                    () => {
                                        i = !1;
                                        const t = n.getFirstPosition(),
                                            o = n.getAttribute("linkHref");
                                        if (!o) return;
                                        const r = mp(t, "linkHref", o, e);
                                        i = r.containsPosition(t) || r.end.isEqual(t);
                                    },
                                    { priority: "high" }
                                ),
                                this.listenTo(
                                    e,
                                    "deleteContent",
                                    () => {
                                        r &&
                                            ((r = !1),
                                            i ||
                                                t.model.enqueueChange((t) => {
                                                    Qb(t, Jb(e.schema));
                                                }));
                                    },
                                    { priority: "low" }
                                );
                        }
                    }
                    function Qb(t, e) {
                        t.removeSelectionAttribute("linkHref");
                        for (const n of e) t.removeSelectionAttribute(n);
                    }
                    function Zb(t) {
                        return t.model.change((t) => t.batch).isTyping;
                    }
                    function Jb(t) {
                        return t.getDefinition("$text").allowAttributes.filter((t) => t.startsWith("link"));
                    }
                    var Xb = n(7754),
                        tw = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Xb.Z, tw);
                    Xb.Z.locals;
                    class ew extends eh {
                        constructor(t, e) {
                            super(t);
                            const n = t.t;
                            (this.focusTracker = new _a()),
                                (this.keystrokes = new Aa()),
                                (this.urlInputView = this._createUrlInput()),
                                (this.saveButtonView = this._createButton(n("Save"), Eh.check, "ck-button-save")),
                                (this.saveButtonView.type = "submit"),
                                (this.cancelButtonView = this._createButton(n("Cancel"), Eh.cancel, "ck-button-cancel", "cancel")),
                                (this._manualDecoratorSwitches = this._createManualDecoratorSwitches(e)),
                                (this.children = this._createFormChildren(e.manualDecorators)),
                                (this._focusables = new Nd()),
                                (this._focusCycler = new Zh({ focusables: this._focusables, focusTracker: this.focusTracker, keystrokeHandler: this.keystrokes, actions: { focusPrevious: "shift + tab", focusNext: "tab" } }));
                            const o = ["ck", "ck-link-form", "ck-responsive-form"];
                            e.manualDecorators.length && o.push("ck-link-form_layout-vertical", "ck-vertical-form"), this.setTemplate({ tag: "form", attributes: { class: o, tabindex: "-1" }, children: this.children }), Ih(this);
                        }
                        getDecoratorSwitchesState() {
                            return Array.from(this._manualDecoratorSwitches).reduce((t, e) => ((t[e.name] = e.isOn), t), {});
                        }
                        render() {
                            super.render(), Mh({ view: this });
                            [this.urlInputView, ...this._manualDecoratorSwitches, this.saveButtonView, this.cancelButtonView].forEach((t) => {
                                this._focusables.add(t), this.focusTracker.add(t.element);
                            }),
                                this.keystrokes.listenTo(this.element);
                        }
                        destroy() {
                            super.destroy(), this.focusTracker.destroy(), this.keystrokes.destroy();
                        }
                        focus() {
                            this._focusCycler.focusFirst();
                        }
                        _createUrlInput() {
                            const t = this.locale.t,
                                e = new Ru(this.locale, ju);
                            return (e.label = t("Link URL")), e;
                        }
                        _createButton(t, e, n, o) {
                            const i = new Lh(this.locale);
                            return i.set({ label: t, icon: e, tooltip: !0 }), i.extendTemplate({ attributes: { class: n } }), o && i.delegate("execute").to(this, o), i;
                        }
                        _createManualDecoratorSwitches(t) {
                            const e = this.createCollection();
                            for (const n of t.manualDecorators) {
                                const o = new jh(this.locale);
                                o.set({ name: n.id, label: n.label, withText: !0 }),
                                    o.bind("isOn").toMany([n, t], "value", (t, e) => (void 0 === e && void 0 === t ? n.defaultValue : t)),
                                    o.on("execute", () => {
                                        n.set("value", !o.isOn);
                                    }),
                                    e.add(o);
                            }
                            return e;
                        }
                        _createFormChildren(t) {
                            const e = this.createCollection();
                            if ((e.add(this.urlInputView), t.length)) {
                                const t = new eh();
                                t.setTemplate({
                                    tag: "ul",
                                    children: this._manualDecoratorSwitches.map((t) => ({ tag: "li", children: [t], attributes: { class: ["ck", "ck-list__item"] } })),
                                    attributes: { class: ["ck", "ck-reset", "ck-list"] },
                                }),
                                    e.add(t);
                            }
                            return e.add(this.saveButtonView), e.add(this.cancelButtonView), e;
                        }
                    }
                    var nw = n(2347),
                        ow = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(nw.Z, ow);
                    nw.Z.locals;
                    class iw extends eh {
                        constructor(t) {
                            super(t);
                            const e = t.t;
                            (this.focusTracker = new _a()),
                                (this.keystrokes = new Aa()),
                                (this.previewButtonView = this._createPreviewButton()),
                                (this.unlinkButtonView = this._createButton(
                                    e("Unlink"),
                                    '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m11.077 15 .991-1.416a.75.75 0 1 1 1.229.86l-1.148 1.64a.748.748 0 0 1-.217.206 5.251 5.251 0 0 1-8.503-5.955.741.741 0 0 1 .12-.274l1.147-1.639a.75.75 0 1 1 1.228.86L4.933 10.7l.006.003a3.75 3.75 0 0 0 6.132 4.294l.006.004zm5.494-5.335a.748.748 0 0 1-.12.274l-1.147 1.639a.75.75 0 1 1-1.228-.86l.86-1.23a3.75 3.75 0 0 0-6.144-4.301l-.86 1.229a.75.75 0 0 1-1.229-.86l1.148-1.64a.748.748 0 0 1 .217-.206 5.251 5.251 0 0 1 8.503 5.955zm-4.563-2.532a.75.75 0 0 1 .184 1.045l-3.155 4.505a.75.75 0 1 1-1.229-.86l3.155-4.506a.75.75 0 0 1 1.045-.184zm4.919 10.562-1.414 1.414a.75.75 0 1 1-1.06-1.06l1.414-1.415-1.415-1.414a.75.75 0 0 1 1.061-1.06l1.414 1.414 1.414-1.415a.75.75 0 0 1 1.061 1.061l-1.414 1.414 1.414 1.415a.75.75 0 0 1-1.06 1.06l-1.415-1.414z"/></svg>',
                                    "unlink"
                                )),
                                (this.editButtonView = this._createButton(e("Edit link"), Eh.pencil, "edit")),
                                this.set("href"),
                                (this._focusables = new Nd()),
                                (this._focusCycler = new Zh({ focusables: this._focusables, focusTracker: this.focusTracker, keystrokeHandler: this.keystrokes, actions: { focusPrevious: "shift + tab", focusNext: "tab" } })),
                                this.setTemplate({ tag: "div", attributes: { class: ["ck", "ck-link-actions", "ck-responsive-form"], tabindex: "-1" }, children: [this.previewButtonView, this.editButtonView, this.unlinkButtonView] });
                        }
                        render() {
                            super.render();
                            [this.previewButtonView, this.editButtonView, this.unlinkButtonView].forEach((t) => {
                                this._focusables.add(t), this.focusTracker.add(t.element);
                            }),
                                this.keystrokes.listenTo(this.element);
                        }
                        destroy() {
                            super.destroy(), this.focusTracker.destroy(), this.keystrokes.destroy();
                        }
                        focus() {
                            this._focusCycler.focusFirst();
                        }
                        _createButton(t, e, n) {
                            const o = new Lh(this.locale);
                            return o.set({ label: t, icon: e, tooltip: !0 }), o.delegate("execute").to(this, n), o;
                        }
                        _createPreviewButton() {
                            const t = new Lh(this.locale),
                                e = this.bindTemplate,
                                n = this.t;
                            return (
                                t.set({ withText: !0, tooltip: n("Open link in new tab") }),
                                t.extendTemplate({ attributes: { class: ["ck", "ck-link-actions__preview"], href: e.to("href", (t) => t && Rb(t)), target: "_blank", rel: "noopener noreferrer" } }),
                                t.bind("label").to(this, "href", (t) => t || n("This link has no URL")),
                                t.bind("isEnabled").to(this, "href", (t) => !!t),
                                (t.template.tag = "a"),
                                (t.template.eventListeners = {}),
                                t
                            );
                        }
                    }
                    const rw = "link-ui";
                    class sw extends V {
                        static get requires() {
                            return [$u];
                        }
                        static get pluginName() {
                            return "LinkUI";
                        }
                        init() {
                            const t = this.editor;
                            t.editing.view.addObserver(Ag),
                                (this.actionsView = this._createActionsView()),
                                (this.formView = this._createFormView()),
                                (this._balloon = t.plugins.get($u)),
                                this._createToolbarLinkButton(),
                                this._enableUserBalloonInteractions(),
                                t.conversion.for("editingDowncast").markerToHighlight({ model: rw, view: { classes: ["ck-fake-link-selection"] } }),
                                t.conversion.for("editingDowncast").markerToElement({ model: rw, view: { name: "span", classes: ["ck-fake-link-selection", "ck-fake-link-selection_collapsed"] } });
                        }
                        destroy() {
                            super.destroy(), this.formView.destroy();
                        }
                        _createActionsView() {
                            const t = this.editor,
                                e = new iw(t.locale),
                                n = t.commands.get("link"),
                                o = t.commands.get("unlink");
                            return (
                                e.bind("href").to(n, "value"),
                                e.editButtonView.bind("isEnabled").to(n),
                                e.unlinkButtonView.bind("isEnabled").to(o),
                                this.listenTo(e, "edit", () => {
                                    this._addFormView();
                                }),
                                this.listenTo(e, "unlink", () => {
                                    t.execute("unlink"), this._hideUI();
                                }),
                                e.keystrokes.set("Esc", (t, e) => {
                                    this._hideUI(), e();
                                }),
                                e.keystrokes.set(Lb, (t, e) => {
                                    this._addFormView(), e();
                                }),
                                e
                            );
                        }
                        _createFormView() {
                            const t = this.editor,
                                e = t.commands.get("link"),
                                n = t.config.get("link.defaultProtocol"),
                                o = new ew(t.locale, e);
                            return (
                                o.urlInputView.fieldView.bind("value").to(e, "value"),
                                o.urlInputView.bind("isReadOnly").to(e, "isEnabled", (t) => !t),
                                o.saveButtonView.bind("isEnabled").to(e),
                                this.listenTo(o, "submit", () => {
                                    const { value: e } = o.urlInputView.fieldView.element,
                                        i = Fb(e, n);
                                    t.execute("link", i, o.getDecoratorSwitchesState()), this._closeFormView();
                                }),
                                this.listenTo(o, "cancel", () => {
                                    this._closeFormView();
                                }),
                                o.keystrokes.set("Esc", (t, e) => {
                                    this._closeFormView(), e();
                                }),
                                o
                            );
                        }
                        _createToolbarLinkButton() {
                            const t = this.editor,
                                e = t.commands.get("link"),
                                n = t.t;
                            t.keystrokes.set(Lb, (t, n) => {
                                n(), e.isEnabled && this._showUI(!0);
                            }),
                                t.ui.componentFactory.add("link", (t) => {
                                    const o = new Lh(t);
                                    return (
                                        (o.isEnabled = !0),
                                        (o.label = n("Link")),
                                        (o.icon =
                                            '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m11.077 15 .991-1.416a.75.75 0 1 1 1.229.86l-1.148 1.64a.748.748 0 0 1-.217.206 5.251 5.251 0 0 1-8.503-5.955.741.741 0 0 1 .12-.274l1.147-1.639a.75.75 0 1 1 1.228.86L4.933 10.7l.006.003a3.75 3.75 0 0 0 6.132 4.294l.006.004zm5.494-5.335a.748.748 0 0 1-.12.274l-1.147 1.639a.75.75 0 1 1-1.228-.86l.86-1.23a3.75 3.75 0 0 0-6.144-4.301l-.86 1.229a.75.75 0 0 1-1.229-.86l1.148-1.64a.748.748 0 0 1 .217-.206 5.251 5.251 0 0 1 8.503 5.955zm-4.563-2.532a.75.75 0 0 1 .184 1.045l-3.155 4.505a.75.75 0 1 1-1.229-.86l3.155-4.506a.75.75 0 0 1 1.045-.184z"/></svg>'),
                                        (o.keystroke = Lb),
                                        (o.tooltip = !0),
                                        (o.isToggleable = !0),
                                        o.bind("isEnabled").to(e, "isEnabled"),
                                        o.bind("isOn").to(e, "value", (t) => !!t),
                                        this.listenTo(o, "execute", () => this._showUI(!0)),
                                        o
                                    );
                                });
                        }
                        _enableUserBalloonInteractions() {
                            const t = this.editor.editing.view.document;
                            this.listenTo(t, "click", () => {
                                this._getSelectedLinkElement() && this._showUI();
                            }),
                                this.editor.keystrokes.set(
                                    "Tab",
                                    (t, e) => {
                                        this._areActionsVisible && !this.actionsView.focusTracker.isFocused && (this.actionsView.focus(), e());
                                    },
                                    { priority: "high" }
                                ),
                                this.editor.keystrokes.set("Esc", (t, e) => {
                                    this._isUIVisible && (this._hideUI(), e());
                                }),
                                Dh({ emitter: this.formView, activator: () => this._isUIInPanel, contextElements: [this._balloon.view.element], callback: () => this._hideUI() });
                        }
                        _addActionsView() {
                            this._areActionsInPanel || this._balloon.add({ view: this.actionsView, position: this._getBalloonPositionData() });
                        }
                        _addFormView() {
                            if (this._isFormInPanel) return;
                            const t = this.editor.commands.get("link");
                            this.formView.disableCssTransitions(),
                                this._balloon.add({ view: this.formView, position: this._getBalloonPositionData() }),
                                this._balloon.visibleView === this.formView && this.formView.urlInputView.fieldView.select(),
                                this.formView.enableCssTransitions(),
                                (this.formView.urlInputView.fieldView.element.value = t.value || "");
                        }
                        _closeFormView() {
                            const t = this.editor.commands.get("link");
                            t.restoreManualDecoratorStates(), void 0 !== t.value ? this._removeFormView() : this._hideUI();
                        }
                        _removeFormView() {
                            this._isFormInPanel && (this.formView.saveButtonView.focus(), this._balloon.remove(this.formView), this.editor.editing.view.focus(), this._hideFakeVisualSelection());
                        }
                        _showUI(t = !1) {
                            this._getSelectedLinkElement()
                                ? (this._areActionsVisible ? this._addFormView() : this._addActionsView(), t && this._balloon.showStack("main"))
                                : (this._showFakeVisualSelection(), this._addActionsView(), t && this._balloon.showStack("main"), this._addFormView()),
                                this._startUpdatingUI();
                        }
                        _hideUI() {
                            if (!this._isUIInPanel) return;
                            const t = this.editor;
                            this.stopListening(t.ui, "update"),
                                this.stopListening(this._balloon, "change:visibleView"),
                                t.editing.view.focus(),
                                this._removeFormView(),
                                this._balloon.remove(this.actionsView),
                                this._hideFakeVisualSelection();
                        }
                        _startUpdatingUI() {
                            const t = this.editor,
                                e = t.editing.view.document;
                            let n = this._getSelectedLinkElement(),
                                o = r();
                            const i = () => {
                                const t = this._getSelectedLinkElement(),
                                    e = r();
                                (n && !t) || (!n && e !== o) ? this._hideUI() : this._isUIVisible && this._balloon.updatePosition(this._getBalloonPositionData()), (n = t), (o = e);
                            };
                            function r() {
                                return e.selection.focus
                                    .getAncestors()
                                    .reverse()
                                    .find((t) => t.is("element"));
                            }
                            this.listenTo(t.ui, "update", i), this.listenTo(this._balloon, "change:visibleView", i);
                        }
                        get _isFormInPanel() {
                            return this._balloon.hasView(this.formView);
                        }
                        get _areActionsInPanel() {
                            return this._balloon.hasView(this.actionsView);
                        }
                        get _areActionsVisible() {
                            return this._balloon.visibleView === this.actionsView;
                        }
                        get _isUIInPanel() {
                            return this._isFormInPanel || this._areActionsInPanel;
                        }
                        get _isUIVisible() {
                            return this._balloon.visibleView == this.formView || this._areActionsVisible;
                        }
                        _getBalloonPositionData() {
                            const t = this.editor.editing.view,
                                e = this.editor.model,
                                n = t.document;
                            let o = null;
                            if (e.markers.has(rw)) {
                                const e = Array.from(this.editor.editing.mapper.markerNameToElements(rw)),
                                    n = t.createRange(t.createPositionBefore(e[0]), t.createPositionAfter(e[e.length - 1]));
                                o = t.domConverter.viewRangeToDom(n);
                            } else
                                o = () => {
                                    const e = this._getSelectedLinkElement();
                                    return e ? t.domConverter.mapViewToDom(e) : t.domConverter.viewRangeToDom(n.selection.getFirstRange());
                                };
                            return { target: o };
                        }
                        _getSelectedLinkElement() {
                            const t = this.editor.editing.view,
                                e = t.document.selection,
                                n = e.getSelectedElement();
                            if (e.isCollapsed || (n && Jg(n))) return aw(e.getFirstPosition());
                            {
                                const n = e.getFirstRange().getTrimmed(),
                                    o = aw(n.start),
                                    i = aw(n.end);
                                return o && o == i && t.createRangeIn(o).getTrimmed().isEqual(n) ? o : null;
                            }
                        }
                        _showFakeVisualSelection() {
                            const t = this.editor.model;
                            t.change((e) => {
                                const n = t.document.selection.getFirstRange();
                                if (t.markers.has(rw)) e.updateMarker(rw, { range: n });
                                else if (n.start.isAtEnd) {
                                    const o = n.start.getLastMatchingPosition(({ item: e }) => !t.schema.isContent(e), { boundaries: n });
                                    e.addMarker(rw, { usingOperation: !1, affectsData: !1, range: e.createRange(o, n.end) });
                                } else e.addMarker(rw, { usingOperation: !1, affectsData: !1, range: n });
                            });
                        }
                        _hideFakeVisualSelection() {
                            const t = this.editor.model;
                            t.markers.has(rw) &&
                                t.change((t) => {
                                    t.removeMarker(rw);
                                });
                        }
                    }
                    function aw(t) {
                        return t.getAncestors().find((t) => {
                            return (e = t).is("attributeElement") && !!e.getCustomProperty("link");
                            var e;
                        });
                    }
                    const cw = new RegExp(
                        "(^|\\s)(((?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(((?!www\\.)|(www\\.))(?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.)+(?:[a-z\\u00a1-\\uffff]{2,63})))(?::\\d{2,5})?(?:[/?#]\\S*)?)|((www.|(\\S+@))((?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.))+(?:[a-z\\u00a1-\\uffff]{2,63})))$",
                        "i"
                    );
                    class lw extends V {
                        static get requires() {
                            return [qg];
                        }
                        static get pluginName() {
                            return "AutoLink";
                        }
                        init() {
                            const t = this.editor.model.document.selection;
                            t.on("change:range", () => {
                                this.isEnabled = !t.anchor.parent.is("element", "codeBlock");
                            }),
                                this._enableTypingHandling();
                        }
                        afterInit() {
                            this._enableEnterHandling(), this._enableShiftEnterHandling();
                        }
                        _enableTypingHandling() {
                            const t = this.editor,
                                e = new Jm(t.model, (t) => {
                                    if (
                                        !(function (t) {
                                            return t.length > 4 && " " === t[t.length - 1] && " " !== t[t.length - 2];
                                        })(t)
                                    )
                                        return;
                                    const e = dw(t.substr(0, t.length - 1));
                                    return e ? { url: e } : void 0;
                                });
                            e.on("matched:data", (e, n) => {
                                const { batch: o, range: i, url: r } = n;
                                if (!o.isTyping) return;
                                const s = i.end.getShiftedBy(-1),
                                    a = s.getShiftedBy(-r.length),
                                    c = t.model.createRange(a, s);
                                this._applyAutoLink(r, c);
                            }),
                                e.bind("isEnabled").to(this);
                        }
                        _enableEnterHandling() {
                            const t = this.editor,
                                e = t.model,
                                n = t.commands.get("enter");
                            n &&
                                n.on("execute", () => {
                                    const t = e.document.selection.getFirstPosition();
                                    if (!t.parent.previousSibling) return;
                                    const n = e.createRangeIn(t.parent.previousSibling);
                                    this._checkAndApplyAutoLinkOnRange(n);
                                });
                        }
                        _enableShiftEnterHandling() {
                            const t = this.editor,
                                e = t.model,
                                n = t.commands.get("shiftEnter");
                            n &&
                                n.on("execute", () => {
                                    const t = e.document.selection.getFirstPosition(),
                                        n = e.createRange(e.createPositionAt(t.parent, 0), t.getShiftedBy(-1));
                                    this._checkAndApplyAutoLinkOnRange(n);
                                });
                        }
                        _checkAndApplyAutoLinkOnRange(t) {
                            const e = this.editor.model,
                                { text: n, range: o } = Zm(t, e),
                                i = dw(n);
                            if (i) {
                                const t = e.createRange(o.end.getShiftedBy(-i.length), o.end);
                                this._applyAutoLink(i, t);
                            }
                        }
                        _applyAutoLink(t, e) {
                            const n = this.editor.model,
                                o = this.editor.plugins.get("Delete");
                            this.isEnabled &&
                                (function (t, e) {
                                    return e.schema.checkAttributeInSelection(e.createSelection(t), "linkHref");
                                })(e, n) &&
                                n.enqueueChange((i) => {
                                    const r = this.editor.config.get("link.defaultProtocol"),
                                        s = Fb(t, r);
                                    i.setAttribute("linkHref", s, e),
                                        n.enqueueChange(() => {
                                            o.requestUndoOnBackspace();
                                        });
                                });
                        }
                    }
                    function dw(t) {
                        const e = cw.exec(t);
                        return e ? e[2] : null;
                    }
                    class hw extends U {
                        constructor(t, e) {
                            super(t), (this.type = e);
                        }
                        refresh() {
                            (this.value = this._getValue()), (this.isEnabled = this._checkEnabled());
                        }
                        execute(t = {}) {
                            const e = this.editor.model,
                                n = e.document,
                                o = Array.from(n.selection.getSelectedBlocks()).filter((t) => gw(t, e.schema)),
                                i = void 0 !== t.forceValue ? !t.forceValue : this.value;
                            e.change((t) => {
                                if (i) {
                                    let e = o[o.length - 1].nextSibling,
                                        n = Number.POSITIVE_INFINITY,
                                        i = [];
                                    for (; e && "listItem" == e.name && 0 !== e.getAttribute("listIndent"); ) {
                                        const t = e.getAttribute("listIndent");
                                        t < n && (n = t);
                                        const o = t - n;
                                        i.push({ element: e, listIndent: o }), (e = e.nextSibling);
                                    }
                                    i = i.reverse();
                                    for (const e of i) t.setAttribute("listIndent", e.listIndent, e.element);
                                }
                                if (!i) {
                                    let t = Number.POSITIVE_INFINITY;
                                    for (const e of o) e.is("element", "listItem") && e.getAttribute("listIndent") < t && (t = e.getAttribute("listIndent"));
                                    (t = 0 === t ? 1 : t), uw(o, !0, t), uw(o, !1, t);
                                }
                                for (const e of o.reverse())
                                    i && "listItem" == e.name
                                        ? t.rename(e, "paragraph")
                                        : i || "listItem" == e.name
                                        ? i || "listItem" != e.name || e.getAttribute("listType") == this.type || t.setAttribute("listType", this.type, e)
                                        : (t.setAttributes({ listType: this.type, listIndent: 0 }, e), t.rename(e, "listItem"));
                                this.fire("_executeCleanup", o);
                            });
                        }
                        _getValue() {
                            const t = wa(this.editor.model.document.selection.getSelectedBlocks());
                            return !!t && t.is("element", "listItem") && t.getAttribute("listType") == this.type;
                        }
                        _checkEnabled() {
                            if (this.value) return !0;
                            const t = this.editor.model.document.selection,
                                e = this.editor.model.schema,
                                n = wa(t.getSelectedBlocks());
                            return !!n && gw(n, e);
                        }
                    }
                    function uw(t, e, n) {
                        const o = e ? t[0] : t[t.length - 1];
                        if (o.is("element", "listItem")) {
                            let i = o[e ? "previousSibling" : "nextSibling"],
                                r = o.getAttribute("listIndent");
                            for (; i && i.is("element", "listItem") && i.getAttribute("listIndent") >= n; )
                                r > i.getAttribute("listIndent") && (r = i.getAttribute("listIndent")), i.getAttribute("listIndent") == r && t[e ? "unshift" : "push"](i), (i = i[e ? "previousSibling" : "nextSibling"]);
                        }
                    }
                    function gw(t, e) {
                        return e.checkChild(t.parent, "listItem") && !e.isObject(t);
                    }
                    class mw extends U {
                        constructor(t, e) {
                            super(t), (this._indentBy = "forward" == e ? 1 : -1);
                        }
                        refresh() {
                            this.isEnabled = this._checkEnabled();
                        }
                        execute() {
                            const t = this.editor.model,
                                e = t.document;
                            let n = Array.from(e.selection.getSelectedBlocks());
                            t.change((t) => {
                                const e = n[n.length - 1];
                                let o = e.nextSibling;
                                for (; o && "listItem" == o.name && o.getAttribute("listIndent") > e.getAttribute("listIndent"); ) n.push(o), (o = o.nextSibling);
                                this._indentBy < 0 && (n = n.reverse());
                                for (const e of n) {
                                    const n = e.getAttribute("listIndent") + this._indentBy;
                                    n < 0 ? t.rename(e, "paragraph") : t.setAttribute("listIndent", n, e);
                                }
                                this.fire("_executeCleanup", n);
                            });
                        }
                        _checkEnabled() {
                            const t = wa(this.editor.model.document.selection.getSelectedBlocks());
                            if (!t || !t.is("element", "listItem")) return !1;
                            if (this._indentBy > 0) {
                                const e = t.getAttribute("listIndent"),
                                    n = t.getAttribute("listType");
                                let o = t.previousSibling;
                                for (; o && o.is("element", "listItem") && o.getAttribute("listIndent") >= e; ) {
                                    if (o.getAttribute("listIndent") == e) return o.getAttribute("listType") == n;
                                    o = o.previousSibling;
                                }
                                return !1;
                            }
                            return !0;
                        }
                    }
                    function pw(t, e) {
                        const n = e.mapper,
                            o = e.writer,
                            i = "numbered" == t.getAttribute("listType") ? "ol" : "ul",
                            r = (function (t) {
                                const e = t.createContainerElement("li");
                                return (e.getFillerOffset = Aw), e;
                            })(o),
                            s = o.createContainerElement(i, null);
                        return o.insert(o.createPositionAt(s, 0), r), n.bindElements(t, r), r;
                    }
                    function fw(t, e, n, o) {
                        const i = e.parent,
                            r = n.mapper,
                            s = n.writer;
                        let a = r.toViewPosition(o.createPositionBefore(t));
                        const c = ww(t.previousSibling, { sameIndent: !0, smallerIndent: !0, listIndent: t.getAttribute("listIndent") }),
                            l = t.previousSibling;
                        if (c && c.getAttribute("listIndent") == t.getAttribute("listIndent")) {
                            const t = r.toViewElement(c);
                            a = s.breakContainer(s.createPositionAfter(t));
                        } else if (l && "listItem" == l.name) {
                            a = r.toViewPosition(o.createPositionAt(l, "end"));
                            const t = r.findMappedViewAncestor(a),
                                e = (function (t) {
                                    for (const e of t.getChildren()) if ("ul" == e.name || "ol" == e.name) return e;
                                    return null;
                                })(t);
                            a = e ? s.createPositionBefore(e) : s.createPositionAt(t, "end");
                        } else a = r.toViewPosition(o.createPositionBefore(t));
                        if (((a = bw(a)), s.insert(a, i), l && "listItem" == l.name)) {
                            const t = r.toViewElement(l),
                                n = s.createRange(s.createPositionAt(t, 0), a).getWalker({ ignoreElementEnd: !0 });
                            for (const t of n)
                                if (t.item.is("element", "li")) {
                                    const o = s.breakContainer(s.createPositionBefore(t.item)),
                                        i = t.item.parent,
                                        r = s.createPositionAt(e, "end");
                                    kw(s, r.nodeBefore, r.nodeAfter), s.move(s.createRangeOn(i), r), (n.position = o);
                                }
                        } else {
                            const n = i.nextSibling;
                            if (n && (n.is("element", "ul") || n.is("element", "ol"))) {
                                let o = null;
                                for (const e of n.getChildren()) {
                                    const n = r.toModelElement(e);
                                    if (!(n && n.getAttribute("listIndent") > t.getAttribute("listIndent"))) break;
                                    o = e;
                                }
                                o && (s.breakContainer(s.createPositionAfter(o)), s.move(s.createRangeOn(o.parent), s.createPositionAt(e, "end")));
                            }
                        }
                        kw(s, i, i.nextSibling), kw(s, i.previousSibling, i);
                    }
                    function kw(t, e, n) {
                        return !e || !n || ("ul" != e.name && "ol" != e.name) || e.name != n.name || e.getAttribute("class") !== n.getAttribute("class") ? null : t.mergeContainers(t.createPositionAfter(e));
                    }
                    function bw(t) {
                        return t.getLastMatchingPosition((t) => t.item.is("uiElement"));
                    }
                    function ww(t, e) {
                        const n = !!e.sameIndent,
                            o = !!e.smallerIndent,
                            i = e.listIndent;
                        let r = t;
                        for (; r && "listItem" == r.name; ) {
                            const t = r.getAttribute("listIndent");
                            if ((n && i == t) || (o && i > t)) return r;
                            r = "forward" === e.direction ? r.nextSibling : r.previousSibling;
                        }
                        return null;
                    }
                    function _w(t, e, n, o) {
                        t.ui.componentFactory.add(e, (i) => {
                            const r = t.commands.get(e),
                                s = new Lh(i);
                            return (
                                s.set({ label: n, icon: o, tooltip: !0, isToggleable: !0 }),
                                s.bind("isOn", "isEnabled").to(r, "value", "isEnabled"),
                                s.on("execute", () => {
                                    t.execute(e), t.editing.view.focus();
                                }),
                                s
                            );
                        });
                    }
                    function Aw() {
                        const t = !this.isEmpty && ("ul" == this.getChild(0).name || "ol" == this.getChild(0).name);
                        return this.isEmpty || t ? 0 : Oi.call(this);
                    }
                    function Cw(t) {
                        return (e, n, o) => {
                            const i = o.consumable;
                            if (!i.test(n.item, "insert") || !i.test(n.item, "attribute:listType") || !i.test(n.item, "attribute:listIndent")) return;
                            i.consume(n.item, "insert"), i.consume(n.item, "attribute:listType"), i.consume(n.item, "attribute:listIndent");
                            const r = n.item;
                            fw(r, pw(r, o), o, t);
                        };
                    }
                    function vw(t, e, n) {
                        if (!n.consumable.test(e.item, t.name)) return;
                        const o = n.mapper.toViewElement(e.item),
                            i = n.writer;
                        i.breakContainer(i.createPositionBefore(o)), i.breakContainer(i.createPositionAfter(o));
                        const r = o.parent,
                            s = "numbered" == e.attributeNewValue ? "ol" : "ul";
                        i.rename(s, r);
                    }
                    function yw(t, e, n) {
                        n.consumable.consume(e.item, t.name);
                        const o = n.mapper.toViewElement(e.item).parent,
                            i = n.writer;
                        kw(i, o, o.nextSibling), kw(i, o.previousSibling, o);
                    }
                    function xw(t, e, n) {
                        if (n.consumable.test(e.item, t.name) && "listItem" != e.item.name) {
                            let t = n.mapper.toViewPosition(e.range.start);
                            const o = n.writer,
                                i = [];
                            for (; ("ul" == t.parent.name || "ol" == t.parent.name) && ((t = o.breakContainer(t)), "li" == t.parent.name); ) {
                                const e = t,
                                    n = o.createPositionAt(t.parent, "end");
                                if (!e.isEqual(n)) {
                                    const t = o.remove(o.createRange(e, n));
                                    i.push(t);
                                }
                                t = o.createPositionAfter(t.parent);
                            }
                            if (i.length > 0) {
                                for (let e = 0; e < i.length; e++) {
                                    const n = t.nodeBefore;
                                    if (((t = o.insert(t, i[e]).end), e > 0)) {
                                        const e = kw(o, n, n.nextSibling);
                                        e && e.parent == n && t.offset--;
                                    }
                                }
                                kw(o, t.nodeBefore, t.nodeAfter);
                            }
                        }
                    }
                    function Ew(t, e, n) {
                        const o = n.mapper.toViewPosition(e.position),
                            i = o.nodeBefore,
                            r = o.nodeAfter;
                        kw(n.writer, i, r);
                    }
                    function Dw(t, e, n) {
                        if (n.consumable.consume(e.viewItem, { name: !0 })) {
                            const t = n.writer,
                                o = t.createElement("listItem"),
                                i = (function (t) {
                                    let e = 0,
                                        n = t.parent;
                                    for (; n; ) {
                                        if (n.is("element", "li")) e++;
                                        else {
                                            const t = n.previousSibling;
                                            t && t.is("element", "li") && e++;
                                        }
                                        n = n.parent;
                                    }
                                    return e;
                                })(e.viewItem);
                            t.setAttribute("listIndent", i, o);
                            const r = e.viewItem.parent && "ol" == e.viewItem.parent.name ? "numbered" : "bulleted";
                            if ((t.setAttribute("listType", r, o), !n.safeInsert(o, e.modelCursor))) return;
                            const s = (function (t, e, n) {
                                const { writer: o, schema: i } = n;
                                let r = o.createPositionAfter(t);
                                for (const s of e)
                                    if ("ul" == s.name || "ol" == s.name) r = n.convertItem(s, r).modelCursor;
                                    else {
                                        const e = n.convertItem(s, o.createPositionAt(t, "end")),
                                            a = e.modelRange.start.nodeAfter;
                                        a && a.is("element") && !i.checkChild(t, a.name) && ((t = e.modelCursor.parent.is("element", "listItem") ? e.modelCursor.parent : Nw(e.modelCursor)), (r = o.createPositionAfter(t)));
                                    }
                                return r;
                            })(o, e.viewItem.getChildren(), n);
                            (e.modelRange = t.createRange(e.modelCursor, s)), n.updateConversionResult(o, e);
                        }
                    }
                    function Iw(t, e, n) {
                        if (n.consumable.test(e.viewItem, { name: !0 })) {
                            const t = Array.from(e.viewItem.getChildren());
                            for (const e of t) {
                                !(e.is("element", "li") || Pw(e)) && e._remove();
                            }
                        }
                    }
                    function Mw(t, e, n) {
                        if (n.consumable.test(e.viewItem, { name: !0 })) {
                            if (0 === e.viewItem.childCount) return;
                            const t = [...e.viewItem.getChildren()];
                            let n = !1;
                            for (const e of t) n && !Pw(e) && e._remove(), Pw(e) && (n = !0);
                        }
                    }
                    function Tw(t) {
                        return (e, n) => {
                            if (n.isPhantom) return;
                            const o = n.modelPosition.nodeBefore;
                            if (o && o.is("element", "listItem")) {
                                const e = n.mapper.toViewElement(o),
                                    i = e.getAncestors().find(Pw),
                                    r = t.createPositionAt(e, 0).getWalker();
                                for (const t of r) {
                                    if ("elementStart" == t.type && t.item.is("element", "li")) {
                                        n.viewPosition = t.previousPosition;
                                        break;
                                    }
                                    if ("elementEnd" == t.type && t.item == i) {
                                        n.viewPosition = t.nextPosition;
                                        break;
                                    }
                                }
                            }
                        };
                    }
                    function Sw(t, [e, n]) {
                        let o,
                            i = e.is("documentFragment") ? e.getChild(0) : e;
                        if (((o = n ? this.createSelection(n) : this.document.selection), i && i.is("element", "listItem"))) {
                            const t = o.getFirstPosition();
                            let e = null;
                            if ((t.parent.is("element", "listItem") ? (e = t.parent) : t.nodeBefore && t.nodeBefore.is("element", "listItem") && (e = t.nodeBefore), e)) {
                                const t = e.getAttribute("listIndent");
                                if (t > 0) for (; i && i.is("element", "listItem"); ) i._setAttribute("listIndent", i.getAttribute("listIndent") + t), (i = i.nextSibling);
                            }
                        }
                    }
                    function Nw(t) {
                        const e = new $a({ startPosition: t });
                        let n;
                        do {
                            n = e.next();
                        } while (!n.value.item.is("element", "listItem"));
                        return n.value.item;
                    }
                    function Bw(t, e, n, o, i, r) {
                        const s = ww(e.nodeBefore, { sameIndent: !0, smallerIndent: !0, listIndent: t, foo: "b" }),
                            a = i.mapper,
                            c = i.writer,
                            l = s ? s.getAttribute("listIndent") : null;
                        let d;
                        if (s)
                            if (l == t) {
                                const t = a.toViewElement(s).parent;
                                d = c.createPositionAfter(t);
                            } else {
                                const t = r.createPositionAt(s, "end");
                                d = a.toViewPosition(t);
                            }
                        else d = n;
                        d = bw(d);
                        for (const t of [...o.getChildren()]) Pw(t) && ((d = c.move(c.createRangeOn(t), d).end), kw(c, t, t.nextSibling), kw(c, t.previousSibling, t));
                    }
                    function Pw(t) {
                        return t.is("element", "ol") || t.is("element", "ul");
                    }
                    class zw extends V {
                        static get pluginName() {
                            return "ListEditing";
                        }
                        static get requires() {
                            return [Rg, qg];
                        }
                        init() {
                            const t = this.editor;
                            t.model.schema.register("listItem", { inheritAllFrom: "$block", allowAttributes: ["listType", "listIndent"] });
                            const e = t.data,
                                n = t.editing;
                            var o;
                            t.model.document.registerPostFixer((e) =>
                                (function (t, e) {
                                    const n = t.document.differ.getChanges(),
                                        o = new Map();
                                    let i = !1;
                                    for (const o of n)
                                        if ("insert" == o.type && "listItem" == o.name) r(o.position);
                                        else if ("insert" == o.type && "listItem" != o.name) {
                                            if ("$text" != o.name) {
                                                const n = o.position.nodeAfter;
                                                n.hasAttribute("listIndent") && (e.removeAttribute("listIndent", n), (i = !0)),
                                                    n.hasAttribute("listType") && (e.removeAttribute("listType", n), (i = !0)),
                                                    n.hasAttribute("listStyle") && (e.removeAttribute("listStyle", n), (i = !0)),
                                                    n.hasAttribute("listReversed") && (e.removeAttribute("listReversed", n), (i = !0)),
                                                    n.hasAttribute("listStart") && (e.removeAttribute("listStart", n), (i = !0));
                                                for (const e of Array.from(t.createRangeIn(n)).filter((t) => t.item.is("element", "listItem"))) r(e.previousPosition);
                                            }
                                            r(o.position.getShiftedBy(o.length));
                                        } else
                                            "remove" == o.type && "listItem" == o.name
                                                ? r(o.position)
                                                : (("attribute" == o.type && "listIndent" == o.attributeKey) || ("attribute" == o.type && "listType" == o.attributeKey)) && r(o.range.start);
                                    for (const t of o.values()) s(t), a(t);
                                    return i;
                                    function r(t) {
                                        const e = t.nodeBefore;
                                        if (e && e.is("element", "listItem")) {
                                            let t = e;
                                            if (o.has(t)) return;
                                            for (let e = t.previousSibling; e && e.is("element", "listItem"); e = t.previousSibling) if (((t = e), o.has(t))) return;
                                            o.set(e, t);
                                        } else {
                                            const e = t.nodeAfter;
                                            e && e.is("element", "listItem") && o.set(e, e);
                                        }
                                    }
                                    function s(t) {
                                        let n = 0,
                                            o = null;
                                        for (; t && t.is("element", "listItem"); ) {
                                            const r = t.getAttribute("listIndent");
                                            if (r > n) {
                                                let s;
                                                null === o ? ((o = r - n), (s = n)) : (o > r && (o = r), (s = r - o)), e.setAttribute("listIndent", s, t), (i = !0);
                                            } else (o = null), (n = t.getAttribute("listIndent") + 1);
                                            t = t.nextSibling;
                                        }
                                    }
                                    function a(t) {
                                        let n = [],
                                            o = null;
                                        for (; t && t.is("element", "listItem"); ) {
                                            const r = t.getAttribute("listIndent");
                                            if ((o && o.getAttribute("listIndent") > r && (n = n.slice(0, r + 1)), 0 != r))
                                                if (n[r]) {
                                                    const o = n[r];
                                                    t.getAttribute("listType") != o && (e.setAttribute("listType", o, t), (i = !0));
                                                } else n[r] = t.getAttribute("listType");
                                            (o = t), (t = t.nextSibling);
                                        }
                                    }
                                })(t.model, e)
                            ),
                                n.mapper.registerViewToModelLength("li", Lw),
                                e.mapper.registerViewToModelLength("li", Lw),
                                n.mapper.on("modelToViewPosition", Tw(n.view)),
                                n.mapper.on(
                                    "viewToModelPosition",
                                    ((o = t.model),
                                    (t, e) => {
                                        const n = e.viewPosition,
                                            i = n.parent,
                                            r = e.mapper;
                                        if ("ul" == i.name || "ol" == i.name) {
                                            if (n.isAtEnd) {
                                                const t = r.toModelElement(n.nodeBefore),
                                                    i = r.getModelLength(n.nodeBefore);
                                                e.modelPosition = o.createPositionBefore(t).getShiftedBy(i);
                                            } else {
                                                const t = r.toModelElement(n.nodeAfter);
                                                e.modelPosition = o.createPositionBefore(t);
                                            }
                                            t.stop();
                                        } else if ("li" == i.name && n.nodeBefore && ("ul" == n.nodeBefore.name || "ol" == n.nodeBefore.name)) {
                                            const s = r.toModelElement(i);
                                            let a = 1,
                                                c = n.nodeBefore;
                                            for (; c && Pw(c); ) (a += r.getModelLength(c)), (c = c.previousSibling);
                                            (e.modelPosition = o.createPositionBefore(s).getShiftedBy(a)), t.stop();
                                        }
                                    })
                                ),
                                e.mapper.on("modelToViewPosition", Tw(n.view)),
                                t.conversion.for("editingDowncast").add((e) => {
                                    e.on("insert", xw, { priority: "high" }),
                                        e.on("insert:listItem", Cw(t.model)),
                                        e.on("attribute:listType:listItem", vw, { priority: "high" }),
                                        e.on("attribute:listType:listItem", yw, { priority: "low" }),
                                        e.on(
                                            "attribute:listIndent:listItem",
                                            (function (t) {
                                                return (e, n, o) => {
                                                    if (!o.consumable.consume(n.item, "attribute:listIndent")) return;
                                                    const i = o.mapper.toViewElement(n.item),
                                                        r = o.writer;
                                                    r.breakContainer(r.createPositionBefore(i)), r.breakContainer(r.createPositionAfter(i));
                                                    const s = i.parent,
                                                        a = s.previousSibling,
                                                        c = r.createRangeOn(s);
                                                    r.remove(c), a && a.nextSibling && kw(r, a, a.nextSibling), Bw(n.attributeOldValue + 1, n.range.start, c.start, i, o, t), fw(n.item, i, o, t);
                                                    for (const t of n.item.getChildren()) o.consumable.consume(t, "insert");
                                                };
                                            })(t.model)
                                        ),
                                        e.on(
                                            "remove:listItem",
                                            (function (t) {
                                                return (e, n, o) => {
                                                    const i = o.mapper.toViewPosition(n.position).getLastMatchingPosition((t) => !t.item.is("element", "li")).nodeAfter,
                                                        r = o.writer;
                                                    r.breakContainer(r.createPositionBefore(i)), r.breakContainer(r.createPositionAfter(i));
                                                    const s = i.parent,
                                                        a = s.previousSibling,
                                                        c = r.createRangeOn(s),
                                                        l = r.remove(c);
                                                    a && a.nextSibling && kw(r, a, a.nextSibling), Bw(o.mapper.toModelElement(i).getAttribute("listIndent") + 1, n.position, c.start, i, o, t);
                                                    for (const t of r.createRangeIn(l).getItems()) o.mapper.unbindViewElement(t);
                                                    e.stop();
                                                };
                                            })(t.model)
                                        ),
                                        e.on("remove", Ew, { priority: "low" });
                                }),
                                t.conversion.for("dataDowncast").add((e) => {
                                    e.on("insert", xw, { priority: "high" }), e.on("insert:listItem", Cw(t.model));
                                }),
                                t.conversion.for("upcast").add((t) => {
                                    t.on("element:ul", Iw, { priority: "high" }), t.on("element:ol", Iw, { priority: "high" }), t.on("element:li", Mw, { priority: "high" }), t.on("element:li", Dw);
                                }),
                                t.model.on("insertContent", Sw, { priority: "high" }),
                                t.commands.add("numberedList", new hw(t, "numbered")),
                                t.commands.add("bulletedList", new hw(t, "bulleted")),
                                t.commands.add("indentList", new mw(t, "forward")),
                                t.commands.add("outdentList", new mw(t, "backward"));
                            const i = n.view.document;
                            this.listenTo(
                                i,
                                "enter",
                                (t, e) => {
                                    const n = this.editor.model.document,
                                        o = n.selection.getLastPosition().parent;
                                    n.selection.isCollapsed && "listItem" == o.name && o.isEmpty && (this.editor.execute("outdentList"), e.preventDefault(), t.stop());
                                },
                                { context: "li" }
                            ),
                                this.listenTo(
                                    i,
                                    "delete",
                                    (t, e) => {
                                        if ("backward" !== e.direction) return;
                                        const n = this.editor.model.document.selection;
                                        if (!n.isCollapsed) return;
                                        const o = n.getFirstPosition();
                                        if (!o.isAtStart) return;
                                        const i = o.parent;
                                        if ("listItem" !== i.name) return;
                                        (i.previousSibling && "listItem" === i.previousSibling.name) || (this.editor.execute("outdentList"), e.preventDefault(), t.stop());
                                    },
                                    { context: "li" }
                                ),
                                this.listenTo(
                                    t.editing.view.document,
                                    "tab",
                                    (e, n) => {
                                        const o = n.shiftKey ? "outdentList" : "indentList";
                                        this.editor.commands.get(o).isEnabled && (t.execute(o), n.stopPropagation(), n.preventDefault(), e.stop());
                                    },
                                    { context: "li" }
                                );
                        }
                        afterInit() {
                            const t = this.editor.commands,
                                e = t.get("indent"),
                                n = t.get("outdent");
                            e && e.registerChildCommand(t.get("indentList")), n && n.registerChildCommand(t.get("outdentList"));
                        }
                    }
                    function Lw(t) {
                        let e = 1;
                        for (const n of t.getChildren()) if ("ul" == n.name || "ol" == n.name) for (const t of n.getChildren()) e += Lw(t);
                        return e;
                    }
                    class Ow extends V {
                        static get pluginName() {
                            return "ListUI";
                        }
                        init() {
                            const t = this.editor.t;
                            _w(
                                this.editor,
                                "numberedList",
                                t("Numbered List"),
                                '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M7 5.75c0 .414.336.75.75.75h9.5a.75.75 0 1 0 0-1.5h-9.5a.75.75 0 0 0-.75.75zM3.5 3v5H2V3.7H1v-1h2.5V3zM.343 17.857l2.59-3.257H2.92a.6.6 0 1 0-1.04 0H.302a2 2 0 1 1 3.995 0h-.001c-.048.405-.16.734-.333.988-.175.254-.59.692-1.244 1.312H4.3v1h-4l.043-.043zM7 14.75a.75.75 0 0 1 .75-.75h9.5a.75.75 0 1 1 0 1.5h-9.5a.75.75 0 0 1-.75-.75z"/></svg>'
                            ),
                                _w(
                                    this.editor,
                                    "bulletedList",
                                    t("Bulleted List"),
                                    '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M7 5.75c0 .414.336.75.75.75h9.5a.75.75 0 1 0 0-1.5h-9.5a.75.75 0 0 0-.75.75zm-6 0C1 4.784 1.777 4 2.75 4c.966 0 1.75.777 1.75 1.75 0 .966-.777 1.75-1.75 1.75C1.784 7.5 1 6.723 1 5.75zm6 9c0 .414.336.75.75.75h9.5a.75.75 0 1 0 0-1.5h-9.5a.75.75 0 0 0-.75.75zm-6 0c0-.966.777-1.75 1.75-1.75.966 0 1.75.777 1.75 1.75 0 .966-.777 1.75-1.75 1.75-.966 0-1.75-.777-1.75-1.75z"/></svg>'
                                );
                        }
                    }
                    function Rw(t, e) {
                        return (t) => {
                            t.on("attribute:url:media", n);
                        };
                        function n(n, o, i) {
                            if (!i.consumable.consume(o.item, n.name)) return;
                            const r = o.attributeNewValue,
                                s = i.writer,
                                a = i.mapper.toViewElement(o.item),
                                c = [...a.getChildren()].find((t) => t.getCustomProperty("media-content"));
                            s.remove(c);
                            const l = t.getMediaViewElement(s, r, e);
                            s.insert(s.createPositionAt(a, 0), l);
                        }
                    }
                    function jw(t, e, n, o) {
                        return t.createContainerElement("figure", { class: "media" }, [e.getMediaViewElement(t, n, o), t.createSlot()]);
                    }
                    function Fw(t) {
                        const e = t.getSelectedElement();
                        return e && e.is("element", "media") ? e : null;
                    }
                    function Vw(t, e, n, o) {
                        t.change((i) => {
                            const r = i.createElement("media", { url: e });
                            t.insertObject(r, n, null, { setSelection: "on", findOptimalPosition: o });
                        });
                    }
                    class Hw extends U {
                        refresh() {
                            const t = this.editor.model,
                                e = t.document.selection,
                                n = Fw(e);
                            (this.value = n ? n.getAttribute("url") : null),
                                (this.isEnabled =
                                    (function (t) {
                                        const e = t.getSelectedElement();
                                        return !!e && "media" === e.name;
                                    })(e) ||
                                    (function (t, e) {
                                        let n = rm(t, e).start.parent;
                                        n.isEmpty && !e.schema.isLimit(n) && (n = n.parent);
                                        return e.schema.checkChild(n, "media");
                                    })(e, t));
                        }
                        execute(t) {
                            const e = this.editor.model,
                                n = e.document.selection,
                                o = Fw(n);
                            o
                                ? e.change((e) => {
                                      e.setAttribute("url", t, o);
                                  })
                                : Vw(e, t, n, !0);
                        }
                    }
                    class Uw {
                        constructor(t, e) {
                            const n = e.providers,
                                o = e.extraProviders || [],
                                i = new Set(e.removeProviders),
                                r = n.concat(o).filter((t) => {
                                    const e = t.name;
                                    return e ? !i.has(e) : (l("media-embed-no-provider-name", { provider: t }), !1);
                                });
                            (this.locale = t), (this.providerDefinitions = r);
                        }
                        hasMedia(t) {
                            return !!this._getMedia(t);
                        }
                        getMediaViewElement(t, e, n) {
                            return this._getMedia(e).getViewElement(t, n);
                        }
                        _getMedia(t) {
                            if (!t) return new Ww(this.locale);
                            t = t.trim();
                            for (const e of this.providerDefinitions) {
                                const n = e.html,
                                    o = wo(e.url);
                                for (const e of o) {
                                    const o = this._getUrlMatches(t, e);
                                    if (o) return new Ww(this.locale, t, o, n);
                                }
                            }
                            return null;
                        }
                        _getUrlMatches(t, e) {
                            let n = t.match(e);
                            if (n) return n;
                            let o = t.replace(/^https?:\/\//, "");
                            return (n = o.match(e)), n || ((o = o.replace(/^www\./, "")), (n = o.match(e)), n || null);
                        }
                    }
                    class Ww {
                        constructor(t, e, n, o) {
                            (this.url = this._getValidUrl(e)), (this._locale = t), (this._match = n), (this._previewRenderer = o);
                        }
                        getViewElement(t, e) {
                            const n = {};
                            let o;
                            if (e.renderForEditingView || (e.renderMediaPreview && this.url && this._previewRenderer)) {
                                this.url && (n["data-oembed-url"] = this.url), e.renderForEditingView && (n.class = "ck-media__wrapper");
                                const i = this._getPreviewHtml(e);
                                o = t.createRawElement("div", n, (t, e) => {
                                    e.setContentOf(t, i);
                                });
                            } else this.url && (n.url = this.url), (o = t.createEmptyElement(e.elementName, n));
                            return t.setCustomProperty("media-content", !0, o), o;
                        }
                        _getPreviewHtml(t) {
                            return this._previewRenderer ? this._previewRenderer(this._match) : this.url && t.renderForEditingView ? this._getPlaceholderHtml() : "";
                        }
                        _getPlaceholderHtml() {
                            const t = new Bh(),
                                e = this._locale.t;
                            (t.content =
                                '<svg viewBox="0 0 64 42" xmlns="http://www.w3.org/2000/svg"><path d="M47.426 17V3.713L63.102 0v19.389h-.001l.001.272c0 1.595-2.032 3.43-4.538 4.098-2.506.668-4.538-.083-4.538-1.678 0-1.594 2.032-3.43 4.538-4.098.914-.244 2.032-.565 2.888-.603V4.516L49.076 7.447v9.556A1.014 1.014 0 0 0 49 17h-1.574zM29.5 17h-8.343a7.073 7.073 0 1 0-4.657 4.06v3.781H3.3a2.803 2.803 0 0 1-2.8-2.804V8.63a2.803 2.803 0 0 1 2.8-2.805h4.082L8.58 2.768A1.994 1.994 0 0 1 10.435 1.5h8.985c.773 0 1.477.448 1.805 1.149l1.488 3.177H26.7c1.546 0 2.8 1.256 2.8 2.805V17zm-11.637 0H17.5a1 1 0 0 0-1 1v.05A4.244 4.244 0 1 1 17.863 17zm29.684 2c.97 0 .953-.048.953.889v20.743c0 .953.016.905-.953.905H19.453c-.97 0-.953.048-.953-.905V19.89c0-.937-.016-.889.97-.889h28.077zm-4.701 19.338V22.183H24.154v16.155h18.692zM20.6 21.375v1.616h1.616v-1.616H20.6zm0 3.231v1.616h1.616v-1.616H20.6zm0 3.231v1.616h1.616v-1.616H20.6zm0 3.231v1.616h1.616v-1.616H20.6zm0 3.231v1.616h1.616v-1.616H20.6zm0 3.231v1.616h1.616V37.53H20.6zm24.233-16.155v1.616h1.615v-1.616h-1.615zm0 3.231v1.616h1.615v-1.616h-1.615zm0 3.231v1.616h1.615v-1.616h-1.615zm0 3.231v1.616h1.615v-1.616h-1.615zm0 3.231v1.616h1.615v-1.616h-1.615zm0 3.231v1.616h1.615V37.53h-1.615zM29.485 25.283a.4.4 0 0 1 .593-.35l9.05 4.977a.4.4 0 0 1 0 .701l-9.05 4.978a.4.4 0 0 1-.593-.35v-9.956z"/></svg>'),
                                (t.viewBox = "0 0 64 42");
                            return new Bd({
                                tag: "div",
                                attributes: { class: "ck ck-reset_all ck-media__placeholder" },
                                children: [
                                    { tag: "div", attributes: { class: "ck-media__placeholder__icon" }, children: [t] },
                                    {
                                        tag: "a",
                                        attributes: { class: "ck-media__placeholder__url", target: "_blank", rel: "noopener noreferrer", href: this.url, "data-cke-tooltip-text": e("Open media in new tab") },
                                        children: [{ tag: "span", attributes: { class: "ck-media__placeholder__url__text" }, children: [this.url] }],
                                    },
                                ],
                            }).render().outerHTML;
                        }
                        _getValidUrl(t) {
                            return t ? (t.match(/^https?/) ? t : "https://" + t) : null;
                        }
                    }
                    var qw = n(7442),
                        Gw = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(qw.Z, Gw);
                    qw.Z.locals;
                    class $w extends V {
                        static get pluginName() {
                            return "MediaEmbedEditing";
                        }
                        constructor(t) {
                            super(t),
                                t.config.define("mediaEmbed", {
                                    elementName: "oembed",
                                    providers: [
                                        {
                                            name: "dailymotion",
                                            url: /^dailymotion\.com\/video\/(\w+)/,
                                            html: (t) =>
                                                `<div style="position: relative; padding-bottom: 100%; height: 0; "><iframe src="https://www.dailymotion.com/embed/video/${t[1]}" style="position: absolute; width: 100%; height: 100%; top: 0; left: 0;" frameborder="0" width="480" height="270" allowfullscreen allow="autoplay"></iframe></div>`,
                                        },
                                        {
                                            name: "spotify",
                                            url: [/^open\.spotify\.com\/(artist\/\w+)/, /^open\.spotify\.com\/(album\/\w+)/, /^open\.spotify\.com\/(track\/\w+)/],
                                            html: (t) =>
                                                `<div style="position: relative; padding-bottom: 100%; height: 0; padding-bottom: 126%;"><iframe src="https://open.spotify.com/embed/${t[1]}" style="position: absolute; width: 100%; height: 100%; top: 0; left: 0;" frameborder="0" allowtransparency="true" allow="encrypted-media"></iframe></div>`,
                                        },
                                        {
                                            name: "youtube",
                                            url: [
                                                /^(?:m\.)?youtube\.com\/watch\?v=([\w-]+)(?:&t=(\d+))?/,
                                                /^(?:m\.)?youtube\.com\/v\/([\w-]+)(?:\?t=(\d+))?/,
                                                /^youtube\.com\/embed\/([\w-]+)(?:\?start=(\d+))?/,
                                                /^youtu\.be\/([\w-]+)(?:\?t=(\d+))?/,
                                            ],
                                            html: (t) => {
                                                const e = t[1],
                                                    n = t[2];
                                                return `<div style="position: relative; padding-bottom: 100%; height: 0; padding-bottom: 56.2493%;"><iframe src="https://www.youtube.com/embed/${e}${
                                                    n ? `?start=${n}` : ""
                                                }" style="position: absolute; width: 100%; height: 100%; top: 0; left: 0;" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div>`;
                                            },
                                        },
                                        {
                                            name: "vimeo",
                                            url: [
                                                /^vimeo\.com\/(\d+)/,
                                                /^vimeo\.com\/[^/]+\/[^/]+\/video\/(\d+)/,
                                                /^vimeo\.com\/album\/[^/]+\/video\/(\d+)/,
                                                /^vimeo\.com\/channels\/[^/]+\/(\d+)/,
                                                /^vimeo\.com\/groups\/[^/]+\/videos\/(\d+)/,
                                                /^vimeo\.com\/ondemand\/[^/]+\/(\d+)/,
                                                /^player\.vimeo\.com\/video\/(\d+)/,
                                            ],
                                            html: (t) =>
                                                `<div style="position: relative; padding-bottom: 100%; height: 0; padding-bottom: 56.2493%;"><iframe src="https://player.vimeo.com/video/${t[1]}" style="position: absolute; width: 100%; height: 100%; top: 0; left: 0;" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>`,
                                        },
                                        { name: "instagram", url: /^instagram\.com\/p\/(\w+)/ },
                                        { name: "twitter", url: /^twitter\.com/ },
                                        { name: "googleMaps", url: [/^google\.com\/maps/, /^goo\.gl\/maps/, /^maps\.google\.com/, /^maps\.app\.goo\.gl/] },
                                        { name: "flickr", url: /^flickr\.com/ },
                                        { name: "facebook", url: /^facebook\.com/ },
                                    ],
                                }),
                                (this.registry = new Uw(t.locale, t.config.get("mediaEmbed")));
                        }
                        init() {
                            const t = this.editor,
                                e = t.model.schema,
                                n = t.t,
                                o = t.conversion,
                                i = t.config.get("mediaEmbed.previewsInData"),
                                r = t.config.get("mediaEmbed.elementName"),
                                s = this.registry;
                            t.commands.add("mediaEmbed", new Hw(t)),
                                e.register("media", { inheritAllFrom: "$blockObject", allowAttributes: ["url"] }),
                                o.for("dataDowncast").elementToStructure({
                                    model: "media",
                                    view: (t, { writer: e }) => {
                                        const n = t.getAttribute("url");
                                        return jw(e, s, n, { elementName: r, renderMediaPreview: n && i });
                                    },
                                }),
                                o.for("dataDowncast").add(Rw(s, { elementName: r, renderMediaPreview: i })),
                                o.for("editingDowncast").elementToStructure({
                                    model: "media",
                                    view: (t, { writer: e }) => {
                                        const o = t.getAttribute("url");
                                        return (function (t, e, n) {
                                            return e.setCustomProperty("media", !0, t), Xg(t, e, { label: n });
                                        })(jw(e, s, o, { elementName: r, renderForEditingView: !0 }), e, n("media widget"));
                                    },
                                }),
                                o.for("editingDowncast").add(Rw(s, { elementName: r, renderForEditingView: !0 })),
                                o
                                    .for("upcast")
                                    .elementToElement({
                                        view: (t) => (["oembed", r].includes(t.name) && t.getAttribute("url") ? { name: !0 } : null),
                                        model: (t, { writer: e }) => {
                                            const n = t.getAttribute("url");
                                            if (s.hasMedia(n)) return e.createElement("media", { url: n });
                                        },
                                    })
                                    .elementToElement({
                                        view: { name: "div", attributes: { "data-oembed-url": !0 } },
                                        model: (t, { writer: e }) => {
                                            const n = t.getAttribute("data-oembed-url");
                                            if (s.hasMedia(n)) return e.createElement("media", { url: n });
                                        },
                                    })
                                    .add((t) => {
                                        t.on("element:figure", function (t, e, n) {
                                            if (!n.consumable.consume(e.viewItem, { name: !0, classes: "media" })) return;
                                            const { modelRange: o, modelCursor: i } = n.convertChildren(e.viewItem, e.modelCursor);
                                            (e.modelRange = o), (e.modelCursor = i);
                                            wa(o.getItems()) || n.consumable.revert(e.viewItem, { name: !0, classes: "media" });
                                        });
                                    });
                        }
                    }
                    const Yw = /^(?:http(s)?:\/\/)?[\w-]+\.[\w-.~:/?#[\]@!$&'()*+,;=%]+$/;
                    class Kw extends V {
                        static get requires() {
                            return [Pm, qg, xp];
                        }
                        static get pluginName() {
                            return "AutoMediaEmbed";
                        }
                        constructor(t) {
                            super(t), (this._timeoutId = null), (this._positionToInsert = null);
                        }
                        init() {
                            const t = this.editor,
                                e = t.model.document;
                            this.listenTo(t.plugins.get("ClipboardPipeline"), "inputTransformation", () => {
                                const t = e.selection.getFirstRange(),
                                    n = ld.fromPosition(t.start);
                                n.stickiness = "toPrevious";
                                const o = ld.fromPosition(t.end);
                                (o.stickiness = "toNext"),
                                    e.once(
                                        "change:data",
                                        () => {
                                            this._embedMediaBetweenPositions(n, o), n.detach(), o.detach();
                                        },
                                        { priority: "high" }
                                    );
                            }),
                                t.commands.get("undo").on(
                                    "execute",
                                    () => {
                                        this._timeoutId && (Ao.window.clearTimeout(this._timeoutId), this._positionToInsert.detach(), (this._timeoutId = null), (this._positionToInsert = null));
                                    },
                                    { priority: "high" }
                                );
                        }
                        _embedMediaBetweenPositions(t, e) {
                            const n = this.editor,
                                o = n.plugins.get($w).registry,
                                i = new hc(t, e),
                                r = i.getWalker({ ignoreElementEnd: !0 });
                            let s = "";
                            for (const t of r) t.item.is("$textProxy") && (s += t.item.data);
                            if (((s = s.trim()), !s.match(Yw))) return void i.detach();
                            if (!o.hasMedia(s)) return void i.detach();
                            n.commands.get("mediaEmbed").isEnabled
                                ? ((this._positionToInsert = ld.fromPosition(t)),
                                  (this._timeoutId = Ao.window.setTimeout(() => {
                                      n.model.change((t) => {
                                          let e;
                                          (this._timeoutId = null),
                                              t.remove(i),
                                              i.detach(),
                                              "$graveyard" !== this._positionToInsert.root.rootName && (e = this._positionToInsert),
                                              Vw(n.model, s, e, !1),
                                              this._positionToInsert.detach(),
                                              (this._positionToInsert = null);
                                      }),
                                          n.plugins.get("Delete").requestUndoOnBackspace();
                                  }, 100)))
                                : i.detach();
                        }
                    }
                    var Qw = n(9292),
                        Zw = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(Qw.Z, Zw);
                    Qw.Z.locals;
                    class Jw extends eh {
                        constructor(t, e) {
                            super(e);
                            const n = e.t;
                            (this.focusTracker = new _a()),
                                (this.keystrokes = new Aa()),
                                this.set("mediaURLInputValue", ""),
                                (this.urlInputView = this._createUrlInput()),
                                (this.saveButtonView = this._createButton(n("Save"), Eh.check, "ck-button-save")),
                                (this.saveButtonView.type = "submit"),
                                this.saveButtonView.bind("isEnabled").to(this, "mediaURLInputValue", (t) => !!t),
                                (this.cancelButtonView = this._createButton(n("Cancel"), Eh.cancel, "ck-button-cancel", "cancel")),
                                (this._focusables = new Nd()),
                                (this._focusCycler = new Zh({ focusables: this._focusables, focusTracker: this.focusTracker, keystrokeHandler: this.keystrokes, actions: { focusPrevious: "shift + tab", focusNext: "tab" } })),
                                (this._validators = t),
                                this.setTemplate({ tag: "form", attributes: { class: ["ck", "ck-media-form", "ck-responsive-form"], tabindex: "-1" }, children: [this.urlInputView, this.saveButtonView, this.cancelButtonView] }),
                                Ih(this);
                        }
                        render() {
                            super.render(), Mh({ view: this });
                            [this.urlInputView, this.saveButtonView, this.cancelButtonView].forEach((t) => {
                                this._focusables.add(t), this.focusTracker.add(t.element);
                            }),
                                this.keystrokes.listenTo(this.element);
                            const t = (t) => t.stopPropagation();
                            this.keystrokes.set("arrowright", t),
                                this.keystrokes.set("arrowleft", t),
                                this.keystrokes.set("arrowup", t),
                                this.keystrokes.set("arrowdown", t),
                                this.listenTo(
                                    this.urlInputView.element,
                                    "selectstart",
                                    (t, e) => {
                                        e.stopPropagation();
                                    },
                                    { priority: "high" }
                                );
                        }
                        destroy() {
                            super.destroy(), this.focusTracker.destroy(), this.keystrokes.destroy();
                        }
                        focus() {
                            this._focusCycler.focusFirst();
                        }
                        get url() {
                            return this.urlInputView.fieldView.element.value.trim();
                        }
                        set url(t) {
                            this.urlInputView.fieldView.element.value = t.trim();
                        }
                        isValid() {
                            this.resetFormStatus();
                            for (const t of this._validators) {
                                const e = t(this);
                                if (e) return (this.urlInputView.errorText = e), !1;
                            }
                            return !0;
                        }
                        resetFormStatus() {
                            (this.urlInputView.errorText = null), (this.urlInputView.infoText = this._urlInputViewInfoDefault);
                        }
                        _createUrlInput() {
                            const t = this.locale.t,
                                e = new Ru(this.locale, ju),
                                n = e.fieldView;
                            return (
                                (this._urlInputViewInfoDefault = t("Paste the media URL in the input.")),
                                (this._urlInputViewInfoTip = t("Tip: Paste the URL into the content to embed faster.")),
                                (e.label = t("Media URL")),
                                (e.infoText = this._urlInputViewInfoDefault),
                                n.on("input", () => {
                                    (e.infoText = n.element.value ? this._urlInputViewInfoTip : this._urlInputViewInfoDefault), (this.mediaURLInputValue = n.element.value.trim());
                                }),
                                e
                            );
                        }
                        _createButton(t, e, n, o) {
                            const i = new Lh(this.locale);
                            return i.set({ label: t, icon: e, tooltip: !0 }), i.extendTemplate({ attributes: { class: n } }), o && i.delegate("execute").to(this, o), i;
                        }
                    }
                    class Xw extends V {
                        static get requires() {
                            return [$w];
                        }
                        static get pluginName() {
                            return "MediaEmbedUI";
                        }
                        init() {
                            const t = this.editor,
                                e = t.commands.get("mediaEmbed"),
                                n = t.plugins.get($w).registry;
                            t.ui.componentFactory.add("mediaEmbed", (o) => {
                                const i = ku(o),
                                    r = new Jw(
                                        (function (t, e) {
                                            return [
                                                (e) => {
                                                    if (!e.url.length) return t("The URL must not be empty.");
                                                },
                                                (n) => {
                                                    if (!e.hasMedia(n.url)) return t("This media URL is not supported.");
                                                },
                                            ];
                                        })(t.t, n),
                                        t.locale
                                    );
                                return this._setUpDropdown(i, r, e, t), this._setUpForm(i, r, e), i;
                            });
                        }
                        _setUpDropdown(t, e, n) {
                            const o = this.editor,
                                i = o.t,
                                r = t.buttonView;
                            function s() {
                                o.editing.view.focus(), (t.isOpen = !1);
                            }
                            t.bind("isEnabled").to(n),
                                t.panelView.children.add(e),
                                r.set({
                                    label: i("Insert media"),
                                    icon:
                                        '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M18.68 3.03c.6 0 .59-.03.59.55v12.84c0 .59.01.56-.59.56H1.29c-.6 0-.59.03-.59-.56V3.58c0-.58-.01-.55.6-.55h17.38zM15.77 15V5H4.2v10h11.57zM2 4v1h1V4H2zm0 2v1h1V6H2zm0 2v1h1V8H2zm0 2v1h1v-1H2zm0 2v1h1v-1H2zm0 2v1h1v-1H2zM17 4v1h1V4h-1zm0 2v1h1V6h-1zm0 2v1h1V8h-1zm0 2v1h1v-1h-1zm0 2v1h1v-1h-1zm0 2v1h1v-1h-1zM7.5 7.177a.4.4 0 0 1 .593-.351l5.133 2.824a.4.4 0 0 1 0 .7l-5.133 2.824a.4.4 0 0 1-.593-.35V7.176v.001z"/></svg>',
                                    tooltip: !0,
                                }),
                                r.on(
                                    "open",
                                    () => {
                                        e.disableCssTransitions(), (e.url = n.value || ""), e.urlInputView.fieldView.select(), e.enableCssTransitions();
                                    },
                                    { priority: "low" }
                                ),
                                t.on("submit", () => {
                                    e.isValid() && (o.execute("mediaEmbed", e.url), s());
                                }),
                                t.on("change:isOpen", () => e.resetFormStatus()),
                                t.on("cancel", () => s());
                        }
                        _setUpForm(t, e, n) {
                            e.delegate("submit", "cancel").to(t), e.urlInputView.bind("value").to(n, "value"), e.urlInputView.bind("isReadOnly").to(n, "isEnabled", (t) => !t);
                        }
                    }
                    var t_ = n(4652),
                        e_ = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(t_.Z, e_);
                    t_.Z.locals;
                    function n_(t, e) {
                        if (!t.childCount) return;
                        const n = new vg(t.document),
                            o = (function (t, e) {
                                const n = e.createRangeIn(t),
                                    o = new zo({ name: /^p|h\d+$/, styles: { "mso-list": /.*/ } }),
                                    i = [];
                                for (const t of n)
                                    if ("elementStart" === t.type && o.match(t.item)) {
                                        const e = r_(t.item);
                                        i.push({ element: t.item, id: e.id, order: e.order, indent: e.indent });
                                    }
                                return i;
                            })(t, n);
                        if (!o.length) return;
                        let i = null,
                            r = 1;
                        o.forEach((t, s) => {
                            const a = (function (t, e) {
                                    if (!t) return !0;
                                    if (t.id !== e.id) return e.indent - t.indent != 1;
                                    const n = e.element.previousSibling;
                                    if (!n) return !0;
                                    return (o = n), !(o.is("element", "ol") || o.is("element", "ul"));
                                    var o;
                                })(o[s - 1], t),
                                c = a ? null : o[s - 1],
                                l = ((h = t), (d = c) ? h.indent - d.indent : h.indent - 1);
                            var d, h;
                            if ((a && ((i = null), (r = 1)), !i || 0 !== l)) {
                                const o = (function (t, e) {
                                    const n = new RegExp(`@list l${t.id}:level${t.indent}\\s*({[^}]*)`, "gi"),
                                        o = /mso-level-number-format:([^;]{0,100});/gi,
                                        i = /mso-level-start-at:\s{0,100}([0-9]{0,10})\s{0,100};/gi,
                                        r = n.exec(e);
                                    let s = "decimal",
                                        a = "ol",
                                        c = null;
                                    if (r && r[1]) {
                                        const e = o.exec(r[1]);
                                        if ((e && e[1] && ((s = e[1].trim()), (a = "bullet" !== s && "image" !== s ? "ol" : "ul")), "bullet" === s)) {
                                            const e = (function (t) {
                                                const e = (function (t) {
                                                    if (t.getChild(0).is("$text")) return null;
                                                    for (const e of t.getChildren()) {
                                                        if (!e.is("element", "span")) continue;
                                                        const t = e.getChild(0);
                                                        return t.is("$text") ? t : t.getChild(0);
                                                    }
                                                })(t);
                                                if (!e) return null;
                                                const n = e._data;
                                                if ("o" === n) return "circle";
                                                if ("·" === n) return "disc";
                                                if ("§" === n) return "square";
                                                return null;
                                            })(t.element);
                                            e && (s = e);
                                        } else {
                                            const t = i.exec(r[1]);
                                            t && t[1] && (c = parseInt(t[1]));
                                        }
                                    }
                                    return { type: a, startIndex: c, style: o_(s) };
                                })(t, e);
                                if (i) {
                                    if (t.indent > r) {
                                        const t = i.getChild(i.childCount - 1),
                                            e = t.getChild(t.childCount - 1);
                                        (i = i_(o, e, n)), (r += 1);
                                    } else if (t.indent < r) {
                                        const e = r - t.indent;
                                        (i = (function (t, e) {
                                            const n = t.getAncestors({ parentFirst: !0 });
                                            let o = null,
                                                i = 0;
                                            for (const t of n)
                                                if ((("ul" !== t.name && "ol" !== t.name) || i++, i === e)) {
                                                    o = t;
                                                    break;
                                                }
                                            return o;
                                        })(i, e)),
                                            (r = parseInt(t.indent));
                                    }
                                } else i = i_(o, t.element, n);
                                t.indent <= r && (i.is("element", o.type) || (i = n.rename(o.type, i)));
                            }
                            const u = (function (t, e) {
                                return (
                                    (function (t, e) {
                                        const n = new zo({ name: "span", styles: { "mso-list": "Ignore" } }),
                                            o = e.createRangeIn(t);
                                        for (const t of o) "elementStart" === t.type && n.match(t.item) && e.remove(t.item);
                                    })(t, e),
                                    e.rename("li", t)
                                );
                            })(t.element, n);
                            n.appendChild(u, i);
                        });
                    }
                    function o_(t) {
                        if (t.startsWith("arabic-leading-zero")) return "decimal-leading-zero";
                        switch (t) {
                            case "alpha-upper":
                                return "upper-alpha";
                            case "alpha-lower":
                                return "lower-alpha";
                            case "roman-upper":
                                return "upper-roman";
                            case "roman-lower":
                                return "lower-roman";
                            case "circle":
                            case "disc":
                            case "square":
                                return t;
                            default:
                                return null;
                        }
                    }
                    function i_(t, e, n) {
                        const o = e.parent,
                            i = n.createElement(t.type),
                            r = o.getChildIndex(e) + 1;
                        return n.insertChild(r, i, o), t.style && n.setStyle("list-style-type", t.style, i), t.startIndex && t.startIndex > 1 && n.setAttribute("start", t.startIndex, i), i;
                    }
                    function r_(t) {
                        const e = {},
                            n = t.getStyle("mso-list");
                        if (n) {
                            const t = n.match(/(^|\s{1,100})l(\d+)/i),
                                o = n.match(/\s{0,100}lfo(\d+)/i),
                                i = n.match(/\s{0,100}level(\d+)/i);
                            t && o && i && ((e.id = t[2]), (e.order = o[1]), (e.indent = i[1]));
                        }
                        return e;
                    }
                    const s_ = /id=("|')docs-internal-guid-[-0-9a-f]+("|')/i;
                    class a_ {
                        constructor(t) {
                            this.document = t;
                        }
                        isActive(t) {
                            return s_.test(t);
                        }
                        execute(t) {
                            const e = new vg(this.document),
                                { body: n } = t._parsedData;
                            !(function (t, e) {
                                for (const n of t.getChildren())
                                    if (n.is("element", "b") && "normal" === n.getStyle("font-weight")) {
                                        const o = t.getChildIndex(n);
                                        e.remove(n), e.insertChild(o, n.getChildren(), t);
                                    }
                            })(n, e),
                                (function (t, e) {
                                    for (const n of e.createRangeIn(t)) {
                                        const t = n.item;
                                        if (t.is("element", "li")) {
                                            const n = t.getChild(0);
                                            n && n.is("element", "p") && e.unwrapElement(n);
                                        }
                                    }
                                })(n, e),
                                (t.content = n);
                        }
                    }
                    function c_(t, e) {
                        if (!t.childCount) return;
                        const n = new vg(),
                            o = (function (t, e) {
                                const n = e.createRangeIn(t),
                                    o = new zo({ name: /v:(.+)/ }),
                                    i = [];
                                for (const t of n) {
                                    if ("elementStart" != t.type) continue;
                                    const e = t.item,
                                        n = (e.previousSibling && e.previousSibling.name) || null;
                                    o.match(e) && e.getAttribute("o:gfxdata") && "v:shapetype" !== n && i.push(t.item.getAttribute("id"));
                                }
                                return i;
                            })(t, n);
                        !(function (t, e, n) {
                            const o = n.createRangeIn(e),
                                i = new zo({ name: "img" }),
                                r = [];
                            for (const e of o)
                                if (i.match(e.item)) {
                                    const n = e.item,
                                        o = n.getAttribute("v:shapes") ? n.getAttribute("v:shapes").split(" ") : [];
                                    o.length && o.every((e) => t.indexOf(e) > -1) ? r.push(n) : n.getAttribute("src") || r.push(n);
                                }
                            for (const t of r) n.remove(t);
                        })(o, t, n),
                            (function (t, e) {
                                const n = e.createRangeIn(t),
                                    o = new zo({ name: /v:(.+)/ }),
                                    i = [];
                                for (const t of n) "elementStart" == t.type && o.match(t.item) && i.push(t.item);
                                for (const t of i) e.remove(t);
                            })(t, n);
                        const i = (function (t, e) {
                            const n = e.createRangeIn(t),
                                o = new zo({ name: "img" }),
                                i = [];
                            for (const t of n) o.match(t.item) && t.item.getAttribute("src").startsWith("file://") && i.push(t.item);
                            return i;
                        })(t, n);
                        i.length &&
                            (function (t, e, n) {
                                if (t.length === e.length)
                                    for (let o = 0; o < t.length; o++) {
                                        const i = `data:${e[o].type};base64,${l_(e[o].hex)}`;
                                        n.setAttribute("src", i, t[o]);
                                    }
                            })(
                                i,
                                (function (t) {
                                    if (!t) return [];
                                    const e = /{\\pict[\s\S]+?\\bliptag-?\d+(\\blipupi-?\d+)?({\\\*\\blipuid\s?[\da-fA-F]+)?[\s}]*?/,
                                        n = new RegExp("(?:(" + e.source + "))([\\da-fA-F\\s]+)\\}", "g"),
                                        o = t.match(n),
                                        i = [];
                                    if (o)
                                        for (const t of o) {
                                            let n = !1;
                                            t.includes("\\pngblip") ? (n = "image/png") : t.includes("\\jpegblip") && (n = "image/jpeg"), n && i.push({ hex: t.replace(e, "").replace(/[^\da-fA-F]/g, ""), type: n });
                                        }
                                    return i;
                                })(e),
                                n
                            );
                    }
                    function l_(t) {
                        return btoa(
                            t
                                .match(/\w{2}/g)
                                .map((t) => String.fromCharCode(parseInt(t, 16)))
                                .join("")
                        );
                    }
                    const d_ = /<meta\s*name="?generator"?\s*content="?microsoft\s*word\s*\d+"?\/?>/i,
                        h_ = /xmlns:o="urn:schemas-microsoft-com/i;
                    class u_ {
                        constructor(t) {
                            this.document = t;
                        }
                        isActive(t) {
                            return d_.test(t) || h_.test(t);
                        }
                        execute(t) {
                            const { body: e, stylesString: n } = t._parsedData;
                            n_(e, n), c_(e, t.dataTransfer.getData("text/rtf")), (t.content = e);
                        }
                    }
                    function g_(t) {
                        return t.replace(/<span(?: class="Apple-converted-space"|)>(\s+)<\/span>/g, (t, e) =>
                            1 === e.length
                                ? " "
                                : Array(e.length + 1)
                                      .join("  ")
                                      .substr(0, e.length)
                        );
                    }
                    function m_(t, e) {
                        const n = new DOMParser(),
                            o = (function (t) {
                                return g_(g_(t))
                                    .replace(/(<span\s+style=['"]mso-spacerun:yes['"]>[^\S\r\n]*?)[\r\n]+([^\S\r\n]*<\/span>)/g, "$1$2")
                                    .replace(/<span\s+style=['"]mso-spacerun:yes['"]><\/span>/g, "")
                                    .replace(/ <\//g, " </")
                                    .replace(/ <o:p><\/o:p>/g, " <o:p></o:p>")
                                    .replace(/<o:p>(&nbsp;|\u00A0)<\/o:p>/g, "")
                                    .replace(/>([^\S\r\n]*[\r\n]\s*)</g, "><");
                            })(
                                (function (t) {
                                    const e = "</body>",
                                        n = "</html>",
                                        o = t.indexOf(e);
                                    if (o < 0) return t;
                                    const i = t.indexOf(n, o + e.length);
                                    return t.substring(0, o + e.length) + (i >= 0 ? t.substring(i) : "");
                                })((t = t.replace(/<!--\[if gte vml 1]>/g, "")))
                            ),
                            i = n.parseFromString(o, "text/html");
                        !(function (t) {
                            t.querySelectorAll("span[style*=spacerun]").forEach((t) => {
                                const e = t.innerText.length || 0;
                                t.innerText = Array(e + 1)
                                    .join("  ")
                                    .substr(0, e);
                            });
                        })(i);
                        const r = i.body.innerHTML,
                            s = (function (t, e) {
                                const n = new er(e),
                                    o = new ms(n, { renderingMode: "data" }),
                                    i = t.createDocumentFragment(),
                                    r = t.body.childNodes;
                                for (; r.length > 0; ) i.appendChild(r[0]);
                                return o.domToView(i, { skipComments: !0 });
                            })(i, e),
                            a = (function (t) {
                                const e = [],
                                    n = [],
                                    o = Array.from(t.getElementsByTagName("style"));
                                for (const t of o) t.sheet && t.sheet.cssRules && t.sheet.cssRules.length && (e.push(t.sheet), n.push(t.innerHTML));
                                return { styles: e, stylesString: n.join(" ") };
                            })(i);
                        return { body: s, bodyString: r, styles: a.styles, stylesString: a.stylesString };
                    }
                    function p_(t, e, n, o, i = 1) {
                        e > i ? o.setAttribute(t, e, n) : o.removeAttribute(t, n);
                    }
                    function f_(t, e, n = {}) {
                        const o = t.createElement("tableCell", n);
                        return t.insertElement("paragraph", o), t.insert(o, e), o;
                    }
                    function k_(t, e) {
                        const n = e.parent.parent,
                            o = parseInt(n.getAttribute("headingColumns") || 0),
                            { column: i } = t.getCellLocation(e);
                        return !!o && i < o;
                    }
                    function b_() {
                        return (t) => {
                            t.on("element:table", (t, e, n) => {
                                const o = e.viewItem;
                                if (!n.consumable.test(o, { name: !0 })) return;
                                const { rows: i, headingRows: r, headingColumns: s } = (function (t) {
                                        const e = { headingRows: 0, headingColumns: 0 },
                                            n = [],
                                            o = [];
                                        let i;
                                        for (const r of Array.from(t.getChildren()))
                                            if ("tbody" === r.name || "thead" === r.name || "tfoot" === r.name) {
                                                "thead" !== r.name || i || (i = r);
                                                const t = Array.from(r.getChildren()).filter((t) => t.is("element", "tr"));
                                                for (const r of t)
                                                    if ("thead" === r.parent.name && r.parent === i) e.headingRows++, n.push(r);
                                                    else {
                                                        o.push(r);
                                                        const t = __(r);
                                                        t > e.headingColumns && (e.headingColumns = t);
                                                    }
                                            }
                                        return (e.rows = [...n, ...o]), e;
                                    })(o),
                                    a = {};
                                s && (a.headingColumns = s), r && (a.headingRows = r);
                                const c = n.writer.createElement("table", a);
                                if (n.safeInsert(c, e.modelCursor)) {
                                    if ((n.consumable.consume(o, { name: !0 }), i.forEach((t) => n.convertItem(t, n.writer.createPositionAt(c, "end"))), n.convertChildren(o, n.writer.createPositionAt(c, "end")), c.isEmpty)) {
                                        const t = n.writer.createElement("tableRow");
                                        n.writer.insert(t, n.writer.createPositionAt(c, "end")), f_(n.writer, n.writer.createPositionAt(t, "end"));
                                    }
                                    n.updateConversionResult(c, e);
                                }
                            });
                        };
                    }
                    function w_(t) {
                        return (e) => {
                            e.on(
                                `element:${t}`,
                                (t, e, n) => {
                                    if (e.modelRange && e.viewItem.isEmpty) {
                                        const t = e.modelRange.start.nodeAfter,
                                            o = n.writer.createPositionAt(t, 0);
                                        n.writer.insertElement("paragraph", o);
                                    }
                                },
                                { priority: "low" }
                            );
                        };
                    }
                    function __(t) {
                        let e = 0,
                            n = 0;
                        const o = Array.from(t.getChildren()).filter((t) => "th" === t.name || "td" === t.name);
                        for (; n < o.length && "th" === o[n].name; ) {
                            const t = o[n];
                            (e += parseInt(t.getAttribute("colspan") || 1)), n++;
                        }
                        return e;
                    }
                    class A_ {
                        constructor(t, e = {}) {
                            (this._table = t),
                                (this._startRow = void 0 !== e.row ? e.row : e.startRow || 0),
                                (this._endRow = void 0 !== e.row ? e.row : e.endRow),
                                (this._startColumn = void 0 !== e.column ? e.column : e.startColumn || 0),
                                (this._endColumn = void 0 !== e.column ? e.column : e.endColumn),
                                (this._includeAllSlots = !!e.includeAllSlots),
                                (this._skipRows = new Set()),
                                (this._row = 0),
                                (this._rowIndex = 0),
                                (this._column = 0),
                                (this._cellIndex = 0),
                                (this._spannedCells = new Map()),
                                (this._nextCellAtColumn = -1);
                        }
                        [Symbol.iterator]() {
                            return this;
                        }
                        next() {
                            const t = this._table.getChild(this._rowIndex);
                            if (!t || this._isOverEndRow()) return { done: !0 };
                            if (!t.is("element", "tableRow")) return this._rowIndex++, this.next();
                            if (this._isOverEndColumn()) return this._advanceToNextRow();
                            let e = null;
                            const n = this._getSpanned();
                            if (n) this._includeAllSlots && !this._shouldSkipSlot() && (e = this._formatOutValue(n.cell, n.row, n.column));
                            else {
                                const n = t.getChild(this._cellIndex);
                                if (!n) return this._advanceToNextRow();
                                const o = parseInt(n.getAttribute("colspan") || 1),
                                    i = parseInt(n.getAttribute("rowspan") || 1);
                                (o > 1 || i > 1) && this._recordSpans(n, i, o), this._shouldSkipSlot() || (e = this._formatOutValue(n)), (this._nextCellAtColumn = this._column + o);
                            }
                            return this._column++, this._column == this._nextCellAtColumn && this._cellIndex++, e || this.next();
                        }
                        skipRow(t) {
                            this._skipRows.add(t);
                        }
                        _advanceToNextRow() {
                            return this._row++, this._rowIndex++, (this._column = 0), (this._cellIndex = 0), (this._nextCellAtColumn = -1), this.next();
                        }
                        _isOverEndRow() {
                            return void 0 !== this._endRow && this._row > this._endRow;
                        }
                        _isOverEndColumn() {
                            return void 0 !== this._endColumn && this._column > this._endColumn;
                        }
                        _formatOutValue(t, e = this._row, n = this._column) {
                            return { done: !1, value: new C_(this, t, e, n) };
                        }
                        _shouldSkipSlot() {
                            const t = this._skipRows.has(this._row),
                                e = this._row < this._startRow,
                                n = this._column < this._startColumn,
                                o = void 0 !== this._endColumn && this._column > this._endColumn;
                            return t || e || n || o;
                        }
                        _getSpanned() {
                            const t = this._spannedCells.get(this._row);
                            return (t && t.get(this._column)) || null;
                        }
                        _recordSpans(t, e, n) {
                            const o = { cell: t, row: this._row, column: this._column };
                            for (let t = this._row; t < this._row + e; t++) for (let e = this._column; e < this._column + n; e++) (t == this._row && e == this._column) || this._markSpannedCell(t, e, o);
                        }
                        _markSpannedCell(t, e, n) {
                            this._spannedCells.has(t) || this._spannedCells.set(t, new Map());
                            this._spannedCells.get(t).set(e, n);
                        }
                    }
                    class C_ {
                        constructor(t, e, n, o) {
                            (this.cell = e), (this.row = t._row), (this.column = t._column), (this.cellAnchorRow = n), (this.cellAnchorColumn = o), (this._cellIndex = t._cellIndex), (this._rowIndex = t._rowIndex), (this._table = t._table);
                        }
                        get isAnchor() {
                            return this.row === this.cellAnchorRow && this.column === this.cellAnchorColumn;
                        }
                        get cellWidth() {
                            return parseInt(this.cell.getAttribute("colspan") || 1);
                        }
                        get cellHeight() {
                            return parseInt(this.cell.getAttribute("rowspan") || 1);
                        }
                        get rowIndex() {
                            return this._rowIndex;
                        }
                        getPositionBefore() {
                            return this._table.root.document.model.createPositionAt(this._table.getChild(this.row), this._cellIndex);
                        }
                    }
                    function v_(t, e = {}) {
                        return (n, { writer: o }) => {
                            const i = n.getAttribute("headingRows") || 0,
                                r = [];
                            i > 0 &&
                                r.push(
                                    o.createContainerElement(
                                        "thead",
                                        null,
                                        o.createSlot((t) => t.is("element", "tableRow") && t.index < i)
                                    )
                                ),
                                i < t.getRows(n) &&
                                    r.push(
                                        o.createContainerElement(
                                            "tbody",
                                            null,
                                            o.createSlot((t) => t.is("element", "tableRow") && t.index >= i)
                                        )
                                    );
                            const s = o.createContainerElement("figure", { class: "table" }, [o.createContainerElement("table", null, r), o.createSlot((t) => !t.is("element", "tableRow"))]);
                            return e.asWidget
                                ? (function (t, e) {
                                      return e.setCustomProperty("table", !0, t), Xg(t, e, { hasSelectionHandle: !0 });
                                  })(s, o)
                                : s;
                        };
                    }
                    function y_(t = {}) {
                        return (e, { writer: n }) => {
                            const o = e.parent,
                                i = o.parent,
                                r = i.getChildIndex(o),
                                s = new A_(i, { row: r }),
                                a = i.getAttribute("headingRows") || 0,
                                c = i.getAttribute("headingColumns") || 0;
                            for (const o of s)
                                if (o.cell == e) {
                                    const e = o.row < a || o.column < c ? "th" : "td";
                                    return t.asWidget ? im(n.createEditableElement(e), n) : n.createContainerElement(e);
                                }
                        };
                    }
                    function x_(t = {}) {
                        return (e, { writer: n, consumable: o, mapper: i }) => {
                            if (e.parent.is("element", "tableCell") && E_(e))
                                return t.asWidget ? n.createContainerElement("span", { class: "ck-table-bogus-paragraph" }) : (o.consume(e, "insert"), void i.bindElements(e, i.toViewElement(e.parent)));
                        };
                    }
                    function E_(t) {
                        return 1 == t.parent.childCount && ![...t.getAttributeKeys()].length;
                    }
                    class D_ extends U {
                        refresh() {
                            const t = this.editor.model,
                                e = t.document.selection,
                                n = t.schema;
                            this.isEnabled = (function (t, e) {
                                const n = t.getFirstPosition().parent,
                                    o = n === n.root ? n : n.parent;
                                return e.checkChild(o, "table");
                            })(e, n);
                        }
                        execute(t = {}) {
                            const e = this.editor.model,
                                n = this.editor.plugins.get("TableUtils"),
                                o = this.editor.config.get("table"),
                                i = o.defaultHeadings.rows,
                                r = o.defaultHeadings.columns;
                            void 0 === t.headingRows && i && (t.headingRows = i),
                                void 0 === t.headingColumns && r && (t.headingColumns = r),
                                e.change((o) => {
                                    const i = n.createTable(o, t);
                                    e.insertObject(i, null, null, { findOptimalPosition: "auto" }), o.setSelection(o.createPositionAt(i.getNodeByPath([0, 0, 0]), 0));
                                });
                        }
                    }
                    class I_ extends U {
                        constructor(t, e = {}) {
                            super(t), (this.order = e.order || "below");
                        }
                        refresh() {
                            const t = this.editor.model.document.selection,
                                e = !!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(t).length;
                            this.isEnabled = e;
                        }
                        execute() {
                            const t = this.editor,
                                e = t.model.document.selection,
                                n = t.plugins.get("TableUtils"),
                                o = "above" === this.order,
                                i = n.getSelectionAffectedTableCells(e),
                                r = n.getRowIndexes(i),
                                s = o ? r.first : r.last,
                                a = i[0].findAncestor("table");
                            n.insertRows(a, { at: o ? s : s + 1, copyStructureFromAbove: !o });
                        }
                    }
                    class M_ extends U {
                        constructor(t, e = {}) {
                            super(t), (this.order = e.order || "right");
                        }
                        refresh() {
                            const t = this.editor.model.document.selection,
                                e = !!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(t).length;
                            this.isEnabled = e;
                        }
                        execute() {
                            const t = this.editor,
                                e = t.model.document.selection,
                                n = t.plugins.get("TableUtils"),
                                o = "left" === this.order,
                                i = n.getSelectionAffectedTableCells(e),
                                r = n.getColumnIndexes(i),
                                s = o ? r.first : r.last,
                                a = i[0].findAncestor("table");
                            n.insertColumns(a, { columns: 1, at: o ? s : s + 1 });
                        }
                    }
                    class T_ extends U {
                        constructor(t, e = {}) {
                            super(t), (this.direction = e.direction || "horizontally");
                        }
                        refresh() {
                            const t = this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);
                            this.isEnabled = 1 === t.length;
                        }
                        execute() {
                            const t = this.editor.plugins.get("TableUtils"),
                                e = t.getSelectionAffectedTableCells(this.editor.model.document.selection)[0];
                            "horizontally" === this.direction ? t.splitCellHorizontally(e, 2) : t.splitCellVertically(e, 2);
                        }
                    }
                    function S_(t, e, n) {
                        const { startRow: o, startColumn: i, endRow: r, endColumn: s } = e,
                            a = n.createElement("table"),
                            c = r - o + 1;
                        for (let t = 0; t < c; t++) n.insertElement("tableRow", a, "end");
                        const l = [...new A_(t, { startRow: o, endRow: r, startColumn: i, endColumn: s, includeAllSlots: !0 })];
                        for (const { row: t, column: e, cell: c, isAnchor: d, cellAnchorRow: h, cellAnchorColumn: u } of l) {
                            const l = t - o,
                                g = a.getChild(l);
                            if (d) {
                                const o = n.cloneElement(c);
                                n.append(o, g), L_(o, t, e, r, s, n);
                            } else (h < o || u < i) && f_(n, n.createPositionAt(g, "end"));
                        }
                        return (
                            (function (t, e, n, o, i) {
                                const r = parseInt(e.getAttribute("headingRows") || 0);
                                if (r > 0) {
                                    p_("headingRows", r - n, t, i, 0);
                                }
                                const s = parseInt(e.getAttribute("headingColumns") || 0);
                                if (s > 0) {
                                    p_("headingColumns", s - o, t, i, 0);
                                }
                            })(a, t, o, i, n),
                            a
                        );
                    }
                    function N_(t, e, n = 0) {
                        const o = [],
                            i = new A_(t, { startRow: n, endRow: e - 1 });
                        for (const t of i) {
                            const { row: n, cellHeight: i } = t,
                                r = n + i - 1;
                            n < e && e <= r && o.push(t);
                        }
                        return o;
                    }
                    function B_(t, e, n) {
                        const o = t.parent,
                            i = o.parent,
                            r = o.index,
                            s = e - r,
                            a = {},
                            c = parseInt(t.getAttribute("rowspan")) - s;
                        c > 1 && (a.rowspan = c);
                        const l = parseInt(t.getAttribute("colspan") || 1);
                        l > 1 && (a.colspan = l);
                        const d = r + s,
                            h = [...new A_(i, { startRow: r, endRow: d, includeAllSlots: !0 })];
                        let u,
                            g = null;
                        for (const e of h) {
                            const { row: o, column: i, cell: r } = e;
                            r === t && void 0 === u && (u = i), void 0 !== u && u === i && o === d && (g = f_(n, e.getPositionBefore(), a));
                        }
                        return p_("rowspan", s, t, n), g;
                    }
                    function P_(t, e) {
                        const n = [],
                            o = new A_(t);
                        for (const t of o) {
                            const { column: o, cellWidth: i } = t,
                                r = o + i - 1;
                            o < e && e <= r && n.push(t);
                        }
                        return n;
                    }
                    function z_(t, e, n, o) {
                        const i = n - e,
                            r = {},
                            s = parseInt(t.getAttribute("colspan")) - i;
                        s > 1 && (r.colspan = s);
                        const a = parseInt(t.getAttribute("rowspan") || 1);
                        a > 1 && (r.rowspan = a);
                        const c = f_(o, o.createPositionAfter(t), r);
                        return p_("colspan", i, t, o), c;
                    }
                    function L_(t, e, n, o, i, r) {
                        const s = parseInt(t.getAttribute("colspan") || 1),
                            a = parseInt(t.getAttribute("rowspan") || 1);
                        if (n + s - 1 > i) {
                            p_("colspan", i - n + 1, t, r, 1);
                        }
                        if (e + a - 1 > o) {
                            p_("rowspan", o - e + 1, t, r, 1);
                        }
                    }
                    function O_(t, e) {
                        const n = e.getColumns(t),
                            o = new Array(n).fill(0);
                        for (const { column: e } of new A_(t)) o[e]++;
                        const i = o.reduce((t, e, n) => (e ? t : [...t, n]), []);
                        if (i.length > 0) {
                            const n = i[i.length - 1];
                            return e.removeColumns(t, { at: n }), !0;
                        }
                        return !1;
                    }
                    function R_(t, e) {
                        const n = [],
                            o = e.getRows(t);
                        for (let e = 0; e < o; e++) {
                            t.getChild(e).isEmpty && n.push(e);
                        }
                        if (n.length > 0) {
                            const o = n[n.length - 1];
                            return e.removeRows(t, { at: o }), !0;
                        }
                        return !1;
                    }
                    function j_(t, e) {
                        O_(t, e) || R_(t, e);
                    }
                    function F_(t, e) {
                        const n = Array.from(new A_(t, { startColumn: e.firstColumn, endColumn: e.lastColumn, row: e.lastRow }));
                        if (n.every(({ cellHeight: t }) => 1 === t)) return e.lastRow;
                        const o = n[0].cellHeight - 1;
                        return e.lastRow + o;
                    }
                    function V_(t, e) {
                        const n = Array.from(new A_(t, { startRow: e.firstRow, endRow: e.lastRow, column: e.lastColumn }));
                        if (n.every(({ cellWidth: t }) => 1 === t)) return e.lastColumn;
                        const o = n[0].cellWidth - 1;
                        return e.lastColumn + o;
                    }
                    class H_ extends U {
                        constructor(t, e) {
                            super(t), (this.direction = e.direction), (this.isHorizontal = "right" == this.direction || "left" == this.direction);
                        }
                        refresh() {
                            const t = this._getMergeableCell();
                            (this.value = t), (this.isEnabled = !!t);
                        }
                        execute() {
                            const t = this.editor.model,
                                e = t.document,
                                n = this.editor.plugins.get("TableUtils").getTableCellsContainingSelection(e.selection)[0],
                                o = this.value,
                                i = this.direction;
                            t.change((t) => {
                                const e = "right" == i || "down" == i,
                                    r = e ? n : o,
                                    s = e ? o : n,
                                    a = s.parent;
                                !(function (t, e, n) {
                                    U_(t) || (U_(e) && n.remove(n.createRangeIn(e)), n.move(n.createRangeIn(t), n.createPositionAt(e, "end")));
                                    n.remove(t);
                                })(s, r, t);
                                const c = this.isHorizontal ? "colspan" : "rowspan",
                                    l = parseInt(n.getAttribute(c) || 1),
                                    d = parseInt(o.getAttribute(c) || 1);
                                t.setAttribute(c, l + d, r), t.setSelection(t.createRangeIn(r));
                                const h = this.editor.plugins.get("TableUtils");
                                j_(a.findAncestor("table"), h);
                            });
                        }
                        _getMergeableCell() {
                            const t = this.editor.model.document,
                                e = this.editor.plugins.get("TableUtils"),
                                n = e.getTableCellsContainingSelection(t.selection)[0];
                            if (!n) return;
                            const o = this.isHorizontal
                                ? (function (t, e, n) {
                                      const o = t.parent.parent,
                                          i = "right" == e ? t.nextSibling : t.previousSibling,
                                          r = (o.getAttribute("headingColumns") || 0) > 0;
                                      if (!i) return;
                                      const s = "right" == e ? t : i,
                                          a = "right" == e ? i : t,
                                          { column: c } = n.getCellLocation(s),
                                          { column: l } = n.getCellLocation(a),
                                          d = parseInt(s.getAttribute("colspan") || 1),
                                          h = k_(n, s),
                                          u = k_(n, a);
                                      if (r && h != u) return;
                                      return c + d === l ? i : void 0;
                                  })(n, this.direction, e)
                                : (function (t, e, n) {
                                      const o = t.parent,
                                          i = o.parent,
                                          r = i.getChildIndex(o);
                                      if (("down" == e && r === n.getRows(i) - 1) || ("up" == e && 0 === r)) return;
                                      const s = parseInt(t.getAttribute("rowspan") || 1),
                                          a = i.getAttribute("headingRows") || 0,
                                          c = "down" == e && r + s === a,
                                          l = "up" == e && r === a;
                                      if (a && (c || l)) return;
                                      const d = parseInt(t.getAttribute("rowspan") || 1),
                                          h = "down" == e ? r + d : r,
                                          u = [...new A_(i, { endRow: h })],
                                          g = u.find((e) => e.cell === t).column,
                                          m = u.find(({ row: t, cellHeight: n, column: o }) => o === g && ("down" == e ? t === h : h === t + n));
                                      return m && m.cell;
                                  })(n, this.direction, e);
                            if (!o) return;
                            const i = this.isHorizontal ? "rowspan" : "colspan",
                                r = parseInt(n.getAttribute(i) || 1);
                            return parseInt(o.getAttribute(i) || 1) === r ? o : void 0;
                        }
                    }
                    function U_(t) {
                        return 1 == t.childCount && t.getChild(0).is("element", "paragraph") && t.getChild(0).isEmpty;
                    }
                    class W_ extends U {
                        refresh() {
                            const t = this.editor.plugins.get("TableUtils"),
                                e = t.getSelectionAffectedTableCells(this.editor.model.document.selection),
                                n = e[0];
                            if (n) {
                                const o = n.findAncestor("table"),
                                    i = this.editor.plugins.get("TableUtils").getRows(o) - 1,
                                    r = t.getRowIndexes(e),
                                    s = 0 === r.first && r.last === i;
                                this.isEnabled = !s;
                            } else this.isEnabled = !1;
                        }
                        execute() {
                            const t = this.editor.model,
                                e = this.editor.plugins.get("TableUtils"),
                                n = e.getSelectionAffectedTableCells(t.document.selection),
                                o = e.getRowIndexes(n),
                                i = n[0],
                                r = i.findAncestor("table"),
                                s = e.getCellLocation(i).column;
                            t.change((t) => {
                                const n = o.last - o.first + 1;
                                e.removeRows(r, { at: o.first, rows: n });
                                const i = (function (t, e, n, o) {
                                    const i = t.getChild(Math.min(e, o - 1));
                                    let r = i.getChild(0),
                                        s = 0;
                                    for (const t of i.getChildren()) {
                                        if (s > n) return r;
                                        (r = t), (s += parseInt(t.getAttribute("colspan") || 1));
                                    }
                                    return r;
                                })(r, o.first, s, e.getRows(r));
                                t.setSelection(t.createPositionAt(i, 0));
                            });
                        }
                    }
                    class q_ extends U {
                        refresh() {
                            const t = this.editor.plugins.get("TableUtils"),
                                e = t.getSelectionAffectedTableCells(this.editor.model.document.selection),
                                n = e[0];
                            if (n) {
                                const o = n.findAncestor("table"),
                                    i = t.getColumns(o),
                                    { first: r, last: s } = t.getColumnIndexes(e);
                                this.isEnabled = s - r < i - 1;
                            } else this.isEnabled = !1;
                        }
                        execute() {
                            const t = this.editor.plugins.get("TableUtils"),
                                [e, n] = (function (t, e) {
                                    const n = e.getSelectionAffectedTableCells(t),
                                        o = n[0],
                                        i = n.pop(),
                                        r = [o, i];
                                    return o.isBefore(i) ? r : r.reverse();
                                })(this.editor.model.document.selection, t),
                                o = e.parent.parent,
                                i = [...new A_(o)],
                                r = { first: i.find((t) => t.cell === e).column, last: i.find((t) => t.cell === n).column },
                                s = (function (t, e, n, o) {
                                    return parseInt(n.getAttribute("colspan") || 1) > 1
                                        ? n
                                        : e.previousSibling || n.nextSibling
                                        ? n.nextSibling || e.previousSibling
                                        : o.first
                                        ? t.reverse().find(({ column: t }) => t < o.first).cell
                                        : t.reverse().find(({ column: t }) => t > o.last).cell;
                                })(i, e, n, r);
                            this.editor.model.change((t) => {
                                const e = r.last - r.first + 1;
                                this.editor.plugins.get("TableUtils").removeColumns(o, { at: r.first, columns: e }), t.setSelection(t.createPositionAt(s, 0));
                            });
                        }
                    }
                    class G_ extends U {
                        refresh() {
                            const t = this.editor.plugins.get("TableUtils"),
                                e = this.editor.model,
                                n = t.getSelectionAffectedTableCells(e.document.selection),
                                o = n.length > 0;
                            (this.isEnabled = o), (this.value = o && n.every((t) => this._isInHeading(t, t.parent.parent)));
                        }
                        execute(t = {}) {
                            if (t.forceValue === this.value) return;
                            const e = this.editor.plugins.get("TableUtils"),
                                n = this.editor.model,
                                o = e.getSelectionAffectedTableCells(n.document.selection),
                                i = o[0].findAncestor("table"),
                                { first: r, last: s } = e.getRowIndexes(o),
                                a = this.value ? r : s + 1,
                                c = i.getAttribute("headingRows") || 0;
                            n.change((t) => {
                                if (a) {
                                    const e = N_(i, a, a > c ? c : 0);
                                    for (const { cell: n } of e) B_(n, a, t);
                                }
                                p_("headingRows", a, i, t, 0);
                            });
                        }
                        _isInHeading(t, e) {
                            const n = parseInt(e.getAttribute("headingRows") || 0);
                            return !!n && t.parent.index < n;
                        }
                    }
                    class $_ extends U {
                        refresh() {
                            const t = this.editor.model,
                                e = this.editor.plugins.get("TableUtils"),
                                n = e.getSelectionAffectedTableCells(t.document.selection),
                                o = n.length > 0;
                            (this.isEnabled = o), (this.value = o && n.every((t) => k_(e, t)));
                        }
                        execute(t = {}) {
                            if (t.forceValue === this.value) return;
                            const e = this.editor.plugins.get("TableUtils"),
                                n = this.editor.model,
                                o = e.getSelectionAffectedTableCells(n.document.selection),
                                i = o[0].findAncestor("table"),
                                { first: r, last: s } = e.getColumnIndexes(o),
                                a = this.value ? r : s + 1;
                            n.change((t) => {
                                if (a) {
                                    const e = P_(i, a);
                                    for (const { cell: n, column: o } of e) z_(n, o, a, t);
                                }
                                p_("headingColumns", a, i, t, 0);
                            });
                        }
                    }
                    class Y_ extends V {
                        static get pluginName() {
                            return "TableUtils";
                        }
                        init() {
                            this.decorate("insertColumns"), this.decorate("insertRows");
                        }
                        getCellLocation(t) {
                            const e = t.parent,
                                n = e.parent,
                                o = n.getChildIndex(e),
                                i = new A_(n, { row: o });
                            for (const { cell: e, row: n, column: o } of i) if (e === t) return { row: n, column: o };
                        }
                        createTable(t, e) {
                            const n = t.createElement("table"),
                                o = parseInt(e.rows) || 2,
                                i = parseInt(e.columns) || 2;
                            return K_(t, n, 0, o, i), e.headingRows && p_("headingRows", Math.min(e.headingRows, o), n, t, 0), e.headingColumns && p_("headingColumns", Math.min(e.headingColumns, i), n, t, 0), n;
                        }
                        insertRows(t, e = {}) {
                            const n = this.editor.model,
                                o = e.at || 0,
                                i = e.rows || 1,
                                r = void 0 !== e.copyStructureFromAbove,
                                s = e.copyStructureFromAbove ? o - 1 : o,
                                a = this.getRows(t),
                                l = this.getColumns(t);
                            if (o > a) throw new c("tableutils-insertrows-insert-out-of-range", this, { options: e });
                            n.change((e) => {
                                const n = t.getAttribute("headingRows") || 0;
                                if ((n > o && p_("headingRows", n + i, t, e, 0), !r && (0 === o || o === a))) return void K_(e, t, o, i, l);
                                const c = r ? Math.max(o, s) : o,
                                    d = new A_(t, { endRow: c }),
                                    h = new Array(l).fill(1);
                                for (const { row: t, column: n, cellHeight: a, cellWidth: c, cell: l } of d) {
                                    const d = t + a - 1,
                                        u = t <= s && s <= d;
                                    t < o && o <= d ? (e.setAttribute("rowspan", a + i, l), (h[n] = -c)) : r && u && (h[n] = c);
                                }
                                for (let n = 0; n < i; n++) {
                                    const n = e.createElement("tableRow");
                                    e.insert(n, t, o);
                                    for (let t = 0; t < h.length; t++) {
                                        const o = h[t],
                                            i = e.createPositionAt(n, "end");
                                        o > 0 && f_(e, i, o > 1 ? { colspan: o } : null), (t += Math.abs(o) - 1);
                                    }
                                }
                            });
                        }
                        insertColumns(t, e = {}) {
                            const n = this.editor.model,
                                o = e.at || 0,
                                i = e.columns || 1;
                            n.change((e) => {
                                const n = t.getAttribute("headingColumns");
                                o < n && e.setAttribute("headingColumns", n + i, t);
                                const r = this.getColumns(t);
                                if (0 === o || r === o) {
                                    for (const n of t.getChildren()) n.is("element", "tableRow") && Q_(i, e, e.createPositionAt(n, o ? "end" : 0));
                                    return;
                                }
                                const s = new A_(t, { column: o, includeAllSlots: !0 });
                                for (const t of s) {
                                    const { row: n, cell: r, cellAnchorColumn: a, cellAnchorRow: c, cellWidth: l, cellHeight: d } = t;
                                    if (a < o) {
                                        e.setAttribute("colspan", l + i, r);
                                        const t = c + d - 1;
                                        for (let e = n; e <= t; e++) s.skipRow(e);
                                    } else Q_(i, e, t.getPositionBefore());
                                }
                            });
                        }
                        removeRows(t, e) {
                            const n = this.editor.model,
                                o = e.rows || 1,
                                i = this.getRows(t),
                                r = e.at,
                                s = r + o - 1;
                            if (s > i - 1) throw new c("tableutils-removerows-row-index-out-of-range", this, { table: t, options: e });
                            n.change((e) => {
                                const { cellsToMove: n, cellsToTrim: o } = (function (t, e, n) {
                                    const o = new Map(),
                                        i = [];
                                    for (const { row: r, column: s, cellHeight: a, cell: c } of new A_(t, { endRow: n })) {
                                        const t = r + a - 1;
                                        if (r >= e && r <= n && t > n) {
                                            const t = a - (n - r + 1);
                                            o.set(s, { cell: c, rowspan: t });
                                        }
                                        if (r < e && t >= e) {
                                            let o;
                                            (o = t >= n ? n - e + 1 : t - e + 1), i.push({ cell: c, rowspan: a - o });
                                        }
                                    }
                                    return { cellsToMove: o, cellsToTrim: i };
                                })(t, r, s);
                                if (n.size) {
                                    !(function (t, e, n, o) {
                                        const i = [...new A_(t, { includeAllSlots: !0, row: e })],
                                            r = t.getChild(e);
                                        let s;
                                        for (const { column: t, cell: e, isAnchor: a } of i)
                                            if (n.has(t)) {
                                                const { cell: e, rowspan: i } = n.get(t),
                                                    a = s ? o.createPositionAfter(s) : o.createPositionAt(r, 0);
                                                o.move(o.createRangeOn(e), a), p_("rowspan", i, e, o), (s = e);
                                            } else a && (s = e);
                                    })(t, s + 1, n, e);
                                }
                                for (let n = s; n >= r; n--) e.remove(t.getChild(n));
                                for (const { rowspan: t, cell: n } of o) p_("rowspan", t, n, e);
                                !(function (t, e, n, o) {
                                    const i = t.getAttribute("headingRows") || 0;
                                    if (e < i) {
                                        p_("headingRows", n < i ? i - (n - e + 1) : e, t, o, 0);
                                    }
                                })(t, r, s, e),
                                    O_(t, this) || R_(t, this);
                            });
                        }
                        removeColumns(t, e) {
                            const n = this.editor.model,
                                o = e.at,
                                i = e.columns || 1,
                                r = e.at + i - 1;
                            n.change((e) => {
                                !(function (t, e, n) {
                                    const o = t.getAttribute("headingColumns") || 0;
                                    if (o && e.first < o) {
                                        const i = Math.min(o - 1, e.last) - e.first + 1;
                                        n.setAttribute("headingColumns", o - i, t);
                                    }
                                })(t, { first: o, last: r }, e);
                                for (let n = r; n >= o; n--) for (const { cell: o, column: i, cellWidth: r } of [...new A_(t)]) i <= n && r > 1 && i + r > n ? p_("colspan", r - 1, o, e) : i === n && e.remove(o);
                                R_(t, this) || O_(t, this);
                            });
                        }
                        splitCellVertically(t, e = 2) {
                            const n = this.editor.model,
                                o = t.parent.parent,
                                i = parseInt(t.getAttribute("rowspan") || 1),
                                r = parseInt(t.getAttribute("colspan") || 1);
                            n.change((n) => {
                                if (r > 1) {
                                    const { newCellsSpan: o, updatedSpan: s } = Z_(r, e);
                                    p_("colspan", s, t, n);
                                    const a = {};
                                    o > 1 && (a.colspan = o), i > 1 && (a.rowspan = i);
                                    Q_(r > e ? e - 1 : r - 1, n, n.createPositionAfter(t), a);
                                }
                                if (r < e) {
                                    const s = e - r,
                                        a = [...new A_(o)],
                                        { column: c } = a.find(({ cell: e }) => e === t),
                                        l = a.filter(({ cell: e, cellWidth: n, column: o }) => (e !== t && o === c) || (o < c && o + n > c));
                                    for (const { cell: t, cellWidth: e } of l) n.setAttribute("colspan", e + s, t);
                                    const d = {};
                                    i > 1 && (d.rowspan = i), Q_(s, n, n.createPositionAfter(t), d);
                                    const h = o.getAttribute("headingColumns") || 0;
                                    h > c && p_("headingColumns", h + s, o, n);
                                }
                            });
                        }
                        splitCellHorizontally(t, e = 2) {
                            const n = this.editor.model,
                                o = t.parent,
                                i = o.parent,
                                r = i.getChildIndex(o),
                                s = parseInt(t.getAttribute("rowspan") || 1),
                                a = parseInt(t.getAttribute("colspan") || 1);
                            n.change((n) => {
                                if (s > 1) {
                                    const o = [...new A_(i, { startRow: r, endRow: r + s - 1, includeAllSlots: !0 })],
                                        { newCellsSpan: c, updatedSpan: l } = Z_(s, e);
                                    p_("rowspan", l, t, n);
                                    const { column: d } = o.find(({ cell: e }) => e === t),
                                        h = {};
                                    c > 1 && (h.rowspan = c), a > 1 && (h.colspan = a);
                                    for (const t of o) {
                                        const { column: e, row: o } = t,
                                            i = e === d,
                                            s = (o + r + l) % c == 0;
                                        o >= r + l && i && s && Q_(1, n, t.getPositionBefore(), h);
                                    }
                                }
                                if (s < e) {
                                    const o = e - s,
                                        c = [...new A_(i, { startRow: 0, endRow: r })];
                                    for (const { cell: e, cellHeight: i, row: s } of c)
                                        if (e !== t && s + i > r) {
                                            const t = i + o;
                                            n.setAttribute("rowspan", t, e);
                                        }
                                    const l = {};
                                    a > 1 && (l.colspan = a), K_(n, i, r + 1, o, 1, l);
                                    const d = i.getAttribute("headingRows") || 0;
                                    d > r && p_("headingRows", d + o, i, n);
                                }
                            });
                        }
                        getColumns(t) {
                            return [...t.getChild(0).getChildren()].reduce((t, e) => t + parseInt(e.getAttribute("colspan") || 1), 0);
                        }
                        getRows(t) {
                            return Array.from(t.getChildren()).reduce((t, e) => (e.is("element", "tableRow") ? t + 1 : t), 0);
                        }
                        createTableWalker(t, e = {}) {
                            return new A_(t, e);
                        }
                        getSelectedTableCells(t) {
                            const e = [];
                            for (const n of this.sortRanges(t.getRanges())) {
                                const t = n.getContainedElement();
                                t && t.is("element", "tableCell") && e.push(t);
                            }
                            return e;
                        }
                        getTableCellsContainingSelection(t) {
                            const e = [];
                            for (const n of t.getRanges()) {
                                const t = n.start.findAncestor("tableCell");
                                t && e.push(t);
                            }
                            return e;
                        }
                        getSelectionAffectedTableCells(t) {
                            const e = this.getSelectedTableCells(t);
                            return e.length ? e : this.getTableCellsContainingSelection(t);
                        }
                        getRowIndexes(t) {
                            const e = t.map((t) => t.parent.index);
                            return this._getFirstLastIndexesObject(e);
                        }
                        getColumnIndexes(t) {
                            const e = t[0].findAncestor("table"),
                                n = [...new A_(e)].filter((e) => t.includes(e.cell)).map((t) => t.column);
                            return this._getFirstLastIndexesObject(n);
                        }
                        isSelectionRectangular(t) {
                            if (t.length < 2 || !this._areCellInTheSameTableSection(t)) return !1;
                            const e = new Set(),
                                n = new Set();
                            let o = 0;
                            for (const i of t) {
                                const { row: t, column: r } = this.getCellLocation(i),
                                    s = parseInt(i.getAttribute("rowspan") || 1),
                                    a = parseInt(i.getAttribute("colspan") || 1);
                                e.add(t), n.add(r), s > 1 && e.add(t + s - 1), a > 1 && n.add(r + a - 1), (o += s * a);
                            }
                            const i = (function (t, e) {
                                const n = Array.from(t.values()),
                                    o = Array.from(e.values()),
                                    i = Math.max(...n),
                                    r = Math.min(...n),
                                    s = Math.max(...o),
                                    a = Math.min(...o);
                                return (i - r + 1) * (s - a + 1);
                            })(e, n);
                            return i == o;
                        }
                        sortRanges(t) {
                            return Array.from(t).sort(J_);
                        }
                        _getFirstLastIndexesObject(t) {
                            const e = t.sort((t, e) => t - e);
                            return { first: e[0], last: e[e.length - 1] };
                        }
                        _areCellInTheSameTableSection(t) {
                            const e = t[0].findAncestor("table"),
                                n = this.getRowIndexes(t),
                                o = parseInt(e.getAttribute("headingRows") || 0);
                            if (!this._areIndexesInSameSection(n, o)) return !1;
                            const i = parseInt(e.getAttribute("headingColumns") || 0),
                                r = this.getColumnIndexes(t);
                            return this._areIndexesInSameSection(r, i);
                        }
                        _areIndexesInSameSection({ first: t, last: e }, n) {
                            return t < n === e < n;
                        }
                    }
                    function K_(t, e, n, o, i, r = {}) {
                        for (let s = 0; s < o; s++) {
                            const o = t.createElement("tableRow");
                            t.insert(o, e, n), Q_(i, t, t.createPositionAt(o, "end"), r);
                        }
                    }
                    function Q_(t, e, n, o = {}) {
                        for (let i = 0; i < t; i++) f_(e, n, o);
                    }
                    function Z_(t, e) {
                        if (t < e) return { newCellsSpan: 1, updatedSpan: 1 };
                        const n = Math.floor(t / e);
                        return { newCellsSpan: n, updatedSpan: t - n * e + n };
                    }
                    function J_(t, e) {
                        const n = t.start,
                            o = e.start;
                        return n.isBefore(o) ? -1 : 1;
                    }
                    class X_ extends U {
                        refresh() {
                            const t = this.editor.plugins.get(Y_),
                                e = t.getSelectedTableCells(this.editor.model.document.selection);
                            this.isEnabled = t.isSelectionRectangular(e, this.editor.plugins.get(Y_));
                        }
                        execute() {
                            const t = this.editor.model,
                                e = this.editor.plugins.get(Y_);
                            t.change((n) => {
                                const o = e.getSelectedTableCells(t.document.selection),
                                    i = o.shift(),
                                    { mergeWidth: r, mergeHeight: s } = (function (t, e, n) {
                                        let o = 0,
                                            i = 0;
                                        for (const t of e) {
                                            const { row: e, column: r } = n.getCellLocation(t);
                                            (o = nA(t, r, o, "colspan")), (i = nA(t, e, i, "rowspan"));
                                        }
                                        const { row: r, column: s } = n.getCellLocation(t);
                                        return { mergeWidth: o - s, mergeHeight: i - r };
                                    })(i, o, e);
                                p_("colspan", r, i, n), p_("rowspan", s, i, n);
                                for (const t of o) tA(t, i, n);
                                j_(i.findAncestor("table"), e), n.setSelection(i, "in");
                            });
                        }
                    }
                    function tA(t, e, n) {
                        eA(t) || (eA(e) && n.remove(n.createRangeIn(e)), n.move(n.createRangeIn(t), n.createPositionAt(e, "end"))), n.remove(t);
                    }
                    function eA(t) {
                        return 1 == t.childCount && t.getChild(0).is("element", "paragraph") && t.getChild(0).isEmpty;
                    }
                    function nA(t, e, n, o) {
                        const i = parseInt(t.getAttribute(o) || 1);
                        return Math.max(n, e + i);
                    }
                    class oA extends U {
                        constructor(t) {
                            super(t), (this.affectsData = !1);
                        }
                        refresh() {
                            const t = this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);
                            this.isEnabled = t.length > 0;
                        }
                        execute() {
                            const t = this.editor.model,
                                e = this.editor.plugins.get("TableUtils"),
                                n = e.getSelectionAffectedTableCells(t.document.selection),
                                o = e.getRowIndexes(n),
                                i = n[0].findAncestor("table"),
                                r = [];
                            for (let e = o.first; e <= o.last; e++) for (const n of i.getChild(e).getChildren()) r.push(t.createRangeOn(n));
                            t.change((t) => {
                                t.setSelection(r);
                            });
                        }
                    }
                    class iA extends U {
                        constructor(t) {
                            super(t), (this.affectsData = !1);
                        }
                        refresh() {
                            const t = this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);
                            this.isEnabled = t.length > 0;
                        }
                        execute() {
                            const t = this.editor.plugins.get("TableUtils"),
                                e = this.editor.model,
                                n = t.getSelectionAffectedTableCells(e.document.selection),
                                o = n[0],
                                i = n.pop(),
                                r = o.findAncestor("table"),
                                s = t.getCellLocation(o),
                                a = t.getCellLocation(i),
                                c = Math.min(s.column, a.column),
                                l = Math.max(s.column, a.column),
                                d = [];
                            for (const t of new A_(r, { startColumn: c, endColumn: l })) d.push(e.createRangeOn(t.cell));
                            e.change((t) => {
                                t.setSelection(d);
                            });
                        }
                    }
                    function rA(t) {
                        t.document.registerPostFixer((e) =>
                            (function (t, e) {
                                const n = e.document.differ.getChanges();
                                let o = !1;
                                const i = new Set();
                                for (const e of n) {
                                    let n;
                                    "table" == e.name && "insert" == e.type && (n = e.position.nodeAfter),
                                        ("tableRow" != e.name && "tableCell" != e.name) || (n = e.position.findAncestor("table")),
                                        cA(e) && (n = e.range.start.findAncestor("table")),
                                        n && !i.has(n) && ((o = sA(n, t) || o), (o = aA(n, t) || o), i.add(n));
                                }
                                return o;
                            })(e, t)
                        );
                    }
                    function sA(t, e) {
                        let n = !1;
                        const o = (function (t) {
                            const e = parseInt(t.getAttribute("headingRows") || 0),
                                n = Array.from(t.getChildren()).reduce((t, e) => (e.is("element", "tableRow") ? t + 1 : t), 0),
                                o = [];
                            for (const { row: i, cell: r, cellHeight: s } of new A_(t)) {
                                if (s < 2) continue;
                                const t = i < e ? e : n;
                                if (i + s > t) {
                                    const e = t - i;
                                    o.push({ cell: r, rowspan: e });
                                }
                            }
                            return o;
                        })(t);
                        if (o.length) {
                            n = !0;
                            for (const t of o) p_("rowspan", t.rowspan, t.cell, e, 1);
                        }
                        return n;
                    }
                    function aA(t, e) {
                        let n = !1;
                        const o = (function (t) {
                                const e = new Array(t.childCount).fill(0);
                                for (const { rowIndex: n } of new A_(t, { includeAllSlots: !0 })) e[n]++;
                                return e;
                            })(t),
                            i = [];
                        for (const [e, n] of o.entries()) !n && t.getChild(e).is("element", "tableRow") && i.push(e);
                        if (i.length) {
                            n = !0;
                            for (const n of i.reverse()) e.remove(t.getChild(n)), o.splice(n, 1);
                        }
                        const r = o.filter((e, n) => t.getChild(n).is("element", "tableRow")),
                            s = r[0];
                        if (!r.every((t) => t === s)) {
                            const o = r.reduce((t, e) => (e > t ? e : t), 0);
                            for (const [i, s] of r.entries()) {
                                const r = o - s;
                                if (r) {
                                    for (let n = 0; n < r; n++) f_(e, e.createPositionAt(t.getChild(i), "end"));
                                    n = !0;
                                }
                            }
                        }
                        return n;
                    }
                    function cA(t) {
                        const e = "attribute" === t.type,
                            n = t.attributeKey;
                        return e && ("headingRows" === n || "colspan" === n || "rowspan" === n);
                    }
                    function lA(t) {
                        t.document.registerPostFixer((e) =>
                            (function (t, e) {
                                const n = e.document.differ.getChanges();
                                let o = !1;
                                for (const e of n)
                                    "insert" == e.type && "table" == e.name && (o = dA(e.position.nodeAfter, t) || o),
                                        "insert" == e.type && "tableRow" == e.name && (o = hA(e.position.nodeAfter, t) || o),
                                        "insert" == e.type && "tableCell" == e.name && (o = uA(e.position.nodeAfter, t) || o),
                                        gA(e) && (o = uA(e.position.parent, t) || o);
                                return o;
                            })(e, t)
                        );
                    }
                    function dA(t, e) {
                        let n = !1;
                        for (const o of t.getChildren()) o.is("element", "tableRow") && (n = hA(o, e) || n);
                        return n;
                    }
                    function hA(t, e) {
                        let n = !1;
                        for (const o of t.getChildren()) n = uA(o, e) || n;
                        return n;
                    }
                    function uA(t, e) {
                        if (0 == t.childCount) return e.insertElement("paragraph", t), !0;
                        const n = Array.from(t.getChildren()).filter((t) => t.is("$text"));
                        for (const t of n) e.wrap(e.createRangeOn(t), "paragraph");
                        return !!n.length;
                    }
                    function gA(t) {
                        return !(!t.position || !t.position.parent.is("element", "tableCell")) && (("insert" == t.type && "$text" == t.name) || "remove" == t.type);
                    }
                    function mA(t, e) {
                        if (!t.is("element", "paragraph")) return !1;
                        const n = e.toViewElement(t);
                        return !!n && E_(t) !== n.is("element", "span");
                    }
                    var pA = n(3881),
                        fA = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(pA.Z, fA);
                    pA.Z.locals;
                    class kA extends V {
                        static get pluginName() {
                            return "TableEditing";
                        }
                        static get requires() {
                            return [Y_];
                        }
                        init() {
                            const t = this.editor,
                                e = t.model,
                                n = e.schema,
                                o = t.conversion,
                                i = t.plugins.get(Y_);
                            n.register("table", { inheritAllFrom: "$blockObject", allowAttributes: ["headingRows", "headingColumns"] }),
                                n.register("tableRow", { allowIn: "table", isLimit: !0 }),
                                n.register("tableCell", { allowContentOf: "$container", allowIn: "tableRow", allowAttributes: ["colspan", "rowspan"], isLimit: !0, isSelectable: !0 }),
                                o.for("upcast").add((t) => {
                                    t.on("element:figure", (t, e, n) => {
                                        if (!n.consumable.test(e.viewItem, { name: !0, classes: "table" })) return;
                                        const o = (function (t) {
                                            for (const e of t.getChildren()) if (e.is("element", "table")) return e;
                                        })(e.viewItem);
                                        if (!o || !n.consumable.test(o, { name: !0 })) return;
                                        n.consumable.consume(e.viewItem, { name: !0, classes: "table" });
                                        const i = wa(n.convertItem(o, e.modelCursor).modelRange.getItems());
                                        i ? (n.convertChildren(e.viewItem, n.writer.createPositionAt(i, "end")), n.updateConversionResult(i, e)) : n.consumable.revert(e.viewItem, { name: !0, classes: "table" });
                                    });
                                }),
                                o.for("upcast").add(b_()),
                                o.for("editingDowncast").elementToStructure({ model: { name: "table", attributes: ["headingRows"] }, view: v_(i, { asWidget: !0 }) }),
                                o.for("dataDowncast").elementToStructure({ model: { name: "table", attributes: ["headingRows"] }, view: v_(i) }),
                                o.for("upcast").elementToElement({ model: "tableRow", view: "tr" }),
                                o.for("upcast").add((t) => {
                                    t.on(
                                        "element:tr",
                                        (t, e) => {
                                            e.viewItem.isEmpty && 0 == e.modelCursor.index && t.stop();
                                        },
                                        { priority: "high" }
                                    );
                                }),
                                o.for("downcast").elementToElement({ model: "tableRow", view: (t, { writer: e }) => (t.isEmpty ? e.createEmptyElement("tr") : e.createContainerElement("tr")) }),
                                o.for("upcast").elementToElement({ model: "tableCell", view: "td" }),
                                o.for("upcast").elementToElement({ model: "tableCell", view: "th" }),
                                o.for("upcast").add(w_("td")),
                                o.for("upcast").add(w_("th")),
                                o.for("editingDowncast").elementToElement({ model: "tableCell", view: y_({ asWidget: !0 }) }),
                                o.for("dataDowncast").elementToElement({ model: "tableCell", view: y_() }),
                                o.for("editingDowncast").elementToElement({ model: "paragraph", view: x_({ asWidget: !0 }), converterPriority: "high" }),
                                o.for("dataDowncast").elementToElement({ model: "paragraph", view: x_(), converterPriority: "high" }),
                                o.for("downcast").attributeToAttribute({ model: "colspan", view: "colspan" }),
                                o.for("upcast").attributeToAttribute({ model: { key: "colspan", value: bA("colspan") }, view: "colspan" }),
                                o.for("downcast").attributeToAttribute({ model: "rowspan", view: "rowspan" }),
                                o.for("upcast").attributeToAttribute({ model: { key: "rowspan", value: bA("rowspan") }, view: "rowspan" }),
                                t.data.mapper.on("modelToViewPosition", (t, e) => {
                                    const n = e.modelPosition.parent,
                                        o = e.modelPosition.nodeBefore;
                                    if (!n.is("element", "tableCell")) return;
                                    if (!o || !o.is("element", "paragraph")) return;
                                    const i = e.mapper.toViewElement(o),
                                        r = e.mapper.toViewElement(n);
                                    i === r && (e.viewPosition = e.mapper.findPositionIn(r, o.maxOffset));
                                }),
                                t.config.define("table.defaultHeadings.rows", 0),
                                t.config.define("table.defaultHeadings.columns", 0),
                                t.commands.add("insertTable", new D_(t)),
                                t.commands.add("insertTableRowAbove", new I_(t, { order: "above" })),
                                t.commands.add("insertTableRowBelow", new I_(t, { order: "below" })),
                                t.commands.add("insertTableColumnLeft", new M_(t, { order: "left" })),
                                t.commands.add("insertTableColumnRight", new M_(t, { order: "right" })),
                                t.commands.add("removeTableRow", new W_(t)),
                                t.commands.add("removeTableColumn", new q_(t)),
                                t.commands.add("splitTableCellVertically", new T_(t, { direction: "vertically" })),
                                t.commands.add("splitTableCellHorizontally", new T_(t, { direction: "horizontally" })),
                                t.commands.add("mergeTableCells", new X_(t)),
                                t.commands.add("mergeTableCellRight", new H_(t, { direction: "right" })),
                                t.commands.add("mergeTableCellLeft", new H_(t, { direction: "left" })),
                                t.commands.add("mergeTableCellDown", new H_(t, { direction: "down" })),
                                t.commands.add("mergeTableCellUp", new H_(t, { direction: "up" })),
                                t.commands.add("setTableColumnHeader", new $_(t)),
                                t.commands.add("setTableRowHeader", new G_(t)),
                                t.commands.add("selectTableRow", new oA(t)),
                                t.commands.add("selectTableColumn", new iA(t)),
                                rA(e),
                                lA(e),
                                this.listenTo(e.document, "change:data", () => {
                                    !(function (t, e) {
                                        const n = t.document.differ;
                                        for (const t of n.getChanges()) {
                                            let n,
                                                o = !1;
                                            if ("attribute" == t.type) {
                                                const e = t.range.start.nodeAfter;
                                                if (!e || !e.is("element", "table")) continue;
                                                if ("headingRows" != t.attributeKey && "headingColumns" != t.attributeKey) continue;
                                                (n = e), (o = "headingRows" == t.attributeKey);
                                            } else ("tableRow" != t.name && "tableCell" != t.name) || ((n = t.position.findAncestor("table")), (o = "tableRow" == t.name));
                                            if (!n) continue;
                                            const i = n.getAttribute("headingRows") || 0,
                                                r = n.getAttribute("headingColumns") || 0,
                                                s = new A_(n);
                                            for (const t of s) {
                                                const n = t.row < i || t.column < r ? "th" : "td",
                                                    s = e.mapper.toViewElement(t.cell);
                                                s && s.is("element") && s.name != n && e.reconvertItem(o ? t.cell.parent : t.cell);
                                            }
                                        }
                                    })(e, t.editing),
                                        (function (t, e) {
                                            const n = t.document.differ,
                                                o = new Set();
                                            for (const t of n.getChanges()) {
                                                const e = "attribute" == t.type ? t.range.start.parent : t.position.parent;
                                                e.is("element", "tableCell") && o.add(e);
                                            }
                                            for (const t of o.values()) {
                                                const n = Array.from(t.getChildren()).filter((t) => mA(t, e.mapper));
                                                for (const t of n) e.reconvertItem(t);
                                            }
                                        })(e, t.editing);
                                });
                        }
                    }
                    function bA(t) {
                        return (e) => {
                            const n = parseInt(e.getAttribute(t));
                            return Number.isNaN(n) || n <= 0 ? null : n;
                        };
                    }
                    var wA = n(1613),
                        _A = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(wA.Z, _A);
                    wA.Z.locals;
                    class AA extends eh {
                        constructor(t) {
                            super(t);
                            const e = this.bindTemplate;
                            (this._geometryLabelId = `ck-editor__label_${r()}`),
                                (this.items = this._createGridCollection()),
                                (this.keystrokes = new Aa()),
                                (this.focusTracker = new _a()),
                                this.set("rows", 0),
                                this.set("columns", 0),
                                this.bind("label").to(this, "columns", this, "rows", (t, e) => `${e} × ${t}`),
                                this.setTemplate({
                                    tag: "div",
                                    attributes: { class: ["ck"] },
                                    children: [
                                        { tag: "div", attributes: { class: ["ck-insert-table-dropdown__grid"] }, on: { "mouseover@.ck-insert-table-dropdown-grid-box": e.to("boxover") }, children: this.items },
                                        { tag: "div", attributes: { id: this._geometryLabelId, class: ["ck", "ck-insert-table-dropdown__label"] }, children: [{ text: e.to("label") }] },
                                    ],
                                    on: {
                                        mousedown: e.to((t) => {
                                            t.preventDefault();
                                        }),
                                        click: e.to(() => {
                                            this.fire("execute");
                                        }),
                                        keydown: e.to((t) => {
                                            "Enter" === t.key && (this.fire("execute"), t.preventDefault());
                                        }),
                                    },
                                }),
                                this.on("boxover", (t, e) => {
                                    const { row: n, column: o } = e.target.dataset;
                                    this.items.get(10 * (n - 1) + (o - 1)).focus();
                                }),
                                this.focusTracker.on("change:focusedElement", (t, e, n) => {
                                    if (!n) return;
                                    const { row: o, column: i } = n.dataset;
                                    this.set({ rows: parseInt(o), columns: parseInt(i) });
                                }),
                                this.on("change:columns", () => this._highlightGridBoxes()),
                                this.on("change:rows", () => this._highlightGridBoxes());
                        }
                        render() {
                            super.render(),
                                (function ({ keystrokeHandler: t, focusTracker: e, gridItems: n, numberOfColumns: o }) {
                                    const i = "number" == typeof o ? () => o : o;
                                    function r(t) {
                                        return (o) => {
                                            const i = n.find((t) => t.element === e.focusedElement),
                                                r = n.getIndex(i),
                                                s = t(r, n);
                                            n.get(s).focus(), o.stopPropagation(), o.preventDefault();
                                        };
                                    }
                                    t.set(
                                        "arrowright",
                                        r((t, e) => (t === e.length - 1 ? 0 : t + 1))
                                    ),
                                        t.set(
                                            "arrowleft",
                                            r((t, e) => (0 === t ? e.length - 1 : t - 1))
                                        ),
                                        t.set(
                                            "arrowup",
                                            r((t, e) => {
                                                let n = t - i();
                                                return n < 0 && ((n = t + i() * Math.floor(e.length / i())), n > e.length - 1 && (n -= i())), n;
                                            })
                                        ),
                                        t.set(
                                            "arrowdown",
                                            r((t, e) => {
                                                let n = t + i();
                                                return n > e.length - 1 && (n = t % i()), n;
                                            })
                                        );
                                })({ keystrokeHandler: this.keystrokes, focusTracker: this.focusTracker, gridItems: this.items, numberOfColumns: 10 });
                            for (const t of this.items) this.focusTracker.add(t.element);
                            this.keystrokes.listenTo(this.element);
                        }
                        focus() {
                            this.items.get(0).focus();
                        }
                        focusLast() {
                            this.items.get(0).focus();
                        }
                        _highlightGridBoxes() {
                            const t = this.rows,
                                e = this.columns;
                            this.items.map((n, o) => {
                                const i = Math.floor(o / 10) < t && o % 10 < e;
                                n.set("isOn", i);
                            });
                        }
                        _createGridCollection() {
                            const t = [];
                            for (let e = 0; e < 100; e++) {
                                const n = Math.floor(e / 10),
                                    o = e % 10;
                                t.push(new CA(this.locale, n + 1, o + 1, this._geometryLabelId));
                            }
                            return this.createCollection(t);
                        }
                    }
                    class CA extends eh {
                        constructor(t, e, n, o) {
                            super(t);
                            const i = this.bindTemplate;
                            this.set("isOn", !1),
                                this.setTemplate({ tag: "div", attributes: { class: ["ck", "ck-insert-table-dropdown-grid-box", i.if("isOn", "ck-on")], "data-row": e, "data-column": n, tabindex: -1, "aria-labelledby": o } });
                        }
                        focus() {
                            this.element.focus();
                        }
                    }
                    class vA extends V {
                        static get pluginName() {
                            return "TableUI";
                        }
                        init() {
                            const t = this.editor,
                                e = this.editor.t,
                                n = "ltr" === t.locale.contentLanguageDirection;
                            t.ui.componentFactory.add("insertTable", (n) => {
                                const o = t.commands.get("insertTable"),
                                    i = ku(n);
                                let r;
                                return (
                                    i.bind("isEnabled").to(o),
                                    i.buttonView.set({
                                        icon:
                                            '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M3 6v3h4V6H3zm0 4v3h4v-3H3zm0 4v3h4v-3H3zm5 3h4v-3H8v3zm5 0h4v-3h-4v3zm4-4v-3h-4v3h4zm0-4V6h-4v3h4zm1.5 8a1.5 1.5 0 0 1-1.5 1.5H3A1.5 1.5 0 0 1 1.5 17V4c.222-.863 1.068-1.5 2-1.5h13c.932 0 1.778.637 2 1.5v13zM12 13v-3H8v3h4zm0-4V6H8v3h4z"/></svg>',
                                        label: e("Insert table"),
                                        tooltip: !0,
                                    }),
                                    i.on("change:isOpen", () => {
                                        r ||
                                            ((r = new AA(n)),
                                            i.panelView.children.add(r),
                                            r.delegate("execute").to(i),
                                            i.on("execute", () => {
                                                t.execute("insertTable", { rows: r.rows, columns: r.columns }), t.editing.view.focus();
                                            }));
                                    }),
                                    i
                                );
                            }),
                                t.ui.componentFactory.add("tableColumn", (t) => {
                                    const o = [
                                        { type: "switchbutton", model: { commandName: "setTableColumnHeader", label: e("Header column"), bindIsOn: !0 } },
                                        { type: "separator" },
                                        { type: "button", model: { commandName: n ? "insertTableColumnLeft" : "insertTableColumnRight", label: e("Insert column left") } },
                                        { type: "button", model: { commandName: n ? "insertTableColumnRight" : "insertTableColumnLeft", label: e("Insert column right") } },
                                        { type: "button", model: { commandName: "removeTableColumn", label: e("Delete column") } },
                                        { type: "button", model: { commandName: "selectTableColumn", label: e("Select column") } },
                                    ];
                                    return this._prepareDropdown(
                                        e("Column"),
                                        '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M2.5 1h15A1.5 1.5 0 0 1 19 2.5v15a1.5 1.5 0 0 1-1.5 1.5h-15A1.5 1.5 0 0 1 1 17.5v-15A1.5 1.5 0 0 1 2.5 1zM2 2v16h16V2H2z" opacity=".6"/><path d="M18 7v1H2V7h16zm0 5v1H2v-1h16z" opacity=".6"/><path d="M14 1v18a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1zm-2 1H8v4h4V2zm0 6H8v4h4V8zm0 6H8v4h4v-4z"/></svg>',
                                        o,
                                        t
                                    );
                                }),
                                t.ui.componentFactory.add("tableRow", (t) => {
                                    const n = [
                                        { type: "switchbutton", model: { commandName: "setTableRowHeader", label: e("Header row"), bindIsOn: !0 } },
                                        { type: "separator" },
                                        { type: "button", model: { commandName: "insertTableRowAbove", label: e("Insert row above") } },
                                        { type: "button", model: { commandName: "insertTableRowBelow", label: e("Insert row below") } },
                                        { type: "button", model: { commandName: "removeTableRow", label: e("Delete row") } },
                                        { type: "button", model: { commandName: "selectTableRow", label: e("Select row") } },
                                    ];
                                    return this._prepareDropdown(
                                        e("Row"),
                                        '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M2.5 1h15A1.5 1.5 0 0 1 19 2.5v15a1.5 1.5 0 0 1-1.5 1.5h-15A1.5 1.5 0 0 1 1 17.5v-15A1.5 1.5 0 0 1 2.5 1zM2 2v16h16V2H2z" opacity=".6"/><path d="M7 2h1v16H7V2zm5 0h1v16h-1V2z" opacity=".6"/><path d="M1 6h18a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1zm1 2v4h4V8H2zm6 0v4h4V8H8zm6 0v4h4V8h-4z"/></svg>',
                                        n,
                                        t
                                    );
                                }),
                                t.ui.componentFactory.add("mergeTableCells", (t) => {
                                    const o = [
                                        { type: "button", model: { commandName: "mergeTableCellUp", label: e("Merge cell up") } },
                                        { type: "button", model: { commandName: n ? "mergeTableCellRight" : "mergeTableCellLeft", label: e("Merge cell right") } },
                                        { type: "button", model: { commandName: "mergeTableCellDown", label: e("Merge cell down") } },
                                        { type: "button", model: { commandName: n ? "mergeTableCellLeft" : "mergeTableCellRight", label: e("Merge cell left") } },
                                        { type: "separator" },
                                        { type: "button", model: { commandName: "splitTableCellVertically", label: e("Split cell vertically") } },
                                        { type: "button", model: { commandName: "splitTableCellHorizontally", label: e("Split cell horizontally") } },
                                    ];
                                    return this._prepareMergeSplitButtonDropdown(
                                        e("Merge cells"),
                                        '<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M2.5 1h15A1.5 1.5 0 0 1 19 2.5v15a1.5 1.5 0 0 1-1.5 1.5h-15A1.5 1.5 0 0 1 1 17.5v-15A1.5 1.5 0 0 1 2.5 1zM2 2v16h16V2H2z" opacity=".6"/><path d="M7 2h1v16H7V2zm5 0h1v7h-1V2zm6 5v1H2V7h16zM8 12v1H2v-1h6z" opacity=".6"/><path d="M7 7h12a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1zm1 2v9h10V9H8z"/></svg>',
                                        o,
                                        t
                                    );
                                });
                        }
                        _prepareDropdown(t, e, n, o) {
                            const i = this.editor,
                                r = ku(o),
                                s = this._fillDropdownWithListOptions(r, n);
                            return (
                                r.buttonView.set({ label: t, icon: e, tooltip: !0 }),
                                r.bind("isEnabled").toMany(s, "isEnabled", (...t) => t.some((t) => t)),
                                this.listenTo(r, "execute", (t) => {
                                    i.execute(t.source.commandName), t.source instanceof jh || i.editing.view.focus();
                                }),
                                r
                            );
                        }
                        _prepareMergeSplitButtonDropdown(t, e, n, o) {
                            const i = this.editor,
                                r = ku(o, Gh),
                                s = "mergeTableCells",
                                a = i.commands.get(s),
                                c = this._fillDropdownWithListOptions(r, n);
                            return (
                                r.buttonView.set({ label: t, icon: e, tooltip: !0, isEnabled: !0 }),
                                r.bind("isEnabled").toMany([a, ...c], "isEnabled", (...t) => t.some((t) => t)),
                                this.listenTo(r.buttonView, "execute", () => {
                                    i.execute(s), i.editing.view.focus();
                                }),
                                this.listenTo(r, "execute", (t) => {
                                    i.execute(t.source.commandName), i.editing.view.focus();
                                }),
                                r
                            );
                        }
                        _fillDropdownWithListOptions(t, e) {
                            const n = this.editor,
                                o = [],
                                i = new ko();
                            for (const t of e) yA(t, n, o, i);
                            return wu(t, i, n.ui.componentFactory), o;
                        }
                    }
                    function yA(t, e, n, o) {
                        const i = (t.model = new Vu(t.model)),
                            { commandName: r, bindIsOn: s } = t.model;
                        if ("button" === t.type || "switchbutton" === t.type) {
                            const t = e.commands.get(r);
                            n.push(t), i.set({ commandName: r }), i.bind("isEnabled").to(t), s && i.bind("isOn").to(t, "value");
                        }
                        i.set({ withText: !0 }), o.add(t);
                    }
                    var xA = n(6945),
                        EA = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(xA.Z, EA);
                    xA.Z.locals;
                    class DA extends V {
                        static get pluginName() {
                            return "TableSelection";
                        }
                        static get requires() {
                            return [Y_, Y_];
                        }
                        init() {
                            const t = this.editor.model;
                            this.listenTo(t, "deleteContent", (t, e) => this._handleDeleteContent(t, e), { priority: "high" }), this._defineSelectionConverter(), this._enablePluginDisabling();
                        }
                        getSelectedTableCells() {
                            const t = this.editor.plugins.get(Y_),
                                e = this.editor.model.document.selection,
                                n = t.getSelectedTableCells(e);
                            return 0 == n.length ? null : n;
                        }
                        getSelectionAsFragment() {
                            const t = this.editor.plugins.get(Y_),
                                e = this.getSelectedTableCells();
                            return e
                                ? this.editor.model.change((n) => {
                                      const o = n.createDocumentFragment(),
                                          { first: i, last: r } = t.getColumnIndexes(e),
                                          { first: s, last: a } = t.getRowIndexes(e),
                                          c = e[0].findAncestor("table");
                                      let l = a,
                                          d = r;
                                      if (t.isSelectionRectangular(e)) {
                                          const t = { firstColumn: i, lastColumn: r, firstRow: s, lastRow: a };
                                          (l = F_(c, t)), (d = V_(c, t));
                                      }
                                      const h = S_(c, { startRow: s, startColumn: i, endRow: l, endColumn: d }, n);
                                      return n.insert(h, o, 0), o;
                                  })
                                : null;
                        }
                        setCellSelection(t, e) {
                            const n = this._getCellsToSelect(t, e);
                            this.editor.model.change((t) => {
                                t.setSelection(
                                    n.cells.map((e) => t.createRangeOn(e)),
                                    { backward: n.backward }
                                );
                            });
                        }
                        getFocusCell() {
                            const t = [...this.editor.model.document.selection.getRanges()].pop().getContainedElement();
                            return t && t.is("element", "tableCell") ? t : null;
                        }
                        getAnchorCell() {
                            const t = wa(this.editor.model.document.selection.getRanges()).getContainedElement();
                            return t && t.is("element", "tableCell") ? t : null;
                        }
                        _defineSelectionConverter() {
                            const t = this.editor,
                                e = new Set();
                            t.conversion.for("editingDowncast").add((t) =>
                                t.on(
                                    "selection",
                                    (t, n, o) => {
                                        const i = o.writer;
                                        !(function (t) {
                                            for (const n of e) t.removeClass("ck-editor__editable_selected", n);
                                            e.clear();
                                        })(i);
                                        const r = this.getSelectedTableCells();
                                        if (!r) return;
                                        for (const t of r) {
                                            const n = o.mapper.toViewElement(t);
                                            i.addClass("ck-editor__editable_selected", n), e.add(n);
                                        }
                                        const s = o.mapper.toViewElement(r[r.length - 1]);
                                        i.setSelection(s, 0);
                                    },
                                    { priority: "lowest" }
                                )
                            );
                        }
                        _enablePluginDisabling() {
                            const t = this.editor;
                            this.on("change:isEnabled", () => {
                                if (!this.isEnabled) {
                                    const e = this.getSelectedTableCells();
                                    if (!e) return;
                                    t.model.change((n) => {
                                        const o = n.createPositionAt(e[0], 0),
                                            i = t.model.schema.getNearestSelectionRange(o);
                                        n.setSelection(i);
                                    });
                                }
                            });
                        }
                        _handleDeleteContent(t, e) {
                            const n = this.editor.plugins.get(Y_),
                                [o, i] = e,
                                r = this.editor.model,
                                s = !i || "backward" == i.direction,
                                a = n.getSelectedTableCells(o);
                            a.length &&
                                (t.stop(),
                                r.change((t) => {
                                    const e = a[s ? a.length - 1 : 0];
                                    r.change((t) => {
                                        for (const e of a) r.deleteContent(t.createSelection(e, "in"));
                                    });
                                    const n = r.schema.getNearestSelectionRange(t.createPositionAt(e, 0));
                                    o.is("documentSelection") ? t.setSelection(n) : o.setTo(n);
                                }));
                        }
                        _getCellsToSelect(t, e) {
                            const n = this.editor.plugins.get("TableUtils"),
                                o = n.getCellLocation(t),
                                i = n.getCellLocation(e),
                                r = Math.min(o.row, i.row),
                                s = Math.max(o.row, i.row),
                                a = Math.min(o.column, i.column),
                                c = Math.max(o.column, i.column),
                                l = new Array(s - r + 1).fill(null).map(() => []),
                                d = { startRow: r, endRow: s, startColumn: a, endColumn: c };
                            for (const { row: e, cell: n } of new A_(t.findAncestor("table"), d)) l[e - r].push(n);
                            const h = i.row < o.row,
                                u = i.column < o.column;
                            return h && l.reverse(), u && l.forEach((t) => t.reverse()), { cells: l.flat(), backward: h || u };
                        }
                    }
                    class IA extends V {
                        static get pluginName() {
                            return "TableClipboard";
                        }
                        static get requires() {
                            return [DA, Y_];
                        }
                        init() {
                            const t = this.editor,
                                e = t.editing.view.document;
                            this.listenTo(e, "copy", (t, e) => this._onCopyCut(t, e)),
                                this.listenTo(e, "cut", (t, e) => this._onCopyCut(t, e)),
                                this.listenTo(t.model, "insertContent", (t, e) => this._onInsertContent(t, ...e), { priority: "high" }),
                                this.decorate("_replaceTableSlotCell");
                        }
                        _onCopyCut(t, e) {
                            const n = this.editor.plugins.get(DA);
                            if (!n.getSelectedTableCells()) return;
                            if ("cut" == t.name && this.editor.isReadOnly) return;
                            e.preventDefault(), t.stop();
                            const o = this.editor.data,
                                i = this.editor.editing.view.document,
                                r = o.toView(n.getSelectionAsFragment());
                            i.fire("clipboardOutput", { dataTransfer: e.dataTransfer, content: r, method: t.name });
                        }
                        _onInsertContent(t, e, n) {
                            if (n && !n.is("documentSelection")) return;
                            const o = this.editor.model,
                                i = this.editor.plugins.get(Y_);
                            let r = MA(e, o);
                            if (!r) return;
                            const s = i.getSelectionAffectedTableCells(o.document.selection);
                            s.length
                                ? (t.stop(),
                                  o.change((t) => {
                                      const e = { width: i.getColumns(r), height: i.getRows(r) },
                                          n = (function (t, e, n, o) {
                                              const i = t[0].findAncestor("table"),
                                                  r = o.getColumnIndexes(t),
                                                  s = o.getRowIndexes(t),
                                                  a = { firstColumn: r.first, lastColumn: r.last, firstRow: s.first, lastRow: s.last },
                                                  c = 1 === t.length;
                                              c &&
                                                  ((a.lastRow += e.height - 1),
                                                  (a.lastColumn += e.width - 1),
                                                  (function (t, e, n, o) {
                                                      const i = o.getColumns(t),
                                                          r = o.getRows(t);
                                                      n > i && o.insertColumns(t, { at: i, columns: n - i });
                                                      e > r && o.insertRows(t, { at: r, rows: e - r });
                                                  })(i, a.lastRow + 1, a.lastColumn + 1, o));
                                              c || !o.isSelectionRectangular(t)
                                                  ? (function (t, e, n) {
                                                        const { firstRow: o, lastRow: i, firstColumn: r, lastColumn: s } = e,
                                                            a = { first: o, last: i },
                                                            c = { first: r, last: s };
                                                        SA(t, r, a, n), SA(t, s + 1, a, n), TA(t, o, c, n), TA(t, i + 1, c, n, o);
                                                    })(i, a, n)
                                                  : ((a.lastRow = F_(i, a)), (a.lastColumn = V_(i, a)));
                                              return a;
                                          })(s, e, t, i),
                                          o = n.lastRow - n.firstRow + 1,
                                          a = n.lastColumn - n.firstColumn + 1,
                                          c = { startRow: 0, startColumn: 0, endRow: Math.min(o, e.height) - 1, endColumn: Math.min(a, e.width) - 1 };
                                      r = S_(r, c, t);
                                      const l = s[0].findAncestor("table"),
                                          d = this._replaceSelectedCellsWithPasted(r, e, l, n, t);
                                      if (this.editor.plugins.get("TableSelection").isEnabled) {
                                          const e = i.sortRanges(d.map((e) => t.createRangeOn(e)));
                                          t.setSelection(e);
                                      } else t.setSelection(d[0], 0);
                                  }))
                                : j_(r, i);
                        }
                        _replaceSelectedCellsWithPasted(t, e, n, o, i) {
                            const { width: r, height: s } = e,
                                a = (function (t, e, n) {
                                    const o = new Array(n).fill(null).map(() => new Array(e).fill(null));
                                    for (const { column: e, row: n, cell: i } of new A_(t)) o[n][e] = i;
                                    return o;
                                })(t, r, s),
                                c = [...new A_(n, { startRow: o.firstRow, endRow: o.lastRow, startColumn: o.firstColumn, endColumn: o.lastColumn, includeAllSlots: !0 })],
                                l = [];
                            let d;
                            for (const t of c) {
                                const { row: e, column: n } = t;
                                n === o.firstColumn && (d = t.getPositionBefore());
                                const c = e - o.firstRow,
                                    h = n - o.firstColumn,
                                    u = a[c % s][h % r],
                                    g = u ? i.cloneElement(u) : null,
                                    m = this._replaceTableSlotCell(t, g, d, i);
                                m && (L_(m, e, n, o.lastRow, o.lastColumn, i), l.push(m), (d = i.createPositionAfter(m)));
                            }
                            const h = parseInt(n.getAttribute("headingRows") || 0),
                                u = parseInt(n.getAttribute("headingColumns") || 0),
                                g = o.firstRow < h && h <= o.lastRow,
                                m = o.firstColumn < u && u <= o.lastColumn;
                            if (g) {
                                const t = TA(n, h, { first: o.firstColumn, last: o.lastColumn }, i, o.firstRow);
                                l.push(...t);
                            }
                            if (m) {
                                const t = SA(n, u, { first: o.firstRow, last: o.lastRow }, i);
                                l.push(...t);
                            }
                            return l;
                        }
                        _replaceTableSlotCell(t, e, n, o) {
                            const { cell: i, isAnchor: r } = t;
                            return r && o.remove(i), e ? (o.insert(e, n), e) : null;
                        }
                        getTableIfOnlyTableInContent(t, e) {
                            return MA(t, e);
                        }
                    }
                    function MA(t, e) {
                        if (!t.is("documentFragment") && !t.is("element")) return null;
                        if (t.is("element", "table")) return t;
                        if (1 == t.childCount && t.getChild(0).is("element", "table")) return t.getChild(0);
                        const n = e.createRangeIn(t);
                        for (const t of n.getItems())
                            if (t.is("element", "table")) {
                                const o = e.createRange(n.start, e.createPositionBefore(t));
                                if (e.hasContent(o, { ignoreWhitespaces: !0 })) return null;
                                const i = e.createRange(e.createPositionAfter(t), n.end);
                                return e.hasContent(i, { ignoreWhitespaces: !0 }) ? null : t;
                            }
                        return null;
                    }
                    function TA(t, e, n, o, i = 0) {
                        if (e < 1) return;
                        return N_(t, e, i)
                            .filter(({ column: t, cellWidth: e }) => NA(t, e, n))
                            .map(({ cell: t }) => B_(t, e, o));
                    }
                    function SA(t, e, n, o) {
                        if (e < 1) return;
                        return P_(t, e)
                            .filter(({ row: t, cellHeight: e }) => NA(t, e, n))
                            .map(({ cell: t, column: n }) => z_(t, n, e, o));
                    }
                    function NA(t, e, n) {
                        const o = t + e - 1,
                            { first: i, last: r } = n;
                        return (t >= i && t <= r) || (t < i && o >= i);
                    }
                    class BA extends V {
                        static get pluginName() {
                            return "TableKeyboard";
                        }
                        static get requires() {
                            return [DA, Y_];
                        }
                        init() {
                            const t = this.editor.editing.view.document;
                            this.listenTo(t, "arrowKey", (...t) => this._onArrowKey(...t), { context: "table" }),
                                this.listenTo(t, "tab", (...t) => this._handleTabOnSelectedTable(...t), { context: "figure" }),
                                this.listenTo(t, "tab", (...t) => this._handleTab(...t), { context: ["th", "td"] });
                        }
                        _handleTabOnSelectedTable(t, e) {
                            const n = this.editor,
                                o = n.model.document.selection.getSelectedElement();
                            o &&
                                o.is("element", "table") &&
                                (e.preventDefault(),
                                e.stopPropagation(),
                                t.stop(),
                                n.model.change((t) => {
                                    t.setSelection(t.createRangeIn(o.getChild(0).getChild(0)));
                                }));
                        }
                        _handleTab(t, e) {
                            const n = this.editor,
                                o = this.editor.plugins.get(Y_),
                                i = n.model.document.selection,
                                r = !e.shiftKey;
                            let s = o.getTableCellsContainingSelection(i)[0];
                            if ((s || (s = this.editor.plugins.get("TableSelection").getFocusCell()), !s)) return;
                            e.preventDefault(), e.stopPropagation(), t.stop();
                            const a = s.parent,
                                c = a.parent,
                                l = c.getChildIndex(a),
                                d = a.getChildIndex(s),
                                h = 0 === d;
                            if (!r && h && 0 === l)
                                return void n.model.change((t) => {
                                    t.setSelection(t.createRangeOn(c));
                                });
                            const u = d === a.childCount - 1,
                                g = l === o.getRows(c) - 1;
                            if (r && g && u && (n.execute("insertTableRowBelow"), l === o.getRows(c) - 1))
                                return void n.model.change((t) => {
                                    t.setSelection(t.createRangeOn(c));
                                });
                            let m;
                            if (r && u) {
                                const t = c.getChild(l + 1);
                                m = t.getChild(0);
                            } else if (!r && h) {
                                const t = c.getChild(l - 1);
                                m = t.getChild(t.childCount - 1);
                            } else m = a.getChild(d + (r ? 1 : -1));
                            n.model.change((t) => {
                                t.setSelection(t.createRangeIn(m));
                            });
                        }
                        _onArrowKey(t, e) {
                            const n = this.editor,
                                o = br(e.keyCode, n.locale.contentLanguageDirection);
                            this._handleArrowKeys(o, e.shiftKey) && (e.preventDefault(), e.stopPropagation(), t.stop());
                        }
                        _handleArrowKeys(t, e) {
                            const n = this.editor.plugins.get(Y_),
                                o = this.editor.model,
                                i = o.document.selection,
                                r = ["right", "down"].includes(t),
                                s = n.getSelectedTableCells(i);
                            if (s.length) {
                                let n;
                                return (n = e ? this.editor.plugins.get("TableSelection").getFocusCell() : r ? s[s.length - 1] : s[0]), this._navigateFromCellInDirection(n, t, e), !0;
                            }
                            const a = i.focus.findAncestor("tableCell");
                            if (!a) return !1;
                            if (!i.isCollapsed)
                                if (e) {
                                    if (i.isBackward == r && !i.containsEntireContent(a)) return !1;
                                } else {
                                    const t = i.getSelectedElement();
                                    if (!t || !o.schema.isObject(t)) return !1;
                                }
                            return !!this._isSelectionAtCellEdge(i, a, r) && (this._navigateFromCellInDirection(a, t, e), !0);
                        }
                        _isSelectionAtCellEdge(t, e, n) {
                            const o = this.editor.model,
                                i = this.editor.model.schema,
                                r = n ? t.getLastPosition() : t.getFirstPosition();
                            if (!i.getLimitElement(r).is("element", "tableCell")) {
                                return o.createPositionAt(e, n ? "end" : 0).isTouching(r);
                            }
                            const s = o.createSelection(r);
                            return o.modifySelection(s, { direction: n ? "forward" : "backward" }), r.isEqual(s.focus);
                        }
                        _navigateFromCellInDirection(t, e, n = !1) {
                            const o = this.editor.model,
                                i = t.findAncestor("table"),
                                r = [...new A_(i, { includeAllSlots: !0 })],
                                { row: s, column: a } = r[r.length - 1],
                                c = r.find(({ cell: e }) => e == t);
                            let { row: l, column: d } = c;
                            switch (e) {
                                case "left":
                                    d--;
                                    break;
                                case "up":
                                    l--;
                                    break;
                                case "right":
                                    d += c.cellWidth;
                                    break;
                                case "down":
                                    l += c.cellHeight;
                            }
                            if (l < 0 || l > s || (d < 0 && l <= 0) || (d > a && l >= s))
                                return void o.change((t) => {
                                    t.setSelection(t.createRangeOn(i));
                                });
                            d < 0 ? ((d = n ? 0 : a), l--) : d > a && ((d = n ? a : 0), l++);
                            const h = r.find((t) => t.row == l && t.column == d).cell,
                                u = ["right", "down"].includes(e),
                                g = this.editor.plugins.get("TableSelection");
                            if (n && g.isEnabled) {
                                const e = g.getAnchorCell() || t;
                                g.setCellSelection(e, h);
                            } else {
                                const t = o.createPositionAt(h, u ? 0 : "end");
                                o.change((e) => {
                                    e.setSelection(t);
                                });
                            }
                        }
                    }
                    class PA extends Ys {
                        constructor(t) {
                            super(t), (this.domEventType = ["mousemove", "mouseleave"]);
                        }
                        onDomEvent(t) {
                            this.fire(t.type, t);
                        }
                    }
                    class zA extends V {
                        static get pluginName() {
                            return "TableMouse";
                        }
                        static get requires() {
                            return [DA, Y_];
                        }
                        init() {
                            this.editor.editing.view.addObserver(PA), this._enableShiftClickSelection(), this._enableMouseDragSelection();
                        }
                        _enableShiftClickSelection() {
                            const t = this.editor,
                                e = t.plugins.get(Y_);
                            let n = !1;
                            const o = t.plugins.get(DA);
                            this.listenTo(t.editing.view.document, "mousedown", (i, r) => {
                                const s = t.model.document.selection;
                                if (!this.isEnabled || !o.isEnabled) return;
                                if (!r.domEvent.shiftKey) return;
                                const a = o.getAnchorCell() || e.getTableCellsContainingSelection(s)[0];
                                if (!a) return;
                                const c = this._getModelTableCellFromDomEvent(r);
                                c && LA(a, c) && ((n = !0), o.setCellSelection(a, c), r.preventDefault());
                            }),
                                this.listenTo(t.editing.view.document, "mouseup", () => {
                                    n = !1;
                                }),
                                this.listenTo(
                                    t.editing.view.document,
                                    "selectionChange",
                                    (t) => {
                                        n && t.stop();
                                    },
                                    { priority: "highest" }
                                );
                        }
                        _enableMouseDragSelection() {
                            const t = this.editor;
                            let e,
                                n,
                                o = !1,
                                i = !1;
                            const r = t.plugins.get(DA);
                            this.listenTo(t.editing.view.document, "mousedown", (t, n) => {
                                this.isEnabled && r.isEnabled && (n.domEvent.shiftKey || n.domEvent.ctrlKey || n.domEvent.altKey || (e = this._getModelTableCellFromDomEvent(n)));
                            }),
                                this.listenTo(t.editing.view.document, "mousemove", (t, s) => {
                                    if (!s.domEvent.buttons) return;
                                    if (!e) return;
                                    const a = this._getModelTableCellFromDomEvent(s);
                                    a && LA(e, a) && ((n = a), o || n == e || (o = !0)), o && ((i = !0), r.setCellSelection(e, n), s.preventDefault());
                                }),
                                this.listenTo(t.editing.view.document, "mouseup", () => {
                                    (o = !1), (i = !1), (e = null), (n = null);
                                }),
                                this.listenTo(
                                    t.editing.view.document,
                                    "selectionChange",
                                    (t) => {
                                        i && t.stop();
                                    },
                                    { priority: "highest" }
                                );
                        }
                        _getModelTableCellFromDomEvent(t) {
                            const e = t.target,
                                n = this.editor.editing.view.createPositionAt(e, 0);
                            return this.editor.editing.mapper.toModelPosition(n).parent.findAncestor("tableCell", { includeSelf: !0 });
                        }
                    }
                    function LA(t, e) {
                        return t.parent.parent == e.parent.parent;
                    }
                    var OA = n(6306),
                        RA = { injectType: "singletonStyleTag", attributes: { "data-cke": !0 }, insert: "head", singleton: !0 };
                    ts()(OA.Z, RA);
                    OA.Z.locals;
                    function jA(t) {
                        const e = t.getSelectedElement();
                        return e && VA(e) ? e : null;
                    }
                    function FA(t) {
                        const e = t.getFirstPosition();
                        if (!e) return null;
                        let n = e.parent;
                        for (; n; ) {
                            if (n.is("element") && VA(n)) return n;
                            n = n.parent;
                        }
                        return null;
                    }
                    function VA(t) {
                        return !!t.getCustomProperty("table") && Jg(t);
                    }
                    const HA = { autoRefresh: !0 },
                        UA = 36e5;
                    class WA {
                        constructor(t, e = HA) {
                            if (!t) throw new c("token-missing-token-url", this);
                            e.initValue && this._validateTokenValue(e.initValue),
                                this.set("value", e.initValue),
                                (this._refresh =
                                    "function" == typeof t
                                        ? t
                                        : () => {
                                              return (
                                                  (e = t),
                                                  new Promise((t, n) => {
                                                      const o = new XMLHttpRequest();
                                                      o.open("GET", e),
                                                          o.addEventListener("load", () => {
                                                              const e = o.status,
                                                                  i = o.response;
                                                              return e < 200 || e > 299 ? n(new c("token-cannot-download-new-token", null)) : t(i);
                                                          }),
                                                          o.addEventListener("error", () => n(new Error("Network Error"))),
                                                          o.addEventListener("abort", () => n(new Error("Abort"))),
                                                          o.send();
                                                  })
                                              );
                                              var e;
                                          }),
                                (this._options = Object.assign({}, HA, e));
                        }
                        init() {
                            return new Promise((t, e) => {
                                this.value ? (this._options.autoRefresh && this._registerRefreshTokenTimeout(), t(this)) : this.refreshToken().then(t).catch(e);
                            });
                        }
                        refreshToken() {
                            return this._refresh()
                                .then((t) => {
                                    this._validateTokenValue(t), this.set("value", t), this._options.autoRefresh && this._registerRefreshTokenTimeout();
                                })
                                .then(() => this);
                        }
                        destroy() {
                            clearTimeout(this._tokenRefreshTimeout);
                        }
                        _validateTokenValue(t) {
                            const e = "string" == typeof t,
                                n = !/^".*"$/.test(t),
                                o = e && 3 === t.split(".").length;
                            if (!n || !o) throw new c("token-not-in-jwt-format", this);
                        }
                        _registerRefreshTokenTimeout() {
                            const t = this._getTokenRefreshTimeoutTime();
                            clearTimeout(this._tokenRefreshTimeout),
                                (this._tokenRefreshTimeout = setTimeout(() => {
                                    this.refreshToken();
                                }, t));
                        }
                        _getTokenRefreshTimeoutTime() {
                            try {
                                const [, t] = this.value.split("."),
                                    { exp: e } = JSON.parse(atob(t));
                                if (!e) return UA;
                                return Math.floor((1e3 * e - Date.now()) / 2);
                            } catch (t) {
                                return UA;
                            }
                        }
                        static create(t, e = HA) {
                            return new WA(t, e).init();
                        }
                    }
                    F(WA, B);
                    const qA = WA,
                        GA = /^data:(\S*?);base64,/;
                    class $A {
                        constructor(t, e, n) {
                            if (!t) throw new c("fileuploader-missing-file", null);
                            if (!e) throw new c("fileuploader-missing-token", null);
                            if (!n) throw new c("fileuploader-missing-api-address", null);
                            (this.file = (function (t) {
                                if ("string" != typeof t) return !1;
                                const e = t.match(GA);
                                return !(!e || !e.length);
                            })(t)
                                ? (function (t, e = 512) {
                                      try {
                                          const n = t.match(GA)[1],
                                              o = atob(t.replace(GA, "")),
                                              i = [];
                                          for (let t = 0; t < o.length; t += e) {
                                              const n = o.slice(t, t + e),
                                                  r = new Array(n.length);
                                              for (let t = 0; t < n.length; t++) r[t] = n.charCodeAt(t);
                                              i.push(new Uint8Array(r));
                                          }
                                          return new Blob(i, { type: n });
                                      } catch (t) {
                                          throw new c("fileuploader-decoding-image-data-error", null);
                                      }
                                  })(t)
                                : t),
                                (this._token = e),
                                (this._apiAddress = n);
                        }
                        onProgress(t) {
                            return this.on("progress", (e, n) => t(n)), this;
                        }
                        onError(t) {
                            return this.once("error", (e, n) => t(n)), this;
                        }
                        abort() {
                            this.xhr.abort();
                        }
                        send() {
                            return this._prepareRequest(), this._attachXHRListeners(), this._sendRequest();
                        }
                        _prepareRequest() {
                            const t = new XMLHttpRequest();
                            t.open("POST", this._apiAddress), t.setRequestHeader("Authorization", this._token.value), (t.responseType = "json"), (this.xhr = t);
                        }
                        _attachXHRListeners() {
                            const t = this,
                                e = this.xhr;
                            function n(e) {
                                return () => t.fire("error", e);
                            }
                            e.addEventListener("error", n("Network Error")),
                                e.addEventListener("abort", n("Abort")),
                                e.upload &&
                                    e.upload.addEventListener("progress", (t) => {
                                        t.lengthComputable && this.fire("progress", { total: t.total, uploaded: t.loaded });
                                    }),
                                e.addEventListener("load", () => {
                                    const t = e.status,
                                        n = e.response;
                                    if (t < 200 || t > 299) return this.fire("error", n.message || n.error);
                                });
                        }
                        _sendRequest() {
                            const t = new FormData(),
                                e = this.xhr;
                            return (
                                t.append("file", this.file),
                                new Promise((n, o) => {
                                    e.addEventListener("load", () => {
                                        const t = e.status,
                                            i = e.response;
                                        return t < 200 || t > 299 ? (i.message ? o(new c("fileuploader-uploading-data-failed", this, { message: i.message })) : o(i.error)) : n(i);
                                    }),
                                        e.addEventListener("error", () => o(new Error("Network Error"))),
                                        e.addEventListener("abort", () => o(new Error("Abort"))),
                                        e.send(t);
                                })
                            );
                        }
                    }
                    F($A, b);
                    class YA {
                        constructor(t, e) {
                            if (!t) throw new c("uploadgateway-missing-token", null);
                            if (!e) throw new c("uploadgateway-missing-api-address", null);
                            (this._token = t), (this._apiAddress = e);
                        }
                        upload(t) {
                            return new $A(t, this._token, this._apiAddress);
                        }
                    }
                    class KA extends Do {
                        static get pluginName() {
                            return "CloudServicesCore";
                        }
                        createToken(t, e) {
                            return new qA(t, e);
                        }
                        createUploadGateway(t, e) {
                            return new YA(t, e);
                        }
                    }
                    class QA extends Ig {}
                    (QA.builtinPlugins = [
                        class extends V {
                            static get requires() {
                                return [Pm, Rg, Wm, Rm, Qm, xp];
                            }
                            static get pluginName() {
                                return "Essentials";
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [Dp];
                            }
                            static get pluginName() {
                                return "CKFinderUploadAdapter";
                            }
                            init() {
                                const t = this.editor.config.get("ckfinder.uploadUrl");
                                t && (this.editor.plugins.get(Dp).createUploadAdapter = (e) => new Pp(e, t, this.editor.t));
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [qg];
                            }
                            static get pluginName() {
                                return "Autoformat";
                            }
                            afterInit() {
                                this._addListAutoformats(), this._addBasicStylesAutoformats(), this._addHeadingAutoformats(), this._addBlockQuoteAutoformats(), this._addCodeBlockAutoformats(), this._addHorizontalLineAutoformats();
                            }
                            _addListAutoformats() {
                                const t = this.editor.commands;
                                t.get("bulletedList") && zp(this.editor, this, /^[*-]\s$/, "bulletedList"),
                                    t.get("numberedList") && zp(this.editor, this, /^1[.|)]\s$/, "numberedList"),
                                    t.get("todoList") && zp(this.editor, this, /^\[\s?\]\s$/, "todoList"),
                                    t.get("checkTodoList") &&
                                        zp(this.editor, this, /^\[\s?x\s?\]\s$/, () => {
                                            this.editor.execute("todoList"), this.editor.execute("checkTodoList");
                                        });
                            }
                            _addBasicStylesAutoformats() {
                                const t = this.editor.commands;
                                if (t.get("bold")) {
                                    const t = Rp(this.editor, "bold");
                                    Lp(this.editor, this, /(?:^|\s)(\*\*)([^*]+)(\*\*)$/g, t), Lp(this.editor, this, /(?:^|\s)(__)([^_]+)(__)$/g, t);
                                }
                                if (t.get("italic")) {
                                    const t = Rp(this.editor, "italic");
                                    Lp(this.editor, this, /(?:^|\s)(\*)([^*_]+)(\*)$/g, t), Lp(this.editor, this, /(?:^|\s)(_)([^_]+)(_)$/g, t);
                                }
                                if (t.get("code")) {
                                    const t = Rp(this.editor, "code");
                                    Lp(this.editor, this, /(`)([^`]+)(`)$/g, t);
                                }
                                if (t.get("strikethrough")) {
                                    const t = Rp(this.editor, "strikethrough");
                                    Lp(this.editor, this, /(~~)([^~]+)(~~)$/g, t);
                                }
                            }
                            _addHeadingAutoformats() {
                                const t = this.editor.commands.get("heading");
                                t &&
                                    t.modelElements
                                        .filter((t) => t.match(/^heading[1-6]$/))
                                        .forEach((e) => {
                                            const n = e[7],
                                                o = new RegExp(`^(#{${n}})\\s$`);
                                            zp(this.editor, this, o, () => {
                                                if (!t.isEnabled || t.value === e) return !1;
                                                this.editor.execute("heading", { value: e });
                                            });
                                        });
                            }
                            _addBlockQuoteAutoformats() {
                                this.editor.commands.get("blockQuote") && zp(this.editor, this, /^>\s$/, "blockQuote");
                            }
                            _addCodeBlockAutoformats() {
                                const t = this.editor,
                                    e = t.model.document.selection;
                                t.commands.get("codeBlock") &&
                                    zp(t, this, /^```$/, () => {
                                        if (e.getFirstPosition().parent.is("element", "listItem")) return !1;
                                        this.editor.execute("codeBlock", { usePreviousLanguageChoice: !0 });
                                    });
                            }
                            _addHorizontalLineAutoformats() {
                                this.editor.commands.get("horizontalLine") && zp(this.editor, this, /^---$/, "horizontalLine");
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [Vp, Up];
                            }
                            static get pluginName() {
                                return "Bold";
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [qp, $p];
                            }
                            static get pluginName() {
                                return "Italic";
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [Jp, ef];
                            }
                            static get pluginName() {
                                return "BlockQuote";
                            }
                        },
                        class extends V {
                            static get pluginName() {
                                return "CKBox";
                            }
                            static get requires() {
                                return [mf, nf];
                            }
                        },
                        class extends V {
                            static get pluginName() {
                                return "CKFinder";
                            }
                            static get requires() {
                                return ["Link", "CKFinderUploadAdapter", Af, bf];
                            }
                        },
                        class extends Do {
                            static get pluginName() {
                                return "CloudServices";
                            }
                            static get requires() {
                                return [KA];
                            }
                            init() {
                                const t = this.context.config.get("cloudServices") || {};
                                for (const e in t) this[e] = t[e];
                                if (((this._tokens = new Map()), this.tokenUrl)) return (this.token = this.context.plugins.get("CloudServicesCore").createToken(this.tokenUrl)), this._tokens.set(this.tokenUrl, this.token), this.token.init();
                                this.token = null;
                            }
                            registerTokenUrl(t) {
                                if (this._tokens.has(t)) return Promise.resolve(this.getTokenFor(t));
                                const e = this.context.plugins.get("CloudServicesCore").createToken(t);
                                return this._tokens.set(t, e), e.init();
                            }
                            getTokenFor(t) {
                                const e = this._tokens.get(t);
                                if (!e) throw new c("cloudservices-token-not-registered", this);
                                return e;
                            }
                            destroy() {
                                super.destroy();
                                for (const t of this._tokens.values()) t.destroy();
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [Cf, "ImageUpload"];
                            }
                            init() {
                                const t = this.editor;
                                t.plugins.has("ImageBlockEditing") || t.plugins.has("ImageInlineEditing") || l("easy-image-image-feature-missing", t);
                            }
                            static get pluginName() {
                                return "EasyImage";
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [Sf, Pf];
                            }
                            static get pluginName() {
                                return "Heading";
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [mk, fk];
                            }
                            static get pluginName() {
                                return "Image";
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [wk, _k];
                            }
                            static get pluginName() {
                                return "ImageCaption";
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [Ok, Fk];
                            }
                            static get pluginName() {
                                return "ImageStyle";
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [zf, Yf];
                            }
                            static get pluginName() {
                                return "ImageToolbar";
                            }
                            afterInit() {
                                const t = this.editor,
                                    e = t.t,
                                    n = t.plugins.get(zf),
                                    o = t.plugins.get("ImageUtils");
                                var i;
                                n.register("image", { ariaLabel: e("Image toolbar"), items: ((i = t.config.get("image.toolbar") || []), i.map((t) => (D(t) ? t.name : t))), getRelatedElement: (t) => o.getClosestSelectedImageWidget(t) });
                            }
                        },
                        class extends V {
                            static get pluginName() {
                                return "ImageUpload";
                            }
                            static get requires() {
                                return [ab, $k, tb];
                            }
                        },
                        class extends V {
                            static get pluginName() {
                                return "Indent";
                            }
                            static get requires() {
                                return [lb, ub];
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [Kb, sw, lw];
                            }
                            static get pluginName() {
                                return "Link";
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [zw, Ow];
                            }
                            static get pluginName() {
                                return "List";
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [$w, Xw, Kw, vm];
                            }
                            static get pluginName() {
                                return "MediaEmbed";
                            }
                        },
                        Df,
                        class extends V {
                            static get pluginName() {
                                return "PasteFromOffice";
                            }
                            static get requires() {
                                return [Bg];
                            }
                            init() {
                                const t = this.editor,
                                    e = t.editing.view.document,
                                    n = [];
                                n.push(new u_(e)),
                                    n.push(new a_(e)),
                                    t.plugins.get("ClipboardPipeline").on(
                                        "inputTransformation",
                                        (o, i) => {
                                            if (i._isTransformedWithPasteFromOffice) return;
                                            if (t.model.document.selection.getFirstPosition().parent.is("element", "codeBlock")) return;
                                            const r = i.dataTransfer.getData("text/html"),
                                                s = n.find((t) => t.isActive(r));
                                            s && ((i._parsedData = m_(r, e.stylesProcessor)), s.execute(i), (i._isTransformedWithPasteFromOffice = !0));
                                        },
                                        { priority: "high" }
                                    );
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [lk, Yf];
                            }
                            static get pluginName() {
                                return "PictureEditing";
                            }
                            afterInit() {
                                const t = this.editor;
                                t.plugins.has("ImageBlockEditing") && t.model.schema.extend("imageBlock", { allowAttributes: ["sources"] }),
                                    t.plugins.has("ImageInlineEditing") && t.model.schema.extend("imageInline", { allowAttributes: ["sources"] }),
                                    this._setupConversion(),
                                    this._setupImageUploadEditingIntegration();
                            }
                            _setupConversion() {
                                const t = this.editor,
                                    e = t.conversion,
                                    n = t.plugins.get("ImageUtils");
                                e.for("upcast").add(
                                    (function (t) {
                                        const e = ["srcset", "media", "type", "sizes"];
                                        return (t) => {
                                            t.on("element:picture", n);
                                        };
                                        function n(n, o, i) {
                                            const r = o.viewItem;
                                            if (!i.consumable.test(r, { name: !0 })) return;
                                            const s = new Map();
                                            for (const t of r.getChildren())
                                                if (t.is("element", "source")) {
                                                    const n = {};
                                                    for (const o of e) t.hasAttribute(o) && i.consumable.test(t, { attributes: o }) && (n[o] = t.getAttribute(o));
                                                    Object.keys(n).length && s.set(t, n);
                                                }
                                            const a = t.findViewImgElement(r);
                                            if (!a) return;
                                            let c = o.modelCursor.parent;
                                            if (!c.is("element", "imageBlock")) {
                                                const t = i.convertItem(a, o.modelCursor);
                                                (o.modelRange = t.modelRange), (o.modelCursor = t.modelCursor), (c = wa(t.modelRange.getItems()));
                                            }
                                            i.consumable.consume(r, { name: !0 });
                                            for (const [t, e] of s) i.consumable.consume(t, { attributes: Object.keys(e) });
                                            s.size && i.writer.setAttribute("sources", Array.from(s.values()), c), i.convertChildren(r, c);
                                        }
                                    })(n)
                                ),
                                    e.for("downcast").add(
                                        (function (t) {
                                            return (t) => {
                                                t.on("attribute:sources:imageBlock", e), t.on("attribute:sources:imageInline", e);
                                            };
                                            function e(e, n, o) {
                                                if (!o.consumable.consume(n.item, e.name)) return;
                                                const i = o.writer,
                                                    r = o.mapper.toViewElement(n.item),
                                                    s = t.findViewImgElement(r);
                                                if (n.attributeNewValue && n.attributeNewValue.length) {
                                                    const t = i.createContainerElement(
                                                            "picture",
                                                            null,
                                                            n.attributeNewValue.map((t) => i.createEmptyElement("source", t))
                                                        ),
                                                        e = [];
                                                    let o = s.parent;
                                                    for (; o && o.is("attributeElement"); ) {
                                                        const t = o.parent;
                                                        i.unwrap(i.createRangeOn(s), o), e.unshift(o), (o = t);
                                                    }
                                                    i.insert(i.createPositionBefore(s), t), i.move(i.createRangeOn(s), i.createPositionAt(t, "end"));
                                                    for (const n of e) i.wrap(i.createRangeOn(t), n);
                                                } else if (s.parent.is("element", "picture")) {
                                                    const t = s.parent;
                                                    i.move(i.createRangeOn(s), i.createPositionBefore(t)), i.remove(t);
                                                }
                                            }
                                        })(n)
                                    );
                            }
                            _setupImageUploadEditingIntegration() {
                                const t = this.editor;
                                t.plugins.has("ImageUploadEditing") &&
                                    this.listenTo(t.plugins.get("ImageUploadEditing"), "uploadComplete", (e, { imageElement: n, data: o }) => {
                                        const i = o.sources;
                                        i &&
                                            t.model.change((t) => {
                                                t.setAttributes({ sources: i }, n);
                                            });
                                    });
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [kA, vA, DA, zA, BA, IA, vm];
                            }
                            static get pluginName() {
                                return "Table";
                            }
                        },
                        class extends V {
                            static get requires() {
                                return [zf];
                            }
                            static get pluginName() {
                                return "TableToolbar";
                            }
                            afterInit() {
                                const t = this.editor,
                                    e = t.t,
                                    n = t.plugins.get(zf),
                                    o = t.config.get("table.contentToolbar"),
                                    i = t.config.get("table.tableToolbar");
                                o && n.register("tableContent", { ariaLabel: e("Table toolbar"), items: o, getRelatedElement: FA }), i && n.register("table", { ariaLabel: e("Table toolbar"), items: i, getRelatedElement: jA });
                            }
                        },
                        class extends V {
                            static get requires() {
                                return ["Delete", "Input"];
                            }
                            static get pluginName() {
                                return "TextTransformation";
                            }
                            constructor(t) {
                                super(t), t.config.define("typing", { transformations: { include: lp } });
                            }
                            init() {
                                const t = this.editor.model.document.selection;
                                t.on("change:range", () => {
                                    this.isEnabled = !t.anchor.parent.is("element", "codeBlock");
                                }),
                                    this._enableTransformationWatchers();
                            }
                            _enableTransformationWatchers() {
                                const t = this.editor,
                                    e = t.model,
                                    n = t.plugins.get("Delete"),
                                    o = (function (t) {
                                        const e = t.extra || [],
                                            n = t.remove || [],
                                            o = (t) => !n.includes(t);
                                        return (function (t) {
                                            const e = new Set();
                                            for (const n of t)
                                                if (cp[n]) for (const t of cp[n]) e.add(t);
                                                else e.add(n);
                                            return Array.from(e);
                                        })(t.include.concat(e).filter(o))
                                            .filter(o)
                                            .map((t) => ap[t] || t)
                                            .filter((t) => "object" == typeof t)
                                            .map((t) => ({ from: dp(t.from), to: hp(t.to) }));
                                    })(t.config.get("typing.transformations")),
                                    i = new Jm(t.model, (t) => {
                                        for (const e of o) {
                                            if (e.from.test(t)) return { normalizedTransformation: e };
                                        }
                                    });
                                i.on("matched:data", (t, o) => {
                                    if (!o.batch.isTyping) return;
                                    const { from: i, to: r } = o.normalizedTransformation,
                                        s = i.exec(o.text),
                                        a = r(s.slice(1)),
                                        c = o.range;
                                    let l = s.index;
                                    e.enqueueChange((t) => {
                                        for (let n = 1; n < s.length; n++) {
                                            const o = s[n],
                                                i = a[n - 1];
                                            if (null == i) {
                                                l += o.length;
                                                continue;
                                            }
                                            const r = c.start.getShiftedBy(l),
                                                d = e.createRange(r, r.getShiftedBy(o.length)),
                                                h = up(r);
                                            e.insertContent(t.createText(i, h), d), (l += i.length);
                                        }
                                        e.enqueueChange(() => {
                                            n.requestUndoOnBackspace();
                                        });
                                    });
                                }),
                                    i.bind("isEnabled").to(this);
                            }
                        },
                    ]),
                        (QA.defaultConfig = {
                            toolbar: { items: ["heading", "|", "bold", "italic", "link", "bulletedList", "numberedList", "|", "outdent", "indent", "|", "uploadImage", "blockQuote", "insertTable", "mediaEmbed", "undo", "redo"] },
                            image: { toolbar: ["imageStyle:inline", "imageStyle:block", "imageStyle:side", "|", "toggleImageCaption", "imageTextAlternative"] },
                            table: { contentToolbar: ["tableColumn", "tableRow", "mergeTableCells"] },
                            language: "en",
                        });
                })(),
                (o = o.default)
            );
        })()
    );
//# sourceMappingURL=ckeditor.js.map
