@ckeditor/ckeditor5-mention 46.0.0-alpha.3 → 46.0.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["index.js","../src/mentioncommand.ts","../src/mentionediting.ts","../src/ui/mentionsview.ts","../src/ui/domwrapperview.ts","../src/ui/mentionlistitemview.ts","../src/mentionui.ts","../src/mention.ts"],"names":["BRACKET_PAIRS","MentionCommand","Command","editor","_isEnabledBasedOnSelection","refresh","model","doc","document","isEnabled","schema","checkAttributeInSelection","selection","execute","options","mentionData","mention","id","mentionID","range","getFirstRange","canEditAt","mentionText","text","_addMentionAttributes","_text","startsWith","marker","CKEditorError","change","writer","currentAttributes","toMap","getAttributes","attributesWithMention","Map","entries","set","insertionRange","insertContent","createText","nodeBefore","start","nodeAfter","end","isFollowedByWhiteSpace","is","data","isInsertedInBrackets","precedingCharacter","slice","isPrecededByOpeningBracket","isFollowedByBracketClosure","getShiftedBy","length","MentionEditing","Plugin","pluginName","isOfficialPlugin","init","extend","allowAttributes","conversion","for","elementToAttribute","view","name","attributes","classes","key","value","viewElement","_toMentionAttribute","attributeToElement","createViewMentionElement","add","preventPartialMentionDowncast","registerPostFixer","removePartialMentionPostFixer","extendAttributeOnMentionPostFixer","selectionMentionAttributePostFixer","commands","baseMentionData","Object","assign","uid","viewElementOrMention","dataMention","getAttribute","textNode","getChild","dispatcher","on","evt","conversionApi","attributeNewValue","item","consumable","consume","priority","class","createAttributeElement","focus","isCollapsed","hasAttribute","shouldNotTypeWithMentionAt","removeSelectionAttribute","position","isAtStart","isAfterAMention","changes","differ","getChanges","wasChanged","type","nodeAfterInsertedTextNode","nextSibling","checkAndFix","insertedNode","createRangeIn","getItems","isInline","nodeAfterInserted","attributeKey","node","isBrokenMentionNode","setAttribute","expectedText","removeAttribute","MentionsView","ListView","selected","locale","extendTemplate","tabindex","selectFirst","select","selectNext","index","items","getIndex","selectPrevious","indexToGet","get","removeHighlight","highlight","_isItemVisibleInScrolledArea","element","scrollTop","offsetTop","executeSelected","fire","Rect","contains","MentionDomWrapperView","View","domElement","template","undefined","classList","isOn","remove","listenTo","render","MentionListItemView","ListItemView","child","children","first","VERTICAL_SPACING","defaultHandledKeyCodes","keyCodes","arrowup","arrowdown","esc","defaultCommitKeyCodes","enter","tab","MentionUI","_mentionsView","_mentionsConfigurations","_balloon","_items","Collection","_lastRequested","_requestFeedDebounced","requires","ContextualBalloon","_createMentionView","debounce","_requestFeed","config","define","feeds","commitKeys","handledKeyCodes","concat","plugins","editing","isHandledKey","keyCode","_isUIVisible","preventDefault","stop","includes","_hideUIAndRemoveMarker","clickOutsideHandler","emitter","activator","contextElements","callback","mentionDescription","feed","dropdownLimit","isValidMentionMarker","feedCallback","bind","createFeedCallback","itemRenderer","definition","_setupTextWatcher","_handleFeedResponse","destroy","visibleView","mentionsView","bindTo","using","markerDropdownLimit","listItemView","_renderItem","delegate","to","mentionMarker","markers","createPositionAt","getStart","createRange","_getItemRenderer","feedText","feedResponse","isAsynchronous","Promise","then","response","catch","error","logWarning","feedsWithPattern","map","pattern","createRegExp","minimumCharacters","watcher","TextWatcher","createTestCallback","markerDefinition","getLastValidMarkerInText","markerPosition","parent","isPositionInExistingMention","isMarkerInExistingMention","requestFeedText","matchedTextLength","markerRange","checkIfStillInCompletionMode","updateMarker","addMarker","usingOperation","affectsData","mentionCommand","clear","feedItem","_showOrUpdateUI","markerMarker","updatePosition","_getBalloonPanelPositionData","singleViewMode","balloonClassName","hasView","removeMarker","label","renderer","renderResult","buttonView","ButtonView","withText","preferredPosition","domConverter","mapper","uiLanguageDirection","target","modelRange","getRange","root","rootName","viewRange","toViewRange","rangeRects","getDomRangeRects","viewRangeToDom","pop","limiter","viewDocument","editableElement","mapViewToDom","positions","getBalloonPanelPositions","targetRect","top","bottom","left","right","withArrow","balloonRect","height","width","prototype","hasOwnProperty","call","caret_se","caret_sw","caret_ne","caret_nw","lastValidMarker","currentMarkerLastIndex","lastIndexOf","substring","match","numberOfCharacters","openAfterCharacters","env","features","isRegExpUnicodePropertySupported","mentionCharacters","replace","RegExp","textMatcher","splitStringFrom","textToTest","test","regExp","textToMatch","feedItems","filteredItems","filter","itemId","String","toLowerCase","hasMention","has","Mention","toMentionAttribute"],"mappings":";;;;AAAA,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACxE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAChI,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,iBAAiB,CAAC,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACvI,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACtE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;;ACW5C,KAAA,CAAMA,aAAAA,CAAAA,CAAAA,CAAgB;ADRtB,CAAC,CAAC,CAAC,CCSF,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA;ADRN,CAAC,CAAC,CAAC,CCSF,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA;ADRN,CAAC,CAAC,CAAC,CCSF,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AACN,CAAA;AAEA,CAAA,CAAA;ADTA,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;AACtB,CAAC;AACD,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACnG,CAAC;AACD,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AAC7G,CAAC;AACD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK;AACtD,CAAC;AACD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;AAC9D,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACb,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;AAChB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG;AACpB,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACrE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC;AACD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACxF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;AAC9D,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACb,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;AAChB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG;AACpB,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACrE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CCWI,KAAA,CAAMC,cAAAA,CAAAA,OAAAA,CAAuBC,OAAAA,CAAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADVD,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC,CCYH,WAAA,CAAoBC,MAAc,CAAG;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAEA,MAAAA,CAAAA;ADXT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK;AACpH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCaL,IAAI,CAACC,0BAA0B,CAAA,CAAA,CAAG,KAAA;AACnC,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADbD,CAAC,CAAC,CAAC,CAAC,CAAC;ACeH,CAAA,CAAA,CAAA,CAAA,CACD,OAAgBC,CAAAA,CAAAA,CAAgB;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,KAAAA,CAAAA,CAAAA,CAAQ,IAAI,CAACH,MAAM,CAACG,KAAK;ADdjC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCeL,KAAA,CAAMC,GAAAA,CAAAA,CAAAA,CAAMD,KAAAA,CAAME,QAAQ;ADd5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCgBL,IAAI,CAACC,SAAS,CAAA,CAAA,CAAGH,KAAAA,CAAMI,MAAM,CAACC,yBAAyB,CAAEJ,GAAAA,CAAIK,SAAS,CAAA,CAAE,CAAA,OAAA,CAAA,CAAA;AACzE,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADhBD,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO;AACxB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO;AACnD,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9G,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;AAChE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AACrH,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM;AAC3D,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AAC7C,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS;AACnG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACX,CAAC,CAAC,CAAC,CAAC,CCkBaC,OAAAA,CAASC,OAKxB,CAAA,CAAS;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMR,KAAAA,CAAAA,CAAAA,CAAQ,IAAI,CAACH,MAAM,CAACG,KAAK;ADtBjC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCuBL,KAAA,CAAME,QAAAA,CAAAA,CAAAA,CAAWF,KAAAA,CAAME,QAAQ;ADtBjC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCuBL,KAAA,CAAMI,SAAAA,CAAAA,CAAAA,CAAYJ,QAAAA,CAASI,SAAS;AAEpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMG,WAAAA,CAAAA,CAAAA,CAAc,MAAA,CAAOD,OAAAA,CAAQE,OAAO,CAAA,CAAA,CAAA,CAAI,CAAA,MAAA,CAAA,CAAA,CAAA,CAAW;AAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAIH,OAAAA,CAAQE;AAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIF,OAAAA,CAAQE,OAAO;ADrBpG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCsBL,KAAA,CAAME,SAAAA,CAAAA,CAAAA,CAAYH,WAAAA,CAAYE,EAAE;AAEhC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAME,KAAAA,CAAAA,CAAAA,CAAQL,OAAAA,CAAQK,KAAK,CAAA,CAAA,CAAA,CAAIP,SAAAA,CAAUQ,aAAa,CAAA,CAAA;ADtBxD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK;ACyBhE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACd,KAAAA,CAAMe,SAAS,CAAEF,KAAAA,CAAAA,CAAAA,CAAU;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADvBF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCyBL,KAAA,CAAMG,WAAAA,CAAAA,CAAAA,CAAcR,OAAAA,CAAQS,IAAI,CAAA,CAAA,CAAA,CAAIL,SAAAA;AAEpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMF,OAAAA,CAAAA,CAAAA,CAAUQ,qBAAAA,CAAuB;ADzBzC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCyBgCC,KAAAA,CAAAA,CAAOH,WAAAA;ADxBlD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCwBoDL,EAAAA,CAAAA,CAAIC;ADvBnE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCuBqE,CAAA,CAAGH,WAAAA,CAAAA;AAE9E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACG,SAAAA,CAAUQ,UAAU,CAAEZ,OAAAA,CAAQa,MAAM,CAAA,CAAA,CAAK;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADvBH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;AAClC,CAAC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAChB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;AACpC,CAAC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAChB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC;AAC5D,CAAC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC;ACyBlC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACD,KAAA,CAAM,GAAA,CAAIC,aAAAA,CACT,CAAA,cAAA,CAAA,SAAA,CAAA,EAAA,CAAA,CAAA,CACA,IAAI,CAAA;AAEN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD3BF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC6BLtB,KAAAA,CAAMuB,MAAM,CAAEC,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;AD5BhB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC6BR,KAAA,CAAMC,iBAAAA,CAAAA,CAAAA,CAAoBC,KAAAA,CAAOpB,SAAAA,CAAUqB,aAAa,CAAA,CAAA,CAAA;AACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,qBAAAA,CAAAA,CAAAA,CAAwB,GAAA,CAAIC,GAAAA,CAAKJ,iBAAAA,CAAkBK,OAAO,CAAA,CAAA,CAAA;AD5BnE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC8BRF,qBAAAA,CAAsBG,GAAG,CAAE,CAAA,OAAA,CAAA,CAAA,CAAWrB,OAAAA,CAAAA;AD7BzC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;AAC3D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC+BR,KAAA,CAAMsB,cAAAA,CAAAA,CAAAA,CAAiBhC,KAAAA,CAAMiC,aAAa,CAAET,MAAAA,CAAOU,UAAU,CAAElB,WAAAA,CAAAA,CAAaY,qBAAAA,CAAAA,CAAAA,CAAyBf,KAAAA,CAAAA;AACrG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMsB,UAAAA,CAAAA,CAAAA,CAAaH,cAAAA,CAAeI,KAAK,CAACD,UAAU;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAME,SAAAA,CAAAA,CAAAA,CAAYL,cAAAA,CAAeM,GAAG,CAACD,SAAS;AD9BjD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCgCR,KAAA,CAAME,sBAAAA,CAAAA,CAAAA,CAAyBF,SAAAA,CAAAA,CAAAA,CAAAA,CAAaA,SAAAA,CAAUG,EAAE,CAAE,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAaH,SAAAA,CAAUI,IAAI,CAACrB,UAAU,CAAE,CAAA,CAAA,CAAA,CAAA;AAClG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAIsB,oBAAAA,CAAAA,CAAAA,CAAuB,KAAA;AD/B9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCiCR,EAAA,CAAA,CAAKP,UAAAA,CAAAA,CAAAA,CAAAA,CAAcE,SAAAA,CAAAA,CAAAA,CAAAA,CAAaF,UAAAA,CAAWK,EAAE,CAAE,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAaH,SAAAA,CAAUG,EAAE,CAAE,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAY;AACrF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMG,kBAAAA,CAAAA,CAAAA,CAAqBR,UAAAA,CAAWM,IAAI,CAACG,KAAK,CAAE,CAAA,CAAC,CAAA;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,0BAAAA,CAAAA,CAAAA,CAA6BF,kBAAAA,CAAAA,EAAAA,CAAsBjD,aAAAA;ADhC7D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCiCX,KAAA,CAAMoD,0BAAAA,CAAAA,CAAAA,CAA6BD,0BAAAA,CAAAA,CAAAA,CAAAA,CAA8BR,SAAAA,CAAUI,IAAI,CAACrB,UAAU,CACzF1B,aAAa,CAAEiD,kBAAAA,CAAkD,CAAA;AAGlED,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,oBAAAA,CAAAA,CAAAA,CAAuBG,0BAAAA,CAAAA,CAAAA,CAAAA,CAA8BC,0BAAAA;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADnCH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI;AACzE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO;AACtD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ;AACxE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;AAC5D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCqCR,EAAA,CAAA,CAAK,CAACJ,oBAAAA,CAAAA,CAAAA,CAAAA,CAAwB,CAACH,sBAAAA,CAAAA,CAAyB;AACvDvC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAMiC,aAAa,CAAET,MAAAA,CAAOU,UAAU,CAAE,CAAA,CAAA,CAAA,CAAA,CAAKT,iBAAAA,CAAAA,CAAAA,CAAqBZ,KAAAA,CAAOuB,KAAK,CAACW,YAAY,CAAE/B,WAAAA,CAAYgC,MAAM,CAAA,CAAA;AAChH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AACD;;AC5JA,CAAA,CAAA;AF0HA,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO;AAC9B,CAAC;AACD,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO;AAClG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;AAC1H,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC,CExHI,KAAA,CAAMC,cAAAA,CAAAA,OAAAA,CAAuBC,MAAAA,CAAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFyHD,CAAC,CAAC,CAAC,CAAC,CAAC;AEvHH,CAAA,CAAA,CAAA,CAAA,CACD,MAAA,CAAA,GAAA,CAAkBC,UAAAA,CAAAA,CAAAA,CAAa;AFwHhC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEvHL,MAAA,CAAO,CAAA,cAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFuHD,CAAC,CAAC,CAAC,CAAC,CAAC;AErHH,CAAA,CAAA,CAAA,CAAA,CACD,MAAA,CAAA,GAAA,CAA2BC,gBAAAA,CAAAA,CAAAA,CAAyB;AFsHrD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CErHL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFqHD,CAAC,CAAC,CAAC,CAAC,CAAC;AEnHH,CAAA,CAAA,CAAA,CAAA,CACD,IAAOC,CAAAA,CAAAA,CAAa;AFoHrB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEnHL,KAAA,CAAMxD,MAAAA,CAAAA,CAAAA,CAAS,IAAI,CAACA,MAAM;AFoH5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEnHL,KAAA,CAAMG,KAAAA,CAAAA,CAAAA,CAAQH,MAAAA,CAAOG,KAAK;AFoH5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEnHL,KAAA,CAAMC,GAAAA,CAAAA,CAAAA,CAAMD,KAAAA,CAAME,QAAQ;AFoH5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;AEjHtDF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAMI,MAAM,CAACkD,MAAM,CAAE,CAAA,CAAA,IAAA,CAAA,CAAA,CAAS;AFmHhC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEnHuBC,eAAAA,CAAAA,CAAiB,CAAA,OAAA;AAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFqH7D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU;AElH1B1D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO2D,UAAU,CAACC,GAAG,CAAE,CAAA,MAAA,CAAA,CAAA,CAAWC,kBAAkB,CAAE;AFoHxD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEnHRC,IAAAA,CAAAA,CAAM;AFoHT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEnHXC,IAAAA,CAAAA,CAAM,CAAA,IAAA,CAAA;AFoHV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEnHXC,UAAAA,CAAAA,CAAY,CAAA,IAAA,CAAA,OAAA,CAAA;AFoHhB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEnHXC,OAAAA,CAAAA,CAAS,CAAA,OAAA;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFoHH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEnHR9D,KAAAA,CAAAA,CAAO;AFoHV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEnHX+D,GAAAA,CAAAA,CAAK,CAAA,OAAA,CAAA;AFoHT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEnHXC,KAAAA,CAAAA,CAAO,CAAEC,WAAAA,CAAAA,CAAAA,CAA+BC,mBAAAA,CAAqBD,WAAAA;AAC9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFoHF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU;AEjH5BpE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO2D,UAAU,CAACC,GAAG,CAAE,CAAA,QAAA,CAAA,CAAA,CAAaU,kBAAkB,CAAE;AFmH1D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CElHRnE,KAAAA,CAAAA,CAAO,CAAA,OAAA,CAAA;AFmHV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CElHR2D,IAAAA,CAAAA,CAAMS;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACAvE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO2D,UAAU,CAACC,GAAG,CAAE,CAAA,QAAA,CAAA,CAAA,CAAaY,GAAG,CAAEC,6BAAAA,CAAAA;AFmH3C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEjHLrE,GAAAA,CAAIsE,iBAAiB,CAAE/C,CAAAA,MAAAA,CAAAA,CAAAA,CAAUgD,6BAAAA,CAA+BhD,MAAAA,CAAAA,CAAQvB,GAAAA,CAAAA,CAAKD,KAAAA,CAAMI,MAAM,CAAA,CAAA;AACzFH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAIsE,iBAAiB,CAAE/C,CAAAA,MAAAA,CAAAA,CAAAA,CAAUiD,iCAAAA,CAAmCjD,MAAAA,CAAAA,CAAQvB,GAAAA,CAAAA,CAAAA;AAC5EA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAIsE,iBAAiB,CAAE/C,CAAAA,MAAAA,CAAAA,CAAAA,CAAUkD,kCAAAA,CAAoClD,MAAAA,CAAAA,CAAQvB,GAAAA,CAAAA,CAAAA;AAE7EJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO8E,QAAQ,CAACN,GAAG,CAAE,CAAA,OAAA,CAAA,CAAA,CAAW,GAAA,CAAI1E,cAAAA,CAAgBE,MAAAA,CAAAA,CAAAA;AACrD,CAAA,CAAA,CAAA,CAAA;AACD;AAEA,CAAA,CAAA;AFgHA,CAAC,CAAC,CAAC,CAAC;AE9GH,CAAA,CAAA,CAAA,CACM,QAAA,CAASqB,qBAAAA,CACf0D,eAA8C,CAAA,CAC9CnC,IAA8B,CAAA,CAAA;AF6G/B,CAAC,CAAC,CAAC,CE3GF,MAAA,CAAOoC,MAAAA,CAAOC,MAAM,CAAE;AF4GvB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE5GkBC,GAAAA,CAAAA,CAAKA,GAAAA,CAAAA;AF6G9B,CAAC,CAAC,CAAC,CAAC,CE7GgC,CAAA,CAAGH,eAAAA,CAAAA,CAAiBnC,IAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAC,CAAA;AACjE;AAEA,CAAA,CAAA;AF6GA,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;AACrF,CAAC;AACD,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC;AAC5B,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AACnH,CAAC;AACD,CAAC,CAAC,CAAC,CAAC;AE3GH,CAAA,CAAA,CAAA,CACM,QAAA,CAASyB,mBAAAA,CACfc,oBAAkC,CAAA,CAClCvC,IAA8B,CAAA,CAAA;AF0G/B,CAAC,CAAC,CAAC,CExGF,KAAA,CAAMwC,WAAAA,CAAAA,CAAAA,CAAcD,oBAAAA,CAAqBE,YAAY,CAAE,CAAA,IAAA,CAAA,OAAA,CAAA,CAAA;AFyGxD,CAAC,CAAC,CAAC,CEvGF,KAAA,CAAMC,QAAAA,CAAAA,CAAAA,CAAWH,oBAAAA,CAAqBI,QAAQ,CAAE,CAAA,CAAA;AFwGjD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;AErGnC,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACD,QAAAA,CAAAA,CAAW;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMP,eAAAA,CAAAA,CAAAA,CAAkB;AFsGzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CErGLjE,EAAAA,CAAAA,CAAIsE,WAAAA;AACJ9D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAOgE,QAAAA,CAAS1C;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAOvB,qBAAAA,CAAuB0D,eAAAA,CAAAA,CAAiBnC,IAAAA,CAAAA;AAChD;AAEA,CAAA,CAAA;AFoGA,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;AAC/D,CAAC;AACD,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;AACrH,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;AAChI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI;AAC/D,CAAC,CAAC,CAAC,CElGH,QAAA,CAAS6B,6BAAAA,CAA+Be,UAA8B,CAAA,CAAA;AACrEA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAWC,EAAE,CAA0B,CAAA,SAAA,CAAA,OAAA,CAAA,CAAA,CAAqB,CAAEC,GAAAA,CAAAA,CAAK9C,IAAAA,CAAAA,CAAM+C,aAAAA,CAAAA,CAAAA,CAAAA;AFmG1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CElGL,KAAA,CAAM9E,OAAAA,CAAAA,CAAAA,CAAU+B,IAAAA,CAAKgD,iBAAiB;AFmGxC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEjGL,EAAA,CAAA,CAAK,CAAChD,IAAAA,CAAKiD,IAAI,CAAClD,EAAE,CAAE,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC9B,OAAAA,CAAAA,CAAU;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM0B,KAAAA,CAAAA,CAAAA,CAAQK,IAAAA,CAAK5B,KAAK,CAACuB,KAAK;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM+C,QAAAA,CAAAA,CAAAA,CAAW/C,KAAAA,CAAM+C,QAAQ,CAAA,CAAA,CAAA,CAAI/C,KAAAA,CAAMC,SAAS;AAElD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK8C,QAAAA,CAAU1C,IAAI,CAAA,CAAA,CAAA,CAAI/B,OAAAA,CAAQS,KAAK,CAAA,CAAG;AFgGzC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU;AACjE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE/FRqE,aAAAA,CAAcG,UAAU,CAACC,OAAO,CAAEnD,IAAAA,CAAKiD,IAAI,CAAA,CAAEH,GAAAA,CAAI3B,IAAI,CAAA;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFgGF,CAAC,CAAC,CAAC,CAAC,CE/FH,CAAA,CAAG;AFgGJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEhGDiC,QAAAA,CAAAA,CAAU,CAAA,OAAA;AAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC1B;AAEA,CAAA,CAAA;AFiGA,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AE/FjD,CAAA,CAAA,CAAA,CACD,QAAA,CAASzB,wBAAAA,CAA0B1D,OAAyB,CAAA,CAAE,CAAA,CAAEc,MAAM,CAAA,CAAyB,CAAA,CAAA;AAC9F,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACd,OAAAA,CAAAA,CAAU;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMmD,UAAAA,CAAAA,CAAAA,CAAa;AF+FpB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE9FLiC,KAAAA,CAAAA,CAAO,CAAA,OAAA,CAAA;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAAA,CAAgBpF,OAAAA,CAAQC;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMH,OAAAA,CAAAA,CAAAA,CAAU;AACfG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAID,OAAAA,CAAQqE,GAAG;AF8FjB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE7FLc,QAAAA,CAAAA,CAAU;AACX,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAOrE,MAAAA,CAAOuE,sBAAsB,CAAE,CAAA,IAAA,CAAA,CAAA,CAAQlC,UAAAA,CAAAA,CAAYrD,OAAAA,CAAAA;AAC3D;AAEA,CAAA,CAAA;AF4FA,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;AACrI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS;AE1F3C,CAAA,CAAA,CAAA,CACD,QAAA,CAASkE,kCAAAA,CAAoClD,MAAmB,CAAA,CAAEvB,GAAkB,CAAA,CAAA;AF2FpF,CAAC,CAAC,CAAC,CE1FF,KAAA,CAAMK,SAAAA,CAAAA,CAAAA,CAAYL,GAAAA,CAAIK,SAAS;AF2FhC,CAAC,CAAC,CAAC,CE1FF,KAAA,CAAM0F,KAAAA,CAAAA,CAAAA,CAAQ1F,SAAAA,CAAU0F,KAAK;AF2F9B,CAAC,CAAC,CAAC,CEzFF,EAAA,CAAA,CAAK1F,SAAAA,CAAU2F,WAAW,CAAA,CAAA,CAAA,CAAI3F,SAAAA,CAAU4F,YAAY,CAAE,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAeC,0BAAAA,CAA4BH,KAAAA,CAAAA,CAAAA,CAAW;AAC3GxE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO4E,wBAAwB,CAAE,CAAA,OAAA,CAAA,CAAA;AF0FnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CExFL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AFyFD,CAAC,CAAC,CAAC,CEvFF,MAAA,CAAO,KAAA;AACR;AAEA,CAAA,CAAA;AFuFA,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS;AAClF,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS;AACrE,CAAC;AACD,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM;AAC1F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACnB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;AAC1F,CAAC,CAAC,CAAC,CErFH,QAAA,CAASD,0BAAAA,CAA4BE,QAAuB,CAAA,CAAA;AFsF5D,CAAC,CAAC,CAAC,CErFF,KAAA,CAAMC,SAAAA,CAAAA,CAAAA,CAAYD,QAAAA,CAASC,SAAS;AFsFrC,CAAC,CAAC,CAAC,CErFF,KAAA,CAAMC,eAAAA,CAAAA,CAAAA,CAAkBF,QAAAA,CAASlE,UAAU,CAAA,CAAA,CAAA,CAAIkE,QAAAA,CAASlE,UAAU,CAACK,EAAE,CAAE,CAAA,CAAA,IAAA,CAAA,CAAA;AAEvE,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO+D,eAAAA,CAAAA,CAAAA,CAAAA,CAAmBD,SAAAA;AAC3B;AAEA,CAAA,CAAA;AFoFA,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI;AElFjF,CAAA,CAAA,CAAA,CACD,QAAA,CAAS9B,6BAAAA,CAA+BhD,MAAmB,CAAA,CAAEvB,GAAkB,CAAA,CAAEG,MAAmB,CAAA,CAAA;AACnG,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMoG,OAAAA,CAAAA,CAAAA,CAAUvG,GAAAA,CAAIwG,MAAM,CAACC,UAAU,CAAA,CAAA;AAErC,CAAA,CAAA,CAAA,CAAA,GAAA,CAAIC,UAAAA,CAAAA,CAAAA,CAAa,KAAA;AFkFlB,CAAC,CAAC,CAAC,CEhFF,GAAA,CAAA,CAAM,KAAA,CAAMpF,MAAAA,CAAAA,EAAAA,CAAUiF,OAAAA,CAAU;AFiFjC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEhFL,EAAA,CAAA,CAAKjF,MAAAA,CAAOqF,IAAI,CAAA,CAAA,CAAA,CAAI,CAAA,SAAA,CAAA,CAAA,CAAc;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFiFF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ;AACvD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE/EL,KAAA,CAAMP,QAAAA,CAAAA,CAAAA,CAAW9E,MAAAA,CAAO8E,QAAQ;AFgFlC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE9EL,EAAA,CAAA,CAAK9E,MAAAA,CAAOqC,IAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,IAAA,CAAA,CAAA,CAAU;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMiD,yBAAAA,CAAAA,CAAAA,CAA4BR,QAAAA,CAASlB,QAAQ,CAAA,CAAA,CAAA,CAAIkB,QAAAA,CAASlB,QAAQ,CAAC2B,WAAW;AF+EvF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ;AE5E1DH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAaI,WAAAA,CAAaV,QAAAA,CAASlB,QAAQ,CAAA,CAAE3D,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYmF,UAAAA;AF8E5D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;AAC9D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE5ERA,UAAAA,CAAAA,CAAAA,CAAaI,WAAAA,CAAaF,yBAAAA,CAAAA,CAA2BrF,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYmF,UAAAA;AACjEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAaI,WAAAA,CAAaV,QAAAA,CAASlE,UAAU,CAAA,CAAEX,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYmF,UAAAA;AAC3DA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAaI,WAAAA,CAAaV,QAAAA,CAAShE,SAAS,CAAA,CAAEb,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYmF,UAAAA;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF6EF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AE1EpI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKpF,MAAAA,CAAOqC,IAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAWrC,MAAAA,CAAOqF,IAAI,CAAA,CAAA,CAAA,CAAI,CAAA,MAAA,CAAA,CAAA,CAAW;AF4E3D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE3ER,KAAA,CAAMI,YAAAA,CAAAA,CAAAA,CAAeX,QAAAA,CAAShE,SAAS;AAEvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAA,CAAMqD,IAAAA,CAAAA,EAAAA,CAAQlE,MAAAA,CAAOyF,aAAa,CAAED,YAAAA,CAAAA,CAAgBE,QAAQ,CAAA,CAAA,CAAK;AF2E1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE1EXP,UAAAA,CAAAA,CAAAA,CAAaI,WAAAA,CAAarB,IAAAA,CAAAA,CAAMlE,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYmF,UAAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF2EF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO;AACvD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEzEL,EAAA,CAAA,CAAKpF,MAAAA,CAAOqF,IAAI,CAAA,CAAA,CAAA,CAAI,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAYxG,MAAAA,CAAO+G,QAAQ,CAAE5F,MAAAA,CAAOqC,IAAI,CAAA,CAAA,CAAK;AAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMwD,iBAAAA,CAAAA,CAAAA,CAAoBf,QAAAA,CAAShE,SAAS,CAAA,CAAA,CAAA,CAAIgE,QAAAA,CAAShE,SAAS,CAACyE,WAAW;AAE9EH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAaI,WAAAA,CAAaV,QAAAA,CAASlE,UAAU,CAAA,CAAEX,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYmF,UAAAA;AFyE9D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CExERA,UAAAA,CAAAA,CAAAA,CAAaI,WAAAA,CAAaK,iBAAAA,CAAAA,CAAmB5F,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYmF,UAAAA;AAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AFyED,CAAC,CAAC,CAAC,CEvEF,MAAA,CAAOA,UAAAA;AACR;AAEA,CAAA,CAAA;AFuEA,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AAC3H,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS;AErErB,CAAA,CAAA,CAAA,CACD,QAAA,CAASlC,iCAAAA,CAAmCjD,MAAmB,CAAA,CAAEvB,GAAkB,CAAA,CAAA;AAClF,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMuG,OAAAA,CAAAA,CAAAA,CAAUvG,GAAAA,CAAIwG,MAAM,CAACC,UAAU,CAAA,CAAA;AAErC,CAAA,CAAA,CAAA,CAAA,GAAA,CAAIC,UAAAA,CAAAA,CAAAA,CAAa,KAAA;AFqElB,CAAC,CAAC,CAAC,CEnEF,GAAA,CAAA,CAAM,KAAA,CAAMpF,MAAAA,CAAAA,EAAAA,CAAUiF,OAAAA,CAAU;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKjF,MAAAA,CAAOqF,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAerF,MAAAA,CAAO8F,YAAY,CAAA,CAAA,CAAA,CAAI,CAAA,OAAA,CAAA,CAAA,CAAY;AFoEzE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AElE3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMlF,UAAAA,CAAAA,CAAAA,CAAaZ,MAAAA,CAAOV,KAAK,CAACuB,KAAK,CAACD,UAAU;AFoEnD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AElElD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAME,SAAAA,CAAAA,CAAAA,CAAYd,MAAAA,CAAOV,KAAK,CAACyB,GAAG,CAACD,SAAS;AAE5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAA,CAAMiF,IAAAA,CAAAA,EAAAA,CAAQ;AAAEnF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA;AAAYE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AFqErC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CErEoC,CAAG;AFsEnD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CErEX,EAAA,CAAA,CAAKkF,mBAAAA,CAAqBD,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUA,IAAAA,CAAMpC,YAAY,CAAE3D,MAAAA,CAAO8F,YAAY,CAAA,CAAA,CAAA,CAAA,CAAM9F,MAAAA,CAAOkE,iBAAiB,CAAA,CAAG;AAC3GjE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOgG,YAAY,CAAEjG,MAAAA,CAAO8F,YAAY,CAAA,CAAE9F,MAAAA,CAAOkE,iBAAiB,CAAA,CAAE6B,IAAAA,CAAAA;AFsEzE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEpEdX,UAAAA,CAAAA,CAAAA,CAAa,IAAA;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AFqED,CAAC,CAAC,CAAC,CEnEF,MAAA,CAAOA,UAAAA;AACR;AAEA,CAAA,CAAA;AFmEA,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO;AAC9D,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI;AACrH,CAAC,CAAC,CAAC,CEjEH,QAAA,CAASY,mBAAAA,CAAqBD,IAAsB,CAAA,CAAA;AACnD,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACA,IAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAGA,IAAAA,CAAK9E,EAAE,CAAE,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa8E,IAAAA,CAAK9E,EAAE,CAAE,CAAA,CAAA,SAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC8E,IAAAA,CAAKpB,YAAY,CAAE,CAAA,OAAA,CAAA,CAAA,CAAA,CAAc;AFkEvG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEjEL,MAAA,CAAO,KAAA;AACR,CAAA,CAAA,CAAA,CAAA;AFkED,CAAC,CAAC,CAAC,CEhEF,KAAA,CAAMjF,IAAAA,CAAAA,CAAAA,CAAOqG,IAAAA,CAAK7E,IAAI;AFiEvB,CAAC,CAAC,CAAC,CEhEF,KAAA,CAAM/B,OAAAA,CAAAA,CAAAA,CAAU4G,IAAAA,CAAKpC,YAAY,CAAE,CAAA,OAAA,CAAA,CAAA;AFiEpC,CAAC,CAAC,CAAC,CE/DF,KAAA,CAAMuC,YAAAA,CAAAA,CAAAA,CAAe/G,OAAAA,CAAQS,KAAK;AAElC,CAAA,CAAA,CAAA,CAAA,MAAA,CAAOF,IAAAA,CAAAA,CAAAA,CAAAA,CAAQwG,YAAAA;AAChB;AAEA,CAAA,CAAA;AF8DA,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AE5DlD,CAAA,CAAA,CAAA,CACD,QAAA,CAASV,WAAAA,CAAa5B,QAA0B,CAAA,CAAE3D,MAAmB,CAAA,CAAA;AACpE,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK+F,mBAAAA,CAAqBpC,QAAAA,CAAAA,CAAAA,CAAa;AF6DxC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE5DL3D,MAAAA,CAAOkG,eAAe,CAAE,CAAA,OAAA,CAAA,CAAA,CAAWvC,QAAAA,CAAAA;AF6DrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE3DL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AF4DD,CAAC,CAAC,CAAC,CE1DF,MAAA,CAAO,KAAA;AACR;;ACxSA,CAAA,CAAA;AHqWA,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI;AACtB,CAAC,CAAC,CAAC,CGnWI,KAAA,CAAMwC,YAAAA,CAAAA,OAAAA,CAAqBC,QAAAA,CAAAA;AHoWlC,CAAC,CAAC,CAAC,CGnWKC,QAAAA;AHoWR,CAAC,CAAC,CAAC,CGlWKxB,QAAAA;AAEP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AHkWD,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC,CGhWH,WAAA,CAAayB,MAAc,CAAG;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAEA,MAAAA,CAAAA;AHiWT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG/VL,IAAI,CAACC,cAAc,CAAE;AHgWvB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG/VRlE,UAAAA,CAAAA,CAAY;AHgWf,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG/VXiC,KAAAA,CAAAA,CAAO;AACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,QAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AHgWL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG9VXkC,QAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AH8VD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;AG5VxC,CAAA,CAAA,CAAA,CAAA,CACD,WAAOC,CAAAA,CAAAA,CAAoB;AH6V5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG5VL,IAAI,CAACC,MAAM,CAAE,CAAA,CAAA;AACd,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AH4VD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC/D,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;AG1VrE,CAAA,CAAA,CAAA,CAAA,CACD,UAAOC,CAAAA,CAAAA,CAAmB;AH2V3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG1VL,KAAA,CAAMzC,IAAAA,CAAAA,CAAAA,CAAO,IAAI,CAACmC,QAAQ;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMO,KAAAA,CAAAA,CAAAA,CAAQ,IAAI,CAACC,KAAK,CAACC,QAAQ,CAAE5C,IAAAA,CAAAA;AH2VrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGzVL,IAAI,CAACwC,MAAM,CAAEE,KAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AHyVD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AACnE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;AGvVrE,CAAA,CAAA,CAAA,CAAA,CACD,cAAOG,CAAAA,CAAAA,CAAuB;AHwV/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGvVL,KAAA,CAAM7C,IAAAA,CAAAA,CAAAA,CAAO,IAAI,CAACmC,QAAQ;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMO,KAAAA,CAAAA,CAAAA,CAAQ,IAAI,CAACC,KAAK,CAACC,QAAQ,CAAE5C,IAAAA,CAAAA;AHwVrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGtVL,IAAI,CAACwC,MAAM,CAAEE,KAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AHsVD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ;AAC3C,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM;AAChE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;AAChE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;AACpF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ;AAC1D,CAAC,CAAC,CAAC,CAAC,CGpVIF,MAAAA,CAAQE,KAAa,CAAA,CAAS;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAII,UAAAA,CAAAA,CAAAA,CAAa,CAAA;AHqVnB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGnVL,EAAA,CAAA,CAAKJ,KAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAKA,KAAAA,CAAAA,CAAAA,CAAQ,IAAI,CAACC,KAAK,CAACrF,MAAM,CAAA,CAAG;AHoVhD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGnVRwF,UAAAA,CAAAA,CAAAA,CAAaJ,KAAAA;AHoVhB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGnVN,CAAA,IAAA,CAAO,EAAA,CAAA,CAAKA,KAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAI;AACvBI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAa,IAAI,CAACH,KAAK,CAACrF,MAAM,CAAA,CAAA,CAAG,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM0C,IAAAA,CAAAA,CAAAA,CAAO,IAAI,CAAC2C,KAAK,CAACI,GAAG,CAAED,UAAAA,CAAAA;AHmV/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ;AGhVjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACX,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAKnC,IAAAA,CAAAA,CAAO;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AHkVF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI;AACvD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGhVL,EAAA,CAAA,CAAK,IAAI,CAACmC,QAAQ,CAAA,CAAG;AHiVvB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGhVR,IAAI,CAACA,QAAQ,CAACa,eAAe,CAAA,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAhD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAKiD,SAAS,CAAA,CAAA;AHgVhB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG/UL,IAAI,CAACd,QAAQ,CAAA,CAAA,CAAGnC,IAAAA;AHgVlB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO;AG7UzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAAC,IAAI,CAACkD,4BAA4B,CAAElD,IAAAA,CAAAA,CAAAA,CAAS;AH+UpD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG9UR,IAAI,CAACmD,OAAO,CAAEC,SAAS,CAAA,CAAA,CAAGpD,IAAAA,CAAKmD,OAAO,CAAEE,SAAS;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AH8UD,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI;AG5UnE,CAAA,CAAA,CAAA,CAAA,CACD,eAAOC,CAAAA,CAAAA,CAAwB;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACnB,QAAQ,CAAEoB,IAAI,CAAE,CAAA,OAAA,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AH4UD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AACvD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;AACvC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;AAChD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;AACvF,CAAC,CAAC,CAAC,CAAC,CG1UKL,4BAAAA,CAA8BlD,IAAyB,CAAA,CAAG;AH2UnE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG1UL,MAAA,CAAO,GAAA,CAAIwD,IAAAA,CAAM,IAAI,CAACL,OAAO,CAAA,CAAIM,QAAQ,CAAE,GAAA,CAAID,IAAAA,CAAMxD,IAAAA,CAAKmD,OAAO,CAAA,CAAA;AAClE,CAAA,CAAA,CAAA,CAAA;AACD;;ACpHA,CAAA,CAAA;AJicA,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI;AACtD,CAAC;AACD,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI;AAClE,CAAC,CAAC,CAAC,CI/bI,KAAA,CAAMO,qBAAAA,CAAAA,OAAAA,CAA8BC,IAAAA,CAAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AJgcD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO;AI9b/C,CAAA,CAAA,CAAA,CAAA,CACD,UAAOC;AAUP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AJsbD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,KAAK;AAC/F,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AIpb1B,CAAA,CAAA,CAAA,CAAA,CACD,WAAA,CAAaxB,MAAc,CAAA,CAAEwB,UAAuB,CAAG;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAExB,MAAAA,CAAAA;AJqbT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI;AAClD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CInbL,IAAI,CAACyB,QAAQ,CAAA,CAAA,CAAGC,SAAAA;AJoblB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CIlbL,IAAI,CAACF,UAAU,CAAA,CAAA,CAAGA,UAAAA;AJmbpB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM;AIhbvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACA,UAAU,CAACG,SAAS,CAACpF,GAAG,CAAE,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA;AJkbjC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CIhbL,IAAI,CAACtC,GAAG,CAAE,CAAA,IAAA,CAAA,CAAA,CAAQ,KAAA,CAAA;AJibpB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO;AI9axC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACuD,EAAE,CAAE,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAe,CAAEC,GAAAA,CAAAA,CAAK3B,IAAAA,CAAAA,CAAM8F,IAAAA,CAAAA,CAAAA,CAAAA;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKA,IAAAA,CAAAA,CAAO;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACJ,UAAU,CAACG,SAAS,CAACpF,GAAG,CAAE,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACiF,UAAU,CAACG,SAAS,CAACE,MAAM,CAAE,CAAA,EAAA,CAAA,GAAA,CAAA,CAAA;AJgbtC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CI/aT,CAAA,IAAA,CAAO;AACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACL,UAAU,CAACG,SAAS,CAACpF,GAAG,CAAE,CAAA,EAAA,CAAA,GAAA,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACiF,UAAU,CAACG,SAAS,CAACE,MAAM,CAAE,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AJgbF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK;AI7a1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,QAAQ,CAAE,IAAI,CAACN,UAAU,CAAA,CAAE,CAAA,KAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA;AJ+a3C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CI9aR,IAAI,CAACL,IAAI,CAAE,CAAA,OAAA,CAAA,CAAA;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AJ8aD,CAAC,CAAC,CAAC,CAAC,CAAC;AI5aH,CAAA,CAAA,CAAA,CAAA,CACD,MAAgBY,CAAAA,CAAAA,CAAe;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAACA,MAAAA,CAAAA,CAAAA;AAEN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAChB,OAAO,CAAA,CAAA,CAAG,IAAI,CAACS,UAAU;AAC/B,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AJ2aD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO;AIzazB,CAAA,CAAA,CAAA,CAAA,CACD,KAAOtD,CAAAA,CAAAA,CAAc;AJ0atB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CIzaL,IAAI,CAACsD,UAAU,CAACtD,KAAK,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA;AACD;;AClEO,KAAA,CAAM8D,mBAAAA,CAAAA,OAAAA,CAA4BC,YAAAA,CAAAA;AL8ezC,CAAC,CAAC,CAAC,CK7eKrE,IAAAA;AL8eR,CAAC,CAAC,CAAC,CK5eKrE,MAAAA;AL6eR,CAAC,CAAC,CAAC,CK3eKsH,SAAAA,CAAAA,CAAAA,CAAkB;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMqB,KAAAA,CAAAA,CAAAA,CAAQ,IAAI,CAACC,QAAQ,CAACC,KAAK;AAEjCF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAMN,IAAI,CAAA,CAAA,CAAG,IAAA;AACd,CAAA,CAAA,CAAA,CAAA;AL2eD,CAAC,CAAC,CAAC,CKzeKhB,eAAAA,CAAAA,CAAAA,CAAwB;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMsB,KAAAA,CAAAA,CAAAA,CAAQ,IAAI,CAACC,QAAQ,CAACC,KAAK;AAEjCF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAMN,IAAI,CAAA,CAAA,CAAG,KAAA;AACd,CAAA,CAAA,CAAA,CAAA;AACD;;ACqBA,KAAA,CAAMS,gBAAAA,CAAAA,CAAAA,CAAmB,CAAA;AAEzB,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,CAAA,KAAA,CAAA,IAAA,CAAA,OAAA,CAAA,EAAA,CAAA,OAAA,CAAA,IAAA,CAAA,EAAA,CAAA,EAAA,CAAA,IAAA,CAAA,CAAA,OAAA,CAAA,MAAA,CAAA,IAAA,CAAA;AACA,KAAA,CAAMC,sBAAAA,CAAAA,CAAAA,CAAyB;AAC9BC,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAASC,OAAO;AAChBD,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAASE,SAAS;AAClBF,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAASG;AACT,CAAA;AAED,CAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,CAAA,KAAA;AACA,KAAA,CAAMC,qBAAAA,CAAAA,CAAAA,CAAwB;AAC7BJ,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAASK,KAAK;AACdL,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAASM;AACT,CAAA;AAED,CAAA,CAAA;ANmdA,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO;AACzB,CAAC,CAAC,CAAC,CMjdI,KAAA,CAAMC,SAAAA,CAAAA,OAAAA,CAAkB1H,MAAAA,CAAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANkdD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AMhdlB,CAAA,CAAA,CAAA,CAAA,CACD,aAAiB2H;AAEjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANgdD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc;AM9crC,CAAA,CAAA,CAAA,CAAA,CACD,uBAAQC;AAER,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN8cD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ;AM5cxC,CAAA,CAAA,CAAA,CAAA,CACD,QAAQC;AAEAC,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS,GAAA,CAAIC,UAAAA,CAAAA,CAAAA;AN4ctB,CAAC,CAAC,CAAC,CM1cMC,cAAAA;AAER,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN0cD,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI;AMxcvF,CAAA,CAAA,CAAA,CAAA,CACD,qBAAQC;AAER,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANwcD,CAAC,CAAC,CAAC,CAAC,CAAC;AMtcH,CAAA,CAAA,CAAA,CAAA,CACD,MAAA,CAAA,GAAA,CAAkBhI,UAAAA,CAAAA,CAAAA,CAAa;ANuchC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtcL,MAAA,CAAO,CAAA,SAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANscD,CAAC,CAAC,CAAC,CAAC,CAAC;AMpcH,CAAA,CAAA,CAAA,CAAA,CACD,MAAA,CAAA,GAAA,CAA2BC,gBAAAA,CAAAA,CAAAA,CAAyB;ANqcrD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMpcL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANocD,CAAC,CAAC,CAAC,CAAC,CAAC;AMlcH,CAAA,CAAA,CAAA,CAAA,CACD,MAAA,CAAA,GAAA,CAAkBgI,QAAAA,CAAAA,CAAAA,CAAW;ANmc9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMlcL,MAAA,CAAO;AAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANocD,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC,CMlcH,WAAA,CAAaxL,MAAc,CAAG;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAEA,MAAAA,CAAAA;AAEP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACgL,aAAa,CAAA,CAAA,CAAG,IAAI,CAACS,kBAAkB,CAAA,CAAA;ANkc9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMjcL,IAAI,CAACR,uBAAuB,CAAA,CAAA,CAAG,GAAA,CAAIjJ,GAAAA,CAAAA,CAAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACsJ,qBAAqB,CAAA,CAAA,CAAGI,QAAAA,CAAU,IAAI,CAACC,YAAY,CAAA,CAAE,GAAA,CAAA;AAE1D3L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO4L,MAAM,CAACC,MAAM,CAAE,CAAA,OAAA,CAAA,CAAA,CAAW;AAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAO,CAAA;AAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC9C,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANkcD,CAAC,CAAC,CAAC,CAAC,CAAC;AMhcH,CAAA,CAAA,CAAA,CAAA,CACD,IAAOtI,CAAAA,CAAAA,CAAa;ANicrB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhcL,KAAA,CAAMxD,MAAAA,CAAAA,CAAAA,CAAS,IAAI,CAACA,MAAM;AAE1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM+L,UAAAA,CAAAA,CAAAA,CAAa/L,MAAAA,CAAO4L,MAAM,CAAChD,GAAG,CAAE,CAAA,OAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0BgC,qBAAAA;ANgclE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM/bL,KAAA,CAAMoB,eAAAA,CAAAA,CAAAA,CAAkBzB,sBAAAA,CAAuB0B,MAAM,CAAEF,UAAAA,CAAAA;AAEvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACb,QAAQ,CAAA,CAAA,CAAGlL,MAAAA,CAAOkM,OAAO,CAACtD,GAAG,CAAE4C,iBAAAA,CAAAA;AN+btC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI;AAC/D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM7bLxL,MAAAA,CAAOmM,OAAO,CAACrI,IAAI,CAACzD,QAAQ,CAACoF,EAAE,CAA4B,CAAA,OAAA,CAAA,CAAA,CAAW,CAAEC,GAAAA,CAAAA,CAAK9C,IAAAA,CAAAA,CAAAA,CAAAA;AAC5E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKwJ,YAAAA,CAAcxJ,IAAAA,CAAKyJ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAM,IAAI,CAACC,YAAY,CAAA,CAAG;AACxD1J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAK2J,cAAc,CAAA,CAAA;AN8bvB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM7bX7G,GAAAA,CAAI8G,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,GAAA,CAAA,KAAA,CAAA,GAAA,CAAA,UAAA;AAER,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK5J,IAAAA,CAAKyJ,OAAO,CAAA,CAAA,CAAA,CAAI7B,QAAAA,CAASE,SAAS,CAAA,CAAG;AN6b9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5bd,IAAI,CAACM,aAAa,CAAC1C,UAAU,CAAA,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK1F,IAAAA,CAAKyJ,OAAO,CAAA,CAAA,CAAA,CAAI7B,QAAAA,CAASC,OAAO,CAAA,CAAG;AN4b5C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM3bd,IAAI,CAACO,aAAa,CAACtC,cAAc,CAAA,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKqD,UAAAA,CAAWU,QAAQ,CAAE7J,IAAAA,CAAKyJ,OAAO,CAAA,CAAA,CAAK;AN2b/C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1bd,IAAI,CAACrB,aAAa,CAAC7B,eAAe,CAAA,CAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKvG,IAAAA,CAAKyJ,OAAO,CAAA,CAAA,CAAA,CAAI7B,QAAAA,CAASG,GAAG,CAAA,CAAG;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC+B,sBAAsB,CAAA,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN0bH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMzbN,CAAA,CAAG;AN0bL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1bJ1G,QAAAA,CAAAA,CAAU,CAAA,OAAA;AAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,EAAA,CAAA,QAAA,CAAA,GAAA,CAAA,KAAA,CAAA,GAAA;AN4b3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACpE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1bL2G,mBAAAA,CAAqB;AN2bvB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1bRC,OAAAA,CAAAA,CAAS,IAAI,CAAC5B,aAAa;AN2b9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1bR6B,SAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAM,IAAI,CAACP,YAAY;AAClCQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA,CAAiB,CAAA,CAAA,CAAA,CAAM;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC5B,QAAQ,CAAEpH,IAAI,CAACkF;AAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN6b1D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5bR+D,QAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAM,IAAI,CAACL,sBAAsB,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMZ,KAAAA,CAAAA,CAAAA,CAAQ9L,MAAAA,CAAO4L,MAAM,CAAChD,GAAG,CAAE,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA;AN4bnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1bL,GAAA,CAAA,CAAM,KAAA,CAAMoE,kBAAAA,CAAAA,EAAAA,CAAsBlB,KAAAA,CAAQ;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,CAAA,CAAEmB,IAAI,CAAA,CAAEzL,MAAM,CAAA,CAAE0L,aAAa,CAAA,CAAE,CAAA,CAAA,CAAGF,kBAAAA;AN2b3C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMzbR,EAAA,CAAA,CAAK,CAACG,oBAAAA,CAAsB3L,MAAAA,CAAAA,CAAAA,CAAW;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN0bJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS;AAC5C,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC;AAC7D,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC;AACtC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;AMxbpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACD,KAAA,CAAM,GAAA,CAAIC,aAAAA,CAAe,CAAA,aAAA,CAAA,SAAA,CAAA,MAAA,CAAA,CAAA,CAAkC,IAAA,CAAA,CAAM;AAAED,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC3E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN2bH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMzbR,KAAA,CAAM4L,YAAAA,CAAAA,CAAAA,CAAe,MAAA,CAAOH,IAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,QAAA,CAAA,CAAA,CAAA,CAAaA,IAAAA,CAAKI,IAAI,CAAE,IAAI,CAACrN,MAAM,CAAA,CAAA,CAAA,CAAKsN,kBAAAA,CAAoBL,IAAAA,CAAAA;AN0bnG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMzbR,KAAA,CAAMM,YAAAA,CAAAA,CAAAA,CAAeP,kBAAAA,CAAmBO,YAAY;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,UAAAA,CAAAA,CAAAA,CAAa;AAAEhM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA;AAAQ4L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA;AAAcG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA;AAAcL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACjC,uBAAuB,CAAC/I,GAAG,CAAEV,MAAAA,CAAAA,CAAQgM,UAAAA,CAAAA;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN8bF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5bL,IAAI,CAACC,iBAAiB,CAAE3B,KAAAA,CAAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC/B,QAAQ,CAAE/J,MAAAA,CAAAA,CAAQ,CAAA,MAAA,CAAA,UAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC0M,sBAAsB,CAAA,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN6bF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5bL,IAAI,CAACjH,EAAE,CAA4B,CAAA,WAAA,CAAA,QAAA,CAAA,CAAA,CAAwB,CAAEC,GAAAA,CAAAA,CAAK9C,IAAAA,CAAAA,CAAAA,CAAU,IAAI,CAAC8K,mBAAmB,CAAE9K,IAAAA,CAAAA,CAAAA;AACtG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC6C,EAAE,CAAyB,CAAA,WAAA,CAAA,KAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAM,IAAI,CAACiH,sBAAsB,CAAA,CAAA,CAAA;AAEtF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN4bF,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAC5D,CAAC,CAAC,CAAC,CAAC,CAAC,CM1bH,QAAA,CAASN,YAAAA,CAAcC,OAAe,CAAA,CAAA;AN2bxC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1bR,MAAA,CAAOL,eAAAA,CAAgBS,QAAQ,CAAEJ,OAAAA,CAAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN0bD,CAAC,CAAC,CAAC,CAAC,CAAC;AMxbH,CAAA,CAAA,CAAA,CAAA,CACD,OAAgBsB,CAAAA,CAAAA,CAAgB;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAACA,OAAAA,CAAAA,CAAAA;ANybR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;AACrG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMvbL,IAAI,CAAC3C,aAAa,CAAC2C,OAAO,CAAA,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANubD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;AAClI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO;AMrbnB,CAAA,CAAA,CAAA,CAAA,CACD,GAAA,CAAYrB,YAAAA,CAAAA,CAAAA,CAAwB;ANsbrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMrbL,MAAA,CAAO,IAAI,CAACpB,QAAQ,CAAE0C,WAAW,CAAA,CAAA,CAAA,CAAA,CAAK,IAAI,CAAC5C,aAAa;AACzD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANqbD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;AMnbpC,CAAA,CAAA,CAAA,CAAA,CACD,kBAAQS,CAAAA,CAAAA,CAAmC;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMxD,MAAAA,CAAAA,CAAAA,CAAS,IAAI,CAACjI,MAAM,CAACiI,MAAM;ANobnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMlbL,KAAA,CAAM4F,YAAAA,CAAAA,CAAAA,CAAe,GAAA,CAAI/F,YAAAA,CAAcG,MAAAA,CAAAA;ANmbzC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMjbL4F,YAAAA,CAAarF,KAAK,CAACsF,MAAM,CAAE,IAAI,CAAC3C,MAAM,CAAA,CAAG4C,KAAK,CAAEnL,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,CAAA,CAAEiD,IAAI,CAAA,CAAErE,MAAM,CAAA,CAAE,CAAA,CAAA,CAAGoB,IAAAA;ANkb5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhbR,KAAA,CAAM,CAAA,CAAEsK,aAAAA,CAAAA,CAAec,mBAAmB,CAAA,CAAE,CAAA,CAAA,CAAG,IAAI,CAAC/C,uBAAuB,CAACrC,GAAG,CAAEpH,MAAAA,CAAAA;ANibpF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM/aR,KAAA,CAAM0L,aAAAA,CAAAA,CAAAA,CAAgBc,mBAAAA,CAAAA,CAAAA,CAAAA,CAAuB,IAAI,CAAChO,MAAM,CAAC4L,MAAM,CAAChD,GAAG,CAAE,CAAA,OAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B,EAAA;AAElG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKiF,YAAAA,CAAarF,KAAK,CAACrF,MAAM,CAAA,CAAA,CAAA,CAAI+J,aAAAA,CAAAA,CAAgB;AN+arD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM9aX,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN+aH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM7aR,KAAA,CAAMe,YAAAA,CAAAA,CAAAA,CAAe,GAAA,CAAIhE,mBAAAA,CAAqBhC,MAAAA,CAAAA;AAE9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMnE,IAAAA,CAAAA,CAAAA,CAAO,IAAI,CAACoK,WAAW,CAAErI,IAAAA,CAAAA,CAAMrE,MAAAA,CAAAA;AACrCsC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAKqK,QAAQ,CAAE,CAAA,OAAA,CAAA,CAAA,CAAYC,EAAE,CAAEH,YAAAA,CAAAA;AN6alC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM3aRA,YAAAA,CAAa7D,QAAQ,CAAC5F,GAAG,CAAEV,IAAAA,CAAAA;AAC3BmK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAapI,IAAI,CAAA,CAAA,CAAGA,IAAAA;AACpBoI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAazM,MAAM,CAAA,CAAA,CAAGA,MAAAA;AN4azB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1aRyM,YAAAA,CAAaxI,EAAE,CAAE,CAAA,OAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA;AN2a/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1aXoI,YAAAA,CAAazE,IAAI,CAAE,CAAA,OAAA,CAAA,CAAA,CAAW;AAC7BvD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA;AACArE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN2aH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMzaR,MAAA,CAAOyM,YAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAapI,EAAE,CAAE,CAAA,OAAA,CAAA,CAAA,CAAW,CAAEC,GAAAA,CAAAA,CAAK9C,IAAAA,CAAAA,CAAAA,CAAAA;ANyarC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMxaR,KAAA,CAAM5C,MAAAA,CAAAA,CAAAA,CAAS,IAAI,CAACA,MAAM;ANya7B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMxaR,KAAA,CAAMG,KAAAA,CAAAA,CAAAA,CAAQH,MAAAA,CAAOG,KAAK;ANya7B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMvaR,KAAA,CAAM0F,IAAAA,CAAAA,CAAAA,CAAOjD,IAAAA,CAAKiD,IAAI;ANwazB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMvaR,KAAA,CAAMrE,MAAAA,CAAAA,CAAAA,CAASoB,IAAAA,CAAKpB,MAAM;AAE1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM6M,aAAAA,CAAAA,CAAAA,CAAgBrO,MAAAA,CAAOG,KAAK,CAACmO,OAAO,CAAC1F,GAAG,CAAE,CAAA,OAAA,CAAA,CAAA;ANuanD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI;AAC7C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMraR,KAAA,CAAMnG,GAAAA,CAAAA,CAAAA,CAAMtC,KAAAA,CAAMoO,gBAAgB,CAAEpO,KAAAA,CAAME,QAAQ,CAACI,SAAS,CAAC0F,KAAK,CAAA;AAClE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM5D,KAAAA,CAAAA,CAAAA,CAAQpC,KAAAA,CAAMoO,gBAAgB,CAAEF,aAAAA,CAAeG,QAAQ,CAAA,CAAA,CAAA;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMxN,KAAAA,CAAAA,CAAAA,CAAQb,KAAAA,CAAMsO,WAAW,CAAElM,KAAAA,CAAAA,CAAOE,GAAAA,CAAAA;AAExC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACiK,sBAAsB,CAAA,CAAA;ANqa9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMnaR1M,MAAAA,CAAOU,OAAO,CAAE,CAAA,OAAA,CAAA,CAAA,CAAW;ANoa9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMnaXG,OAAAA,CAAAA,CAASgF,IAAAA;AACTzE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAMyE,IAAAA,CAAKzE,IAAI;AACfI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA;AACAR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOmM,OAAO,CAACrI,IAAI,CAACqC,KAAK,CAAA,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANmaF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMjaL,MAAA,CAAO0H,YAAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANiaD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM;AACxC,CAAC,CAAC,CAAC,CAAC,CM/ZKa,gBAAAA,CAAkBlN,MAAc,CAAA,CAAoC;ANga7E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM/ZL,KAAA,CAAM,CAAA,CAAE+L,YAAY,CAAA,CAAE,CAAA,CAAA,CAAG,IAAI,CAACtC,uBAAuB,CAACrC,GAAG,CAAEpH,MAAAA,CAAAA;ANga7D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM9ZL,MAAA,CAAO+L,YAAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN8ZD,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS;AM5Z7C,CAAA,CAAA,CAAA,CAAA,CACD,YAAQ5B,CAAcnK,MAAc,CAAA,CAAEmN,QAAgB,CAAA,CAAS;AN6ZhE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/H,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ;AAC1F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM3ZL,IAAI,CAACtD,cAAc,CAAA,CAAA,CAAGsD,QAAAA;AN4ZxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1ZL,KAAA,CAAM,CAAA,CAAEvB,YAAY,CAAA,CAAE,CAAA,CAAA,CAAG,IAAI,CAACnC,uBAAuB,CAACrC,GAAG,CAAEpH,MAAAA,CAAAA;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMoN,YAAAA,CAAAA,CAAAA,CAAexB,YAAAA,CAAcuB,QAAAA,CAAAA;AAEnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAME,cAAAA,CAAAA,CAAAA,CAAiBD,YAAAA,CAAAA,UAAAA,CAAwBE,OAAAA;AN0ZjD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW;AMvZ3F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACD,cAAAA,CAAAA,CAAiB;ANyZzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMxZR,IAAI,CAACzF,IAAI,CAA4B,CAAA,WAAA,CAAA,QAAA,CAAA,CAAA,CAAwB;ANyZhE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMzZmD6D,IAAAA,CAAAA,CAAM2B,YAAAA;AAAcpN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA;AAAQmN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEpG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN4ZF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS;AAC5C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1ZLC,YAAAA,CACEG,IAAI,CAAEC,CAAAA,QAAAA,CAAAA,CAAAA,CAAAA;AN0ZV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM;AMxZrF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAAC3D,cAAc,CAAA,CAAA,CAAA,CAAIsD,QAAAA,CAAAA,CAAW;AN0Z3C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK;AAC7D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMzZV,IAAI,CAACvF,IAAI,CAA4B,CAAA,WAAA,CAAA,QAAA,CAAA,CAAA,CAAwB;AN0ZlE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1ZiD6D,IAAAA,CAAAA,CAAM+B,QAAAA;AAAUxN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA;AAAQmN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN8ZrG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM7ZR,CAAA,IAAA,CAAO;AN8ZX,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK;AAChG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM7ZV,IAAI,CAACvF,IAAI,CAA6B,CAAA,WAAA,CAAA,SAAA,CAAA,CAAA,CAAyB;AN8ZpE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM9ZmD6D,IAAAA,CAAAA,CAAM+B,QAAAA;AAAUxN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA;AAAQmN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACnG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANkaJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMjaL,CAAA,CACCM,KAAK,CAAEC,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA;ANiaX,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhaP,IAAI,CAAC9F,IAAI,CAAyB,CAAA,WAAA,CAAA,KAAA,CAAA,CAAA,CAAqB;AAAE8F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAE/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANkaJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;AAChH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG;AAC3B,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AMha/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACDC,UAAAA,CAAY,CAAA,OAAA,CAAA,IAAA,CAAA,QAAA,CAAA,KAAA,CAAA,CAAA,CAA+B;AAAE3N,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANkaD,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM;AAC3C,CAAC,CAAC,CAAC,CAAC,CMhaKiM,iBAAAA,CAAmB3B,KAAyB,CAAA,CAAgB;ANiarE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhaL,KAAA,CAAM9L,MAAAA,CAAAA,CAAAA,CAAS,IAAI,CAACA,MAAM;AAE1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMoP,gBAAAA,CAAAA,CAAAA,CAA6DtD,KAAAA,CAAMuD,GAAG,CAAEpC,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAU;AACvF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGA,IAAI;AACPqC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAASC,YAAAA,CAActC,IAAAA,CAAKzL,MAAM,CAAA,CAAEyL,IAAAA,CAAKuC,iBAAiB,CAAA,CAAA,CAAA,CAAI,CAAA;ANgajE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM/ZV,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,OAAAA,CAAAA,CAAAA,CAAU,GAAA,CAAIC,WAAAA,CAAa1P,MAAAA,CAAOG,KAAK,CAAA,CAAEwP,kBAAAA,CAAoBP,gBAAAA,CAAAA,CAAAA;AAEnEK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAQhK,EAAE,CAA2B,CAAA,OAAA,CAAA,CAAA,CAAW,CAAEC,GAAAA,CAAAA,CAAK9C,IAAAA,CAAAA,CAAAA,CAAAA;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMgN,gBAAAA,CAAAA,CAAAA,CAAmBC,wBAAAA,CAA0BT,gBAAAA,CAAAA,CAAkBxM,IAAAA,CAAKxB,IAAI,CAAA;AAC9E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMX,SAAAA,CAAAA,CAAAA,CAAYT,MAAAA,CAAOG,KAAK,CAACE,QAAQ,CAACI,SAAS;AN8ZpD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM7ZR,KAAA,CAAM0F,KAAAA,CAAAA,CAAAA,CAAQ1F,SAAAA,CAAU0F,KAAK;AN8ZhC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM7ZR,KAAA,CAAM2J,cAAAA,CAAAA,CAAAA,CAAiB9P,MAAAA,CAAOG,KAAK,CAACoO,gBAAgB,CAAEpI,KAAAA,CAAO4J,MAAM,CAAA,CAAEH,gBAAAA,CAAkBpJ,QAAQ,CAAA;AN8ZlG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5ZR,EAAA,CAAA,CAAKwJ,2BAAAA,CAA6B7J,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY8J,yBAAAA,CAA2BH,cAAAA,CAAAA,CAAAA,CAAmB;AAC3F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACpD,sBAAsB,CAAA,CAAA;AAE3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMiC,QAAAA,CAAAA,CAAAA,CAAWuB,eAAAA,CAAiBN,gBAAAA,CAAAA,CAAkBhN,IAAAA,CAAKxB,IAAI,CAAA;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM+O,iBAAAA,CAAAA,CAAAA,CAAoBP,gBAAAA,CAAkBpO,MAAM,CAAC2B,MAAM,CAAA,CAAA,CAAGwL,QAAAA,CAASxL,MAAM;AN2Z9E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;AMxZjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMZ,KAAAA,CAAAA,CAAAA,CAAQ4D,KAAAA,CAAOjD,YAAY,CAAE,CAACiN,iBAAAA,CAAAA;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM1N,GAAAA,CAAAA,CAAAA,CAAM0D,KAAAA,CAAOjD,YAAY,CAAE,CAACyL,QAAAA,CAASxL,MAAM,CAAA;AAEjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMiN,WAAAA,CAAAA,CAAAA,CAAcpQ,MAAAA,CAAOG,KAAK,CAACsO,WAAW,CAAElM,KAAAA,CAAAA,CAAOE,GAAAA,CAAAA;ANyZxD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9G,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAC3F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AMrZ/G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK4N,4BAAAA,CAA8BrQ,MAAAA,CAAAA,CAAAA,CAAW;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMqO,aAAAA,CAAAA,CAAAA,CAAgBrO,MAAAA,CAAOG,KAAK,CAACmO,OAAO,CAAC1F,GAAG,CAAE,CAAA,OAAA,CAAA,CAAA;ANuZpD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO;AMpZ7F5I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOG,KAAK,CAACuB,MAAM,CAAEC,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;ANsZzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACnI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMpZdA,MAAAA,CAAO2O,YAAY,CAAEjC,aAAAA,CAAAA,CAAe;ANqZzC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMrZoBrN,KAAAA,CAAAA,CAAOoP;AAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANuZJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtZT,CAAA,IAAA,CAAO;AACNpQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOG,KAAK,CAACuB,MAAM,CAAEC,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;ANuZzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMrZdA,MAAAA,CAAO4O,SAAS,CAAE,CAAA,OAAA,CAAA,CAAA,CAAW;ANsZlC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtZavP,KAAAA,CAAAA,CAAOoP,WAAAA;ANuZ3C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMvZiCI,cAAAA,CAAAA,CAAgB,KAAA;ANwZxE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMxZwDC,WAAAA,CAAAA,CAAa;AAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC9F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACnF,qBAAqB,CAAEsE,gBAAAA,CAAkBpO,MAAM,CAAA,CAAEmN,QAAAA,CAAAA;ANyZzD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AMtZnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANwZF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtZLc,OAAAA,CAAQhK,EAAE,CAAE,CAAA,SAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACiH,sBAAsB,CAAA,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMgE,cAAAA,CAAAA,CAAAA,CAAiB1Q,MAAAA,CAAO8E,QAAQ,CAAC8D,GAAG,CAAE,CAAA,OAAA,CAAA,CAAA;AAC5C6G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAQpC,IAAI,CAAE,CAAA,SAAA,CAAA,CAAA,CAAce,EAAE,CAAEsC,cAAAA,CAAAA;ANsZlC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMpZL,MAAA,CAAOjB,OAAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANoZD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;AACxC,CAAC,CAAC,CAAC,CAAC,CMlZK/B,mBAAAA,CAAqB9K,IAAyC,CAAA,CAAG;AACxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,CAAA,CAAEqK,IAAI,CAAA,CAAEzL,MAAM,CAAA,CAAE,CAAA,CAAA,CAAGoB,IAAAA;ANmZ3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACnD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACxJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;AM/YzH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACyN,4BAAAA,CAA8B,IAAI,CAACrQ,MAAM,CAAA,CAAA,CAAK;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANiZF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI;AACzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM/YL,IAAI,CAACmL,MAAM,CAACwF,KAAK,CAAA,CAAA;ANgZnB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM9YL,GAAA,CAAA,CAAM,KAAA,CAAMC,QAAAA,CAAAA,EAAAA,CAAY3D,IAAAA,CAAO;AN+YjC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM9YR,KAAA,CAAMpH,IAAAA,CAAAA,CAAAA,CAAO,MAAA,CAAO+K,QAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,MAAA,CAAA,CAAA,CAAA,CAAW;AN+Y9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM/YiC9P,EAAAA,CAAAA,CAAI8P,QAAAA;ANgZpD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhZ+CxP,IAAAA,CAAAA,CAAMwP;ANiZpE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMjZiE,CAAA,CAAA,CAAIA,QAAAA;AAE9E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACzF,MAAM,CAAC3G,GAAG,CAAE;AAAEqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA;AAAMrE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANoZF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMlZL,KAAA,CAAM6M,aAAAA,CAAAA,CAAAA,CAAgB,IAAI,CAACrO,MAAM,CAACG,KAAK,CAACmO,OAAO,CAAC1F,GAAG,CAAE,CAAA,OAAA,CAAA,CAAA;AAErD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACuC,MAAM,CAAChI,MAAM,CAAA,CAAG;ANkZ5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMjZR,IAAI,CAAC0N,eAAe,CAAExC,aAAAA,CAAAA;ANkZzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMjZN,CAAA,IAAA,CAAO;ANkZT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AMhZxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC3B,sBAAsB,CAAA,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANiZD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACtF,CAAC,CAAC,CAAC,CAAC,CM/YKmE,eAAAA,CAAiBC,YAAoB,CAAA,CAAS;ANgZvD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM/YL,EAAA,CAAA,CAAK,IAAI,CAACxE,YAAY,CAAA,CAAG;ANgZ3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACnH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI;AM7YhF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACpB,QAAQ,CAAE6F,cAAc,CAAE,IAAI,CAACC,4BAA4B,CAAEF,YAAAA,CAAAA,CAAc,IAAI,CAAC9F,aAAa,CAAExE,QAAQ,CAAA,CAAA;AN+Y/G,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM9YN,CAAA,IAAA,CAAO;AN+YT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AM5Y7G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC0E,QAAQ,CAAE1G,GAAG,CAAE;AN8YvB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM7YXV,IAAAA,CAAAA,CAAM,IAAI,CAACkH,aAAa;AN8Y5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM7YXxE,QAAAA,CAAAA,CAAU,IAAI,CAACwK,4BAA4B,CAAEF,YAAAA,CAAAA,CAAc,IAAI,CAAC9F,aAAa,CAACxE,QAAQ,CAAA;AN8Y1F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM7YXyK,cAAAA,CAAAA,CAAgB,IAAA;AN8YpB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM7YXC,gBAAAA,CAAAA,CAAkB,CAAA,EAAA,CAAA,OAAA,CAAA,OAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN8YF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5YL,IAAI,CAAClG,aAAa,CAACxE,QAAQ,CAAA,CAAA,CAAG,IAAI,CAAC0E,QAAQ,CAAEpH,IAAI,CAAC0C,QAAQ;AN6Y5D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5YL,IAAI,CAACwE,aAAa,CAAC5C,WAAW,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN4YD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU;AM1YzF,CAAA,CAAA,CAAA,CAAA,CACD,sBAAQsE,CAAAA,CAAAA,CAA+B;AN2YxC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1YL,EAAA,CAAA,CAAK,IAAI,CAACxB,QAAQ,CAAEiG,OAAO,CAAE,IAAI,CAACnG,aAAa,CAAA,CAAA,CAAK;AN2YtD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AMxY5G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACE,QAAQ,CAAEpB,MAAM,CAAE,IAAI,CAACkB,aAAa,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKqF,4BAAAA,CAA8B,IAAI,CAACrQ,MAAM,CAAA,CAAA,CAAK;ANyYrD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACvH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMvYR,IAAI,CAACA,MAAM,CAACG,KAAK,CAACuB,MAAM,CAAEC,CAAAA,MAAAA,CAAAA,CAAAA,CAAUA,MAAAA,CAAOyP,YAAY,CAAE,CAAA,OAAA,CAAA,CAAA,CAAA;AAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANwYF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAChI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;AMrYzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACpG,aAAa,CAACxE,QAAQ,CAAA,CAAA,CAAGmD,SAAAA;AAC/B,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANsYD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI;AMpYhD,CAAA,CAAA,CAAA,CAAA,CACD,WAAQuE,CAAarI,IAA2B,CAAA,CAAErE,MAAc,CAAA,CAAuC;ANqYxG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMpYL,KAAA,CAAMxB,MAAAA,CAAAA,CAAAA,CAAS,IAAI,CAACA,MAAM;ANqY5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMnYL,GAAA,CAAI8D,IAAAA;ANoYN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMnYL,GAAA,CAAIuN,KAAAA,CAAAA,CAAAA,CAAQxL,IAAAA,CAAK/E,EAAE;AAEnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMwQ,QAAAA,CAAAA,CAAAA,CAAW,IAAI,CAAC5C,gBAAgB,CAAElN,MAAAA,CAAAA;AAExC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK8P,QAAAA,CAAAA,CAAW;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,YAAAA,CAAAA,CAAAA,CAAeD,QAAAA,CAAUzL,IAAAA,CAAAA;ANkYlC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhYR,EAAA,CAAA,CAAK,MAAA,CAAO0L,YAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAA,MAAA,CAAA,CAAA,CAAW;AACtCzN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAO,GAAA,CAAIyF,qBAAAA,CAAuBvJ,MAAAA,CAAOiI,MAAM,CAAA,CAAEsJ,YAAAA,CAAAA;ANiYrD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhYT,CAAA,IAAA,CAAO;ANiYV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhYXF,KAAAA,CAAAA,CAAAA,CAAQE,YAAAA;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACzN,IAAAA,CAAAA,CAAO;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM0N,UAAAA,CAAAA,CAAAA,CAAa,GAAA,CAAIC,UAAAA,CAAYzR,MAAAA,CAAOiI,MAAM,CAAA;AAEhDuJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAWH,KAAK,CAAA,CAAA,CAAGA,KAAAA;AACnBG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAWE,QAAQ,CAAA,CAAA,CAAG,IAAA;AN+XzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM7XR5N,IAAAA,CAAAA,CAAAA,CAAO0N,UAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN8XF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5XL,MAAA,CAAO1N,IAAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN4XD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK;AACxE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACX,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI;AM1XrE,CAAA,CAAA,CAAA,CAAA,CACD,4BAAQkN,CACP3C,aAAqB,CAAA,CACrBsD,iBAA2C,CAAA,CACN;ANwXvC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMvXL,KAAA,CAAM3R,MAAAA,CAAAA,CAAAA,CAAS,IAAI,CAACA,MAAM;ANwX5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMvXL,KAAA,CAAMmM,OAAAA,CAAAA,CAAAA,CAAUnM,MAAAA,CAAOmM,OAAO;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMyF,YAAAA,CAAAA,CAAAA,CAAezF,OAAAA,CAAQrI,IAAI,CAAC8N,YAAY;ANwXhD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMvXL,KAAA,CAAMC,MAAAA,CAAAA,CAAAA,CAAS1F,OAAAA,CAAQ0F,MAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,mBAAAA,CAAAA,CAAAA,CAAsB9R,MAAAA,CAAOiI,MAAM,CAAC6J,mBAAmB;ANwX/D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtXL,MAAA,CAAO;ANuXT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtXRC,MAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA;ANuXX,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtXX,GAAA,CAAIC,UAAAA,CAAAA,CAAAA,CAAa3D,aAAAA,CAAc4D,QAAQ,CAAA,CAAA;ANuX3C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM;AACvI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;AMpXhG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKD,UAAAA,CAAWzP,KAAK,CAAC2P,IAAI,CAACC,QAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,SAAA,CAAA,CAAA,CAAe;AACrDH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAahS,MAAAA,CAAOG,KAAK,CAACE,QAAQ,CAACI,SAAS,CAACQ,aAAa,CAAA,CAAA;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANsXJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMpXX,KAAA,CAAMmR,SAAAA,CAAAA,CAAAA,CAAYP,MAAAA,CAAOQ,WAAW,CAAEL,UAAAA,CAAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMM,UAAAA,CAAAA,CAAAA,CAAajJ,IAAAA,CAAKkJ,gBAAgB,CAAEX,YAAAA,CAAaY,cAAc,CAAEJ,SAAAA,CAAAA,CAAAA;AAEvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAOE,UAAAA,CAAWG,GAAG,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANoXH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMnXRC,OAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM5O,IAAAA,CAAAA,CAAAA,CAAO,IAAI,CAAC9D,MAAM,CAACmM,OAAO,CAACrI,IAAI;ANoXzC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMnXX,KAAA,CAAM6O,YAAAA,CAAAA,CAAAA,CAAe7O,IAAAA,CAAKzD,QAAQ;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMuS,eAAAA,CAAAA,CAAAA,CAAkBD,YAAAA,CAAalS,SAAS,CAACmS,eAAe;AAE9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKA,eAAAA,CAAAA,CAAkB;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO9O,IAAAA,CAAK8N,YAAY,CAACiB,YAAY,CAAED,eAAAA,CAAgBV,IAAI,CAAA;AAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANmXJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMjXX,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACAY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAWC,wBAAAA,CAA0BpB,iBAAAA,CAAAA,CAAmBG,mBAAAA;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AACD;AAEA,CAAA,CAAA;ANiXA,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS;AM/W9C,CAAA,CAAA,CAAA,CACD,QAAA,CAASiB,wBAAAA,CACRpB,iBAA2C,CAAA,CAC3CG,mBAA2B,CAAA,CAAA;AAE3B,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMgB,SAAAA,CAAAA,CAAAA,CAAuE;AN6W9E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS;AM3WpE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAY,CAAEE,UAAAA,CAAAA,CAAAA,CAAAA;AN6WhB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5WR,MAAA,CAAO;AN6WV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5WXC,GAAAA,CAAAA,CAAKD,UAAAA,CAAWE,MAAM,CAAA,CAAA,CAAG5I,gBAAAA;AACzB6I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAMH,UAAAA,CAAWI,KAAK;AN6W1B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5WXrP,IAAAA,CAAAA,CAAM,CAAA,QAAA,CAAA;AN6WV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5WX6H,MAAAA,CAAAA,CAAQ;AN6WZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5WdyH,SAAAA,CAAAA,CAAW;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN6WF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS;AM1WpE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAY,CAAEL,UAAAA,CAAAA,CAAkBM,WAAAA,CAAAA,CAAAA,CAAAA;AN4WlC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM3WR,MAAA,CAAO;AACNL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAKD,UAAAA,CAAWC,GAAG,CAAA,CAAA,CAAGK,WAAAA,CAAYC,MAAM,CAAA,CAAA,CAAGjJ,gBAAAA;AAC3C6I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAMH,UAAAA,CAAWI,KAAK;AN4W1B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM3WXrP,IAAAA,CAAAA,CAAM,CAAA,QAAA,CAAA;AN4WV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM3WX6H,MAAAA,CAAAA,CAAQ;AN4WZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM3WdyH,SAAAA,CAAAA,CAAW;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN4WF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS;AMzWpE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAY,CAAEL,UAAAA,CAAAA,CAAkBM,WAAAA,CAAAA,CAAAA,CAAAA;AN2WlC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1WR,MAAA,CAAO;AN2WV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1WXL,GAAAA,CAAAA,CAAKD,UAAAA,CAAWE,MAAM,CAAA,CAAA,CAAG5I,gBAAAA;AACzB6I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAMH,UAAAA,CAAWI,KAAK,CAAA,CAAA,CAAGE,WAAAA,CAAYE,KAAK;AN2W9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1WXzP,IAAAA,CAAAA,CAAM,CAAA,QAAA,CAAA;AN2WV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1WX6H,MAAAA,CAAAA,CAAQ;AN2WZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1WdyH,SAAAA,CAAAA,CAAW;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN2WF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;AMxW/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAY,CAAEL,UAAAA,CAAAA,CAAkBM,WAAAA,CAAAA,CAAAA,CAAAA;AN0WlC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMzWR,MAAA,CAAO;AACNL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAKD,UAAAA,CAAWC,GAAG,CAAA,CAAA,CAAGK,WAAAA,CAAYC,MAAM,CAAA,CAAA,CAAGjJ,gBAAAA;AAC3C6I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAMH,UAAAA,CAAWI,KAAK,CAAA,CAAA,CAAGE,WAAAA,CAAYE,KAAK;AN0W9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMzWXzP,IAAAA,CAAAA,CAAM,CAAA,QAAA,CAAA;AN0WV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMzWX6H,MAAAA,CAAAA,CAAQ;AN0WZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMzWdyH,SAAAA,CAAAA,CAAW;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA;AN0WD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK;AAC/G,CAAC,CAAC,CAAC,CMxWF,EAAA,CAAA,CAAKrO,MAAAA,CAAOyO,SAAS,CAACC,cAAc,CAACC,IAAI,CAAEb,SAAAA,CAAAA,CAAWnB,iBAAAA,CAAAA,CAAAA,CAAuB;ANyW9E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMxWL,MAAA,CAAO;AACNmB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAS,CAAEnB,iBAAAA;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA;ANyWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS;AMtW9F,CAAA,CAAA,CAAA,CAAA,MAAA,CAAOG,mBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB,CAAA,GAAA,CAAA,CAAA,CAAA,CAAQ;AACtCgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAUc,QAAQ;AAClBd,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAUe,QAAQ;AAClBf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAUgB,QAAQ;AAClBhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAUiB;ANwWZ,CAAC,CAAC,CAAC,CAAC,CMvWF,CAAA,CAAA,CAAG;AACHjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAUe,QAAQ;AAClBf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAUc,QAAQ;AAClBd,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAUiB,QAAQ;AAClBjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAUgB;AACV,CAAA,CAAA,CAAA,CAAA,CAAA;AACF;AAEA,CAAA,CAAA;ANuWA,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AACnF,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS;AAChE,CAAC;AACD,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM;AAC7B,CAAC;AACD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC;AACH,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACf,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AACH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC;AACD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM;AAChH,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACzC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AMrW5B,CAAA,CAAA,CAAA,CACD,QAAA,CAASjE,wBAAAA,CACRT,gBAA0D,CAAA,CAC1DhO,IAAY,CAAA,CAAA;ANoWb,CAAC,CAAC,CAAC,CMlWF,GAAA,CAAI4S,eAAAA;ANmWL,CAAC,CAAC,CAAC,CMjWF,GAAA,CAAA,CAAM,KAAA,CAAM/G,IAAAA,CAAAA,EAAAA,CAAQmC,gBAAAA,CAAmB;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM6E,sBAAAA,CAAAA,CAAAA,CAAyB7S,IAAAA,CAAK8S,WAAW,CAAEjH,IAAAA,CAAKzL,MAAM,CAAA;AAE5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKyS,sBAAAA,CAAAA,CAAAA,CAAyB,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC7S,IAAAA,CAAK+S,SAAS,CAAEF,sBAAAA,CAAAA,CAAAA,CAAyB,CAAA,CAAA,CAAIG,KAAK,CAAEnH,IAAAA,CAAKqC,OAAO,CAAA,CAAA,CAAK;AACxG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAAC0E,eAAAA,CAAAA,CAAAA,CAAAA,CAAmBC,sBAAAA,CAAAA,CAAAA,CAAAA,CAA0BD,eAAAA,CAAgBxN,QAAQ,CAAA,CAAG;ANgWhF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM/VRwN,eAAAA,CAAAA,CAAAA,CAAkB;AACjBxS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAQyL,IAAAA,CAAKzL,MAAM;ANgWvB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM/VXgF,QAAAA,CAAAA,CAAUyN,sBAAAA;AACVzE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,iBAAAA,CAAAA,CAAmBvC,IAAAA,CAAKuC,iBAAiB;AACzCF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAASrC,IAAAA,CAAKqC;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;ANgWD,CAAC,CAAC,CAAC,CM9VF,MAAA,CAAO0E,eAAAA;AACR;AAEA,CAAA,CAAA;AN8VA,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM;AAC1C,CAAC;AACD,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ;AAC5D,CAAC;AACD,CAAC,CAAC,CAAC,CAAC;AM5VH,CAAA,CAAA,CAAA,CACM,QAAA,CAASzE,YAAAA,CAAc/N,MAAc,CAAA,CAAEgO,iBAAyB,CAAA,CAAA;AN6VvE,CAAC,CAAC,CAAC,CM5VF,KAAA,CAAM6E,kBAAAA,CAAAA,CAAAA,CAAqB7E,iBAAAA,CAAAA,CAAAA,CAAAA,CAAqB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAGA,iBAAAA,CAAmB,CAAA,CAAE,CAAC;AACrF,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM8E,mBAAAA,CAAAA,CAAAA,CAAsBC,GAAAA,CAAIC,QAAQ,CAACC,gCAAgC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAClG,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,iBAAAA,CAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAA;AN6V3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS;AACnG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1H,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC;AACtH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK;AACrH,CAAC,CAAC,CAAC,CM3VFlT,MAAAA,CAAAA,CAAAA,CAASA,MAAAA,CAAOmT,OAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN4VnD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM;AACvC,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5H,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1F,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AMzVjH,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMrF,OAAAA,CAAAA,CAAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAGgF,mBAAAA,CAAqB,CAAA,CAAA,CAAG,CAAA,CAAG9S,MAAAA,CAAQ,CAAA,CAAE,CAAA,CAAGkT,iBAAAA,CAAAA,CAAAA,CAAsBL,kBAAAA,CAAoB,CAAA,CAAE,CAAC;AN2VjH,CAAC,CAAC,CAAC,CMzVF,MAAA,CAAO,GAAA,CAAIO,MAAAA,CAAQtF,OAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA;AAC7B;AAEA,CAAA,CAAA;ANyVA,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;AACjF,CAAC;AACD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;AACvG,CAAC,CAAC,CAAC,CMvVH,QAAA,CAASK,kBAAAA,CAAoBP,gBAA0D,CAAA,CAAA;AACtF,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMyF,WAAAA,CAAAA,CAAAA,CAAc,CAAEzT,IAAAA,CAAAA,CAAAA,CAAAA;ANwVvB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMvVL,KAAA,CAAMwO,gBAAAA,CAAAA,CAAAA,CAAmBC,wBAAAA,CAA0BT,gBAAAA,CAAAA,CAAkBhO,IAAAA,CAAAA;AAErE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACwO,gBAAAA,CAAAA,CAAmB;ANuV3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtVR,MAAA,CAAO,KAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAIkF,eAAAA,CAAAA,CAAAA,CAAkB,CAAA;ANsVxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMpVL,EAAA,CAAA,CAAKlF,gBAAAA,CAAiBpJ,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAI;ANqVzC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMpVRsO,eAAAA,CAAAA,CAAAA,CAAkBlF,gBAAAA,CAAiBpJ,QAAQ,CAAA,CAAA,CAAG,CAAA;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANqVF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMnVL,KAAA,CAAMuO,UAAAA,CAAAA,CAAAA,CAAa3T,IAAAA,CAAK+S,SAAS,CAAEW,eAAAA,CAAAA;AAEnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAOlF,gBAAAA,CAAiBN,OAAO,CAAC0F,IAAI,CAAED,UAAAA,CAAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA;ANmVD,CAAC,CAAC,CAAC,CMjVF,MAAA,CAAOF,WAAAA;AACR;AAEA,CAAA,CAAA;ANiVA,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;AM/UxC,CAAA,CAAA,CAAA,CACD,QAAA,CAAS3E,eAAAA,CAAiBN,gBAAkC,CAAA,CAAExO,IAAY,CAAA,CAAA;AACzE,CAAA,CAAA,CAAA,CAAA,GAAA,CAAI0T,eAAAA,CAAAA,CAAAA,CAAkB,CAAA;ANgVvB,CAAC,CAAC,CAAC,CM9UF,EAAA,CAAA,CAAKlF,gBAAAA,CAAiBpJ,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAI;AN+UxC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM9ULsO,eAAAA,CAAAA,CAAAA,CAAkBlF,gBAAAA,CAAiBpJ,QAAQ,CAAA,CAAA,CAAG,CAAA;AAC/C,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMyO,MAAAA,CAAAA,CAAAA,CAAS1F,YAAAA,CAAcK,gBAAAA,CAAiBpO,MAAM,CAAA,CAAE,CAAA,CAAA;AN8UvD,CAAC,CAAC,CAAC,CM7UF,KAAA,CAAM0T,WAAAA,CAAAA,CAAAA,CAAc9T,IAAAA,CAAK+S,SAAS,CAAEW,eAAAA,CAAAA;AN8UrC,CAAC,CAAC,CAAC,CM7UF,KAAA,CAAMV,KAAAA,CAAAA,CAAAA,CAAQc,WAAAA,CAAYd,KAAK,CAAEa,MAAAA,CAAAA;AN8UlC,CAAC,CAAC,CAAC,CM5UF,MAAA,CAAOb,KAAK,CAAE,CAAA,CAAG;AAClB;AAEA,CAAA,CAAA;AN4UA,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ;AAC5B,CAAC,CAAC,CAAC,CM1UH,QAAA,CAAS9G,kBAAAA,CAAoB6H,SAAiC,CAAA,CAAA;AAC7D,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,CAAExG,QAAAA,CAAAA,CAAAA,CAAAA;AN2UV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1UL,KAAA,CAAMyG,aAAAA,CAAAA,CAAAA,CAAgBD,SACrB,CAAA,CAAA,CAAA,IAAA,CAAA,GAAA,CAAA,OAAA,CAAA,OAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA;AACCE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAM,CAAExP,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA;AN0UZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM;AMxU1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMyP,MAAAA,CAAAA,CAAAA,CAAS,MAAA,CAAOzP,IAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAWA,IAAAA,CAAAA,CAAAA,CAAO0P,MAAAA,CAAQ1P,IAAAA,CAAK/E,EAAE,CAAA;AN0UnE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW;AMvU/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAOwU,MAAAA,CAAOE,WAAW,CAAA,CAAA,CAAG/I,QAAQ,CAAEkC,QAAAA,CAAS6G,WAAW,CAAA,CAAA,CAAA;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANyUH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMxUL,MAAA,CAAOJ,aAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA;AACD;AAEA,CAAA,CAAA;ANwUA,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;AACpE,CAAC,CAAC,CAAC,CMtUH,QAAA,CAASpF,2BAAAA,CAA6BxJ,QAAuB,CAAA,CAAA;ANuU7D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7G,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;AACtE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;AACnE,CAAC,CAAC,CAAC,CMtUF,KAAA,CAAMiP,UAAAA,CAAAA,CAAAA,CAAajP,QAAAA,CAASlB,QAAQ,CAAA,CAAA,CAAA,CAAIkB,QAAAA,CAASlB,QAAQ,CAACe,YAAY,CAAE,CAAA,OAAA,CAAA,CAAA;ANuUzE,CAAC,CAAC,CAAC,CMrUF,KAAA,CAAM/D,UAAAA,CAAAA,CAAAA,CAAakE,QAAAA,CAASlE,UAAU;ANsUvC,CAAC,CAAC,CAAC,CMpUF,MAAA,CAAOmT,UAAAA,CAAAA,CAAAA,CAAAA,CAAcnT,UAAAA,CAAAA,CAAAA,CAAAA,CAAcA,UAAAA,CAAWK,EAAE,CAAE,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAaL,UAAAA,CAAW+D,YAAY,CAAE,CAAA,OAAA,CAAA,CAAA;AACzF;AAEA,CAAA,CAAA;ANoUA,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO;AACvE,CAAC;AACD,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK;AACzD,CAAC,CAAC,CAAC,CMlUH,QAAA,CAAS4J,yBAAAA,CAA2BH,cAA6B,CAAA,CAAA;ANmUjE,CAAC,CAAC,CAAC,CMlUF,KAAA,CAAMtN,SAAAA,CAAAA,CAAAA,CAAYsN,cAAAA,CAAetN,SAAS;AAE1C,CAAA,CAAA,CAAA,CAAA,MAAA,CAAOA,SAAAA,CAAAA,CAAAA,CAAAA,CAAaA,SAAAA,CAAUG,EAAE,CAAE,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAaH,SAAAA,CAAU6D,YAAY,CAAE,CAAA,OAAA,CAAA,CAAA;AACxE;AAEA,CAAA,CAAA;ANiUA,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;AAC7C,CAAC,CAAC,CAAC,CM/TH,QAAA,CAAS8G,oBAAAA,CAAsB3L,MAAc,CAAA,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,CAAC,CAACA,MAAAA;AACV;AAEA,CAAA,CAAA;AN+TA,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;AAChH,CAAC,CAAC,CAAC,CM7TH,QAAA,CAAS6O,4BAAAA,CAA8BrQ,MAAc,CAAA,CAAA;AACpD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAOA,MAAAA,CAAOG,KAAK,CAACmO,OAAO,CAACoH,GAAG,CAAE,CAAA,OAAA,CAAA,CAAA;AAClC;;ACtzBA,CAAA,CAAA;APsnCA,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM;AACrB,CAAC;AACD,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK;AACtF,CAAC,CAAC,CAAC,COpnCI,KAAA,CAAMC,OAAAA,CAAAA,OAAAA,CAAgBtS,MAAAA,CAAAA;APqnC7B,CAAC,CAAC,CAAC,COrlCKuS,kBAAAA,CAAoBxR,WAAyB,CAAA,CAAExB,IAA8B,CAAA,CAAiC;AACpH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAOyB,mBAAAA,CAAqBD,WAAAA,CAAAA,CAAaxB,IAAAA,CAAAA;AAC1C,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;APqlCD,CAAC,CAAC,CAAC,CAAC,CAAC;AOnlCH,CAAA,CAAA,CAAA,CAAA,CACD,MAAA,CAAA,GAAA,CAAkBU,UAAAA,CAAAA,CAAAA,CAAa;APolChC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,COnlCL,MAAA,CAAO,CAAA,OAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;APmlCD,CAAC,CAAC,CAAC,CAAC,CAAC;AOjlCH,CAAA,CAAA,CAAA,CAAA,CACD,MAAA,CAAA,GAAA,CAA2BC,gBAAAA,CAAAA,CAAAA,CAAyB;APklCrD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,COjlCL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;APilCD,CAAC,CAAC,CAAC,CAAC,CAAC;AO/kCH,CAAA,CAAA,CAAA,CAAA,CACD,MAAA,CAAA,GAAA,CAAkBgI,QAAAA,CAAAA,CAAAA,CAAW;APglC9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CO/kCL,MAAA,CAAO;AAAEnI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,cAAAA;AAAgB2H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA;AACD;;APolCA,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,CAAC,cAAc,CAAC,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,mBAAmB,CAAC,CAAC;AAC/M,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC","file":"index.js.map","sourcesContent":["import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { CKEditorError, toMap, uid, Rect, keyCodes, Collection, logWarning, env } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { ListView, View, ListItemView, ContextualBalloon, clickOutsideHandler, ButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { TextWatcher } from '@ckeditor/ckeditor5-typing/dist/index.js';\nimport { debounce } from 'es-toolkit/compat';\n\nconst BRACKET_PAIRS = {\n '(': ')',\n '[': ']',\n '{': '}'\n};\n/**\n * The mention command.\n *\n * The command is registered by {@link module:mention/mentionediting~MentionEditing} as `'mention'`.\n *\n * To insert a mention into a range, execute the command and specify a mention object with a range to replace:\n *\n * ```ts\n * const focus = editor.model.document.selection.focus;\n *\n * // It will replace one character before the selection focus with the '#1234' text\n * // with the mention attribute filled with passed attributes.\n * editor.execute( 'mention', {\n * \tmarker: '#',\n * \tmention: {\n * \t\tid: '#1234',\n * \t\tname: 'Foo',\n * \t\ttitle: 'Big Foo'\n * \t},\n * \trange: editor.model.createRange( focus.getShiftedBy( -1 ), focus )\n * } );\n *\n * // It will replace one character before the selection focus with the 'The \"Big Foo\"' text\n * // with the mention attribute filled with passed attributes.\n * editor.execute( 'mention', {\n * \tmarker: '#',\n * \tmention: {\n * \t\tid: '#1234',\n * \t\tname: 'Foo',\n * \t\ttitle: 'Big Foo'\n * \t},\n * \ttext: 'The \"Big Foo\"',\n * \trange: editor.model.createRange( focus.getShiftedBy( -1 ), focus )\n * } );\n *\t```\n */ class MentionCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n // Since this command may pass range in execution parameters, it should be checked directly in execute block.\n this._isEnabledBasedOnSelection = false;\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const doc = model.document;\n this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, 'mention');\n }\n /**\n\t * Executes the command.\n\t *\n\t * @param options Options for the executed command.\n\t * @param options.mention The mention object to insert. When a string is passed, it will be used to create a plain\n\t * object with the name attribute that equals the passed string.\n\t * @param options.marker The marker character (e.g. `'@'`).\n\t * @param options.text The text of the inserted mention. Defaults to the full mention string composed from `marker` and\n\t * `mention` string or `mention.id` if an object is passed.\n\t * @param options.range The range to replace.\n\t * Note that the replaced range might be shorter than the inserted text with the mention attribute.\n\t * @fires execute\n\t */ execute(options) {\n const model = this.editor.model;\n const document = model.document;\n const selection = document.selection;\n const mentionData = typeof options.mention == 'string' ? {\n id: options.mention\n } : options.mention;\n const mentionID = mentionData.id;\n const range = options.range || selection.getFirstRange();\n // Don't execute command if range is in non-editable place.\n if (!model.canEditAt(range)) {\n return;\n }\n const mentionText = options.text || mentionID;\n const mention = _addMentionAttributes({\n _text: mentionText,\n id: mentionID\n }, mentionData);\n if (!mentionID.startsWith(options.marker)) {\n /**\n\t\t\t * The feed item ID must start with the marker character(s).\n\t\t\t *\n\t\t\t * Correct mention feed setting:\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * mentions: [\n\t\t\t * \t{\n\t\t\t * \t\tmarker: '@',\n\t\t\t * \t\tfeed: [ '@Ann', '@Barney', ... ]\n\t\t\t * \t}\n\t\t\t * ]\n\t\t\t * ```\n\t\t\t *\n\t\t\t * Incorrect mention feed setting:\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * mentions: [\n\t\t\t * \t{\n\t\t\t * \t\tmarker: '@',\n\t\t\t * \t\tfeed: [ 'Ann', 'Barney', ... ]\n\t\t\t * \t}\n\t\t\t * ]\n\t\t\t * ```\n\t\t\t *\n\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t *\n\t\t\t * @error mentioncommand-incorrect-id\n\t\t\t */ throw new CKEditorError('mentioncommand-incorrect-id', this);\n }\n model.change((writer)=>{\n const currentAttributes = toMap(selection.getAttributes());\n const attributesWithMention = new Map(currentAttributes.entries());\n attributesWithMention.set('mention', mention);\n // Replace a range with the text with a mention.\n const insertionRange = model.insertContent(writer.createText(mentionText, attributesWithMention), range);\n const nodeBefore = insertionRange.start.nodeBefore;\n const nodeAfter = insertionRange.end.nodeAfter;\n const isFollowedByWhiteSpace = nodeAfter && nodeAfter.is('$text') && nodeAfter.data.startsWith(' ');\n let isInsertedInBrackets = false;\n if (nodeBefore && nodeAfter && nodeBefore.is('$text') && nodeAfter.is('$text')) {\n const precedingCharacter = nodeBefore.data.slice(-1);\n const isPrecededByOpeningBracket = precedingCharacter in BRACKET_PAIRS;\n const isFollowedByBracketClosure = isPrecededByOpeningBracket && nodeAfter.data.startsWith(BRACKET_PAIRS[precedingCharacter]);\n isInsertedInBrackets = isPrecededByOpeningBracket && isFollowedByBracketClosure;\n }\n // Don't add a white space if either of the following is true:\n // * there's already one after the mention;\n // * the mention was inserted in the empty matching brackets.\n // https://github.com/ckeditor/ckeditor5/issues/4651\n if (!isInsertedInBrackets && !isFollowedByWhiteSpace) {\n model.insertContent(writer.createText(' ', currentAttributes), range.start.getShiftedBy(mentionText.length));\n }\n });\n }\n}\n\n/**\n * The mention editing feature.\n *\n * It introduces the {@link module:mention/mentioncommand~MentionCommand command} and the `mention`\n * attribute in the {@link module:engine/model/model~Model model} which renders in the {@link module:engine/view/view view}\n * as a `<span class=\"mention\" data-mention=\"@mention\">`.\n */ class MentionEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'MentionEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const model = editor.model;\n const doc = model.document;\n // Allow the mention attribute on all text nodes.\n model.schema.extend('$text', {\n allowAttributes: 'mention'\n });\n // Upcast conversion.\n editor.conversion.for('upcast').elementToAttribute({\n view: {\n name: 'span',\n attributes: 'data-mention',\n classes: 'mention'\n },\n model: {\n key: 'mention',\n value: (viewElement)=>_toMentionAttribute(viewElement)\n }\n });\n // Downcast conversion.\n editor.conversion.for('downcast').attributeToElement({\n model: 'mention',\n view: createViewMentionElement\n });\n editor.conversion.for('downcast').add(preventPartialMentionDowncast);\n doc.registerPostFixer((writer)=>removePartialMentionPostFixer(writer, doc, model.schema));\n doc.registerPostFixer((writer)=>extendAttributeOnMentionPostFixer(writer, doc));\n doc.registerPostFixer((writer)=>selectionMentionAttributePostFixer(writer, doc));\n editor.commands.add('mention', new MentionCommand(editor));\n }\n}\n/**\n * @internal\n */ function _addMentionAttributes(baseMentionData, data) {\n return Object.assign({\n uid: uid()\n }, baseMentionData, data || {});\n}\n/**\n * Creates a mention attribute value from the provided view element and optional data.\n *\n * This function is exposed as\n * {@link module:mention/mention~Mention#toMentionAttribute `editor.plugins.get( 'Mention' ).toMentionAttribute()`}.\n *\n * @internal\n */ function _toMentionAttribute(viewElementOrMention, data) {\n const dataMention = viewElementOrMention.getAttribute('data-mention');\n const textNode = viewElementOrMention.getChild(0);\n // Do not convert empty mentions.\n if (!textNode) {\n return;\n }\n const baseMentionData = {\n id: dataMention,\n _text: textNode.data\n };\n return _addMentionAttributes(baseMentionData, data);\n}\n/**\n * A converter that blocks partial mention from being converted.\n *\n * This converter is registered with 'highest' priority in order to consume mention attribute before it is converted by\n * any other converters. This converter only consumes partial mention - those whose `_text` attribute is not equal to text with mention\n * attribute. This may happen when copying part of mention text.\n */ function preventPartialMentionDowncast(dispatcher) {\n dispatcher.on('attribute:mention', (evt, data, conversionApi)=>{\n const mention = data.attributeNewValue;\n if (!data.item.is('$textProxy') || !mention) {\n return;\n }\n const start = data.range.start;\n const textNode = start.textNode || start.nodeAfter;\n if (textNode.data != mention._text) {\n // Consume item to prevent partial mention conversion.\n conversionApi.consumable.consume(data.item, evt.name);\n }\n }, {\n priority: 'highest'\n });\n}\n/**\n * Creates a mention element from the mention data.\n */ function createViewMentionElement(mention, { writer }) {\n if (!mention) {\n return;\n }\n const attributes = {\n class: 'mention',\n 'data-mention': mention.id\n };\n const options = {\n id: mention.uid,\n priority: 20\n };\n return writer.createAttributeElement('span', attributes, options);\n}\n/**\n * Model post-fixer that disallows typing with selection when the selection is placed after the text node with the mention attribute or\n * before a text node with mention attribute.\n */ function selectionMentionAttributePostFixer(writer, doc) {\n const selection = doc.selection;\n const focus = selection.focus;\n if (selection.isCollapsed && selection.hasAttribute('mention') && shouldNotTypeWithMentionAt(focus)) {\n writer.removeSelectionAttribute('mention');\n return true;\n }\n return false;\n}\n/**\n * Helper function to detect if mention attribute should be removed from selection.\n * This check makes only sense if the selection has mention attribute.\n *\n * The mention attribute should be removed from a selection when selection focus is placed:\n * a) after a text node\n * b) the position is at parents start - the selection will set attributes from node after.\n */ function shouldNotTypeWithMentionAt(position) {\n const isAtStart = position.isAtStart;\n const isAfterAMention = position.nodeBefore && position.nodeBefore.is('$text');\n return isAfterAMention || isAtStart;\n}\n/**\n * Model post-fixer that removes the mention attribute from the modified text node.\n */ function removePartialMentionPostFixer(writer, doc, schema) {\n const changes = doc.differ.getChanges();\n let wasChanged = false;\n for (const change of changes){\n if (change.type == 'attribute') {\n continue;\n }\n // Checks the text node on the current position.\n const position = change.position;\n if (change.name == '$text') {\n const nodeAfterInsertedTextNode = position.textNode && position.textNode.nextSibling;\n // Checks the text node where the change occurred.\n wasChanged = checkAndFix(position.textNode, writer) || wasChanged;\n // Occurs on paste inside a text node with mention.\n wasChanged = checkAndFix(nodeAfterInsertedTextNode, writer) || wasChanged;\n wasChanged = checkAndFix(position.nodeBefore, writer) || wasChanged;\n wasChanged = checkAndFix(position.nodeAfter, writer) || wasChanged;\n }\n // Checks text nodes in inserted elements (might occur when splitting a paragraph or pasting content inside text with mention).\n if (change.name != '$text' && change.type == 'insert') {\n const insertedNode = position.nodeAfter;\n for (const item of writer.createRangeIn(insertedNode).getItems()){\n wasChanged = checkAndFix(item, writer) || wasChanged;\n }\n }\n // Inserted inline elements might break mention.\n if (change.type == 'insert' && schema.isInline(change.name)) {\n const nodeAfterInserted = position.nodeAfter && position.nodeAfter.nextSibling;\n wasChanged = checkAndFix(position.nodeBefore, writer) || wasChanged;\n wasChanged = checkAndFix(nodeAfterInserted, writer) || wasChanged;\n }\n }\n return wasChanged;\n}\n/**\n * This post-fixer will extend the attribute applied on the part of the mention so the whole text node of the mention will have\n * the added attribute.\n */ function extendAttributeOnMentionPostFixer(writer, doc) {\n const changes = doc.differ.getChanges();\n let wasChanged = false;\n for (const change of changes){\n if (change.type === 'attribute' && change.attributeKey != 'mention') {\n // Checks the node on the left side of the range...\n const nodeBefore = change.range.start.nodeBefore;\n // ... and on the right side of the range.\n const nodeAfter = change.range.end.nodeAfter;\n for (const node of [\n nodeBefore,\n nodeAfter\n ]){\n if (isBrokenMentionNode(node) && node.getAttribute(change.attributeKey) != change.attributeNewValue) {\n writer.setAttribute(change.attributeKey, change.attributeNewValue, node);\n wasChanged = true;\n }\n }\n }\n }\n return wasChanged;\n}\n/**\n * Checks if a node has a correct mention attribute if present.\n * Returns `true` if the node is text and has a mention attribute whose text does not match the expected mention text.\n */ function isBrokenMentionNode(node) {\n if (!node || !(node.is('$text') || node.is('$textProxy')) || !node.hasAttribute('mention')) {\n return false;\n }\n const text = node.data;\n const mention = node.getAttribute('mention');\n const expectedText = mention._text;\n return text != expectedText;\n}\n/**\n * Fixes a mention on a text node if it needs a fix.\n */ function checkAndFix(textNode, writer) {\n if (isBrokenMentionNode(textNode)) {\n writer.removeAttribute('mention', textNode);\n return true;\n }\n return false;\n}\n\n/**\n * The mention ui view.\n */ class MentionsView extends ListView {\n selected;\n position;\n /**\n\t * @inheritDoc\n\t */ constructor(locale){\n super(locale);\n this.extendTemplate({\n attributes: {\n class: [\n 'ck-mentions'\n ],\n tabindex: '-1'\n }\n });\n }\n /**\n\t * {@link #select Selects} the first item.\n\t */ selectFirst() {\n this.select(0);\n }\n /**\n\t * Selects next item to the currently {@link #select selected}.\n\t *\n\t * If the last item is already selected, it will select the first item.\n\t */ selectNext() {\n const item = this.selected;\n const index = this.items.getIndex(item);\n this.select(index + 1);\n }\n /**\n\t * Selects previous item to the currently {@link #select selected}.\n\t *\n\t * If the first item is already selected, it will select the last item.\n\t */ selectPrevious() {\n const item = this.selected;\n const index = this.items.getIndex(item);\n this.select(index - 1);\n }\n /**\n\t * Marks item at a given index as selected.\n\t *\n\t * Handles selection cycling when passed index is out of bounds:\n\t * - if the index is lower than 0, it will select the last item,\n\t * - if the index is higher than the last item index, it will select the first item.\n\t *\n\t * @param index Index of an item to be marked as selected.\n\t */ select(index) {\n let indexToGet = 0;\n if (index > 0 && index < this.items.length) {\n indexToGet = index;\n } else if (index < 0) {\n indexToGet = this.items.length - 1;\n }\n const item = this.items.get(indexToGet);\n // Return early if item is already selected.\n if (this.selected === item) {\n return;\n }\n // Remove highlight of previously selected item.\n if (this.selected) {\n this.selected.removeHighlight();\n }\n item.highlight();\n this.selected = item;\n // Scroll the mentions view to the selected element.\n if (!this._isItemVisibleInScrolledArea(item)) {\n this.element.scrollTop = item.element.offsetTop;\n }\n }\n /**\n\t * Triggers the `execute` event on the {@link #select selected} item.\n\t */ executeSelected() {\n this.selected.fire('execute');\n }\n /**\n\t * Checks if an item is visible in the scrollable area.\n\t *\n\t * The item is considered visible when:\n\t * - its top boundary is inside the scrollable rect\n\t * - its bottom boundary is inside the scrollable rect (the whole item must be visible)\n\t */ _isItemVisibleInScrolledArea(item) {\n return new Rect(this.element).contains(new Rect(item.element));\n }\n}\n\n/**\n * This class wraps DOM element as a CKEditor5 UI View.\n *\n * It allows to render any DOM element and use it in mentions list.\n */ class MentionDomWrapperView extends View {\n /**\n\t * The DOM element for which wrapper was created.\n\t */ domElement;\n /**\n\t * Creates an instance of {@link module:mention/ui/domwrapperview~MentionDomWrapperView} class.\n\t *\n\t * Also see {@link #render}.\n\t */ constructor(locale, domElement){\n super(locale);\n // Disable template rendering on this view.\n this.template = undefined;\n this.domElement = domElement;\n // Render dom wrapper as a button.\n this.domElement.classList.add('ck-button');\n this.set('isOn', false);\n // Handle isOn state as in buttons.\n this.on('change:isOn', (evt, name, isOn)=>{\n if (isOn) {\n this.domElement.classList.add('ck-on');\n this.domElement.classList.remove('ck-off');\n } else {\n this.domElement.classList.add('ck-off');\n this.domElement.classList.remove('ck-on');\n }\n });\n // Pass click event as execute event.\n this.listenTo(this.domElement, 'click', ()=>{\n this.fire('execute');\n });\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n this.element = this.domElement;\n }\n /**\n\t * Focuses the DOM element.\n\t */ focus() {\n this.domElement.focus();\n }\n}\n\nclass MentionListItemView extends ListItemView {\n item;\n marker;\n highlight() {\n const child = this.children.first;\n child.isOn = true;\n }\n removeHighlight() {\n const child = this.children.first;\n child.isOn = false;\n }\n}\n\nconst VERTICAL_SPACING = 3;\n// The key codes that mention UI handles when it is open (without commit keys).\nconst defaultHandledKeyCodes = [\n keyCodes.arrowup,\n keyCodes.arrowdown,\n keyCodes.esc\n];\n// Dropdown commit key codes.\nconst defaultCommitKeyCodes = [\n keyCodes.enter,\n keyCodes.tab\n];\n/**\n * The mention UI feature.\n */ class MentionUI extends Plugin {\n /**\n\t * The mention view.\n\t */ _mentionsView;\n /**\n\t * Stores mention feeds configurations.\n\t */ _mentionsConfigurations;\n /**\n\t * The contextual balloon plugin instance.\n\t */ _balloon;\n _items = new Collection();\n _lastRequested;\n /**\n\t * Debounced feed requester. It uses `es-toolkit#debounce` method to delay function call.\n\t */ _requestFeedDebounced;\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'MentionUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n ContextualBalloon\n ];\n }\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this._mentionsView = this._createMentionView();\n this._mentionsConfigurations = new Map();\n this._requestFeedDebounced = debounce(this._requestFeed, 100);\n editor.config.define('mention', {\n feeds: []\n });\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const commitKeys = editor.config.get('mention.commitKeys') || defaultCommitKeyCodes;\n const handledKeyCodes = defaultHandledKeyCodes.concat(commitKeys);\n this._balloon = editor.plugins.get(ContextualBalloon);\n // Key listener that handles navigation in mention view.\n editor.editing.view.document.on('keydown', (evt, data)=>{\n if (isHandledKey(data.keyCode) && this._isUIVisible) {\n data.preventDefault();\n evt.stop(); // Required for Enter key overriding.\n if (data.keyCode == keyCodes.arrowdown) {\n this._mentionsView.selectNext();\n }\n if (data.keyCode == keyCodes.arrowup) {\n this._mentionsView.selectPrevious();\n }\n if (commitKeys.includes(data.keyCode)) {\n this._mentionsView.executeSelected();\n }\n if (data.keyCode == keyCodes.esc) {\n this._hideUIAndRemoveMarker();\n }\n }\n }, {\n priority: 'highest'\n }); // Required to override the Enter key.\n // Close the dropdown upon clicking outside of the plugin UI.\n clickOutsideHandler({\n emitter: this._mentionsView,\n activator: ()=>this._isUIVisible,\n contextElements: ()=>[\n this._balloon.view.element\n ],\n callback: ()=>this._hideUIAndRemoveMarker()\n });\n const feeds = editor.config.get('mention.feeds');\n for (const mentionDescription of feeds){\n const { feed, marker, dropdownLimit } = mentionDescription;\n if (!isValidMentionMarker(marker)) {\n /**\n\t\t\t\t * The marker must be a single character.\n\t\t\t\t *\n\t\t\t\t * Correct markers: `'@'`, `'#'`.\n\t\t\t\t *\n\t\t\t\t * Incorrect markers: `'$$'`, `'[@'`.\n\t\t\t\t *\n\t\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t\t *\n\t\t\t\t * @error mentionconfig-incorrect-marker\n\t\t\t\t * @param {string} marker Configured marker\n\t\t\t\t */ throw new CKEditorError('mentionconfig-incorrect-marker', null, {\n marker\n });\n }\n const feedCallback = typeof feed == 'function' ? feed.bind(this.editor) : createFeedCallback(feed);\n const itemRenderer = mentionDescription.itemRenderer;\n const definition = {\n marker,\n feedCallback,\n itemRenderer,\n dropdownLimit\n };\n this._mentionsConfigurations.set(marker, definition);\n }\n this._setupTextWatcher(feeds);\n this.listenTo(editor, 'change:isReadOnly', ()=>{\n this._hideUIAndRemoveMarker();\n });\n this.on('requestFeed:response', (evt, data)=>this._handleFeedResponse(data));\n this.on('requestFeed:error', ()=>this._hideUIAndRemoveMarker());\n /**\n\t\t * Checks if a given key code is handled by the mention UI.\n\t\t */ function isHandledKey(keyCode) {\n return handledKeyCodes.includes(keyCode);\n }\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n this._mentionsView.destroy();\n }\n /**\n\t * Returns true when {@link #_mentionsView} is in the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon} and it is\n\t * currently visible.\n\t */ get _isUIVisible() {\n return this._balloon.visibleView === this._mentionsView;\n }\n /**\n\t * Creates the {@link #_mentionsView}.\n\t */ _createMentionView() {\n const locale = this.editor.locale;\n const mentionsView = new MentionsView(locale);\n mentionsView.items.bindTo(this._items).using((data)=>{\n const { item, marker } = data;\n const { dropdownLimit: markerDropdownLimit } = this._mentionsConfigurations.get(marker);\n // Set to 10 by default for backwards compatibility. See: #10479\n const dropdownLimit = markerDropdownLimit || this.editor.config.get('mention.dropdownLimit') || 10;\n if (mentionsView.items.length >= dropdownLimit) {\n return null;\n }\n const listItemView = new MentionListItemView(locale);\n const view = this._renderItem(item, marker);\n view.delegate('execute').to(listItemView);\n listItemView.children.add(view);\n listItemView.item = item;\n listItemView.marker = marker;\n listItemView.on('execute', ()=>{\n mentionsView.fire('execute', {\n item,\n marker\n });\n });\n return listItemView;\n });\n mentionsView.on('execute', (evt, data)=>{\n const editor = this.editor;\n const model = editor.model;\n const item = data.item;\n const marker = data.marker;\n const mentionMarker = editor.model.markers.get('mention');\n // Create a range on matched text.\n const end = model.createPositionAt(model.document.selection.focus);\n const start = model.createPositionAt(mentionMarker.getStart());\n const range = model.createRange(start, end);\n this._hideUIAndRemoveMarker();\n editor.execute('mention', {\n mention: item,\n text: item.text,\n marker,\n range\n });\n editor.editing.view.focus();\n });\n return mentionsView;\n }\n /**\n\t * Returns item renderer for the marker.\n\t */ _getItemRenderer(marker) {\n const { itemRenderer } = this._mentionsConfigurations.get(marker);\n return itemRenderer;\n }\n /**\n\t * Requests a feed from a configured callbacks.\n\t */ _requestFeed(marker, feedText) {\n // @if CK_DEBUG_MENTION // console.log( '%c[Feed]%c Requesting for', 'color: blue', 'color: black', `\"${ feedText }\"` );\n // Store the last requested feed - it is used to discard any out-of order requests.\n this._lastRequested = feedText;\n const { feedCallback } = this._mentionsConfigurations.get(marker);\n const feedResponse = feedCallback(feedText);\n const isAsynchronous = feedResponse instanceof Promise;\n // For synchronous feeds (e.g. callbacks, arrays) fire the response event immediately.\n if (!isAsynchronous) {\n this.fire('requestFeed:response', {\n feed: feedResponse,\n marker,\n feedText\n });\n return;\n }\n // Handle the asynchronous responses.\n feedResponse.then((response)=>{\n // Check the feed text of this response with the last requested one so either:\n if (this._lastRequested == feedText) {\n // It is the same and fire the response event.\n this.fire('requestFeed:response', {\n feed: response,\n marker,\n feedText\n });\n } else {\n // It is different - most probably out-of-order one, so fire the discarded event.\n this.fire('requestFeed:discarded', {\n feed: response,\n marker,\n feedText\n });\n }\n }).catch((error)=>{\n this.fire('requestFeed:error', {\n error\n });\n /**\n\t\t\t\t * The callback used for obtaining mention autocomplete feed thrown and error and the mention UI was hidden or\n\t\t\t\t * not displayed at all.\n\t\t\t\t *\n\t\t\t\t * @error mention-feed-callback-error\n\t\t\t\t */ logWarning('mention-feed-callback-error', {\n marker\n });\n });\n }\n /**\n\t * Registers a text watcher for the marker.\n\t */ _setupTextWatcher(feeds) {\n const editor = this.editor;\n const feedsWithPattern = feeds.map((feed)=>({\n ...feed,\n pattern: createRegExp(feed.marker, feed.minimumCharacters || 0)\n }));\n const watcher = new TextWatcher(editor.model, createTestCallback(feedsWithPattern));\n watcher.on('matched', (evt, data)=>{\n const markerDefinition = getLastValidMarkerInText(feedsWithPattern, data.text);\n const selection = editor.model.document.selection;\n const focus = selection.focus;\n const markerPosition = editor.model.createPositionAt(focus.parent, markerDefinition.position);\n if (isPositionInExistingMention(focus) || isMarkerInExistingMention(markerPosition)) {\n this._hideUIAndRemoveMarker();\n return;\n }\n const feedText = requestFeedText(markerDefinition, data.text);\n const matchedTextLength = markerDefinition.marker.length + feedText.length;\n // Create a marker range.\n const start = focus.getShiftedBy(-matchedTextLength);\n const end = focus.getShiftedBy(-feedText.length);\n const markerRange = editor.model.createRange(start, end);\n // @if CK_DEBUG_MENTION // console.group( '%c[TextWatcher]%c matched', 'color: red', 'color: black', `\"${ feedText }\"` );\n // @if CK_DEBUG_MENTION // console.log( 'data#text', `\"${ data.text }\"` );\n // @if CK_DEBUG_MENTION // console.log( 'data#range', data.range.start.path, data.range.end.path );\n // @if CK_DEBUG_MENTION // console.log( 'marker definition', markerDefinition );\n // @if CK_DEBUG_MENTION // console.log( 'marker range', markerRange.start.path, markerRange.end.path );\n if (checkIfStillInCompletionMode(editor)) {\n const mentionMarker = editor.model.markers.get('mention');\n // Update the marker - user might've moved the selection to other mention trigger.\n editor.model.change((writer)=>{\n // @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Updating the marker.', 'color: purple', 'color: black' );\n writer.updateMarker(mentionMarker, {\n range: markerRange\n });\n });\n } else {\n editor.model.change((writer)=>{\n // @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Adding the marker.', 'color: purple', 'color: black' );\n writer.addMarker('mention', {\n range: markerRange,\n usingOperation: false,\n affectsData: false\n });\n });\n }\n this._requestFeedDebounced(markerDefinition.marker, feedText);\n // @if CK_DEBUG_MENTION // console.groupEnd();\n });\n watcher.on('unmatched', ()=>{\n this._hideUIAndRemoveMarker();\n });\n const mentionCommand = editor.commands.get('mention');\n watcher.bind('isEnabled').to(mentionCommand);\n return watcher;\n }\n /**\n\t * Handles the feed response event data.\n\t */ _handleFeedResponse(data) {\n const { feed, marker } = data;\n // eslint-disable-next-line @stylistic/max-len\n // @if CK_DEBUG_MENTION // console.log( `%c[Feed]%c Response for \"${ data.feedText }\" (${ feed.length })`, 'color: blue', 'color: black', feed );\n // If the marker is not in the document happens when the selection had changed and the 'mention' marker was removed.\n if (!checkIfStillInCompletionMode(this.editor)) {\n return;\n }\n // Reset the view.\n this._items.clear();\n for (const feedItem of feed){\n const item = typeof feedItem != 'object' ? {\n id: feedItem,\n text: feedItem\n } : feedItem;\n this._items.add({\n item,\n marker\n });\n }\n const mentionMarker = this.editor.model.markers.get('mention');\n if (this._items.length) {\n this._showOrUpdateUI(mentionMarker);\n } else {\n // Do not show empty mention UI.\n this._hideUIAndRemoveMarker();\n }\n }\n /**\n\t * Shows the mentions balloon. If the panel is already visible, it will reposition it.\n\t */ _showOrUpdateUI(markerMarker) {\n if (this._isUIVisible) {\n // @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Updating position.', 'color: green', 'color: black' );\n // Update balloon position as the mention list view may change its size.\n this._balloon.updatePosition(this._getBalloonPanelPositionData(markerMarker, this._mentionsView.position));\n } else {\n // @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Showing the UI.', 'color: green', 'color: black' );\n this._balloon.add({\n view: this._mentionsView,\n position: this._getBalloonPanelPositionData(markerMarker, this._mentionsView.position),\n singleViewMode: true,\n balloonClassName: 'ck-mention-balloon'\n });\n }\n this._mentionsView.position = this._balloon.view.position;\n this._mentionsView.selectFirst();\n }\n /**\n\t * Hides the mentions balloon and removes the 'mention' marker from the markers collection.\n\t */ _hideUIAndRemoveMarker() {\n // Remove the mention view from balloon before removing marker - it is used by balloon position target().\n if (this._balloon.hasView(this._mentionsView)) {\n // @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Hiding the UI.', 'color: green', 'color: black' );\n this._balloon.remove(this._mentionsView);\n }\n if (checkIfStillInCompletionMode(this.editor)) {\n // @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Removing marker.', 'color: purple', 'color: black' );\n this.editor.model.change((writer)=>writer.removeMarker('mention'));\n }\n // Make the last matched position on panel view undefined so the #_getBalloonPanelPositionData() method will return all positions\n // on the next call.\n this._mentionsView.position = undefined;\n }\n /**\n\t * Renders a single item in the autocomplete list.\n\t */ _renderItem(item, marker) {\n const editor = this.editor;\n let view;\n let label = item.id;\n const renderer = this._getItemRenderer(marker);\n if (renderer) {\n const renderResult = renderer(item);\n if (typeof renderResult != 'string') {\n view = new MentionDomWrapperView(editor.locale, renderResult);\n } else {\n label = renderResult;\n }\n }\n if (!view) {\n const buttonView = new ButtonView(editor.locale);\n buttonView.label = label;\n buttonView.withText = true;\n view = buttonView;\n }\n return view;\n }\n /**\n\t * Creates a position options object used to position the balloon panel.\n\t *\n\t * @param mentionMarker\n\t * @param preferredPosition The name of the last matched position name.\n\t */ _getBalloonPanelPositionData(mentionMarker, preferredPosition) {\n const editor = this.editor;\n const editing = editor.editing;\n const domConverter = editing.view.domConverter;\n const mapper = editing.mapper;\n const uiLanguageDirection = editor.locale.uiLanguageDirection;\n return {\n target: ()=>{\n let modelRange = mentionMarker.getRange();\n // Target the UI to the model selection range - the marker has been removed so probably the UI will not be shown anyway.\n // The logic is used by ContextualBalloon to display another panel in the same place.\n if (modelRange.start.root.rootName == '$graveyard') {\n modelRange = editor.model.document.selection.getFirstRange();\n }\n const viewRange = mapper.toViewRange(modelRange);\n const rangeRects = Rect.getDomRangeRects(domConverter.viewRangeToDom(viewRange));\n return rangeRects.pop();\n },\n limiter: ()=>{\n const view = this.editor.editing.view;\n const viewDocument = view.document;\n const editableElement = viewDocument.selection.editableElement;\n if (editableElement) {\n return view.domConverter.mapViewToDom(editableElement.root);\n }\n return null;\n },\n positions: getBalloonPanelPositions(preferredPosition, uiLanguageDirection)\n };\n }\n}\n/**\n * Returns the balloon positions data callbacks.\n */ function getBalloonPanelPositions(preferredPosition, uiLanguageDirection) {\n const positions = {\n // Positions the panel to the southeast of the caret rectangle.\n 'caret_se': (targetRect)=>{\n return {\n top: targetRect.bottom + VERTICAL_SPACING,\n left: targetRect.right,\n name: 'caret_se',\n config: {\n withArrow: false\n }\n };\n },\n // Positions the panel to the northeast of the caret rectangle.\n 'caret_ne': (targetRect, balloonRect)=>{\n return {\n top: targetRect.top - balloonRect.height - VERTICAL_SPACING,\n left: targetRect.right,\n name: 'caret_ne',\n config: {\n withArrow: false\n }\n };\n },\n // Positions the panel to the southwest of the caret rectangle.\n 'caret_sw': (targetRect, balloonRect)=>{\n return {\n top: targetRect.bottom + VERTICAL_SPACING,\n left: targetRect.right - balloonRect.width,\n name: 'caret_sw',\n config: {\n withArrow: false\n }\n };\n },\n // Positions the panel to the northwest of the caret rect.\n 'caret_nw': (targetRect, balloonRect)=>{\n return {\n top: targetRect.top - balloonRect.height - VERTICAL_SPACING,\n left: targetRect.right - balloonRect.width,\n name: 'caret_nw',\n config: {\n withArrow: false\n }\n };\n }\n };\n // Returns only the last position if it was matched to prevent the panel from jumping after the first match.\n if (Object.prototype.hasOwnProperty.call(positions, preferredPosition)) {\n return [\n positions[preferredPosition]\n ];\n }\n // By default, return all position callbacks ordered depending on the UI language direction.\n return uiLanguageDirection !== 'rtl' ? [\n positions.caret_se,\n positions.caret_sw,\n positions.caret_ne,\n positions.caret_nw\n ] : [\n positions.caret_sw,\n positions.caret_se,\n positions.caret_nw,\n positions.caret_ne\n ];\n}\n/**\n * Returns a marker definition of the last valid occurring marker in a given string.\n * If there is no valid marker in a string, it returns undefined.\n *\n * Example of returned object:\n *\n * ```ts\n * {\n * \tmarker: '@',\n * \tposition: 4,\n * \tminimumCharacters: 0\n * }\n * ````\n *\n * @param feedsWithPattern Registered feeds in editor for mention plugin with created RegExp for matching marker.\n * @param text String to find the marker in\n * @returns Matched marker's definition\n */ function getLastValidMarkerInText(feedsWithPattern, text) {\n let lastValidMarker;\n for (const feed of feedsWithPattern){\n const currentMarkerLastIndex = text.lastIndexOf(feed.marker);\n if (currentMarkerLastIndex > 0 && !text.substring(currentMarkerLastIndex - 1).match(feed.pattern)) {\n continue;\n }\n if (!lastValidMarker || currentMarkerLastIndex >= lastValidMarker.position) {\n lastValidMarker = {\n marker: feed.marker,\n position: currentMarkerLastIndex,\n minimumCharacters: feed.minimumCharacters,\n pattern: feed.pattern\n };\n }\n }\n return lastValidMarker;\n}\n/**\n * Creates a RegExp pattern for the marker.\n *\n * Function has to be exported to achieve 100% code coverage.\n *\n * @internal\n */ function createRegExp(marker, minimumCharacters) {\n const numberOfCharacters = minimumCharacters == 0 ? '*' : `{${minimumCharacters},}`;\n const openAfterCharacters = env.features.isRegExpUnicodePropertySupported ? '\\\\p{Ps}\\\\p{Pi}\"\\'' : '\\\\(\\\\[{\"\\'';\n const mentionCharacters = '.';\n // I wanted to make an util out of it, but since this regexp uses \"u\" flag, it became difficult.\n // When \"u\" flag is used, the regexp has \"strict\" escaping rules, i.e. if you try to escape a character that does not need\n // to be escaped, RegExp() will throw. It made it difficult to write a generic util, because different characters are\n // allowed in different context. For example, escaping \"-\" sometimes was correct, but sometimes it threw an error.\n marker = marker.replace(/[.*+?^${}()\\-|[\\]\\\\]/g, '\\\\$&');\n // The pattern consists of 3 groups:\n //\n // - 0 (non-capturing): Opening sequence - start of the line, space or an opening punctuation character like \"(\" or \"\\\"\",\n // - 1: The marker character(s),\n // - 2: Mention input (taking the minimal length into consideration to trigger the UI),\n //\n // The pattern matches up to the caret (end of string switch - $).\n // (0: opening sequence )(1: marker )(2: typed mention )$\n const pattern = `(?:^|[ ${openAfterCharacters}])(${marker})(${mentionCharacters}${numberOfCharacters})$`;\n return new RegExp(pattern, 'u');\n}\n/**\n * Creates a test callback for the marker to be used in the text watcher instance.\n *\n * @param feedsWithPattern Feeds of mention plugin configured in editor with RegExp to match marker in text\n */ function createTestCallback(feedsWithPattern) {\n const textMatcher = (text)=>{\n const markerDefinition = getLastValidMarkerInText(feedsWithPattern, text);\n if (!markerDefinition) {\n return false;\n }\n let splitStringFrom = 0;\n if (markerDefinition.position !== 0) {\n splitStringFrom = markerDefinition.position - 1;\n }\n const textToTest = text.substring(splitStringFrom);\n return markerDefinition.pattern.test(textToTest);\n };\n return textMatcher;\n}\n/**\n * Creates a text matcher from the marker.\n */ function requestFeedText(markerDefinition, text) {\n let splitStringFrom = 0;\n if (markerDefinition.position !== 0) {\n splitStringFrom = markerDefinition.position - 1;\n }\n const regExp = createRegExp(markerDefinition.marker, 0);\n const textToMatch = text.substring(splitStringFrom);\n const match = textToMatch.match(regExp);\n return match[2];\n}\n/**\n * The default feed callback.\n */ function createFeedCallback(feedItems) {\n return (feedText)=>{\n const filteredItems = feedItems// Make the default mention feed case-insensitive.\n .filter((item)=>{\n // Item might be defined as object.\n const itemId = typeof item == 'string' ? item : String(item.id);\n // The default feed is case insensitive.\n return itemId.toLowerCase().includes(feedText.toLowerCase());\n });\n return filteredItems;\n };\n}\n/**\n * Checks if position in inside or right after a text with a mention.\n */ function isPositionInExistingMention(position) {\n // The text watcher listens only to changed range in selection - so the selection attributes are not yet available\n // and you cannot use selection.hasAttribute( 'mention' ) just yet.\n // See https://github.com/ckeditor/ckeditor5-engine/issues/1723.\n const hasMention = position.textNode && position.textNode.hasAttribute('mention');\n const nodeBefore = position.nodeBefore;\n return hasMention || nodeBefore && nodeBefore.is('$text') && nodeBefore.hasAttribute('mention');\n}\n/**\n * Checks if the closest marker offset is at the beginning of a mention.\n *\n * See https://github.com/ckeditor/ckeditor5/issues/11400.\n */ function isMarkerInExistingMention(markerPosition) {\n const nodeAfter = markerPosition.nodeAfter;\n return nodeAfter && nodeAfter.is('$text') && nodeAfter.hasAttribute('mention');\n}\n/**\n * Checks if string is a valid mention marker.\n */ function isValidMentionMarker(marker) {\n return !!marker;\n}\n/**\n * Checks the mention plugins is in completion mode (e.g. when typing is after a valid mention string like @foo).\n */ function checkIfStillInCompletionMode(editor) {\n return editor.model.markers.has('mention');\n}\n\n/**\n * The mention plugin.\n *\n * For a detailed overview, check the {@glink features/mentions Mention feature} guide.\n */ class Mention extends Plugin {\n toMentionAttribute(viewElement, data) {\n return _toMentionAttribute(viewElement, data);\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Mention';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n MentionEditing,\n MentionUI\n ];\n }\n}\n\nexport { Mention, MentionCommand, MentionDomWrapperView, MentionEditing, MentionListItemView, MentionUI, MentionsView, _addMentionAttributes, createRegExp as _createMentionMarkerRegExp, _toMentionAttribute };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module mention/mentioncommand\n */\n\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport type { ModelRange } from 'ckeditor5/src/engine.js';\nimport { CKEditorError, toMap } from 'ckeditor5/src/utils.js';\n\nimport { _addMentionAttributes } from './mentionediting.js';\n\nconst BRACKET_PAIRS = {\n\t'(': ')',\n\t'[': ']',\n\t'{': '}'\n} as const;\n\n/**\n * The mention command.\n *\n * The command is registered by {@link module:mention/mentionediting~MentionEditing} as `'mention'`.\n *\n * To insert a mention into a range, execute the command and specify a mention object with a range to replace:\n *\n * ```ts\n * const focus = editor.model.document.selection.focus;\n *\n * // It will replace one character before the selection focus with the '#1234' text\n * // with the mention attribute filled with passed attributes.\n * editor.execute( 'mention', {\n * \tmarker: '#',\n * \tmention: {\n * \t\tid: '#1234',\n * \t\tname: 'Foo',\n * \t\ttitle: 'Big Foo'\n * \t},\n * \trange: editor.model.createRange( focus.getShiftedBy( -1 ), focus )\n * } );\n *\n * // It will replace one character before the selection focus with the 'The \"Big Foo\"' text\n * // with the mention attribute filled with passed attributes.\n * editor.execute( 'mention', {\n * \tmarker: '#',\n * \tmention: {\n * \t\tid: '#1234',\n * \t\tname: 'Foo',\n * \t\ttitle: 'Big Foo'\n * \t},\n * \ttext: 'The \"Big Foo\"',\n * \trange: editor.model.createRange( focus.getShiftedBy( -1 ), focus )\n * } );\n *\t```\n */\nexport class MentionCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic constructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\t// Since this command may pass range in execution parameters, it should be checked directly in execute block.\n\t\tthis._isEnabledBasedOnSelection = false;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst doc = model.document;\n\n\t\tthis.isEnabled = model.schema.checkAttributeInSelection( doc.selection, 'mention' );\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @param options Options for the executed command.\n\t * @param options.mention The mention object to insert. When a string is passed, it will be used to create a plain\n\t * object with the name attribute that equals the passed string.\n\t * @param options.marker The marker character (e.g. `'@'`).\n\t * @param options.text The text of the inserted mention. Defaults to the full mention string composed from `marker` and\n\t * `mention` string or `mention.id` if an object is passed.\n\t * @param options.range The range to replace.\n\t * Note that the replaced range might be shorter than the inserted text with the mention attribute.\n\t * @fires execute\n\t */\n\tpublic override execute( options: {\n\t\tmention: string | { id: string; [ key: string ]: unknown };\n\t\tmarker: string;\n\t\ttext?: string;\n\t\trange?: ModelRange;\n\t} ): void {\n\t\tconst model = this.editor.model;\n\t\tconst document = model.document;\n\t\tconst selection = document.selection;\n\n\t\tconst mentionData = typeof options.mention == 'string' ? { id: options.mention } : options.mention;\n\t\tconst mentionID = mentionData.id;\n\n\t\tconst range = options.range || selection.getFirstRange();\n\n\t\t// Don't execute command if range is in non-editable place.\n\t\tif ( !model.canEditAt( range ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst mentionText = options.text || mentionID;\n\n\t\tconst mention = _addMentionAttributes( { _text: mentionText, id: mentionID }, mentionData );\n\n\t\tif ( !mentionID.startsWith( options.marker ) ) {\n\t\t\t/**\n\t\t\t * The feed item ID must start with the marker character(s).\n\t\t\t *\n\t\t\t * Correct mention feed setting:\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * mentions: [\n\t\t\t * \t{\n\t\t\t * \t\tmarker: '@',\n\t\t\t * \t\tfeed: [ '@Ann', '@Barney', ... ]\n\t\t\t * \t}\n\t\t\t * ]\n\t\t\t * ```\n\t\t\t *\n\t\t\t * Incorrect mention feed setting:\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * mentions: [\n\t\t\t * \t{\n\t\t\t * \t\tmarker: '@',\n\t\t\t * \t\tfeed: [ 'Ann', 'Barney', ... ]\n\t\t\t * \t}\n\t\t\t * ]\n\t\t\t * ```\n\t\t\t *\n\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t *\n\t\t\t * @error mentioncommand-incorrect-id\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'mentioncommand-incorrect-id',\n\t\t\t\tthis\n\t\t\t);\n\t\t}\n\n\t\tmodel.change( writer => {\n\t\t\tconst currentAttributes = toMap( selection.getAttributes() );\n\t\t\tconst attributesWithMention = new Map( currentAttributes.entries() );\n\n\t\t\tattributesWithMention.set( 'mention', mention );\n\n\t\t\t// Replace a range with the text with a mention.\n\t\t\tconst insertionRange = model.insertContent( writer.createText( mentionText, attributesWithMention ), range );\n\t\t\tconst nodeBefore = insertionRange.start.nodeBefore;\n\t\t\tconst nodeAfter = insertionRange.end.nodeAfter;\n\n\t\t\tconst isFollowedByWhiteSpace = nodeAfter && nodeAfter.is( '$text' ) && nodeAfter.data.startsWith( ' ' );\n\t\t\tlet isInsertedInBrackets = false;\n\n\t\t\tif ( nodeBefore && nodeAfter && nodeBefore.is( '$text' ) && nodeAfter.is( '$text' ) ) {\n\t\t\t\tconst precedingCharacter = nodeBefore.data.slice( -1 );\n\t\t\t\tconst isPrecededByOpeningBracket = precedingCharacter in BRACKET_PAIRS;\n\t\t\t\tconst isFollowedByBracketClosure = isPrecededByOpeningBracket && nodeAfter.data.startsWith(\n\t\t\t\t\tBRACKET_PAIRS[ precedingCharacter as keyof typeof BRACKET_PAIRS ]\n\t\t\t\t);\n\n\t\t\t\tisInsertedInBrackets = isPrecededByOpeningBracket && isFollowedByBracketClosure;\n\t\t\t}\n\n\t\t\t// Don't add a white space if either of the following is true:\n\t\t\t// * there's already one after the mention;\n\t\t\t// * the mention was inserted in the empty matching brackets.\n\t\t\t// https://github.com/ckeditor/ckeditor5/issues/4651\n\t\t\tif ( !isInsertedInBrackets && !isFollowedByWhiteSpace ) {\n\t\t\t\tmodel.insertContent( writer.createText( ' ', currentAttributes ), range!.start.getShiftedBy( mentionText.length ) );\n\t\t\t}\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module mention/mentionediting\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport type {\n\tModelElement,\n\tModelText,\n\tModelWriter,\n\tModelDocument,\n\tViewAttributeElement,\n\tDowncastConversionApi,\n\tDowncastDispatcher,\n\tModelPosition,\n\tModelSchema,\n\tDowncastAttributeEvent,\n\tModelItem\n} from 'ckeditor5/src/engine.js';\nimport { uid } from 'ckeditor5/src/utils.js';\n\nimport { MentionCommand } from './mentioncommand.js';\nimport type { MentionAttribute } from './mention.js';\n\n/**\n * The mention editing feature.\n *\n * It introduces the {@link module:mention/mentioncommand~MentionCommand command} and the `mention`\n * attribute in the {@link module:engine/model/model~Model model} which renders in the {@link module:engine/view/view view}\n * as a `<span class=\"mention\" data-mention=\"@mention\">`.\n */\nexport class MentionEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'MentionEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst doc = model.document;\n\n\t\t// Allow the mention attribute on all text nodes.\n\t\tmodel.schema.extend( '$text', { allowAttributes: 'mention' } );\n\n\t\t// Upcast conversion.\n\t\teditor.conversion.for( 'upcast' ).elementToAttribute( {\n\t\t\tview: {\n\t\t\t\tname: 'span',\n\t\t\t\tattributes: 'data-mention',\n\t\t\t\tclasses: 'mention'\n\t\t\t},\n\t\t\tmodel: {\n\t\t\t\tkey: 'mention',\n\t\t\t\tvalue: ( viewElement: ModelElement ) => _toMentionAttribute( viewElement )\n\t\t\t}\n\t\t} );\n\n\t\t// Downcast conversion.\n\t\teditor.conversion.for( 'downcast' ).attributeToElement( {\n\t\t\tmodel: 'mention',\n\t\t\tview: createViewMentionElement\n\t\t} );\n\t\teditor.conversion.for( 'downcast' ).add( preventPartialMentionDowncast );\n\n\t\tdoc.registerPostFixer( writer => removePartialMentionPostFixer( writer, doc, model.schema ) );\n\t\tdoc.registerPostFixer( writer => extendAttributeOnMentionPostFixer( writer, doc ) );\n\t\tdoc.registerPostFixer( writer => selectionMentionAttributePostFixer( writer, doc ) );\n\n\t\teditor.commands.add( 'mention', new MentionCommand( editor ) );\n\t}\n}\n\n/**\n * @internal\n */\nexport function _addMentionAttributes(\n\tbaseMentionData: { id: string; _text: string },\n\tdata?: Record<string, unknown>\n): MentionAttribute {\n\treturn Object.assign( { uid: uid() }, baseMentionData, data || {} );\n}\n\n/**\n * Creates a mention attribute value from the provided view element and optional data.\n *\n * This function is exposed as\n * {@link module:mention/mention~Mention#toMentionAttribute `editor.plugins.get( 'Mention' ).toMentionAttribute()`}.\n *\n * @internal\n */\nexport function _toMentionAttribute(\n\tviewElementOrMention: ModelElement,\n\tdata?: Record<string, unknown>\n): MentionAttribute | undefined {\n\tconst dataMention = viewElementOrMention.getAttribute( 'data-mention' ) as string;\n\n\tconst textNode = viewElementOrMention.getChild( 0 ) as ModelText;\n\n\t// Do not convert empty mentions.\n\tif ( !textNode ) {\n\t\treturn;\n\t}\n\n\tconst baseMentionData = {\n\t\tid: dataMention,\n\t\t_text: textNode.data\n\t};\n\n\treturn _addMentionAttributes( baseMentionData, data );\n}\n\n/**\n * A converter that blocks partial mention from being converted.\n *\n * This converter is registered with 'highest' priority in order to consume mention attribute before it is converted by\n * any other converters. This converter only consumes partial mention - those whose `_text` attribute is not equal to text with mention\n * attribute. This may happen when copying part of mention text.\n */\nfunction preventPartialMentionDowncast( dispatcher: DowncastDispatcher ) {\n\tdispatcher.on<DowncastAttributeEvent>( 'attribute:mention', ( evt, data, conversionApi ) => {\n\t\tconst mention = data.attributeNewValue as MentionAttribute;\n\n\t\tif ( !data.item.is( '$textProxy' ) || !mention ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst start = data.range.start;\n\t\tconst textNode = start.textNode || start.nodeAfter as ModelText;\n\n\t\tif ( textNode!.data != mention._text ) {\n\t\t\t// Consume item to prevent partial mention conversion.\n\t\t\tconversionApi.consumable.consume( data.item, evt.name );\n\t\t}\n\t}, { priority: 'highest' } );\n}\n\n/**\n * Creates a mention element from the mention data.\n */\nfunction createViewMentionElement( mention: MentionAttribute, { writer }: DowncastConversionApi ): ViewAttributeElement | undefined {\n\tif ( !mention ) {\n\t\treturn;\n\t}\n\n\tconst attributes = {\n\t\tclass: 'mention',\n\t\t'data-mention': mention.id\n\t};\n\n\tconst options = {\n\t\tid: mention.uid,\n\t\tpriority: 20\n\t};\n\n\treturn writer.createAttributeElement( 'span', attributes, options );\n}\n\n/**\n * Model post-fixer that disallows typing with selection when the selection is placed after the text node with the mention attribute or\n * before a text node with mention attribute.\n */\nfunction selectionMentionAttributePostFixer( writer: ModelWriter, doc: ModelDocument ): boolean {\n\tconst selection = doc.selection;\n\tconst focus = selection.focus;\n\n\tif ( selection.isCollapsed && selection.hasAttribute( 'mention' ) && shouldNotTypeWithMentionAt( focus! ) ) {\n\t\twriter.removeSelectionAttribute( 'mention' );\n\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Helper function to detect if mention attribute should be removed from selection.\n * This check makes only sense if the selection has mention attribute.\n *\n * The mention attribute should be removed from a selection when selection focus is placed:\n * a) after a text node\n * b) the position is at parents start - the selection will set attributes from node after.\n */\nfunction shouldNotTypeWithMentionAt( position: ModelPosition ): boolean {\n\tconst isAtStart = position.isAtStart;\n\tconst isAfterAMention = position.nodeBefore && position.nodeBefore.is( '$text' );\n\n\treturn isAfterAMention || isAtStart;\n}\n\n/**\n * Model post-fixer that removes the mention attribute from the modified text node.\n */\nfunction removePartialMentionPostFixer( writer: ModelWriter, doc: ModelDocument, schema: ModelSchema ): boolean {\n\tconst changes = doc.differ.getChanges();\n\n\tlet wasChanged = false;\n\n\tfor ( const change of changes ) {\n\t\tif ( change.type == 'attribute' ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Checks the text node on the current position.\n\t\tconst position = change.position;\n\n\t\tif ( change.name == '$text' ) {\n\t\t\tconst nodeAfterInsertedTextNode = position.textNode && position.textNode.nextSibling;\n\n\t\t\t// Checks the text node where the change occurred.\n\t\t\twasChanged = checkAndFix( position.textNode, writer ) || wasChanged;\n\n\t\t\t// Occurs on paste inside a text node with mention.\n\t\t\twasChanged = checkAndFix( nodeAfterInsertedTextNode, writer ) || wasChanged;\n\t\t\twasChanged = checkAndFix( position.nodeBefore, writer ) || wasChanged;\n\t\t\twasChanged = checkAndFix( position.nodeAfter, writer ) || wasChanged;\n\t\t}\n\n\t\t// Checks text nodes in inserted elements (might occur when splitting a paragraph or pasting content inside text with mention).\n\t\tif ( change.name != '$text' && change.type == 'insert' ) {\n\t\t\tconst insertedNode = position.nodeAfter as ModelElement;\n\n\t\t\tfor ( const item of writer.createRangeIn( insertedNode! ).getItems() ) {\n\t\t\t\twasChanged = checkAndFix( item, writer ) || wasChanged;\n\t\t\t}\n\t\t}\n\n\t\t// Inserted inline elements might break mention.\n\t\tif ( change.type == 'insert' && schema.isInline( change.name ) ) {\n\t\t\tconst nodeAfterInserted = position.nodeAfter && position.nodeAfter.nextSibling;\n\n\t\t\twasChanged = checkAndFix( position.nodeBefore, writer ) || wasChanged;\n\t\t\twasChanged = checkAndFix( nodeAfterInserted, writer ) || wasChanged;\n\t\t}\n\t}\n\n\treturn wasChanged;\n}\n\n/**\n * This post-fixer will extend the attribute applied on the part of the mention so the whole text node of the mention will have\n * the added attribute.\n */\nfunction extendAttributeOnMentionPostFixer( writer: ModelWriter, doc: ModelDocument ): boolean {\n\tconst changes = doc.differ.getChanges();\n\n\tlet wasChanged = false;\n\n\tfor ( const change of changes ) {\n\t\tif ( change.type === 'attribute' && change.attributeKey != 'mention' ) {\n\t\t\t// Checks the node on the left side of the range...\n\t\t\tconst nodeBefore = change.range.start.nodeBefore;\n\t\t\t// ... and on the right side of the range.\n\t\t\tconst nodeAfter = change.range.end.nodeAfter;\n\n\t\t\tfor ( const node of [ nodeBefore, nodeAfter ] ) {\n\t\t\t\tif ( isBrokenMentionNode( node ) && node!.getAttribute( change.attributeKey ) != change.attributeNewValue ) {\n\t\t\t\t\twriter.setAttribute( change.attributeKey, change.attributeNewValue, node! );\n\n\t\t\t\t\twasChanged = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn wasChanged;\n}\n\n/**\n * Checks if a node has a correct mention attribute if present.\n * Returns `true` if the node is text and has a mention attribute whose text does not match the expected mention text.\n */\nfunction isBrokenMentionNode( node: ModelItem | null ): boolean {\n\tif ( !node || !( node.is( '$text' ) || node.is( '$textProxy' ) ) || !node.hasAttribute( 'mention' ) ) {\n\t\treturn false;\n\t}\n\n\tconst text = node.data;\n\tconst mention = node.getAttribute( 'mention' ) as MentionAttribute;\n\n\tconst expectedText = mention._text;\n\n\treturn text != expectedText;\n}\n\n/**\n * Fixes a mention on a text node if it needs a fix.\n */\nfunction checkAndFix( textNode: ModelItem | null, writer: ModelWriter ): boolean {\n\tif ( isBrokenMentionNode( textNode ) ) {\n\t\twriter.removeAttribute( 'mention', textNode! );\n\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module mention/ui/mentionsview\n */\n\nimport { ListView } from 'ckeditor5/src/ui.js';\nimport { Rect, type Locale } from 'ckeditor5/src/utils.js';\n\nimport { type MentionListItemView } from './mentionlistitemview.js';\n\nimport '../../theme/mentionui.css';\n\n/**\n * The mention ui view.\n */\nexport class MentionsView extends ListView {\n\tpublic selected: MentionListItemView | undefined;\n\n\tpublic position: string | undefined;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-mentions'\n\t\t\t\t],\n\n\t\t\t\ttabindex: '-1'\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * {@link #select Selects} the first item.\n\t */\n\tpublic selectFirst(): void {\n\t\tthis.select( 0 );\n\t}\n\n\t/**\n\t * Selects next item to the currently {@link #select selected}.\n\t *\n\t * If the last item is already selected, it will select the first item.\n\t */\n\tpublic selectNext(): void {\n\t\tconst item = this.selected;\n\t\tconst index = this.items.getIndex( item! );\n\n\t\tthis.select( index + 1 );\n\t}\n\n\t/**\n\t * Selects previous item to the currently {@link #select selected}.\n\t *\n\t * If the first item is already selected, it will select the last item.\n\t */\n\tpublic selectPrevious(): void {\n\t\tconst item = this.selected;\n\t\tconst index = this.items.getIndex( item! );\n\n\t\tthis.select( index - 1 );\n\t}\n\n\t/**\n\t * Marks item at a given index as selected.\n\t *\n\t * Handles selection cycling when passed index is out of bounds:\n\t * - if the index is lower than 0, it will select the last item,\n\t * - if the index is higher than the last item index, it will select the first item.\n\t *\n\t * @param index Index of an item to be marked as selected.\n\t */\n\tpublic select( index: number ): void {\n\t\tlet indexToGet = 0;\n\n\t\tif ( index > 0 && index < this.items.length ) {\n\t\t\tindexToGet = index;\n\t\t} else if ( index < 0 ) {\n\t\t\tindexToGet = this.items.length - 1;\n\t\t}\n\n\t\tconst item = this.items.get( indexToGet ) as MentionListItemView;\n\n\t\t// Return early if item is already selected.\n\t\tif ( this.selected === item ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remove highlight of previously selected item.\n\t\tif ( this.selected ) {\n\t\t\tthis.selected.removeHighlight();\n\t\t}\n\n\t\titem.highlight();\n\t\tthis.selected = item;\n\n\t\t// Scroll the mentions view to the selected element.\n\t\tif ( !this._isItemVisibleInScrolledArea( item ) ) {\n\t\t\tthis.element!.scrollTop = item.element!.offsetTop;\n\t\t}\n\t}\n\n\t/**\n\t * Triggers the `execute` event on the {@link #select selected} item.\n\t */\n\tpublic executeSelected(): void {\n\t\tthis.selected!.fire( 'execute' );\n\t}\n\n\t/**\n\t * Checks if an item is visible in the scrollable area.\n\t *\n\t * The item is considered visible when:\n\t * - its top boundary is inside the scrollable rect\n\t * - its bottom boundary is inside the scrollable rect (the whole item must be visible)\n\t */\n\tprivate _isItemVisibleInScrolledArea( item: MentionListItemView ) {\n\t\treturn new Rect( this.element! ).contains( new Rect( item.element! ) );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module mention/ui/domwrapperview\n */\n\nimport { View } from 'ckeditor5/src/ui.js';\nimport type { Locale } from 'ckeditor5/src/utils.js';\n\n/**\n * This class wraps DOM element as a CKEditor5 UI View.\n *\n * It allows to render any DOM element and use it in mentions list.\n */\nexport class MentionDomWrapperView extends View {\n\t/**\n\t * The DOM element for which wrapper was created.\n\t */\n\tpublic domElement: HTMLElement;\n\n\t/**\n\t * Controls whether the dom wrapper view is \"on\". This is in line with {@link module:ui/button/button~Button#isOn} property.\n\t *\n\t * @observable\n\t * @default true\n\t */\n\tdeclare public isOn: boolean;\n\n\t/**\n\t * Creates an instance of {@link module:mention/ui/domwrapperview~MentionDomWrapperView} class.\n\t *\n\t * Also see {@link #render}.\n\t */\n\tconstructor( locale: Locale, domElement: HTMLElement ) {\n\t\tsuper( locale );\n\n\t\t// Disable template rendering on this view.\n\t\tthis.template = undefined;\n\n\t\tthis.domElement = domElement;\n\n\t\t// Render dom wrapper as a button.\n\t\tthis.domElement.classList.add( 'ck-button' );\n\n\t\tthis.set( 'isOn', false );\n\n\t\t// Handle isOn state as in buttons.\n\t\tthis.on( 'change:isOn', ( evt, name, isOn ) => {\n\t\t\tif ( isOn ) {\n\t\t\t\tthis.domElement.classList.add( 'ck-on' );\n\t\t\t\tthis.domElement.classList.remove( 'ck-off' );\n\t\t\t} else {\n\t\t\t\tthis.domElement.classList.add( 'ck-off' );\n\t\t\t\tthis.domElement.classList.remove( 'ck-on' );\n\t\t\t}\n\t\t} );\n\n\t\t// Pass click event as execute event.\n\t\tthis.listenTo( this.domElement, 'click', () => {\n\t\t\tthis.fire( 'execute' );\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.element = this.domElement;\n\t}\n\n\t/**\n\t * Focuses the DOM element.\n\t */\n\tpublic focus(): void {\n\t\tthis.domElement.focus();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module mention/ui/mentionlistitemview\n */\n\nimport { ListItemView } from 'ckeditor5/src/ui.js';\n\nimport type { MentionFeedItem } from '../mentionconfig.js';\n\nimport { type MentionDomWrapperView } from './domwrapperview.js';\n\nexport class MentionListItemView extends ListItemView {\n\tpublic item!: MentionFeedItem;\n\n\tpublic marker!: string;\n\n\tpublic highlight(): void {\n\t\tconst child = this.children.first as MentionDomWrapperView;\n\n\t\tchild.isOn = true;\n\t}\n\n\tpublic removeHighlight(): void {\n\t\tconst child = this.children.first as MentionDomWrapperView;\n\n\t\tchild.isOn = false;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module mention/mentionui\n */\n\nimport {\n\tPlugin,\n\ttype Editor\n} from 'ckeditor5/src/core.js';\n\nimport type {\n\tViewDocumentKeyDownEvent,\n\tMarker,\n\tModelPosition\n} from 'ckeditor5/src/engine.js';\n\nimport {\n\tButtonView,\n\tContextualBalloon,\n\tclickOutsideHandler\n} from 'ckeditor5/src/ui.js';\n\nimport {\n\tCKEditorError,\n\tCollection,\n\tRect,\n\tenv,\n\tkeyCodes,\n\tlogWarning,\n\ttype DomOptimalPositionOptions\n} from 'ckeditor5/src/utils.js';\n\nimport { TextWatcher, type TextWatcherMatchedEvent } from 'ckeditor5/src/typing.js';\n\nimport { debounce } from 'es-toolkit/compat';\n\nimport { MentionsView } from './ui/mentionsview.js';\nimport { MentionDomWrapperView } from './ui/domwrapperview.js';\nimport { MentionListItemView } from './ui/mentionlistitemview.js';\n\nimport type {\n\tMentionFeedbackCallback,\n\tMentionFeed,\n\tMentionFeedItem,\n\tMentionItemRenderer,\n\tMentionFeedObjectItem\n} from './mentionconfig.js';\n\nconst VERTICAL_SPACING = 3;\n\n// The key codes that mention UI handles when it is open (without commit keys).\nconst defaultHandledKeyCodes = [\n\tkeyCodes.arrowup,\n\tkeyCodes.arrowdown,\n\tkeyCodes.esc\n];\n\n// Dropdown commit key codes.\nconst defaultCommitKeyCodes = [\n\tkeyCodes.enter,\n\tkeyCodes.tab\n];\n\n/**\n * The mention UI feature.\n */\nexport class MentionUI extends Plugin {\n\t/**\n\t * The mention view.\n\t */\n\tprivate readonly _mentionsView: MentionsView;\n\n\t/**\n\t * Stores mention feeds configurations.\n\t */\n\tprivate _mentionsConfigurations: Map<string, Definition>;\n\n\t/**\n\t * The contextual balloon plugin instance.\n\t */\n\tprivate _balloon: ContextualBalloon | undefined;\n\n\tprivate _items = new Collection<{ item: MentionFeedObjectItem; marker: string }>();\n\n\tprivate _lastRequested?: string;\n\n\t/**\n\t * Debounced feed requester. It uses `es-toolkit#debounce` method to delay function call.\n\t */\n\tprivate _requestFeedDebounced: ( marker: string, feedText: string ) => void;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'MentionUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ContextualBalloon ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis._mentionsView = this._createMentionView();\n\t\tthis._mentionsConfigurations = new Map();\n\t\tthis._requestFeedDebounced = debounce( this._requestFeed, 100 );\n\n\t\teditor.config.define( 'mention', { feeds: [] } );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\tconst commitKeys = editor.config.get( 'mention.commitKeys' ) || defaultCommitKeyCodes;\n\t\tconst handledKeyCodes = defaultHandledKeyCodes.concat( commitKeys );\n\n\t\tthis._balloon = editor.plugins.get( ContextualBalloon );\n\n\t\t// Key listener that handles navigation in mention view.\n\t\teditor.editing.view.document.on<ViewDocumentKeyDownEvent>( 'keydown', ( evt, data ) => {\n\t\t\tif ( isHandledKey( data.keyCode ) && this._isUIVisible ) {\n\t\t\t\tdata.preventDefault();\n\t\t\t\tevt.stop(); // Required for Enter key overriding.\n\n\t\t\t\tif ( data.keyCode == keyCodes.arrowdown ) {\n\t\t\t\t\tthis._mentionsView.selectNext();\n\t\t\t\t}\n\n\t\t\t\tif ( data.keyCode == keyCodes.arrowup ) {\n\t\t\t\t\tthis._mentionsView.selectPrevious();\n\t\t\t\t}\n\n\t\t\t\tif ( commitKeys.includes( data.keyCode ) ) {\n\t\t\t\t\tthis._mentionsView.executeSelected();\n\t\t\t\t}\n\n\t\t\t\tif ( data.keyCode == keyCodes.esc ) {\n\t\t\t\t\tthis._hideUIAndRemoveMarker();\n\t\t\t\t}\n\t\t\t}\n\t\t}, { priority: 'highest' } ); // Required to override the Enter key.\n\n\t\t// Close the dropdown upon clicking outside of the plugin UI.\n\t\tclickOutsideHandler( {\n\t\t\temitter: this._mentionsView,\n\t\t\tactivator: () => this._isUIVisible,\n\t\t\tcontextElements: () => [ this._balloon!.view.element! ],\n\t\t\tcallback: () => this._hideUIAndRemoveMarker()\n\t\t} );\n\n\t\tconst feeds = editor.config.get( 'mention.feeds' )!;\n\n\t\tfor ( const mentionDescription of feeds ) {\n\t\t\tconst { feed, marker, dropdownLimit } = mentionDescription;\n\n\t\t\tif ( !isValidMentionMarker( marker ) ) {\n\t\t\t\t/**\n\t\t\t\t * The marker must be a single character.\n\t\t\t\t *\n\t\t\t\t * Correct markers: `'@'`, `'#'`.\n\t\t\t\t *\n\t\t\t\t * Incorrect markers: `'$$'`, `'[@'`.\n\t\t\t\t *\n\t\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t\t *\n\t\t\t\t * @error mentionconfig-incorrect-marker\n\t\t\t\t * @param {string} marker Configured marker\n\t\t\t\t */\n\t\t\t\tthrow new CKEditorError( 'mentionconfig-incorrect-marker', null, { marker } );\n\t\t\t}\n\n\t\t\tconst feedCallback = typeof feed == 'function' ? feed.bind( this.editor ) : createFeedCallback( feed );\n\t\t\tconst itemRenderer = mentionDescription.itemRenderer;\n\t\t\tconst definition = { marker, feedCallback, itemRenderer, dropdownLimit };\n\n\t\t\tthis._mentionsConfigurations.set( marker, definition );\n\t\t}\n\n\t\tthis._setupTextWatcher( feeds );\n\t\tthis.listenTo( editor, 'change:isReadOnly', () => {\n\t\t\tthis._hideUIAndRemoveMarker();\n\t\t} );\n\t\tthis.on<RequestFeedResponseEvent>( 'requestFeed:response', ( evt, data ) => this._handleFeedResponse( data ) );\n\t\tthis.on<RequestFeedErrorEvent>( 'requestFeed:error', () => this._hideUIAndRemoveMarker() );\n\n\t\t/**\n\t\t * Checks if a given key code is handled by the mention UI.\n\t\t */\n\t\tfunction isHandledKey( keyCode: number ): boolean {\n\t\t\treturn handledKeyCodes.includes( keyCode );\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\t// Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n\t\tthis._mentionsView.destroy();\n\t}\n\n\t/**\n\t * Returns true when {@link #_mentionsView} is in the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon} and it is\n\t * currently visible.\n\t */\n\tprivate get _isUIVisible(): boolean {\n\t\treturn this._balloon!.visibleView === this._mentionsView;\n\t}\n\n\t/**\n\t * Creates the {@link #_mentionsView}.\n\t */\n\tprivate _createMentionView(): MentionsView {\n\t\tconst locale = this.editor.locale;\n\n\t\tconst mentionsView = new MentionsView( locale );\n\n\t\tmentionsView.items.bindTo( this._items ).using( data => {\n\t\t\tconst { item, marker } = data;\n\n\t\t\tconst { dropdownLimit: markerDropdownLimit } = this._mentionsConfigurations.get( marker )!;\n\n\t\t\t// Set to 10 by default for backwards compatibility. See: #10479\n\t\t\tconst dropdownLimit = markerDropdownLimit || this.editor.config.get( 'mention.dropdownLimit' ) || 10;\n\n\t\t\tif ( mentionsView.items.length >= dropdownLimit ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst listItemView = new MentionListItemView( locale );\n\n\t\t\tconst view = this._renderItem( item, marker );\n\t\t\tview.delegate( 'execute' ).to( listItemView );\n\n\t\t\tlistItemView.children.add( view );\n\t\t\tlistItemView.item = item;\n\t\t\tlistItemView.marker = marker;\n\n\t\t\tlistItemView.on( 'execute', () => {\n\t\t\t\tmentionsView.fire( 'execute', {\n\t\t\t\t\titem,\n\t\t\t\t\tmarker\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\treturn listItemView;\n\t\t} );\n\n\t\tmentionsView.on( 'execute', ( evt, data ) => {\n\t\t\tconst editor = this.editor;\n\t\t\tconst model = editor.model;\n\n\t\t\tconst item = data.item;\n\t\t\tconst marker = data.marker;\n\n\t\t\tconst mentionMarker = editor.model.markers.get( 'mention' );\n\n\t\t\t// Create a range on matched text.\n\t\t\tconst end = model.createPositionAt( model.document.selection.focus! );\n\t\t\tconst start = model.createPositionAt( mentionMarker!.getStart() );\n\t\t\tconst range = model.createRange( start, end );\n\n\t\t\tthis._hideUIAndRemoveMarker();\n\n\t\t\teditor.execute( 'mention', {\n\t\t\t\tmention: item,\n\t\t\t\ttext: item.text,\n\t\t\t\tmarker,\n\t\t\t\trange\n\t\t\t} );\n\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\treturn mentionsView;\n\t}\n\n\t/**\n\t * Returns item renderer for the marker.\n\t */\n\tprivate _getItemRenderer( marker: string ): MentionItemRenderer | undefined {\n\t\tconst { itemRenderer } = this._mentionsConfigurations.get( marker )!;\n\n\t\treturn itemRenderer;\n\t}\n\n\t/**\n\t * Requests a feed from a configured callbacks.\n\t */\n\tprivate _requestFeed( marker: string, feedText: string ): void {\n\t\t// @if CK_DEBUG_MENTION // console.log( '%c[Feed]%c Requesting for', 'color: blue', 'color: black', `\"${ feedText }\"` );\n\n\t\t// Store the last requested feed - it is used to discard any out-of order requests.\n\t\tthis._lastRequested = feedText;\n\n\t\tconst { feedCallback } = this._mentionsConfigurations.get( marker )!;\n\t\tconst feedResponse = feedCallback( feedText );\n\n\t\tconst isAsynchronous = feedResponse instanceof Promise;\n\n\t\t// For synchronous feeds (e.g. callbacks, arrays) fire the response event immediately.\n\t\tif ( !isAsynchronous ) {\n\t\t\tthis.fire<RequestFeedResponseEvent>( 'requestFeed:response', { feed: feedResponse, marker, feedText } );\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Handle the asynchronous responses.\n\t\tfeedResponse\n\t\t\t.then( response => {\n\t\t\t\t// Check the feed text of this response with the last requested one so either:\n\t\t\t\tif ( this._lastRequested == feedText ) {\n\t\t\t\t\t// It is the same and fire the response event.\n\t\t\t\t\tthis.fire<RequestFeedResponseEvent>( 'requestFeed:response', { feed: response, marker, feedText } );\n\t\t\t\t} else {\n\t\t\t\t\t// It is different - most probably out-of-order one, so fire the discarded event.\n\t\t\t\t\tthis.fire<RequestFeedDiscardedEvent>( 'requestFeed:discarded', { feed: response, marker, feedText } );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( error => {\n\t\t\t\tthis.fire<RequestFeedErrorEvent>( 'requestFeed:error', { error } );\n\n\t\t\t\t/**\n\t\t\t\t * The callback used for obtaining mention autocomplete feed thrown and error and the mention UI was hidden or\n\t\t\t\t * not displayed at all.\n\t\t\t\t *\n\t\t\t\t * @error mention-feed-callback-error\n\t\t\t\t */\n\t\t\t\tlogWarning( 'mention-feed-callback-error', { marker } );\n\t\t\t} );\n\t}\n\n\t/**\n\t * Registers a text watcher for the marker.\n\t */\n\tprivate _setupTextWatcher( feeds: Array<MentionFeed> ): TextWatcher {\n\t\tconst editor = this.editor;\n\n\t\tconst feedsWithPattern: Array<MentionFeed & { pattern: RegExp }> = feeds.map( feed => ( {\n\t\t\t...feed,\n\t\t\tpattern: createRegExp( feed.marker, feed.minimumCharacters || 0 )\n\t\t} ) );\n\n\t\tconst watcher = new TextWatcher( editor.model, createTestCallback( feedsWithPattern ) );\n\n\t\twatcher.on<TextWatcherMatchedEvent>( 'matched', ( evt, data ) => {\n\t\t\tconst markerDefinition = getLastValidMarkerInText( feedsWithPattern, data.text );\n\t\t\tconst selection = editor.model.document.selection;\n\t\t\tconst focus = selection.focus;\n\t\t\tconst markerPosition = editor.model.createPositionAt( focus!.parent, markerDefinition!.position );\n\n\t\t\tif ( isPositionInExistingMention( focus! ) || isMarkerInExistingMention( markerPosition ) ) {\n\t\t\t\tthis._hideUIAndRemoveMarker();\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst feedText = requestFeedText( markerDefinition, data.text );\n\t\t\tconst matchedTextLength = markerDefinition!.marker.length + feedText.length;\n\n\t\t\t// Create a marker range.\n\t\t\tconst start = focus!.getShiftedBy( -matchedTextLength );\n\t\t\tconst end = focus!.getShiftedBy( -feedText.length );\n\n\t\t\tconst markerRange = editor.model.createRange( start, end );\n\n\t\t\t// @if CK_DEBUG_MENTION // console.group( '%c[TextWatcher]%c matched', 'color: red', 'color: black', `\"${ feedText }\"` );\n\t\t\t// @if CK_DEBUG_MENTION // console.log( 'data#text', `\"${ data.text }\"` );\n\t\t\t// @if CK_DEBUG_MENTION // console.log( 'data#range', data.range.start.path, data.range.end.path );\n\t\t\t// @if CK_DEBUG_MENTION // console.log( 'marker definition', markerDefinition );\n\t\t\t// @if CK_DEBUG_MENTION // console.log( 'marker range', markerRange.start.path, markerRange.end.path );\n\n\t\t\tif ( checkIfStillInCompletionMode( editor ) ) {\n\t\t\t\tconst mentionMarker = editor.model.markers.get( 'mention' )!;\n\n\t\t\t\t// Update the marker - user might've moved the selection to other mention trigger.\n\t\t\t\teditor.model.change( writer => {\n\t\t\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Updating the marker.', 'color: purple', 'color: black' );\n\n\t\t\t\t\twriter.updateMarker( mentionMarker, { range: markerRange } );\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\teditor.model.change( writer => {\n\t\t\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Adding the marker.', 'color: purple', 'color: black' );\n\n\t\t\t\t\twriter.addMarker( 'mention', { range: markerRange, usingOperation: false, affectsData: false } );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tthis._requestFeedDebounced( markerDefinition!.marker, feedText );\n\n\t\t\t// @if CK_DEBUG_MENTION // console.groupEnd();\n\t\t} );\n\n\t\twatcher.on( 'unmatched', () => {\n\t\t\tthis._hideUIAndRemoveMarker();\n\t\t} );\n\n\t\tconst mentionCommand = editor.commands.get( 'mention' )!;\n\t\twatcher.bind( 'isEnabled' ).to( mentionCommand );\n\n\t\treturn watcher;\n\t}\n\n\t/**\n\t * Handles the feed response event data.\n\t */\n\tprivate _handleFeedResponse( data: RequestFeedResponseEvent['args'][0] ) {\n\t\tconst { feed, marker } = data;\n\n\t\t// eslint-disable-next-line @stylistic/max-len\n\t\t// @if CK_DEBUG_MENTION // console.log( `%c[Feed]%c Response for \"${ data.feedText }\" (${ feed.length })`, 'color: blue', 'color: black', feed );\n\n\t\t// If the marker is not in the document happens when the selection had changed and the 'mention' marker was removed.\n\t\tif ( !checkIfStillInCompletionMode( this.editor ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Reset the view.\n\t\tthis._items.clear();\n\n\t\tfor ( const feedItem of feed ) {\n\t\t\tconst item = typeof feedItem != 'object' ? { id: feedItem, text: feedItem } : feedItem;\n\n\t\t\tthis._items.add( { item, marker } );\n\t\t}\n\n\t\tconst mentionMarker = this.editor.model.markers.get( 'mention' );\n\n\t\tif ( this._items.length ) {\n\t\t\tthis._showOrUpdateUI( mentionMarker! );\n\t\t} else {\n\t\t\t// Do not show empty mention UI.\n\t\t\tthis._hideUIAndRemoveMarker();\n\t\t}\n\t}\n\n\t/**\n\t * Shows the mentions balloon. If the panel is already visible, it will reposition it.\n\t */\n\tprivate _showOrUpdateUI( markerMarker: Marker ): void {\n\t\tif ( this._isUIVisible ) {\n\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Updating position.', 'color: green', 'color: black' );\n\n\t\t\t// Update balloon position as the mention list view may change its size.\n\t\t\tthis._balloon!.updatePosition( this._getBalloonPanelPositionData( markerMarker, this._mentionsView!.position ) );\n\t\t} else {\n\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Showing the UI.', 'color: green', 'color: black' );\n\n\t\t\tthis._balloon!.add( {\n\t\t\t\tview: this._mentionsView,\n\t\t\t\tposition: this._getBalloonPanelPositionData( markerMarker, this._mentionsView.position ),\n\t\t\t\tsingleViewMode: true,\n\t\t\t\tballoonClassName: 'ck-mention-balloon'\n\t\t\t} );\n\t\t}\n\n\t\tthis._mentionsView.position = this._balloon!.view.position;\n\t\tthis._mentionsView.selectFirst();\n\t}\n\n\t/**\n\t * Hides the mentions balloon and removes the 'mention' marker from the markers collection.\n\t */\n\tprivate _hideUIAndRemoveMarker(): void {\n\t\t// Remove the mention view from balloon before removing marker - it is used by balloon position target().\n\t\tif ( this._balloon!.hasView( this._mentionsView ) ) {\n\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Hiding the UI.', 'color: green', 'color: black' );\n\n\t\t\tthis._balloon!.remove( this._mentionsView );\n\t\t}\n\n\t\tif ( checkIfStillInCompletionMode( this.editor ) ) {\n\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Removing marker.', 'color: purple', 'color: black' );\n\n\t\t\tthis.editor.model.change( writer => writer.removeMarker( 'mention' ) );\n\t\t}\n\n\t\t// Make the last matched position on panel view undefined so the #_getBalloonPanelPositionData() method will return all positions\n\t\t// on the next call.\n\t\tthis._mentionsView.position = undefined;\n\t}\n\n\t/**\n\t * Renders a single item in the autocomplete list.\n\t */\n\tprivate _renderItem( item: MentionFeedObjectItem, marker: string ): MentionDomWrapperView | ButtonView {\n\t\tconst editor = this.editor;\n\n\t\tlet view;\n\t\tlet label = item.id;\n\n\t\tconst renderer = this._getItemRenderer( marker );\n\n\t\tif ( renderer ) {\n\t\t\tconst renderResult = renderer( item );\n\n\t\t\tif ( typeof renderResult != 'string' ) {\n\t\t\t\tview = new MentionDomWrapperView( editor.locale, renderResult );\n\t\t\t} else {\n\t\t\t\tlabel = renderResult;\n\t\t\t}\n\t\t}\n\n\t\tif ( !view ) {\n\t\t\tconst buttonView = new ButtonView( editor.locale );\n\n\t\t\tbuttonView.label = label;\n\t\t\tbuttonView.withText = true;\n\n\t\t\tview = buttonView;\n\t\t}\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Creates a position options object used to position the balloon panel.\n\t *\n\t * @param mentionMarker\n\t * @param preferredPosition The name of the last matched position name.\n\t */\n\tprivate _getBalloonPanelPositionData(\n\t\tmentionMarker: Marker,\n\t\tpreferredPosition: MentionsView['position']\n\t): Partial<DomOptimalPositionOptions> {\n\t\tconst editor = this.editor;\n\t\tconst editing = editor.editing;\n\t\tconst domConverter = editing.view.domConverter;\n\t\tconst mapper = editing.mapper;\n\t\tconst uiLanguageDirection = editor.locale.uiLanguageDirection;\n\n\t\treturn {\n\t\t\ttarget: () => {\n\t\t\t\tlet modelRange = mentionMarker.getRange();\n\n\t\t\t\t// Target the UI to the model selection range - the marker has been removed so probably the UI will not be shown anyway.\n\t\t\t\t// The logic is used by ContextualBalloon to display another panel in the same place.\n\t\t\t\tif ( modelRange.start.root.rootName == '$graveyard' ) {\n\t\t\t\t\tmodelRange = editor.model.document.selection.getFirstRange()!;\n\t\t\t\t}\n\n\t\t\t\tconst viewRange = mapper.toViewRange( modelRange );\n\t\t\t\tconst rangeRects = Rect.getDomRangeRects( domConverter.viewRangeToDom( viewRange ) );\n\n\t\t\t\treturn rangeRects.pop()!;\n\t\t\t},\n\t\t\tlimiter: () => {\n\t\t\t\tconst view = this.editor.editing.view;\n\t\t\t\tconst viewDocument = view.document;\n\t\t\t\tconst editableElement = viewDocument.selection.editableElement;\n\n\t\t\t\tif ( editableElement ) {\n\t\t\t\t\treturn view.domConverter.mapViewToDom( editableElement.root ) as HTMLElement;\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\tpositions: getBalloonPanelPositions( preferredPosition, uiLanguageDirection )\n\t\t};\n\t}\n}\n\n/**\n * Returns the balloon positions data callbacks.\n */\nfunction getBalloonPanelPositions(\n\tpreferredPosition: MentionsView['position'],\n\tuiLanguageDirection: string\n): DomOptimalPositionOptions['positions'] {\n\tconst positions: Record<string, DomOptimalPositionOptions['positions'][0]> = {\n\t\t// Positions the panel to the southeast of the caret rectangle.\n\t\t'caret_se': ( targetRect: Rect ) => {\n\t\t\treturn {\n\t\t\t\ttop: targetRect.bottom + VERTICAL_SPACING,\n\t\t\t\tleft: targetRect.right,\n\t\t\t\tname: 'caret_se',\n\t\t\t\tconfig: {\n\t\t\t\t\twithArrow: false\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\n\t\t// Positions the panel to the northeast of the caret rectangle.\n\t\t'caret_ne': ( targetRect: Rect, balloonRect: Rect ) => {\n\t\t\treturn {\n\t\t\t\ttop: targetRect.top - balloonRect.height - VERTICAL_SPACING,\n\t\t\t\tleft: targetRect.right,\n\t\t\t\tname: 'caret_ne',\n\t\t\t\tconfig: {\n\t\t\t\t\twithArrow: false\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\n\t\t// Positions the panel to the southwest of the caret rectangle.\n\t\t'caret_sw': ( targetRect: Rect, balloonRect: Rect ) => {\n\t\t\treturn {\n\t\t\t\ttop: targetRect.bottom + VERTICAL_SPACING,\n\t\t\t\tleft: targetRect.right - balloonRect.width,\n\t\t\t\tname: 'caret_sw',\n\t\t\t\tconfig: {\n\t\t\t\t\twithArrow: false\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\n\t\t// Positions the panel to the northwest of the caret rect.\n\t\t'caret_nw': ( targetRect: Rect, balloonRect: Rect ) => {\n\t\t\treturn {\n\t\t\t\ttop: targetRect.top - balloonRect.height - VERTICAL_SPACING,\n\t\t\t\tleft: targetRect.right - balloonRect.width,\n\t\t\t\tname: 'caret_nw',\n\t\t\t\tconfig: {\n\t\t\t\t\twithArrow: false\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t};\n\n\t// Returns only the last position if it was matched to prevent the panel from jumping after the first match.\n\tif ( Object.prototype.hasOwnProperty.call( positions, preferredPosition! ) ) {\n\t\treturn [\n\t\t\tpositions[ preferredPosition! ]\n\t\t];\n\t}\n\n\t// By default, return all position callbacks ordered depending on the UI language direction.\n\treturn uiLanguageDirection !== 'rtl' ? [\n\t\tpositions.caret_se,\n\t\tpositions.caret_sw,\n\t\tpositions.caret_ne,\n\t\tpositions.caret_nw\n\t] : [\n\t\tpositions.caret_sw,\n\t\tpositions.caret_se,\n\t\tpositions.caret_nw,\n\t\tpositions.caret_ne\n\t];\n}\n\n/**\n * Returns a marker definition of the last valid occurring marker in a given string.\n * If there is no valid marker in a string, it returns undefined.\n *\n * Example of returned object:\n *\n * ```ts\n * {\n * \tmarker: '@',\n * \tposition: 4,\n * \tminimumCharacters: 0\n * }\n * ````\n *\n * @param feedsWithPattern Registered feeds in editor for mention plugin with created RegExp for matching marker.\n * @param text String to find the marker in\n * @returns Matched marker's definition\n */\nfunction getLastValidMarkerInText(\n\tfeedsWithPattern: Array<MentionFeed & { pattern: RegExp }>,\n\ttext: string\n): MarkerDefinition {\n\tlet lastValidMarker: any;\n\n\tfor ( const feed of feedsWithPattern ) {\n\t\tconst currentMarkerLastIndex = text.lastIndexOf( feed.marker );\n\n\t\tif ( currentMarkerLastIndex > 0 && !text.substring( currentMarkerLastIndex - 1 ).match( feed.pattern ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ( !lastValidMarker || currentMarkerLastIndex >= lastValidMarker.position ) {\n\t\t\tlastValidMarker = {\n\t\t\t\tmarker: feed.marker,\n\t\t\t\tposition: currentMarkerLastIndex,\n\t\t\t\tminimumCharacters: feed.minimumCharacters,\n\t\t\t\tpattern: feed.pattern\n\t\t\t};\n\t\t}\n\t}\n\n\treturn lastValidMarker;\n}\n\n/**\n * Creates a RegExp pattern for the marker.\n *\n * Function has to be exported to achieve 100% code coverage.\n *\n * @internal\n */\nexport function createRegExp( marker: string, minimumCharacters: number ): RegExp {\n\tconst numberOfCharacters = minimumCharacters == 0 ? '*' : `{${ minimumCharacters },}`;\n\tconst openAfterCharacters = env.features.isRegExpUnicodePropertySupported ? '\\\\p{Ps}\\\\p{Pi}\"\\'' : '\\\\(\\\\[{\"\\'';\n\tconst mentionCharacters = '.';\n\n\t// I wanted to make an util out of it, but since this regexp uses \"u\" flag, it became difficult.\n\t// When \"u\" flag is used, the regexp has \"strict\" escaping rules, i.e. if you try to escape a character that does not need\n\t// to be escaped, RegExp() will throw. It made it difficult to write a generic util, because different characters are\n\t// allowed in different context. For example, escaping \"-\" sometimes was correct, but sometimes it threw an error.\n\tmarker = marker.replace( /[.*+?^${}()\\-|[\\]\\\\]/g, '\\\\$&' );\n\n\t// The pattern consists of 3 groups:\n\t//\n\t// - 0 (non-capturing): Opening sequence - start of the line, space or an opening punctuation character like \"(\" or \"\\\"\",\n\t// - 1: The marker character(s),\n\t// - 2: Mention input (taking the minimal length into consideration to trigger the UI),\n\t//\n\t// The pattern matches up to the caret (end of string switch - $).\n\t// (0: opening sequence )(1: marker )(2: typed mention )$\n\tconst pattern = `(?:^|[ ${ openAfterCharacters }])(${ marker })(${ mentionCharacters }${ numberOfCharacters })$`;\n\n\treturn new RegExp( pattern, 'u' );\n}\n\n/**\n * Creates a test callback for the marker to be used in the text watcher instance.\n *\n * @param feedsWithPattern Feeds of mention plugin configured in editor with RegExp to match marker in text\n */\nfunction createTestCallback( feedsWithPattern: Array<MentionFeed & { pattern: RegExp }> ): ( text: string ) => boolean {\n\tconst textMatcher = ( text: string ) => {\n\t\tconst markerDefinition = getLastValidMarkerInText( feedsWithPattern, text );\n\n\t\tif ( !markerDefinition ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet splitStringFrom = 0;\n\n\t\tif ( markerDefinition.position !== 0 ) {\n\t\t\tsplitStringFrom = markerDefinition.position - 1;\n\t\t}\n\n\t\tconst textToTest = text.substring( splitStringFrom );\n\n\t\treturn markerDefinition.pattern.test( textToTest );\n\t};\n\n\treturn textMatcher;\n}\n\n/**\n * Creates a text matcher from the marker.\n */\nfunction requestFeedText( markerDefinition: MarkerDefinition, text: string ): string {\n\tlet splitStringFrom = 0;\n\n\tif ( markerDefinition.position !== 0 ) {\n\t\tsplitStringFrom = markerDefinition.position - 1;\n\t}\n\n\tconst regExp = createRegExp( markerDefinition.marker, 0 );\n\tconst textToMatch = text.substring( splitStringFrom );\n\tconst match = textToMatch.match( regExp )!;\n\n\treturn match[ 2 ];\n}\n\n/**\n * The default feed callback.\n */\nfunction createFeedCallback( feedItems: Array<MentionFeedItem> ) {\n\treturn ( feedText: string ) => {\n\t\tconst filteredItems = feedItems\n\t\t\t// Make the default mention feed case-insensitive.\n\t\t\t.filter( item => {\n\t\t\t\t// Item might be defined as object.\n\t\t\t\tconst itemId = typeof item == 'string' ? item : String( item.id );\n\n\t\t\t\t// The default feed is case insensitive.\n\t\t\t\treturn itemId.toLowerCase().includes( feedText.toLowerCase() );\n\t\t\t} );\n\t\treturn filteredItems;\n\t};\n}\n\n/**\n * Checks if position in inside or right after a text with a mention.\n */\nfunction isPositionInExistingMention( position: ModelPosition ): boolean | null {\n\t// The text watcher listens only to changed range in selection - so the selection attributes are not yet available\n\t// and you cannot use selection.hasAttribute( 'mention' ) just yet.\n\t// See https://github.com/ckeditor/ckeditor5-engine/issues/1723.\n\tconst hasMention = position.textNode && position.textNode.hasAttribute( 'mention' );\n\n\tconst nodeBefore = position.nodeBefore;\n\n\treturn hasMention || nodeBefore && nodeBefore.is( '$text' ) && nodeBefore.hasAttribute( 'mention' );\n}\n\n/**\n * Checks if the closest marker offset is at the beginning of a mention.\n *\n * See https://github.com/ckeditor/ckeditor5/issues/11400.\n */\nfunction isMarkerInExistingMention( markerPosition: ModelPosition ): boolean | null {\n\tconst nodeAfter = markerPosition.nodeAfter;\n\n\treturn nodeAfter && nodeAfter.is( '$text' ) && nodeAfter.hasAttribute( 'mention' );\n}\n\n/**\n * Checks if string is a valid mention marker.\n */\nfunction isValidMentionMarker( marker: string ): boolean {\n\treturn !!marker;\n}\n\n/**\n * Checks the mention plugins is in completion mode (e.g. when typing is after a valid mention string like @foo).\n */\nfunction checkIfStillInCompletionMode( editor: Editor ): boolean {\n\treturn editor.model.markers.has( 'mention' );\n}\n\ntype RequestFeedResponse = {\n\n\t/**\n\t * Autocomplete items\n\t */\n\tfeed: Array<MentionFeedItem>;\n\n\t/**\n\t * The character which triggers autocompletion for mention.\n\t */\n\tmarker: string;\n\n\t/**\n\t * The text for which feed items were requested.\n\t */\n\tfeedText: string;\n};\n\ntype RequestFeedError = {\n\n\t/**\n\t * The error that was caught.\n\t */\n\terror: ErrorEvent;\n};\n\n/**\n * Fired whenever requested feed has a response.\n */\ntype RequestFeedResponseEvent = {\n\tname: 'requestFeed:response';\n\targs: [ RequestFeedResponse ];\n};\n\n/**\n * Fired whenever the requested feed was discarded. This happens when the response was delayed and\n * other feed was already requested.\n */\ntype RequestFeedDiscardedEvent = {\n\tname: 'requestFeed:discarded';\n\targs: [ RequestFeedResponse ];\n};\n\n/**\n * Fired whenever the requested {@link module:mention/mentionconfig~MentionFeed#feed} promise fails with error.\n */\ntype RequestFeedErrorEvent = {\n\tname: 'requestFeed:error';\n\targs: [ RequestFeedError ];\n};\n\ntype Definition = {\n\tmarker: string;\n\tfeedCallback: MentionFeedbackCallback;\n\titemRenderer?: MentionItemRenderer;\n\tdropdownLimit?: number;\n};\n\ntype MarkerDefinition = {\n\tmarker: string;\n\tminimumCharacters?: number;\n\tpattern: RegExp;\n\tposition: number;\n};\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module mention/mention\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport type { ModelElement } from 'ckeditor5/src/engine.js';\n\nimport { MentionEditing, _toMentionAttribute } from './mentionediting.js';\nimport { MentionUI } from './mentionui.js';\n\nimport '../theme/mention.css';\n\n/**\n * The mention plugin.\n *\n * For a detailed overview, check the {@glink features/mentions Mention feature} guide.\n */\nexport class Mention extends Plugin {\n\t/**\n\t * Creates a mention attribute value from the provided view element and additional data.\n\t *\n\t * ```ts\n\t * editor.plugins.get( 'Mention' ).toMentionAttribute( viewElement, { userId: '1234' } );\n\t *\n\t * // For a view element: <span data-mention=\"@joe\">@John Doe</span>\n\t * // it will return:\n\t * // { id: '@joe', userId: '1234', uid: '7a7bc7...', _text: '@John Doe' }\n\t * ```\n\t *\n\t * @param data Additional data to be stored in the mention attribute.\n\t */\n\tpublic toMentionAttribute<MentionData extends Record<string, unknown>>(\n\t\tviewElement: ModelElement,\n\t\tdata: MentionData\n\t): ( MentionAttribute & MentionData ) | undefined;\n\n\t/**\n\t * Creates a mention attribute value from the provided view element.\n\t *\n\t * ```ts\n\t * editor.plugins.get( 'Mention' ).toMentionAttribute( viewElement );\n\t *\n\t * // For a view element: <span data-mention=\"@joe\">@John Doe</span>\n\t * // it will return:\n\t * // { id: '@joe', uid: '7a7bc7...', _text: '@John Doe' }\n\t * ```\n\t */\n\tpublic toMentionAttribute( viewElement: ModelElement ): MentionAttribute | undefined;\n\n\tpublic toMentionAttribute( viewElement: ModelElement, data?: Record<string, unknown> ): MentionAttribute | undefined {\n\t\treturn _toMentionAttribute( viewElement, data );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Mention' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ MentionEditing, MentionUI ] as const;\n\t}\n}\n\n/**\n * Represents a mention in the model.\n *\n * See {@link module:mention/mention~Mention#toMentionAttribute `Mention#toMentionAttribute()`}.\n */\nexport type MentionAttribute = {\n\n\t/**\n\t * The ID of a mention. It identifies the mention item in the mention feed. There can be multiple mentions\n\t * in the document with the same ID (e.g. the same hashtag being mentioned).\n\t */\n\tid: string;\n\n\t/**\n\t * A unique ID of this mention instance. Should be passed as an `option.id` when using\n\t * {@link module:engine/view/downcastwriter~ViewDowncastWriter#createAttributeElement writer.createAttributeElement()}.\n\t */\n\tuid: string;\n\n\t/**\n\t * Helper property that stores the text of the inserted mention. Used for detecting a broken mention\n\t * in the editing area.\n\t *\n\t * @internal\n\t */\n\t_text: string;\n};\n"]}
|
1
|
+
{"version":3,"sources":["index.js","../src/mentioncommand.ts","../src/mentionediting.ts","../src/ui/mentionsview.ts","../src/ui/domwrapperview.ts","../src/ui/mentionlistitemview.ts","../src/mentionui.ts","../src/mention.ts"],"names":["BRACKET_PAIRS","MentionCommand","Command","editor","_isEnabledBasedOnSelection","refresh","model","doc","document","isEnabled","schema","checkAttributeInSelection","selection","execute","options","mentionData","mention","id","mentionID","range","getFirstRange","canEditAt","mentionText","text","_addMentionAttributes","_text","startsWith","marker","CKEditorError","change","writer","currentAttributes","toMap","getAttributes","attributesWithMention","Map","entries","set","insertionRange","insertContent","createText","nodeBefore","start","nodeAfter","end","isFollowedByWhiteSpace","is","data","isInsertedInBrackets","precedingCharacter","slice","isPrecededByOpeningBracket","isFollowedByBracketClosure","getShiftedBy","length","MentionEditing","Plugin","pluginName","isOfficialPlugin","init","extend","allowAttributes","conversion","for","elementToAttribute","view","name","attributes","classes","key","value","viewElement","_toMentionAttribute","attributeToElement","createViewMentionElement","add","preventPartialMentionDowncast","registerPostFixer","removePartialMentionPostFixer","extendAttributeOnMentionPostFixer","selectionMentionAttributePostFixer","commands","baseMentionData","Object","assign","uid","viewElementOrMention","dataMention","getAttribute","textNode","getChild","dispatcher","on","evt","conversionApi","attributeNewValue","item","consumable","consume","priority","class","createAttributeElement","focus","isCollapsed","hasAttribute","shouldNotTypeWithMentionAt","removeSelectionAttribute","position","isAtStart","isAfterAMention","changes","differ","getChanges","wasChanged","type","nodeAfterInsertedTextNode","nextSibling","checkAndFix","insertedNode","createRangeIn","getItems","isInline","nodeAfterInserted","attributeKey","node","isBrokenMentionNode","setAttribute","expectedText","removeAttribute","MentionsView","ListView","selected","locale","extendTemplate","tabindex","selectFirst","select","selectNext","index","items","getIndex","selectPrevious","indexToGet","get","removeHighlight","highlight","_isItemVisibleInScrolledArea","element","scrollTop","offsetTop","executeSelected","fire","Rect","contains","MentionDomWrapperView","View","domElement","template","undefined","classList","isOn","remove","listenTo","render","MentionListItemView","ListItemView","child","children","first","VERTICAL_SPACING","defaultHandledKeyCodes","keyCodes","arrowup","arrowdown","esc","defaultCommitKeyCodes","enter","tab","MentionUI","_mentionsView","_mentionsConfigurations","_balloon","_items","Collection","_lastRequested","_requestFeedDebounced","requires","ContextualBalloon","_createMentionView","debounce","_requestFeed","config","define","feeds","commitKeys","handledKeyCodes","concat","plugins","editing","isHandledKey","keyCode","_isUIVisible","preventDefault","stop","includes","_hideUIAndRemoveMarker","clickOutsideHandler","emitter","activator","contextElements","callback","mentionDescription","feed","dropdownLimit","isValidMentionMarker","feedCallback","bind","createFeedCallback","itemRenderer","definition","_setupTextWatcher","_handleFeedResponse","destroy","visibleView","mentionsView","bindTo","using","markerDropdownLimit","listItemView","_renderItem","delegate","to","mentionMarker","markers","createPositionAt","getStart","createRange","_getItemRenderer","feedText","feedResponse","isAsynchronous","Promise","then","response","catch","error","logWarning","feedsWithPattern","map","pattern","createRegExp","minimumCharacters","watcher","TextWatcher","createTestCallback","markerDefinition","getLastValidMarkerInText","markerPosition","parent","isPositionInExistingMention","isMarkerInExistingMention","requestFeedText","matchedTextLength","markerRange","checkIfStillInCompletionMode","updateMarker","addMarker","usingOperation","affectsData","mentionCommand","clear","feedItem","_showOrUpdateUI","markerMarker","updatePosition","_getBalloonPanelPositionData","singleViewMode","balloonClassName","hasView","removeMarker","label","renderer","renderResult","buttonView","ButtonView","withText","preferredPosition","domConverter","mapper","uiLanguageDirection","target","modelRange","getRange","root","rootName","viewRange","toViewRange","rangeRects","getDomRangeRects","viewRangeToDom","pop","limiter","viewDocument","editableElement","mapViewToDom","positions","getBalloonPanelPositions","targetRect","top","bottom","left","right","withArrow","balloonRect","height","width","prototype","hasOwnProperty","call","caret_se","caret_sw","caret_ne","caret_nw","lastValidMarker","currentMarkerLastIndex","lastIndexOf","substring","match","numberOfCharacters","openAfterCharacters","env","features","isRegExpUnicodePropertySupported","mentionCharacters","replace","RegExp","textMatcher","splitStringFrom","textToTest","test","regExp","textToMatch","feedItems","filteredItems","filter","itemId","String","toLowerCase","hasMention","has","Mention","toMentionAttribute"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { CKEditorError, toMap, uid, Rect, keyCodes, Collection, logWarning, env } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { ListView, View, ListItemView, ContextualBalloon, clickOutsideHandler, ButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { TextWatcher } from '@ckeditor/ckeditor5-typing/dist/index.js';\nimport { debounce } from 'es-toolkit/compat';\n\nconst BRACKET_PAIRS = {\n '(': ')',\n '[': ']',\n '{': '}'\n};\n/**\n * The mention command.\n *\n * The command is registered by {@link module:mention/mentionediting~MentionEditing} as `'mention'`.\n *\n * To insert a mention into a range, execute the command and specify a mention object with a range to replace:\n *\n * ```ts\n * const focus = editor.model.document.selection.focus;\n *\n * // It will replace one character before the selection focus with the '#1234' text\n * // with the mention attribute filled with passed attributes.\n * editor.execute( 'mention', {\n * \tmarker: '#',\n * \tmention: {\n * \t\tid: '#1234',\n * \t\tname: 'Foo',\n * \t\ttitle: 'Big Foo'\n * \t},\n * \trange: editor.model.createRange( focus.getShiftedBy( -1 ), focus )\n * } );\n *\n * // It will replace one character before the selection focus with the 'The \"Big Foo\"' text\n * // with the mention attribute filled with passed attributes.\n * editor.execute( 'mention', {\n * \tmarker: '#',\n * \tmention: {\n * \t\tid: '#1234',\n * \t\tname: 'Foo',\n * \t\ttitle: 'Big Foo'\n * \t},\n * \ttext: 'The \"Big Foo\"',\n * \trange: editor.model.createRange( focus.getShiftedBy( -1 ), focus )\n * } );\n *\t```\n */ class MentionCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n // Since this command may pass range in execution parameters, it should be checked directly in execute block.\n this._isEnabledBasedOnSelection = false;\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const doc = model.document;\n this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, 'mention');\n }\n /**\n\t * Executes the command.\n\t *\n\t * @param options Options for the executed command.\n\t * @param options.mention The mention object to insert. When a string is passed, it will be used to create a plain\n\t * object with the name attribute that equals the passed string.\n\t * @param options.marker The marker character (e.g. `'@'`).\n\t * @param options.text The text of the inserted mention. Defaults to the full mention string composed from `marker` and\n\t * `mention` string or `mention.id` if an object is passed.\n\t * @param options.range The range to replace.\n\t * Note that the replaced range might be shorter than the inserted text with the mention attribute.\n\t * @fires execute\n\t */ execute(options) {\n const model = this.editor.model;\n const document = model.document;\n const selection = document.selection;\n const mentionData = typeof options.mention == 'string' ? {\n id: options.mention\n } : options.mention;\n const mentionID = mentionData.id;\n const range = options.range || selection.getFirstRange();\n // Don't execute command if range is in non-editable place.\n if (!model.canEditAt(range)) {\n return;\n }\n const mentionText = options.text || mentionID;\n const mention = _addMentionAttributes({\n _text: mentionText,\n id: mentionID\n }, mentionData);\n if (!mentionID.startsWith(options.marker)) {\n /**\n\t\t\t * The feed item ID must start with the marker character(s).\n\t\t\t *\n\t\t\t * Correct mention feed setting:\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * mentions: [\n\t\t\t * \t{\n\t\t\t * \t\tmarker: '@',\n\t\t\t * \t\tfeed: [ '@Ann', '@Barney', ... ]\n\t\t\t * \t}\n\t\t\t * ]\n\t\t\t * ```\n\t\t\t *\n\t\t\t * Incorrect mention feed setting:\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * mentions: [\n\t\t\t * \t{\n\t\t\t * \t\tmarker: '@',\n\t\t\t * \t\tfeed: [ 'Ann', 'Barney', ... ]\n\t\t\t * \t}\n\t\t\t * ]\n\t\t\t * ```\n\t\t\t *\n\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t *\n\t\t\t * @error mentioncommand-incorrect-id\n\t\t\t */ throw new CKEditorError('mentioncommand-incorrect-id', this);\n }\n model.change((writer)=>{\n const currentAttributes = toMap(selection.getAttributes());\n const attributesWithMention = new Map(currentAttributes.entries());\n attributesWithMention.set('mention', mention);\n // Replace a range with the text with a mention.\n const insertionRange = model.insertContent(writer.createText(mentionText, attributesWithMention), range);\n const nodeBefore = insertionRange.start.nodeBefore;\n const nodeAfter = insertionRange.end.nodeAfter;\n const isFollowedByWhiteSpace = nodeAfter && nodeAfter.is('$text') && nodeAfter.data.startsWith(' ');\n let isInsertedInBrackets = false;\n if (nodeBefore && nodeAfter && nodeBefore.is('$text') && nodeAfter.is('$text')) {\n const precedingCharacter = nodeBefore.data.slice(-1);\n const isPrecededByOpeningBracket = precedingCharacter in BRACKET_PAIRS;\n const isFollowedByBracketClosure = isPrecededByOpeningBracket && nodeAfter.data.startsWith(BRACKET_PAIRS[precedingCharacter]);\n isInsertedInBrackets = isPrecededByOpeningBracket && isFollowedByBracketClosure;\n }\n // Don't add a white space if either of the following is true:\n // * there's already one after the mention;\n // * the mention was inserted in the empty matching brackets.\n // https://github.com/ckeditor/ckeditor5/issues/4651\n if (!isInsertedInBrackets && !isFollowedByWhiteSpace) {\n model.insertContent(writer.createText(' ', currentAttributes), range.start.getShiftedBy(mentionText.length));\n }\n });\n }\n}\n\n/**\n * The mention editing feature.\n *\n * It introduces the {@link module:mention/mentioncommand~MentionCommand command} and the `mention`\n * attribute in the {@link module:engine/model/model~Model model} which renders in the {@link module:engine/view/view view}\n * as a `<span class=\"mention\" data-mention=\"@mention\">`.\n */ class MentionEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'MentionEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const model = editor.model;\n const doc = model.document;\n // Allow the mention attribute on all text nodes.\n model.schema.extend('$text', {\n allowAttributes: 'mention'\n });\n // Upcast conversion.\n editor.conversion.for('upcast').elementToAttribute({\n view: {\n name: 'span',\n attributes: 'data-mention',\n classes: 'mention'\n },\n model: {\n key: 'mention',\n value: (viewElement)=>_toMentionAttribute(viewElement)\n }\n });\n // Downcast conversion.\n editor.conversion.for('downcast').attributeToElement({\n model: 'mention',\n view: createViewMentionElement\n });\n editor.conversion.for('downcast').add(preventPartialMentionDowncast);\n doc.registerPostFixer((writer)=>removePartialMentionPostFixer(writer, doc, model.schema));\n doc.registerPostFixer((writer)=>extendAttributeOnMentionPostFixer(writer, doc));\n doc.registerPostFixer((writer)=>selectionMentionAttributePostFixer(writer, doc));\n editor.commands.add('mention', new MentionCommand(editor));\n }\n}\n/**\n * @internal\n */ function _addMentionAttributes(baseMentionData, data) {\n return Object.assign({\n uid: uid()\n }, baseMentionData, data || {});\n}\n/**\n * Creates a mention attribute value from the provided view element and optional data.\n *\n * This function is exposed as\n * {@link module:mention/mention~Mention#toMentionAttribute `editor.plugins.get( 'Mention' ).toMentionAttribute()`}.\n *\n * @internal\n */ function _toMentionAttribute(viewElementOrMention, data) {\n const dataMention = viewElementOrMention.getAttribute('data-mention');\n const textNode = viewElementOrMention.getChild(0);\n // Do not convert empty mentions.\n if (!textNode) {\n return;\n }\n const baseMentionData = {\n id: dataMention,\n _text: textNode.data\n };\n return _addMentionAttributes(baseMentionData, data);\n}\n/**\n * A converter that blocks partial mention from being converted.\n *\n * This converter is registered with 'highest' priority in order to consume mention attribute before it is converted by\n * any other converters. This converter only consumes partial mention - those whose `_text` attribute is not equal to text with mention\n * attribute. This may happen when copying part of mention text.\n */ function preventPartialMentionDowncast(dispatcher) {\n dispatcher.on('attribute:mention', (evt, data, conversionApi)=>{\n const mention = data.attributeNewValue;\n if (!data.item.is('$textProxy') || !mention) {\n return;\n }\n const start = data.range.start;\n const textNode = start.textNode || start.nodeAfter;\n if (textNode.data != mention._text) {\n // Consume item to prevent partial mention conversion.\n conversionApi.consumable.consume(data.item, evt.name);\n }\n }, {\n priority: 'highest'\n });\n}\n/**\n * Creates a mention element from the mention data.\n */ function createViewMentionElement(mention, { writer }) {\n if (!mention) {\n return;\n }\n const attributes = {\n class: 'mention',\n 'data-mention': mention.id\n };\n const options = {\n id: mention.uid,\n priority: 20\n };\n return writer.createAttributeElement('span', attributes, options);\n}\n/**\n * Model post-fixer that disallows typing with selection when the selection is placed after the text node with the mention attribute or\n * before a text node with mention attribute.\n */ function selectionMentionAttributePostFixer(writer, doc) {\n const selection = doc.selection;\n const focus = selection.focus;\n if (selection.isCollapsed && selection.hasAttribute('mention') && shouldNotTypeWithMentionAt(focus)) {\n writer.removeSelectionAttribute('mention');\n return true;\n }\n return false;\n}\n/**\n * Helper function to detect if mention attribute should be removed from selection.\n * This check makes only sense if the selection has mention attribute.\n *\n * The mention attribute should be removed from a selection when selection focus is placed:\n * a) after a text node\n * b) the position is at parents start - the selection will set attributes from node after.\n */ function shouldNotTypeWithMentionAt(position) {\n const isAtStart = position.isAtStart;\n const isAfterAMention = position.nodeBefore && position.nodeBefore.is('$text');\n return isAfterAMention || isAtStart;\n}\n/**\n * Model post-fixer that removes the mention attribute from the modified text node.\n */ function removePartialMentionPostFixer(writer, doc, schema) {\n const changes = doc.differ.getChanges();\n let wasChanged = false;\n for (const change of changes){\n if (change.type == 'attribute') {\n continue;\n }\n // Checks the text node on the current position.\n const position = change.position;\n if (change.name == '$text') {\n const nodeAfterInsertedTextNode = position.textNode && position.textNode.nextSibling;\n // Checks the text node where the change occurred.\n wasChanged = checkAndFix(position.textNode, writer) || wasChanged;\n // Occurs on paste inside a text node with mention.\n wasChanged = checkAndFix(nodeAfterInsertedTextNode, writer) || wasChanged;\n wasChanged = checkAndFix(position.nodeBefore, writer) || wasChanged;\n wasChanged = checkAndFix(position.nodeAfter, writer) || wasChanged;\n }\n // Checks text nodes in inserted elements (might occur when splitting a paragraph or pasting content inside text with mention).\n if (change.name != '$text' && change.type == 'insert') {\n const insertedNode = position.nodeAfter;\n for (const item of writer.createRangeIn(insertedNode).getItems()){\n wasChanged = checkAndFix(item, writer) || wasChanged;\n }\n }\n // Inserted inline elements might break mention.\n if (change.type == 'insert' && schema.isInline(change.name)) {\n const nodeAfterInserted = position.nodeAfter && position.nodeAfter.nextSibling;\n wasChanged = checkAndFix(position.nodeBefore, writer) || wasChanged;\n wasChanged = checkAndFix(nodeAfterInserted, writer) || wasChanged;\n }\n }\n return wasChanged;\n}\n/**\n * This post-fixer will extend the attribute applied on the part of the mention so the whole text node of the mention will have\n * the added attribute.\n */ function extendAttributeOnMentionPostFixer(writer, doc) {\n const changes = doc.differ.getChanges();\n let wasChanged = false;\n for (const change of changes){\n if (change.type === 'attribute' && change.attributeKey != 'mention') {\n // Checks the node on the left side of the range...\n const nodeBefore = change.range.start.nodeBefore;\n // ... and on the right side of the range.\n const nodeAfter = change.range.end.nodeAfter;\n for (const node of [\n nodeBefore,\n nodeAfter\n ]){\n if (isBrokenMentionNode(node) && node.getAttribute(change.attributeKey) != change.attributeNewValue) {\n writer.setAttribute(change.attributeKey, change.attributeNewValue, node);\n wasChanged = true;\n }\n }\n }\n }\n return wasChanged;\n}\n/**\n * Checks if a node has a correct mention attribute if present.\n * Returns `true` if the node is text and has a mention attribute whose text does not match the expected mention text.\n */ function isBrokenMentionNode(node) {\n if (!node || !(node.is('$text') || node.is('$textProxy')) || !node.hasAttribute('mention')) {\n return false;\n }\n const text = node.data;\n const mention = node.getAttribute('mention');\n const expectedText = mention._text;\n return text != expectedText;\n}\n/**\n * Fixes a mention on a text node if it needs a fix.\n */ function checkAndFix(textNode, writer) {\n if (isBrokenMentionNode(textNode)) {\n writer.removeAttribute('mention', textNode);\n return true;\n }\n return false;\n}\n\n/**\n * The mention ui view.\n */ class MentionsView extends ListView {\n selected;\n position;\n /**\n\t * @inheritDoc\n\t */ constructor(locale){\n super(locale);\n this.extendTemplate({\n attributes: {\n class: [\n 'ck-mentions'\n ],\n tabindex: '-1'\n }\n });\n }\n /**\n\t * {@link #select Selects} the first item.\n\t */ selectFirst() {\n this.select(0);\n }\n /**\n\t * Selects next item to the currently {@link #select selected}.\n\t *\n\t * If the last item is already selected, it will select the first item.\n\t */ selectNext() {\n const item = this.selected;\n const index = this.items.getIndex(item);\n this.select(index + 1);\n }\n /**\n\t * Selects previous item to the currently {@link #select selected}.\n\t *\n\t * If the first item is already selected, it will select the last item.\n\t */ selectPrevious() {\n const item = this.selected;\n const index = this.items.getIndex(item);\n this.select(index - 1);\n }\n /**\n\t * Marks item at a given index as selected.\n\t *\n\t * Handles selection cycling when passed index is out of bounds:\n\t * - if the index is lower than 0, it will select the last item,\n\t * - if the index is higher than the last item index, it will select the first item.\n\t *\n\t * @param index Index of an item to be marked as selected.\n\t */ select(index) {\n let indexToGet = 0;\n if (index > 0 && index < this.items.length) {\n indexToGet = index;\n } else if (index < 0) {\n indexToGet = this.items.length - 1;\n }\n const item = this.items.get(indexToGet);\n // Return early if item is already selected.\n if (this.selected === item) {\n return;\n }\n // Remove highlight of previously selected item.\n if (this.selected) {\n this.selected.removeHighlight();\n }\n item.highlight();\n this.selected = item;\n // Scroll the mentions view to the selected element.\n if (!this._isItemVisibleInScrolledArea(item)) {\n this.element.scrollTop = item.element.offsetTop;\n }\n }\n /**\n\t * Triggers the `execute` event on the {@link #select selected} item.\n\t */ executeSelected() {\n this.selected.fire('execute');\n }\n /**\n\t * Checks if an item is visible in the scrollable area.\n\t *\n\t * The item is considered visible when:\n\t * - its top boundary is inside the scrollable rect\n\t * - its bottom boundary is inside the scrollable rect (the whole item must be visible)\n\t */ _isItemVisibleInScrolledArea(item) {\n return new Rect(this.element).contains(new Rect(item.element));\n }\n}\n\n/**\n * This class wraps DOM element as a CKEditor5 UI View.\n *\n * It allows to render any DOM element and use it in mentions list.\n */ class MentionDomWrapperView extends View {\n /**\n\t * The DOM element for which wrapper was created.\n\t */ domElement;\n /**\n\t * Creates an instance of {@link module:mention/ui/domwrapperview~MentionDomWrapperView} class.\n\t *\n\t * Also see {@link #render}.\n\t */ constructor(locale, domElement){\n super(locale);\n // Disable template rendering on this view.\n this.template = undefined;\n this.domElement = domElement;\n // Render dom wrapper as a button.\n this.domElement.classList.add('ck-button');\n this.set('isOn', false);\n // Handle isOn state as in buttons.\n this.on('change:isOn', (evt, name, isOn)=>{\n if (isOn) {\n this.domElement.classList.add('ck-on');\n this.domElement.classList.remove('ck-off');\n } else {\n this.domElement.classList.add('ck-off');\n this.domElement.classList.remove('ck-on');\n }\n });\n // Pass click event as execute event.\n this.listenTo(this.domElement, 'click', ()=>{\n this.fire('execute');\n });\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n this.element = this.domElement;\n }\n /**\n\t * Focuses the DOM element.\n\t */ focus() {\n this.domElement.focus();\n }\n}\n\nclass MentionListItemView extends ListItemView {\n item;\n marker;\n highlight() {\n const child = this.children.first;\n child.isOn = true;\n }\n removeHighlight() {\n const child = this.children.first;\n child.isOn = false;\n }\n}\n\nconst VERTICAL_SPACING = 3;\n// The key codes that mention UI handles when it is open (without commit keys).\nconst defaultHandledKeyCodes = [\n keyCodes.arrowup,\n keyCodes.arrowdown,\n keyCodes.esc\n];\n// Dropdown commit key codes.\nconst defaultCommitKeyCodes = [\n keyCodes.enter,\n keyCodes.tab\n];\n/**\n * The mention UI feature.\n */ class MentionUI extends Plugin {\n /**\n\t * The mention view.\n\t */ _mentionsView;\n /**\n\t * Stores mention feeds configurations.\n\t */ _mentionsConfigurations;\n /**\n\t * The contextual balloon plugin instance.\n\t */ _balloon;\n _items = new Collection();\n _lastRequested;\n /**\n\t * Debounced feed requester. It uses `es-toolkit#debounce` method to delay function call.\n\t */ _requestFeedDebounced;\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'MentionUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n ContextualBalloon\n ];\n }\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this._mentionsView = this._createMentionView();\n this._mentionsConfigurations = new Map();\n this._requestFeedDebounced = debounce(this._requestFeed, 100);\n editor.config.define('mention', {\n feeds: []\n });\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const commitKeys = editor.config.get('mention.commitKeys') || defaultCommitKeyCodes;\n const handledKeyCodes = defaultHandledKeyCodes.concat(commitKeys);\n this._balloon = editor.plugins.get(ContextualBalloon);\n // Key listener that handles navigation in mention view.\n editor.editing.view.document.on('keydown', (evt, data)=>{\n if (isHandledKey(data.keyCode) && this._isUIVisible) {\n data.preventDefault();\n evt.stop(); // Required for Enter key overriding.\n if (data.keyCode == keyCodes.arrowdown) {\n this._mentionsView.selectNext();\n }\n if (data.keyCode == keyCodes.arrowup) {\n this._mentionsView.selectPrevious();\n }\n if (commitKeys.includes(data.keyCode)) {\n this._mentionsView.executeSelected();\n }\n if (data.keyCode == keyCodes.esc) {\n this._hideUIAndRemoveMarker();\n }\n }\n }, {\n priority: 'highest'\n }); // Required to override the Enter key.\n // Close the dropdown upon clicking outside of the plugin UI.\n clickOutsideHandler({\n emitter: this._mentionsView,\n activator: ()=>this._isUIVisible,\n contextElements: ()=>[\n this._balloon.view.element\n ],\n callback: ()=>this._hideUIAndRemoveMarker()\n });\n const feeds = editor.config.get('mention.feeds');\n for (const mentionDescription of feeds){\n const { feed, marker, dropdownLimit } = mentionDescription;\n if (!isValidMentionMarker(marker)) {\n /**\n\t\t\t\t * The marker must be a single character.\n\t\t\t\t *\n\t\t\t\t * Correct markers: `'@'`, `'#'`.\n\t\t\t\t *\n\t\t\t\t * Incorrect markers: `'$$'`, `'[@'`.\n\t\t\t\t *\n\t\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t\t *\n\t\t\t\t * @error mentionconfig-incorrect-marker\n\t\t\t\t * @param {string} marker Configured marker\n\t\t\t\t */ throw new CKEditorError('mentionconfig-incorrect-marker', null, {\n marker\n });\n }\n const feedCallback = typeof feed == 'function' ? feed.bind(this.editor) : createFeedCallback(feed);\n const itemRenderer = mentionDescription.itemRenderer;\n const definition = {\n marker,\n feedCallback,\n itemRenderer,\n dropdownLimit\n };\n this._mentionsConfigurations.set(marker, definition);\n }\n this._setupTextWatcher(feeds);\n this.listenTo(editor, 'change:isReadOnly', ()=>{\n this._hideUIAndRemoveMarker();\n });\n this.on('requestFeed:response', (evt, data)=>this._handleFeedResponse(data));\n this.on('requestFeed:error', ()=>this._hideUIAndRemoveMarker());\n /**\n\t\t * Checks if a given key code is handled by the mention UI.\n\t\t */ function isHandledKey(keyCode) {\n return handledKeyCodes.includes(keyCode);\n }\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n this._mentionsView.destroy();\n }\n /**\n\t * Returns true when {@link #_mentionsView} is in the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon} and it is\n\t * currently visible.\n\t */ get _isUIVisible() {\n return this._balloon.visibleView === this._mentionsView;\n }\n /**\n\t * Creates the {@link #_mentionsView}.\n\t */ _createMentionView() {\n const locale = this.editor.locale;\n const mentionsView = new MentionsView(locale);\n mentionsView.items.bindTo(this._items).using((data)=>{\n const { item, marker } = data;\n const { dropdownLimit: markerDropdownLimit } = this._mentionsConfigurations.get(marker);\n // Set to 10 by default for backwards compatibility. See: #10479\n const dropdownLimit = markerDropdownLimit || this.editor.config.get('mention.dropdownLimit') || 10;\n if (mentionsView.items.length >= dropdownLimit) {\n return null;\n }\n const listItemView = new MentionListItemView(locale);\n const view = this._renderItem(item, marker);\n view.delegate('execute').to(listItemView);\n listItemView.children.add(view);\n listItemView.item = item;\n listItemView.marker = marker;\n listItemView.on('execute', ()=>{\n mentionsView.fire('execute', {\n item,\n marker\n });\n });\n return listItemView;\n });\n mentionsView.on('execute', (evt, data)=>{\n const editor = this.editor;\n const model = editor.model;\n const item = data.item;\n const marker = data.marker;\n const mentionMarker = editor.model.markers.get('mention');\n // Create a range on matched text.\n const end = model.createPositionAt(model.document.selection.focus);\n const start = model.createPositionAt(mentionMarker.getStart());\n const range = model.createRange(start, end);\n this._hideUIAndRemoveMarker();\n editor.execute('mention', {\n mention: item,\n text: item.text,\n marker,\n range\n });\n editor.editing.view.focus();\n });\n return mentionsView;\n }\n /**\n\t * Returns item renderer for the marker.\n\t */ _getItemRenderer(marker) {\n const { itemRenderer } = this._mentionsConfigurations.get(marker);\n return itemRenderer;\n }\n /**\n\t * Requests a feed from a configured callbacks.\n\t */ _requestFeed(marker, feedText) {\n // @if CK_DEBUG_MENTION // console.log( '%c[Feed]%c Requesting for', 'color: blue', 'color: black', `\"${ feedText }\"` );\n // Store the last requested feed - it is used to discard any out-of order requests.\n this._lastRequested = feedText;\n const { feedCallback } = this._mentionsConfigurations.get(marker);\n const feedResponse = feedCallback(feedText);\n const isAsynchronous = feedResponse instanceof Promise;\n // For synchronous feeds (e.g. callbacks, arrays) fire the response event immediately.\n if (!isAsynchronous) {\n this.fire('requestFeed:response', {\n feed: feedResponse,\n marker,\n feedText\n });\n return;\n }\n // Handle the asynchronous responses.\n feedResponse.then((response)=>{\n // Check the feed text of this response with the last requested one so either:\n if (this._lastRequested == feedText) {\n // It is the same and fire the response event.\n this.fire('requestFeed:response', {\n feed: response,\n marker,\n feedText\n });\n } else {\n // It is different - most probably out-of-order one, so fire the discarded event.\n this.fire('requestFeed:discarded', {\n feed: response,\n marker,\n feedText\n });\n }\n }).catch((error)=>{\n this.fire('requestFeed:error', {\n error\n });\n /**\n\t\t\t\t * The callback used for obtaining mention autocomplete feed thrown and error and the mention UI was hidden or\n\t\t\t\t * not displayed at all.\n\t\t\t\t *\n\t\t\t\t * @error mention-feed-callback-error\n\t\t\t\t */ logWarning('mention-feed-callback-error', {\n marker\n });\n });\n }\n /**\n\t * Registers a text watcher for the marker.\n\t */ _setupTextWatcher(feeds) {\n const editor = this.editor;\n const feedsWithPattern = feeds.map((feed)=>({\n ...feed,\n pattern: createRegExp(feed.marker, feed.minimumCharacters || 0)\n }));\n const watcher = new TextWatcher(editor.model, createTestCallback(feedsWithPattern));\n watcher.on('matched', (evt, data)=>{\n const markerDefinition = getLastValidMarkerInText(feedsWithPattern, data.text);\n const selection = editor.model.document.selection;\n const focus = selection.focus;\n const markerPosition = editor.model.createPositionAt(focus.parent, markerDefinition.position);\n if (isPositionInExistingMention(focus) || isMarkerInExistingMention(markerPosition)) {\n this._hideUIAndRemoveMarker();\n return;\n }\n const feedText = requestFeedText(markerDefinition, data.text);\n const matchedTextLength = markerDefinition.marker.length + feedText.length;\n // Create a marker range.\n const start = focus.getShiftedBy(-matchedTextLength);\n const end = focus.getShiftedBy(-feedText.length);\n const markerRange = editor.model.createRange(start, end);\n // @if CK_DEBUG_MENTION // console.group( '%c[TextWatcher]%c matched', 'color: red', 'color: black', `\"${ feedText }\"` );\n // @if CK_DEBUG_MENTION // console.log( 'data#text', `\"${ data.text }\"` );\n // @if CK_DEBUG_MENTION // console.log( 'data#range', data.range.start.path, data.range.end.path );\n // @if CK_DEBUG_MENTION // console.log( 'marker definition', markerDefinition );\n // @if CK_DEBUG_MENTION // console.log( 'marker range', markerRange.start.path, markerRange.end.path );\n if (checkIfStillInCompletionMode(editor)) {\n const mentionMarker = editor.model.markers.get('mention');\n // Update the marker - user might've moved the selection to other mention trigger.\n editor.model.change((writer)=>{\n // @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Updating the marker.', 'color: purple', 'color: black' );\n writer.updateMarker(mentionMarker, {\n range: markerRange\n });\n });\n } else {\n editor.model.change((writer)=>{\n // @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Adding the marker.', 'color: purple', 'color: black' );\n writer.addMarker('mention', {\n range: markerRange,\n usingOperation: false,\n affectsData: false\n });\n });\n }\n this._requestFeedDebounced(markerDefinition.marker, feedText);\n // @if CK_DEBUG_MENTION // console.groupEnd();\n });\n watcher.on('unmatched', ()=>{\n this._hideUIAndRemoveMarker();\n });\n const mentionCommand = editor.commands.get('mention');\n watcher.bind('isEnabled').to(mentionCommand);\n return watcher;\n }\n /**\n\t * Handles the feed response event data.\n\t */ _handleFeedResponse(data) {\n const { feed, marker } = data;\n // eslint-disable-next-line @stylistic/max-len\n // @if CK_DEBUG_MENTION // console.log( `%c[Feed]%c Response for \"${ data.feedText }\" (${ feed.length })`, 'color: blue', 'color: black', feed );\n // If the marker is not in the document happens when the selection had changed and the 'mention' marker was removed.\n if (!checkIfStillInCompletionMode(this.editor)) {\n return;\n }\n // Reset the view.\n this._items.clear();\n for (const feedItem of feed){\n const item = typeof feedItem != 'object' ? {\n id: feedItem,\n text: feedItem\n } : feedItem;\n this._items.add({\n item,\n marker\n });\n }\n const mentionMarker = this.editor.model.markers.get('mention');\n if (this._items.length) {\n this._showOrUpdateUI(mentionMarker);\n } else {\n // Do not show empty mention UI.\n this._hideUIAndRemoveMarker();\n }\n }\n /**\n\t * Shows the mentions balloon. If the panel is already visible, it will reposition it.\n\t */ _showOrUpdateUI(markerMarker) {\n if (this._isUIVisible) {\n // @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Updating position.', 'color: green', 'color: black' );\n // Update balloon position as the mention list view may change its size.\n this._balloon.updatePosition(this._getBalloonPanelPositionData(markerMarker, this._mentionsView.position));\n } else {\n // @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Showing the UI.', 'color: green', 'color: black' );\n this._balloon.add({\n view: this._mentionsView,\n position: this._getBalloonPanelPositionData(markerMarker, this._mentionsView.position),\n singleViewMode: true,\n balloonClassName: 'ck-mention-balloon'\n });\n }\n this._mentionsView.position = this._balloon.view.position;\n this._mentionsView.selectFirst();\n }\n /**\n\t * Hides the mentions balloon and removes the 'mention' marker from the markers collection.\n\t */ _hideUIAndRemoveMarker() {\n // Remove the mention view from balloon before removing marker - it is used by balloon position target().\n if (this._balloon.hasView(this._mentionsView)) {\n // @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Hiding the UI.', 'color: green', 'color: black' );\n this._balloon.remove(this._mentionsView);\n }\n if (checkIfStillInCompletionMode(this.editor)) {\n // @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Removing marker.', 'color: purple', 'color: black' );\n this.editor.model.change((writer)=>writer.removeMarker('mention'));\n }\n // Make the last matched position on panel view undefined so the #_getBalloonPanelPositionData() method will return all positions\n // on the next call.\n this._mentionsView.position = undefined;\n }\n /**\n\t * Renders a single item in the autocomplete list.\n\t */ _renderItem(item, marker) {\n const editor = this.editor;\n let view;\n let label = item.id;\n const renderer = this._getItemRenderer(marker);\n if (renderer) {\n const renderResult = renderer(item);\n if (typeof renderResult != 'string') {\n view = new MentionDomWrapperView(editor.locale, renderResult);\n } else {\n label = renderResult;\n }\n }\n if (!view) {\n const buttonView = new ButtonView(editor.locale);\n buttonView.label = label;\n buttonView.withText = true;\n view = buttonView;\n }\n return view;\n }\n /**\n\t * Creates a position options object used to position the balloon panel.\n\t *\n\t * @param mentionMarker\n\t * @param preferredPosition The name of the last matched position name.\n\t */ _getBalloonPanelPositionData(mentionMarker, preferredPosition) {\n const editor = this.editor;\n const editing = editor.editing;\n const domConverter = editing.view.domConverter;\n const mapper = editing.mapper;\n const uiLanguageDirection = editor.locale.uiLanguageDirection;\n return {\n target: ()=>{\n let modelRange = mentionMarker.getRange();\n // Target the UI to the model selection range - the marker has been removed so probably the UI will not be shown anyway.\n // The logic is used by ContextualBalloon to display another panel in the same place.\n if (modelRange.start.root.rootName == '$graveyard') {\n modelRange = editor.model.document.selection.getFirstRange();\n }\n const viewRange = mapper.toViewRange(modelRange);\n const rangeRects = Rect.getDomRangeRects(domConverter.viewRangeToDom(viewRange));\n return rangeRects.pop();\n },\n limiter: ()=>{\n const view = this.editor.editing.view;\n const viewDocument = view.document;\n const editableElement = viewDocument.selection.editableElement;\n if (editableElement) {\n return view.domConverter.mapViewToDom(editableElement.root);\n }\n return null;\n },\n positions: getBalloonPanelPositions(preferredPosition, uiLanguageDirection)\n };\n }\n}\n/**\n * Returns the balloon positions data callbacks.\n */ function getBalloonPanelPositions(preferredPosition, uiLanguageDirection) {\n const positions = {\n // Positions the panel to the southeast of the caret rectangle.\n 'caret_se': (targetRect)=>{\n return {\n top: targetRect.bottom + VERTICAL_SPACING,\n left: targetRect.right,\n name: 'caret_se',\n config: {\n withArrow: false\n }\n };\n },\n // Positions the panel to the northeast of the caret rectangle.\n 'caret_ne': (targetRect, balloonRect)=>{\n return {\n top: targetRect.top - balloonRect.height - VERTICAL_SPACING,\n left: targetRect.right,\n name: 'caret_ne',\n config: {\n withArrow: false\n }\n };\n },\n // Positions the panel to the southwest of the caret rectangle.\n 'caret_sw': (targetRect, balloonRect)=>{\n return {\n top: targetRect.bottom + VERTICAL_SPACING,\n left: targetRect.right - balloonRect.width,\n name: 'caret_sw',\n config: {\n withArrow: false\n }\n };\n },\n // Positions the panel to the northwest of the caret rect.\n 'caret_nw': (targetRect, balloonRect)=>{\n return {\n top: targetRect.top - balloonRect.height - VERTICAL_SPACING,\n left: targetRect.right - balloonRect.width,\n name: 'caret_nw',\n config: {\n withArrow: false\n }\n };\n }\n };\n // Returns only the last position if it was matched to prevent the panel from jumping after the first match.\n if (Object.prototype.hasOwnProperty.call(positions, preferredPosition)) {\n return [\n positions[preferredPosition]\n ];\n }\n // By default, return all position callbacks ordered depending on the UI language direction.\n return uiLanguageDirection !== 'rtl' ? [\n positions.caret_se,\n positions.caret_sw,\n positions.caret_ne,\n positions.caret_nw\n ] : [\n positions.caret_sw,\n positions.caret_se,\n positions.caret_nw,\n positions.caret_ne\n ];\n}\n/**\n * Returns a marker definition of the last valid occurring marker in a given string.\n * If there is no valid marker in a string, it returns undefined.\n *\n * Example of returned object:\n *\n * ```ts\n * {\n * \tmarker: '@',\n * \tposition: 4,\n * \tminimumCharacters: 0\n * }\n * ````\n *\n * @param feedsWithPattern Registered feeds in editor for mention plugin with created RegExp for matching marker.\n * @param text String to find the marker in\n * @returns Matched marker's definition\n */ function getLastValidMarkerInText(feedsWithPattern, text) {\n let lastValidMarker;\n for (const feed of feedsWithPattern){\n const currentMarkerLastIndex = text.lastIndexOf(feed.marker);\n if (currentMarkerLastIndex > 0 && !text.substring(currentMarkerLastIndex - 1).match(feed.pattern)) {\n continue;\n }\n if (!lastValidMarker || currentMarkerLastIndex >= lastValidMarker.position) {\n lastValidMarker = {\n marker: feed.marker,\n position: currentMarkerLastIndex,\n minimumCharacters: feed.minimumCharacters,\n pattern: feed.pattern\n };\n }\n }\n return lastValidMarker;\n}\n/**\n * Creates a RegExp pattern for the marker.\n *\n * Function has to be exported to achieve 100% code coverage.\n *\n * @internal\n */ function createRegExp(marker, minimumCharacters) {\n const numberOfCharacters = minimumCharacters == 0 ? '*' : `{${minimumCharacters},}`;\n const openAfterCharacters = env.features.isRegExpUnicodePropertySupported ? '\\\\p{Ps}\\\\p{Pi}\"\\'' : '\\\\(\\\\[{\"\\'';\n const mentionCharacters = '.';\n // I wanted to make an util out of it, but since this regexp uses \"u\" flag, it became difficult.\n // When \"u\" flag is used, the regexp has \"strict\" escaping rules, i.e. if you try to escape a character that does not need\n // to be escaped, RegExp() will throw. It made it difficult to write a generic util, because different characters are\n // allowed in different context. For example, escaping \"-\" sometimes was correct, but sometimes it threw an error.\n marker = marker.replace(/[.*+?^${}()\\-|[\\]\\\\]/g, '\\\\$&');\n // The pattern consists of 3 groups:\n //\n // - 0 (non-capturing): Opening sequence - start of the line, space or an opening punctuation character like \"(\" or \"\\\"\",\n // - 1: The marker character(s),\n // - 2: Mention input (taking the minimal length into consideration to trigger the UI),\n //\n // The pattern matches up to the caret (end of string switch - $).\n // (0: opening sequence )(1: marker )(2: typed mention )$\n const pattern = `(?:^|[ ${openAfterCharacters}])(${marker})(${mentionCharacters}${numberOfCharacters})$`;\n return new RegExp(pattern, 'u');\n}\n/**\n * Creates a test callback for the marker to be used in the text watcher instance.\n *\n * @param feedsWithPattern Feeds of mention plugin configured in editor with RegExp to match marker in text\n */ function createTestCallback(feedsWithPattern) {\n const textMatcher = (text)=>{\n const markerDefinition = getLastValidMarkerInText(feedsWithPattern, text);\n if (!markerDefinition) {\n return false;\n }\n let splitStringFrom = 0;\n if (markerDefinition.position !== 0) {\n splitStringFrom = markerDefinition.position - 1;\n }\n const textToTest = text.substring(splitStringFrom);\n return markerDefinition.pattern.test(textToTest);\n };\n return textMatcher;\n}\n/**\n * Creates a text matcher from the marker.\n */ function requestFeedText(markerDefinition, text) {\n let splitStringFrom = 0;\n if (markerDefinition.position !== 0) {\n splitStringFrom = markerDefinition.position - 1;\n }\n const regExp = createRegExp(markerDefinition.marker, 0);\n const textToMatch = text.substring(splitStringFrom);\n const match = textToMatch.match(regExp);\n return match[2];\n}\n/**\n * The default feed callback.\n */ function createFeedCallback(feedItems) {\n return (feedText)=>{\n const filteredItems = feedItems// Make the default mention feed case-insensitive.\n .filter((item)=>{\n // Item might be defined as object.\n const itemId = typeof item == 'string' ? item : String(item.id);\n // The default feed is case insensitive.\n return itemId.toLowerCase().includes(feedText.toLowerCase());\n });\n return filteredItems;\n };\n}\n/**\n * Checks if position in inside or right after a text with a mention.\n */ function isPositionInExistingMention(position) {\n // The text watcher listens only to changed range in selection - so the selection attributes are not yet available\n // and you cannot use selection.hasAttribute( 'mention' ) just yet.\n // See https://github.com/ckeditor/ckeditor5-engine/issues/1723.\n const hasMention = position.textNode && position.textNode.hasAttribute('mention');\n const nodeBefore = position.nodeBefore;\n return hasMention || nodeBefore && nodeBefore.is('$text') && nodeBefore.hasAttribute('mention');\n}\n/**\n * Checks if the closest marker offset is at the beginning of a mention.\n *\n * See https://github.com/ckeditor/ckeditor5/issues/11400.\n */ function isMarkerInExistingMention(markerPosition) {\n const nodeAfter = markerPosition.nodeAfter;\n return nodeAfter && nodeAfter.is('$text') && nodeAfter.hasAttribute('mention');\n}\n/**\n * Checks if string is a valid mention marker.\n */ function isValidMentionMarker(marker) {\n return !!marker;\n}\n/**\n * Checks the mention plugins is in completion mode (e.g. when typing is after a valid mention string like @foo).\n */ function checkIfStillInCompletionMode(editor) {\n return editor.model.markers.has('mention');\n}\n\n/**\n * The mention plugin.\n *\n * For a detailed overview, check the {@glink features/mentions Mention feature} guide.\n */ class Mention extends Plugin {\n toMentionAttribute(viewElement, data) {\n return _toMentionAttribute(viewElement, data);\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Mention';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n MentionEditing,\n MentionUI\n ];\n }\n}\n\nexport { Mention, MentionCommand, MentionDomWrapperView, MentionEditing, MentionListItemView, MentionUI, MentionsView, _addMentionAttributes, createRegExp as _createMentionMarkerRegExp, _toMentionAttribute };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module mention/mentioncommand\n */\n\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport type { ModelRange } from 'ckeditor5/src/engine.js';\nimport { CKEditorError, toMap } from 'ckeditor5/src/utils.js';\n\nimport { _addMentionAttributes } from './mentionediting.js';\n\nconst BRACKET_PAIRS = {\n\t'(': ')',\n\t'[': ']',\n\t'{': '}'\n} as const;\n\n/**\n * The mention command.\n *\n * The command is registered by {@link module:mention/mentionediting~MentionEditing} as `'mention'`.\n *\n * To insert a mention into a range, execute the command and specify a mention object with a range to replace:\n *\n * ```ts\n * const focus = editor.model.document.selection.focus;\n *\n * // It will replace one character before the selection focus with the '#1234' text\n * // with the mention attribute filled with passed attributes.\n * editor.execute( 'mention', {\n * \tmarker: '#',\n * \tmention: {\n * \t\tid: '#1234',\n * \t\tname: 'Foo',\n * \t\ttitle: 'Big Foo'\n * \t},\n * \trange: editor.model.createRange( focus.getShiftedBy( -1 ), focus )\n * } );\n *\n * // It will replace one character before the selection focus with the 'The \"Big Foo\"' text\n * // with the mention attribute filled with passed attributes.\n * editor.execute( 'mention', {\n * \tmarker: '#',\n * \tmention: {\n * \t\tid: '#1234',\n * \t\tname: 'Foo',\n * \t\ttitle: 'Big Foo'\n * \t},\n * \ttext: 'The \"Big Foo\"',\n * \trange: editor.model.createRange( focus.getShiftedBy( -1 ), focus )\n * } );\n *\t```\n */\nexport class MentionCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic constructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\t// Since this command may pass range in execution parameters, it should be checked directly in execute block.\n\t\tthis._isEnabledBasedOnSelection = false;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst doc = model.document;\n\n\t\tthis.isEnabled = model.schema.checkAttributeInSelection( doc.selection, 'mention' );\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @param options Options for the executed command.\n\t * @param options.mention The mention object to insert. When a string is passed, it will be used to create a plain\n\t * object with the name attribute that equals the passed string.\n\t * @param options.marker The marker character (e.g. `'@'`).\n\t * @param options.text The text of the inserted mention. Defaults to the full mention string composed from `marker` and\n\t * `mention` string or `mention.id` if an object is passed.\n\t * @param options.range The range to replace.\n\t * Note that the replaced range might be shorter than the inserted text with the mention attribute.\n\t * @fires execute\n\t */\n\tpublic override execute( options: {\n\t\tmention: string | { id: string; [ key: string ]: unknown };\n\t\tmarker: string;\n\t\ttext?: string;\n\t\trange?: ModelRange;\n\t} ): void {\n\t\tconst model = this.editor.model;\n\t\tconst document = model.document;\n\t\tconst selection = document.selection;\n\n\t\tconst mentionData = typeof options.mention == 'string' ? { id: options.mention } : options.mention;\n\t\tconst mentionID = mentionData.id;\n\n\t\tconst range = options.range || selection.getFirstRange();\n\n\t\t// Don't execute command if range is in non-editable place.\n\t\tif ( !model.canEditAt( range ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst mentionText = options.text || mentionID;\n\n\t\tconst mention = _addMentionAttributes( { _text: mentionText, id: mentionID }, mentionData );\n\n\t\tif ( !mentionID.startsWith( options.marker ) ) {\n\t\t\t/**\n\t\t\t * The feed item ID must start with the marker character(s).\n\t\t\t *\n\t\t\t * Correct mention feed setting:\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * mentions: [\n\t\t\t * \t{\n\t\t\t * \t\tmarker: '@',\n\t\t\t * \t\tfeed: [ '@Ann', '@Barney', ... ]\n\t\t\t * \t}\n\t\t\t * ]\n\t\t\t * ```\n\t\t\t *\n\t\t\t * Incorrect mention feed setting:\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * mentions: [\n\t\t\t * \t{\n\t\t\t * \t\tmarker: '@',\n\t\t\t * \t\tfeed: [ 'Ann', 'Barney', ... ]\n\t\t\t * \t}\n\t\t\t * ]\n\t\t\t * ```\n\t\t\t *\n\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t *\n\t\t\t * @error mentioncommand-incorrect-id\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'mentioncommand-incorrect-id',\n\t\t\t\tthis\n\t\t\t);\n\t\t}\n\n\t\tmodel.change( writer => {\n\t\t\tconst currentAttributes = toMap( selection.getAttributes() );\n\t\t\tconst attributesWithMention = new Map( currentAttributes.entries() );\n\n\t\t\tattributesWithMention.set( 'mention', mention );\n\n\t\t\t// Replace a range with the text with a mention.\n\t\t\tconst insertionRange = model.insertContent( writer.createText( mentionText, attributesWithMention ), range );\n\t\t\tconst nodeBefore = insertionRange.start.nodeBefore;\n\t\t\tconst nodeAfter = insertionRange.end.nodeAfter;\n\n\t\t\tconst isFollowedByWhiteSpace = nodeAfter && nodeAfter.is( '$text' ) && nodeAfter.data.startsWith( ' ' );\n\t\t\tlet isInsertedInBrackets = false;\n\n\t\t\tif ( nodeBefore && nodeAfter && nodeBefore.is( '$text' ) && nodeAfter.is( '$text' ) ) {\n\t\t\t\tconst precedingCharacter = nodeBefore.data.slice( -1 );\n\t\t\t\tconst isPrecededByOpeningBracket = precedingCharacter in BRACKET_PAIRS;\n\t\t\t\tconst isFollowedByBracketClosure = isPrecededByOpeningBracket && nodeAfter.data.startsWith(\n\t\t\t\t\tBRACKET_PAIRS[ precedingCharacter as keyof typeof BRACKET_PAIRS ]\n\t\t\t\t);\n\n\t\t\t\tisInsertedInBrackets = isPrecededByOpeningBracket && isFollowedByBracketClosure;\n\t\t\t}\n\n\t\t\t// Don't add a white space if either of the following is true:\n\t\t\t// * there's already one after the mention;\n\t\t\t// * the mention was inserted in the empty matching brackets.\n\t\t\t// https://github.com/ckeditor/ckeditor5/issues/4651\n\t\t\tif ( !isInsertedInBrackets && !isFollowedByWhiteSpace ) {\n\t\t\t\tmodel.insertContent( writer.createText( ' ', currentAttributes ), range!.start.getShiftedBy( mentionText.length ) );\n\t\t\t}\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module mention/mentionediting\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport type {\n\tModelElement,\n\tModelText,\n\tModelWriter,\n\tModelDocument,\n\tViewAttributeElement,\n\tDowncastConversionApi,\n\tDowncastDispatcher,\n\tModelPosition,\n\tModelSchema,\n\tDowncastAttributeEvent,\n\tModelItem\n} from 'ckeditor5/src/engine.js';\nimport { uid } from 'ckeditor5/src/utils.js';\n\nimport { MentionCommand } from './mentioncommand.js';\nimport type { MentionAttribute } from './mention.js';\n\n/**\n * The mention editing feature.\n *\n * It introduces the {@link module:mention/mentioncommand~MentionCommand command} and the `mention`\n * attribute in the {@link module:engine/model/model~Model model} which renders in the {@link module:engine/view/view view}\n * as a `<span class=\"mention\" data-mention=\"@mention\">`.\n */\nexport class MentionEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'MentionEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst doc = model.document;\n\n\t\t// Allow the mention attribute on all text nodes.\n\t\tmodel.schema.extend( '$text', { allowAttributes: 'mention' } );\n\n\t\t// Upcast conversion.\n\t\teditor.conversion.for( 'upcast' ).elementToAttribute( {\n\t\t\tview: {\n\t\t\t\tname: 'span',\n\t\t\t\tattributes: 'data-mention',\n\t\t\t\tclasses: 'mention'\n\t\t\t},\n\t\t\tmodel: {\n\t\t\t\tkey: 'mention',\n\t\t\t\tvalue: ( viewElement: ModelElement ) => _toMentionAttribute( viewElement )\n\t\t\t}\n\t\t} );\n\n\t\t// Downcast conversion.\n\t\teditor.conversion.for( 'downcast' ).attributeToElement( {\n\t\t\tmodel: 'mention',\n\t\t\tview: createViewMentionElement\n\t\t} );\n\t\teditor.conversion.for( 'downcast' ).add( preventPartialMentionDowncast );\n\n\t\tdoc.registerPostFixer( writer => removePartialMentionPostFixer( writer, doc, model.schema ) );\n\t\tdoc.registerPostFixer( writer => extendAttributeOnMentionPostFixer( writer, doc ) );\n\t\tdoc.registerPostFixer( writer => selectionMentionAttributePostFixer( writer, doc ) );\n\n\t\teditor.commands.add( 'mention', new MentionCommand( editor ) );\n\t}\n}\n\n/**\n * @internal\n */\nexport function _addMentionAttributes(\n\tbaseMentionData: { id: string; _text: string },\n\tdata?: Record<string, unknown>\n): MentionAttribute {\n\treturn Object.assign( { uid: uid() }, baseMentionData, data || {} );\n}\n\n/**\n * Creates a mention attribute value from the provided view element and optional data.\n *\n * This function is exposed as\n * {@link module:mention/mention~Mention#toMentionAttribute `editor.plugins.get( 'Mention' ).toMentionAttribute()`}.\n *\n * @internal\n */\nexport function _toMentionAttribute(\n\tviewElementOrMention: ModelElement,\n\tdata?: Record<string, unknown>\n): MentionAttribute | undefined {\n\tconst dataMention = viewElementOrMention.getAttribute( 'data-mention' ) as string;\n\n\tconst textNode = viewElementOrMention.getChild( 0 ) as ModelText;\n\n\t// Do not convert empty mentions.\n\tif ( !textNode ) {\n\t\treturn;\n\t}\n\n\tconst baseMentionData = {\n\t\tid: dataMention,\n\t\t_text: textNode.data\n\t};\n\n\treturn _addMentionAttributes( baseMentionData, data );\n}\n\n/**\n * A converter that blocks partial mention from being converted.\n *\n * This converter is registered with 'highest' priority in order to consume mention attribute before it is converted by\n * any other converters. This converter only consumes partial mention - those whose `_text` attribute is not equal to text with mention\n * attribute. This may happen when copying part of mention text.\n */\nfunction preventPartialMentionDowncast( dispatcher: DowncastDispatcher ) {\n\tdispatcher.on<DowncastAttributeEvent>( 'attribute:mention', ( evt, data, conversionApi ) => {\n\t\tconst mention = data.attributeNewValue as MentionAttribute;\n\n\t\tif ( !data.item.is( '$textProxy' ) || !mention ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst start = data.range.start;\n\t\tconst textNode = start.textNode || start.nodeAfter as ModelText;\n\n\t\tif ( textNode!.data != mention._text ) {\n\t\t\t// Consume item to prevent partial mention conversion.\n\t\t\tconversionApi.consumable.consume( data.item, evt.name );\n\t\t}\n\t}, { priority: 'highest' } );\n}\n\n/**\n * Creates a mention element from the mention data.\n */\nfunction createViewMentionElement( mention: MentionAttribute, { writer }: DowncastConversionApi ): ViewAttributeElement | undefined {\n\tif ( !mention ) {\n\t\treturn;\n\t}\n\n\tconst attributes = {\n\t\tclass: 'mention',\n\t\t'data-mention': mention.id\n\t};\n\n\tconst options = {\n\t\tid: mention.uid,\n\t\tpriority: 20\n\t};\n\n\treturn writer.createAttributeElement( 'span', attributes, options );\n}\n\n/**\n * Model post-fixer that disallows typing with selection when the selection is placed after the text node with the mention attribute or\n * before a text node with mention attribute.\n */\nfunction selectionMentionAttributePostFixer( writer: ModelWriter, doc: ModelDocument ): boolean {\n\tconst selection = doc.selection;\n\tconst focus = selection.focus;\n\n\tif ( selection.isCollapsed && selection.hasAttribute( 'mention' ) && shouldNotTypeWithMentionAt( focus! ) ) {\n\t\twriter.removeSelectionAttribute( 'mention' );\n\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Helper function to detect if mention attribute should be removed from selection.\n * This check makes only sense if the selection has mention attribute.\n *\n * The mention attribute should be removed from a selection when selection focus is placed:\n * a) after a text node\n * b) the position is at parents start - the selection will set attributes from node after.\n */\nfunction shouldNotTypeWithMentionAt( position: ModelPosition ): boolean {\n\tconst isAtStart = position.isAtStart;\n\tconst isAfterAMention = position.nodeBefore && position.nodeBefore.is( '$text' );\n\n\treturn isAfterAMention || isAtStart;\n}\n\n/**\n * Model post-fixer that removes the mention attribute from the modified text node.\n */\nfunction removePartialMentionPostFixer( writer: ModelWriter, doc: ModelDocument, schema: ModelSchema ): boolean {\n\tconst changes = doc.differ.getChanges();\n\n\tlet wasChanged = false;\n\n\tfor ( const change of changes ) {\n\t\tif ( change.type == 'attribute' ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Checks the text node on the current position.\n\t\tconst position = change.position;\n\n\t\tif ( change.name == '$text' ) {\n\t\t\tconst nodeAfterInsertedTextNode = position.textNode && position.textNode.nextSibling;\n\n\t\t\t// Checks the text node where the change occurred.\n\t\t\twasChanged = checkAndFix( position.textNode, writer ) || wasChanged;\n\n\t\t\t// Occurs on paste inside a text node with mention.\n\t\t\twasChanged = checkAndFix( nodeAfterInsertedTextNode, writer ) || wasChanged;\n\t\t\twasChanged = checkAndFix( position.nodeBefore, writer ) || wasChanged;\n\t\t\twasChanged = checkAndFix( position.nodeAfter, writer ) || wasChanged;\n\t\t}\n\n\t\t// Checks text nodes in inserted elements (might occur when splitting a paragraph or pasting content inside text with mention).\n\t\tif ( change.name != '$text' && change.type == 'insert' ) {\n\t\t\tconst insertedNode = position.nodeAfter as ModelElement;\n\n\t\t\tfor ( const item of writer.createRangeIn( insertedNode! ).getItems() ) {\n\t\t\t\twasChanged = checkAndFix( item, writer ) || wasChanged;\n\t\t\t}\n\t\t}\n\n\t\t// Inserted inline elements might break mention.\n\t\tif ( change.type == 'insert' && schema.isInline( change.name ) ) {\n\t\t\tconst nodeAfterInserted = position.nodeAfter && position.nodeAfter.nextSibling;\n\n\t\t\twasChanged = checkAndFix( position.nodeBefore, writer ) || wasChanged;\n\t\t\twasChanged = checkAndFix( nodeAfterInserted, writer ) || wasChanged;\n\t\t}\n\t}\n\n\treturn wasChanged;\n}\n\n/**\n * This post-fixer will extend the attribute applied on the part of the mention so the whole text node of the mention will have\n * the added attribute.\n */\nfunction extendAttributeOnMentionPostFixer( writer: ModelWriter, doc: ModelDocument ): boolean {\n\tconst changes = doc.differ.getChanges();\n\n\tlet wasChanged = false;\n\n\tfor ( const change of changes ) {\n\t\tif ( change.type === 'attribute' && change.attributeKey != 'mention' ) {\n\t\t\t// Checks the node on the left side of the range...\n\t\t\tconst nodeBefore = change.range.start.nodeBefore;\n\t\t\t// ... and on the right side of the range.\n\t\t\tconst nodeAfter = change.range.end.nodeAfter;\n\n\t\t\tfor ( const node of [ nodeBefore, nodeAfter ] ) {\n\t\t\t\tif ( isBrokenMentionNode( node ) && node!.getAttribute( change.attributeKey ) != change.attributeNewValue ) {\n\t\t\t\t\twriter.setAttribute( change.attributeKey, change.attributeNewValue, node! );\n\n\t\t\t\t\twasChanged = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn wasChanged;\n}\n\n/**\n * Checks if a node has a correct mention attribute if present.\n * Returns `true` if the node is text and has a mention attribute whose text does not match the expected mention text.\n */\nfunction isBrokenMentionNode( node: ModelItem | null ): boolean {\n\tif ( !node || !( node.is( '$text' ) || node.is( '$textProxy' ) ) || !node.hasAttribute( 'mention' ) ) {\n\t\treturn false;\n\t}\n\n\tconst text = node.data;\n\tconst mention = node.getAttribute( 'mention' ) as MentionAttribute;\n\n\tconst expectedText = mention._text;\n\n\treturn text != expectedText;\n}\n\n/**\n * Fixes a mention on a text node if it needs a fix.\n */\nfunction checkAndFix( textNode: ModelItem | null, writer: ModelWriter ): boolean {\n\tif ( isBrokenMentionNode( textNode ) ) {\n\t\twriter.removeAttribute( 'mention', textNode! );\n\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module mention/ui/mentionsview\n */\n\nimport { ListView } from 'ckeditor5/src/ui.js';\nimport { Rect, type Locale } from 'ckeditor5/src/utils.js';\n\nimport { type MentionListItemView } from './mentionlistitemview.js';\n\nimport '../../theme/mentionui.css';\n\n/**\n * The mention ui view.\n */\nexport class MentionsView extends ListView {\n\tpublic selected: MentionListItemView | undefined;\n\n\tpublic position: string | undefined;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-mentions'\n\t\t\t\t],\n\n\t\t\t\ttabindex: '-1'\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * {@link #select Selects} the first item.\n\t */\n\tpublic selectFirst(): void {\n\t\tthis.select( 0 );\n\t}\n\n\t/**\n\t * Selects next item to the currently {@link #select selected}.\n\t *\n\t * If the last item is already selected, it will select the first item.\n\t */\n\tpublic selectNext(): void {\n\t\tconst item = this.selected;\n\t\tconst index = this.items.getIndex( item! );\n\n\t\tthis.select( index + 1 );\n\t}\n\n\t/**\n\t * Selects previous item to the currently {@link #select selected}.\n\t *\n\t * If the first item is already selected, it will select the last item.\n\t */\n\tpublic selectPrevious(): void {\n\t\tconst item = this.selected;\n\t\tconst index = this.items.getIndex( item! );\n\n\t\tthis.select( index - 1 );\n\t}\n\n\t/**\n\t * Marks item at a given index as selected.\n\t *\n\t * Handles selection cycling when passed index is out of bounds:\n\t * - if the index is lower than 0, it will select the last item,\n\t * - if the index is higher than the last item index, it will select the first item.\n\t *\n\t * @param index Index of an item to be marked as selected.\n\t */\n\tpublic select( index: number ): void {\n\t\tlet indexToGet = 0;\n\n\t\tif ( index > 0 && index < this.items.length ) {\n\t\t\tindexToGet = index;\n\t\t} else if ( index < 0 ) {\n\t\t\tindexToGet = this.items.length - 1;\n\t\t}\n\n\t\tconst item = this.items.get( indexToGet ) as MentionListItemView;\n\n\t\t// Return early if item is already selected.\n\t\tif ( this.selected === item ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remove highlight of previously selected item.\n\t\tif ( this.selected ) {\n\t\t\tthis.selected.removeHighlight();\n\t\t}\n\n\t\titem.highlight();\n\t\tthis.selected = item;\n\n\t\t// Scroll the mentions view to the selected element.\n\t\tif ( !this._isItemVisibleInScrolledArea( item ) ) {\n\t\t\tthis.element!.scrollTop = item.element!.offsetTop;\n\t\t}\n\t}\n\n\t/**\n\t * Triggers the `execute` event on the {@link #select selected} item.\n\t */\n\tpublic executeSelected(): void {\n\t\tthis.selected!.fire( 'execute' );\n\t}\n\n\t/**\n\t * Checks if an item is visible in the scrollable area.\n\t *\n\t * The item is considered visible when:\n\t * - its top boundary is inside the scrollable rect\n\t * - its bottom boundary is inside the scrollable rect (the whole item must be visible)\n\t */\n\tprivate _isItemVisibleInScrolledArea( item: MentionListItemView ) {\n\t\treturn new Rect( this.element! ).contains( new Rect( item.element! ) );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module mention/ui/domwrapperview\n */\n\nimport { View } from 'ckeditor5/src/ui.js';\nimport type { Locale } from 'ckeditor5/src/utils.js';\n\n/**\n * This class wraps DOM element as a CKEditor5 UI View.\n *\n * It allows to render any DOM element and use it in mentions list.\n */\nexport class MentionDomWrapperView extends View {\n\t/**\n\t * The DOM element for which wrapper was created.\n\t */\n\tpublic domElement: HTMLElement;\n\n\t/**\n\t * Controls whether the dom wrapper view is \"on\". This is in line with {@link module:ui/button/button~Button#isOn} property.\n\t *\n\t * @observable\n\t * @default true\n\t */\n\tdeclare public isOn: boolean;\n\n\t/**\n\t * Creates an instance of {@link module:mention/ui/domwrapperview~MentionDomWrapperView} class.\n\t *\n\t * Also see {@link #render}.\n\t */\n\tconstructor( locale: Locale, domElement: HTMLElement ) {\n\t\tsuper( locale );\n\n\t\t// Disable template rendering on this view.\n\t\tthis.template = undefined;\n\n\t\tthis.domElement = domElement;\n\n\t\t// Render dom wrapper as a button.\n\t\tthis.domElement.classList.add( 'ck-button' );\n\n\t\tthis.set( 'isOn', false );\n\n\t\t// Handle isOn state as in buttons.\n\t\tthis.on( 'change:isOn', ( evt, name, isOn ) => {\n\t\t\tif ( isOn ) {\n\t\t\t\tthis.domElement.classList.add( 'ck-on' );\n\t\t\t\tthis.domElement.classList.remove( 'ck-off' );\n\t\t\t} else {\n\t\t\t\tthis.domElement.classList.add( 'ck-off' );\n\t\t\t\tthis.domElement.classList.remove( 'ck-on' );\n\t\t\t}\n\t\t} );\n\n\t\t// Pass click event as execute event.\n\t\tthis.listenTo( this.domElement, 'click', () => {\n\t\t\tthis.fire( 'execute' );\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.element = this.domElement;\n\t}\n\n\t/**\n\t * Focuses the DOM element.\n\t */\n\tpublic focus(): void {\n\t\tthis.domElement.focus();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module mention/ui/mentionlistitemview\n */\n\nimport { ListItemView } from 'ckeditor5/src/ui.js';\n\nimport type { MentionFeedItem } from '../mentionconfig.js';\n\nimport { type MentionDomWrapperView } from './domwrapperview.js';\n\nexport class MentionListItemView extends ListItemView {\n\tpublic item!: MentionFeedItem;\n\n\tpublic marker!: string;\n\n\tpublic highlight(): void {\n\t\tconst child = this.children.first as MentionDomWrapperView;\n\n\t\tchild.isOn = true;\n\t}\n\n\tpublic removeHighlight(): void {\n\t\tconst child = this.children.first as MentionDomWrapperView;\n\n\t\tchild.isOn = false;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module mention/mentionui\n */\n\nimport {\n\tPlugin,\n\ttype Editor\n} from 'ckeditor5/src/core.js';\n\nimport type {\n\tViewDocumentKeyDownEvent,\n\tMarker,\n\tModelPosition\n} from 'ckeditor5/src/engine.js';\n\nimport {\n\tButtonView,\n\tContextualBalloon,\n\tclickOutsideHandler\n} from 'ckeditor5/src/ui.js';\n\nimport {\n\tCKEditorError,\n\tCollection,\n\tRect,\n\tenv,\n\tkeyCodes,\n\tlogWarning,\n\ttype DomOptimalPositionOptions\n} from 'ckeditor5/src/utils.js';\n\nimport { TextWatcher, type TextWatcherMatchedEvent } from 'ckeditor5/src/typing.js';\n\nimport { debounce } from 'es-toolkit/compat';\n\nimport { MentionsView } from './ui/mentionsview.js';\nimport { MentionDomWrapperView } from './ui/domwrapperview.js';\nimport { MentionListItemView } from './ui/mentionlistitemview.js';\n\nimport type {\n\tMentionFeedbackCallback,\n\tMentionFeed,\n\tMentionFeedItem,\n\tMentionItemRenderer,\n\tMentionFeedObjectItem\n} from './mentionconfig.js';\n\nconst VERTICAL_SPACING = 3;\n\n// The key codes that mention UI handles when it is open (without commit keys).\nconst defaultHandledKeyCodes = [\n\tkeyCodes.arrowup,\n\tkeyCodes.arrowdown,\n\tkeyCodes.esc\n];\n\n// Dropdown commit key codes.\nconst defaultCommitKeyCodes = [\n\tkeyCodes.enter,\n\tkeyCodes.tab\n];\n\n/**\n * The mention UI feature.\n */\nexport class MentionUI extends Plugin {\n\t/**\n\t * The mention view.\n\t */\n\tprivate readonly _mentionsView: MentionsView;\n\n\t/**\n\t * Stores mention feeds configurations.\n\t */\n\tprivate _mentionsConfigurations: Map<string, Definition>;\n\n\t/**\n\t * The contextual balloon plugin instance.\n\t */\n\tprivate _balloon: ContextualBalloon | undefined;\n\n\tprivate _items = new Collection<{ item: MentionFeedObjectItem; marker: string }>();\n\n\tprivate _lastRequested?: string;\n\n\t/**\n\t * Debounced feed requester. It uses `es-toolkit#debounce` method to delay function call.\n\t */\n\tprivate _requestFeedDebounced: ( marker: string, feedText: string ) => void;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'MentionUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ContextualBalloon ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis._mentionsView = this._createMentionView();\n\t\tthis._mentionsConfigurations = new Map();\n\t\tthis._requestFeedDebounced = debounce( this._requestFeed, 100 );\n\n\t\teditor.config.define( 'mention', { feeds: [] } );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\tconst commitKeys = editor.config.get( 'mention.commitKeys' ) || defaultCommitKeyCodes;\n\t\tconst handledKeyCodes = defaultHandledKeyCodes.concat( commitKeys );\n\n\t\tthis._balloon = editor.plugins.get( ContextualBalloon );\n\n\t\t// Key listener that handles navigation in mention view.\n\t\teditor.editing.view.document.on<ViewDocumentKeyDownEvent>( 'keydown', ( evt, data ) => {\n\t\t\tif ( isHandledKey( data.keyCode ) && this._isUIVisible ) {\n\t\t\t\tdata.preventDefault();\n\t\t\t\tevt.stop(); // Required for Enter key overriding.\n\n\t\t\t\tif ( data.keyCode == keyCodes.arrowdown ) {\n\t\t\t\t\tthis._mentionsView.selectNext();\n\t\t\t\t}\n\n\t\t\t\tif ( data.keyCode == keyCodes.arrowup ) {\n\t\t\t\t\tthis._mentionsView.selectPrevious();\n\t\t\t\t}\n\n\t\t\t\tif ( commitKeys.includes( data.keyCode ) ) {\n\t\t\t\t\tthis._mentionsView.executeSelected();\n\t\t\t\t}\n\n\t\t\t\tif ( data.keyCode == keyCodes.esc ) {\n\t\t\t\t\tthis._hideUIAndRemoveMarker();\n\t\t\t\t}\n\t\t\t}\n\t\t}, { priority: 'highest' } ); // Required to override the Enter key.\n\n\t\t// Close the dropdown upon clicking outside of the plugin UI.\n\t\tclickOutsideHandler( {\n\t\t\temitter: this._mentionsView,\n\t\t\tactivator: () => this._isUIVisible,\n\t\t\tcontextElements: () => [ this._balloon!.view.element! ],\n\t\t\tcallback: () => this._hideUIAndRemoveMarker()\n\t\t} );\n\n\t\tconst feeds = editor.config.get( 'mention.feeds' )!;\n\n\t\tfor ( const mentionDescription of feeds ) {\n\t\t\tconst { feed, marker, dropdownLimit } = mentionDescription;\n\n\t\t\tif ( !isValidMentionMarker( marker ) ) {\n\t\t\t\t/**\n\t\t\t\t * The marker must be a single character.\n\t\t\t\t *\n\t\t\t\t * Correct markers: `'@'`, `'#'`.\n\t\t\t\t *\n\t\t\t\t * Incorrect markers: `'$$'`, `'[@'`.\n\t\t\t\t *\n\t\t\t\t * See {@link module:mention/mentionconfig~MentionConfig}.\n\t\t\t\t *\n\t\t\t\t * @error mentionconfig-incorrect-marker\n\t\t\t\t * @param {string} marker Configured marker\n\t\t\t\t */\n\t\t\t\tthrow new CKEditorError( 'mentionconfig-incorrect-marker', null, { marker } );\n\t\t\t}\n\n\t\t\tconst feedCallback = typeof feed == 'function' ? feed.bind( this.editor ) : createFeedCallback( feed );\n\t\t\tconst itemRenderer = mentionDescription.itemRenderer;\n\t\t\tconst definition = { marker, feedCallback, itemRenderer, dropdownLimit };\n\n\t\t\tthis._mentionsConfigurations.set( marker, definition );\n\t\t}\n\n\t\tthis._setupTextWatcher( feeds );\n\t\tthis.listenTo( editor, 'change:isReadOnly', () => {\n\t\t\tthis._hideUIAndRemoveMarker();\n\t\t} );\n\t\tthis.on<RequestFeedResponseEvent>( 'requestFeed:response', ( evt, data ) => this._handleFeedResponse( data ) );\n\t\tthis.on<RequestFeedErrorEvent>( 'requestFeed:error', () => this._hideUIAndRemoveMarker() );\n\n\t\t/**\n\t\t * Checks if a given key code is handled by the mention UI.\n\t\t */\n\t\tfunction isHandledKey( keyCode: number ): boolean {\n\t\t\treturn handledKeyCodes.includes( keyCode );\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\t// Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n\t\tthis._mentionsView.destroy();\n\t}\n\n\t/**\n\t * Returns true when {@link #_mentionsView} is in the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon} and it is\n\t * currently visible.\n\t */\n\tprivate get _isUIVisible(): boolean {\n\t\treturn this._balloon!.visibleView === this._mentionsView;\n\t}\n\n\t/**\n\t * Creates the {@link #_mentionsView}.\n\t */\n\tprivate _createMentionView(): MentionsView {\n\t\tconst locale = this.editor.locale;\n\n\t\tconst mentionsView = new MentionsView( locale );\n\n\t\tmentionsView.items.bindTo( this._items ).using( data => {\n\t\t\tconst { item, marker } = data;\n\n\t\t\tconst { dropdownLimit: markerDropdownLimit } = this._mentionsConfigurations.get( marker )!;\n\n\t\t\t// Set to 10 by default for backwards compatibility. See: #10479\n\t\t\tconst dropdownLimit = markerDropdownLimit || this.editor.config.get( 'mention.dropdownLimit' ) || 10;\n\n\t\t\tif ( mentionsView.items.length >= dropdownLimit ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst listItemView = new MentionListItemView( locale );\n\n\t\t\tconst view = this._renderItem( item, marker );\n\t\t\tview.delegate( 'execute' ).to( listItemView );\n\n\t\t\tlistItemView.children.add( view );\n\t\t\tlistItemView.item = item;\n\t\t\tlistItemView.marker = marker;\n\n\t\t\tlistItemView.on( 'execute', () => {\n\t\t\t\tmentionsView.fire( 'execute', {\n\t\t\t\t\titem,\n\t\t\t\t\tmarker\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\treturn listItemView;\n\t\t} );\n\n\t\tmentionsView.on( 'execute', ( evt, data ) => {\n\t\t\tconst editor = this.editor;\n\t\t\tconst model = editor.model;\n\n\t\t\tconst item = data.item;\n\t\t\tconst marker = data.marker;\n\n\t\t\tconst mentionMarker = editor.model.markers.get( 'mention' );\n\n\t\t\t// Create a range on matched text.\n\t\t\tconst end = model.createPositionAt( model.document.selection.focus! );\n\t\t\tconst start = model.createPositionAt( mentionMarker!.getStart() );\n\t\t\tconst range = model.createRange( start, end );\n\n\t\t\tthis._hideUIAndRemoveMarker();\n\n\t\t\teditor.execute( 'mention', {\n\t\t\t\tmention: item,\n\t\t\t\ttext: item.text,\n\t\t\t\tmarker,\n\t\t\t\trange\n\t\t\t} );\n\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\treturn mentionsView;\n\t}\n\n\t/**\n\t * Returns item renderer for the marker.\n\t */\n\tprivate _getItemRenderer( marker: string ): MentionItemRenderer | undefined {\n\t\tconst { itemRenderer } = this._mentionsConfigurations.get( marker )!;\n\n\t\treturn itemRenderer;\n\t}\n\n\t/**\n\t * Requests a feed from a configured callbacks.\n\t */\n\tprivate _requestFeed( marker: string, feedText: string ): void {\n\t\t// @if CK_DEBUG_MENTION // console.log( '%c[Feed]%c Requesting for', 'color: blue', 'color: black', `\"${ feedText }\"` );\n\n\t\t// Store the last requested feed - it is used to discard any out-of order requests.\n\t\tthis._lastRequested = feedText;\n\n\t\tconst { feedCallback } = this._mentionsConfigurations.get( marker )!;\n\t\tconst feedResponse = feedCallback( feedText );\n\n\t\tconst isAsynchronous = feedResponse instanceof Promise;\n\n\t\t// For synchronous feeds (e.g. callbacks, arrays) fire the response event immediately.\n\t\tif ( !isAsynchronous ) {\n\t\t\tthis.fire<RequestFeedResponseEvent>( 'requestFeed:response', { feed: feedResponse, marker, feedText } );\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Handle the asynchronous responses.\n\t\tfeedResponse\n\t\t\t.then( response => {\n\t\t\t\t// Check the feed text of this response with the last requested one so either:\n\t\t\t\tif ( this._lastRequested == feedText ) {\n\t\t\t\t\t// It is the same and fire the response event.\n\t\t\t\t\tthis.fire<RequestFeedResponseEvent>( 'requestFeed:response', { feed: response, marker, feedText } );\n\t\t\t\t} else {\n\t\t\t\t\t// It is different - most probably out-of-order one, so fire the discarded event.\n\t\t\t\t\tthis.fire<RequestFeedDiscardedEvent>( 'requestFeed:discarded', { feed: response, marker, feedText } );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( error => {\n\t\t\t\tthis.fire<RequestFeedErrorEvent>( 'requestFeed:error', { error } );\n\n\t\t\t\t/**\n\t\t\t\t * The callback used for obtaining mention autocomplete feed thrown and error and the mention UI was hidden or\n\t\t\t\t * not displayed at all.\n\t\t\t\t *\n\t\t\t\t * @error mention-feed-callback-error\n\t\t\t\t */\n\t\t\t\tlogWarning( 'mention-feed-callback-error', { marker } );\n\t\t\t} );\n\t}\n\n\t/**\n\t * Registers a text watcher for the marker.\n\t */\n\tprivate _setupTextWatcher( feeds: Array<MentionFeed> ): TextWatcher {\n\t\tconst editor = this.editor;\n\n\t\tconst feedsWithPattern: Array<MentionFeed & { pattern: RegExp }> = feeds.map( feed => ( {\n\t\t\t...feed,\n\t\t\tpattern: createRegExp( feed.marker, feed.minimumCharacters || 0 )\n\t\t} ) );\n\n\t\tconst watcher = new TextWatcher( editor.model, createTestCallback( feedsWithPattern ) );\n\n\t\twatcher.on<TextWatcherMatchedEvent>( 'matched', ( evt, data ) => {\n\t\t\tconst markerDefinition = getLastValidMarkerInText( feedsWithPattern, data.text );\n\t\t\tconst selection = editor.model.document.selection;\n\t\t\tconst focus = selection.focus;\n\t\t\tconst markerPosition = editor.model.createPositionAt( focus!.parent, markerDefinition!.position );\n\n\t\t\tif ( isPositionInExistingMention( focus! ) || isMarkerInExistingMention( markerPosition ) ) {\n\t\t\t\tthis._hideUIAndRemoveMarker();\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst feedText = requestFeedText( markerDefinition, data.text );\n\t\t\tconst matchedTextLength = markerDefinition!.marker.length + feedText.length;\n\n\t\t\t// Create a marker range.\n\t\t\tconst start = focus!.getShiftedBy( -matchedTextLength );\n\t\t\tconst end = focus!.getShiftedBy( -feedText.length );\n\n\t\t\tconst markerRange = editor.model.createRange( start, end );\n\n\t\t\t// @if CK_DEBUG_MENTION // console.group( '%c[TextWatcher]%c matched', 'color: red', 'color: black', `\"${ feedText }\"` );\n\t\t\t// @if CK_DEBUG_MENTION // console.log( 'data#text', `\"${ data.text }\"` );\n\t\t\t// @if CK_DEBUG_MENTION // console.log( 'data#range', data.range.start.path, data.range.end.path );\n\t\t\t// @if CK_DEBUG_MENTION // console.log( 'marker definition', markerDefinition );\n\t\t\t// @if CK_DEBUG_MENTION // console.log( 'marker range', markerRange.start.path, markerRange.end.path );\n\n\t\t\tif ( checkIfStillInCompletionMode( editor ) ) {\n\t\t\t\tconst mentionMarker = editor.model.markers.get( 'mention' )!;\n\n\t\t\t\t// Update the marker - user might've moved the selection to other mention trigger.\n\t\t\t\teditor.model.change( writer => {\n\t\t\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Updating the marker.', 'color: purple', 'color: black' );\n\n\t\t\t\t\twriter.updateMarker( mentionMarker, { range: markerRange } );\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\teditor.model.change( writer => {\n\t\t\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Adding the marker.', 'color: purple', 'color: black' );\n\n\t\t\t\t\twriter.addMarker( 'mention', { range: markerRange, usingOperation: false, affectsData: false } );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tthis._requestFeedDebounced( markerDefinition!.marker, feedText );\n\n\t\t\t// @if CK_DEBUG_MENTION // console.groupEnd();\n\t\t} );\n\n\t\twatcher.on( 'unmatched', () => {\n\t\t\tthis._hideUIAndRemoveMarker();\n\t\t} );\n\n\t\tconst mentionCommand = editor.commands.get( 'mention' )!;\n\t\twatcher.bind( 'isEnabled' ).to( mentionCommand );\n\n\t\treturn watcher;\n\t}\n\n\t/**\n\t * Handles the feed response event data.\n\t */\n\tprivate _handleFeedResponse( data: RequestFeedResponseEvent['args'][0] ) {\n\t\tconst { feed, marker } = data;\n\n\t\t// eslint-disable-next-line @stylistic/max-len\n\t\t// @if CK_DEBUG_MENTION // console.log( `%c[Feed]%c Response for \"${ data.feedText }\" (${ feed.length })`, 'color: blue', 'color: black', feed );\n\n\t\t// If the marker is not in the document happens when the selection had changed and the 'mention' marker was removed.\n\t\tif ( !checkIfStillInCompletionMode( this.editor ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Reset the view.\n\t\tthis._items.clear();\n\n\t\tfor ( const feedItem of feed ) {\n\t\t\tconst item = typeof feedItem != 'object' ? { id: feedItem, text: feedItem } : feedItem;\n\n\t\t\tthis._items.add( { item, marker } );\n\t\t}\n\n\t\tconst mentionMarker = this.editor.model.markers.get( 'mention' );\n\n\t\tif ( this._items.length ) {\n\t\t\tthis._showOrUpdateUI( mentionMarker! );\n\t\t} else {\n\t\t\t// Do not show empty mention UI.\n\t\t\tthis._hideUIAndRemoveMarker();\n\t\t}\n\t}\n\n\t/**\n\t * Shows the mentions balloon. If the panel is already visible, it will reposition it.\n\t */\n\tprivate _showOrUpdateUI( markerMarker: Marker ): void {\n\t\tif ( this._isUIVisible ) {\n\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Updating position.', 'color: green', 'color: black' );\n\n\t\t\t// Update balloon position as the mention list view may change its size.\n\t\t\tthis._balloon!.updatePosition( this._getBalloonPanelPositionData( markerMarker, this._mentionsView!.position ) );\n\t\t} else {\n\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Showing the UI.', 'color: green', 'color: black' );\n\n\t\t\tthis._balloon!.add( {\n\t\t\t\tview: this._mentionsView,\n\t\t\t\tposition: this._getBalloonPanelPositionData( markerMarker, this._mentionsView.position ),\n\t\t\t\tsingleViewMode: true,\n\t\t\t\tballoonClassName: 'ck-mention-balloon'\n\t\t\t} );\n\t\t}\n\n\t\tthis._mentionsView.position = this._balloon!.view.position;\n\t\tthis._mentionsView.selectFirst();\n\t}\n\n\t/**\n\t * Hides the mentions balloon and removes the 'mention' marker from the markers collection.\n\t */\n\tprivate _hideUIAndRemoveMarker(): void {\n\t\t// Remove the mention view from balloon before removing marker - it is used by balloon position target().\n\t\tif ( this._balloon!.hasView( this._mentionsView ) ) {\n\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[UI]%c Hiding the UI.', 'color: green', 'color: black' );\n\n\t\t\tthis._balloon!.remove( this._mentionsView );\n\t\t}\n\n\t\tif ( checkIfStillInCompletionMode( this.editor ) ) {\n\t\t\t// @if CK_DEBUG_MENTION // console.log( '%c[Editing]%c Removing marker.', 'color: purple', 'color: black' );\n\n\t\t\tthis.editor.model.change( writer => writer.removeMarker( 'mention' ) );\n\t\t}\n\n\t\t// Make the last matched position on panel view undefined so the #_getBalloonPanelPositionData() method will return all positions\n\t\t// on the next call.\n\t\tthis._mentionsView.position = undefined;\n\t}\n\n\t/**\n\t * Renders a single item in the autocomplete list.\n\t */\n\tprivate _renderItem( item: MentionFeedObjectItem, marker: string ): MentionDomWrapperView | ButtonView {\n\t\tconst editor = this.editor;\n\n\t\tlet view;\n\t\tlet label = item.id;\n\n\t\tconst renderer = this._getItemRenderer( marker );\n\n\t\tif ( renderer ) {\n\t\t\tconst renderResult = renderer( item );\n\n\t\t\tif ( typeof renderResult != 'string' ) {\n\t\t\t\tview = new MentionDomWrapperView( editor.locale, renderResult );\n\t\t\t} else {\n\t\t\t\tlabel = renderResult;\n\t\t\t}\n\t\t}\n\n\t\tif ( !view ) {\n\t\t\tconst buttonView = new ButtonView( editor.locale );\n\n\t\t\tbuttonView.label = label;\n\t\t\tbuttonView.withText = true;\n\n\t\t\tview = buttonView;\n\t\t}\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Creates a position options object used to position the balloon panel.\n\t *\n\t * @param mentionMarker\n\t * @param preferredPosition The name of the last matched position name.\n\t */\n\tprivate _getBalloonPanelPositionData(\n\t\tmentionMarker: Marker,\n\t\tpreferredPosition: MentionsView['position']\n\t): Partial<DomOptimalPositionOptions> {\n\t\tconst editor = this.editor;\n\t\tconst editing = editor.editing;\n\t\tconst domConverter = editing.view.domConverter;\n\t\tconst mapper = editing.mapper;\n\t\tconst uiLanguageDirection = editor.locale.uiLanguageDirection;\n\n\t\treturn {\n\t\t\ttarget: () => {\n\t\t\t\tlet modelRange = mentionMarker.getRange();\n\n\t\t\t\t// Target the UI to the model selection range - the marker has been removed so probably the UI will not be shown anyway.\n\t\t\t\t// The logic is used by ContextualBalloon to display another panel in the same place.\n\t\t\t\tif ( modelRange.start.root.rootName == '$graveyard' ) {\n\t\t\t\t\tmodelRange = editor.model.document.selection.getFirstRange()!;\n\t\t\t\t}\n\n\t\t\t\tconst viewRange = mapper.toViewRange( modelRange );\n\t\t\t\tconst rangeRects = Rect.getDomRangeRects( domConverter.viewRangeToDom( viewRange ) );\n\n\t\t\t\treturn rangeRects.pop()!;\n\t\t\t},\n\t\t\tlimiter: () => {\n\t\t\t\tconst view = this.editor.editing.view;\n\t\t\t\tconst viewDocument = view.document;\n\t\t\t\tconst editableElement = viewDocument.selection.editableElement;\n\n\t\t\t\tif ( editableElement ) {\n\t\t\t\t\treturn view.domConverter.mapViewToDom( editableElement.root ) as HTMLElement;\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\tpositions: getBalloonPanelPositions( preferredPosition, uiLanguageDirection )\n\t\t};\n\t}\n}\n\n/**\n * Returns the balloon positions data callbacks.\n */\nfunction getBalloonPanelPositions(\n\tpreferredPosition: MentionsView['position'],\n\tuiLanguageDirection: string\n): DomOptimalPositionOptions['positions'] {\n\tconst positions: Record<string, DomOptimalPositionOptions['positions'][0]> = {\n\t\t// Positions the panel to the southeast of the caret rectangle.\n\t\t'caret_se': ( targetRect: Rect ) => {\n\t\t\treturn {\n\t\t\t\ttop: targetRect.bottom + VERTICAL_SPACING,\n\t\t\t\tleft: targetRect.right,\n\t\t\t\tname: 'caret_se',\n\t\t\t\tconfig: {\n\t\t\t\t\twithArrow: false\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\n\t\t// Positions the panel to the northeast of the caret rectangle.\n\t\t'caret_ne': ( targetRect: Rect, balloonRect: Rect ) => {\n\t\t\treturn {\n\t\t\t\ttop: targetRect.top - balloonRect.height - VERTICAL_SPACING,\n\t\t\t\tleft: targetRect.right,\n\t\t\t\tname: 'caret_ne',\n\t\t\t\tconfig: {\n\t\t\t\t\twithArrow: false\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\n\t\t// Positions the panel to the southwest of the caret rectangle.\n\t\t'caret_sw': ( targetRect: Rect, balloonRect: Rect ) => {\n\t\t\treturn {\n\t\t\t\ttop: targetRect.bottom + VERTICAL_SPACING,\n\t\t\t\tleft: targetRect.right - balloonRect.width,\n\t\t\t\tname: 'caret_sw',\n\t\t\t\tconfig: {\n\t\t\t\t\twithArrow: false\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\n\t\t// Positions the panel to the northwest of the caret rect.\n\t\t'caret_nw': ( targetRect: Rect, balloonRect: Rect ) => {\n\t\t\treturn {\n\t\t\t\ttop: targetRect.top - balloonRect.height - VERTICAL_SPACING,\n\t\t\t\tleft: targetRect.right - balloonRect.width,\n\t\t\t\tname: 'caret_nw',\n\t\t\t\tconfig: {\n\t\t\t\t\twithArrow: false\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t};\n\n\t// Returns only the last position if it was matched to prevent the panel from jumping after the first match.\n\tif ( Object.prototype.hasOwnProperty.call( positions, preferredPosition! ) ) {\n\t\treturn [\n\t\t\tpositions[ preferredPosition! ]\n\t\t];\n\t}\n\n\t// By default, return all position callbacks ordered depending on the UI language direction.\n\treturn uiLanguageDirection !== 'rtl' ? [\n\t\tpositions.caret_se,\n\t\tpositions.caret_sw,\n\t\tpositions.caret_ne,\n\t\tpositions.caret_nw\n\t] : [\n\t\tpositions.caret_sw,\n\t\tpositions.caret_se,\n\t\tpositions.caret_nw,\n\t\tpositions.caret_ne\n\t];\n}\n\n/**\n * Returns a marker definition of the last valid occurring marker in a given string.\n * If there is no valid marker in a string, it returns undefined.\n *\n * Example of returned object:\n *\n * ```ts\n * {\n * \tmarker: '@',\n * \tposition: 4,\n * \tminimumCharacters: 0\n * }\n * ````\n *\n * @param feedsWithPattern Registered feeds in editor for mention plugin with created RegExp for matching marker.\n * @param text String to find the marker in\n * @returns Matched marker's definition\n */\nfunction getLastValidMarkerInText(\n\tfeedsWithPattern: Array<MentionFeed & { pattern: RegExp }>,\n\ttext: string\n): MarkerDefinition {\n\tlet lastValidMarker: any;\n\n\tfor ( const feed of feedsWithPattern ) {\n\t\tconst currentMarkerLastIndex = text.lastIndexOf( feed.marker );\n\n\t\tif ( currentMarkerLastIndex > 0 && !text.substring( currentMarkerLastIndex - 1 ).match( feed.pattern ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ( !lastValidMarker || currentMarkerLastIndex >= lastValidMarker.position ) {\n\t\t\tlastValidMarker = {\n\t\t\t\tmarker: feed.marker,\n\t\t\t\tposition: currentMarkerLastIndex,\n\t\t\t\tminimumCharacters: feed.minimumCharacters,\n\t\t\t\tpattern: feed.pattern\n\t\t\t};\n\t\t}\n\t}\n\n\treturn lastValidMarker;\n}\n\n/**\n * Creates a RegExp pattern for the marker.\n *\n * Function has to be exported to achieve 100% code coverage.\n *\n * @internal\n */\nexport function createRegExp( marker: string, minimumCharacters: number ): RegExp {\n\tconst numberOfCharacters = minimumCharacters == 0 ? '*' : `{${ minimumCharacters },}`;\n\tconst openAfterCharacters = env.features.isRegExpUnicodePropertySupported ? '\\\\p{Ps}\\\\p{Pi}\"\\'' : '\\\\(\\\\[{\"\\'';\n\tconst mentionCharacters = '.';\n\n\t// I wanted to make an util out of it, but since this regexp uses \"u\" flag, it became difficult.\n\t// When \"u\" flag is used, the regexp has \"strict\" escaping rules, i.e. if you try to escape a character that does not need\n\t// to be escaped, RegExp() will throw. It made it difficult to write a generic util, because different characters are\n\t// allowed in different context. For example, escaping \"-\" sometimes was correct, but sometimes it threw an error.\n\tmarker = marker.replace( /[.*+?^${}()\\-|[\\]\\\\]/g, '\\\\$&' );\n\n\t// The pattern consists of 3 groups:\n\t//\n\t// - 0 (non-capturing): Opening sequence - start of the line, space or an opening punctuation character like \"(\" or \"\\\"\",\n\t// - 1: The marker character(s),\n\t// - 2: Mention input (taking the minimal length into consideration to trigger the UI),\n\t//\n\t// The pattern matches up to the caret (end of string switch - $).\n\t// (0: opening sequence )(1: marker )(2: typed mention )$\n\tconst pattern = `(?:^|[ ${ openAfterCharacters }])(${ marker })(${ mentionCharacters }${ numberOfCharacters })$`;\n\n\treturn new RegExp( pattern, 'u' );\n}\n\n/**\n * Creates a test callback for the marker to be used in the text watcher instance.\n *\n * @param feedsWithPattern Feeds of mention plugin configured in editor with RegExp to match marker in text\n */\nfunction createTestCallback( feedsWithPattern: Array<MentionFeed & { pattern: RegExp }> ): ( text: string ) => boolean {\n\tconst textMatcher = ( text: string ) => {\n\t\tconst markerDefinition = getLastValidMarkerInText( feedsWithPattern, text );\n\n\t\tif ( !markerDefinition ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet splitStringFrom = 0;\n\n\t\tif ( markerDefinition.position !== 0 ) {\n\t\t\tsplitStringFrom = markerDefinition.position - 1;\n\t\t}\n\n\t\tconst textToTest = text.substring( splitStringFrom );\n\n\t\treturn markerDefinition.pattern.test( textToTest );\n\t};\n\n\treturn textMatcher;\n}\n\n/**\n * Creates a text matcher from the marker.\n */\nfunction requestFeedText( markerDefinition: MarkerDefinition, text: string ): string {\n\tlet splitStringFrom = 0;\n\n\tif ( markerDefinition.position !== 0 ) {\n\t\tsplitStringFrom = markerDefinition.position - 1;\n\t}\n\n\tconst regExp = createRegExp( markerDefinition.marker, 0 );\n\tconst textToMatch = text.substring( splitStringFrom );\n\tconst match = textToMatch.match( regExp )!;\n\n\treturn match[ 2 ];\n}\n\n/**\n * The default feed callback.\n */\nfunction createFeedCallback( feedItems: Array<MentionFeedItem> ) {\n\treturn ( feedText: string ) => {\n\t\tconst filteredItems = feedItems\n\t\t\t// Make the default mention feed case-insensitive.\n\t\t\t.filter( item => {\n\t\t\t\t// Item might be defined as object.\n\t\t\t\tconst itemId = typeof item == 'string' ? item : String( item.id );\n\n\t\t\t\t// The default feed is case insensitive.\n\t\t\t\treturn itemId.toLowerCase().includes( feedText.toLowerCase() );\n\t\t\t} );\n\t\treturn filteredItems;\n\t};\n}\n\n/**\n * Checks if position in inside or right after a text with a mention.\n */\nfunction isPositionInExistingMention( position: ModelPosition ): boolean | null {\n\t// The text watcher listens only to changed range in selection - so the selection attributes are not yet available\n\t// and you cannot use selection.hasAttribute( 'mention' ) just yet.\n\t// See https://github.com/ckeditor/ckeditor5-engine/issues/1723.\n\tconst hasMention = position.textNode && position.textNode.hasAttribute( 'mention' );\n\n\tconst nodeBefore = position.nodeBefore;\n\n\treturn hasMention || nodeBefore && nodeBefore.is( '$text' ) && nodeBefore.hasAttribute( 'mention' );\n}\n\n/**\n * Checks if the closest marker offset is at the beginning of a mention.\n *\n * See https://github.com/ckeditor/ckeditor5/issues/11400.\n */\nfunction isMarkerInExistingMention( markerPosition: ModelPosition ): boolean | null {\n\tconst nodeAfter = markerPosition.nodeAfter;\n\n\treturn nodeAfter && nodeAfter.is( '$text' ) && nodeAfter.hasAttribute( 'mention' );\n}\n\n/**\n * Checks if string is a valid mention marker.\n */\nfunction isValidMentionMarker( marker: string ): boolean {\n\treturn !!marker;\n}\n\n/**\n * Checks the mention plugins is in completion mode (e.g. when typing is after a valid mention string like @foo).\n */\nfunction checkIfStillInCompletionMode( editor: Editor ): boolean {\n\treturn editor.model.markers.has( 'mention' );\n}\n\ntype RequestFeedResponse = {\n\n\t/**\n\t * Autocomplete items\n\t */\n\tfeed: Array<MentionFeedItem>;\n\n\t/**\n\t * The character which triggers autocompletion for mention.\n\t */\n\tmarker: string;\n\n\t/**\n\t * The text for which feed items were requested.\n\t */\n\tfeedText: string;\n};\n\ntype RequestFeedError = {\n\n\t/**\n\t * The error that was caught.\n\t */\n\terror: ErrorEvent;\n};\n\n/**\n * Fired whenever requested feed has a response.\n */\ntype RequestFeedResponseEvent = {\n\tname: 'requestFeed:response';\n\targs: [ RequestFeedResponse ];\n};\n\n/**\n * Fired whenever the requested feed was discarded. This happens when the response was delayed and\n * other feed was already requested.\n */\ntype RequestFeedDiscardedEvent = {\n\tname: 'requestFeed:discarded';\n\targs: [ RequestFeedResponse ];\n};\n\n/**\n * Fired whenever the requested {@link module:mention/mentionconfig~MentionFeed#feed} promise fails with error.\n */\ntype RequestFeedErrorEvent = {\n\tname: 'requestFeed:error';\n\targs: [ RequestFeedError ];\n};\n\ntype Definition = {\n\tmarker: string;\n\tfeedCallback: MentionFeedbackCallback;\n\titemRenderer?: MentionItemRenderer;\n\tdropdownLimit?: number;\n};\n\ntype MarkerDefinition = {\n\tmarker: string;\n\tminimumCharacters?: number;\n\tpattern: RegExp;\n\tposition: number;\n};\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module mention/mention\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport type { ModelElement } from 'ckeditor5/src/engine.js';\n\nimport { MentionEditing, _toMentionAttribute } from './mentionediting.js';\nimport { MentionUI } from './mentionui.js';\n\nimport '../theme/mention.css';\n\n/**\n * The mention plugin.\n *\n * For a detailed overview, check the {@glink features/mentions Mention feature} guide.\n */\nexport class Mention extends Plugin {\n\t/**\n\t * Creates a mention attribute value from the provided view element and additional data.\n\t *\n\t * ```ts\n\t * editor.plugins.get( 'Mention' ).toMentionAttribute( viewElement, { userId: '1234' } );\n\t *\n\t * // For a view element: <span data-mention=\"@joe\">@John Doe</span>\n\t * // it will return:\n\t * // { id: '@joe', userId: '1234', uid: '7a7bc7...', _text: '@John Doe' }\n\t * ```\n\t *\n\t * @param data Additional data to be stored in the mention attribute.\n\t */\n\tpublic toMentionAttribute<MentionData extends Record<string, unknown>>(\n\t\tviewElement: ModelElement,\n\t\tdata: MentionData\n\t): ( MentionAttribute & MentionData ) | undefined;\n\n\t/**\n\t * Creates a mention attribute value from the provided view element.\n\t *\n\t * ```ts\n\t * editor.plugins.get( 'Mention' ).toMentionAttribute( viewElement );\n\t *\n\t * // For a view element: <span data-mention=\"@joe\">@John Doe</span>\n\t * // it will return:\n\t * // { id: '@joe', uid: '7a7bc7...', _text: '@John Doe' }\n\t * ```\n\t */\n\tpublic toMentionAttribute( viewElement: ModelElement ): MentionAttribute | undefined;\n\n\tpublic toMentionAttribute( viewElement: ModelElement, data?: Record<string, unknown> ): MentionAttribute | undefined {\n\t\treturn _toMentionAttribute( viewElement, data );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Mention' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ MentionEditing, MentionUI ] as const;\n\t}\n}\n\n/**\n * Represents a mention in the model.\n *\n * See {@link module:mention/mention~Mention#toMentionAttribute `Mention#toMentionAttribute()`}.\n */\nexport type MentionAttribute = {\n\n\t/**\n\t * The ID of a mention. It identifies the mention item in the mention feed. There can be multiple mentions\n\t * in the document with the same ID (e.g. the same hashtag being mentioned).\n\t */\n\tid: string;\n\n\t/**\n\t * A unique ID of this mention instance. Should be passed as an `option.id` when using\n\t * {@link module:engine/view/downcastwriter~ViewDowncastWriter#createAttributeElement writer.createAttributeElement()}.\n\t */\n\tuid: string;\n\n\t/**\n\t * Helper property that stores the text of the inserted mention. Used for detecting a broken mention\n\t * in the editing area.\n\t *\n\t * @internal\n\t */\n\t_text: string;\n};\n"]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@ckeditor/ckeditor5-mention",
|
3
|
-
"version": "46.0.0-alpha.
|
3
|
+
"version": "46.0.0-alpha.4",
|
4
4
|
"description": "Mention feature for CKEditor 5.",
|
5
5
|
"keywords": [
|
6
6
|
"ckeditor",
|
@@ -13,11 +13,11 @@
|
|
13
13
|
"type": "module",
|
14
14
|
"main": "src/index.js",
|
15
15
|
"dependencies": {
|
16
|
-
"@ckeditor/ckeditor5-core": "46.0.0-alpha.
|
17
|
-
"@ckeditor/ckeditor5-typing": "46.0.0-alpha.
|
18
|
-
"@ckeditor/ckeditor5-ui": "46.0.0-alpha.
|
19
|
-
"@ckeditor/ckeditor5-utils": "46.0.0-alpha.
|
20
|
-
"ckeditor5": "46.0.0-alpha.
|
16
|
+
"@ckeditor/ckeditor5-core": "46.0.0-alpha.4",
|
17
|
+
"@ckeditor/ckeditor5-typing": "46.0.0-alpha.4",
|
18
|
+
"@ckeditor/ckeditor5-ui": "46.0.0-alpha.4",
|
19
|
+
"@ckeditor/ckeditor5-utils": "46.0.0-alpha.4",
|
20
|
+
"ckeditor5": "46.0.0-alpha.4",
|
21
21
|
"es-toolkit": "1.39.5"
|
22
22
|
},
|
23
23
|
"author": "CKSource (http://cksource.com/)",
|